From 9efc7982464d770f26d3a50c4804b39b0663b3f4 Mon Sep 17 00:00:00 2001 From: Pierre Jaury Date: Wed, 4 May 2016 16:12:56 +0200 Subject: [PATCH] Store the state of reply and forward settings being enabled --- admin/freeposte/admin/forms.py | 6 +++--- admin/freeposte/admin/models.py | 4 +++- admin/freeposte/admin/templates/admin/list.html | 4 ---- admin/freeposte/admin/templates/manager/list.html | 4 ---- admin/freeposte/admin/templates/user/forward.html | 9 ++++----- admin/freeposte/admin/templates/user/reply.html | 3 +-- admin/freeposte/admin/views/fetches.py | 4 ++-- dovecot/sieve/before.sieve | 10 +++------- 8 files changed, 16 insertions(+), 28 deletions(-) diff --git a/admin/freeposte/admin/forms.py b/admin/freeposte/admin/forms.py index 10477c6e..814e4467 100644 --- a/admin/freeposte/admin/forms.py +++ b/admin/freeposte/admin/forms.py @@ -42,15 +42,15 @@ class UserPasswordForm(Form): class UserForwardForm(Form): - forward_enabled = fields.BooleanField('Enable forwarding', default=False) - forward = fields.StringField( + forward_enabled = fields.BooleanField('Enable forwarding') + forward_destination = fields.StringField( 'Destination', [validators.Optional(), validators.Email()] ) submit = fields.SubmitField('Update') class UserReplyForm(Form): - reply_enabled = fields.BooleanField('Enable reply', default=False) + reply_enabled = fields.BooleanField('Enable automatic reply') reply_subject = fields.StringField('Reply subject') reply_body = fields.StringField('Reply body', widget=widgets.TextArea()) submit = fields.SubmitField('Update') diff --git a/admin/freeposte/admin/models.py b/admin/freeposte/admin/models.py index ef6cb768..7980afaa 100644 --- a/admin/freeposte/admin/models.py +++ b/admin/freeposte/admin/models.py @@ -87,7 +87,9 @@ class User(Email): enable_pop = db.Column(db.Boolean(), nullable=False, default=True) # Filters - forward = db.Column(db.String(160), nullable=True, default=None) + forward_enabled = db.Column(db.Boolean(), nullable=False, default=False) + forward_destination = db.Column(db.String(255), nullable=True, default=None) + reply_enabled = db.Column(db.Boolean(), nullable=False, default=False) reply_subject = db.Column(db.String(255), nullable=True, default=None) reply_body = db.Column(db.Text(), nullable=True, default=None) diff --git a/admin/freeposte/admin/templates/admin/list.html b/admin/freeposte/admin/templates/admin/list.html index 45b3d8e6..8a733392 100644 --- a/admin/freeposte/admin/templates/admin/list.html +++ b/admin/freeposte/admin/templates/admin/list.html @@ -14,8 +14,6 @@ Global administrators Actions Email - Created - Last edit {% for admin in admins %} @@ -23,8 +21,6 @@ Global administrators {{ admin }} - {{ admin.created_at }} - {{ admin.updated_at or '' }} {% endfor %} diff --git a/admin/freeposte/admin/templates/manager/list.html b/admin/freeposte/admin/templates/manager/list.html index f7b92d4a..b915529b 100644 --- a/admin/freeposte/admin/templates/manager/list.html +++ b/admin/freeposte/admin/templates/manager/list.html @@ -18,8 +18,6 @@ Manager list Actions Email - Created - Last edit {% for manager in domain.managers %} @@ -27,8 +25,6 @@ Manager list {{ manager }} - {{ manager.created_at }} - {{ manager.updated_at or '' }} {% endfor %} diff --git a/admin/freeposte/admin/templates/user/forward.html b/admin/freeposte/admin/templates/user/forward.html index efd0f672..ecb327b0 100644 --- a/admin/freeposte/admin/templates/user/forward.html +++ b/admin/freeposte/admin/templates/user/forward.html @@ -12,11 +12,10 @@ Forward emails
{{ form.hidden_tag() }} {{ macros.form_field(form.forward_enabled, - onchange="if(this.checked){$('#forward').removeAttr('disabled')} - else{$('#forward').attr('disabled', '').val('')}", - **{("checked" if user.forward else "unchecked"): ""}) }} - {{ macros.form_field(form.forward, - **{("enabled" if user.forward else "disabled"): ""}) }} + onchange="if(this.checked){$('#forward_destination').removeAttr('disabled')} + else{$('#forward_destination').attr('disabled', '')}") }} + {{ macros.form_field(form.forward_destination, + **{("enabled" if user.forward_enabled else "disabled"): ""}) }} {{ macros.form_field(form.submit) }}
{% endblock %} diff --git a/admin/freeposte/admin/templates/user/reply.html b/admin/freeposte/admin/templates/user/reply.html index 494aa6c8..9b02fc95 100644 --- a/admin/freeposte/admin/templates/user/reply.html +++ b/admin/freeposte/admin/templates/user/reply.html @@ -13,8 +13,7 @@ Automatic reply {{ form.hidden_tag() }} {{ macros.form_field(form.reply_enabled, onchange="if(this.checked){$('#reply_subject,#reply_body').removeAttr('disabled')} - else{$('#reply_subject,#reply_body').attr('disabled', '').val('')}", - **{("checked" if user.reply_subject else "unchecked"): ""}) }} + else{$('#reply_subject,#reply_body').attr('disabled', '')}") }} {{ macros.form_field(form.reply_subject, **{("enabled" if user.reply_subject else "disabled"): ""}) }} {{ macros.form_field(form.reply_body, rows=10, diff --git a/admin/freeposte/admin/views/fetches.py b/admin/freeposte/admin/views/fetches.py index f79c5696..e584dbfb 100644 --- a/admin/freeposte/admin/views/fetches.py +++ b/admin/freeposte/admin/views/fetches.py @@ -10,11 +10,11 @@ import wtforms_components @app.route('/fetch/list/', methods=['GET']) @flask_login.login_required def fetch_list(user_email): - user = utils.get_user(user_email, True) + user = utils.get_user(user_email) return flask.render_template('fetch/list.html', user=user) -@app.route('/fetch/list', methods=['GET', 'POST'], defaults={'user_email': None}) +@app.route('/fetch/create', methods=['GET', 'POST'], defaults={'user_email': None}) @app.route('/fetch/create/', methods=['GET', 'POST']) @flask_login.login_required def fetch_create(user_email): diff --git a/dovecot/sieve/before.sieve b/dovecot/sieve/before.sieve index c8fbec4f..6efbfd2f 100644 --- a/dovecot/sieve/before.sieve +++ b/dovecot/sieve/before.sieve @@ -1,14 +1,10 @@ require ["variables", "vacation", "vnd.dovecot.extdata"]; -if string :is "${extdata.reply_subject}" "" { - -} else { +if ${extdata.reply_enabled} { vacation :days 1 :subject "${extdata.reply_subject}" "${extdata.reply_body}"; } -if string :is "${extdata.forward}" "" { - -} else { - redirect "${extdata.forward}"; +if ${extdata.forward_enabled} { + redirect "${extdata.forward_destination}"; keep; }