Skip to content
Snippets Groups Projects
Verified Commit a8180bb5 authored by Tom Teichler's avatar Tom Teichler :beers:
Browse files

Add way to edit substitution.

parent 5f0fe414
No related branches found
No related tags found
1 merge request!9WIP: Add way to edit substitution
......@@ -18,7 +18,12 @@ class SelectForm(forms.Form):
queryset=Room.objects.annotate(lessons_count=Count('lesson_periods')).filter(lessons_count__gt=0),
label=_('Room'), required=False)
class LessonSubstitution(forms.ModelForm):
class LessonSubstitutionForm(forms.ModelForm):
class Meta:
model = LessonSubstitution
fields = ['week', 'lesson_period', 'subject', 'teachers', 'room']
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['teachers'].queryset = Person.objects.all()
self.fields['room'].queryset = Person.objects.all()
{% extends "core/base.html" %}
{% load bootstrap4 i18n %}
{% block page_title %}{% blocktrans %}Edit substitution{% endblocktrans %}{% endblock %}
{% block content %}
<form method="post">
{% csrf_token %}
{% bootstrap_form edit_substitution_form %}
<input type="submit" value="Edit" />
</form>
{% endblock %}
......@@ -7,4 +7,5 @@ urlpatterns = [
path('timetable', views.timetable, name='timetable'),
path('lessons', views.lessons_day, name='lessons_day'),
path('lessons/<when>', views.lessons_day, name='lessons_day_by_date')
path('substitutions/<id>/edit', views.edit_substitution, name='edit_substitution')
]
......@@ -13,7 +13,7 @@ from django_tables2 import RequestConfig
from biscuit.core.decorators import admin_required
from biscuit.core.models import Group, Person
from .forms import SelectForm
from .forms import SelectForm, LessonSubstitutionForm
from .models import LessonPeriod, TimePeriod, Room
from .util import current_week, week_weekday_from_date
from .tables import LessonsTable
......@@ -113,3 +113,24 @@ def lessons_day(request: HttpRequest, when: Optional[str] = None) -> HttpRespons
context['lesson_periods'] = lesson_periods
return render(request, 'chronos/lessons_day.html', context)
@admin_required
def edit_substitution(request: HttpRequest, id_: int) -> HttpResponse:
context = {}
substitution = get_object_or_404(Substitution, id=id_)
edit_substitution_form = LessonSubstitutionForm(request.POST or None, instance=substitution)
context['substitution'] = substitution
if request.method == 'POST':
if edit_substitution_form.is_valid():
edit_substitution_form.save(commit=True)
messages.success(request, _('The substitution has been saved.'))
return redirect('edit_substitution_by_id', id_=substitution.id)
context['edit_substitution_form'] = edit_substitution_form
return render(request, 'chronos/edit_substitution.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