Skip to content
Snippets Groups Projects
Verified Commit 14f0af03 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Remove legacy subject linking stuff

parent 8669d7d9
No related branches found
No related tags found
1 merge request!22Use subject object to match course groups
Pipeline #2640 failed
...@@ -11,23 +11,4 @@ class UntisUploadForm(forms.Form): ...@@ -11,23 +11,4 @@ class UntisUploadForm(forms.Form):
untis_xml = forms.FileField(label=_("Untis XML export")) untis_xml = forms.FileField(label=_("Untis XML export"))
class GroupSubjectForm(forms.ModelForm):
child_groups = forms.ModelMultipleChoiceField(queryset=Group.objects.all())
class Meta:
model = Group
fields = [
"name",
"short_name",
"untis_subject",
]
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields["name"].widget = forms.HiddenInput()
self.fields["short_name"].widget = forms.HiddenInput()
GroupSubjectFormset = forms.modelformset_factory(Group, form=GroupSubjectForm, max_num=0, extra=0)
EditGroupForm.add_node_to_layout(Fieldset(_("UNTIS import"), "untis_subject")) EditGroupForm.add_node_to_layout(Fieldset(_("UNTIS import"), "untis_subject"))
...@@ -12,18 +12,6 @@ core_models.Group.field( ...@@ -12,18 +12,6 @@ core_models.Group.field(
import_ref_untis=IntegerField(verbose_name=_("UNTIS import reference"), null=True, blank=True) import_ref_untis=IntegerField(verbose_name=_("UNTIS import reference"), null=True, blank=True)
) )
core_models.Group.field(
untis_subject=CharField(
verbose_name=_("UNTIS subject"),
help_text=_(
"The UNTIS import will use this for matching course groups"
"(along with parent groups)."
),
blank=True,
max_length=255,
)
)
# Chronos models # Chronos models
chronos_models.Subject.field( chronos_models.Subject.field(
import_ref_untis=IntegerField(verbose_name=_("UNTIS import reference"), null=True, blank=True) import_ref_untis=IntegerField(verbose_name=_("UNTIS import reference"), null=True, blank=True)
......
{# -*- engine:django -*- #}
{% extends "core/base.html" %}
{% load i18n %}
{% block browser_title %}{% blocktrans %}Assign subjects to groups{% endblocktrans %}{% endblock %}
{% block page_title %}
{% blocktrans %}Assign subjects to groups{% endblocktrans %}
{% endblock %}
{% block content %}
<div class="alert info">
<p>
<i class="material-icons left">info</i>
{% blocktrans %}
You can use this form to assign subjects to groups. Please enter the exact names of the subjects as they are
saved in UNTIS (case-insensitive). These values are only used to match course groups while importing from MySQL.
{% endblocktrans %}
</p>
</div>
<div class="alert warning">
<p>
<i class="material-icons left">warning</i>
{% blocktrans %}
If there are more than 100 groups, this table will have multiple pages. That means that you must save your
changes on every page. <strong>Please don't change the page before you saved your changes!</strong>
{% endblocktrans %}
</p>
</div>
<form method="post">
{% csrf_token %}
{{ formset.management_form }}
{% include "core/save_button.html" %}
{% include "components/pagination.html" %}
<table>
<tr>
<th>{% blocktrans %}Group{% endblocktrans %}</th>
<th>{% blocktrans %}Subject{% endblocktrans %}</th>
</tr>
{% for form in formset %}
{{ form.id }}
<tr>
<td>
{{ form.name }} {{ form.short_name }}
{{ form.name.value }} {% if form.short_name.value %}({{ form.short_name.value }}){% endif %}
</td>
<td>{{ form.untis_subject }}</td>
</tr>
{% endfor %}
</table>
{% include "components/pagination.html" %}
{% include "core/save_button.html" %}
<div class="fixed-action-btn">
<button class="btn-floating btn-large green" type="submit">
<i class="large material-icons">save</i>
</button>
</div>
</form>
{% endblock %}
...@@ -4,5 +4,4 @@ from . import views ...@@ -4,5 +4,4 @@ from . import views
urlpatterns = [ urlpatterns = [
path("import/xml/", views.xml_import, name="untis_xml_import"), path("import/xml/", views.xml_import, name="untis_xml_import"),
path("groups_subjects", views.groups_subjects, name="untis_groups_subjects"),
] ]
from django.contrib import messages
from django.core.paginator import Paginator
from django.http import HttpRequest, HttpResponse from django.http import HttpRequest, HttpResponse
from django.shortcuts import render from django.shortcuts import render
from django.utils.translation import gettext as _
from rules.contrib.views import permission_required from rules.contrib.views import permission_required
from aleksis.core.models import Group
from .forms import GroupSubjectFormset, UntisUploadForm from .forms import UntisUploadForm
from .util.xml.xml import untis_import_xml from .util.xml.xml import untis_import_xml
...@@ -27,32 +23,3 @@ def xml_import(request: HttpRequest) -> HttpResponse: ...@@ -27,32 +23,3 @@ def xml_import(request: HttpRequest) -> HttpResponse:
context["upload_form"] = upload_form context["upload_form"] = upload_form
return render(request, "untis/xml_import.html", context) return render(request, "untis/xml_import.html", context)
@permission_required("untis.assign_subjects_to_groups")
def groups_subjects(request: HttpRequest) -> HttpResponse:
"""Assign subjects to groups (for matching by MySQL importer)."""
context = {}
groups_qs = Group.objects.all()
# Paginate
paginator = Paginator(groups_qs, 100)
page_number = request.GET.get("page")
page = paginator.get_page(page_number)
groups_paged = groups_qs.filter(id__in=[g.id for g in page])
# Create filtered queryset
group_subject_formset = GroupSubjectFormset(request.POST or None, queryset=groups_paged)
# Check if form is submitted and valid, then save
if request.method == "POST":
if group_subject_formset.is_valid():
group_subject_formset.save()
messages.success(request, _("Your changes were successfully saved."))
context["formset"] = group_subject_formset
context["page"] = page
context["paginator"] = paginator
return render(request, "untis/groups_subjects.html", context)
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