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 |