diff options
author | Leif Johansson <leifj@sunet.se> | 2011-03-09 13:12:34 +0100 |
---|---|---|
committer | Leif Johansson <leifj@sunet.se> | 2011-03-09 13:12:34 +0100 |
commit | 76c8a67ee7bb0d43f772a81b2bec7461162d3ba3 (patch) | |
tree | 0734ef5e6a299f4e06edcc07dc96226af412169c /coip | |
parent | a76c5ca1b9137c2f106f61ce42996afc3dc0605c (diff) |
send email notifications when you enter and leave a group
Diffstat (limited to 'coip')
-rw-r--r-- | coip/apps/membership/models.py | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/coip/apps/membership/models.py b/coip/apps/membership/models.py index 324c736..b289513 100644 --- a/coip/apps/membership/models.py +++ b/coip/apps/membership/models.py @@ -7,10 +7,11 @@ from django.db import models from django.contrib.auth.models import User from coip.apps.name.models import Name import datetime -from pprint import pformat import logging from coip.apps.entity.models import Entity import tagging +from django.core.mail import send_mail +from coip.settings import NOREPLY class Membership(models.Model): ''' @@ -43,6 +44,23 @@ class Membership(models.Model): def is_entity(self): return self.entity != None + def send_notification(self,what): + if not self.user or not self.user.email: + return + + send_mail('You have been %s \'%s\'' % (what,self.name.short), + ''' +You have been %s \'%s\'. + +To view information about \'%s\' open this link in your browser: +%s + +''' % (what,self.name.shortname(),self.name.shortname(),self.name.url()), + NOREPLY, + [self.user.email], + fail_silently=False) + return + def add_member(name,member_name,hidden=False): if isinstance(member_name,User): (m,created) = Membership.objects.get_or_create(user=member_name,name=name) @@ -53,6 +71,8 @@ def add_member(name,member_name,hidden=False): m.enabled = True m.hidden = hidden m.save() + + return m.send_notification("added to") def disable_member(name,member_name): if isinstance(member_name,User): @@ -62,6 +82,7 @@ def disable_member(name,member_name): if m: m.enabled = False m.save() + m.send_notification("temporarily removed from") def remove_member(name,member_name): if isinstance(member_name,User): @@ -69,6 +90,7 @@ def remove_member(name,member_name): else: m = Membership.objects.get(name=name,entity=member_name) if m: + m.send_notification("removed from") m.delete() def has_member(name,member_name): |