1 from datetime import datetime |
1 from datetime import datetime |
|
2 |
|
3 from django.contrib.auth.models import User |
2 |
4 |
3 from django.shortcuts import render_to_response, redirect |
5 from django.shortcuts import render_to_response, redirect |
4 from django.http import Http404 |
6 from django.http import Http404 |
5 |
7 |
6 from django.contrib.auth.decorators import login_required |
8 from django.contrib.auth.decorators import login_required |
9 |
11 |
10 from pytask.utils import make_key |
12 from pytask.utils import make_key |
11 from pytask.views import show_msg |
13 from pytask.views import show_msg |
12 |
14 |
13 from pytask.taskapp.models import Task, TaskComment, TaskClaim |
15 from pytask.taskapp.models import Task, TaskComment, TaskClaim |
14 from pytask.taskapp.forms import CreateTaskForm, EditTaskForm, TaskCommentForm, ClaimTaskForm |
16 from pytask.taskapp.forms import CreateTaskForm, EditTaskForm, \ |
|
17 TaskCommentForm, ClaimTaskForm, \ |
|
18 ChoiceForm |
15 from pytask.taskapp.utils import getTask |
19 from pytask.taskapp.utils import getTask |
16 from pytask.profile.utils import get_notification |
20 from pytask.profile.utils import get_notification |
17 |
21 |
18 |
22 |
19 @login_required |
23 @login_required |
218 "task": task, |
222 "task": task, |
219 } |
223 } |
220 |
224 |
221 context.update(csrf(request)) |
225 context.update(csrf(request)) |
222 |
226 |
223 task_claimed = True if claimed_users else False |
|
224 claimed_users = task.claimed_users.all() |
227 claimed_users = task.claimed_users.all() |
225 selected_users = task.selected_users.all() |
228 selected_users = task.selected_users.all() |
|
229 task_claimed = True if claimed_users else False |
226 |
230 |
227 is_creator = True if user == task.created_by else False |
231 is_creator = True if user == task.created_by else False |
228 |
232 |
229 if ( is_creator or profile.rights in ["CR", "DC"] ) and \ |
233 if ( is_creator or profile.rights in ["CR", "DC"] ) and \ |
230 task.status in ["OP", "WR"] and task_claimed: |
234 task.status in ["OP", "WR"]: |
231 |
235 |
232 if claimed_users: |
236 if task_claimed: |
233 |
237 |
234 user_list = ((user.id,user.username) for user in claimed_users) |
238 user_list = ((user.id,user.username) for user in claimed_users) |
235 |
239 |
236 if request.method == "POST": |
240 if request.method == "POST": |
237 form = ChoiceForm(user_list, request.POST) |
241 form = ChoiceForm(user_list, request.POST) |
238 if form.is_valid(): |
242 if form.is_valid(): |
239 uid = form.cleaned_data['choice'] |
243 uid = form.cleaned_data['choice'] |
240 selected_user = User.objects.get(id=uid) |
244 selected_user = User.objects.get(id=uid) |
241 |
245 |
242 task.selected_users.add(user) |
246 task.selected_users.add(selected_user) |
243 task.claimed_users.remove(user) |
247 task.claimed_users.remove(selected_user) |
244 task.save() |
248 task.save() |
245 |
249 |
246 return redirect(task_url) |
250 return redirect(task_url) |
247 else: |
251 else: |
248 context.update({"form": form}) |
252 context.update({"form": form}) |