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)
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))