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 django.utils.translation import ungettext_lazy
|
||||||
|
|
||||||
from c3nav.editor.models.changedobject import ApplyToInstanceError, ChangedObject
|
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.editor.wrappers import ModelInstanceWrapper, ModelWrapper, is_created_pk
|
||||||
from c3nav.mapdata.models import LocationSlug, MapUpdate
|
from c3nav.mapdata.models import LocationSlug, MapUpdate
|
||||||
from c3nav.mapdata.models.locations import LocationRedirect
|
from c3nav.mapdata.models.locations import LocationRedirect
|
||||||
|
@ -517,6 +518,7 @@ class ChangeSet(models.Model):
|
||||||
self.last_update = update
|
self.last_update = update
|
||||||
self.last_state_update = update
|
self.last_state_update = update
|
||||||
self.save()
|
self.save()
|
||||||
|
send_changeset_proposed_notification.delay(changeset=self)
|
||||||
|
|
||||||
def unpropose(self, user):
|
def unpropose(self, user):
|
||||||
new_state = {'proposed': 'unproposed', 'reproposed': 'rejected'}[self.state]
|
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