В RSS ленту google reader пару раз уже падало сообщение вроде этого:
Похоже так их менеджеры объясняют друг другу или клиентам на примерах как работать с CMS’кой.
Давным-давно понадобилось мне сделать так, чтоб все поля с выбором значений в автогенерируемой django из модели форме были не селектами, а RadioButtons’ами. Задал я вопрос на форуме маньяков, но не получил на него ответа… Долгое время мне это было и не нужно, но теперь появилось осознание того, как это надо сделать.
Ниже код. В нем Zayavka – класс модели, ZayavkaForm – сгенерированная форма, __init__ - метод этой самой формы:
def __init__(self, *args, **kwargs):
opts = Zayavka._meta
for f in opts.fields:
if f.get_internal_type() == 'CharField' and f.choices:
ZayavkaForm.base_fields[f.name] = forms.CharField(label=zayavka.get_field(f.name).verbose_name,
help_text = zayavka.get_field(f.name).help_text,
widget=forms.RadioSelect(choices=zayavka.get_field(f.name).choices),
required=not(zayavka.get_field(f.name).blank))
super(ZayavkaForm, self).__init__(*args, **kwargs)
Может быть не очень изящно, но с задачей справляется.
Недавно в нашей конторе самоорганизовался конкурс жаб на тему логотипа ИГС. Оригинальный логотип есть в шапке сайта: Институт геоинформационных систем, а жабу для 404-ой ошибки сделали недавно…
"Крик"
1893, Музей Мунка, Осло
Можно посмотреть 404-ую в реальном контексте: http://animals.ecougra.ru/404.
Согласен, позорно в блоге писать анонсы не своих новостей и мыслей. Блог – это дневник самого автора, а не того, что он читает. Но как сказал Глеб Архангельский: Личные творческие записи – это то место, где чужие мысли становятся твоими… (не очень точная цитата)
Однако, эти два курса заслуживают внимания. Во-первых, это видео курсы. Для пользователей это значит, что получить информацию о содержании курса становится немного проще. Причины две:
Вообще курсы интуита – это прекрасная вещ. По ним, собственно я и учился, на нефтегаз надежды не было.
Первый курс мне интересен потому, что учебников по данной теме, думаю, ещё нет. Скорей всего это первая (максимум 10-ая :) ) работа такого уровня по по теме рекламы в интернете.
Второй курс – реинкарнация печатного курса ИТ-стратегия, который я как раз читал. Про печатную версию могу сказать, что она очень объемная, но читается легко, не смотря на огромное количество фактической и статистической информации.
Теперь выдержки из описания курсов:
Введение в интернет-рекламу
В курсе слушатели познакомятся с появлением интернет-рекламы в нашей стране и за рубежом. Получат сведения о том, какая интернет-реклама бывает, как ее лучше продавать и где искать клиентов.
В курсе рассказывается о баннерах и их размещении. С помощью каких систем происходит отслеживание эффективности этих баннеров. Большое внимание уделено факторам от которых зависит уровень продаж сайта: качеству аудитории, юзабилити сайта, ценовой политике. Курс расскажет слушателям о том, какие документы необходимы для повседневной работы, о том как правильно и эффективно вести переговоры. Как составлять коммерческие предложения для разных типов клиентов.
Разработка ИТ-стратегии
Дисциплина является важной составной частью теоретической подготовки специалиста в области ИТ-консалтинга и обеспечивает возможность его эффективной работы специалиста в ИТ-службах предприятий и государственных учреждений.
Дисциплина включает в себя комплекс знаний, которые обеспечивают целостный, процессно-ориентированный подход к принятию управленческих решений, направленных на повышение эффективности владения и развития информационных систем для достижения бизнес-целей организаций и создания новых конкурентных преимуществ.
http://pypi.python.org/pypi/django-attachments/0.2.4
Всем привет! Сегодня хочу написать про django-attachments. Почему? – потому что это великолепный пример pluggable приложения на джанго.
Функция данной апликации – добавление файлов к объекту (и ничего больше). Но сделано толково.
Примеры со страницы продукта http://pypi.python.org/pypi/django-attachments/0.2.4 – тому доказательство.
1. Подключаем к своему проекту
2. Используем в админке
from django.contrib import admin
from attachments.admin import AttachmentInlines
class MyEntryOptions(admin.ModelAdmin)
inlines = [AttachmentInlines]
3. Встраиваем в фронт-енд сайта:
{% load attachments_tags %}
{% get_attachments_for entry as "attachments_list" %}
– получаем список приложенных файлов для объекта entry
{% attachment_form [object] %}
- рендерим форму добавления файла к объекту из фронт-енда (если пользователь не авторизован – возвращает пустую строку)
{% for att in attachment_list %}
{{ att }} {% attachment_delete_link att %}
{% endfor %}
– темплейт-тэг {% attachment_delete_link att %} – рендерит ссылку на удаление приложенного файла.
Как видите, Martin Mahner позаботился о том, чтоб его приложение полностью вписалось в любой проект без каких либо швов. Мне нравится его подход, он умудрился сделать функциональность действительно простой. По сути, это и есть django-кайф к которому все так стремятся.
Начитался про django and relativity и придумал свой реюзбл django.wsgi. Теперь буду тупо подключать external-subversion-папку с утилитами, в которой буду хранить и этот файл тоже.
Ниже чертеж велосипеда (django.wsgi):
UPD1: Андрей Зевакин вполне аргументировано объяснил, что я не прав. В итоге, придется тянуть через external свойство только сам файл :(
Коллега нашел сегодня на google maps картах “Кривой дом”. Вот так у нас тут строят.
reinvigorate и Konstantin Kovalev просят приводит ссылки на этот удивительный пример новой рьяной российской информационной правозащиты. Дело обрастает подробностями…
Офигеть! Я и раньше видел эту передачу и думал: “Шевчук, или голос похож просто?”. Шевчук. Тут пишут, что он: http://www.newsmusic.ru/news_2_11141.htm.
Видимо, это его хобби. Мой отец тоже серьезно интересоваться историей начал с возрастом. Видимо, это общая тенденция для их поколения.
UPD1: http://dgv.livejournal.com/tag/Шевчук – видео-блог, очевидно, со всеми сюжетами этой передачи. Пока не пойму кто автор…