From ec0304456b95eb23a8b62d9e3e7d5491ba1c596a Mon Sep 17 00:00:00 2001 From: Pierre Jaury Date: Tue, 22 Mar 2016 21:05:08 +0100 Subject: [PATCH] Add fields to enable and/or disable pop and imap --- admin/freeposte/admin/forms.py | 2 ++ admin/freeposte/admin/models.py | 4 +++ admin/freeposte/admin/templates/macros.html | 34 ++++++++++++------- .../admin/templates/user/create.html | 2 ++ .../freeposte/admin/templates/user/list.html | 13 ++++--- 5 files changed, 35 insertions(+), 20 deletions(-) diff --git a/admin/freeposte/admin/forms.py b/admin/freeposte/admin/forms.py index 4e969207..3adc0c02 100644 --- a/admin/freeposte/admin/forms.py +++ b/admin/freeposte/admin/forms.py @@ -27,6 +27,8 @@ class UserForm(Form): pw = fields.PasswordField('Password', [validators.DataRequired()]) pw2 = fields.PasswordField('Confirm password', [validators.EqualTo('pw')]) quota_bytes = fields_.DecimalSliderField('Quota', default=1000000000) + enable_imap = fields.BooleanField('Allow IMAP access', default=True) + enable_pop = fields.BooleanField('Allow POP3 access', default=True) comment = fields.StringField('Comment') submit = fields.SubmitField('Save') diff --git a/admin/freeposte/admin/models.py b/admin/freeposte/admin/models.py index 5bbe7b1c..92492c48 100644 --- a/admin/freeposte/admin/models.py +++ b/admin/freeposte/admin/models.py @@ -83,6 +83,10 @@ class User(Address): quota_bytes = db.Column(db.Integer(), nullable=False, default=10**9) global_admin = db.Column(db.Boolean(), nullable=False, default=False) + # Features + enable_imap = db.Column(db.Boolean(), nullable=False, default=True) + enable_pop = db.Column(db.Boolean(), nullable=False, default=True) + # Filters forward = db.Column(db.String(160), nullable=True, default=None) reply_subject = db.Column(db.String(255), nullable=True, default=None) diff --git a/admin/freeposte/admin/templates/macros.html b/admin/freeposte/admin/templates/macros.html index 5ce402cf..61c797c5 100644 --- a/admin/freeposte/admin/templates/macros.html +++ b/admin/freeposte/admin/templates/macros.html @@ -10,34 +10,42 @@ {% endif %} {% endmacro %} +{% macro form_field_errors(field) %} + {% if field.errors %} + {% for error in field.errors %} +

{{ error }}

+ {% endfor %} + {% endif %} +{% endmacro %} + {% macro form_fields(fields, prepend='', append='', label=True) %} {% set width = (12 / fields|length)|int %}
{% for field in fields %}
- {{ field.label if label else '' }} - {% if field.errors %} - {% for error in field.errors %} -

{{ error }}

- {% endfor %} - {% endif %} - {% if prepend or append %}
{% endif %} - {{ prepend|safe }} - {{ field(class_="form-control", **kwargs) }} - {{ append|safe }} - {% if prepend or append %}
{% endif %} + {{ form_individual_field(field, prepend=prepend, append=append, label=label, **kwargs) }}
{% endfor %}
{% endmacro %} +{% macro form_individual_field(field, prepend='', append='', label=True) %} + {% if field.type == "BooleanField" %} + {{ field(**kwargs) }}   + {{ field.label if label else '' }} + {% else %} + {{ field.label if label else '' }}{{ form_field_errors(field) }} + {% if prepend or append %}
{% endif %} + {{ prepend|safe }}{{ field(class_="form-control", **kwargs) }}{{ append|safe }} + {% if prepend or append %}
{% endif %} + {% endif %} +{% endmacro %} + {% macro form_field(field) %} {% if field.type == 'SubmitField' %} {{ form_fields((field,), label=False, class="btn btn-default", **kwargs) }} - {% elif field.type == 'HiddenField' %} - {{ form_fields((field,), label=False, **kwargs) }} {% else %} {{ form_fields((field,), **kwargs) }} {% endif %} diff --git a/admin/freeposte/admin/templates/user/create.html b/admin/freeposte/admin/templates/user/create.html index e1533a1a..177bb148 100644 --- a/admin/freeposte/admin/templates/user/create.html +++ b/admin/freeposte/admin/templates/user/create.html @@ -16,6 +16,8 @@ New user {{ macros.form_field(form.quota_bytes, step=1000000000, max=50000000000, prepend=''+(form.quota_bytes.data//1000000000).__str__()+' GiB', oninput='$("#quota").text(this.value/1000000000);') }} + {{ macros.form_field(form.enable_imap) }} + {{ macros.form_field(form.enable_pop) }} {{ macros.form_field(form.comment) }} {{ macros.form_field(form.submit) }} diff --git a/admin/freeposte/admin/templates/user/list.html b/admin/freeposte/admin/templates/user/list.html index 0228aa7f..835c80c8 100644 --- a/admin/freeposte/admin/templates/user/list.html +++ b/admin/freeposte/admin/templates/user/list.html @@ -18,9 +18,7 @@ User list Actions Address - Name - Forward - Reply + Features Quota Comment Created @@ -38,11 +36,12 @@ User list {{ user }} - {{ user.displayed_name }} - {% if user.forward %}enabled{% endif %} - {% if user.reply_subject %}enabled{% endif %} + + {% if user.enable_imap %}imap{% endif %} + {% if user.enable_pop %}pop3{% endif %} + {{ user.quota_bytes | filesizeformat }} - {{ user.comment or '' }} + {{ user.comment or '-' }} {{ user.created_at }} {{ user.updated_at or '' }}