Skip to content
Snippets Groups Projects
Commit 02d63ca2 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Merge branch '102-use-select2-everywhere' into 'master'

Resolve "Use Select2 everywhere"

Closes #102

See merge request AlekSIS/official/AlekSIS!362
parents 5adc93ab 6c963958
No related branches found
No related tags found
1 merge request!362Resolve "Use Select2 everywhere"
Pipeline #4114 passed
......@@ -5,7 +5,7 @@ from django.contrib.auth import get_user_model
from django.core.exceptions import ValidationError
from django.utils.translation import gettext_lazy as _
from django_select2.forms import ModelSelect2MultipleWidget, Select2Widget
from django_select2.forms import ModelSelect2MultipleWidget, ModelSelect2Widget, Select2Widget
from dynamic_preferences.forms import PreferenceForm
from material import Fieldset, Layout, Row
......@@ -24,7 +24,7 @@ class PersonAccountForm(forms.ModelForm):
class Meta:
model = Person
fields = ["last_name", "first_name", "user"]
widgets = {"user": Select2Widget}
widgets = {"user": Select2Widget(attrs={"class": "browser-default"})}
new_user = forms.CharField(required=False)
......@@ -107,7 +107,19 @@ class EditPersonForm(ExtensibleForm):
"primary_group",
]
widgets = {
"user": Select2Widget,
"user": Select2Widget(attrs={"class": "browser-default"}),
"primary_group": ModelSelect2Widget(
search_fields=["name__icontains", "short_name__icontains"],
attrs={"data-minimum-input-length": 0, "class": "browser-default"},
),
"guardians": ModelSelect2MultipleWidget(
search_fields=[
"first_name__icontains",
"last_name__icontains",
"short_name__icontains",
],
attrs={"data-minimum-input-length": 0, "class": "browser-default"},
),
}
new_user = forms.CharField(
......@@ -138,19 +150,25 @@ class EditGroupForm(SchoolTermRelatedExtensibleForm):
"first_name__icontains",
"last_name__icontains",
"short_name__icontains",
]
],
attrs={"data-minimum-input-length": 0, "class": "browser-default"},
),
"owners": ModelSelect2MultipleWidget(
search_fields=[
"first_name__icontains",
"last_name__icontains",
"short_name__icontains",
]
],
attrs={"data-minimum-input-length": 0, "class": "browser-default"},
),
"parent_groups": ModelSelect2MultipleWidget(
search_fields=["name__icontains", "short_name__icontains"]
search_fields=["name__icontains", "short_name__icontains"],
attrs={"data-minimum-input-length": 0, "class": "browser-default"},
),
"additional_fields": ModelSelect2MultipleWidget(
search_fields=["title__icontains",],
attrs={"data-minimum-input-length": 0, "class": "browser-default"},
),
"additional_fields": ModelSelect2MultipleWidget(search_fields=["title__icontains",]),
}
......@@ -167,9 +185,27 @@ class AnnouncementForm(ExtensibleForm):
valid_until_time = forms.TimeField(label=_("Time"))
persons = forms.ModelMultipleChoiceField(
Person.objects.all(), label=_("Persons"), required=False
queryset=Person.objects.all(),
label=_("Persons"),
required=False,
widget=ModelSelect2MultipleWidget(
search_fields=[
"first_name__icontains",
"last_name__icontains",
"short_name__icontains",
],
attrs={"data-minimum-input-length": 0, "class": "browser-default"},
),
)
groups = forms.ModelMultipleChoiceField(
queryset=None,
label=_("Groups"),
required=False,
widget=ModelSelect2MultipleWidget(
search_fields=["name__icontains", "short_name__icontains",],
attrs={"data-minimum-input-length": 0, "class": "browser-default"},
),
)
groups = forms.ModelMultipleChoiceField(queryset=None, label=_("Groups"), required=False)
layout = Layout(
Fieldset(
......
......@@ -2,8 +2,12 @@
{% extends "core/base.html" %}
{% load i18n material_form %}
{% load i18n material_form any_js %}
{% block extra_head %}
{{ form.media.css }}
{% include_css "select2-materialize" %}
{% endblock %}
{% block browser_title %}
{% if mode == "edit" %}
......@@ -30,4 +34,6 @@
{% trans "Save und publish announcement" %}
</button>
</form>
{% include_js "select2-materialize" %}
{{ form.media.js }}
{% endblock %}
{# -*- engine:django -*- #}
{% extends "core/base.html" %}
{% load material_form i18n %}
{% load material_form i18n any_js %}
{% block extra_head %}
{{ edit_group_form.media.css }}
{% include_css "select2-materialize" %}
{% endblock %}
{% block browser_title %}{% blocktrans %}Edit group{% endblocktrans %}{% endblock %}
{% block page_title %}{% blocktrans %}Edit group{% endblocktrans %}{% endblock %}
......@@ -13,5 +18,7 @@
{% form form=edit_group_form %}{% endform %}
{% include "core/partials/save_button.html" %}
</form>
{% include_js "select2-materialize" %}
{{ edit_group_form.media.js }}
{% endblock %}
......@@ -2,7 +2,12 @@
{% extends "core/base.html" %}
{% load i18n %}
{% load i18n any_js %}
{% block extra_head %}
{{ persons_accounts_formset.media.css }}
{% include_css "select2-materialize" %}
{% endblock %}
{% block browser_title %}{% blocktrans %}Link persons to accounts{% endblocktrans %}{% endblock %}
{% block page_title %}
......@@ -55,4 +60,6 @@
{% blocktrans %}Update{% endblocktrans %}
</button>
</form>
{% include_js "select2-materialize" %}
{{ persons_accounts_formset.media.js }}
{% endblock %}
......@@ -2,10 +2,11 @@
{% extends "core/base.html" %}
{% load material_form i18n %}
{% load material_form i18n any_js %}
{% block extra_head %}
{{ edit_person_form.media }}
{% include_css "select2-materialize" %}
{% endblock %}
{% block browser_title %}{% blocktrans %}Edit person{% endblocktrans %}{% endblock %}
......@@ -19,5 +20,7 @@
{% form form=edit_person_form %}{% endform %}
{% include "core/partials/save_button.html" %}
</form>
{% include_js "select2-materialize" %}
{{ edit_group_form.media.js }}
{% endblock %}
{% load l10n material_form material_form_internal %}
{% part bound_field.field %}<{{ field.widget.component|default:'dmc-select' }}>
<label>{{ bound_field.label }}</label>
<div class="row">
<div{% attrs bound_field 'group' %}
id="id_{{ bound_field.html_name }}_container"
class="input-field col s12{% if field.required %} required{% endif %}{% if bound_field.errors %} has-error{% endif %}"
style="margin-top: 0"
{% endattrs %}>
{% part field prefix %}{% endpart %}
{% part field control %}
{{ bound_field }}
{% endpart %}
{% part field help_text %}{% if field.help_text %}
<div class="help-block">{{ bound_field.help_text|safe }}</div>
{% endif %}{% endpart %}{% part field errors %}
{% if bound_field.errors %}
{% include 'material/field_errors.html' %}
{% endif %}{% endpart %}{{ hidden_initial }}
</div>
</div></{{ field.widget.component|default:'dmc-select' }}>{% endpart %}
{% load l10n material_form material_form_internal %}
{% part bound_field.field %}<{{ field.widget.component|default:'dmc-select' }}>
<label>{{ bound_field.label }}</label>
<div class="row">
<div{% attrs bound_field 'group' %}
id="id_{{ bound_field.html_name }}_container"
class="input-field col s12{% if field.required %} required{% endif %}{% if bound_field.errors %} has-error{% endif %}"
style="margin-top: 0"
{% endattrs %}>
{% part field prefix %}{% endpart %}
{% part field control %}
{{ bound_field }}
{% endpart %}
{% part field help_text %}{% if field.help_text %}
<div class="help-block">{{ bound_field.help_text|safe }}</div>
{% endif %}{% endpart %}{% part field errors %}
{% if bound_field.errors %}
{% include 'material/field_errors.html' %}
{% endif %}{% endpart %}{{ hidden_initial }}
</div>
</div></{{ field.widget.component|default:'dmc-select' }}>{% endpart %}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment