17 мая 2011 г.

Итоги дня

Итак, сегодня я научился выполнять змейку и гараж. Всего то нужно было, чтоб инструктор оставил меня в машине одного (надеяться не на кого, вот и начал выполнять).
Вторая половина дня ушла на получение справки о том, что я годен для управления автотранспортом категорий A, B и С (можно было и ещё написать - по деньгам и по времени такая же фигня выходит).
Вечером сделал уборку, а то из-за Сашки в доме, как а улице - всюду песок (у него с кроссовок вечно сыплется).
Это были положительные итоги, а из отрицательных:

  • написано строк кода - 0
  • отвечено писем - 0 из 8
  • пропущено важных звонков - 1 (ну тут на убыль идет, обычно я и по 6 могу в день пропустить).
Вопрос: буду ли я сегодня спать?

Ну и чтоб не портить настроение тем моим читателям, которым я интересен только как django-разработчик, вот вам ссылочка:
 - не что иное, как имплементация Haystack в django-cms. Сам ещё не смотрел, но думаю, для организации поиска по сайтам - самое то.

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)}