Switch to using ModelForm for RequestForm.

portnov [2008-06-17 11:48:30]
Switch to using ModelForm for RequestForm.
Filename
mgmt/forms.py
mgmt/requests_views.py
diff --git a/mgmt/forms.py b/mgmt/forms.py
index 748ddc4..49d0392 100644
--- a/mgmt/forms.py
+++ b/mgmt/forms.py
@@ -27,9 +27,10 @@ class BugPriorityForm(forms.Form):
 class BugComplexityForm(forms.Form):
   complexity = forms.ChoiceField(settings.COMPLEXITY_CHOICES,required=False)

-class RequestForm(forms.Form):
-  title = forms.CharField()
-  text  = forms.CharField(widget=forms.Textarea())
+class RequestForm(forms.ModelForm):
+  class Meta:
+    model = Request
+    exclude = ("created","status",'project')

 class RequestStateForm(forms.Form):
   state = forms.ChoiceField(settings.REQUEST_STATES)
diff --git a/mgmt/requests_views.py b/mgmt/requests_views.py
index b34cb0e..9e64f71 100644
--- a/mgmt/requests_views.py
+++ b/mgmt/requests_views.py
@@ -1,3 +1,4 @@
+from datetime import datetime
 from django.http import HttpResponseForbidden,HttpResponseRedirect
 from django.core.urlresolvers import reverse
 from decorators import check_auth,login_required,render_to
@@ -22,13 +23,10 @@ def create_request(request,pid):
   if request.method == 'POST':
     form = RequestForm(request.POST)
     if form.is_valid():
-      title = form.cleaned_data['title']
-      text  = form.cleaned_data['text']
-      rq = Request(name=title,
-          created = datetime.now(),
-          text=text,
-          status=0,
-          project=project)
+      rq = form.save(commit=False)
+      rq.created = datetime.now()
+      rq.status = 0
+      rq.project = project
       rq.save()
       return HttpResponseRedirect(reverse('mgmt.views.requests',args=(pid,)))
     else:
@@ -42,19 +40,15 @@ def create_request(request,pid):
 @render_to('edit_request.html')
 def edit_request(request,rq):
   if request.method=='POST':
-    form = RequestForm(request.POST)
+    form = RequestForm(request.POST,instance=rq)
     if form.is_valid():
-      title = form.cleaned_data['title']
-      text = form.cleaned_data['text']
-      rq.title = title
-      rq.text = text
-      rq.save()
+      form.save()
       return HttpResponseRedirect(reverse('mgmt.views.one_request',args=(rq.id,)))
     else:
       return {'request': rq,
          'form': form}
   else:
-    form = RequestForm({'title': rq.name, 'text': rq.text})
+    form = RequestForm(instance=rq)
     return {'request': rq,
        'form': form}
ViewGit