mod: изменение роутинга для страницы ценовых предложений (4)

This commit is contained in:
2026-05-05 17:40:18 +03:00
parent 4de35904f4
commit b583afa080
4 changed files with 45 additions and 5 deletions

View File

@@ -84,13 +84,13 @@ urlpatterns = [
prices.redirect_one_win_price_legacy), # LEGACY-URL: 301 -> КАНОНИЧЕСКИЙ ПУТЬ
re_path(r'^next_price_one_flap_frame/idW(?P<win_id>\d+)N(?P<frame_begin_n>\d+)\S*$',
prices.next_one_win_price), # ПОДГРУЖАЕМЫЙ ФРЕЙМ С ЦЕНОВЫМИ ПРЕДЛОЖЕНИЯМИ ДЛЯ ОДНОГО ПРОЕМА
# --- Ценовая выдача (НОВЫЙ РОУТИНГ)
# Новый красивый URL с префиксами seriaID, appartAD, addressID
# --- ЦЕНОВАЯ ВЫДАЧА (НОВЫЙ РОУТИНГ)
# НОВЫЙ КРАСИВЫЙ URL С ПРЕФИКСАМИ SERIAID, APPARTAD, ADDRESSID
re_path(r'^price/seriaID(?P<seria_id>\d+)--(?P<seria_slug>[^/]+)/appartID(?P<apart_id>\d+)/addressID(?P<address_id>\d+)--(?P<address_slug>[^/]+)/?$', prices.report_price_new),
# --- Подгружаемый фрейм ценовой выдачи (оставляем старый)
# --- ПОДГРУЖАЕМЫЙ ФРЕЙМ ЦЕНОВОЙ ВЫДАЧИ (ОСТАВЛЯЕМ СТАРЫЙ)
re_path(r'^next_price_frame/idA(?P<apart_id>\d+)MDPO(?P<mount_dim_per_offer>\d+)LON(?P<address_longitude>\d+)'
r'LAT(?P<address_latitude>\d+\.*\d*)N(?P<frame_begin_n>\d+\.*\d*)\S*[/*]$', prices.next_price_frame),
# --- Старый URL ценовой выдачи (добавим редирект)
# --- СТАРЫЙ URL ЦЕНОВОЙ ВЫДАЧИ (ДОБАВИМ РЕДИРЕКТ)
re_path(r'^(?P<build_id>\d+)/(?P<apart_id>\d+)/(?P<slug>[\s\S]*)$', prices.report_price_legacy_redirect),
# СРАВНЕНИЕ ОКОННЫХ НАБОРОВ
re_path(r'^compare_sets/(?P<to_compare>[\s\S]+|.*)$', report1.compare_offers), # дубль для старых ссылок

View File

@@ -0,0 +1,38 @@
<div class="col-md-9 col-xs-12" style="padding:0;">
<!--- прешаблон начало --->
<table style="padding:2px;">
{% for row in TABLE_OF_WINDOWS %}
<tr class="tr2">
<td>{{ row.APART_NAME|safe }}</td>
{% for col in row.WIN_IN_APART %}
<td class="cntr">
{% if col.WIN_ID %}
<nobr title="{{ col.WIN_Q }} × {{ col.WIN_DESCRIPTION }}: {{ col.WIN_WIDTH }}шт.: {{ col.WIN_HEIGHT }} (Ш×В, см.). Схема открывания: {{ col.WIN_FLAPCFG }}">
{% for I_II in col.WIN_NUM %}
<span style="background-image:url('/static/img/svg/mark{{ I_II }}.svg');">&nbsp;</span>
{% endfor %}
</nobr>
{% else %}—{% endif %}
</td>
{% endfor %}
<td style="background:#f9f9f9;">
<a href="#{{ row.APART_ID }}" class="badge" title="Оконных предложений для квартиры: {{ row.NUM_OFFERS }}">
<small class="glyphicon glyphicon-tags" aria-hidden="true"></small>&nbsp;{{ row.NUM_OFFERS }}
</a>
</td>
</tr>
{% endfor %}
<tr class="trZ">
<td style="font-size: xx-small;vertical-align:text-top">© 2015-2026, данные: oknardia.ru</td>
{% for i in WIN_OFFER_AND_MERCHANT %}
<td class="cntr" style="background:#f9f9f9;">
<a href="/catalog/standard_opening/price-{{ i.WIN_W|floatformat:0 }}0x{{ i.WIN_H|floatformat:0 }}0mm-tip{{ i.WIN_ID }}" class="badge" title="Ценовых предложений для окна: {{ i.WIN_OFFER }}">
<small class="glyphicon glyphicon-tags" aria-hidden="true"></small>&nbsp;{{ i.WIN_OFFER }}
</a>
</td>
{% endfor %}
<td></td>
</tr>
</table>
<!--- прешаблон конец --->
</div>

View File

@@ -123,7 +123,7 @@ def get_address(request: HttpRequest) -> HttpResponse:
try:
q = Building_Info.objects.get(sAddress=addr)
# Если QuerySet не содержит GeoCode (такое бывает, что в Яндекс-Картах не было каких-то данных),
# то пробуем получить GeoCode повторно (вдруг, у Яндекс-Карт расширилась база адресов)
# то пробуем получить GeoCode повторно (вдруг у Яндекс-Карт расширилась база адресов)
if int(q.fGeoCode_Longitude) != 0 and int(q.fGeoCode_Latitude != 0):
# print("координаты не ноль")
to_template.update({'LATITUDE': str(q.fGeoCode_Latitude).replace(",", "."),