--- 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= '<a href="/task/view/tid=%s">%s</a>'%(task.id, task.title)
+ credits_url = '<a href="/task/assigncredits/tid=%s">%s</a>'%(task.id, "click here")
+ mentor_url = '<a href="/user/view/uid=%s">%s</a>'%(requested_by.id, requested_by.username)
+ admin_url = '<a href="/user/view/uid=%s">%s</a>'%(sent_from.id, sent_from.username)
+ user_url = '<a href="/user/view/uid=%s">%s</a>'%(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<br />
+ %s if you want the view/assign pynts page of the task.<br />"""%(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.<br /> """%(mentor_url, pynts, user_url, task_url, admin_url)
+ if remarks:
+ notification.remarks = remarks
+ notification.message += "Reason: %s<br />"%remarks
+ notification.message += "<br />"
+
+ 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