pytask/taskapp/views.py
changeset 362 070f01dd7d8e
parent 360 b4988ede9e3d
child 363 9b0812962133
equal deleted inserted replaced
361:41a7d8d49e35 362:070f01dd7d8e
     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})