taskapp/views/task.py
changeset 66 f670de53402b
parent 64 e743fe1f0f99
child 72 9fc60a221016
equal deleted inserted replaced
64:e743fe1f0f99 66:f670de53402b
     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})