Merge branch 'refs/heads/ivan' into andrei

This commit is contained in:
Андрей Дувакин 2024-04-26 18:22:45 +05:00
commit 063e3f8fb8
5 changed files with 21 additions and 36 deletions

View File

View File

@ -0,0 +1,17 @@
from timetable.models import FilmSession
def get_film_to_sessions():
film_sessions = FilmSession.objects.nearest_timetable()
sessions_by_date_and_film = {}
for session in film_sessions:
session_date = session.start_datetime.date()
session_film = session.film
sessions_by_date_and_film.setdefault(session_date, {}).setdefault(session_film, []).append(session)
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)
return sessions_by_date_and_film

View File

View File

@ -2,7 +2,7 @@ from django.http import HttpResponse
from django.shortcuts import get_object_or_404, render
from films.models import Film
from timetable.models import FilmSession
from core.functions import get_film_to_sessions
def films_list(request: HttpResponse) -> HttpResponse:
@ -19,28 +19,7 @@ def film_details(request: HttpResponse, film_id: int) -> HttpResponse:
Film.objects.released(),
id=film_id,
)
film_sessions = FilmSession.objects.nearest_timetable().filter(
film_id=film_id,
)
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] = {}
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,
)
sessions_by_date_and_film = get_film_to_sessions()
context = {
'film_sessions': sessions_by_date_and_film,

View File

@ -5,23 +5,12 @@ from django.http import HttpResponse
from django.shortcuts import render
from films.models import Film
from timetable.models import FilmSession
from core.functions import get_film_to_sessions
def homepage(request):
films = Film.objects.on_main()
film_sessions = FilmSession.objects.nearest_timetable()
sessions_by_date_and_film = {}
for session in film_sessions:
session_date = session.start_datetime.date()
session_film = session.film
sessions_by_date_and_film.setdefault(session_date, {}).setdefault(session_film, []).append(session)
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)
sessions_by_date_and_film = get_film_to_sessions()
template = render(
request,
'home/homepage.html',