Skip to content
Snippets Groups Projects
Verified Commit c3fa9c9a authored by Nik | Klampfradler's avatar Nik | Klampfradler
Browse files

Add group selection form. Advances #8.

parent e8d8a2dd
No related branches found
No related tags found
No related merge requests found
from django import forms
from django.utils.translation import ugettext_lazy as _
from biscuit.core.models import Group
from .models import LessonDocumentation, PersonalNote
......@@ -26,5 +28,11 @@ class PersonalNoteForm(forms.ModelForm):
pass
class SelectForm(forms.Form):
group = forms.ModelChoiceField(
queryset=Group.objects.annotate(lessons_count=Count('lessons')).filter(lessons_count__gt=0),
label=_('Group'), required=False)
PersonalNoteFormSet = forms.modelformset_factory(
PersonalNote, form=PersonalNoteForm, max_num=0, extra=0)
......@@ -7,6 +7,14 @@
{% endblock %}
{% block content %}
<form method="get">
{% csrf_token %}
<ul id="timetable_select_form">
{{ select_form.as_ul }}
</ul>
<input type="submit" value="Select" />
</form>
{% if group %}
<div class="row">
<div class="col-md-7">
......
......@@ -11,7 +11,7 @@ from biscuit.apps.chronos.models import Lesson, LessonPeriod, TimePeriod
from biscuit.apps.chronos.util import current_lesson_periods, current_week, week_days
from biscuit.core.models import Group
from .forms import LessonDocumentationForm, PersonalNoteFormSet
from .forms import LessonDocumentationForm, PersonalNoteFormSet, SelectForm
from .models import LessonDocumentation, PersonalNote
......@@ -89,8 +89,12 @@ def group_week(request: HttpRequest, week: Optional[int] = None) -> HttpResponse
for weekday, periods in sorted(periods_by_day_unsorted.items()):
periods_by_day[dict(TimePeriod.WEEKDAY_CHOICES)[weekday]] = sorted(periods, key=lambda p: p.period.period)
# Add a form to filter the view
select_form = SelectForm(request.GET or None)
context['week'] = wanted_week
context['group'] = group
context['periods_by_day'] = periods_by_day
context['select_form'] = select_form
return render(request, 'alsijil/group_week.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