Statistics
| Branch: | Tag: | Revision:

root / snf-astakos-app / astakos / im / project_notif.py @ 26498848

History | View | Annotate | Download (4.6 kB)

1 a3eb3a95 Giorgos Korfiatis
import logging
2 a3eb3a95 Giorgos Korfiatis
from django.utils.translation import ugettext as _
3 8998f09a Sofia Papagiannaki
from astakos.im import settings
4 a3eb3a95 Giorgos Korfiatis
from astakos.im.notifications import build_notification, NotificationError
5 cfb7dd4f Giorgos Korfiatis
from astakos.im import messages
6 a3eb3a95 Giorgos Korfiatis
7 a3eb3a95 Giorgos Korfiatis
logger = logging.getLogger(__name__)
8 a3eb3a95 Giorgos Korfiatis
9 a3eb3a95 Giorgos Korfiatis
MEM_CHANGE_NOTIF = {
10 cfb7dd4f Giorgos Korfiatis
    'subject' : _(messages.PROJECT_MEMBERSHIP_CHANGE_SUBJECT),
11 a3eb3a95 Giorgos Korfiatis
    'template': 'im/projects/project_membership_change_notification.txt',
12 a3eb3a95 Giorgos Korfiatis
    }
13 a3eb3a95 Giorgos Korfiatis
14 466cc12c Giorgos Korfiatis
MEM_ENROLL_NOTIF = {
15 cfb7dd4f Giorgos Korfiatis
    'subject' : _(messages.PROJECT_MEMBERSHIP_ENROLL_SUBJECT),
16 466cc12c Giorgos Korfiatis
    'template': 'im/projects/project_membership_enroll_notification.txt',
17 466cc12c Giorgos Korfiatis
    }
18 466cc12c Giorgos Korfiatis
19 a3eb3a95 Giorgos Korfiatis
SENDER = settings.SERVER_EMAIL
20 31bc3a62 Kostas Papadimitriou
NOTIFY_RECIPIENTS = [e[1] for e in settings.MANAGERS + settings.HELPDESK]
21 a3eb3a95 Giorgos Korfiatis
22 a3eb3a95 Giorgos Korfiatis
def membership_change_notify(project, user, action):
23 a3eb3a95 Giorgos Korfiatis
    try:
24 a3eb3a95 Giorgos Korfiatis
        notification = build_notification(
25 a3eb3a95 Giorgos Korfiatis
            SENDER,
26 a3eb3a95 Giorgos Korfiatis
            [user.email],
27 a3eb3a95 Giorgos Korfiatis
            MEM_CHANGE_NOTIF['subject'] % project.__dict__,
28 a3eb3a95 Giorgos Korfiatis
            template= MEM_CHANGE_NOTIF['template'],
29 a3eb3a95 Giorgos Korfiatis
            dictionary={'object':project, 'action':action})
30 a3eb3a95 Giorgos Korfiatis
        notification.send()
31 a3eb3a95 Giorgos Korfiatis
    except NotificationError, e:
32 a3eb3a95 Giorgos Korfiatis
        logger.error(e.message)
33 a3eb3a95 Giorgos Korfiatis
34 466cc12c Giorgos Korfiatis
def membership_enroll_notify(project, user):
35 466cc12c Giorgos Korfiatis
    try:
36 466cc12c Giorgos Korfiatis
        notification = build_notification(
37 466cc12c Giorgos Korfiatis
            SENDER,
38 466cc12c Giorgos Korfiatis
            [user.email],
39 466cc12c Giorgos Korfiatis
            MEM_ENROLL_NOTIF['subject'] % project.__dict__,
40 466cc12c Giorgos Korfiatis
            template= MEM_ENROLL_NOTIF['template'],
41 466cc12c Giorgos Korfiatis
            dictionary={'object':project})
42 466cc12c Giorgos Korfiatis
        notification.send()
43 466cc12c Giorgos Korfiatis
    except NotificationError, e:
44 466cc12c Giorgos Korfiatis
        logger.error(e.message)
45 466cc12c Giorgos Korfiatis
46 bb6a4465 Giorgos Korfiatis
def membership_request_notify(project, requested_user):
47 bb6a4465 Giorgos Korfiatis
    try:
48 bb6a4465 Giorgos Korfiatis
        notification = build_notification(
49 bb6a4465 Giorgos Korfiatis
            SENDER,
50 bb6a4465 Giorgos Korfiatis
            [project.application.owner.email],
51 cfb7dd4f Giorgos Korfiatis
            _(messages.PROJECT_MEMBERSHIP_REQUEST_SUBJECT) % project.__dict__,
52 bb6a4465 Giorgos Korfiatis
            template= 'im/projects/project_membership_request_notification.txt',
53 5cc7d5b3 Giorgos Korfiatis
            dictionary={'object':project, 'user':requested_user.email})
54 bb6a4465 Giorgos Korfiatis
        notification.send()
55 bb6a4465 Giorgos Korfiatis
    except NotificationError, e:
56 bb6a4465 Giorgos Korfiatis
        logger.error(e.message)
57 bb6a4465 Giorgos Korfiatis
58 bb6a4465 Giorgos Korfiatis
def membership_leave_request_notify(project, requested_user):
59 bb6a4465 Giorgos Korfiatis
    try:
60 bb6a4465 Giorgos Korfiatis
        notification = build_notification(
61 bb6a4465 Giorgos Korfiatis
            SENDER,
62 bb6a4465 Giorgos Korfiatis
            [project.application.owner.email],
63 cfb7dd4f Giorgos Korfiatis
            _(messages.PROJECT_MEMBERSHIP_LEAVE_REQUEST_SUBJECT) %
64 cfb7dd4f Giorgos Korfiatis
            project.__dict__,
65 bb6a4465 Giorgos Korfiatis
            template= 'im/projects/project_membership_leave_request_notification.txt',
66 5cc7d5b3 Giorgos Korfiatis
            dictionary={'object':project, 'user':requested_user.email})
67 bb6a4465 Giorgos Korfiatis
        notification.send()
68 bb6a4465 Giorgos Korfiatis
    except NotificationError, e:
69 bb6a4465 Giorgos Korfiatis
        logger.error(e.message)
70 bb6a4465 Giorgos Korfiatis
71 a3eb3a95 Giorgos Korfiatis
def application_submit_notify(application):
72 a3eb3a95 Giorgos Korfiatis
    try:
73 a3eb3a95 Giorgos Korfiatis
        notification = build_notification(
74 31bc3a62 Kostas Papadimitriou
            SENDER, NOTIFY_RECIPIENTS,
75 cfb7dd4f Giorgos Korfiatis
            _(messages.PROJECT_CREATION_SUBJECT) % application.__dict__,
76 a3eb3a95 Giorgos Korfiatis
            template='im/projects/project_creation_notification.txt',
77 a3eb3a95 Giorgos Korfiatis
            dictionary={'object':application})
78 a3eb3a95 Giorgos Korfiatis
        notification.send()
79 a3eb3a95 Giorgos Korfiatis
    except NotificationError, e:
80 a3eb3a95 Giorgos Korfiatis
        logger.error(e.message)
81 a3eb3a95 Giorgos Korfiatis
82 19eb3ee6 Giorgos Korfiatis
def application_deny_notify(application):
83 19eb3ee6 Giorgos Korfiatis
    try:
84 19eb3ee6 Giorgos Korfiatis
        notification = build_notification(
85 19eb3ee6 Giorgos Korfiatis
            SENDER,
86 19eb3ee6 Giorgos Korfiatis
            [application.owner.email],
87 cfb7dd4f Giorgos Korfiatis
            _(messages.PROJECT_DENIED_SUBJECT) % application.__dict__,
88 19eb3ee6 Giorgos Korfiatis
            template='im/projects/project_denial_notification.txt',
89 19eb3ee6 Giorgos Korfiatis
            dictionary={'object':application})
90 19eb3ee6 Giorgos Korfiatis
        notification.send()
91 19eb3ee6 Giorgos Korfiatis
    except NotificationError, e:
92 19eb3ee6 Giorgos Korfiatis
        logger.error(e.message)
93 19eb3ee6 Giorgos Korfiatis
94 a3eb3a95 Giorgos Korfiatis
def application_approve_notify(application):
95 a3eb3a95 Giorgos Korfiatis
    try:
96 a3eb3a95 Giorgos Korfiatis
        notification = build_notification(
97 a3eb3a95 Giorgos Korfiatis
            SENDER,
98 a3eb3a95 Giorgos Korfiatis
            [application.owner.email],
99 cfb7dd4f Giorgos Korfiatis
            _(messages.PROJECT_APPROVED_SUBJECT) % application.__dict__,
100 a3eb3a95 Giorgos Korfiatis
            template='im/projects/project_approval_notification.txt',
101 a3eb3a95 Giorgos Korfiatis
            dictionary={'object':application})
102 a3eb3a95 Giorgos Korfiatis
        notification.send()
103 a3eb3a95 Giorgos Korfiatis
    except NotificationError, e:
104 a3eb3a95 Giorgos Korfiatis
        logger.error(e.message)
105 a3eb3a95 Giorgos Korfiatis
106 a3eb3a95 Giorgos Korfiatis
def project_termination_notify(project):
107 a3eb3a95 Giorgos Korfiatis
    try:
108 a3eb3a95 Giorgos Korfiatis
        notification = build_notification(
109 a3eb3a95 Giorgos Korfiatis
            SENDER,
110 a3eb3a95 Giorgos Korfiatis
            [project.application.owner.email],
111 cfb7dd4f Giorgos Korfiatis
            _(messages.PROJECT_TERMINATION_SUBJECT) % project.__dict__,
112 a3eb3a95 Giorgos Korfiatis
            template='im/projects/project_termination_notification.txt',
113 a3eb3a95 Giorgos Korfiatis
            dictionary={'object':project}
114 a3eb3a95 Giorgos Korfiatis
        ).send()
115 a3eb3a95 Giorgos Korfiatis
    except NotificationError, e:
116 a3eb3a95 Giorgos Korfiatis
        logger.error(e.message)
117 a3eb3a95 Giorgos Korfiatis
118 a3eb3a95 Giorgos Korfiatis
def project_suspension_notify(project):
119 a3eb3a95 Giorgos Korfiatis
    try:
120 a3eb3a95 Giorgos Korfiatis
        notification = build_notification(
121 a3eb3a95 Giorgos Korfiatis
            SENDER,
122 a3eb3a95 Giorgos Korfiatis
            [project.application.owner.email],
123 cfb7dd4f Giorgos Korfiatis
            _(messages.PROJECT_SUSPENSION_SUBJECT) % project.__dict__,
124 a3eb3a95 Giorgos Korfiatis
            template='im/projects/project_suspension_notification.txt',
125 a3eb3a95 Giorgos Korfiatis
            dictionary={'object':project}
126 a3eb3a95 Giorgos Korfiatis
        ).send()
127 a3eb3a95 Giorgos Korfiatis
    except NotificationError, e:
128 a3eb3a95 Giorgos Korfiatis
        logger.error(e.message)