runtime/NevowServer.py
branchnevow_service_rework
changeset 2217 a603d1ba287b
parent 2214 b9cdbcc992d5
child 2219 73042b2d8d65
equal deleted inserted replaced
2216:8ae29ec2d1dc 2217:a603d1ba287b
    24 
    24 
    25 
    25 
    26 from __future__ import absolute_import
    26 from __future__ import absolute_import
    27 from __future__ import print_function
    27 from __future__ import print_function
    28 import os
    28 import os
       
    29 import platform
    29 from zope.interface import implements
    30 from zope.interface import implements
    30 from nevow import appserver, inevow, tags, loaders, athena, url, rend
    31 from nevow import appserver, inevow, tags, loaders, athena, url, rend
    31 from nevow.page import renderer
    32 from nevow.page import renderer
    32 from formless import annotate
    33 from formless import annotate
    33 from formless import webform
    34 from formless import webform
   139     def addExtension(self, name, desc, fields, btnlabel, callback):
   140     def addExtension(self, name, desc, fields, btnlabel, callback):
   140         def _bind(ctx):
   141         def _bind(ctx):
   141             return annotate.MethodBinding(
   142             return annotate.MethodBinding(
   142                 'action_'+name,
   143                 'action_'+name,
   143                 annotate.Method(arguments=[
   144                 annotate.Method(arguments=[
   144                     annotate.Argument(name, fieldtype)
   145                     annotate.Argument(*field)
   145                     for fieldname,fieldtype in fields],
   146                     for field in fields],
   146                     label = desc),
   147                     label = desc),
   147                 action = btnlabel)
   148                 action = btnlabel)
   148         setattr(self, 'bind_'+name, _bind)
   149         setattr(self, 'bind_'+name, _bind)
   149             
   150             
   150         setattr(self, 'action_'+name, callback)
   151         setattr(self, 'action_'+name, callback)
   152         self.bindingsNames.append(name)
   153         self.bindingsNames.append(name)
   153 
   154 
   154 ConfigurableSettings = ConfigurableBindings()
   155 ConfigurableSettings = ConfigurableBindings()
   155 
   156 
   156 class ISettings(annotate.TypedInterface):
   157 class ISettings(annotate.TypedInterface):
       
   158     platform = annotate.String(label = _("Platform"),
       
   159                            default = platform.system() + " " + platform.release(),
       
   160                            immutable = True)
       
   161     # TODO version ?
       
   162 
   157     def sendLogMessage(
   163     def sendLogMessage(
   158         ctx = annotate.Context(),
   164         ctx = annotate.Context(),
   159         level = annotate.Choice(LogLevels,
   165         level = annotate.Choice(LogLevels,
   160                                 required=True, 
   166                                 required=True, 
   161                                 label=_("Log message level")),
   167                                 label=_("Log message level")),