diff --git a/webapp/migrations/0025_auto_20171011_2235.py b/webapp/migrations/0025_auto_20171011_2235.py new file mode 100644 index 0000000..17ccd0f --- /dev/null +++ b/webapp/migrations/0025_auto_20171011_2235.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11 on 2017-10-11 19:35 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('webapp', '0024_kaehmyform_phone_number'), + ] + + operations = [ + migrations.RemoveField( + model_name='kaehmyform', + name='email', + ), + migrations.RemoveField( + model_name='kaehmyform', + name='name', + ), + migrations.RemoveField( + model_name='kaehmymessage', + name='email', + ), + migrations.RemoveField( + model_name='kaehmymessage', + name='name', + ), + migrations.AddField( + model_name='messageparent', + name='email', + field=models.EmailField(default='not@valid.email', max_length=254, verbose_name='Email'), + ), + migrations.AddField( + model_name='messageparent', + name='name', + field=models.CharField(default='Anonymous', max_length=255, verbose_name='Name'), + ), + ] diff --git a/webapp/migrations/0026_auto_20171011_2236.py b/webapp/migrations/0026_auto_20171011_2236.py new file mode 100644 index 0000000..98ee56b --- /dev/null +++ b/webapp/migrations/0026_auto_20171011_2236.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11 on 2017-10-11 19:36 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('webapp', '0025_auto_20171011_2235'), + ] + + operations = [ + migrations.AlterField( + model_name='messageparent', + name='email', + field=models.EmailField(default='', max_length=254, verbose_name='Email'), + ), + migrations.AlterField( + model_name='messageparent', + name='name', + field=models.CharField(default='', max_length=255, verbose_name='Name'), + ), + ] diff --git a/webapp/models.py b/webapp/models.py index 545a8e4..3c98f71 100644 --- a/webapp/models.py +++ b/webapp/models.py @@ -120,6 +120,9 @@ class KaehmyFormSelectedRole(models.Model): class MessageParent(models.Model): + name = models.CharField(_('Name'), max_length=255, default='') + email = models.EmailField(_('Email'), default='') + def __str__(self): return 'Message parent #{}'.format(self.id) @@ -131,8 +134,6 @@ class KaehmyMessage(MessageParent): Every message relates to certain kaehmyform or parent message. """ - name = models.CharField(_('Name'), max_length=255) - email = models.EmailField(_('Email')) message = models.TextField(_('Message')) parent = models.ForeignKey('MessageParent', related_name='messages') timestamp = models.DateTimeField(_('Timestamp'), default=timezone.now) @@ -152,8 +153,6 @@ class KaehmyForm(MessageParent): (5, 'N'), ) - name = models.CharField(_('Name'), max_length=255) - email = models.EmailField(_('Email')) phone_number = models.CharField( _('Phone number'), max_length=10, default="") year = models.IntegerField(_('Year'), choices=YEAR_CHOICES) diff --git a/webapp/views.py b/webapp/views.py index df5e9aa..90e0d85 100644 --- a/webapp/views.py +++ b/webapp/views.py @@ -13,6 +13,22 @@ from webapp.models import OhlhafvChallenge, KaehmyForm from webapp.forms import OhlhafvForm, KaehmyForm_Form, KaehmyCommentForm from webapp.tables import OhlhafvTable +from django.core.mail import send_mail +from django.conf import settings + + +def send_email(to, subject, body): + success = send_mail( + subject, + body, + settings.DEFAULT_EMAIL_FROM, + [to], + fail_silently=False, + ) + + if success == 0: + raise Exception('Failed to send email!') + @require_http_methods(["GET"]) def main_index(request, *args, **kwargs): @@ -127,6 +143,17 @@ def kaehmy_submit(request, *args, **kwargs): name=custom_name, is_board=custom_is_board) custom_role.save() application.custom_roles.add(custom_role) + form.save() + + email = form.cleaned_data.get('email', '') + name = form.cleaned_data.get('name', 'Anonymous') + subject = 'Arwokas kirjattu kirje mahdolliselle tulewalle kiltahenkilölle' + body = ('Moikka {}!\r\n\r\nHienoa, että kilta kiinnostaa! Kaehmysi on vastaanotettu.\r\n' + 'Mahdollisista kommenteista tulee ilmoitus sähköpostitse.\r\n\r\n' + 'Käy katsomassa kaehmytilanne osoitteessa http://sika.sahkoinsinoorikilta.fi/kaehmy').format(name) + + send_email(email, subject, body) + logging.debug('Sent kaehmy email to recipient <{}>'.format(email)) else: context = { 'errors': form.errors @@ -198,7 +225,17 @@ def kaehmy_comment(request, *args, **kwargs): form = KaehmyCommentForm(request.POST) if form.is_valid(): - form.save() + comment = form.save() + email = comment.parent.email + name = comment.name + + subject = 'Kaehmyysi tai kommenttiisi on vastattu!' + body = ('{} on vastannut kaehmyhakemukseesi tai kommenttiisi kaehmypalvelussa.\r\n\r\n' + 'Käy lukemassa viesti osoitteessa http://sika.sahkoinsinoorikilta.fi/kaehmy').format(name.capitalize()) + + send_email(email, subject, body) + logging.debug('Sent kaehmy comment email to recipient <{}>'.format(email)) + return redirect('/kaehmy') else: print(form)