From 5f76e51dec1aa0006adfa84f21de928b2852976c Mon Sep 17 00:00:00 2001 From: andrei Date: Fri, 26 Apr 2024 09:28:16 +0500 Subject: [PATCH] =?UTF-8?q?=D0=BF=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=B2=D1=8C=D1=8E=D1=88=D0=BA=D0=B8=20=D1=81=20=D1=80?= =?UTF-8?q?=D0=B0=D1=81=D0=BF=D0=B8=D1=81=D0=B0=D0=BD=D0=B8=D0=B5=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CineSync/home/views.py | 18 +++++------------- CineSync/timetable/views.py | 21 ++++++++------------- 2 files changed, 13 insertions(+), 26 deletions(-) diff --git a/CineSync/home/views.py b/CineSync/home/views.py index 32412bf..42baca4 100644 --- a/CineSync/home/views.py +++ b/CineSync/home/views.py @@ -15,20 +15,12 @@ def homepage(request): for session in film_sessions: session_date = session.start_datetime.date() - if session_date not in sessions_by_date_and_film: - sessions_by_date_and_film[session_date] = {} + session_film = session.film + sessions_by_date_and_film.setdefault(session_date, {}).setdefault(session_film, []).append(session) - film_sessions_for_date = sessions_by_date_and_film[session_date] - if session.film not in film_sessions_for_date: - film_sessions_for_date[session.film] = [] - - film_sessions_for_date[session.film].append(session) - - for session_date, session_films in sessions_by_date_and_film.items(): - for session_film in session_films: - sessions_by_date_and_film[session_date][session_film].sort( - key=lambda sorted_session: sorted_session.start_datetime, - ) + for session_date in sessions_by_date_and_film: + for session_film in sessions_by_date_and_film[session_date]: + sessions_by_date_and_film[session_date][session_film].sort(key=lambda x: x.start_datetime) template = render( request, diff --git a/CineSync/timetable/views.py b/CineSync/timetable/views.py index 7072d6c..b379694 100644 --- a/CineSync/timetable/views.py +++ b/CineSync/timetable/views.py @@ -1,5 +1,7 @@ import datetime +from collections import defaultdict from datetime import date +from operator import attrgetter from django.contrib.auth.decorators import login_required from django.db import transaction @@ -15,24 +17,17 @@ from timetable.models import FilmSession def timetable_view(request): film_sessions = FilmSession.objects.all_timetable() + sessions_by_date_and_film = {} for session in film_sessions: session_date = session.start_datetime.date() - if session_date not in sessions_by_date_and_film: - sessions_by_date_and_film[session_date] = {} + session_film = session.film + sessions_by_date_and_film.setdefault(session_date, {}).setdefault(session_film, []).append(session) - film_sessions_for_date = sessions_by_date_and_film[session_date] - if session.film not in film_sessions_for_date: - film_sessions_for_date[session.film] = [] - - film_sessions_for_date[session.film].append(session) - - for session_date, session_films in sessions_by_date_and_film.items(): - for session_film in session_films: - sessions_by_date_and_film[session_date][session_film].sort( - key=lambda sorted_session: sorted_session.start_datetime, - ) + for session_date in sessions_by_date_and_film: + for session_film in sessions_by_date_and_film[session_date]: + sessions_by_date_and_film[session_date][session_film].sort(key=lambda x: x.start_datetime) template = render( request,