Statistics
| Branch: | Tag: | Revision:

root / snf-astakos-app / astakos / im / project_notif.py @ 67cf14bf

History | View | Annotate | Download (4.5 kB)

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