notify reviewers via email when a changeset is proposed
This commit is contained in:
parent
da115171d1
commit
2964ddf0f4
2 changed files with 26 additions and 0 deletions
|
@ -18,6 +18,7 @@ from django.utils.translation import ugettext_lazy as _
|
|||
from django.utils.translation import ungettext_lazy
|
||||
|
||||
from c3nav.editor.models.changedobject import ApplyToInstanceError, ChangedObject
|
||||
from c3nav.editor.tasks import send_changeset_proposed_notification
|
||||
from c3nav.editor.wrappers import ModelInstanceWrapper, ModelWrapper, is_created_pk
|
||||
from c3nav.mapdata.models import LocationSlug, MapUpdate
|
||||
from c3nav.mapdata.models.locations import LocationRedirect
|
||||
|
@ -517,6 +518,7 @@ class ChangeSet(models.Model):
|
|||
self.last_update = update
|
||||
self.last_state_update = update
|
||||
self.save()
|
||||
send_changeset_proposed_notification.delay(changeset=self)
|
||||
|
||||
def unpropose(self, user):
|
||||
new_state = {'proposed': 'unproposed', 'reproposed': 'rejected'}[self.state]
|
||||
|
|
24
src/c3nav/editor/tasks.py
Normal file
24
src/c3nav/editor/tasks.py
Normal file
|
@ -0,0 +1,24 @@
|
|||
import logging
|
||||
|
||||
from django.conf import settings
|
||||
from django.contrib.auth.models import User
|
||||
from django.core.mail import send_mail
|
||||
|
||||
from c3nav.celery import app
|
||||
|
||||
logger = logging.getLogger('c3nav')
|
||||
|
||||
|
||||
@app.task(bind=True, max_retries=3)
|
||||
def send_changeset_proposed_notification(self, changeset):
|
||||
subject = '[c3nav] New Changeset by %s: %s' % (changeset.author.username, changeset.title)
|
||||
for user in User.objects.filter(permissions__review_changesets=True):
|
||||
if not user.email:
|
||||
continue
|
||||
text = (
|
||||
('Hi %s!\n\n' % user.username) +
|
||||
('A new Changeset has been proposed by %s:\n\n' % changeset.author.username) +
|
||||
('---\n\n') +
|
||||
(changeset.title+'\n\n'+changeset.description)
|
||||
)
|
||||
send_mail(subject, text, settings.MAIL_FROM, [user.email])
|
Loading…
Add table
Add a link
Reference in a new issue