diff --git a/oknardia/oknardia/urls.py b/oknardia/oknardia/urls.py index c0cb854..4fbf0d7 100644 --- a/oknardia/oknardia/urls.py +++ b/oknardia/oknardia/urls.py @@ -74,6 +74,7 @@ urlpatterns = [ # --- Одиночное окно re_path(r'^tsena-odnogo-okna/(?P\d+)x(?P\d+)mm/tip(?P\d+)[/*]$', prices.report_one_win_price), + re_path(r'^next_price_one_flap_frame/idW(?P\d+)N(?P\d+)\S*$', prices.next_one_win_price), # --- Ценовая выдача re_path(r'^(?P\d+)/(?P\d+)/(?P[\s\S]*)$', prices.report_price), # --- Подгружаемый фрейм ценовая выдачи diff --git a/oknardia/templates/report/report_price-offers_for_one_window.html b/oknardia/templates/report/report_price_offers_for_one_window.html similarity index 100% rename from oknardia/templates/report/report_price-offers_for_one_window.html rename to oknardia/templates/report/report_price_offers_for_one_window.html diff --git a/oknardia/templates/report/report_price_offers_for_one_window_frame.html b/oknardia/templates/report/report_price_offers_for_one_window_frame.html new file mode 100755 index 0000000..4d236d5 --- /dev/null +++ b/oknardia/templates/report/report_price_offers_for_one_window_frame.html @@ -0,0 +1,141 @@ +{% load static %}{% load filters %}{% for CurOffer in PRICE_FRAME %} + + + {% for CurInOffer in CurOffer.DIM %} + + {% if forloop.first %} + {# красивые чекбоксы BEGIN #}
{# красивые чекбоксы END #} + + +

{{ CurOffer.MERCHANT }} – {{ CurOffer.SETS_NAME }}

+ +
■ Профиль: {{ CurOffer.PVC_NAME|safe }} ({{ CurOffer.PVC_MANUFACTURER }}) + ■ {{ CurOffer.GLAZING_NAME_B|safe }} ({{ CurOffer.GLAZING_MARK }}) + ■ Тонирование: {{ CurOffer.GLAZING_TONING }} + {% if CurOffer.PVC_SEAL %}■ Уплотнитель: {{ CurOffer.PVC_SEAL }} + {% endif %}{% if CurOffer.SETS_IMPLEMENT %}■ Фурнитура: {{ CurOffer.SETS_IMPLEMENT|capfirst|safe }} + {% endif %}{% if CurOffer.SETS_IMPLEMENT_R %}■ Ручки: {{ CurOffer.SETS_IMPLEMENT_R|capfirst|safe }} + {% endif %}{% if CurOffer.SETS_IMPLEMENT_P %}■ Петли: {{ CurOffer.SETS_IMPLEMENT_P|capfirst|safe }} + {% endif %}{% if CurOffer.SETS_IMPLEMENT_Z %}■ Запоры: {{ CurOffer.SETS_IMPLEMENT_Z|capfirst|safe }} + {% endif %}{% if CurOffer.SETS_IMPLEMENT_O %}■ Ограничители: {{ CurOffer.SETS_IMPLEMENT_O|capfirst|safe }} + {% endif %}{% if CurOffer.SETS_IMPLEMENT_F %}■ Фиксаторы: {{ CurOffer.SETS_IMPLEMENT_F|capfirst|safe }} + {% endif %}{% if CurOffer.SETS_CLIMATE_CONTROL %} 3 %}class="bullet-green"{% endif %}>■ Климат-контроль: {{ CurOffer.SETS_CLIMATE_CONTROL|capfirst|safe }} + {% endif %}{% if CurOffer.SETS_SILL %}■ Подоконник: {{ CurOffer.SETS_SILL|capfirst|safe }} + {% endif %}{% if CurOffer.SETS_SLOPE %}■ Откос: {{ CurOffer.SETS_SLOPE|capfirst|safe }} + {% endif %}{% if CurOffer.SETS_PANES %}■ Водоотлив: {{ CurOffer.SETS_PANES|capfirst|safe }} + {% endif %}{% if CurOffer.SETS_UNINSTALL_INSTALL %}■ Демонтаж/монтаж: {{ CurOffer.SETS_UNINSTALL_INSTALL|capfirst|safe }} + {% endif %}{% if CurOffer.SETS_DELIVERY %}■ Доставка: {{ CurOffer.SETS_DELIVERY|capfirst|safe }}{% endif %}{% comment %} {% if CurOffer.SETS_OTHER %}■ Прочие условия: {{ CurOffer.SETS_OTHER|capfirst|safe }} + {% endif %}{% endcomment %} +
+ + {{ CurOffer.SETS_DATA_MODIFY|date:"d.M.Y" }} + + для оконого набора «{{ CurOffer.SETS_NAME }}» компании «{{ CurOffer.MERCHANT }}» состоит из:{% else %}Рейтинг не присвоен{% endif %}" + data-toggle="popover">рейтинг: {% for Star in CurOffer.SETS_RATING_STARTS %}{% if Star == 0 %}{% else %}{% endif %}{% endfor %} {% if CurOffer.SETS_RATING > -0.1 %} {{ CurOffer.SETS_RATING|stringformat:".2f" }}{% endif %} +
+ + + + + + {% endif %} + + Схема открывания: {{ CurInOffer.DESCRIPTION }} — {{ CurInOffer.WIDTH|stringformat: + + {% if forloop.first %} + + {{ CurOffer.TOTAL|stringformat:".2f"|price_format }} + {% if CurOffer.DISCOUNT < 0.1 %}—{% else %}−{{ CurOffer.DISCOUNT|stringformat:".1f" }}%{% endif %} + + Итого: {{ CurOffer.FIN_PRICE|stringformat:".2f"|price_format }}  + + + + {% if CurOffer.DIM|length == 1 %} + + +   + + + {% endif %} + + {% elif forloop.counter0 == 1 %} + + + + {% endif %} + {% if forloop.counter0 == 1 or CurOffer.DIM|length == 1 %} + + {{ CurOffer.OFFICE_NAME }}
+ +
+ {{ CurOffer.OFFICE_ADDRESS }}
{{ CurOffer.OFFICE_PHONES }}
+ Пожалуйста, скажите, что нашли цены на oknardia.ru +
+ + + {% endif %} + {% endfor %}{% endfor %} + + +
подгружаю цены на окна...
+ + + + + + Сравнить выбранные (0)

+ {% if N != "-1" %}Ещё коммерческие предложения окон  {% endif %} + \ No newline at end of file diff --git a/oknardia/web/prices.py b/oknardia/web/prices.py index 9791de5..c519268 100644 --- a/oknardia/web/prices.py +++ b/oknardia/web/prices.py @@ -441,7 +441,23 @@ def report_one_win_price(request: HttpRequest, win_width_mm: str = '670', win_he 'LOG_VISIT': get_last_all_user_visit_list(), 'ticks': float(time.time() - time_start) }) - return render(request, "report/report_price-offers_for_one_window.html", to_template) + return render(request, "report/report_price_offers_for_one_window.html", to_template) + + +def next_one_win_price(request: HttpRequest, win_id='16', frame_begin_n="0"): + """ Возвращает очередной фреймом ценовых предложений для выдачи с одиночным окном. + + :param request: HttpRequest -- входящий http-запрос + :param win_id: str -- id типового окна + :param frame_begin_n: str -- Номер записи с которой начинается фрейм с ценами + :return: HttpResponse -- + """ + time_start = time.time() + to_template = report_price_frame(0, 1, 0, 0, int(frame_begin_n), 0, int(win_id)) + to_template.update({'MOUNT_DIM_PER_OFFER': 1, + 'WIN_ID': int(win_id), + 'ticks': float(time.time() - time_start)}) + return render(request, "report/report_price_offers_for_one_window_frame.html", to_template) def report_price(request: HttpRequest, build_id: str = "22427", apart_id: str = "61", @@ -680,7 +696,7 @@ def next_price_frame(request: HttpRequest, apart_id: str = "1", mount_dim_per_o :param address_latitude: str -- широта адреса (геокоордината), для которого получаем ценовые предложения, чтобы рассчитать удаленность компании предоставившей коммерческие предложения :param frame_begin_n: str -- Номер записи с которой начинается фрейм с ценами - :return: HttpResponse -- HTTP-ответ + :return: HttpResponse -- HTTP-ответ """ time_start = time.time() # получаем данные для фрейма ценовых предложений