예제 #1
0
    def update(self):
        instance = self.instance
        parent = instance.parent()

        type = instance.content().meta_type
        typeinfo = type_registry.get(type)
        formclass =  typeinfo['form']
        slug = instance.slug()

        if self.post:
            self.context['form'] = form = formclass(parent=parent,
                                                    data=self.request.POST,
                                                    instance=instance.content())

            if form.is_valid():
                form.save()
                ## handle changed slug
                slug = form.cleaned_data['slug']
                if slug != self.instance.slug():
                    self.instance.set_slug(slug)

                return self.redirect(instance.path, success="Updated")
        else:
            self.context['form'] = formclass(parent=parent, initial=dict(slug=slug), instance=instance.content())
        
        return self.template("wheelcms_axe/update.html")
예제 #2
0
    def formclass(self, data=None, instance=None):
        if not self.instance:
            return None

        type = self.instance.content().meta_type

        if not type:
            return None

        typeinfo = type_registry.get(type)
        parent = self.instance.parent()
        return typeinfo['form'](parent=parent, data=data, instance=instance)
예제 #3
0
    def create(self, *a, **b):
        type = self.request.REQUEST.get('type')
        formclass = type_registry.get(type)['form']

        parent = self.parent

        if self.post:
            self.form = formclass(data=self.request.POST, parent=parent)
            if self.form.is_valid():
                ## form validation should handle slug uniqueness (?)
                p = self.form.save()
                slug = self.form.cleaned_data['slug']
                sub = parent.add(slug)
                sub.set(p)
                return self.redirect(parent.path or '/', success="Ok")
        else:
            self.context['form'] = formclass()
        self.context['type'] = self.request.REQUEST['type']
        return self.template("wheelcms_axe/create.html")