[ppa-qps-devel] Makers flexibility
Brought to you by:
ods
From: Denis S. O. <od...@st...> - 2004-03-12 11:53:23
|
Иногда при реализации каких-то нестандартных вещей вдруг приходит озарение, что для этих целей мы уже предусмотрели в QPS дырку. И вот недавний пример, построение каких-то вещей для другого выпуска на стране. Сначала решил, что достаточно залинковать директории. Потом вспомнил про шаблоны - их тоже нужно залинковать... ан нет, облом-с! А как же вызов шаблонов из шаблонов? Если с первым уровнем легко справиться, то второй становится головной болью. И тут из дальних уголков памяти всплывают смутные воспоминания, что для этого в архитектуре закладывалось. И вот результат (в Site): def getTemplateGetter(self, name=None): from qps.qWebUtils import TemplateGetter if name in (None, 'strana'): dir = '/data/apache/strana_ru2/.template/poll' else: dir = '/data/apache/strana_ru2/ISSUES/%s/.template/poll' % name return TemplateGetter([dir]) def getMaker(self, maker_desc, maker_params={}): if type(maker_desc) is not str: issue = maker_desc[1].get('issue') if issue not in (None, 'strana'): maker_params['template_getter'] = issue maker_params['writer'] = \ ('qps.qMake.Writer', {'baseDir': '/data/apache/strana_ru2/ISSUES/%s/poll' % issue}) return qSite.Site.getMaker(self, maker_desc, maker_params) Конечно, не обошлось и без ложки дегтя. Выяснилось, что метод getWriterClass у нас не работает - опечатка. -- Denis S. Otkidach http://www.python.ru/ [ru] |