3 from django.http import HttpResponse |
3 from django.http import HttpResponse |
4 from django.shortcuts import render_to_response, redirect |
4 from django.shortcuts import render_to_response, redirect |
5 |
5 |
6 from pytask.taskapp.models import User, Task, Comment, Claim |
6 from pytask.taskapp.models import User, Task, Comment, Claim |
7 from pytask.taskapp.forms.task import TaskCreateForm, AddMentorForm, AssignTaskForm |
7 from pytask.taskapp.forms.task import TaskCreateForm, AddMentorForm, AssignTaskForm |
8 from pytask.taskapp.events.task import createTask, addMentor, publishTask, addSubTask, addClaim, assignTask, getTask |
8 from pytask.taskapp.events.task import createTask, addMentor, publishTask, addSubTask, addClaim, assignTask, getTask, updateTask |
9 from pytask.taskapp.views.user import show_msg |
9 from pytask.taskapp.views.user import show_msg |
10 |
10 |
11 ## everywhere if there is no task, django should display 500 message.. but take care of that in sensitive views like add mentor and all |
11 ## everywhere if there is no task, django should display 500 message.. but take care of that in sensitive views like add mentor and all |
12 ## do not create su user thro syncdb |
12 ## do not create su user thro syncdb |
13 |
13 |
31 |
31 |
32 user = request.user |
32 user = request.user |
33 task = getTask(tid) |
33 task = getTask(tid) |
34 comments = Comment.objects.filter(task=task) |
34 comments = Comment.objects.filter(task=task) |
35 mentors = task.mentors.all() |
35 mentors = task.mentors.all() |
|
36 subs = task.subs.all() |
|
37 deps = task.deps.all() |
36 errors = [] |
38 errors = [] |
37 |
39 |
38 is_guest = True if not user.is_authenticated() else False |
40 is_guest = True if not user.is_authenticated() else False |
39 is_mentor = True if user in task.mentors.all() else False |
41 is_mentor = True if user in task.mentors.all() else False |
40 |
|
41 task_claimable = True if task.status in ["OP", "WR"] else False |
|
42 |
|
43 context = {'user':user, |
42 context = {'user':user, |
44 'task':task, |
43 'task':task, |
45 'comments':comments, |
44 'comments':comments, |
46 'mentors':mentors, |
45 'mentors':mentors, |
|
46 'subs':subs, |
|
47 'deps':deps, |
47 'is_guest':is_guest, |
48 'is_guest':is_guest, |
48 'is_mentor':is_mentor, |
49 'is_mentor':is_mentor, |
49 'errors':errors, |
50 'errors':errors, |
50 } |
51 } |
51 |
52 |
52 assigned_users = task.assigned_users.all() |
53 context['task_viewable'] = True if ( task.status not in ["UP", "DL"] ) or is_mentor else False |
53 if assigned_users: |
54 context['task_claimable'] = True if task.status in ["OP", "WR"] else False |
54 context['assigned_users'] = assigned_users |
55 |
|
56 context['can_mod_mentors'] = True if task.status in ["UP", "OP", "LO", "WR"] and is_mentor else False |
|
57 context['can_mod_tasks'] = True if task.status in ["UP", "OP", "LO"] and is_mentor else False |
|
58 context['can_assign_credits'] = True if task.status in ["OP", "WR"] and is_mentor else False |
|
59 |
|
60 context['assigned_users'] = task.assigned_users.all() |
55 |
61 |
56 if request.method == 'POST': |
62 if request.method == 'POST': |
57 if not is_guest: |
63 if not is_guest: |
58 data = request.POST["data"] |
64 data = request.POST["data"] |
59 task = getTask(tid) |
65 task = getTask(tid) |
91 if not task: |
97 if not task: |
92 error_msg = "Another task with the same title exists" |
98 error_msg = "Another task with the same title exists" |
93 return render_to_response('task/create.html',{'form':form, 'error_msg':error_msg}) |
99 return render_to_response('task/create.html',{'form':form, 'error_msg':error_msg}) |
94 |
100 |
95 addMentor(task, user) |
101 addMentor(task, user) |
|
102 updateTask(task,tags_field=data['tags_field']) |
96 if publish: publishTask(task) |
103 if publish: publishTask(task) |
97 task_url = '/task/view/tid=%s'%task.id |
104 task_url = '/task/view/tid=%s'%task.id |
98 return redirect(task_url) |
105 return redirect(task_url) |
99 else: |
106 else: |
100 return render_to_response('task/create.html',{'form':form}) |
107 return render_to_response('task/create.html',{'form':form}) |