alfortville: pester users about comments to write (#10093)

This commit is contained in:
Frédéric Péters 2016-03-29 16:56:27 +02:00
parent f87a3e4638
commit d9ac4023e4
6 changed files with 62 additions and 0 deletions

4
debian/welco.cron.d vendored Normal file
View File

@ -0,0 +1,4 @@
SHELL=/bin/sh
PATH=/usr/sbin:/usr/sbin:/usr/bin:/sbin:/bin
0 7 * * 1-5 /usr/bin/welco-manage tenant_command send-avis-email --all-tenants

View File

@ -0,0 +1,48 @@
# welco - multichannel request processing
# Copyright (C) 2015-2016 Entr'ouvert
#
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU Affero General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from django.conf import settings
from django.contrib.auth import get_user_model
from django.core.mail import EmailMessage, send_mass_mail
from django.core.management.base import BaseCommand, CommandError
from django.template.loader import render_to_string
from hobo.agent.common.models import Role
from welco.contrib.alfortville.models import Inbox
class Command(BaseCommand):
def handle(self, *args, **kwargs):
ctx = {}
ctx.update(getattr(settings, 'TEMPLATE_VARS', {}))
subject = render_to_string(['alfortville/avis-email_subject.txt'], ctx).strip()
message = render_to_string(['alfortville/avis-email_body.txt'], ctx)
mails = []
User = get_user_model()
for user in User.objects.all():
user_roles = [x.uuid for x in Role.objects.filter(user=user)]
avis = Inbox.objects.filter(
role_slug__in=user_roles,
subtype__in=[Inbox.MANDATORY_AVIS, Inbox.AVIS],
done=False)
if avis.count() == 0:
continue
mails.append((subject, message, settings.DEFAULT_FROM_EMAIL, [user.email]))
if mails:
send_mass_mail(mails)

View File

@ -0,0 +1,9 @@
Bonjour,
Vous avez des avis à donner sur des courriers (avis requis et/ou avis
demandés).
Pour prendre connaissance des courriers et déposer vos avis, merci de vous
rendre sur :
{{ portal_agent_url }}

View File

@ -0,0 +1 @@
Avis attendus sur des courriers