diff -r 13e171f09941 -r a4fa11b2cb5c pytask/taskapp/views.py --- a/pytask/taskapp/views.py Sun Jan 09 19:45:42 2011 +0530 +++ b/pytask/taskapp/views.py Sun Jan 09 20:26:11 2011 +0530 @@ -12,10 +12,10 @@ from pytask.utils import make_key from pytask.views import show_msg -from pytask.taskapp.models import Task, TaskComment, TaskClaim +from pytask.taskapp.models import Task, TaskComment, TaskClaim, TextBook from pytask.taskapp.forms import CreateTaskForm, EditTaskForm, \ TaskCommentForm, ClaimTaskForm, \ - ChoiceForm, EditTaskForm + ChoiceForm, EditTaskForm, CreateTextbookForm from pytask.taskapp.utils import getTask from pytask.profile.utils import get_notification @@ -179,8 +179,44 @@ context.update({"form": form}) return render_to_response("task/edit.html", context) +@login_required +def create_textbook(request): + user = request.user + profile = user.get_profile() + can_create = True if profile.rights != "CT" else False + if not can_create: + raise Http404 + + context = {"user": user, + "profile": profile, + } + + context.update(csrf(request)) + + if request.method == "POST": + form = CreateTextbookForm(request.POST) + if form.is_valid(): + data = form.cleaned_data.copy() + data.update({"uniq_key": make_key(TextBook), + "created_by": user, + "creation_datetime": datetime.now()}) + del data['chapters'] + new_textbook = TextBook(**data) + new_textbook.save() + + new_textbook.chapters = form.cleaned_data['chapters'] + + textbook_url = "/task/textbook/tid=%s"%new_textbook.uniq_key + return redirect(textbook_url) + else: + context.update({"form": form}) + return render_to_response("task/create_textbook.html", context) + else: + form = CreateTextbookForm() + context.update({"form": form}) + return render_to_response("task/create_textbook.html", context) @login_required def claim_task(request, tid):