Statistics
| Branch: | Tag: | Revision:

root / snf-astakos-app / astakos / im / project_notif.py @ 5083fc47

History | View | Annotate | Download (5.4 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 3805be31 Giorgos Korfiatis
    app = project.application
117 a3eb3a95 Giorgos Korfiatis
    try:
118 51db2da2 Giorgos Korfiatis
        build_notification(
119 a3eb3a95 Giorgos Korfiatis
            SENDER,
120 a3eb3a95 Giorgos Korfiatis
            [project.application.owner.email],
121 3805be31 Giorgos Korfiatis
            _(messages.PROJECT_TERMINATION_SUBJECT) % app.__dict__,
122 a3eb3a95 Giorgos Korfiatis
            template='im/projects/project_termination_notification.txt',
123 8fb8d0cf Giorgos Korfiatis
            dictionary={'object': project}
124 a3eb3a95 Giorgos Korfiatis
        ).send()
125 a3eb3a95 Giorgos Korfiatis
    except NotificationError, e:
126 a3eb3a95 Giorgos Korfiatis
        logger.error(e.message)
127 a3eb3a95 Giorgos Korfiatis
128 8fb8d0cf Giorgos Korfiatis
129 a3eb3a95 Giorgos Korfiatis
def project_suspension_notify(project):
130 a3eb3a95 Giorgos Korfiatis
    try:
131 51db2da2 Giorgos Korfiatis
        build_notification(
132 a3eb3a95 Giorgos Korfiatis
            SENDER,
133 a3eb3a95 Giorgos Korfiatis
            [project.application.owner.email],
134 cfb7dd4f Giorgos Korfiatis
            _(messages.PROJECT_SUSPENSION_SUBJECT) % project.__dict__,
135 a3eb3a95 Giorgos Korfiatis
            template='im/projects/project_suspension_notification.txt',
136 8fb8d0cf Giorgos Korfiatis
            dictionary={'object': project}
137 a3eb3a95 Giorgos Korfiatis
        ).send()
138 a3eb3a95 Giorgos Korfiatis
    except NotificationError, e:
139 a3eb3a95 Giorgos Korfiatis
        logger.error(e.message)
140 e872c133 Giorgos Korfiatis
141 e872c133 Giorgos Korfiatis
142 e872c133 Giorgos Korfiatis
def project_unsuspension_notify(project):
143 e872c133 Giorgos Korfiatis
    try:
144 e872c133 Giorgos Korfiatis
        build_notification(
145 e872c133 Giorgos Korfiatis
            SENDER,
146 e872c133 Giorgos Korfiatis
            [project.application.owner.email],
147 e872c133 Giorgos Korfiatis
            _(messages.PROJECT_UNSUSPENSION_SUBJECT) % project.__dict__,
148 e872c133 Giorgos Korfiatis
            template='im/projects/project_unsuspension_notification.txt',
149 e872c133 Giorgos Korfiatis
            dictionary={'object': project}
150 e872c133 Giorgos Korfiatis
        ).send()
151 e872c133 Giorgos Korfiatis
    except NotificationError, e:
152 e872c133 Giorgos Korfiatis
        logger.error(e.message)
153 e872c133 Giorgos Korfiatis
154 e872c133 Giorgos Korfiatis
155 e872c133 Giorgos Korfiatis
def project_reinstatement_notify(project):
156 e872c133 Giorgos Korfiatis
    try:
157 e872c133 Giorgos Korfiatis
        build_notification(
158 e872c133 Giorgos Korfiatis
            SENDER,
159 e872c133 Giorgos Korfiatis
            [project.application.owner.email],
160 e872c133 Giorgos Korfiatis
            _(messages.PROJECT_REINSTATEMENT_SUBJECT) % project.__dict__,
161 e872c133 Giorgos Korfiatis
            template='im/projects/project_reinstatement_notification.txt',
162 e872c133 Giorgos Korfiatis
            dictionary={'object': project}
163 e872c133 Giorgos Korfiatis
        ).send()
164 e872c133 Giorgos Korfiatis
    except NotificationError, e:
165 e872c133 Giorgos Korfiatis
        logger.error(e.message)