コード例 #1
0
    def add_node(self, request):
        form = get_form(self.model)(request.POST)
        if form.is_valid():
            data = form.cleaned_data
            node = self.model.objects.get(pk=data.get('_ref_node_id'))
            node.add_child(name=data.get('name'))

        url = reverse('admin:%s_changelist' % self.get_app_prefix())
        return HttpResponseRedirect(url)
コード例 #2
0
    def tree_index(self, request):
        data = {
            'app_name': self.model._meta.app_label,
            'model_name': self.model._meta.module_name,
            'annotated_list': self.model.get_annotated_list(),
            'app_prefix': self.get_app_prefix(),
        }

        permission_class = self.get_model_class('Permission')
        L = permission_class.objects.filter(permission='public').values_list('node__id')
        public_nodes = [x[0] for x in L]
        data.update({'public_nodes': public_nodes})

        # add node form
        form = get_form(self.model)()
        form_required_fields = ",".join([k for k,v in form.fields.iteritems() if v.required])
        data.update({'form': form, 'form_required_fields': form_required_fields})

        # add change parent form
        form = get_change_parent_form(self.model)()
        form_required_fields = ",".join([k for k,v in form.fields.iteritems() if v.required])
        data.update({'change_parent_form': form, 'change_parent_form_required_fields': form_required_fields})

        # add node url
        add_node_url = "%s_add_node" % self.get_app_prefix()
        data.update({'add_node_url': reverse("admin:%s" % add_node_url)})

        # move node url
        move_node_url = "%s_%s_move_node" % (self.model._meta.app_label, self.model._meta.module_name) 
        data.update({'move_node_url': reverse("admin:%s" % move_node_url)})

        # change parent url
        change_parent_url = "%s_%s_change_parent" % (self.model._meta.app_label, self.model._meta.module_name) 
        data.update({'change_parent_url': reverse("admin:%s" % change_parent_url)})

        # change node permission url
        change_node_permission_url = "%s_change_node_permission" % self.get_app_prefix()
        data.update({'change_node_permission_url': reverse("admin:%s" % change_node_permission_url)})

        return render_to_response("treebeard_extensions/index.html", data, context_instance=RequestContext(request))