Switch to using ModelForm for RequestForm.
Switch to using ModelForm for RequestForm.
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}