def switch_form(self, form_cls): errors, values = form_cls.validate(self) with switch(self, errors=errors, form_cls=form_cls): with switch(self.values, **values): if not errors: with switch(self, form=form_cls(values)): yield else: yield
def default(self, req): req.steps.append(self) prefix = '/' + req.suffix.lstrip('/') for url, handler in self.handlers: url_params = url.match(prefix) if url_params is not None: with switch(req, **url_params): with switch(req.url_params, **url_params): return handler(req) if prefix == '/': return self.wrapper(self.index, req) return super(Section, self).default(req)
def pyml_response(req, func, *args, **kwargs): maker = PymlMaker() with switch( maker, req=req, lang=req.lang, data=req.data, defaults=req.defaults, errors=req.errors, values=req.values ): func(maker, *args, **kwargs) return html_response(HTML5Result(maker, pretty=True).raw)
def form_maker(cls, fx): with fx.div.sGroup: for name, field in cls.sorted_fields: with switch(fx, param=fx.param + '.' + name if fx.param else name): name = fx.lang[field.lang or fx.param] if issubclass(field.type, Form): fx.div.sTitle(name) with fx.div.sContainer: form_makers(field.type, fx) else: with fx.div.sMember: fx.label.sName << name with fx.div.sValue: with fx.div.sInput: form_makers(field.type, fx) fx.error_field()
def handler(self, req): with switch(req, defaults=self.data_defaults(req)): return super(FormData, self).handler(req)
def handler(self, req): doc = self.edit_document(req) assert doc is not None with switch(req.data, doc=doc): return super(EditData, self).handler(req)
def __call__(self, req, **kwargs): if self.handler is not None: with switch(req, url_params=kwargs, **kwargs): return self.handler(req)