From 51b53f3169d2a3718cfb9823c6306f9eb3427cc9 Mon Sep 17 00:00:00 2001 From: helmutm Date: Thu, 31 Mar 2011 10:02:01 +0000 Subject: [PATCH] allow parameters in view calls in messages; these are stored in view.options git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@4209 fd906abe-77d9-0310-91a1-e0d9ade77398 --- composer/message/instance.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/composer/message/instance.py b/composer/message/instance.py index b5b6178..b6f01f8 100644 --- a/composer/message/instance.py +++ b/composer/message/instance.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2009 Helmut Merz helmutm@cy55.de +# Copyright (c) 2011 Helmut Merz helmutm@cy55.de # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -22,6 +22,7 @@ Message instance and related classes. $Id$ """ +from cgi import parse_qs from string import Template from zope import component from zope.interface import implements @@ -57,8 +58,14 @@ class DataProvider(object): if key.startswith('@@'): if client is None: return '$' + key - view = self.getView(key[2:]) + viewName = key[2:] + params = {} + if '?' in viewName: + viewName, params = viewName.split('?', 1) + params = parse_qs(params) + view = self.getView(viewName) if view is not None: + view.options = params return view() else: return key @@ -153,4 +160,4 @@ class MessageInstance(Instance): class MessageTemplate(Template): - idpattern = r'@{0,2}[_a-z][_.|a-z0-9]*[_a-z0-9]+' + idpattern = r'@{0,2}[_a-z][_.|a-z0-9]*[_a-z0-9?&=]+'