author | nishanth |
Wed, 03 Mar 2010 04:45:38 +0530 | |
changeset 186 | c083ebb6f8d7 |
parent 133 | 34187a80d279 |
permissions | -rw-r--r-- |
58 | 1 |
from datetime import datetime |
122
daee11bdfbaa
now rid is not the position argument. it is request id.
nishanth
parents:
100
diff
changeset
|
2 |
|
87 | 3 |
from django.contrib.auth.models import User |
100
2275886511df
now admin can accept a request for assigning credits.
nishanth
parents:
99
diff
changeset
|
4 |
from pytask.taskapp.models import Request, Profile |
58 | 5 |
|
87 | 6 |
def create_request(sent_by,role,sent_to=None,task=None,receiving_user=None,pynts=0): |
58 | 7 |
""" |
8 |
creates an unreplied request, based on the passed arguments |
|
132
ca88bf4ad362
implemented notification functionality for AD MG DV.
nishanth
parents:
122
diff
changeset
|
9 |
sent_to - a list of users to which the request is to be sent |
87 | 10 |
sent_by - sender of request |
11 |
role - a two character field which represents the role requested, if role = 'PY' then sent to all admins |
|
78
c5bcafccc135
added utilities reply_to_request, mark_notification_read, delete_notification and made change to create_request utility.
anoop
parents:
71
diff
changeset
|
12 |
task - a requesting task (useful for sending admins a request to give Pynts to the user) |
87 | 13 |
receiving_user - user to whom the Pynts is assigned to(useful for sending admins a request to give Pynts to the user) |
14 |
pynts - the pynts assigned to the receiving user |
|
58 | 15 |
""" |
16 |
req = Request(creation_date=datetime.now()) |
|
87 | 17 |
req.sent_by = sent_by |
58 | 18 |
req.reply_date = datetime(1970,01,01) |
19 |
req.role = role |
|
87 | 20 |
req.pynts = pynts |
80 | 21 |
if task: |
71
801cf8fca53a
made change to the request model and corresponding create_request utility.
anoop
parents:
58
diff
changeset
|
22 |
req.task = task |
87 | 23 |
req.save() |
24 |
if role == 'PY': |
|
25 |
admin_profiles = Profile.objects.filter(rights='AD') |
|
99
64c34c1f441f
assign_credits event now creates a proper request object .
nishanth
parents:
87
diff
changeset
|
26 |
for admin_profile in admin_profiles: |
87 | 27 |
req.sent_to.add(admin_profile.user) |
28 |
req.receiving_user = receiving_user |
|
29 |
else: |
|
30 |
req.sent_to.add(sent_to) |
|
58 | 31 |
req.save() |
78
c5bcafccc135
added utilities reply_to_request, mark_notification_read, delete_notification and made change to create_request utility.
anoop
parents:
71
diff
changeset
|
32 |
|
122
daee11bdfbaa
now rid is not the position argument. it is request id.
nishanth
parents:
100
diff
changeset
|
33 |
def get_request(rid, user): |
daee11bdfbaa
now rid is not the position argument. it is request id.
nishanth
parents:
100
diff
changeset
|
34 |
""" see if the request is replied or if he can not view the request, |
daee11bdfbaa
now rid is not the position argument. it is request id.
nishanth
parents:
100
diff
changeset
|
35 |
raise 404 error. else return request. |
daee11bdfbaa
now rid is not the position argument. it is request id.
nishanth
parents:
100
diff
changeset
|
36 |
""" |
daee11bdfbaa
now rid is not the position argument. it is request id.
nishanth
parents:
100
diff
changeset
|
37 |
|
133
34187a80d279
added next and previous capabilities to requests and notifications.
nishanth
parents:
132
diff
changeset
|
38 |
active_requests = user.request_sent_to.filter(is_valid=True, is_replied=False).order_by('creation_date') |
34187a80d279
added next and previous capabilities to requests and notifications.
nishanth
parents:
132
diff
changeset
|
39 |
current_requests = active_requests.filter(id=rid) |
34187a80d279
added next and previous capabilities to requests and notifications.
nishanth
parents:
132
diff
changeset
|
40 |
if current_requests: |
34187a80d279
added next and previous capabilities to requests and notifications.
nishanth
parents:
132
diff
changeset
|
41 |
current_request = current_requests[0] |
34187a80d279
added next and previous capabilities to requests and notifications.
nishanth
parents:
132
diff
changeset
|
42 |
|
34187a80d279
added next and previous capabilities to requests and notifications.
nishanth
parents:
132
diff
changeset
|
43 |
try: |
34187a80d279
added next and previous capabilities to requests and notifications.
nishanth
parents:
132
diff
changeset
|
44 |
newer_request = current_request.get_next_by_creation_date(sent_to=user, is_replied=False, is_valid=True) |
34187a80d279
added next and previous capabilities to requests and notifications.
nishanth
parents:
132
diff
changeset
|
45 |
newest_request = active_requests.reverse()[0] |
34187a80d279
added next and previous capabilities to requests and notifications.
nishanth
parents:
132
diff
changeset
|
46 |
if newer_request == newest_request: |
34187a80d279
added next and previous capabilities to requests and notifications.
nishanth
parents:
132
diff
changeset
|
47 |
newest_request = None |
34187a80d279
added next and previous capabilities to requests and notifications.
nishanth
parents:
132
diff
changeset
|
48 |
except Request.DoesNotExist: |
34187a80d279
added next and previous capabilities to requests and notifications.
nishanth
parents:
132
diff
changeset
|
49 |
newer_request, newest_request = None, None |
122
daee11bdfbaa
now rid is not the position argument. it is request id.
nishanth
parents:
100
diff
changeset
|
50 |
|
133
34187a80d279
added next and previous capabilities to requests and notifications.
nishanth
parents:
132
diff
changeset
|
51 |
try: |
34187a80d279
added next and previous capabilities to requests and notifications.
nishanth
parents:
132
diff
changeset
|
52 |
older_request = current_request.get_previous_by_creation_date(sent_to=user, is_replied=False, is_valid=True) |
34187a80d279
added next and previous capabilities to requests and notifications.
nishanth
parents:
132
diff
changeset
|
53 |
oldest_request = active_requests[0] |
34187a80d279
added next and previous capabilities to requests and notifications.
nishanth
parents:
132
diff
changeset
|
54 |
if oldest_request == older_request: |
34187a80d279
added next and previous capabilities to requests and notifications.
nishanth
parents:
132
diff
changeset
|
55 |
oldest_request = None |
34187a80d279
added next and previous capabilities to requests and notifications.
nishanth
parents:
132
diff
changeset
|
56 |
except Request.DoesNotExist: |
34187a80d279
added next and previous capabilities to requests and notifications.
nishanth
parents:
132
diff
changeset
|
57 |
older_request, oldest_request = None, None |
34187a80d279
added next and previous capabilities to requests and notifications.
nishanth
parents:
132
diff
changeset
|
58 |
|
34187a80d279
added next and previous capabilities to requests and notifications.
nishanth
parents:
132
diff
changeset
|
59 |
return newest_request, newer_request, current_request, older_request, oldest_request |
34187a80d279
added next and previous capabilities to requests and notifications.
nishanth
parents:
132
diff
changeset
|
60 |
|
122
daee11bdfbaa
now rid is not the position argument. it is request id.
nishanth
parents:
100
diff
changeset
|
61 |
else: |
133
34187a80d279
added next and previous capabilities to requests and notifications.
nishanth
parents:
132
diff
changeset
|
62 |
return None, None, None, None, None |