Ability to edit bugs.

portnov [2008-06-09 06:29:13]
Ability to edit bugs.
Filename
mgmt/views.py
templates/bug_body.html
templates/edit_bug.html
urls.py
diff --git a/mgmt/views.py b/mgmt/views.py
index 8ed2c70..21da2fd 100644
--- a/mgmt/views.py
+++ b/mgmt/views.py
@@ -178,14 +178,34 @@ def one_bug(request,id):
     form = CommentForm()
   else:
     form = None
+  if can(request.user,'edit',bug):
+    edit_link = '/bugs/%s/edit/' % bug.id
+  else:
+    edit_link = None
   return render_it('bug.html',
       {'bug': bug,
        'change_state': state_form,
+       'edit_link': edit_link,
        'project': bug.project,
        'comments': comments,
        'form': form},
        request)

+def edit_bug(request,id):
+  bug = Bug.objects.get(pk=id)
+  if request.method=='POST':
+    name = request.POST['name']
+    text = request.POST['text']
+    bug.name = name
+    bug.text = text
+    bug.save()
+  form = BugForm(dict(name=bug.name, text=bug.text))
+  return render_it('edit_bug.html',
+      {'project': bug.project,
+       'bug': bug,
+       'form': form},
+      request)
+
 def create_document(request,pid):
   msg = ""
   project = Project.objects.get(pk=pid)
diff --git a/templates/bug_body.html b/templates/bug_body.html
index 2ab1b5b..ce312f6 100644
--- a/templates/bug_body.html
+++ b/templates/bug_body.html
@@ -1,6 +1,9 @@
     {% load prj_filters %}
       <div class='bug bug-state-{{bug.status.id}}'>
         <h3><a href='/bugs/{{bug.id}}/'>Баг #{{bug.id}}: {{bug.name}}</a></h3>
+        {% if edit_link %}
+          <div class='links'><a href='{{edit_link}}'>Изменить</a></div>
+        {% endif %}
         <div class='project-link'>{{project|link|safe}}</div>
         <p>{{bug.text}}</p>
       </div>
diff --git a/templates/edit_bug.html b/templates/edit_bug.html
new file mode 100644
index 0000000..1e6fe87
--- /dev/null
+++ b/templates/edit_bug.html
@@ -0,0 +1,15 @@
+{% extends "base.html" %}
+
+{% block title %}Редактировать баг #{{bug.id}}{% endblock %}
+
+{% block main %}
+
+<h2>Редактировать баг #{{bug.id}}</h2>
+<div class='links'><a href='/bugs/{{bug.id}}/'>Посмотреть</a></div>
+
+<form action='.' method='post'>
+  {{form.as_p}}
+  <input type='submit'/>
+</form>
+
+{% endblock %}
diff --git a/urls.py b/urls.py
index 577a30e..0f8f5a4 100644
--- a/urls.py
+++ b/urls.py
@@ -9,6 +9,7 @@ urlpatterns = patterns('',
     (r'^docs/(\d+)/$', "mgmt.views.one_document"),
     (r'^docs/(\d+)/edit/$', "mgmt.views.edit_document"),
     (r'^bugs/(\d+)/$', "mgmt.views.one_bug"),
+    (r'^bugs/(\d+)/edit/$', "mgmt.views.edit_bug"),
     (r'^bugs/$', "mgmt.views.all_bugs"),
     (r'^create/doc/(\d+)/$', "mgmt.views.create_document"),
ViewGit