From cae33c115696654902165d535131da8fe18f03ed Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Tue, 17 Oct 2017 12:44:33 +0300 Subject: [PATCH 1/3] Add info tooltips to kaehmy roles --- webapp/forms.py | 20 ++++++++++++++++++-- webapp/templates/base.html | 7 +++++++ webapp/templates/kaehmy.html | 2 +- webapp/templates/kaehmy_checkbox_option.html | 5 +++++ 4 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 webapp/templates/kaehmy_checkbox_option.html diff --git a/webapp/forms.py b/webapp/forms.py index 3b7e4cd..956216c 100644 --- a/webapp/forms.py +++ b/webapp/forms.py @@ -8,6 +8,19 @@ from webapp.models import CustomKaehmyRole, PresetKaehmyRole, BaseRole from webapp.models import OhlhafvChallenge, KaehmyForm, KaehmyMessage +class KaehmyCheckboxSelectMultiple(forms.widgets.CheckboxSelectMultiple): + option_template_name = 'kaehmy_checkbox_option.html' + + def create_option(self, name, value, label, selected, index, subindex=None, attrs=None): + dic = super(KaehmyCheckboxSelectMultiple, self).create_option(name, value, label, selected, index, subindex, attrs) + description = PresetKaehmyRole.objects.get(id=value).description + dic['description'] = description + return dic + + def __init__(self, *args, **kwargs): + super(KaehmyCheckboxSelectMultiple, self).__init__(*args, **kwargs) + + class KaehmyForm_Form(forms.ModelForm): """Class representing Kaehmy form.""" @@ -26,7 +39,7 @@ class KaehmyForm_Form(forms.ModelForm): self.fields["phone_number"].label = _('Phone number (not public)') custom_roles_exist = CustomKaehmyRole.objects.all().exists() - self.fields["custom_roles"].widget = forms.widgets.CheckboxSelectMultiple() if custom_roles_exist else forms.HiddenInput() + self.fields["custom_roles"].widget = forms.widgets.CheckboxSelectMultiple if custom_roles_exist else forms.HiddenInput() self.fields["custom_roles"].help_text = "" self.fields["custom_roles"].label = _('Custom roles') self.fields["custom_roles"].queryset = CustomKaehmyRole.objects.all() @@ -35,7 +48,10 @@ class KaehmyForm_Form(forms.ModelForm): key = 'preset_roles_{}'.format(cat_id) qset = PresetKaehmyRole.objects.filter(category=cat_id).order_by('category', '-is_board') self.fields[key] = forms.ModelMultipleChoiceField(qset) - self.fields[key].widget = forms.widgets.CheckboxSelectMultiple(attrs={'title': _('Preset roles'), 'name': 'preset_roles'}) + self.fields[key].widget = KaehmyCheckboxSelectMultiple(attrs={ + 'title': _('Preset roles'), + 'name': 'preset_roles', + }) self.fields[key].help_text = "" self.fields[key].queryset = qset self.fields[key].label = _(category) diff --git a/webapp/templates/base.html b/webapp/templates/base.html index 7c9c5a4..064b47a 100644 --- a/webapp/templates/base.html +++ b/webapp/templates/base.html @@ -18,7 +18,14 @@ + + + diff --git a/webapp/templates/kaehmy.html b/webapp/templates/kaehmy.html index d827d89..b94671e 100644 --- a/webapp/templates/kaehmy.html +++ b/webapp/templates/kaehmy.html @@ -35,7 +35,7 @@ {{ preset_field.label }}
- {% bootstrap_field preset_field show_label=False %} + {% bootstrap_field preset_field show_label=False %}
{% endif %} diff --git a/webapp/templates/kaehmy_checkbox_option.html b/webapp/templates/kaehmy_checkbox_option.html new file mode 100644 index 0000000..ac8c336 --- /dev/null +++ b/webapp/templates/kaehmy_checkbox_option.html @@ -0,0 +1,5 @@ +{% if wrap_label %} +{% endif %} +{% include "django/forms/widgets/input.html" %} +{% if wrap_label %} {{ widget.label }}{% endif %} + From a7732e136d79dd434e0fea281d13bac8f31c1344 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Tue, 17 Oct 2017 12:44:49 +0300 Subject: [PATCH 2/3] Add language middleware --- sikweb/base.py | 1 + sikweb/middleware.py | 13 +++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 sikweb/middleware.py diff --git a/sikweb/base.py b/sikweb/base.py index 3b7637f..527c645 100644 --- a/sikweb/base.py +++ b/sikweb/base.py @@ -99,6 +99,7 @@ NOSE_ARGS = [ ] MIDDLEWARE_CLASSES = [ + 'sikweb.middleware.ForceDefaultLanguageMiddleware', 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', diff --git a/sikweb/middleware.py b/sikweb/middleware.py new file mode 100644 index 0000000..ac56199 --- /dev/null +++ b/sikweb/middleware.py @@ -0,0 +1,13 @@ +class ForceDefaultLanguageMiddleware(object): + """ + Ignore Accept-Language HTTP headers + + This will force the I18N machinery to always choose settings.LANGUAGE_CODE + as the default initial language, unless another one is set via sessions or cookies + + Should be installed *before* any middleware that checks request.META['HTTP_ACCEPT_LANGUAGE'], + namely django.middleware.locale.LocaleMiddleware + """ + def process_request(self, request): + if 'HTTP_ACCEPT_LANGUAGE' in request.META: + del request.META['HTTP_ACCEPT_LANGUAGE'] From f498c0a787e38148a25741ccdd41ea5d3565f8e6 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Tue, 17 Oct 2017 12:45:41 +0300 Subject: [PATCH 3/3] Fix pep8 --- sikweb/middleware.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sikweb/middleware.py b/sikweb/middleware.py index ac56199..8ad8c13 100644 --- a/sikweb/middleware.py +++ b/sikweb/middleware.py @@ -1,10 +1,10 @@ class ForceDefaultLanguageMiddleware(object): """ Ignore Accept-Language HTTP headers - + This will force the I18N machinery to always choose settings.LANGUAGE_CODE as the default initial language, unless another one is set via sessions or cookies - + Should be installed *before* any middleware that checks request.META['HTTP_ACCEPT_LANGUAGE'], namely django.middleware.locale.LocaleMiddleware """