summaryrefslogtreecommitdiff
path: root/repoze/bfg/zcml.py
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2008-08-17 17:32:54 +0000
committerChris McDonough <chrism@agendaless.com>2008-08-17 17:32:54 +0000
commit0e21c22166f5160a2a64fad714d69d81897ef7d3 (patch)
tree6a576d0edfafe0e204a1770c094f13ff8aa74487 /repoze/bfg/zcml.py
parent157721dda97f5aea95f40e307d9d5dceb1014f83 (diff)
downloadpyramid-0e21c22166f5160a2a64fad714d69d81897ef7d3.tar.gz
pyramid-0e21c22166f5160a2a64fad714d69d81897ef7d3.tar.bz2
pyramid-0e21c22166f5160a2a64fad714d69d81897ef7d3.zip
- Add ``<bfg:settings>`` directive. This directive currently allows
only one attribute: ``reload_templates``. If e.g.:: <bfg:settings reload_templates="true"/> is in your application's ZCML, you will not need to restart the appserver in order for ``z3c.pt`` or XSLT template changes to be detected and displayed.
Diffstat (limited to 'repoze/bfg/zcml.py')
-rw-r--r--repoze/bfg/zcml.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/repoze/bfg/zcml.py b/repoze/bfg/zcml.py
index 343abc1d7..bb37c6581 100644
--- a/repoze/bfg/zcml.py
+++ b/repoze/bfg/zcml.py
@@ -2,17 +2,44 @@ from zope.component.zcml import handler
from zope.component.interface import provideInterface
from zope.configuration.exceptions import ConfigurationError
from zope.configuration.fields import GlobalObject
+from zope.configuration.fields import Bool
from zope.interface import Interface
+from zope.interface import implements
from zope.schema import TextLine
from repoze.bfg.interfaces import IRequest
from repoze.bfg.interfaces import IViewPermission
from repoze.bfg.interfaces import IView
+from repoze.bfg.interfaces import ISettings
from repoze.bfg.security import ViewPermissionFactory
+def _handler(*arg, **kw):
+ import pdb; pdb.set_trace()
+ return handler(*arg, **kw)
+
+class Settings(object):
+ implements(ISettings)
+ def __init__(self, reload_templates=False):
+ self.reload_templates = reload_templates
+
+def settings(_context, reload_templates=False):
+ settings = Settings(reload_templates=reload_templates)
+ _context.action(
+ discriminator = ('settings', ISettings),
+ callable = handler,
+ args = ('registerUtility', settings, ISettings, '', _context.info),
+ )
+
+class ISettingsDirective(Interface):
+ reload_templates = Bool(
+ title=u"Reload templates when they change",
+ description=(u"Specifies whether templates should be reloaded when"
+ "a change is made"),
+ default=False)
+
def view(_context,
permission=None,
for_=None,