diff options
author | Nishanth Amuluru | 2011-01-09 20:26:11 +0530 |
---|---|---|
committer | Nishanth Amuluru | 2011-01-09 20:26:11 +0530 |
commit | deb58ffdd5d92525cca1ad855d45bf35962f9d23 (patch) | |
tree | 6ee9766a8cff055040d0f2a6958b796907d888a7 | |
parent | cc7c4a5f2b691b32fdcce8bf0d29f0a9b729304d (diff) | |
download | pytask-deb58ffdd5d92525cca1ad855d45bf35962f9d23.tar.gz pytask-deb58ffdd5d92525cca1ad855d45bf35962f9d23.tar.bz2 pytask-deb58ffdd5d92525cca1ad855d45bf35962f9d23.zip |
add textbook works fine
-rw-r--r-- | pytask/taskapp/forms.py | 9 | ||||
-rwxr-xr-x | pytask/taskapp/models.py | 3 | ||||
-rw-r--r-- | pytask/taskapp/urls.py | 4 | ||||
-rwxr-xr-x | pytask/taskapp/views.py | 40 | ||||
-rw-r--r-- | pytask/templates/task/create_textbook.html | 8 |
5 files changed, 59 insertions, 5 deletions
diff --git a/pytask/taskapp/forms.py b/pytask/taskapp/forms.py index fa83e20..5f5fcc4 100644 --- a/pytask/taskapp/forms.py +++ b/pytask/taskapp/forms.py @@ -1,5 +1,6 @@ from django import forms -from pytask.taskapp.models import Task, WorkReport, TaskComment, TaskClaim +from pytask.taskapp.models import Task, WorkReport, TaskComment, TaskClaim, \ + TextBook class CreateTaskForm(forms.ModelForm): class Meta: @@ -85,6 +86,12 @@ def ChoiceForm(choices, data=None): form = myform(data) if data else myform() return form +class CreateTextbookForm(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/models.py b/pytask/taskapp/models.py index cc74847..41d03f2 100755 --- a/pytask/taskapp/models.py +++ b/pytask/taskapp/models.py @@ -136,7 +136,8 @@ class PyntRequests(models.Model): class TextBook(models.Model): uniq_key = models.CharField(max_length = 10, unique = True) - chapters = models.ManyToManyField(Task, related_name="%(class)s_set") + name = models.CharField(max_length = 100) + chapters = models.ManyToManyField(Task, related_name="textbooks") tags_field = TagField(verbose_name="Tags") created_by = models.ForeignKey(User, related_name = "created_textbooks") diff --git a/pytask/taskapp/urls.py b/pytask/taskapp/urls.py index 8b47742..289b152 100644 --- a/pytask/taskapp/urls.py +++ b/pytask/taskapp/urls.py @@ -1,7 +1,7 @@ from django.conf.urls.defaults import * from pytask.taskapp.views import create_task, view_task, claim_task, \ - select_user, edit_task + select_user, edit_task, create_textbook urlpatterns = patterns('', @@ -10,5 +10,7 @@ urlpatterns = patterns('', (r'^view/tid=(\w+)$', view_task), (r'^claim/tid=(\w+)$', claim_task), (r'^select/tid=(\w+)$', select_user), + + (r'^textbook/create/$', create_textbook) ) diff --git a/pytask/taskapp/views.py b/pytask/taskapp/views.py index c90f1b9..136608a 100755 --- a/pytask/taskapp/views.py +++ b/pytask/taskapp/views.py @@ -12,10 +12,10 @@ from django.views.decorators.csrf import csrf_protect 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 @@ def edit_task(request, tid): 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): diff --git a/pytask/templates/task/create_textbook.html b/pytask/templates/task/create_textbook.html new file mode 100644 index 0000000..99db36c --- /dev/null +++ b/pytask/templates/task/create_textbook.html @@ -0,0 +1,8 @@ +{% extends 'base.html' %} +{% block content %} +<form action="" method="post"> +{% csrf_token %} +{{form.as_p}} +<input type="submit" value="Create"> +</form> +{% endblock %} |