| OLD | NEW |
| (Empty) |
| 1 # -*- test-case-name: twisted.web.test.test_woven -*- | |
| 2 # | |
| 3 # page.py | |
| 4 | |
| 5 __version__ = "$Revision: 1.23 $"[11:-2] | |
| 6 | |
| 7 from twisted.python import reflect | |
| 8 from twisted.web import resource | |
| 9 from twisted.web.woven import model, view, controller, interfaces, template | |
| 10 | |
| 11 class Page(model.MethodModel, controller.Controller, view.View): | |
| 12 """ | |
| 13 @cvar appRoot: Set this to True if you want me to call | |
| 14 request.rememberRootURL() in my getChild, so you can later use | |
| 15 request.getRootURL() to get the URL to this "application"'s root | |
| 16 resource. (You don't have to worry if there will be multiple | |
| 17 instances of this Page involved in a single request; I'll only | |
| 18 call it for the upper-most instance). | |
| 19 """ | |
| 20 | |
| 21 appRoot = False | |
| 22 | |
| 23 def __init__(self, *args, **kwargs): | |
| 24 templateFile = kwargs.setdefault('templateFile', None) | |
| 25 inputhandlers = kwargs.setdefault('inputhandlers', None) | |
| 26 controllers = kwargs.setdefault('controllers', None) | |
| 27 templateDirectory = kwargs.setdefault('templateDirectory', None) | |
| 28 template = kwargs.setdefault('template', None) | |
| 29 | |
| 30 del kwargs['templateFile'] | |
| 31 del kwargs['inputhandlers'] | |
| 32 del kwargs['controllers'] | |
| 33 del kwargs['templateDirectory'] | |
| 34 del kwargs['template'] | |
| 35 | |
| 36 model.Model.__init__(self, *args, **kwargs) | |
| 37 if len(args): | |
| 38 self.model = args[0] | |
| 39 else: | |
| 40 self.model = self | |
| 41 | |
| 42 controller.Controller.__init__(self, self.model, | |
| 43 inputhandlers=inputhandlers, | |
| 44 controllers=controllers) | |
| 45 self.view = self | |
| 46 view.View.__init__(self, self.model, controller=self, | |
| 47 templateFile=templateFile, | |
| 48 templateDirectory = templateDirectory, | |
| 49 template = template) | |
| 50 self.controller = self | |
| 51 self.controllerRendered = 0 | |
| 52 | |
| 53 def getChild(self, name, request): | |
| 54 # Don't call the rememberURL if we already did once; That way | |
| 55 # we can support an idiom of setting appName as a class | |
| 56 # attribue *even if* the same class is used more than once in | |
| 57 # a hierarchy of Pages. | |
| 58 if self.appRoot and not request.getRootURL(): | |
| 59 request.rememberRootURL() | |
| 60 return controller.Controller.getChild(self, name, request) | |
| 61 | |
| 62 | |
| 63 def renderView(self, request): | |
| 64 return view.View.render(self, request, | |
| 65 doneCallback=self.gatheredControllers) | |
| 66 | |
| 67 class LivePage(model.MethodModel, controller.LiveController, view.LiveView): | |
| 68 | |
| 69 appRoot = False | |
| 70 | |
| 71 def __init__(self, m=None, templateFile=None, inputhandlers=None, | |
| 72 templateDirectory=None, controllers=None, *args, **kwargs): | |
| 73 template = kwargs.setdefault('template', None) | |
| 74 del kwargs['template'] | |
| 75 | |
| 76 model.Model.__init__(self, *args, **kwargs) | |
| 77 if m is None: | |
| 78 self.model = self | |
| 79 else: | |
| 80 self.model = m | |
| 81 | |
| 82 controller.LiveController.__init__(self, self.model, | |
| 83 inputhandlers=inputhandlers, | |
| 84 controllers=controllers) | |
| 85 self.view = self | |
| 86 view.View.__init__(self, self.model, controller=self, | |
| 87 templateFile=templateFile, | |
| 88 templateDirectory=templateDirectory, | |
| 89 template=template) | |
| 90 self.controller = self | |
| 91 self.controllerRendered = 0 | |
| 92 | |
| 93 | |
| 94 def getChild(self, name, request): | |
| 95 # Don't call the rememberPath if we already did once; That way | |
| 96 # we can support an idiom of setting appName as a class | |
| 97 # attribue *even if* the same class is used more than once in | |
| 98 # a hierarchy of Pages. | |
| 99 if self.appRoot and not request.getRootURL(): | |
| 100 request.rememberRootURL() | |
| 101 return controller.Controller.getChild(self, name, request) | |
| 102 | |
| 103 def renderView(self, request): | |
| 104 return view.View.render(self, request, | |
| 105 doneCallback=self.gatheredControllers) | |
| OLD | NEW |