taskapp/events/request.py
changeset 132 ca88bf4ad362
parent 131 85276c5aee5c
child 143 796ff9e279a8
equal deleted inserted replaced
131:85276c5aee5c 132:ca88bf4ad362
     1 from datetime import datetime
     1 from datetime import datetime
       
     2 from pytask.taskapp.models import Profile
     2 from pytask.taskapp.events.task import addCredits, addMentor
     3 from pytask.taskapp.events.task import addCredits, addMentor
     3 from pytask.taskapp.events.user import changeRole
     4 from pytask.taskapp.events.user import changeRole
     4 from pytask.taskapp.utilities.notification import create_notification
     5 from pytask.taskapp.utilities.notification import create_notification
     5 
     6 
     6 def reply_to_request(request_obj, reply, replied_by):
     7 def reply_to_request(request_obj, reply, replied_by):
    47                 addMentor(task, request_obj.replied_by)
    48                 addMentor(task, request_obj.replied_by)
    48             else:
    49             else:
    49                 ## tell the requested user that his request was rejected due to these reasons.
    50                 ## tell the requested user that his request was rejected due to these reasons.
    50                 create_notification(request_obj.role, requested_by, replied_by, False, task, request_obj.remarks, requested_by)
    51                 create_notification(request_obj.role, requested_by, replied_by, False, task, request_obj.remarks, requested_by)
    51 
    52 
    52         elif request_obj.role in ["AD", "MG", "DV"]:
    53         elif request_obj.role == "DV":
    53             if reply:
    54             if reply:
    54                 ## make him the role
    55                 ## tell only the user who made him a DV
    55                 ## here we check for rights just in case to be fine with demoted users. we change only the user who made request has that rights.
    56                 ## drop a welcome message to that fucker
    56                 changeRole(role=request_obj.role, user=request_obj.replied_by)
    57                 changeRole(role=request_obj.role, user=request_obj.replied_by)
       
    58                 create_notification(request_obj.role, request_obj.sent_by, request_obj.replied_by, reply, requested_by=request_obj.sent_by)
    57             else:
    59             else:
    58                 ## notify request_obj.sent_by that it has been rejected
    60                 create_notification(request_obj.role, request_obj.sent_by, request_obj.replied_by, reply, remarks=request_obj.remarks, requested_by=request_obj.sent_by)
    59                 pass
    61 
       
    62         elif request_obj.role == "MG":
       
    63             if reply:
       
    64                 ## tell all the MG and AD
       
    65                 ## drop a welcome message to that fucker
       
    66                 changeRole(role=request_obj.role, user=request_obj.replied_by)
       
    67                 alerting_users = Profile.objects.filter(user__is_active=True).exclude(rights="CT").exclude(rights="DV")
       
    68                 for a_profile in alerting_users:
       
    69                     create_notification(request_obj.role, a_profile.user, request_obj.replied_by, reply, requested_by=request_obj.sent_by)
       
    70             else:
       
    71                 create_notification(request_obj.role, request_obj.sent_by, request_obj.replied_by, reply, remarks=request_obj.remarks, requested_by=request_obj.sent_by)
       
    72 
       
    73         elif request_obj.role == "AD":
       
    74             if reply:
       
    75                 ## tell all the AD
       
    76                 ## drop a welcome message to that fucker
       
    77                 changeRole(role=request_obj.role, user=request_obj.replied_by)
       
    78                 alerting_users = Profile.objects.filter(user__is_active=True).filter(rights="AD")
       
    79                 for a_profile in alerting_users:
       
    80                     create_notification(request_obj.role, a_profile.user, request_obj.replied_by, reply, requested_by=request_obj.sent_by)
       
    81             else:
       
    82                 create_notification(request_obj.role, request_obj.sent_by, request_obj.replied_by, reply, remarks=request_obj.remarks, requested_by=request_obj.sent_by)
       
    83 
    60         return True #Reply has been added successfully
    84         return True #Reply has been added successfully
    61     return False #Already replied
    85     return False #Already replied