summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pytask/taskapp/forms.py6
-rw-r--r--pytask/taskapp/urls.py3
-rwxr-xr-xpytask/taskapp/views.py38
-rw-r--r--pytask/templates/task/edit_textbook.html8
4 files changed, 53 insertions, 2 deletions
diff --git a/pytask/taskapp/forms.py b/pytask/taskapp/forms.py
index 5f5fcc4..fb206f1 100644
--- a/pytask/taskapp/forms.py
+++ b/pytask/taskapp/forms.py
@@ -92,6 +92,12 @@ class CreateTextbookForm(forms.ModelForm):
model = TextBook
fields = ['name', 'chapters', 'tags_field']
+class EditTextbookForm(forms.ModelForm):
+
+ class Meta:
+ model = TextBook
+ fields = ['name', 'chapters', 'tags_field']
+
def AddReviewerForm(choices,instance=None):
""" return a form object with appropriate choices """
diff --git a/pytask/taskapp/urls.py b/pytask/taskapp/urls.py
index 9fe94db..fe752c7 100644
--- a/pytask/taskapp/urls.py
+++ b/pytask/taskapp/urls.py
@@ -2,7 +2,7 @@ from django.conf.urls.defaults import *
from pytask.taskapp.views import create_task, view_task, claim_task, \
select_user, edit_task, create_textbook, view_textbook, \
- browse_textbooks
+ browse_textbooks, edit_textbook
from pytask.views import under_construction
@@ -17,6 +17,7 @@ urlpatterns = patterns('',
(r'^textbook/create/$', create_textbook),
(r'^textbook/view/tid=(\w+)/$', view_textbook),
+ (r'^textbook/edit/tid=(\w+)/$', edit_textbook),
(r'^textbook/browse/$', browse_textbooks),
)
diff --git a/pytask/taskapp/views.py b/pytask/taskapp/views.py
index 292b4c0..7474796 100755
--- a/pytask/taskapp/views.py
+++ b/pytask/taskapp/views.py
@@ -15,7 +15,8 @@ from pytask.views import show_msg
from pytask.taskapp.models import Task, TaskComment, TaskClaim, TextBook
from pytask.taskapp.forms import CreateTaskForm, EditTaskForm, \
TaskCommentForm, ClaimTaskForm, \
- ChoiceForm, EditTaskForm, CreateTextbookForm
+ ChoiceForm, EditTaskForm, CreateTextbookForm,\
+ EditTextbookForm
from pytask.taskapp.utils import getTask, getTextBook
from pytask.profile.utils import get_notification
@@ -270,6 +271,41 @@ def browse_textbooks(request):
return render_to_response("task/browse_textbooks.html", context)
@login_required
+def edit_textbook(request, tid):
+
+ user = request.user
+ profile = user.get_profile()
+
+ textbook = getTextBook(tid)
+ textbook_url = "/task/textbook/view/tid=%s"%textbook.uniq_key
+
+ can_edit = True if user == textbook.created_by and textbook.status == "UP"\
+ else False
+
+ if not can_edit:
+ raise Http404
+
+ context = {"user": user,
+ "profile": profile,
+ "textbook": textbook,
+ }
+
+ context.update(csrf(request))
+
+ if request.method == "POST":
+ form = EditTextbookForm(request.POST, instance=textbook)
+ if form.is_valid():
+ form.save()
+ return redirect(textbook_url)
+ else:
+ context.update({"form": form})
+ return render_to_response("task/edit_textbook.html", context)
+ else:
+ form = EditTextbookForm(instance=textbook)
+ context.update({"form": form})
+ return render_to_response("task/edit_textbook.html", context)
+
+@login_required
def claim_task(request, tid):
task_url = "/task/view/tid=%s"%tid
diff --git a/pytask/templates/task/edit_textbook.html b/pytask/templates/task/edit_textbook.html
new file mode 100644
index 0000000..6c0c6df
--- /dev/null
+++ b/pytask/templates/task/edit_textbook.html
@@ -0,0 +1,8 @@
+{% extends 'base.html' %}
+{% block content %}
+ <form action="" method="post">
+ {% csrf_token %}
+ {{form.as_p}}
+ <input type="submit" value="Update">
+ </form>
+{% endblock %}