diff options
author | Madhusudan.C.S | 2011-01-16 17:04:13 +0530 |
---|---|---|
committer | Madhusudan.C.S | 2011-01-16 17:04:13 +0530 |
commit | c3d9677c604cb12ac6a09201038a1dd02af181ab (patch) | |
tree | a799a600eccc0b96709b03a591628e2560773259 | |
parent | 6faea1e0a91632fefe391c705d18c600e652c7f6 (diff) | |
download | pytask-c3d9677c604cb12ac6a09201038a1dd02af181ab.tar.gz pytask-c3d9677c604cb12ac6a09201038a1dd02af181ab.tar.bz2 pytask-c3d9677c604cb12ac6a09201038a1dd02af181ab.zip |
Restructured create form to use templatetags and use Javascript for autcomplete.
-rw-r--r-- | pytask/taskapp/urls.py | 1 | ||||
-rwxr-xr-x | pytask/taskapp/views.py | 42 | ||||
-rw-r--r-- | pytask/templates/base.html | 19 | ||||
-rw-r--r-- | pytask/templates/task/create.html | 26 | ||||
-rw-r--r-- | pytask/templates/task/create_textbook.html | 12 | ||||
-rw-r--r-- | pytask/templates/task/edit.html | 8 |
6 files changed, 76 insertions, 32 deletions
diff --git a/pytask/taskapp/urls.py b/pytask/taskapp/urls.py index c10d86e..1a0829c 100644 --- a/pytask/taskapp/urls.py +++ b/pytask/taskapp/urls.py @@ -20,6 +20,7 @@ urlpatterns = patterns('pytask.taskapp.views', url(r'^submit/report/(?P<task_id>\d+)$', 'submit_report', name='submit_report'), url(r'^browse/$', 'browse_tasks', name='browse_tasks'), + url(r'^suggest_tags/$', 'suggest_task_tags', name='suggest_task_tags'), ) # URL patterns specific to textbook projects. diff --git a/pytask/taskapp/views.py b/pytask/taskapp/views.py index 79b22d4..2e2a5aa 100755 --- a/pytask/taskapp/views.py +++ b/pytask/taskapp/views.py @@ -1,11 +1,12 @@ from datetime import datetime from django import shortcuts -from django.http import Http404 +from django import http from django.contrib.auth.decorators import login_required from django.contrib.auth.models import User from django.core.context_processors import csrf from django.core.urlresolvers import reverse +from django.utils import simplejson as json from pytask.views import show_msg @@ -46,7 +47,7 @@ def create_task(request): 'task/create.html', context) else: form = taskapp_forms.CreateTaskForm() - context.update({'form':form}) + context.update({'form': form}) return shortcuts.render_to_response('task/create.html', context) else: return show_msg(user, 'You are not authorised to create a task.') @@ -176,7 +177,7 @@ def edit_task(request, task_id): is_creator = True if user == task.created_by else False can_edit = True if task.status == "UP" and is_creator else False if not can_edit: - raise Http404 + raise http.Http404 context = {"user": user, "profile": profile, @@ -207,7 +208,7 @@ def approve_task(request, task_id): task = shortcuts.get_object_or_404(taskapp_models.Task, pk=task_id) if profile.rights not in ["MG", "DC"] or task.status != "UP": - raise Http404 + raise http.Http404 context = {"user": user, "profile": profile, @@ -225,7 +226,7 @@ def approved_task(request, task_id): task = shortcuts.get_object_or_404(taskapp_models.Task, pk=task_id) if profile.rights not in ["MG", "DC"] or task.status != "UP": - raise Http404 + raise http.Http404 task.approved_by = user task.approval_datetime = datetime.now() @@ -250,7 +251,7 @@ def addreviewer(request, task_id): can_mod_reviewers = True if profile.rights in ["MG", "DC"] else False if not can_mod_reviewers: - raise Http404 + raise http.Http404 context = {"user": user, "profile": profile, @@ -319,10 +320,8 @@ def view_work(request, task_id): @login_required def view_report(request, report_id): - try: - report = taskapp_models.WorkReport.objects.get(pk=report_id) - except taskapp_models.WorkReport.DoesNotExist: - raise Http404 + report = shortcuts.get_object_or_404(taskapp_models.WorkReport, + pk=report_id) user = request.user context = {"report": report, @@ -348,7 +347,7 @@ def submit_report(request, task_id): old_reports = task.reports.all() if not task.status == "WR": - raise Http404 + raise http.Http404 can_upload = True if user in task.selected_users.all() else False @@ -396,7 +395,7 @@ def create_textbook(request): can_create = True if profile.rights != "CT" else False if not can_create: - raise Http404 + raise http.Http404 context = {"user": user, "profile": profile, @@ -494,7 +493,7 @@ def edit_textbook(request, task_id): else False if not can_edit: - raise Http404 + raise http.Http404 context = {"user": user, "profile": profile, @@ -523,7 +522,7 @@ def claim_task(request, task_id): task = shortcuts.get_object_or_404(taskapp_models.Task, pk=task_id) if task.status == "UP": - raise Http404 + raise http.Http404 user = request.user profile = user.get_profile() @@ -631,7 +630,7 @@ def select_user(request, task_id): return show_msg(user, 'There are no pending claims for this task', task_url, 'view the task') else: - raise Http404 + raise http.Http404 @login_required def approve_textbook(request, task_id): @@ -642,7 +641,7 @@ def approve_textbook(request, task_id): textbook = shortcuts.get_object_or_404(taskapp_models.TextBook, pk=task_id) if profile.rights not in ["MG", "DC"] or textbook.status != "UP": - raise Http404 + raise http.Http404 context = {"user": user, "profile": profile, @@ -660,7 +659,7 @@ def approved_textbook(request, task_id): textbook = shortcuts.get_object_or_404(taskapp_models.TextBook, pk=task_id) if profile.rights not in ["MG", "DC"] or textbook.status != "UP": - raise Http404 + raise http.Http404 textbook.approved_by = user textbook.approval_datetime = datetime.now() @@ -673,3 +672,12 @@ def approved_textbook(request, task_id): } return shortcuts.render_to_response("task/approved_textbook.html", context) + +def suggest_task_tags(request): + """Returns the tags matching the query for the AJAXy autocomplete + to get tags related to tasks. + """ + + taskapp_models.Task.objects.filter(tags) + json_response = json.dumps(['abc', 'bca', 'bowbow']) + return http.HttpResponse(json_response) diff --git a/pytask/templates/base.html b/pytask/templates/base.html index f129e85..d2977df 100644 --- a/pytask/templates/base.html +++ b/pytask/templates/base.html @@ -1,8 +1,25 @@ <html> <head> <title>{% block title %}PyTasks{% endblock %}</title> - {% block js_script %} {% endblock %} + {% comment %}Load site wide CSS here. Additional styling must be + loaded in the block that follows{% endcomment %} <link rel=stylesheet href="/pytask/static/css/base.css" type="text/css" > + <link type="text/css" + href="/pytask/static/css/jquery/ui/cupertino/jquery-ui-1.8.8.custom.css" + rel="stylesheet" /> + {% block css %} + {% endblock %} + + {% comment %}Load site wide javascript here. Additional scripts must + be loaded in the block that follows{% endcomment %} + <script type="text/javascript" + src="/pytask/static/jquery/jquery-1.4.4.min.js"> + </script> + <script type="text/javascript" + src="/pytask/static/jquery/jquery-ui-1.8.8.custom.min.js"> + </script> + {% block js %} + {% endblock %} </head> {% load user_tags %} <body> diff --git a/pytask/templates/task/create.html b/pytask/templates/task/create.html index 99db36c..3bada8a 100644 --- a/pytask/templates/task/create.html +++ b/pytask/templates/task/create.html @@ -1,8 +1,22 @@ -{% extends 'base.html' %} +{% extends "base.html" %} +{% load form_helpers %} +{% block css %} + + <style> + .ui-autocomplete-loading { + background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; + } + </style> +{% endblock %} +{% block js %} + <script type="text/javascript" + src="/pytask/static/js/create_task_form.js"> + </script> + <script type="text/javascript"> + create_form("{% url suggest_task_tags %}"); + </script> +{% endblock %} + {% block content %} -<form action="" method="post"> -{% csrf_token %} -{{form.as_p}} -<input type="submit" value="Create"> -</form> + {% as_div_form form "Create Task Form" csrf_token "" "Create" %} {% endblock %} diff --git a/pytask/templates/task/create_textbook.html b/pytask/templates/task/create_textbook.html index 99db36c..5c50183 100644 --- a/pytask/templates/task/create_textbook.html +++ b/pytask/templates/task/create_textbook.html @@ -1,8 +1,10 @@ {% extends 'base.html' %} +{% load form_helpers %} + {% block content %} -<form action="" method="post"> -{% csrf_token %} -{{form.as_p}} -<input type="submit" value="Create"> -</form> + <form action="" method="post"> + {% csrf_token %} + {% as_div_form form %} + <input type="submit" value="Create"> + </form> {% endblock %} diff --git a/pytask/templates/task/edit.html b/pytask/templates/task/edit.html index 6c0c6df..7543f5e 100644 --- a/pytask/templates/task/edit.html +++ b/pytask/templates/task/edit.html @@ -1,8 +1,10 @@ {% extends 'base.html' %} +{% load form_helpers %} + {% block content %} - <form action="" method="post"> + <form action="" method="post"> {% csrf_token %} - {{form.as_p}} + {% as_div_form form %} <input type="submit" value="Update"> - </form> + </form> {% endblock %} |