diff --git a/CineSync/static/css/films/film_details.css b/CineSync/static/css/films/film_details.css index c0ff304..1b8e6b9 100644 --- a/CineSync/static/css/films/film_details.css +++ b/CineSync/static/css/films/film_details.css @@ -39,12 +39,7 @@ margin-top: 5vw; } .description_card::-webkit-scrollbar { - width: 7px; -} -.description_card::-webkit-scrollbar-thumb { - background-color: #0d1d3a; - border-radius: 5vw; - border: 1px solid #eaeaea; + display: none; } .session_title_block { margin-top: 1vw; diff --git a/CineSync/static/css/includes/film_timtable_card.css b/CineSync/static/css/includes/film_timtable_card.css index 3e6a934..cae21ae 100644 --- a/CineSync/static/css/includes/film_timtable_card.css +++ b/CineSync/static/css/includes/film_timtable_card.css @@ -71,11 +71,9 @@ .countries_block { max-width: 15vw; overflow-x: auto; - margin-left: 0.8vw; display: flex; flex-wrap: nowrap; flex-direction: row; - padding: 0.2vw; border-radius: 0.5vw; } .countries { @@ -85,10 +83,11 @@ margin-left: 0.1vw; flex-direction: row; } -.countries span { +.countries span, .film_duration { color: #aaaaaa; font-weight: bold; padding: 0.4vw; + margin-left: 0.6vw; } .countries_block::-webkit-scrollbar { height: 5px; diff --git a/CineSync/static/css/includes/my_order_card.css b/CineSync/static/css/includes/my_order_card.css new file mode 100644 index 0000000..a17f4a8 --- /dev/null +++ b/CineSync/static/css/includes/my_order_card.css @@ -0,0 +1,130 @@ +.my_order_card { + width: 100%; + background-color: #eaeaea; + margin-top: 1vw; + margin-bottom: 1vw; + border-radius: 3vw; + display: flex; + flex-direction: row; + flex-wrap: nowrap; + align-items: center; + justify-content: flex-start; +} +.age_limit { + margin-left: 1vw; + padding: 0.1vw; + padding-left: 0.25vw; + padding-right: 0.25vw; + border: 0.15vw solid #aaaaaa; + color: #aaaaaa; + font-weight: bold; + border-radius: 0.5vw; + font-size: 0.7vw; +} +.film_card_image { + object-fit: cover; + height: 15vw !important; + width: 10vw !important; + border-radius: 3vw; +} +.film_card_column { + display: flex; + flex-direction: column; + align-items: flex-start; + justify-content: space-around; + height: 13vw; + margin-left: 2vw; + overflow-x: scroll; +} +.film_card_column::-webkit-scrollbar { + height: 7px; +} +.film_card_column::-webkit-scrollbar-thumb { + background-color: #0d1d3a; + border-radius: 5vw; + border: 1px solid #eaeaea; +} +.film_card_title_row { + height: 17%; + margin-top: 0.5vw; + margin-bottom: 0.5vw; + display: flex; + flex-direction: row; + flex-wrap: nowrap; + align-items: center; + justify-content: space-evenly; +} +.film_card_row { + height: 66%; + display: flex; + align-items: center; + flex-direction: row; + flex-wrap: nowrap; +} +.film_card_footer { + height: 17%; + display: flex; + align-items: flex-start; + flex-direction: row; + flex-wrap: nowrap; +} +.countries_block { + max-width: 15vw; + overflow-x: auto; + display: flex; + flex-wrap: nowrap; + flex-direction: row; + border-radius: 0.5vw; +} +.countries { + display: flex; + flex-wrap: nowrap; + align-items: center; + margin-left: 0.1vw; + flex-direction: row; +} +.countries span, .film_duration { + color: #aaaaaa; + font-weight: bold; + padding: 0.4vw; + margin-left: 0.6vw; +} +.countries_block::-webkit-scrollbar { + height: 5px; +} +.countries_block::-webkit-scrollbar-thumb { + background-color: #0d1d3a; + border-radius: 5vw; + border: 2px solid #eaeaea; +} +.film_title { + font-size: 1.5vw; + max-width: 40vw; + text-wrap: nowrap; + overflow-x: auto; +} +.film_title::-webkit-scrollbar { + height: 7px; +} +.film_title::-webkit-scrollbar-thumb { + background-color: #0d1d3a; + border-radius: 5vw; + border: 1px solid #eaeaea; +} +.ticket { + background-color: #0d1d3a; + padding: 0.5vw; + color: #eaeaea; + margin: 1vw; + display: flex; + flex-direction: column; + flex-wrap: nowrap; + justify-content: center; + align-items: flex-start; + font-weight: bold; + border-radius: 1vw; + width: 5vw; +} +.column { + width: 18vw; +} \ No newline at end of file diff --git a/CineSync/static/css/tickets/my_orders.css b/CineSync/static/css/tickets/my_orders.css index 8a02a2a..aea6f08 100644 --- a/CineSync/static/css/tickets/my_orders.css +++ b/CineSync/static/css/tickets/my_orders.css @@ -1,3 +1,8 @@ .header_title { margin-top: 5vw; +} +.my_orders_block { + width: 80%; + margin-left: 10%; + margin-right: 10%; } \ No newline at end of file diff --git a/CineSync/templates/includes/film_timetable_card.html b/CineSync/templates/includes/film_timetable_card.html index 047c298..c90429f 100644 --- a/CineSync/templates/includes/film_timetable_card.html +++ b/CineSync/templates/includes/film_timetable_card.html @@ -1,6 +1,7 @@ {% load static %}
+ {% if film.image %} Фотография фильма не найдена @@ -9,8 +10,9 @@ {% endif %}
- + {{ film.age_limit }} + {{ film.duration }}мин.
{% for country in film.countries.all %}
diff --git a/CineSync/templates/includes/my_order_card.html b/CineSync/templates/includes/my_order_card.html new file mode 100644 index 0000000..13ea1d9 --- /dev/null +++ b/CineSync/templates/includes/my_order_card.html @@ -0,0 +1,42 @@ +{% load static %} + +
+ {% if order.session.film.image %} + Фотография фильма не найдена + {% else %} +

Картинки нет :( {{order.session.film}}

+ {% endif %} +
+
+ + {{ order.session.film.age_limit }} + {{ order.session.film.duration }}мин. +
+ {% for country in order.session.film.countries.all %} +
+ {{ country }} +
+ {% endfor %} +
+
+
+
+

{{ order.session.auditorium.number }}

+

{{ order.session.start_datetime }}

+

Заказ от: {{ order.datetime_order }}

+
+ {% for ticket in order.tickets.all %} +
+ + +
+ {% endfor %} +
+ +
+
\ No newline at end of file diff --git a/CineSync/templates/tickets/my_orders.html b/CineSync/templates/tickets/my_orders.html index 4cadb4d..83d13d9 100644 --- a/CineSync/templates/tickets/my_orders.html +++ b/CineSync/templates/tickets/my_orders.html @@ -9,6 +9,8 @@

Мои заказы

- + {% for order in my_orders %} + {% include "includes/my_order_card.html" %} + {% endfor %}
{% endblock %} \ No newline at end of file diff --git a/CineSync/tickets/models.py b/CineSync/tickets/models.py index 78dd5d5..4916ba3 100644 --- a/CineSync/tickets/models.py +++ b/CineSync/tickets/models.py @@ -31,6 +31,9 @@ class Order(Model): help_text='Дата и время оформления заказа', ) + def __str__(self): + return f'{self.profile} {self.session}' + class Meta: db_table = 'tickets_orders' verbose_name = 'Заказ' diff --git a/CineSync/tickets/views.py b/CineSync/tickets/views.py index 1411777..cabd2ef 100644 --- a/CineSync/tickets/views.py +++ b/CineSync/tickets/views.py @@ -18,12 +18,17 @@ def my_orders(request): orders = get_list_or_404( Order.objects.filter( profile__id=user.profile.id, + ).select_related( + 'session', + 'session__film', ).prefetch_related( 'tickets', + ).order_by( + '-datetime_order' ) ) context = { - 'orders': orders, + 'my_orders': orders, } template = 'tickets/my_orders.html'