diff options
-rw-r--r-- | pytask/taskapp/forms.py | 6 | ||||
-rw-r--r-- | pytask/taskapp/urls.py | 3 | ||||
-rwxr-xr-x | pytask/taskapp/views.py | 38 | ||||
-rw-r--r-- | pytask/templates/task/edit_textbook.html | 8 |
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 %} |