mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-05-20 10:34:30 +00:00
email: aliases: Use bootstrap styles
Other changes: - Added license identifiers - Fixed linter warnings - Deleted excessive parameters in rendering code
This commit is contained in:
parent
4375828703
commit
2bd1ad4533
@ -148,4 +148,3 @@ def _create_db_schema_if_not_exists():
|
|||||||
# Create schema if not exists
|
# Create schema if not exists
|
||||||
with db_cursor() as cur:
|
with db_cursor() as cur:
|
||||||
cur.executescript(map_db_schema_script)
|
cur.executescript(map_db_schema_script)
|
||||||
|
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
from django import forms
|
from django import forms
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class EmailServerForm(forms.Form):
|
class EmailServerForm(forms.Form):
|
||||||
domain = forms.CharField(label=_('domain'), max_length=256)
|
domain = forms.CharField(label=_('domain'), max_length=256)
|
||||||
|
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
{# SPDX-License-Identifier: AGPL-3.0-or-later #}
|
||||||
{% extends "app.html" %}
|
{% extends "app.html" %}
|
||||||
|
|
||||||
{% load bootstrap %}
|
{% load bootstrap %}
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
{# SPDX-License-Identifier: AGPL-3.0-or-later #}
|
||||||
{% extends "app.html" %}
|
{% extends "app.html" %}
|
||||||
|
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
|
|||||||
@ -45,36 +45,49 @@ class AliasView(TemplateView):
|
|||||||
self.models = initial
|
self.models = initial
|
||||||
self.post = post
|
self.post = post
|
||||||
self.cleaned_data = {}
|
self.cleaned_data = {}
|
||||||
|
# HTML rendering
|
||||||
|
self.sb = io.StringIO()
|
||||||
|
self.counter = 0
|
||||||
|
|
||||||
def render(self):
|
def render(self):
|
||||||
if self.models is None:
|
if self.models is None:
|
||||||
raise RuntimeError('Uninitialized form')
|
raise RuntimeError('Uninitialized form')
|
||||||
sb = io.StringIO()
|
if self.sb.tell() > 0:
|
||||||
|
raise RuntimeError('render has been called')
|
||||||
|
|
||||||
enabled = [a.email_name for a in self.models if a.enabled]
|
enabled = [a.email_name for a in self.models if a.enabled]
|
||||||
disabled = [a.email_name for a in self.models if not a.enabled]
|
disabled = [a.email_name for a in self.models if not a.enabled]
|
||||||
|
|
||||||
if len(enabled) > 0:
|
self._render_fieldset(enabled, _('Enabled aliases'))
|
||||||
sb.write('<fieldset>')
|
self._render_fieldset(disabled, _('Disabled aliases'))
|
||||||
sb.write('<legend>%s</legend>' % escape(_('Enabled')))
|
|
||||||
self._render_boxes(enabled, 'enabled', sb)
|
|
||||||
sb.write('</fieldset>')
|
|
||||||
if len(disabled) > 0:
|
|
||||||
sb.write('<fieldset>')
|
|
||||||
sb.write('<legend>%s</legend>' % escape(_('Disabled')))
|
|
||||||
self._render_boxes(disabled, 'disabled', sb)
|
|
||||||
sb.write('</fieldset>')
|
|
||||||
return sb.getvalue()
|
|
||||||
|
|
||||||
@staticmethod
|
return self.sb.getvalue()
|
||||||
def _render_boxes(email_names, suffix, sb):
|
|
||||||
for i, email_name in enumerate(email_names):
|
def _render_fieldset(self, email_names, legend):
|
||||||
input_id = 'cb_alias_%s_%d' % (suffix, i)
|
if len(email_names) > 0:
|
||||||
|
self.sb.write('<fieldset class="form-group">')
|
||||||
|
self.sb.write('<legend>%s</legend>' % escape(legend))
|
||||||
|
self._render_boxes(email_names)
|
||||||
|
self.sb.write('</fieldset>')
|
||||||
|
|
||||||
|
def _render_boxes(self, email_names):
|
||||||
|
for email_name in email_names:
|
||||||
|
input_id = 'cb_alias_%d' % self._count()
|
||||||
value = escape(email_name)
|
value = escape(email_name)
|
||||||
sb.write('<div>')
|
self.sb.write('<div class="form-check">')
|
||||||
sb.write('<input type="checkbox" name="alias" ')
|
|
||||||
sb.write('id="%s" value="%s">' % (input_id, value))
|
self.sb.write('<input type="checkbox" name="alias" ')
|
||||||
sb.write('<label for="%s">%s</label>' % (input_id, value))
|
self.sb.write('class="form-check-input" ')
|
||||||
sb.write('</div>')
|
self.sb.write('id="%s" value="%s">' % (input_id, value))
|
||||||
|
|
||||||
|
self.sb.write('<label class="form-check-label" ')
|
||||||
|
self.sb.write('for="%s">%s</label>' % (input_id, value))
|
||||||
|
|
||||||
|
self.sb.write('</div>')
|
||||||
|
|
||||||
|
def _count(self):
|
||||||
|
self.counter += 1
|
||||||
|
return self.counter
|
||||||
|
|
||||||
def is_valid(self):
|
def is_valid(self):
|
||||||
lst = list(filter(None, self.post.getlist('alias')))
|
lst = list(filter(None, self.post.getlist('alias')))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user