25 мая 2009 г.

Ребята из cural.ru развлекаются на официальном портале Администрации города Тюмени


В RSS ленту google reader пару раз уже падало сообщение вроде этого:

CURAL

Похоже так их менеджеры объясняют друг другу или клиентам на примерах как работать с CMS’кой.

20 мая 2009 г.

Django: RadioSelect для всех CharField с choices в форме

Давным-давно понадобилось мне сделать так, чтоб все поля с выбором значений в автогенерируемой 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)

Может быть не очень изящно, но с задачей справляется.

19 мая 2009 г.

Новая 404-ая для ИГС сайтов

Недавно в нашей конторе самоорганизовался конкурс жаб на тему логотипа ИГС. Оригинальный логотип есть в шапке сайта: Институт геоинформационных систем, а жабу для 404-ой ошибки сделали недавно…

E404

"Крик"
1893, Музей Мунка, Осло

 

 

 

Можно посмотреть 404-ую в реальном контексте: http://animals.ecougra.ru/404.

13 мая 2009 г.

Новые видео-курсы intuit.ru: "Введение в интернет-рекламу" и "Разработка ИТ-стратегии"

Согласен, позорно в блоге писать анонсы не своих новостей и мыслей. Блог – это дневник самого автора, а не того, что он читает. Но как сказал Глеб Архангельский: Личные творческие записи – это то место, где чужие мысли становятся твоими… (не очень точная цитата)

Однако, эти два курса заслуживают внимания. Во-первых, это видео курсы. Для пользователей это значит, что получить информацию о содержании курса становится немного проще. Причины две:

  • печатные и электронные курсы интуита – эот прежде всего научные работы, а значит написать там “небо - синее и все тут” нельзя. Нужно объяснить почему оно синее, сослаться на авторов, которые считают также и привести веские доводы к тому, что небу быть синем очень важно для дальнейшего усвоения материала.
  • в видео-лекции, по-моему, тупо меньше влазит. А значит, преподаватель старается рассказать суть.

Вообще курсы интуита – это прекрасная вещ. По ним, собственно я и учился, на нефтегаз надежды не было.

Первый курс мне интересен потому, что учебников по данной теме, думаю, ещё нет. Скорей всего это первая (максимум 10-ая :) ) работа такого уровня по по теме рекламы в интернете.

Второй курс – реинкарнация печатного курса ИТ-стратегия, который я как раз читал. Про печатную версию могу сказать, что она очень объемная, но читается легко, не смотря на огромное количество фактической и статистической информации.

Теперь  выдержки из описания курсов:

Введение в интернет-рекламу

В курсе слушатели познакомятся с появлением интернет-рекламы в нашей стране и за рубежом. Получат сведения о том, какая интернет-реклама бывает, как ее  лучше продавать и где искать клиентов.

В курсе рассказывается о баннерах и их размещении. С помощью каких систем происходит отслеживание эффективности этих баннеров. Большое внимание уделено факторам от которых зависит уровень продаж сайта: качеству аудитории, юзабилити сайта, ценовой политике. Курс расскажет слушателям о том, какие документы необходимы для повседневной  работы, о том как правильно и эффективно вести переговоры. Как составлять коммерческие предложения для разных типов клиентов.

Разработка ИТ-стратегии

Дисциплина является важной составной частью теоретической подготовки специалиста в области ИТ-консалтинга и обеспечивает возможность его эффективной работы специалиста в ИТ-службах предприятий и государственных учреждений.

Дисциплина включает в себя комплекс знаний, которые обеспечивают целостный, процессно-ориентированный подход к принятию управленческих решений, направленных на повышение эффективности владения и развития информационных систем для достижения бизнес-целей организаций и создания новых конкурентных преимуществ.

django-attachments

http://pypi.python.org/pypi/django-attachments/0.2.4

Всем привет! Сегодня хочу написать про django-attachments. Почему? – потому что это великолепный пример pluggable приложения на джанго.

Функция данной апликации – добавление файлов к объекту (и ничего больше). Но сделано толково.

Примеры со страницы продукта http://pypi.python.org/pypi/django-attachments/0.2.4 – тому доказательство.

1. Подключаем к своему проекту

    1. Put attachments to your INSTALLED_APPS in your settings.py within your django project.
    2. Add (r'^attachments/', include('attachments.urls')), to your urls.py.

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-кайф к которому все так стремятся.

6 мая 2009 г.

Django, Wsgi и относительные пути

Начитался про django and relativity и придумал свой реюзбл django.wsgi. Теперь буду тупо подключать external-subversion-папку с утилитами, в которой буду хранить и этот файл тоже.

Ниже чертеж велосипеда (django.wsgi):


import os, sys     

import django.core.handlers.wsgi

sys.path.append(os.path.join(os.path.realpath(os.path.dirname(__file__)), '..'))

os.environ['DJANGO_SETTINGS_MODULE'= os.path.basename(os.path.dirname(__file__)) + '.settings'application = django.core.handlers.wsgi.WSGIHandler()

sys.path.append(os.path.join(os.path.realpath(os.path.dirname(__file__))))


UPD1: Андрей Зевакин вполне аргументировано объяснил, что я не прав. В итоге, придется тянуть через external свойство только сам файл :(

2 мая 2009 г.

Прям сейчас Шевчук читает закадровый текст в “История государства Российского”на ТВЦ

Офигеть! Я и раньше видел эту передачу и думал: “Шевчук, или голос похож просто?”. Шевчук. Тут пишут, что он: http://www.newsmusic.ru/news_2_11141.htm.

Видимо, это его хобби. Мой отец тоже серьезно интересоваться историей начал с возрастом. Видимо, это общая тенденция для их поколения.

UPD1: http://dgv.livejournal.com/tag/Шевчук – видео-блог, очевидно, со всеми сюжетами этой передачи. Пока не пойму кто автор…