Statistics
| Branch: | Tag: | Revision:

root / snf-astakos-app / astakos / im / project_notif.py @ 7deaaa5f

History | View | Annotate | Download (3 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 a3eb3a95 Giorgos Korfiatis
SENDER = settings.SERVER_EMAIL
14 a3eb3a95 Giorgos Korfiatis
ADMINS = settings.ADMINS
15 a3eb3a95 Giorgos Korfiatis
16 a3eb3a95 Giorgos Korfiatis
def membership_change_notify(project, user, action):
17 a3eb3a95 Giorgos Korfiatis
    try:
18 a3eb3a95 Giorgos Korfiatis
        notification = build_notification(
19 a3eb3a95 Giorgos Korfiatis
            SENDER,
20 a3eb3a95 Giorgos Korfiatis
            [user.email],
21 a3eb3a95 Giorgos Korfiatis
            MEM_CHANGE_NOTIF['subject'] % project.__dict__,
22 a3eb3a95 Giorgos Korfiatis
            template= MEM_CHANGE_NOTIF['template'],
23 a3eb3a95 Giorgos Korfiatis
            dictionary={'object':project, 'action':action})
24 a3eb3a95 Giorgos Korfiatis
        notification.send()
25 a3eb3a95 Giorgos Korfiatis
    except NotificationError, e:
26 a3eb3a95 Giorgos Korfiatis
        logger.error(e.message)
27 a3eb3a95 Giorgos Korfiatis
28 a3eb3a95 Giorgos Korfiatis
def application_submit_notify(application):
29 a3eb3a95 Giorgos Korfiatis
    try:
30 a3eb3a95 Giorgos Korfiatis
        notification = build_notification(
31 a3eb3a95 Giorgos Korfiatis
            SENDER,
32 a3eb3a95 Giorgos Korfiatis
            [i[1] for i in ADMINS],
33 a3eb3a95 Giorgos Korfiatis
            _(settings.PROJECT_CREATION_SUBJECT) % application.__dict__,
34 a3eb3a95 Giorgos Korfiatis
            template='im/projects/project_creation_notification.txt',
35 a3eb3a95 Giorgos Korfiatis
            dictionary={'object':application})
36 a3eb3a95 Giorgos Korfiatis
        notification.send()
37 a3eb3a95 Giorgos Korfiatis
    except NotificationError, e:
38 a3eb3a95 Giorgos Korfiatis
        logger.error(e.message)
39 a3eb3a95 Giorgos Korfiatis
40 19eb3ee6 Giorgos Korfiatis
def application_deny_notify(application):
41 19eb3ee6 Giorgos Korfiatis
    try:
42 19eb3ee6 Giorgos Korfiatis
        notification = build_notification(
43 19eb3ee6 Giorgos Korfiatis
            SENDER,
44 19eb3ee6 Giorgos Korfiatis
            [application.owner.email],
45 19eb3ee6 Giorgos Korfiatis
            _(settings.PROJECT_DENIED_SUBJECT) % application.__dict__,
46 19eb3ee6 Giorgos Korfiatis
            template='im/projects/project_denial_notification.txt',
47 19eb3ee6 Giorgos Korfiatis
            dictionary={'object':application})
48 19eb3ee6 Giorgos Korfiatis
        notification.send()
49 19eb3ee6 Giorgos Korfiatis
    except NotificationError, e:
50 19eb3ee6 Giorgos Korfiatis
        logger.error(e.message)
51 19eb3ee6 Giorgos Korfiatis
52 a3eb3a95 Giorgos Korfiatis
def application_approve_notify(application):
53 a3eb3a95 Giorgos Korfiatis
    try:
54 a3eb3a95 Giorgos Korfiatis
        notification = build_notification(
55 a3eb3a95 Giorgos Korfiatis
            SENDER,
56 a3eb3a95 Giorgos Korfiatis
            [application.owner.email],
57 a3eb3a95 Giorgos Korfiatis
            _(settings.PROJECT_APPROVED_SUBJECT) % application.__dict__,
58 a3eb3a95 Giorgos Korfiatis
            template='im/projects/project_approval_notification.txt',
59 a3eb3a95 Giorgos Korfiatis
            dictionary={'object':application})
60 a3eb3a95 Giorgos Korfiatis
        notification.send()
61 a3eb3a95 Giorgos Korfiatis
    except NotificationError, e:
62 a3eb3a95 Giorgos Korfiatis
        logger.error(e.message)
63 a3eb3a95 Giorgos Korfiatis
64 a3eb3a95 Giorgos Korfiatis
def project_termination_notify(project):
65 a3eb3a95 Giorgos Korfiatis
    try:
66 a3eb3a95 Giorgos Korfiatis
        notification = build_notification(
67 a3eb3a95 Giorgos Korfiatis
            SENDER,
68 a3eb3a95 Giorgos Korfiatis
            [project.application.owner.email],
69 a3eb3a95 Giorgos Korfiatis
            _(settings.PROJECT_TERMINATION_SUBJECT) % project.__dict__,
70 a3eb3a95 Giorgos Korfiatis
            template='im/projects/project_termination_notification.txt',
71 a3eb3a95 Giorgos Korfiatis
            dictionary={'object':project}
72 a3eb3a95 Giorgos Korfiatis
        ).send()
73 a3eb3a95 Giorgos Korfiatis
    except NotificationError, e:
74 a3eb3a95 Giorgos Korfiatis
        logger.error(e.message)
75 a3eb3a95 Giorgos Korfiatis
76 a3eb3a95 Giorgos Korfiatis
def project_suspension_notify(project):
77 a3eb3a95 Giorgos Korfiatis
    try:
78 a3eb3a95 Giorgos Korfiatis
        notification = build_notification(
79 a3eb3a95 Giorgos Korfiatis
            SENDER,
80 a3eb3a95 Giorgos Korfiatis
            [project.application.owner.email],
81 a3eb3a95 Giorgos Korfiatis
            _(settings.PROJECT_SUSPENSION_SUBJECT) % project.__dict__,
82 a3eb3a95 Giorgos Korfiatis
            template='im/projects/project_suspension_notification.txt',
83 a3eb3a95 Giorgos Korfiatis
            dictionary={'object':project}
84 a3eb3a95 Giorgos Korfiatis
        ).send()
85 a3eb3a95 Giorgos Korfiatis
    except NotificationError, e:
86 a3eb3a95 Giorgos Korfiatis
        logger.error(e.message)