emails: allow user to define default mail object (#41430)

This commit is contained in:
Nicolas Roche 2020-05-15 15:31:02 +02:00
parent 2f839757a5
commit 29914b6d36
3 changed files with 19 additions and 1 deletions

View File

@ -31,6 +31,8 @@ class EmailsForm(forms.Form):
default_from_email = ValidEmailField(label=_('Default From'))
email_signature = forms.CharField(label=_('Signature'), required=False,
widget=forms.Textarea)
email_prefix = forms.CharField(label=_('Prefix'), required=False,
help_text=_('Custom prefix for emails subject (defaults to plateform title)'))
def __init__(self, *args, **kwargs):
super(EmailsForm, self).__init__(*args, **kwargs)

View File

@ -24,7 +24,7 @@ from .forms import EmailsForm
class HomeView(VariablesFormMixin, TemplateView):
template_name = 'hobo/emails_home.html'
variables = ['default_from_email', 'email_signature']
variables = ['default_from_email', 'email_signature', 'email_prefix']
form_class = EmailsForm
success_message = _('Emails settings have been updated. '
'It will take a few seconds to be effective.')

View File

@ -15,6 +15,9 @@ from django.utils import six
from django.utils.encoding import force_text
from hobo.emails.validators import validate_email_address
from hobo.environment.models import Variable
from test_manager import login
@pytest.fixture
@ -174,3 +177,16 @@ def test_no_spf_validation(client, admin_user, dns_resolver, smtp_server, settin
response = client.post('/emails/', {'default_from_email': 'john.doe@example-invalid-spf.com'}, follow=True)
assert response.status_code == 200
assert 'Emails settings have been updated. It will take a few seconds to be effective.' in force_text(response.content)
def test_emails_view(app, admin_user, dns_resolver, smtp_server, settings):
settings.ALLOWED_SPF_RECORDS = ['include:allowed_mx.com']
app = login(app)
resp = app.get('/emails/')
resp.form['default_from_email'] = 'john.doe@example.com'
resp.form['email_signature'] = 'my signature'
resp.form['email_prefix'] = 'my mail object'
resp = resp.form.submit()
assert Variable.objects.filter(name='default_from_email')[0].value == 'john.doe@example.com'
assert Variable.objects.filter(name='email_signature')[0].value == 'my signature'
assert Variable.objects.filter(name='email_prefix')[0].value == 'my mail object'