diff --git a/mgmt/bugs_views.py b/mgmt/bugs_views.py
new file mode 100644
index 0000000..46a4f05
--- /dev/null
+++ b/mgmt/bugs_views.py
@@ -0,0 +1,159 @@
+from django.conf import settings
+import django.newforms as djangoforms
+from decorators import check_auth,login_required,render_to
+from utils import get_bugs,get_comments
+from models import *
+from rights import can,possible_changes
+from forms import BugForm,BugPriorityForm,BugComplexityForm,CommentForm
+
+@login_required
+@render_to('bug_report.html')
+def bug_report(request,pid):
+ project = Project.objects.get(pk=pid)
+ if request.method=='POST':
+ form = BugForm(request.POST)
+ if form.is_valid():
+ name = form.cleaned_data['name']
+ comp = form.cleaned_data['component']
+ actions = form.cleaned_data['your_actions']
+ expected = form.cleaned_data['expected']
+ unexpected = form.cleaned_data['unexpected']
+ text = form.cleaned_data['text']
+ s0 = BugState.objects.get(pk=1)
+ b = Bug(created=datetime.now(),
+ author = request.user,
+ project = project,
+ status = s0,
+ name = name,
+ component=comp,
+ actions=actions,
+ expected=expected,
+ unexpected=unexpected,
+ priority=-1,
+ text = text)
+ b.save()
+ return HttpResponseRedirect(reverse('mgmt.views.project_bugs',args=(pid,)))
+ else:
+ return {'project': project, 'form': form}
+ form = BugForm()
+ return {'project': project,
+ 'form': form}
+
+@render_to('bug.html')
+def one_bug(request,id):
+ bug = Bug.objects.get(pk=id)
+ if request.method=='POST':
+ if request.POST['action']=='comment':
+ title = request.POST['title']
+ text = request.POST['text']
+ if not title:
+ title = text[:20]+'...'
+ c = Comment(created=datetime.now(),
+ author = request.user,
+ object_id = bug.id,
+ object_type = 'Bug',
+ title = title,
+ text = text)
+ c.save()
+ elif request.POST['action']=='change_state':
+ new_state = request.POST['new_state']
+ bug.status = BugState.objects.get(pk=new_state)
+ if bug.status.id==3:
+ bug.responsible = request.user
+ if bug.status.id in [1,4,5]:
+ bug.priority=-1
+ bug.save()
+ elif request.POST['action']=='set_priority':
+ bug.priority =request.POST['priority']
+ bug.save()
+ elif request.POST['action']=='set_complexity':
+ bug.complexity = request.POST['complexity']
+ bug.save()
+ curr,pages,comments = get_comments(request,bug.id,'Bug')
+ change_states = possible_changes(bug,request.user)
+ if change_states:
+ choices = [(st.id,st.name) for st in change_states]
+
+ class BugStateForm(djangoforms.Form):
+ new_state = djangoforms.ChoiceField(choices)
+
+ state_form = BugStateForm()
+ else:
+ state_form = None
+ if can(request.user,'set_priority',bug):
+ priority_form = BugPriorityForm(dict(priority=bug.priority))
+ else:
+ priority_form = None
+ if can(request.user,'set_complexity',bug):
+ complexity_form = BugComplexityForm(dict(complexity=bug.complexity))
+ else:
+ complexity_form = None
+ if can(request.user,'comment'):
+ form = CommentForm()
+ else:
+ form = None
+ if can(request.user,'edit',bug):
+ edit_link = '/bugs/%s/edit/' % bug.id
+ else:
+ edit_link = None
+ for comment in comments:
+ comment.can_delete = can(request.user,'delete',comment)
+ tasks = bug.task_set.all()
+ priority = dict(settings.PRIORITY_CHOICES).get(bug.priority,u'Unset')
+ complexity = dict(settings.COMPLEXITY_CHOICES).get(bug.complexity,'Unknown')
+ return {'bug': bug,
+ 'change_state': state_form,
+ 'edit_link': edit_link,
+ 'project': bug.project,
+ 'current_page': curr,
+ 'page_numbers': pages,
+ 'comments': comments,
+ 'tasks': tasks,
+ 'priority': priority,
+ 'complexity': complexity,
+ 'priority_form': priority_form,
+ 'complexity_form': complexity_form,
+ 'form': form}
+
+@check_auth(Bug,'edit')
+@render_to('edit_bug.html')
+def edit_bug(request,bug):
+ if request.method=='POST':
+ form = BugForm(request.POST)
+ if form.is_valid():
+ name = form.cleaned_data['name']
+ text = form.cleaned_data['text']
+ comp = form.cleaned_data['component']
+ actions = form.cleaned_data['your_actions']
+ expected = form.cleaned_data['expected']
+ unexpected = form.cleaned_data['unexpected']
+ bug.name = name
+ bug.text = text
+ bug.component = comp
+ bug.actions = actions
+ bug.expected = expected
+ bug.unexpected = unexpected
+ bug.save()
+ form = BugForm({'name': bug.name,
+ 'text': bug.text,
+ 'component': bug.component,
+ 'your_actions': bug.actions,
+ 'expected': bug.expected,
+ 'unexpected': bug.unexpected})
+ return {'project': bug.project,
+ 'bug': bug,
+ 'form': form}
+
+@render_to('all_bugs.html')
+def all_bugs(request):
+ page,pages,bugs = get_bugs(request)
+ return {'bugs': bugs,
+ 'current_page': page,
+ 'page_numbers': pages}
+
+@render_to('all_bugs.html')
+def bugs_by_state(request,sid):
+ state = BugState.objects.get(pk=sid)
+ page,pages,bugs = Bug.objects.filter(status=state)
+ return {'bugs': bugs,
+ 'state': state.name}
diff --git a/mgmt/documents_views.py b/mgmt/documents_views.py
new file mode 100644
index 0000000..81f8f82
--- /dev/null
+++ b/mgmt/documents_views.py
@@ -0,0 +1,82 @@
+from decorators import check_auth,login_required,render_to
+from utils import get_comments
+from models import *
+from rights import can
+from forms import CommentForm,DocForm
+
+@render_to('project_docs.html')
+def project_documents(request,id):
+ project = Project.objects.get(pk=id)
+ cats = Category.objects.filter(document__project=project)
+ return {'project': project,
+ 'categories': cats}
+
+@render_to('document.html')
+def one_document(request,id):
+ doc = Document.objects.get(pk=id)
+ if request.method=='POST':
+ title = request.POST['title']
+ text = request.POST['text']
+ if not title:
+ title = text[:20]+'...'
+ c = Comment(created=datetime.now(),
+ author = request.user,
+ object_id = doc.id,
+ object_type = 'Document',
+ title = title,
+ text = text)
+ c.save()
+ curr,pages,comments = get_comments(request,doc.id,'Document')
+ if can(request.user,'comment'):
+ form = CommentForm()
+ else:
+ form = None
+ if can(request.user,'edit',doc):
+ edit_link = '/docs/%s/edit/' % id
+ else:
+ edit_link = None
+ for comment in comments:
+ comment.can_delete = can(request.user,'delete',comment)
+ return {'document': doc,
+ 'edit_link': edit_link,
+ 'current_page': curr,
+ 'page_numbers': pages,
+ 'comments': comments,
+ 'form': form}
+
+@check_auth(Project,'document')
+@render_to('create_doc.html')
+def create_document(request,project):
+ msg = ""
+ if request.method=='POST':
+ form = DocForm(request.POST)
+ if form.is_valid():
+ doc = form.save(commit=False)
+ doc.created = datetime.now()
+ doc.author = request.user
+ doc.project = project
+ doc.save()
+ return HttpResponseRedirect(reverse('mgmt.views.one_document',args=(doc.id,)))
+ else:
+ return {'form': form}
+ form = DocForm()
+ return {'form': form}
+
+@check_auth(Document,'edit')
+@render_to('edit_document.html')
+def edit_document(request,doc):
+ project = doc.project
+ if request.method=='POST':
+ form = DocForm(request.POST,instance=doc)
+ if form.is_valid():
+ form.save()
+ return HttpResponseRedirect(reverse('mgmt.views.one_document',args=(doc.id,)))
+ else:
+ return {'document': doc,
+ 'project_id': project.id,
+ 'form': form}
+ form = DocForm(instance=doc)
+ return {'document': doc,
+ 'project_id': project.id,
+ 'form': form}
+
diff --git a/mgmt/project_views.py b/mgmt/project_views.py
new file mode 100644
index 0000000..5d9235d
--- /dev/null
+++ b/mgmt/project_views.py
@@ -0,0 +1,48 @@
+from django.conf import settings
+from decorators import check_auth,login_required,render_to
+from utils import get_comments,get_bugs
+from models import *
+from rights import can
+from forms import CommentForm
+
+@render_to('project.html')
+def one_project(request,id):
+ project = Project.objects.get(pk=id)
+ if request.method=='POST':
+ title = request.POST['title']
+ text = request.POST['text']
+ if not title:
+ title = text[:20]+'...'
+ c = Comment(created=datetime.now(),
+ author = request.user,
+ object_id = project.id,
+ object_type = 'Project',
+ title = title,
+ text = text)
+ c.save()
+ curr,pages,comments = get_comments(request,project.id,'Project')
+ if can(request.user,'comment'):
+ form = CommentForm()
+ else:
+ form = None
+ for comment in comments:
+ comment.can_delete = can(request.user,'delete',comment)
+ return {'project': project,
+ 'current_page': curr,
+ 'page_numbers': pages,
+ 'comments': comments,
+ 'form': form}
+
+@render_to('project_bugs.html')
+def project_bugs(request,id):
+ project = Project.objects.get(pk=id)
+ page,pages,bugs = get_bugs(request,id)
+ for bug in bugs:
+ bug.complexity_str = dict(settings.COMPLEXITY_CHOICES).get(bug.complexity,'Unknown')
+ bug.priority_str = dict(settings.PRIORITY_CHOICES).get(bug.priority,'Unset')
+ can_report = can(request.user,'send bug')
+ return {'project': project,
+ 'current_page': page,
+ 'page_numbers': pages,
+ 'bugs': bugs,
+ 'can_report': can_report}
diff --git a/mgmt/reports_views.py b/mgmt/reports_views.py
new file mode 100644
index 0000000..97e6113
--- /dev/null
+++ b/mgmt/reports_views.py
@@ -0,0 +1,53 @@
+from decorators import check_auth,login_required,render_to
+from models import *
+from rights import can
+from forms import ReportModelForm
+
+@render_to('report.html')
+def one_report(request,rid):
+ report = Report.objects.select_related().get(pk=rid)
+ can_edit = can(request.user,'edit',report)
+ return {'report': report,
+ 'can_edit': can_edit}
+
+@render_to('task_reports.html')
+def task_reports(request,tid):
+ task = Task.objects.get(pk=tid)
+ reports = task.report_set.select_related().all()
+ return {'task': task,
+ 'reports': reports}
+
+@login_required
+@render_to('create_report.html')
+def create_report(request,tid):
+ if request.method=='POST':
+ form = ReportModelForm(request.POST)
+ if form.is_valid():
+ report = form.save(commit=False)
+ report.created = datetime.now()
+ report.author = request.user
+ report.task = Task.objects.get(pk=tid)
+ report.save()
+ return HttpResponseRedirect(reverse('mgmt.views.one_task',args=(tid,)))
+ else:
+ return {'form': form}
+ else:
+ form = ReportModelForm()
+ return {'form': form}
+
+@check_auth(Report,'edit')
+@render_to('edit_report.html')
+def edit_report(request,report):
+ if request.method=='POST':
+ form = ReportModelForm(request.POST,instance=report)
+ if form.is_valid():
+ form.save()
+ return HttpResponseRedirect(reverse('mgmt.views.one_report',args=(report.id,)))
+ else:
+ return {'form': form,
+ 'report': report}
+ else:
+ form = ReportModelForm(instance=report)
+ return {'form': form,
+ 'report': report}
+
diff --git a/mgmt/requests_views.py b/mgmt/requests_views.py
new file mode 100644
index 0000000..3ade79f
--- /dev/null
+++ b/mgmt/requests_views.py
@@ -0,0 +1,99 @@
+from decorators import check_auth,login_required,render_to
+from utils import get_comments
+from models import *
+from rights import can
+from forms import RequestForm,RequestStateForm,CommentForm
+
+@render_to('requests.html')
+def requests(request,pid):
+ project = Project.objects.get(pk=pid)
+ rs = project.request_set.all()
+ can_request = can(request.user,'request',project)
+ return {'project': project,
+ 'can_request': can_request,
+ 'requests': rs}
+
+@login_required
+@render_to('create_request.html')
+def create_request(request,pid):
+ project = Project.objects.get(pk=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.save()
+ return HttpResponseRedirect(reverse('mgmt.views.requests',args=(pid,)))
+ else:
+ return {'project': project,
+ 'form': form}
+ form = RequestForm()
+ return {'project': project,
+ 'form': form}
+
+@check_auth(Request,'edit')
+@render_to('edit_request.html')
+def edit_request(request,rq):
+ if request.method=='POST':
+ form = RequestForm(request.POST)
+ if form.is_valid():
+ title = form.cleaned_data['title']
+ text = form.cleaned_data['text']
+ rq.title = title
+ rq.text = text
+ rq.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})
+ return {'request': rq,
+ 'form': form}
+
+@render_to('request.html')
+def one_request(request,rid):
+ rq = Request.objects.get(pk=rid)
+ if request.method=='POST':
+ if request.POST['action']=='change_state':
+ new_state = request.POST['state']
+ rq.status = new_state
+ rq.save()
+ else:
+ title = request.POST['title']
+ text = request.POST['text']
+ if not title:
+ title = text[:20]+'...'
+ c = Comment(created=datetime.now(),
+ author = request.user,
+ object_id = rid,
+ object_type = 'Request',
+ title = title,
+ text = text)
+ c.save()
+ can_change_state = can(request.user,'change_state',rq)
+ if can_change_state:
+ state_form = RequestStateForm({'state': rq.status})
+ else:
+ state_form = None
+ can_edit = can(request.user,'edit',rq)
+ tasks = rq.task_set.all()
+ page,pages,comments = get_comments(request,rid,'Request')
+ if can(request.user,'comment'):
+ form = CommentForm()
+ else:
+ form = None
+ return {'request': rq,
+ 'tasks': tasks,
+ 'can_edit': can_edit,
+ 'state_form': state_form,
+ 'current_page': page,
+ 'page_numbers': pages,
+ 'comments': comments,
+ 'form': form}
+
diff --git a/mgmt/tasks_views.py b/mgmt/tasks_views.py
new file mode 100644
index 0000000..8c6f5e1
--- /dev/null
+++ b/mgmt/tasks_views.py
@@ -0,0 +1,68 @@
+from decorators import check_auth,login_required,render_to
+from models import *
+from rights import can
+from forms import TaskStateForm,TaskModelForm
+
+@render_to('project_tasks.html')
+def project_tasks(request,pid):
+ project = Project.objects.get(pk=pid)
+ tasks = project.task_set.all()
+ can_task = can(request.user,'create task',project)
+ return {'project': project,
+ 'can_task': can_task,
+ 'tasks': tasks}
+
+@render_to('task.html')
+def one_task(request,tid):
+ task = Task.objects.select_related().get(pk=tid)
+ if request.method=='POST':
+ task.status = request.POST['state']
+ task.save()
+ can_edit = can(request.user,'edit',task)
+ can_report = request.user.id == task.to.id
+ reports = task.report_set.all()
+ if can(request.user,'change_state',task):
+ state_form = TaskStateForm({'state': task.status})
+ else:
+ state_form = None
+ return {'task': task,
+ 'can_report': can_report,
+ 'reports': reports,
+ 'state_form': state_form,
+ 'can_edit': can_edit}
+
+@check_auth(Task,'edit')
+@render_to('edit_task.html')
+def edit_task(request,task):
+ if request.method=='POST':
+ form = TaskModelForm(request.POST,instance=task)
+ if form.is_valid():
+ task = form.save(commit=False)
+ task.save()
+ return HttpResponseRedirect(reverse('mgmt.views.one_task',args=(task.id,)))
+ else:
+ return {'form': form,
+ 'task': task}
+ else:
+ form = TaskModelForm(instance=task)
+ return {'form': form,
+ 'task': task}
+
+@check_auth(Project,'create task')
+@render_to('create_task.html')
+def create_task(request,project):
+ if request.method=='POST':
+ form = TaskModelForm(request.POST)
+ if form.is_valid():
+ task = form.save(commit=False)
+ task.project = project
+ task.created = datetime.now()
+ task.author = request.user
+ task.status = 0
+ task = task.save()
+ return HttpResponseRedirect(reverse('mgmt.views.project_tasks',args=(project.id,)))
+ else:
+ return {'form': form}
+ else:
+ form = TaskModelForm()
+ return {'form': form}
diff --git a/mgmt/views.py b/mgmt/views.py
index 21f834f..99e2191 100644
--- a/mgmt/views.py
+++ b/mgmt/views.py
@@ -4,7 +4,6 @@
from datetime import datetime
from django.http import HttpResponse,Http404,HttpResponseForbidden,HttpResponseRedirect
-import django.newforms as djangoforms
from django.contrib.auth.models import User
from django.core.urlresolvers import reverse
@@ -13,10 +12,16 @@ from django.conf import settings
import debug
from models import *
from rights import can,possible_changes
-from utils import get_comments,get_bugs
from forms import *
from decorators import check_auth,login_required,render_to
+from project_views import *
+from bugs_views import *
+from requests_views import *
+from documents_views import *
+from tasks_views import *
+from reports_views import *
+
#############
# Views
############
@@ -26,275 +31,6 @@ def main(request):
projects = Project.objects.all()
return {'projects': projects}
-@render_to('project.html')
-def one_project(request,id):
- project = Project.objects.get(pk=id)
- if request.method=='POST':
- title = request.POST['title']
- text = request.POST['text']
- if not title:
- title = text[:20]+'...'
- c = Comment(created=datetime.now(),
- author = request.user,
- object_id = project.id,
- object_type = 'Project',
- title = title,
- text = text)
- c.save()
- curr,pages,comments = get_comments(request,project.id,'Project')
- if can(request.user,'comment'):
- form = CommentForm()
- else:
- form = None
- for comment in comments:
- comment.can_delete = can(request.user,'delete',comment)
- return {'project': project,
- 'current_page': curr,
- 'page_numbers': pages,
- 'comments': comments,
- 'form': form}
-
-@render_to('project_bugs.html')
-def project_bugs(request,id):
- project = Project.objects.get(pk=id)
- page,pages,bugs = get_bugs(request,id)
- for bug in bugs:
- bug.complexity_str = dict(settings.COMPLEXITY_CHOICES).get(bug.complexity,'Unknown')
- bug.priority_str = dict(settings.PRIORITY_CHOICES).get(bug.priority,'Unset')
- can_report = can(request.user,'send bug')
- return {'project': project,
- 'current_page': page,
- 'page_numbers': pages,
- 'bugs': bugs,
- 'can_report': can_report}
-
-@login_required
-@render_to('bug_report.html')
-def bug_report(request,pid):
- project = Project.objects.get(pk=pid)
- if request.method=='POST':
- form = BugForm(request.POST)
- if form.is_valid():
- name = form.cleaned_data['name']
- comp = form.cleaned_data['component']
- actions = form.cleaned_data['your_actions']
- expected = form.cleaned_data['expected']
- unexpected = form.cleaned_data['unexpected']
- text = form.cleaned_data['text']
- s0 = BugState.objects.get(pk=1)
- b = Bug(created=datetime.now(),
- author = request.user,
- project = project,
- status = s0,
- name = name,
- component=comp,
- actions=actions,
- expected=expected,
- unexpected=unexpected,
- priority=-1,
- text = text)
- b.save()
- return HttpResponseRedirect(reverse('mgmt.views.project_bugs',args=(pid,)))
- else:
- return {'project': project, 'form': form}
- form = BugForm()
- return {'project': project,
- 'form': form}
-
-@render_to('project_docs.html')
-def project_documents(request,id):
- project = Project.objects.get(pk=id)
- cats = Category.objects.filter(document__project=project)
- return {'project': project,
- 'categories': cats}
-
-@render_to('document.html')
-def one_document(request,id):
- doc = Document.objects.get(pk=id)
- if request.method=='POST':
- title = request.POST['title']
- text = request.POST['text']
- if not title:
- title = text[:20]+'...'
- c = Comment(created=datetime.now(),
- author = request.user,
- object_id = doc.id,
- object_type = 'Document',
- title = title,
- text = text)
- c.save()
- curr,pages,comments = get_comments(request,doc.id,'Document')
- if can(request.user,'comment'):
- form = CommentForm()
- else:
- form = None
- if can(request.user,'edit',doc):
- edit_link = '/docs/%s/edit/' % id
- else:
- edit_link = None
- for comment in comments:
- comment.can_delete = can(request.user,'delete',comment)
- return {'document': doc,
- 'edit_link': edit_link,
- 'current_page': curr,
- 'page_numbers': pages,
- 'comments': comments,
- 'form': form}
-
-@check_auth(Project,'document')
-@render_to('create_doc.html')
-def create_document(request,project):
- msg = ""
- if request.method=='POST':
- form = DocForm(request.POST)
- if form.is_valid():
- doc = form.save(commit=False)
- doc.created = datetime.now()
- doc.author = request.user
- doc.project = project
- doc.save()
- return HttpResponseRedirect(reverse('mgmt.views.one_document',args=(doc.id,)))
- else:
- return {'form': form}
- form = DocForm()
- return {'form': form}
-
-@check_auth(Document,'edit')
-@render_to('edit_document.html')
-def edit_document(request,doc):
- project = doc.project
- if request.method=='POST':
- form = DocForm(request.POST,instance=doc)
- if form.is_valid():
- form.save()
- return HttpResponseRedirect(reverse('mgmt.views.one_document',args=(doc.id,)))
- else:
- return {'document': doc,
- 'project_id': project.id,
- 'form': form}
- form = DocForm(instance=doc)
- return {'document': doc,
- 'project_id': project.id,
- 'form': form}
-
-def one_bug(request,id):
- bug = Bug.objects.get(pk=id)
- if request.method=='POST':
- if request.POST['action']=='comment':
- title = request.POST['title']
- text = request.POST['text']
- if not title:
- title = text[:20]+'...'
- c = Comment(created=datetime.now(),
- author = request.user,
- object_id = bug.id,
- object_type = 'Bug',
- title = title,
- text = text)
- c.save()
- elif request.POST['action']=='change_state':
- new_state = request.POST['new_state']
- bug.status = BugState.objects.get(pk=new_state)
- if bug.status.id==3:
- bug.responsible = request.user
- if bug.status.id in [1,4,5]:
- bug.priority=-1
- bug.save()
- elif request.POST['action']=='set_priority':
- bug.priority =request.POST['priority']
- bug.save()
- elif request.POST['action']=='set_complexity':
- bug.complexity = request.POST['complexity']
- bug.save()
- curr,pages,comments = get_comments(request,bug.id,'Bug')
- change_states = possible_changes(bug,request.user)
- if change_states:
- choices = [(st.id,st.name) for st in change_states]
-
- class BugStateForm(djangoforms.Form):
- new_state = djangoforms.ChoiceField(choices)
-
- state_form = BugStateForm()
- else:
- state_form = None
- if can(request.user,'set_priority',bug):
- priority_form = BugPriorityForm(dict(priority=bug.priority))
- else:
- priority_form = None
- if can(request.user,'set_complexity',bug):
- complexity_form = BugComplexityForm(dict(complexity=bug.complexity))
- else:
- complexity_form = None
- if can(request.user,'comment'):
- form = CommentForm()
- else:
- form = None
- if can(request.user,'edit',bug):
- edit_link = '/bugs/%s/edit/' % bug.id
- else:
- edit_link = None
- for comment in comments:
- comment.can_delete = can(request.user,'delete',comment)
- tasks = bug.task_set.all()
- priority = dict(settings.PRIORITY_CHOICES).get(bug.priority,u'Unset')
- complexity = dict(settings.COMPLEXITY_CHOICES).get(bug.complexity,'Unknown')
- return {'bug': bug,
- 'change_state': state_form,
- 'edit_link': edit_link,
- 'project': bug.project,
- 'current_page': curr,
- 'page_numbers': pages,
- 'comments': comments,
- 'tasks': tasks,
- 'priority': priority,
- 'complexity': complexity,
- 'priority_form': priority_form,
- 'complexity_form': complexity_form,
- 'form': form}
-
-@check_auth(Bug,'edit')
-@render_to('edit_bug.html')
-def edit_bug(request,bug):
- if request.method=='POST':
- form = BugForm(request.POST)
- if form.is_valid():
- name = form.cleaned_data['name']
- text = form.cleaned_data['text']
- comp = form.cleaned_data['component']
- actions = form.cleaned_data['your_actions']
- expected = form.cleaned_data['expected']
- unexpected = form.cleaned_data['unexpected']
- bug.name = name
- bug.text = text
- bug.component = comp
- bug.actions = actions
- bug.expected = expected
- bug.unexpected = unexpected
- bug.save()
- form = BugForm({'name': bug.name,
- 'text': bug.text,
- 'component': bug.component,
- 'your_actions': bug.actions,
- 'expected': bug.expected,
- 'unexpected': bug.unexpected})
- return {'project': bug.project,
- 'bug': bug,
- 'form': form}
-
-@render_to('all_bugs.html')
-def all_bugs(request):
- page,pages,bugs = get_bugs(request)
- return {'bugs': bugs,
- 'current_page': page,
- 'page_numbers': pages}
-
-@render_to('all_bugs.html')
-def bugs_by_state(request,sid):
- state = BugState.objects.get(pk=sid)
- page,pages,bugs = Bug.objects.filter(status=state)
- return {'bugs': bugs,
- 'state': state.name}
-
@login_required
@render_to('user_page.html')
def user_page(request,name):
@@ -339,118 +75,6 @@ def user_page(request,name):
def my_page(request):
return user_page(request,request.user.username)
-@render_to('report.html')
-def one_report(request,rid):
- report = Report.objects.select_related().get(pk=rid)
- can_edit = can(request.user,'edit',report)
- return {'report': report,
- 'can_edit': can_edit}
-
-@render_to('task_reports.html')
-def task_reports(request,tid):
- task = Task.objects.get(pk=tid)
- reports = task.report_set.select_related().all()
- return {'task': task,
- 'reports': reports}
-
-@login_required
-@render_to('create_report.html')
-def create_report(request,tid):
- if request.method=='POST':
- form = ReportModelForm(request.POST)
- if form.is_valid():
- report = form.save(commit=False)
- report.created = datetime.now()
- report.author = request.user
- report.task = Task.objects.get(pk=tid)
- report.save()
- return HttpResponseRedirect(reverse('mgmt.views.one_task',args=(tid,)))
- else:
- return {'form': form}
- else:
- form = ReportModelForm()
- return {'form': form}
-
-@check_auth(Report,'edit')
-@render_to('edit_report.html')
-def edit_report(request,report):
- if request.method=='POST':
- form = ReportModelForm(request.POST,instance=report)
- if form.is_valid():
- form.save()
- return HttpResponseRedirect(reverse('mgmt.views.one_report',args=(report.id,)))
- else:
- return {'form': form,
- 'report': report}
- else:
- form = ReportModelForm(instance=report)
- return {'form': form,
- 'report': report}
-
-@render_to('project_tasks.html')
-def project_tasks(request,pid):
- project = Project.objects.get(pk=pid)
- tasks = project.task_set.all()
- can_task = can(request.user,'create task',project)
- return {'project': project,
- 'can_task': can_task,
- 'tasks': tasks}
-
-@render_to('task.html')
-def one_task(request,tid):
- task = Task.objects.select_related().get(pk=tid)
- if request.method=='POST':
- task.status = request.POST['state']
- task.save()
- can_edit = can(request.user,'edit',task)
- can_report = request.user.id == task.to.id
- reports = task.report_set.all()
- if can(request.user,'change_state',task):
- state_form = TaskStateForm({'state': task.status})
- else:
- state_form = None
- return {'task': task,
- 'can_report': can_report,
- 'reports': reports,
- 'state_form': state_form,
- 'can_edit': can_edit}
-
-@check_auth(Task,'edit')
-@render_to('edit_task.html')
-def edit_task(request,task):
- if request.method=='POST':
- form = TaskModelForm(request.POST,instance=task)
- if form.is_valid():
- task = form.save(commit=False)
- task.save()
- return HttpResponseRedirect(reverse('mgmt.views.one_task',args=(task.id,)))
- else:
- return {'form': form,
- 'task': task}
- else:
- form = TaskModelForm(instance=task)
- return {'form': form,
- 'task': task}
-
-@check_auth(Project,'create task')
-@render_to('create_task.html')
-def create_task(request,project):
- if request.method=='POST':
- form = TaskModelForm(request.POST)
- if form.is_valid():
- task = form.save(commit=False)
- task.project = project
- task.created = datetime.now()
- task.author = request.user
- task.status = 0
- task = task.save()
- return HttpResponseRedirect(reverse('mgmt.views.project_tasks',args=(project.id,)))
- else:
- return {'form': form}
- else:
- form = TaskModelForm()
- return {'form': form}
-
@login_required
@render_to('private_message.html')
def private_message(request,mid):
@@ -479,99 +103,6 @@ def delete_comment(request,comment):
comment.delete()
return HttpResponseRedirect('/')
-@render_to('requests.html')
-def requests(request,pid):
- project = Project.objects.get(pk=pid)
- rs = project.request_set.all()
- can_request = can(request.user,'request',project)
- return {'project': project,
- 'can_request': can_request,
- 'requests': rs}
-
-@login_required
-@render_to('create_request.html')
-def create_request(request,pid):
- project = Project.objects.get(pk=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.save()
- return HttpResponseRedirect(reverse('mgmt.views.requests',args=(pid,)))
- else:
- return {'project': project,
- 'form': form}
- form = RequestForm()
- return {'project': project,
- 'form': form}
-
-@check_auth(Request,'edit')
-@render_to('edit_request.html')
-def edit_request(request,rq):
- if request.method=='POST':
- form = RequestForm(request.POST)
- if form.is_valid():
- title = form.cleaned_data['title']
- text = form.cleaned_data['text']
- rq.title = title
- rq.text = text
- rq.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})
- return {'request': rq,
- 'form': form}
-
-@render_to('request.html')
-def one_request(request,rid):
- rq = Request.objects.get(pk=rid)
- if request.method=='POST':
- if request.POST['action']=='change_state':
- new_state = request.POST['state']
- rq.status = new_state
- rq.save()
- else:
- title = request.POST['title']
- text = request.POST['text']
- if not title:
- title = text[:20]+'...'
- c = Comment(created=datetime.now(),
- author = request.user,
- object_id = rid,
- object_type = 'Request',
- title = title,
- text = text)
- c.save()
- can_change_state = can(request.user,'change_state',rq)
- if can_change_state:
- state_form = RequestStateForm({'state': rq.status})
- else:
- state_form = None
- can_edit = can(request.user,'edit',rq)
- tasks = rq.task_set.all()
- page,pages,comments = get_comments(request,rid,'Request')
- if can(request.user,'comment'):
- form = CommentForm()
- else:
- form = None
- return {'request': rq,
- 'tasks': tasks,
- 'can_edit': can_edit,
- 'state_form': state_form,
- 'current_page': page,
- 'page_numbers': pages,
- 'comments': comments,
- 'form': form}
-
@render_to('preview.html')
def message_preview(request):
if request.method=='POST':