Create core
This commit is contained in:
parent
5f76e51dec
commit
254501139f
0
CineSync/core/__init__.py
Normal file
0
CineSync/core/__init__.py
Normal file
17
CineSync/core/functions.py
Normal file
17
CineSync/core/functions.py
Normal 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
|
||||||
0
CineSync/core/migrations/__init__.py
Normal file
0
CineSync/core/migrations/__init__.py
Normal file
@ -2,7 +2,7 @@ from django.http import HttpResponse
|
|||||||
from django.shortcuts import get_object_or_404, render
|
from django.shortcuts import get_object_or_404, render
|
||||||
|
|
||||||
from films.models import Film
|
from films.models import Film
|
||||||
from timetable.models import FilmSession
|
from core.functions import get_film_to_sessions
|
||||||
|
|
||||||
|
|
||||||
def films_list(request: HttpResponse) -> HttpResponse:
|
def films_list(request: HttpResponse) -> HttpResponse:
|
||||||
@ -19,28 +19,7 @@ def film_details(request: HttpResponse, film_id: int) -> HttpResponse:
|
|||||||
Film.objects.released(),
|
Film.objects.released(),
|
||||||
id=film_id,
|
id=film_id,
|
||||||
)
|
)
|
||||||
film_sessions = FilmSession.objects.nearest_timetable().filter(
|
sessions_by_date_and_film = get_film_to_sessions()
|
||||||
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,
|
|
||||||
)
|
|
||||||
|
|
||||||
context = {
|
context = {
|
||||||
'film_sessions': sessions_by_date_and_film,
|
'film_sessions': sessions_by_date_and_film,
|
||||||
|
|||||||
@ -5,23 +5,12 @@ from django.http import HttpResponse
|
|||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
|
|
||||||
from films.models import Film
|
from films.models import Film
|
||||||
from timetable.models import FilmSession
|
from core.functions import get_film_to_sessions
|
||||||
|
|
||||||
|
|
||||||
def homepage(request):
|
def homepage(request):
|
||||||
films = Film.objects.on_main()
|
films = Film.objects.on_main()
|
||||||
film_sessions = FilmSession.objects.nearest_timetable()
|
sessions_by_date_and_film = get_film_to_sessions()
|
||||||
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)
|
|
||||||
|
|
||||||
template = render(
|
template = render(
|
||||||
request,
|
request,
|
||||||
'home/homepage.html',
|
'home/homepage.html',
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user