Merge remote-tracking branch 'origin/ivan' into ivan

This commit is contained in:
Ivan Kaziev 2024-04-24 16:46:50 +03:00
commit cdc6975db9
7 changed files with 74 additions and 100 deletions

View File

@ -90,19 +90,19 @@ DATABASES = {
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.'
'password_validation.UserAttributeSimilarityValidator',
'password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.'
'password_validation.MinimumLengthValidator',
'password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.'
'password_validation.CommonPasswordValidator',
'password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.'
'password_validation.NumericPasswordValidator',
'password_validation.NumericPasswordValidator',
},
]

View File

@ -45,7 +45,7 @@
border: 1px solid #eaeaea;
}
.film_card_title_row {
height: 20%;
height: 15%;
margin-top: 0.5vw;
margin-bottom: 0.5vw;
display: flex;
@ -55,14 +55,14 @@
justify-content: space-evenly;
}
.film_card_row {
height: 60%;
height: 70%;
display: flex;
align-items: center;
flex-direction: row;
flex-wrap: nowrap;
}
.film_card_footer {
height: 20%;
height: 15%;
display: flex;
align-items: flex-start;
flex-direction: row;
@ -110,4 +110,12 @@
background-color: #0d1d3a;
border-radius: 5vw;
border: 1px solid #eaeaea;
}
.film_session_block {
display: flex;
flex-direction: column;
flex-wrap: nowrap;
align-items: center;
justify-content: center;
margin-bottom: 0.4vw;
}

View File

@ -23,9 +23,12 @@
</div>
<div class="film_card_row">
{% for time_sessions in session %}
<a class="film_session" href={% url 'time_table:session' sess_id=time_sessions.id %}>
<div class="session_time">{{ time_sessions.start_datetime|time:"H:i" }}</div>
</a>
<div class="film_session_block">
<a class="film_session" href={% url 'time_table:session' sess_id=time_sessions.id %}>
<div class="session_time">{{ time_sessions.start_datetime|time:"H:i" }}</div>
</a>
<label>{{time_sessions.auditorium}}</label>
</div>
{% endfor %}
</div>
<div class="film_card_footer">

View File

@ -20,6 +20,9 @@ class AuditoriumAdmin(admin.ModelAdmin):
@admin.register(FilmSession)
class FilmSessionAdmin(admin.ModelAdmin):
list_display = [
FilmSession.start_datetime.field.name,
FilmSession.film.field.name,
FilmSession.start_datetime.field.name,
]
list_editable = [
FilmSession.start_datetime.field.name,
]

View File

@ -21,7 +21,7 @@ class FilmSessionsManager(Manager):
current_datetime = timezone.now()
end_datetime = current_datetime + timedelta(days=5)
queryset = super().get_queryset()
queryset = queryset.select_related('film')
queryset = queryset.select_related('film', 'auditorium')
queryset = queryset.prefetch_related('film__genres', 'film__countries')
queryset = queryset.filter(
start_datetime__gte=current_datetime,
@ -32,7 +32,7 @@ class FilmSessionsManager(Manager):
def all_timetable(self):
current_datetime = timezone.now()
queryset = super().get_queryset()
queryset = queryset.select_related('film')
queryset = queryset.select_related('film', 'auditorium')
queryset = queryset.prefetch_related('film__genres', 'film__countries')
queryset = queryset.filter(start_datetime__gte=current_datetime)
queryset = queryset.prefetch_related(FilmSession.film.field.name)

View File

@ -4,7 +4,11 @@
## Краткое описание
На сайте отображаются фильмы, их сеансы и залы, в которых будут проходлить показы. Можно выбирать места в зале, заказывать их. Можно просматривать информацию о конкретном фильме. На его странице будет отображаться описание, дата выхода, режиссер, жанры, ближайшие сеансы и другая информация. Также на сайте реализована возможность регистрации, авторизации, редактирования профиля.
На сайте отображаются фильмы, их сеансы и залы, в которых будут проходить показы. Можно выбирать места в зале,
заказывать их. Можно просматривать информацию о конкретном фильме. На его странице будет отображаться описание, дата
выхода, режиссер, жанры, ближайшие сеансы и другая информация. Также на сайте реализована возможность регистрации,
авторизации, редактирования профиля.
Сайт расположен по адресу: https://cinesync.numerum.site/
## Инструкция к локальному запуску

View File

@ -16,47 +16,48 @@ INSERT INTO films_genres (name) VALUES
('Вестерн');
INSERT INTO films_films (name, duration, release_date) VALUES
('Звёздные войны: Эпизод IV Новая надежда', 121, '1977-05-25'),
('Властелин колец: Братство Кольца', 178, '2001-12-19'),
('Зеленая миля', 189, '1999-12-10'),
('Форрест Гамп', 142, '1994-06-23'),
('Побег из Шоушенка', 142, '1994-09-10'),
('Начало', 148, '2010-07-16'),
('Матрица', 136, '1999-03-31'),
('Властелин колец: Возвращение Короля', 201, '2003-12-17'),
('Интерстеллар', 169, '2014-11-06'),
('1+1', 112, '2011-11-02'),
('Криминальное чтиво', 154, '1994-09-10'),
('Король Лев', 88, '1994-06-15'),
('Бойцовский клуб', 139, '1999-10-15'),
('Темный рыцарь', 152, '2008-07-18'),
('Гладиатор', 155, '2000-05-01'),
('Пираты Карибского моря: Проклятие Черной жемчужины', 143, '2003-07-09'),
('Хороший, плохой, злой', 161, '1966-12-23'),
('Леон', 110, '1994-09-14'),
('Терминатор 2: Судный день', 137, '1991-07-03'),
('ВАЛЛ·И', 98, '2008-06-27'),
('Джанго освобожденный', 165, '2012-12-25'),
('Исчезнувшая', 145, '2014-10-02'),
('Храброе сердце', 177, '1995-09-08'),
('Гарри Поттер и Философский камень', 152, '2001-11-16'),
('Индиана Джонс: В поисках утраченного ковчега', 115, '1981-06-12'),
('Красота по-американски', 122, '1999-09-08'),
('Трасса 60', 92, '2001-02-09'),
('Храбрая сердцем', 93, '2012-06-22'),
('Кунг-фу Панда', 92, '2008-06-05'),
('Рататуй', 111, '2007-06-28'),
('Голодные игры', 142, '2012-03-12'),
('Мадагаскар', 86, '2005-05-25'),
('Человек-паук', 121, '2002-05-03'),
('Кунг-фу Панда 2', 91, '2011-05-26'),
('Мечтатели', 127, '2003-11-19'),
('Гарри Поттер и узник Азкабана', 142, '2004-05-31'),
('Люди Икс', 104, '2000-07-13'),
('Хранители', 162, '2009-03-06'),
('Трансформеры', 144, '2007-06-27'),
('Темный рыцарь: Возрождение легенды', 164, '2012-07-16');
INSERT INTO films_films (name, duration, release_date, description) VALUES
('Звёздные войны: Эпизод IV Новая надежда', 121, '1977-05-25', 'Описание Звёздные войны: Эпизод IV Новая надежда'),
('Властелин колец: Братство Кольца', 178, '2001-12-19', 'Описание Властелин колец: Братство Кольца'),
('Зеленая миля', 189, '1999-12-10', 'Описание Зеленая миля'),
('Форрест Гамп', 142, '1994-06-23', 'Описание Форрест Гамп'),
('Побег из Шоушенка', 142, '1994-09-10', 'Описание Побег из Шоушенка'),
('Начало', 148, '2010-07-16', 'Описание Начало'),
('Матрица', 136, '1999-03-31', 'Описание Матрица'),
('Властелин колец: Возвращение Короля', 201, '2003-12-17', 'Описание Властелин колец: Возвращение Короля'),
('Интерстеллар', 169, '2014-11-06', 'Описание Интерстеллар'),
('1+1', 112, '2011-11-02', 'Описание 1+1'),
('Криминальное чтиво', 154, '1994-09-10', 'Описание Криминальное чтиво'),
('Король Лев', 88, '1994-06-15', 'Описание Король Лев'),
('Бойцовский клуб', 139, '1999-10-15', 'Описание Бойцовский клуб'),
('Темный рыцарь', 152, '2008-07-18', 'Описание Темный рыцарь'),
('Гладиатор', 155, '2000-05-01', 'Описание Гладиатор'),
('Пираты Карибского моря: Проклятие Черной жемчужины', 143, '2003-07-09', 'Описание Пираты Карибского моря: Проклятие Черной жемчужины'),
('Хороший, плохой, злой', 161, '1966-12-23', 'Описание Хороший, плохой, злой'),
('Леон', 110, '1994-09-14', 'Описание Леон'),
('Терминатор 2: Судный день', 137, '1991-07-03', 'Описание Терминатор 2: Судный день'),
('ВАЛЛ·И', 98, '2008-06-27', 'Описание ВАЛЛ·И'),
('Джанго освобожденный', 165, '2012-12-25', 'Описание Джанго освобожденный'),
('Исчезнувшая', 145, '2014-10-02', 'Описание Исчезнувшая'),
('Храброе сердце', 177, '1995-09-08', 'Описание Храброе сердце'),
('Гарри Поттер и Философский камень', 152, '2001-11-16', 'Описание Гарри Поттер и Философский камень'),
('Индиана Джонс: В поисках утраченного ковчега', 115, '1981-06-12', 'Описание Индиана Джонс: В поисках утраченного ковчега'),
('Красота по-американски', 122, '1999-09-08', 'Описание Красота по-американски'),
('Трасса 60', 92, '2001-02-09', 'Описание Трасса 60'),
('Храбрая сердцем', 93, '2012-06-22', 'Описание Храбрая сердцем'),
('Кунг-фу Панда', 92, '2008-06-05', 'Описание Кунг-фу Панда'),
('Рататуй', 111, '2007-06-28', 'Описание Рататуй'),
('Голодные игры', 142, '2012-03-12', 'Описание Голодные игры'),
('Мадагаскар', 86, '2005-05-25', 'Описание Мадагаскар'),
('Человек-паук', 121, '2002-05-03', 'Описание Человек-паук'),
('Кунг-фу Панда 2', 91, '2011-05-26', 'Описание Кунг-фу Панда 2'),
('Мечтатели', 127, '2003-11-19', 'Описание Мечтатели'),
('Гарри Поттер и узник Азкабана', 142, '2004-05-31', 'Описание Гарри Поттер и узник Азкабана'),
('Люди Икс', 104, '2000-07-13', 'Описание Люди Икс'),
('Хранители', 162, '2009-03-06', 'Описание Хранители'),
('Трансформеры', 144, '2007-06-27', 'Описание Трансформеры'),
('Темный рыцарь: Возрождение легенды', 164, '2012-07-16', 'Описание Темный рыцарь: Возрождение легенды');
INSERT INTO films_films_genres (film_id, genre_id) VALUES
@ -128,51 +129,6 @@ INSERT INTO films_films_genres (film_id, genre_id) VALUES
(40, 6), -- Темный рыцарь: Возрождение легенды - Триллер
(40, 7); -- Темный рыцарь: Возрождение легенды - Приключения
UPDATE films_films
SET description =
CASE
WHEN name = 'Звёздные войны: Эпизод IV Новая надежда' THEN 'Описание Звёздные войны: Эпизод IV Новая надежда'
WHEN name = 'Властелин колец: Братство Кольца' THEN 'Описание Властелин колец: Братство Кольца'
WHEN name = 'Зеленая миля' THEN 'Описание Зеленая миля'
WHEN name = 'Форрест Гамп' THEN 'Описание Форрест Гамп'
WHEN name = 'Побег из Шоушенка' THEN 'Описание Побег из Шоушенка'
WHEN name = 'Начало' THEN 'Описание Начало'
WHEN name = 'Матрица' THEN 'Описание Матрица'
WHEN name = 'Властелин колец: Возвращение Короля' THEN 'Описание Властелин колец: Возвращение Короля'
WHEN name = 'Интерстеллар' THEN 'Описание Интерстеллар'
WHEN name = '1+1' THEN 'Описание 1+1'
WHEN name = 'Криминальное чтиво' THEN 'Описание Криминальное чтиво'
WHEN name = 'Король Лев' THEN 'Описание Король Лев'
WHEN name = 'Бойцовский клуб' THEN 'Описание Бойцовский клуб'
WHEN name = 'Темный рыцарь' THEN 'Описание Темный рыцарь'
WHEN name = 'Гладиатор' THEN 'Описание Гладиатор'
WHEN name = 'Пираты Карибского моря: Проклятие Черной жемчужины' THEN 'Описание Пираты Карибского моря: Проклятие Черной жемчужины'
WHEN name = 'Хороший, плохой, злой' THEN 'Описание Хороший, плохой, злой'
WHEN name = 'Леон' THEN 'Описание Леон'
WHEN name = 'Терминатор 2: Судный день' THEN 'Описание Терминатор 2: Судный день'
WHEN name = 'ВАЛЛ·И' THEN 'Описание ВАЛЛ·И'
WHEN name = 'Джанго освобожденный' THEN 'Описание Джанго освобожденный'
WHEN name = 'Исчезнувшая' THEN 'Описание Исчезнувшая'
WHEN name = 'Храброе сердце' THEN 'Описание Храброе сердце'
WHEN name = 'Гарри Поттер и Философский камень' THEN 'Описание Гарри Поттер и Философский камень'
WHEN name = 'Индиана Джонс: В поисках утраченного ковчега' THEN 'Описание Индиана Джонс: В поисках утраченного ковчега'
WHEN name = 'Красота по-американски' THEN 'Описание Красота по-американски'
WHEN name = 'Трасса 60' THEN 'Описание Трасса 60'
WHEN name = 'Храбрая сердцем' THEN 'Описание Храбрая сердцем'
WHEN name = 'Кунг-фу Панда' THEN 'Описание Кунг-фу Панда'
WHEN name = 'Рататуй' THEN 'Описание Рататуй'
WHEN name = 'Голодные игры' THEN 'Описание Голодные игры'
WHEN name = 'Мадагаскар' THEN 'Описание Мадагаскар'
WHEN name = 'Человек-паук' THEN 'Описание Человек-паук'
WHEN name = 'Кунг-фу Панда 2' THEN 'Описание Кунг-фу Панда 2'
WHEN name = 'Мечтатели' THEN 'Описание Мечтатели'
WHEN name = 'Гарри Поттер и узник Азкабана' THEN 'Описание Гарри Поттер и узник Азкабана'
WHEN name = 'Люди Икс' THEN 'Описание Люди Икс'
WHEN name = 'Хранители' THEN 'Описание Хранители'
WHEN name = 'Трансформеры' THEN 'Описание Трансформеры'
WHEN name = 'Темный рыцарь: Возрождение легенды' THEN 'Описание Темный рыцарь: Возрождение легенды'
END;
-- Заполнение таблицы timetable_auditoriums
INSERT INTO timetable_auditoriums (number, row_count) VALUES