From e1ff4c6f8e629673e73f1e246787ccb05b277a3d Mon Sep 17 00:00:00 2001 From: yaemiku Date: Mon, 20 Mar 2023 18:00:41 +0100 Subject: [PATCH] better score view before finals --- README.md | 4 ++-- app/templates/scores.html | 5 +++++ app/templates/user/submit.html | 2 +- app/views.py | 22 ++++++++++++++++------ requirements.txt | 2 +- 5 files changed, 25 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index d6c3147..7f109ed 100644 --- a/README.md +++ b/README.md @@ -4,14 +4,14 @@ ## Pomoc ze stroną -Kod jest dostępny publicznie w celu ulepszania strony. Jeśli chcesz wprowadzić nową funkcję lub poprawkę, jestem otwarty na zmiany. +Kod jest dostępny publicznie w celu ulepszania strony. Jeśli chcesz wprowadzić nową funkcję lub poprawkę, jestem otwarta na zmiany. ## Instalacja lokalna ### Sklonowanie ```bash -$ git clone https://github.com/yaemiku/puchar +$ git clone https://gitlab.com/yaemiku/puchar ``` ### Konfiguracja diff --git a/app/templates/scores.html b/app/templates/scores.html index e72804d..e389a30 100644 --- a/app/templates/scores.html +++ b/app/templates/scores.html @@ -16,6 +16,11 @@ {% if scores_available %}
+ {% if admin_preview %} +
+ Podgląd administratora +
+ {% endif %} Klasyfikacja indywidualna diff --git a/app/templates/user/submit.html b/app/templates/user/submit.html index f0dc5b4..e624ab2 100644 --- a/app/templates/user/submit.html +++ b/app/templates/user/submit.html @@ -25,7 +25,7 @@ {% endfor %} {% if students %} - + {% else %} {% endif %} diff --git a/app/views.py b/app/views.py index 5170bec..369be5a 100644 --- a/app/views.py +++ b/app/views.py @@ -23,6 +23,7 @@ def UpdateAccountView(request): form = CustomUserChangeForm(request.POST, instance=request.user) if form.is_valid(): form.save() + request.user.updateTeam() else: form = CustomUserChangeForm(instance=request.user) @@ -49,12 +50,15 @@ def SubmitStudentsView(request): queryset = Student.objects.filter( identifier__startswith=f'{edition.year}-{request.user.id}-').order_by('identifier') - students = [{**student.__dict__, 'ranking': ranking[student.identifier]} for student in queryset] + students = [{**student.__dict__, 'ranking': ranking[student.identifier]} + for student in queryset] return render(request, 'user/submission.html', {'students': students, **context}) - queryset = Student.objects.filter(identifier__startswith=f'{edition.year}-{request.user.id}-') - ArticleFormSet = formset_factory(StudentForm, extra=3, max_num=3, min_num=0) + queryset = Student.objects.filter( + identifier__startswith=f'{edition.year}-{request.user.id}-') + ArticleFormSet = formset_factory( + StudentForm, extra=3, max_num=3, min_num=0) if request.method == 'POST': with transaction.atomic(): @@ -66,8 +70,11 @@ def SubmitStudentsView(request): for index, data in enumerate(students): Student.objects.update_or_create( identifier=f'{edition.year}-{request.user.id}-{index + 1}', defaults=data) + + request.user.updateTeam() else: - formset = ArticleFormSet(initial=list(map(lambda x: x.__dict__, queryset))) + formset = ArticleFormSet(initial=list( + map(lambda x: x.__dict__, queryset))) return render(request, 'user/submit.html', {'formset': formset, 'students': len(queryset), **context}) else: @@ -114,7 +121,8 @@ def ScoresView(request, year=None): if year is not None: edition = get_object_or_404(Edition, year=year) else: - edition = Edition.objects.filter(scores_available=True).order_by('-year').first() + edition = Edition.objects.filter( + scores_available=True).order_by('-year').first() if edition is None: edition = Edition.objects.order_by('-year').first() @@ -125,6 +133,7 @@ def ScoresView(request, year=None): 'scores_page': 'is-active', 'year': year, 'scores_available': edition.scores_available or request.user.is_superuser, + 'admin_preview': (not edition.scores_available) and request.user.is_superuser, 'editions': Edition.objects.order_by('year') } @@ -146,7 +155,8 @@ def ScoresView(request, year=None): teams = [] for school in schools: - team = students.filter(identifier__startswith=f'{year}-' + school['id'] + '-') + team = students.filter( + identifier__startswith=f'{year}-' + school['id'] + '-') score_first = reduce(lambda x, y: x + y.score_first, team, 0) score_second = reduce(lambda x, y: x + y.score_second, team, 0) diff --git a/requirements.txt b/requirements.txt index 9c4e276..6a0a2a6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -Django==3.2.5 +Django django-cleanup django-crispy-bulma psycopg2-binary