damned-lies r1504 - in trunk: . stats



Author: claudep
Date: Tue Mar 17 08:01:55 2009
New Revision: 1504
URL: http://svn.gnome.org/viewvc/damned-lies?rev=1504&view=rev

Log:
2009-03-17  Claude Paroz  <claude 2xlibre net>

	* stats/forms.py:
	* stats/views.py: Fixed saving logic for branch edit form.

Modified:
   trunk/ChangeLog
   trunk/stats/forms.py
   trunk/stats/views.py

Modified: trunk/stats/forms.py
==============================================================================
--- trunk/stats/forms.py	(original)
+++ trunk/stats/forms.py	Tue Mar 17 08:01:55 2009
@@ -5,7 +5,7 @@
     def __init__(self, *args, **kwargs):
         super(ReleaseField, self).__init__(*args, **kwargs)
         self.required = False
-        if 'initial' in kwargs:
+        if 'label' in kwargs:
             self.is_branch = True
 
 class ModuleBranchForm(forms.Form):
@@ -30,7 +30,7 @@
                 self.branch_fields.append((branch.name, branch.name+'_cat'))
                 
         self.fields['new_branch'] = forms.CharField(required=False)
-        self.fields['new_branch_release'] = ReleaseField(queryset=Release.objects.all(), required=False)
+        self.fields['new_branch_release'] = ReleaseField(queryset=Release.objects.all())
         self.fields['new_branch_category'] = forms.ChoiceField(choices=CATEGORY_CHOICES)
 
     def get_branches(self):

Modified: trunk/stats/views.py
==============================================================================
--- trunk/stats/views.py	(original)
+++ trunk/stats/views.py	Tue Mar 17 08:01:55 2009
@@ -68,15 +68,20 @@
                     Category.objects.get(pk=key).delete()
                     updated = True
                     continue
-                release_has_changed = field.initial != form.cleaned_data[key].pk
+                release_has_changed = field.initial != getattr(form.cleaned_data[key], 'pk', None)
                 category_has_changed = form.fields[key+'_cat'].initial != form.cleaned_data[key+'_cat']
-                if release_has_changed or category_has_changed:
-                    old_release = Release.objects.get(pk=field.initial)
-                    cat = Category.objects.get(pk=key)
-                    if release_has_changed:
-                        new_release = form.cleaned_data[key]
-                        cat.release = new_release
-                    cat.name = form.cleaned_data[key+'_cat']
+                if form.cleaned_data[key] and (release_has_changed or category_has_changed):
+                    if field.initial:
+                        old_release = Release.objects.get(pk=field.initial)
+                        cat = Category.objects.get(pk=key)
+                        if release_has_changed:
+                            new_release = form.cleaned_data[key]
+                            cat.release = new_release
+                        cat.name = form.cleaned_data[key+'_cat']
+                    else:
+                        rel = Release.objects.get(pk=form.cleaned_data[key].pk)
+                        branch = Branch.objects.get(module=mod, name=key)
+                        cat = Category(release=rel, branch=branch, name=form.cleaned_data[key+'_cat'])
                     cat.save()
                     updated = True
             # New branch (or new category)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]