27 апр. 2011 г.

16 апр. 2011 г.

Вывод SVN ревизии проекта в заголовке страниц - django middleware

Пост совершенно тупой, но совсем не писать в блог нельзя :).
В позапрошлом посте я выкладывал context_processor в версией subversion ревизии корня проекта. Минус в том, что об этой переменной надо помнить, её нужно прописать в шаблон. С прослойками все проще, написал, подключил, забыл.
Нижеследующий код дописывает к заголовку страницы ревизию проекта:

# -*- coding: utf8 -*-

from django.utils.version import get_svn_revision
from django.conf import settings


class SubversionRevInTitle:
    def process_response(self, request, response):
        if response.content:
            response.content = response.content.replace('', \
                 str(': ' + get_svn_revision(getattr(settings, \
                                              'PROJECT_ROOT')) + ''))
        return response

3 апр. 2011 г.

Ревизия SVN проекта в django

Несколько месяцев назад по блогам джангистов прокатилась волна статей про автоматическое развертывание дев и продакшн версий проектов. Один из вариантов, на изучение которого я тратил свое время - subversion hooks - всем хорош, но иногда вытягивание зависимостей и обновление модулей занимает столько времени, что становится не понятно на какую версию страницы дев-сервера ты собственно сейчас смотришь.
Как вариант можно использовать встроенную в Django "утилитку" для получения svn ревизии в качестве context processor'а. Код будет выглядеть так:

from django.utils.version import get_svn_revision
from django.conf import settings


def revision(request):
    path = getattr(settings, 'PROJECT_ROOT', '.')
    return {'svn_revision': get_svn_revision(path)}

17 мар. 2011 г.

django-cms 2.1.3 и csrf.js в IE

Перевел группу сайтов django-cms 2.0.2 на 2.1.3. Давно хотел пересесть на ветку с фронт-энд редактированием страниц, а тут ещё и выяснилось, что в 2.0.2 версии масса проблем с разрешениями на редактирование (в моем случае все осложняется наличием нескольких доменов в одной базе).
В версии Django-CMS 2.1.3 все оказалось тоже не гладко. В IE при попытке добавить плагин я ловил ошибку в 27 строке файла csrf.js. Выяснилось, что в основном грешат на разные версии jquery:
https://groups.google.com/group/django-cms/browse_thread/thread/1c73a798d5634a6e
http://comments.gmane.org/gmane.comp.python.django.django-cms/2641
Но причина оказалась проще (в моем случае) - я продолжал использовать middleware для игнорирования csrf проверки, т.к. версия 2.0.2 не поддерживала csrf (а может я использовал ещё какое-то старье). Будьте бдительны!