From 2e78ea670355735b7a717dcfd87f1690cacf6ef6 Mon Sep 17 00:00:00 2001 From: nishanth Date: Sun, 28 Feb 2010 22:49:05 +0530 Subject: ditchaxed credit model. --- taskapp/admin.py | 3 +-- taskapp/events/request.py | 11 ++++------ taskapp/events/task.py | 45 +++++++++++++++++++-------------------- taskapp/events/user.py | 2 +- taskapp/models.py | 11 ---------- taskapp/utilities/notification.py | 21 ++++++++++++++++-- taskapp/views/task.py | 6 ++---- 7 files changed, 49 insertions(+), 50 deletions(-) diff --git a/taskapp/admin.py b/taskapp/admin.py index 1d18b4e..719c87e 100644 --- a/taskapp/admin.py +++ b/taskapp/admin.py @@ -1,11 +1,10 @@ from django.contrib import admin -from pytask.taskapp.models import Profile, Task, Credit, Comment, Claim, Notification, Request +from pytask.taskapp.models import Profile, Task, Comment, Claim, Notification, Request admin.site.register(Profile) admin.site.register(Task) admin.site.register(Comment) -admin.site.register(Credit) admin.site.register(Claim) admin.site.register(Notification) admin.site.register(Request) diff --git a/taskapp/events/request.py b/taskapp/events/request.py index b74f678..8d83851 100644 --- a/taskapp/events/request.py +++ b/taskapp/events/request.py @@ -1,6 +1,6 @@ from datetime import datetime from pytask.taskapp.models import Profile -from pytask.taskapp.events.task import addCredits, addMentor +from pytask.taskapp.events.task import addMentor from pytask.taskapp.events.user import changeRole from pytask.taskapp.utilities.notification import create_notification @@ -25,12 +25,9 @@ def reply_to_request(request_obj, reply, replied_by): pynts = request_obj.pynts receiving_user = request_obj.receiving_user requested_by = request_obj.sent_by - 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, request_obj.remarks, requested_by, receiving_user, pynts) - else: - create_notification(request_obj.role, a_mentor, replied_by, False, task, request_obj.remarks, requested_by, receiving_user, pynts) + create_notification(request_obj.role, receiving_user, replied_by, reply, task, request_obj.remarks, requested_by, receiving_user, pynts) + if receiving_user != requested_by: + create_notification(request_obj.role, requested_by, replied_by, reply, task, request_obj.remarks, requested_by, receiving_user, pynts) elif request_obj.role == "MT": task = request_obj.task diff --git a/taskapp/events/task.py b/taskapp/events/task.py index fb3c3f3..0d214ef 100644 --- a/taskapp/events/task.py +++ b/taskapp/events/task.py @@ -1,5 +1,5 @@ from datetime import datetime -from pytask.taskapp.models import Profile, Task, Comment, Credit, Claim, Map +from pytask.taskapp.models import Profile, Task, Comment, Claim, Map from pytask.taskapp.utilities.task import getTask from pytask.taskapp.utilities.request import create_request from pytask.taskapp.utilities.helper import get_key @@ -102,8 +102,6 @@ def addMentor(task,mentor): task.save() return task - - def createTask(title,desc,created_by,credits): """ creates a bare minimum task with title, description and credits. the creator of the task will be assigned as a mentor for the task. @@ -189,31 +187,12 @@ def removeUser(main_task, rem_user): main_task.assigned_users.remove(rem_user) main_task.save() -def completeTask(main_task): - """ set the status of task to CP. - """ - - main_task.status = "CP" - main_task.save() - def assignCredits(task, given_by, given_to, points): """ make a proper request object. """ create_request(sent_by=given_by, role="PY", task=task, receiving_user=given_to, pynts=points ) -def addCredits(task, given_by, given_to, points): - """ add credit to the credits model. - """ - - creditobj = Credit() - creditobj.task = task - creditobj.given_by = given_by - creditobj.given_to = given_to - creditobj.points = points - creditobj.given_time = datetime.now() - creditobj.save() - def completeTask(task, marked_by): """ set the status of task as completed. We dont have to inform parent tasks. @@ -229,7 +208,18 @@ def completeTask(task, marked_by): ## generate notification appropriately using marked_by ## we also have to mark unread requests as invalid -def closeTask(task, closed_by): + for a_user in task.assigned_users.all(): + create_notification(role="CM", sent_to=a_user, sent_from=marked_by, task=task) + + for a_user in task.claimed_users.all(): + create_notification(role="CM", sent_to=a_user, sent_from=marked_by, task=task) + + for a_mentor in task.mentors.all(): + create_notification(role="CM", sent_to=a_mentor, sent_from=marked_by, task=task) + + + +def closeTask(task, closed_by, reason=None): """ set the status of task as CD. generate notifications accordingly. """ @@ -242,4 +232,13 @@ def closeTask(task, closed_by): ## generate notifications here + for a_user in task.assigned_users.all(): + create_notification(role="CD", sent_to=a_user, sent_from=marked_by, task=task) + + for a_user in task.claimed_users.all(): + create_notification(role="CD", sent_to=a_user, sent_from=marked_by, task=task) + + for a_mentor in task.mentors.all(): + create_notification(role="CD", sent_to=a_mentor, sent_from=marked_by, task=task) + diff --git a/taskapp/events/user.py b/taskapp/events/user.py index dab0ff2..754cab0 100644 --- a/taskapp/events/user.py +++ b/taskapp/events/user.py @@ -1,5 +1,5 @@ from django.contrib.auth.models import User -from pytask.taskapp.models import Profile, Task, Comment, Credit +from pytask.taskapp.models import Profile, Task, Comment """ A collection of helper methods. note that there is no validation done here. we take care of validation and others checks in methods that invoke these methods. diff --git a/taskapp/models.py b/taskapp/models.py index dea15e6..e6e1133 100644 --- a/taskapp/models.py +++ b/taskapp/models.py @@ -127,17 +127,6 @@ class Comment(models.Model): def __unicode__(self): return unicode(self.task.title) -class Credit(models.Model): - - task = models.ForeignKey('Task') - given_by = models.ForeignKey(User, related_name = "%(class)s_given_by") - given_to = models.ForeignKey(User, related_name = "%(class)s_given_to") - points = models.PositiveSmallIntegerField() - given_time = models.DateTimeField() - - def __unicode__(self): - return unicode(self.task.title) - class Claim(models.Model): task = models.ForeignKey('Task') diff --git a/taskapp/utilities/notification.py b/taskapp/utilities/notification.py index afa0faa..75c35db 100644 --- a/taskapp/utilities/notification.py +++ b/taskapp/utilities/notification.py @@ -102,13 +102,30 @@ def create_notification(role, sent_to, sent_from=None, reply=None, task=None, re working_users = task.assigned_users.all() if working_users: - notification_message += "List of users working on the task.
" - notification_message += "