diff -r f34e3a3e1439 -r e747da8bc110 taskapp/utilities/notification.py --- a/taskapp/utilities/notification.py Sat Feb 27 10:48:43 2010 +0530 +++ b/taskapp/utilities/notification.py Sat Feb 27 14:22:26 2010 +0530 @@ -2,19 +2,46 @@ from django.contrib.auth.models import User from pytask.taskapp.models import Notification -def create_notification(to,subject,message): +def create_notification(role, sent_to, sent_from=None, reply=None, task=None, receiving_user=None, pynts=None, requested_by=None, remarks=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 """ + notification = Notification(sent_date = datetime.now()) + notification.role = role + notification.sent_to = sent_to notification.save() - notification.sent_to = to - notification.sub = subject - notification.message = message - notification.save() + + if role == "PY": + + notification.sent_from = sent_from + notification.task = task + notification.pynts = pynts + + task_url= '%s'%(task.id, task.title) + credits_url = '%s'%(task.id, "click here") + mentor_url = '%s'%(requested_by.id, requested_by.username) + admin_url = '%s'%(sent_from.id, sent_from.username) + user_url = '%s'%(receiving_user.id, receiving_user.username) + + if reply: + notification.sub = "Approved request for assign of credits" + 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.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() + def mark_notification_read(notification_id): """ @@ -54,10 +81,5 @@ except Notification.DoesNotExist: return None - try: - notify_obj.sent_to.get(id=user.id) - except User.DoesNotExist: - return None - - if not notify_obj.is_deleted: + if notify_obj.sent_to == user and ( not notify_obj.is_deleted ): return notify_obj