# HG changeset patch
# User nishanth
# Date 1267271422 -19800
# Node ID 85276c5aee5cd43e9b77bcaf9dab2b84d2b18748
# Parent 9417ae986d2abbd7efa45b466fc2e88d42f87d93
added notifications for approval and rejection of a mentor.
diff -r 9417ae986d2a -r 85276c5aee5c taskapp/events/request.py
--- a/taskapp/events/request.py Sat Feb 27 14:38:01 2010 +0530
+++ b/taskapp/events/request.py Sat Feb 27 17:20:22 2010 +0530
@@ -27,20 +27,27 @@
for a_mentor in task.mentors.all():
if reply:
addCredits(task, request_obj.sent_by, request_obj.receiving_user, pynts)
- create_notification(request_obj.role, a_mentor, replied_by, True, task, receiving_user, pynts, requested_by)
+ create_notification(request_obj.role, a_mentor, replied_by, True, task, request_obj.remarks, requested_by, receiving_user, pynts)
else:
- create_notification(request_obj.role, a_mentor, replied_by, False, task, receiving_user, pynts, requested_by, request_obj.remarks)
+ create_notification(request_obj.role, a_mentor, replied_by, False, task, request_obj.remarks, requested_by, receiving_user, pynts)
elif request_obj.role == "MT":
- ## add him as a mentor to the task
+ task = request_obj.task
+ requested_by = request_obj.sent_by
if reply:
- ## check for the current rights of request_obj.sent_by
- ## what if he is no more a mentor to the task
- addMentor(request_obj.task, request_obj.replied_by)
- ## pass on notification of request_obj.sent_by
+ ## tell the replied user that he is mentor for this task and give him learn more link
+ create_notification("NT", request_obj.replied_by, task=task)
+
+ ## alert all the mentors including who made request and all assigned users
+ for a_mentor in task.mentors.all():
+ create_notification(request_obj.role, a_mentor, replied_by, True, task, request_obj.remarks, requested_by)
+ for a_user in task.assigned_users.all():
+ create_notification(request_obj.role, a_user, replied_by, True, task, request_obj.remarks, requested_by)
+
+ addMentor(task, request_obj.replied_by)
else:
- print "request for mentor rejected"
- ## pass on notification to request_obj.sent_by
+ ## tell the requested user that his request was rejected due to these reasons.
+ create_notification(request_obj.role, requested_by, replied_by, False, task, request_obj.remarks, requested_by)
elif request_obj.role in ["AD", "MG", "DV"]:
if reply:
diff -r 9417ae986d2a -r 85276c5aee5c taskapp/events/task.py
--- a/taskapp/events/task.py Sat Feb 27 14:38:01 2010 +0530
+++ b/taskapp/events/task.py Sat Feb 27 17:20:22 2010 +0530
@@ -3,6 +3,7 @@
from pytask.taskapp.utilities.task import getTask
from pytask.taskapp.utilities.request import create_request
from pytask.taskapp.utilities.helper import get_key
+from pytask.taskapp.utilities.notification import create_notification
def publishTask(task, rem_mentors=True, rem_comments=True):
""" set the task status to open """
diff -r 9417ae986d2a -r 85276c5aee5c taskapp/models.py
--- a/taskapp/models.py Sat Feb 27 14:38:01 2010 +0530
+++ b/taskapp/models.py Sat Feb 27 17:20:22 2010 +0530
@@ -35,7 +35,8 @@
("CD", "Task closed"),
("DL", "Task deleted"),
("KD", "Kicked off"),
- ("MS", "Message"),
+ ("NU", "New User"),
+ ("NT", "New Mentor"),
)
diff -r 9417ae986d2a -r 85276c5aee5c taskapp/utilities/notification.py
--- a/taskapp/utilities/notification.py Sat Feb 27 14:38:01 2010 +0530
+++ b/taskapp/utilities/notification.py Sat Feb 27 17:20:22 2010 +0530
@@ -2,12 +2,22 @@
from django.contrib.auth.models import User
from pytask.taskapp.models import Notification
-def create_notification(role, sent_to, sent_from=None, reply=None, task=None, receiving_user=None, pynts=None, requested_by=None, remarks=None):
+def create_notification(role, sent_to, sent_from=None, reply=None, task=None, remarks=None, requested_by=None, receiving_user=None, pynts=None):
"""
creates a notification based on the passed arguments.
- to - a list of users to which the notification is to be sent
- subject - subject of the notification message to be sent
- message - message body of the notification
+ role: role of the notification - look at choices in models
+ sent_to: a user to which the notification is to be sent
+ sent_from : a user from which the message has originated
+ A user who approves/rejects in case of request
+ A mentor who closes/complets the task
+ reply: A boolean
+ task: a task if applicable
+ requested_by: a user makes the request
+ A mentor who assigns credits in case of pynts
+ A mentor who requests to act as a mentor
+ remarks: any remarks for rejecting
+ receiving_user: user receiving pynts
+ pynts: the obvious
"""
notification = Notification(sent_date = datetime.now())
@@ -28,19 +38,60 @@
user_url = '%s'%(receiving_user.id, receiving_user.username)
if reply:
- notification.sub = "Approved request for assign of credits"
+ notification.sub = "Approved request for assign of credits for %s"%task.title[:20]
notification.message = """ Request made by %s to assign %s pynts to %s for the task %s has been approved by %s
%s if you want the view/assign pynts page of the task.
"""%(mentor_url, pynts, user_url, task_url, admin_url, credits_url)
else:
- notification.sub = "Rejected request for assign of credits"
+ notification.sub = "Rejected request for assign of credits for %s"%task.title[:20]
notification.message = """ Request made by %s to assign %s pynts to %s for the task %s has been rejected by %s.
"""%(mentor_url, pynts, user_url, task_url, admin_url)
if remarks:
notification.remarks = remarks
notification.message += "Reason: %s
"%remarks
notification.message += "
"
- notification.save()
+ elif role == "MT":
+
+ task_url= '%s'%(task.id, task.title)
+ requested_mentor_url = '%s'%(requested_by.id, requested_by.username)
+ new_mentor = sent_from
+ new_mentor_url = '%s'%(new_mentor.id, new_mentor.username)
+
+ if reply:
+ notification.sub = "New mentor for the task %s"%task.title[:20]
+ notification.message = "%s has accepted the request made by %s, asking him act as a mentor for the task %s
"%(new_mentor_url, requested_mentor_url, task_url)
+ notification.message += "He can be contacted on %s"%new_mentor.email
+
+ else:
+ notification.sub = "Rejected request to act as a mentor for %s"%task.title[:20]
+ notification.message = "%s has rejected your request asking him to act as a mentor for %s.
"%(new_mentor_url, task_url)
+ if remarks:
+ notification.message += "Remarks: %s
"%remarks
+
+
+ elif role == "NT":
+
+ new_mentor = sent_to
+ mentor_learn_url = 'learn more'
+ task_url= '%s'%(task.id, task.title)
+
+ notification.sub = "You are mentoring the task %s"%task.title[:20]
+ notification.message = "You have accepted to act as a mentor%s for the task %s.
"%(mentor_learn_url, task_url)
+ notification.message += " Here is a list of other mentors and their email addresses.