def patch_search_view(self): model = self.model base = forms.GingerSearchForm if not model else forms.GingerSearchModelForm module = patch.Module(self.app.form_module) cls = module.Class(self.meta.form_name, [base]) form_class = cls if model: meta_cls = form_class.Class("Meta") meta_cls.Attr("model", model) meta_cls.Attr("exclude", ()) func = form_class.Def("get_queryset", [], varkw="kwargs") func(""" return {model}.objects.all() """, model=model) module.save() with self.class_patch() as cls: cls.Attr("form_class", form_class) if model: cls.Attr("model", model) self.create_template(templates.LIST_TEMPLATE) self.create_template(templates.LIST_ITEM_TEMPLATE, filename=path.join( self.meta.template_dir, "%s/include/%s_item.html" % (self.app.label, self.meta.resource_name)))
def patch_form_view(self): model = self.model base = forms.GingerForm if not model else forms.GingerModelForm module = patch.Module(self.app.form_module) cls = module.Class(self.meta.form_name, [base]) form_class = cls if model: meta_cls = form_class.Class("Meta") meta_cls.Attr("model", model) meta_cls.Attr("exclude", ()) func = form_class.Def("execute", ["user"]) module.save() with self.class_patch() as cls: cls.Attr("form_class", form_class) if model: cls.Attr("model", model) self.create_template(templates.FORM_TEMPLATE)
def class_patch(self): module = patch.Module(self.module) class_ = module.Class(self.view_class) yield class_ module.save()