Statistics
| Branch: | Tag: | Revision:

root / snf-astakos-app / astakos / im / project_notif.py @ 8fb8d0cf

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 8fb8d0cf Giorgos Korfiatis
    'subject':   _(messages.PROJECT_MEMBERSHIP_CHANGE_SUBJECT),
11 a3eb3a95 Giorgos Korfiatis
    'template': 'im/projects/project_membership_change_notification.txt',
12 8fb8d0cf Giorgos Korfiatis
}
13 a3eb3a95 Giorgos Korfiatis
14 466cc12c Giorgos Korfiatis
MEM_ENROLL_NOTIF = {
15 8fb8d0cf Giorgos Korfiatis
    'subject':   _(messages.PROJECT_MEMBERSHIP_ENROLL_SUBJECT),
16 466cc12c Giorgos Korfiatis
    'template': 'im/projects/project_membership_enroll_notification.txt',
17 8fb8d0cf 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 8fb8d0cf Giorgos Korfiatis
23 a3eb3a95 Giorgos Korfiatis
def membership_change_notify(project, user, action):
24 a3eb3a95 Giorgos Korfiatis
    try:
25 a3eb3a95 Giorgos Korfiatis
        notification = build_notification(
26 a3eb3a95 Giorgos Korfiatis
            SENDER,
27 a3eb3a95 Giorgos Korfiatis
            [user.email],
28 a3eb3a95 Giorgos Korfiatis
            MEM_CHANGE_NOTIF['subject'] % project.__dict__,
29 8fb8d0cf Giorgos Korfiatis
            template=MEM_CHANGE_NOTIF['template'],
30 8fb8d0cf Giorgos Korfiatis
            dictionary={'object': project, 'action': action})
31 a3eb3a95 Giorgos Korfiatis
        notification.send()
32 a3eb3a95 Giorgos Korfiatis
    except NotificationError, e:
33 a3eb3a95 Giorgos Korfiatis
        logger.error(e.message)
34 a3eb3a95 Giorgos Korfiatis
35 8fb8d0cf Giorgos Korfiatis
36 466cc12c Giorgos Korfiatis
def membership_enroll_notify(project, user):
37 466cc12c Giorgos Korfiatis
    try:
38 466cc12c Giorgos Korfiatis
        notification = build_notification(
39 466cc12c Giorgos Korfiatis
            SENDER,
40 466cc12c Giorgos Korfiatis
            [user.email],
41 466cc12c Giorgos Korfiatis
            MEM_ENROLL_NOTIF['subject'] % project.__dict__,
42 8fb8d0cf Giorgos Korfiatis
            template=MEM_ENROLL_NOTIF['template'],
43 8fb8d0cf Giorgos Korfiatis
            dictionary={'object': project})
44 466cc12c Giorgos Korfiatis
        notification.send()
45 466cc12c Giorgos Korfiatis
    except NotificationError, e:
46 466cc12c Giorgos Korfiatis
        logger.error(e.message)
47 466cc12c Giorgos Korfiatis
48 8fb8d0cf Giorgos Korfiatis
49 bb6a4465 Giorgos Korfiatis
def membership_request_notify(project, requested_user):
50 bb6a4465 Giorgos Korfiatis
    try:
51 bb6a4465 Giorgos Korfiatis
        notification = build_notification(
52 bb6a4465 Giorgos Korfiatis
            SENDER,
53 bb6a4465 Giorgos Korfiatis
            [project.application.owner.email],
54 cfb7dd4f Giorgos Korfiatis
            _(messages.PROJECT_MEMBERSHIP_REQUEST_SUBJECT) % project.__dict__,
55 8fb8d0cf Giorgos Korfiatis
            template='im/projects/project_membership_request_notification.txt',
56 8fb8d0cf Giorgos Korfiatis
            dictionary={'object': project, 'user': requested_user.email})
57 bb6a4465 Giorgos Korfiatis
        notification.send()
58 bb6a4465 Giorgos Korfiatis
    except NotificationError, e:
59 bb6a4465 Giorgos Korfiatis
        logger.error(e.message)
60 bb6a4465 Giorgos Korfiatis
61 8fb8d0cf Giorgos Korfiatis
62 bb6a4465 Giorgos Korfiatis
def membership_leave_request_notify(project, requested_user):
63 8fb8d0cf Giorgos Korfiatis
    template = 'im/projects/project_membership_leave_request_notification.txt'
64 bb6a4465 Giorgos Korfiatis
    try:
65 bb6a4465 Giorgos Korfiatis
        notification = build_notification(
66 bb6a4465 Giorgos Korfiatis
            SENDER,
67 bb6a4465 Giorgos Korfiatis
            [project.application.owner.email],
68 cfb7dd4f Giorgos Korfiatis
            _(messages.PROJECT_MEMBERSHIP_LEAVE_REQUEST_SUBJECT) %
69 cfb7dd4f Giorgos Korfiatis
            project.__dict__,
70 8fb8d0cf Giorgos Korfiatis
            template=template,
71 8fb8d0cf Giorgos Korfiatis
            dictionary={'object': project, 'user': requested_user.email})
72 bb6a4465 Giorgos Korfiatis
        notification.send()
73 bb6a4465 Giorgos Korfiatis
    except NotificationError, e:
74 bb6a4465 Giorgos Korfiatis
        logger.error(e.message)
75 bb6a4465 Giorgos Korfiatis
76 8fb8d0cf Giorgos Korfiatis
77 a3eb3a95 Giorgos Korfiatis
def application_submit_notify(application):
78 a3eb3a95 Giorgos Korfiatis
    try:
79 a3eb3a95 Giorgos Korfiatis
        notification = build_notification(
80 31bc3a62 Kostas Papadimitriou
            SENDER, NOTIFY_RECIPIENTS,
81 cfb7dd4f Giorgos Korfiatis
            _(messages.PROJECT_CREATION_SUBJECT) % application.__dict__,
82 a3eb3a95 Giorgos Korfiatis
            template='im/projects/project_creation_notification.txt',
83 8fb8d0cf Giorgos Korfiatis
            dictionary={'object': application})
84 a3eb3a95 Giorgos Korfiatis
        notification.send()
85 a3eb3a95 Giorgos Korfiatis
    except NotificationError, e:
86 a3eb3a95 Giorgos Korfiatis
        logger.error(e.message)
87 a3eb3a95 Giorgos Korfiatis
88 8fb8d0cf Giorgos Korfiatis
89 19eb3ee6 Giorgos Korfiatis
def application_deny_notify(application):
90 19eb3ee6 Giorgos Korfiatis
    try:
91 19eb3ee6 Giorgos Korfiatis
        notification = build_notification(
92 19eb3ee6 Giorgos Korfiatis
            SENDER,
93 19eb3ee6 Giorgos Korfiatis
            [application.owner.email],
94 cfb7dd4f Giorgos Korfiatis
            _(messages.PROJECT_DENIED_SUBJECT) % application.__dict__,
95 19eb3ee6 Giorgos Korfiatis
            template='im/projects/project_denial_notification.txt',
96 8fb8d0cf Giorgos Korfiatis
            dictionary={'object': application})
97 19eb3ee6 Giorgos Korfiatis
        notification.send()
98 19eb3ee6 Giorgos Korfiatis
    except NotificationError, e:
99 19eb3ee6 Giorgos Korfiatis
        logger.error(e.message)
100 19eb3ee6 Giorgos Korfiatis
101 8fb8d0cf Giorgos Korfiatis
102 a3eb3a95 Giorgos Korfiatis
def application_approve_notify(application):
103 a3eb3a95 Giorgos Korfiatis
    try:
104 a3eb3a95 Giorgos Korfiatis
        notification = build_notification(
105 a3eb3a95 Giorgos Korfiatis
            SENDER,
106 a3eb3a95 Giorgos Korfiatis
            [application.owner.email],
107 cfb7dd4f Giorgos Korfiatis
            _(messages.PROJECT_APPROVED_SUBJECT) % application.__dict__,
108 a3eb3a95 Giorgos Korfiatis
            template='im/projects/project_approval_notification.txt',
109 8fb8d0cf Giorgos Korfiatis
            dictionary={'object': application})
110 a3eb3a95 Giorgos Korfiatis
        notification.send()
111 a3eb3a95 Giorgos Korfiatis
    except NotificationError, e:
112 a3eb3a95 Giorgos Korfiatis
        logger.error(e.message)
113 a3eb3a95 Giorgos Korfiatis
114 8fb8d0cf Giorgos Korfiatis
115 a3eb3a95 Giorgos Korfiatis
def project_termination_notify(project):
116 a3eb3a95 Giorgos Korfiatis
    try:
117 a3eb3a95 Giorgos Korfiatis
        notification = build_notification(
118 a3eb3a95 Giorgos Korfiatis
            SENDER,
119 a3eb3a95 Giorgos Korfiatis
            [project.application.owner.email],
120 cfb7dd4f Giorgos Korfiatis
            _(messages.PROJECT_TERMINATION_SUBJECT) % project.__dict__,
121 a3eb3a95 Giorgos Korfiatis
            template='im/projects/project_termination_notification.txt',
122 8fb8d0cf Giorgos Korfiatis
            dictionary={'object': project}
123 a3eb3a95 Giorgos Korfiatis
        ).send()
124 a3eb3a95 Giorgos Korfiatis
    except NotificationError, e:
125 a3eb3a95 Giorgos Korfiatis
        logger.error(e.message)
126 a3eb3a95 Giorgos Korfiatis
127 8fb8d0cf Giorgos Korfiatis
128 a3eb3a95 Giorgos Korfiatis
def project_suspension_notify(project):
129 a3eb3a95 Giorgos Korfiatis
    try:
130 a3eb3a95 Giorgos Korfiatis
        notification = build_notification(
131 a3eb3a95 Giorgos Korfiatis
            SENDER,
132 a3eb3a95 Giorgos Korfiatis
            [project.application.owner.email],
133 cfb7dd4f Giorgos Korfiatis
            _(messages.PROJECT_SUSPENSION_SUBJECT) % project.__dict__,
134 a3eb3a95 Giorgos Korfiatis
            template='im/projects/project_suspension_notification.txt',
135 8fb8d0cf Giorgos Korfiatis
            dictionary={'object': project}
136 a3eb3a95 Giorgos Korfiatis
        ).send()
137 a3eb3a95 Giorgos Korfiatis
    except NotificationError, e:
138 a3eb3a95 Giorgos Korfiatis
        logger.error(e.message)