Browse Source

Parents list displays only correct parents.

Ralfp 12 years ago
parent
commit
acc37187da
1 changed files with 12 additions and 12 deletions
  1. 12 12
      misago/forums/views.py

+ 12 - 12
misago/forums/views.py

@@ -232,14 +232,14 @@ class Edit(FormWidget):
         if target.type == 'redirect':
         if target.type == 'redirect':
             self.name = _("Edit Redirect")
             self.name = _("Edit Redirect")
             self.form = RedirectForm
             self.form = RedirectForm
-        
-        # Remove invalid targets from parent select
-        self.form = copy.deepcopy(self.form)
-        valid_targets = Forum.tree.get(token='root').get_descendants(include_self=target.type == 'category').exclude(Q(lft__gte=target.lft) & Q(rght__lte=target.rght))
-        self.form.base_fields['parent'] = TreeNodeChoiceField(queryset=valid_targets,level_indicator=u'- - ')
-        
         return self.form
         return self.form
     
     
+    def get_form_instance(self, form, target, initial, post=False):
+        form_inst = super(Edit, self).get_form_instance(form, target, initial, post)
+        valid_targets = Forum.tree.get(token='root').get_descendants(include_self=target.type == 'category').exclude(Q(lft__gte=target.lft) & Q(rght__lte=target.rght))
+        form_inst.fields['parent'] = TreeNodeChoiceField(queryset=valid_targets,level_indicator=u'- - ')
+        return form_inst
+    
     def get_initial_data(self, model):
     def get_initial_data(self, model):
         initial = {
         initial = {
                    'parent': model.parent,
                    'parent': model.parent,
@@ -312,13 +312,13 @@ class Delete(FormWidget):
             self.name= _("Delete Category")
             self.name= _("Delete Category")
         if target.type == 'redirect':
         if target.type == 'redirect':
             self.name= _("Delete Redirect")
             self.name= _("Delete Redirect")
-        
-        # Remove invalid targets from parent select
-        self.form = copy.deepcopy(self.form)
-        valid_targets = Forum.tree.get(token='root').get_descendants(include_self=target.type == 'category').exclude(Q(lft__gte=target.lft) & Q(rght__lte=target.rght))
-        self.form.base_fields['parent'] = TreeNodeChoiceField(queryset=valid_targets,required=False,empty_label=_("Remove with forum"),level_indicator=u'- - ')
-        
         return self.form
         return self.form
+    
+    def get_form_instance(self, form, target, initial, post=False):
+        form_inst = super(Edit, self).get_form_instance(form, target, initial, post)
+        valid_targets = Forum.tree.get(token='root').get_descendants(include_self=target.type == 'category').exclude(Q(lft__gte=target.lft) & Q(rght__lte=target.rght))
+        self.form_inst.fields['parent'] = TreeNodeChoiceField(queryset=valid_targets,required=False,empty_label=_("Remove with forum"),level_indicator=u'- - ')
+        return form_inst
         
         
     def submit_form(self, form, target):
     def submit_form(self, form, target):
         new_parent = form.cleaned_data['parent']
         new_parent = form.cleaned_data['parent']