summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNishanth Amuluru2011-01-09 20:26:11 +0530
committerNishanth Amuluru2011-01-09 20:26:11 +0530
commitdeb58ffdd5d92525cca1ad855d45bf35962f9d23 (patch)
tree6ee9766a8cff055040d0f2a6958b796907d888a7
parentcc7c4a5f2b691b32fdcce8bf0d29f0a9b729304d (diff)
downloadpytask-deb58ffdd5d92525cca1ad855d45bf35962f9d23.tar.gz
pytask-deb58ffdd5d92525cca1ad855d45bf35962f9d23.tar.bz2
pytask-deb58ffdd5d92525cca1ad855d45bf35962f9d23.zip
add textbook works fine
-rw-r--r--pytask/taskapp/forms.py9
-rwxr-xr-xpytask/taskapp/models.py3
-rw-r--r--pytask/taskapp/urls.py4
-rwxr-xr-xpytask/taskapp/views.py40
-rw-r--r--pytask/templates/task/create_textbook.html8
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 %}