diff --git a/aleksis/apps/untis/filters.py b/aleksis/apps/untis/filters.py deleted file mode 100644 index 6e813e888c548254fc7d153bd641b8c857523293..0000000000000000000000000000000000000000 --- a/aleksis/apps/untis/filters.py +++ /dev/null @@ -1,11 +0,0 @@ -from django_filters import FilterSet, CharFilter -from material import Layout, Row - - -class GroupFilter(FilterSet): - name = CharFilter(lookup_expr="icontains") - short_name = CharFilter(lookup_expr="icontains") - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.form.layout = Layout(Row("name", "short_name")) diff --git a/aleksis/apps/untis/forms.py b/aleksis/apps/untis/forms.py index 8e6eb10466f52e630cb7852f2de9076fe28b56d8..81fc0a57ac0329a84b5bd8967fe5864b0ac16637 100644 --- a/aleksis/apps/untis/forms.py +++ b/aleksis/apps/untis/forms.py @@ -34,8 +34,6 @@ GroupSubjectFormset = forms.modelformset_factory( ) -class ChildGroupsForm(forms.Form): - child_groups = forms.ModelMultipleChoiceField(queryset=Group.objects.all()) if config.UNTIS_IMPORT_MYSQL_USE_COURSE_GROUPS: diff --git a/aleksis/apps/untis/menus.py b/aleksis/apps/untis/menus.py index f5755ba41275e7d6f096b29c97f9ffee4730bf5a..e4a817190119561c9c47508261ac2acf53f53ccd 100644 --- a/aleksis/apps/untis/menus.py +++ b/aleksis/apps/untis/menus.py @@ -20,14 +20,5 @@ MENUS = { "aleksis.core.util.core_helpers.has_person", ], }, - { - "name": _("Link child groups to groups (for UNTIS MySQL import)"), - "url": "untis_groups_child_groups", - "validators": [ - "menu_generator.validators.is_authenticated", - "menu_generator.validators.is_superuser", - "aleksis.core.util.core_helpers.has_person", - ], - }, ] } diff --git a/aleksis/apps/untis/templates/untis/groups_child_groups.html b/aleksis/apps/untis/templates/untis/groups_child_groups.html deleted file mode 100644 index 71721c0c67d5078af8a2ee634c43966ba20d990a..0000000000000000000000000000000000000000 --- a/aleksis/apps/untis/templates/untis/groups_child_groups.html +++ /dev/null @@ -1,154 +0,0 @@ -{# -*- engine:django -*- #} - -{% extends "core/base.html" %} - -{% load i18n material_form %} - -{% block browser_title %}{% blocktrans %}Assign child groups to groups{% endblocktrans %}{% endblock %} -{% block page_title %} - {% blocktrans %}Assign child groups to groups{% endblocktrans %} -{% endblock %} - - -{% block content %} - {% if not page %} - <div class="alert info"> - <p> - <i class="material-icons left">info</i> - {% blocktrans %} - You can use this to assign child groups to groups. Please use the filters below to select groups you want to - change and click at "Next". - {% endblocktrans %} - </p> - </div> - - <form method="get"> - {% csrf_token %} - {% form form=filter.form %}{% endform %} - - <button type="submit" class="btn green waves-effect waves-light"> - <i class="material-icons left">refresh</i> - {% trans "Update selection" %} - </button> - <a href="{% url "untis_groups_child_groups" %}" class="btn red waves-effect waves-light"> - <i class="material-icons left">clear</i> - {% trans "Clear all filters" %} - </a> - </form> - - <h5>{% trans "Currently selected groups" %}</h5> - - {% for group in filter.qs %} - <div class="chip"> - {{ group }} - </div> - {% endfor %} - - {% if filter.qs %} - <p> - <form method="post"> - {% csrf_token %} - <button class="btn btn-primary waves-effect waves-light" type="submit" name="page" value="1"> - {% trans "Start assigning child groups for this groups" %} - <i class="material-icons right">arrow_forward</i> - </button> - </form> - </p> - {% else %} - <div class="alert warning"> - <p> - <i class="material-icons left">warning</i> - {% blocktrans %} - Please select some groups in order to go on with assigning. - {% endblocktrans %} - </p> - </div> - {% endif %} - {% else %} - <form method="post"> - <input type="hidden" name="old_page" value="{{ page.number }}"> - - <p class="flow-text"> - {% trans "Current group:" %} {{ group }} - </p> - - <div class="alert warning"> - <p> - <i class="material-icons left">warning</i> - {% blocktrans %} - <strong>Please be careful!</strong><br/> - If you click on "Back" or "Next" the current group assignments are not saved. - If you click on save, you will overwrite all existing child group relations for this group with what you - selected on this page. - {% endblocktrans %} - </p> - - </div> - - <div class="row"> - <p class="left"> - {% if page.has_previous %} - <button class="btn grey waves-effect waves-light" name="page" value="{{ page.previous_page_number }}"> - <i class="material-icons left">arrow_back</i> - {% trans "Back" %} - </button> - {% endif %} - {% if page.has_next %} - <button class="btn grey waves-effect waves-light" type="submit" name="page" - value="{{ page.next_page_number }}"> - {% trans "Next" %} - <i class="material-icons right">arrow_forward</i> - </button> - {% endif %} - </p> - <p class="right"> - <button class="btn green waves-effect waves-light" type="submit" name="save"> - {% trans "Save" %} - <i class="material-icons left">save</i> - </button> - {% if page.has_next %} - <button class="btn green waves-effect waves-light" type="submit" name="save" - value="{{ page.next_page_number }}"> - {% trans "Save and next" %} - <i class="material-icons left">save</i> - </button> - {% endif %} - </p> - </div> - - - {% csrf_token %} - - {% include "components/chips.html" with form_field=form.child_groups %} - - <p class="left"> - {% if page.has_previous %} - <button class="btn grey waves-effect waves-light" name="page" value="{{ page.previous_page_number }}"> - <i class="material-icons left">arrow_back</i> - {% trans "Back" %} - </button> - {% endif %} - {% if page.has_next %} - <button class="btn grey waves-effect waves-light" type="submit" name="page" - value="{{ page.next_page_number }}"> - {% trans "Next" %} - <i class="material-icons right">arrow_forward</i> - </button> - {% endif %} - </p> - <p class="right"> - <button class="btn green waves-effect waves-light" type="submit" name="save"> - {% trans "Save" %} - <i class="material-icons left">save</i> - </button> - {% if page.has_next %} - <button class="btn green waves-effect waves-light" type="submit" name="save" - value="{{ page.next_page_number }}"> - {% trans "Save and next" %} - <i class="material-icons left">save</i> - </button> - {% endif %} - </p> - </form> - {% endif %} -{% endblock %} diff --git a/aleksis/apps/untis/urls.py b/aleksis/apps/untis/urls.py index 328de1e5e75374e97e3c998eed0299504ecd7211..db389b6ac1056d854064d4d517c5668b8dd8417f 100644 --- a/aleksis/apps/untis/urls.py +++ b/aleksis/apps/untis/urls.py @@ -5,5 +5,4 @@ from . import views urlpatterns = [ path("import/xml/", views.xml_import, name="untis_xml_import"), path("groups_subjects", views.groups_subjects, name="untis_groups_subjects"), - path("groups_child_groups", views.groups_child_groups, name="untis_groups_child_groups"), ] diff --git a/aleksis/apps/untis/views.py b/aleksis/apps/untis/views.py index 597bd3d14051664c51478c7febc7101b6a06f254..d1d86e4e45bedeb7bda92bc078f3a5ed8bc7cc62 100644 --- a/aleksis/apps/untis/views.py +++ b/aleksis/apps/untis/views.py @@ -8,8 +8,7 @@ from django.utils.translation import gettext as _ from aleksis.core.decorators import admin_required from aleksis.core.models import Group -from .filters import GroupFilter -from .forms import UntisUploadForm, GroupSubjectFormset, ChildGroupsForm +from .forms import UntisUploadForm, GroupSubjectFormset from .util.xml.xml import untis_import_xml @@ -63,38 +62,3 @@ def groups_subjects(request: HttpRequest) -> HttpResponse: return render(request, "untis/groups_subjects.html", context) -@admin_required -def groups_child_groups(request: HttpRequest) -> HttpResponse: - """ Assign child groups to groups (for matching by MySQL importer) """ - context = {} - - # Apply filter - filter = GroupFilter(request.GET, queryset=Group.objects.all()) - context["filter"] = filter - - # Paginate - paginator = Paginator(filter.qs, 1) - page_number = request.POST.get("page", request.POST.get("old_page")) - - if page_number: - page = paginator.get_page(page_number) - group = page[0] - - if "save" in request.POST: - # Save - form = ChildGroupsForm(request.POST) - form.is_valid() - - if "child_groups" in form.cleaned_data: - group.child_groups.set(form.cleaned_data["child_groups"]) - group.save() - messages.success(request, _("The child groups were successfully saved.")) - else: - # Init form - form = ChildGroupsForm(initial={"child_groups": group.child_groups.all()}) - - context["paginator"] = paginator - context["page"] = page - context["group"] = group - context["form"] = form - return render(request, "untis/groups_child_groups.html", context)