Merge branch 'feature/signup-email' into 'develop'
Feature/signup email HTML See merge request sahkoinsinoorikilta/vtmk/web2.0-backend!25
This commit is contained in:
+2
-1
@@ -9,7 +9,7 @@ ptyprocess==0.5.1
|
|||||||
pytz==2016.4
|
pytz==2016.4
|
||||||
simplegeneric==0.8.1
|
simplegeneric==0.8.1
|
||||||
traitlets==4.2.1
|
traitlets==4.2.1
|
||||||
Pillow==5.4.1
|
Pillow==7.2.0
|
||||||
requests==2.11.1
|
requests==2.11.1
|
||||||
django-nocaptcha-recaptcha==0.0.19
|
django-nocaptcha-recaptcha==0.0.19
|
||||||
django-cors-headers==2.0.1
|
django-cors-headers==2.0.1
|
||||||
@@ -41,3 +41,4 @@ django-filter==2.0.0
|
|||||||
whitenoise==4.1.4
|
whitenoise==4.1.4
|
||||||
jsonschema==3.2.0
|
jsonschema==3.2.0
|
||||||
mailjet-rest==1.3.3
|
mailjet-rest==1.3.3
|
||||||
|
markdown==3.2.2
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
# Generated by Django 2.1.5 on 2020-10-04 15:20
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('webapp', '0069_signupform_schema'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='event',
|
||||||
|
name='location_en',
|
||||||
|
field=models.CharField(blank=True, max_length=255, null=True),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='event',
|
||||||
|
name='location_fi',
|
||||||
|
field=models.CharField(blank=True, max_length=255, null=True),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='signupform',
|
||||||
|
name='email_content',
|
||||||
|
field=models.TextField(default=''),
|
||||||
|
preserve_default=False,
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='signupform',
|
||||||
|
name='title_en',
|
||||||
|
field=models.CharField(max_length=255, null=True),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='signupform',
|
||||||
|
name='title_fi',
|
||||||
|
field=models.CharField(max_length=255, null=True),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
# Generated by Django 2.1.5 on 2020-10-06 14:49
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('webapp', '0070_auto_20201004_1820'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='signupform',
|
||||||
|
name='email_content',
|
||||||
|
field=models.TextField(blank=True),
|
||||||
|
),
|
||||||
|
]
|
||||||
+2
-1
@@ -100,6 +100,7 @@ class SignupForm(models.Model):
|
|||||||
schema = JSONField()
|
schema = JSONField()
|
||||||
visible = models.BooleanField(default=True)
|
visible = models.BooleanField(default=True)
|
||||||
quota = models.PositiveIntegerField(blank=True, null=True)
|
quota = models.PositiveIntegerField(blank=True, null=True)
|
||||||
|
email_content = models.TextField(blank=True)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return _('#{} {}').format(self.id, self.title)
|
return _('#{} {}').format(self.id, self.title)
|
||||||
@@ -149,7 +150,7 @@ def email_on_signup(sender, instance, created, **kwargs):
|
|||||||
except AttributeError:
|
except AttributeError:
|
||||||
# subject = _(f"Olet ilmoittautunut ilmoon {instance.signupForm.title}")
|
# subject = _(f"Olet ilmoittautunut ilmoon {instance.signupForm.title}")
|
||||||
subject = f"Olet ilmoittautunut ilmoon {instance.signupForm.title}"
|
subject = f"Olet ilmoittautunut ilmoon {instance.signupForm.title}"
|
||||||
send_signup_email(instance.email, subject, instance.id, instance.uuid)
|
send_signup_email(instance.email, subject, instance.id, instance.uuid, instance.signupForm.email_content)
|
||||||
|
|
||||||
|
|
||||||
class BaseRole(models.Model):
|
class BaseRole(models.Model):
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ class SignupFormSerializer(serializers.ModelSerializer):
|
|||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = SignupForm
|
model = SignupForm
|
||||||
fields = ('id', 'title', 'visible', 'isOpen', 'start_time', 'end_time', 'questions', 'schema', 'signups', 'quota')
|
fields = ('id', 'title', 'visible', 'isOpen', 'start_time', 'end_time', 'email_content', 'questions', 'schema', 'signups', 'quota')
|
||||||
|
|
||||||
|
|
||||||
class EventSerializer(serializers.ModelSerializer):
|
class EventSerializer(serializers.ModelSerializer):
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
{% load i18n %}
|
{% autoescape off %}
|
||||||
{% trans "Moikka" %},
|
{{ content }}
|
||||||
|
{% endautoescape %}
|
||||||
|
|
||||||
{% trans "Ilmottautuminen saapui perille" %}
|
<p>Voit muokata ilmoittautumistasi lomakkeen olleessa avoinna alla olevasta linkistä:</p>
|
||||||
|
|
||||||
{% trans "Voit muokata ilmoittautumistasi lomakkeen olleessa avoinna alla olevasta linkistä:" %}
|
<a href={{ url }}>{{url}}</a>
|
||||||
|
|
||||||
{{ url }}
|
<p>Hädässä ota yhteyttä sik-vtmk@list.ayy.fi</p>
|
||||||
|
|
||||||
{% trans "Hädässä ota yhteyttä sik-vtmk@list.ayy.fi" %}
|
|
||||||
@@ -29,7 +29,7 @@ class TagTranslationOptions(TranslationOptions):
|
|||||||
class EventTranslationOptions(TranslationOptions):
|
class EventTranslationOptions(TranslationOptions):
|
||||||
"""Class for event translation options."""
|
"""Class for event translation options."""
|
||||||
|
|
||||||
fields = ()
|
fields = ('location',)
|
||||||
|
|
||||||
|
|
||||||
@register(Signup)
|
@register(Signup)
|
||||||
@@ -43,7 +43,7 @@ class SignupTranslationOptions(TranslationOptions):
|
|||||||
class SignupFormTranslationOptions(TranslationOptions):
|
class SignupFormTranslationOptions(TranslationOptions):
|
||||||
"""Class for registration translation options."""
|
"""Class for registration translation options."""
|
||||||
|
|
||||||
fields = ()
|
fields = ('title',)
|
||||||
|
|
||||||
|
|
||||||
@register(TemplateQuestion)
|
@register(TemplateQuestion)
|
||||||
|
|||||||
+4
-2
@@ -14,6 +14,7 @@ import base64
|
|||||||
import uuid
|
import uuid
|
||||||
from sikweb.settings import FRONTEND_URL, URL, EMAIL_API_KEY, EMAIL_API_SECRET, DEFAULT_EMAIL_FROM, DEFAULT_EMAIL_FROM_ADDR, ENABLE_AUTOMATIC_EMAILS
|
from sikweb.settings import FRONTEND_URL, URL, EMAIL_API_KEY, EMAIL_API_SECRET, DEFAULT_EMAIL_FROM, DEFAULT_EMAIL_FROM_ADDR, ENABLE_AUTOMATIC_EMAILS
|
||||||
import imghdr
|
import imghdr
|
||||||
|
import markdown
|
||||||
|
|
||||||
|
|
||||||
def get_file_extension(file_name, decoded_file):
|
def get_file_extension(file_name, decoded_file):
|
||||||
@@ -91,11 +92,12 @@ def send_email(to, subject, body, html=False):
|
|||||||
logging.exception('Failed to send email.')
|
logging.exception('Failed to send email.')
|
||||||
|
|
||||||
|
|
||||||
def send_signup_email(to, subject, id, uuid):
|
def send_signup_email(to, subject, id, uuid, content):
|
||||||
message = render_to_string(
|
message = render_to_string(
|
||||||
'webapp:signup_email.html', {
|
'webapp:signup_email.html', {
|
||||||
'url': f"https://{FRONTEND_URL}/signup/edit/{id}/{uuid}",
|
'url': f"https://{FRONTEND_URL}/signup/edit/{id}/{uuid}",
|
||||||
|
'content': markdown.markdown(content),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
return send_email(to, subject, message)
|
return send_email(to, subject, message, True)
|
||||||
|
|||||||
Reference in New Issue
Block a user