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): ...@@ -18,7 +18,12 @@ class SelectForm(forms.Form):
queryset=Room.objects.annotate(lessons_count=Count('lesson_periods')).filter(lessons_count__gt=0), queryset=Room.objects.annotate(lessons_count=Count('lesson_periods')).filter(lessons_count__gt=0),
label=_('Room'), required=False) label=_('Room'), required=False)
class LessonSubstitution(forms.ModelForm): class LessonSubstitutionForm(forms.ModelForm):
class Meta: class Meta:
model = LessonSubstitution model = LessonSubstitution
fields = ['week', 'lesson_period', 'subject', 'teachers', 'room'] 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 = [ ...@@ -7,4 +7,5 @@ urlpatterns = [
path('timetable', views.timetable, name='timetable'), path('timetable', views.timetable, name='timetable'),
path('lessons', views.lessons_day, name='lessons_day'), path('lessons', views.lessons_day, name='lessons_day'),
path('lessons/<when>', views.lessons_day, name='lessons_day_by_date') 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 ...@@ -13,7 +13,7 @@ from django_tables2 import RequestConfig
from biscuit.core.decorators import admin_required from biscuit.core.decorators import admin_required
from biscuit.core.models import Group, Person from biscuit.core.models import Group, Person
from .forms import SelectForm from .forms import SelectForm, LessonSubstitutionForm
from .models import LessonPeriod, TimePeriod, Room from .models import LessonPeriod, TimePeriod, Room
from .util import current_week, week_weekday_from_date from .util import current_week, week_weekday_from_date
from .tables import LessonsTable from .tables import LessonsTable
...@@ -113,3 +113,24 @@ def lessons_day(request: HttpRequest, when: Optional[str] = None) -> HttpRespons ...@@ -113,3 +113,24 @@ def lessons_day(request: HttpRequest, when: Optional[str] = None) -> HttpRespons
context['lesson_periods'] = lesson_periods context['lesson_periods'] = lesson_periods
return render(request, 'chronos/lessons_day.html', context) 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