pytask/taskapp/views.py
changeset 353 181d4eb9f419
parent 350 4cc40503bf3c
child 355 c693def6510f
equal deleted inserted replaced
352:1a88b04adb39 353:181d4eb9f419
   135     else:
   135     else:
   136         form = TaskCommentForm()
   136         form = TaskCommentForm()
   137         context['form'] = form
   137         context['form'] = form
   138         return render_to_response('task/view.html', context)
   138         return render_to_response('task/view.html', context)
   139 
   139 
       
   140 @login_required
       
   141 def claim_task(response, tid):
       
   142 
       
   143     task_url = "/task/view/tid=%s"%tid
       
   144     claim_url = "/task/claim/tid=%s"%tid
       
   145     task = getTask(tid)
       
   146 
       
   147     if task.status == "UP":
       
   148         raise Http404
       
   149 
       
   150     user = request.user
       
   151     profile = user.get_profile()
       
   152 
       
   153     context = {"user": user,
       
   154                "profile": profile,
       
   155                "task": task,
       
   156               }
       
   157 
       
   158     context.update(csrf(request))
       
   159 
       
   160     reviewers = task.reviewers.all()
       
   161     claimed_users = task.claimed_users.all()
       
   162     assigned_users = task.assigned_users.all()
       
   163 
       
   164     is_creator = True if user == task.created_by else False
       
   165     is_reviewer = True if user in reviewers else False
       
   166     has_claimed = True if user in claimed_users else False
       
   167 
       
   168     task_claimable = True if task.status in ["OP", "WR"] else False
       
   169     can_claim = True if task_claimable and ( not has_claimed )\
       
   170                         and ( not is_reviewer ) else False
       
   171 
       
   172     old_claims = task.claims.all()
       
   173 
       
   174     context.update({"is_creator": is_creator,
       
   175                     "task_claimable": task_claimable,
       
   176                     "can_claim": can_claim,
       
   177                     "old_claims": old_claims})
       
   178 
       
   179     if request.method == "POST" and can_claim:
       
   180         form = ClaimTaskForm(request.POST)
       
   181         if form.is_valid():
       
   182             data = form.cleaned_data.copy()
       
   183             data.update({"uniq_key": make_key(TaskClaim),
       
   184                          "task": task,
       
   185                          "claim_datetime": datetime.now(),
       
   186                          "claimed_by": user,})
       
   187             new_claim = TaskClaim(**data)
       
   188             new_claim.save()
       
   189             return redirect(claim_url)
       
   190 
       
   191         else:
       
   192             context.update({"form": form})
       
   193             return render_to_response("task/claim.html", context)
       
   194     else:
       
   195         form = ClaimTaskForm()
       
   196         context.update({"form": form})
       
   197         return render_to_response("task/claim.html", context)
       
   198 
       
   199