314 lines
18 KiB
HTML
Executable File
314 lines
18 KiB
HTML
Executable File
{% extends "base.html" %}
|
||
{% load static %}
|
||
{% load filters %}
|
||
|
||
{% block Title %}Цены на окна для {{ ADDRESS }} — дом серии {{ APART|safe }}{% endblock %}
|
||
|
||
{% block Add_Body_Attribute %} style="padding-top:70px;"{% endblock %}
|
||
|
||
{# SEO-описание: информативно для поисковиков и людей, но кратно. #}
|
||
{% block Description %}Лучшие цены на пластиковые окна для серии {{ APART|safe }} в доме по адресу {{ ADDRESS }}. Сравните {{ PRICE_FRAME|length }} предложений от ведущих компаний, узнайте стоимость окон для вашей квартиры и получите скидку!{% endblock %}
|
||
|
||
{# SEO-ключевые слова: расширяем, добавляем вариации, город, преимущества. #}
|
||
{% block Keywords %}цены на окна, пластиковые окна, серия {{ BASE_SERIA }}, стоимость окон, окна для {{ BASE_SERIA }}, размеры окон, проемы серии {{ BASE_SERIA }}, окна в {{ APART|safe }}, скидки на окна, {{ ADDRESS }}, оконный профиль, монтаж окон, установка окон, сравнение цен, лучшие предложения, акции, рассрочка, {{ KEYWORDS_EXTRA }}{% endblock %}
|
||
|
||
{% block ADD_TO_HEAD %}{# --- Микроразметка schema.org, Open Graph, Twitter Card, meta-даты --- #}
|
||
{# --- JSON-LD микроразметка schema.org: хлебные крошки по новой структуре + остальные объекты --- #}
|
||
<script type="application/ld+json">
|
||
[
|
||
{
|
||
"@context": "https://schema.org",
|
||
"@type": "BreadcrumbList",
|
||
"itemListElement": [
|
||
{
|
||
"@type": "ListItem",
|
||
"position": 1,
|
||
"name": "Главная",
|
||
"item": "{{ request.scheme }}://{{ request.get_host }}/"
|
||
},
|
||
{
|
||
"@type": "ListItem",
|
||
"position": 2,
|
||
"name": "Серия {{ BASE_SERIA }}",
|
||
"item": "{{ request.scheme }}://{{ request.get_host }}/catalog/seria/{{ BASE_SERIA_LAT }}/all{{ BASE_SERIA_ID }}"
|
||
},
|
||
{
|
||
"@type": "ListItem",
|
||
"position": 3,
|
||
"name": "{{ APART }}"
|
||
},
|
||
{
|
||
"@type": "ListItem",
|
||
"position": 4,
|
||
"name": "Цены замены окон по адресу: {{ ADDRESS }}"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"@context": "https://schema.org/",
|
||
"@type": "Organization",
|
||
"name": "ОКНАРДИЯ — агрегатор цен на окна",
|
||
"url": "{{ request.scheme }}://{{ request.get_host }}/",
|
||
"logo": "{{ request.scheme }}://{{ request.get_host }}{% static 'img/oknardia_logo.svg' %}",
|
||
"description": "Сравнение цен на установку оконных конструкций в типовых жилых домах России",
|
||
"contactPoint": {"@type": "ContactPoint", "contactType": "Customer Service"}
|
||
},
|
||
{
|
||
"@context": "https://schema.org/",
|
||
"@type": "Product",
|
||
"name": "Окна для {{ APART|safe }} ({{ ADDRESS }})",
|
||
"size": "{% for I_WIN_DIM in FLAP_DIM %}{{ I_WIN_DIM.iWinWidth|floatformat:0 }}x{{ I_WIN_DIM.iWinHight|floatformat:0 }}мм — {{ I_WIN_DIM.iQuantity }} шт.{% if not forloop.last %}; {% endif %}{% endfor %}",
|
||
"description": "Цены на пластиковые окна для серии {{ APART|safe }} по адресу {{ ADDRESS }}. Сравните предложения, комплектации, получите скидки и выберите лучшее решение!",
|
||
"image": {"@type": "ImageObject", "url": "{{ request.scheme }}://{{ request.get_host }}{% static 'img/oknardia_logo.svg' %}"},
|
||
"brand": {"@type": "Brand", "name": "ОКНАРДИЯ"},
|
||
"url": "{{ request.scheme }}://{{ request.get_host }}{{ request.path }}",
|
||
"offers": {"@type": "AggregateOffer", "priceCurrency": "RUB", "itemCondition": "https://schema.org/NewCondition", "availability": "https://schema.org/InStock", "offerCount": "{{ PRICE_FRAME|length }}"}
|
||
},
|
||
{# --- ItemList с Offer для каждого предложения (цена, продавец, рейтинг, дата, внутренняя ссылка, профиль, стеклопакет, список окон) --- #}{
|
||
"@context": "https://schema.org/",
|
||
"@type": "ItemList",
|
||
"itemListElement": [
|
||
{% for CurOffer in PRICE_FRAME %}
|
||
{
|
||
"@type": "Offer",
|
||
"position": {{ forloop.counter }},
|
||
"name": "{{ CurOffer.SETS_NAME|escapejs }}",
|
||
"seller": {"@type": "Organization", "name": "{{ CurOffer.MERCHANT|escapejs }}"},
|
||
"windows": [
|
||
{% for CurInOffer in CurOffer.DIM %}{"size": "{{ CurInOffer.WIDTH|stringformat:'d' }}x{{ CurInOffer.HIGHT|stringformat:'d' }}", "count": {{ CurInOffer.QUANTITY }}}{% if not forloop.last %}, {% endif %}{% endfor %}
|
||
],
|
||
"profile": "{{ CurOffer.PVC_NAME|escapejs }}",
|
||
"glazing": "{{ CurOffer.GLAZING_NAME_B|escapejs }}",
|
||
"price": "{{ CurOffer.FIN_PRICE|stringformat:'d' }}",
|
||
"priceCurrency": "RUB",
|
||
{% if CurOffer.SETS_RATING %}"aggregateRating": {"@type": "AggregateRating", "ratingValue": "{{ CurOffer.SETS_RATING|stringformat:'.2f' }}"}, {% endif %}
|
||
{% if CurOffer.SETS_DATA_MODIFY %}"priceValidUntil": "{{ CurOffer.SETS_DATA_MODIFY|date:'Y-m-d' }}", {% endif %}
|
||
"availability": "https://schema.org/InStock",
|
||
"itemCondition": "https://schema.org/NewCondition",
|
||
"url": "#offer_{{ CurOffer.SETS_ID }}"
|
||
}{% if not forloop.last %},
|
||
{% endif %}{% endfor %}
|
||
]
|
||
}
|
||
]
|
||
</script>
|
||
{# --- Open Graph (OG) --- #}<meta property="og:title" content="Цены на окна для {{ APART|safe }} ({{ ADDRESS }})" />
|
||
<meta property="og:description" content="Сравните цены, комплектации и получите лучшие предложения на пластиковые окна для серии {{ APART|safe }} по адресу {{ ADDRESS }}!" />
|
||
<meta property="og:type" content="website" />
|
||
<meta property="og:url" content="{{ request.scheme }}://{{ request.get_host }}{{ request.path }}" />
|
||
<meta property="og:image" content="{{ request.scheme }}://{{ request.get_host }}{% static 'img/oknardia_logo.svg' %}" />
|
||
<meta property="og:site_name" content="ОКНАРДИЯ — агрегатор цен на окна" />
|
||
{# --- Twitter Card --- #}<meta name="twitter:card" content="summary_large_image" />
|
||
<meta name="twitter:title" content="Цены на окна для {{ APART|safe }} ({{ ADDRESS }})" />
|
||
<meta name="twitter:description" content="Сравните цены, комплектации и получите лучшие предложения на пластиковые окна для серии {{ APART|safe }} по адресу {{ ADDRESS }}!" />
|
||
<meta name="twitter:image" content="{{ request.scheme }}://{{ request.get_host }}{% static 'img/oknardia_logo.svg' %}" />
|
||
{# --- Даты публикации и обновления --- #}<meta name="date" content="{{ META_DATA_PUBLISH|date:'Y-m-d' }}" />
|
||
<meta property="article:published_time" content="{{ META_DATA_PUBLISH|date:'Y-m-d' }}" />
|
||
<meta property="article:modified_time" content="{{ META_DATA_PUBLISH|date:'Y-m-d' }}" />
|
||
{% endblock %}
|
||
|
||
{% block Top_JS3%}<script type="text/javascript" src="{% static 'js/track_user_visit.js' %}"></script>
|
||
<script type="text/javascript">
|
||
function show_phone_num( id ){ // колапсатор для отображения контатной информации постафшика окон
|
||
$('#tel'+id).collapse('show');
|
||
$('#hid'+id).collapse('hide');
|
||
try {
|
||
yaCounter32997984.reachGoal('ShowPhone')
|
||
} catch (e) {
|
||
}
|
||
try {
|
||
var _tmr = window._tmr || (window._tmr = []);
|
||
_tmr.push({id: "2018432", type: "reachGoal", goal: "ViewPhone"});
|
||
} catch (e) {
|
||
}
|
||
}
|
||
function show_dtl( id ){ // колапсаторы для отобращения детальной информации оконого набора
|
||
$('#dtl'+id).collapse('show');
|
||
$('#btn'+id+' a .glyphicon-chevron-down').remove();
|
||
var ContentInA = $('#btn'+id+' a').text();
|
||
$('#btn'+id).empty();
|
||
$('#btn'+id).text(ContentInA);
|
||
try {
|
||
yaCounter32997984.reachGoal('ShowDetails')
|
||
} catch (e) {
|
||
}
|
||
try {
|
||
var _tmr = window._tmr || (window._tmr = []);
|
||
_tmr.push({id: "2018432", type: "reachGoal", goal: "ViewDetails"});
|
||
} catch (e) {
|
||
}
|
||
}
|
||
$(window).load( // уменьшение картинок .half для ретина-дисплеев
|
||
function(){var images = $('.half');images.each(function(i){$(this).width($(this).width()/2);});}
|
||
);
|
||
var count = 0;
|
||
var ForCompare = document.getElementsByName('ForCompare');
|
||
$(window).load( // подсчитать сколько прочеканных оферов для сравнения (нужно, когда на страничку возращаются через back, ее подгрущают или она приходит из кеша
|
||
function(){
|
||
for (var i=0; i < ForCompare.length; i++)
|
||
if (ForCompare[i].checked)
|
||
count++;
|
||
// alert(count);
|
||
$('#NumberOfSelected').html(count)
|
||
}
|
||
);
|
||
var ToURL = '';
|
||
function Click2CompareOffers(){ // вызывается при клике "сравнить коммерческие предложения"
|
||
try{yaCounter32997984.reachGoal('CompareOffers')}catch(e){}
|
||
//ForCompare = $('[name]=ForCompare');
|
||
for (var i=0; i < ForCompare.length; i++)
|
||
if (ForCompare[i].checked)
|
||
ToURL += ForCompare[i].value +',';
|
||
if (ToURL.match(/[,]/g).length > 1 && ToURL.match(/[,]/g).length < 7 )
|
||
location.href = '/compare_offers/' + ToURL.slice(0,-1);
|
||
else {
|
||
$('#modal-exclamation').modal('show');
|
||
ToURL = '';
|
||
}
|
||
}
|
||
|
||
function ChangeCountCheckedBox(CHK_ID){ // изменение числа выбранных для сравнения оферов
|
||
if ($("#CHK"+CHK_ID).is(":checked")) count++;
|
||
else count--;
|
||
$("#NumberOfSelected").html(count)
|
||
}
|
||
|
||
function get_more_info_about_building() {
|
||
try{yaCounter32997984.reachGoal("ClickBuildingDetails");}catch(e){}
|
||
}
|
||
|
||
$(function () { // инициализация и обработка поповеров рейтинга
|
||
$('[data-toggle="popover"]').popover({
|
||
placement: "top",
|
||
html: true,
|
||
content: function () {
|
||
// сохранить текущий контекст
|
||
var _this = this;
|
||
$('#shadow_buffer').load('/show_rating_components/' + $(_this).attr("id-set"), function (response, status, xhr) {
|
||
if (status == "error")
|
||
$(_this).attr({'data-content': "Ошибка " + xhr.status + " (" + xhr.statusText + ")"});
|
||
else
|
||
$(_this).attr({'data-content': response});
|
||
$(_this).popover('show');
|
||
try{yaCounter32997984.reachGoal("ShowRating");}catch(e){};
|
||
});
|
||
}
|
||
})
|
||
})
|
||
</script>{% endblock %}
|
||
|
||
{% block Top_CSS1 %}<link rel="stylesheet" type="text/css" href="{% static "css/csshake-vertical.min.css" %}">{% endblock %}
|
||
|
||
{% block Main_Content %}<div class="container-fluid">
|
||
{# --- Хлебные крошки: НАЧАЛО --- #}<div class="row">
|
||
<div class="col-md-12">
|
||
<ol class="breadcrumb">
|
||
<li><a href="/">Главная</a></li>
|
||
<li><a href="/catalog/seria/{{ BASE_SERIA_LAT }}/all{{ BASE_SERIA_ID }}">Серия {{ BASE_SERIA }}</a></li>
|
||
<li>{{ APART }}</li>
|
||
<li>Цены замены окон по адресу: {{ ADDRESS }}</li>
|
||
</ol>
|
||
</div>
|
||
</div>{# --- Хлебные крошки: КОНЕЦ --- #}
|
||
<div class="row">
|
||
<div class="col-md-9">
|
||
<h1>Цены на окна для серии {{ APART|safe }} <small><nobr>({{ ADDRESS }})</nobr></small></h1>
|
||
</div>
|
||
<div class="col-md-9">
|
||
<p>Квартира имеет проёмы (окна и балконные двери) следующих размеров: {% for I_WIN_DIM in FLAP_DIM %}{% if not forloop.first %}{% if forloop.last %} и {% else %}, {% endif %}{% endif %}{{ I_WIN_DIM.iWinWidth|floatformat:0 }}x{{ I_WIN_DIM.iWinHight|floatformat:0 }} см. — {{ I_WIN_DIM.iQuantity }} шт.{% endfor %} Проект (<a href="/catalog/seria/{{ BASE_SERIA_LAT }}/all{{ BASE_SERIA_ID }}">типовая серия {{ BASE_SERIA }}</a>) предполагает следующие схемы открывания окон:</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row ShowBigFlapPictures">
|
||
<div class="col-sm-9">{% include 'report/show_big_flap_pictures.html' %}</div>
|
||
<div class="col-sm-3 visible-md visible-lg ap_list">
|
||
<h6>Другие типовые квартиры в этом доме:</h6>
|
||
<ul>{% for I_APART in APARTMENT_IN_BUILDING %}
|
||
{% if I_APART.APT_ID == '!' %}<li>{{ I_APART.APT_NAME|safe }}</li>{% else %}
|
||
{# Новый формат роутинга для перехода между квартирами #}
|
||
<li><a href="/price/seriaID{{ BASE_SERIA_ID }}--{{ BASE_SERIA_LAT }}/appartID{{ I_APART.APT_ID }}/addressID{{ BUILD_ID }}--{{ ADDRESS_T }}/">{{ I_APART.APT_NAME|safe }}</a></li>
|
||
{% endif %}{% endfor %}
|
||
</ul>
|
||
<a href="/catalog/seria/{{ BASE_SERIA_LAT }}/all{{ BASE_SERIA_ID }}">Информация по серии {{ BASE_SERIA }}</a>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row col-md-12">
|
||
<div class="col-md-12">
|
||
<p id="tab-note">Таблица содержит цены поставщиков. Клик на название отобразит детальные спецификации каждого предложения: марку профиля рамы и створки, схему стеклопакета, тип фурнитуры, элементы отделки (отлив, подоконник, откос, клапан <nobr>климат-контроля</nobr>) и сопутствующие услуги. Предложения выводятся покадрово, получите следующий кадр кнопкой «Ещё коммерческие предложения окон» под таблицей. Просмотреть и сравнить технические характеристики стеклопакетов, профилей и детальное описание сопутствующих услуг возможно с помощью кнопки «Сравнить выбранные».</p>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<form class="col-md-12" method="get" action="\" id="compare_offers">
|
||
{% csrf_token %}
|
||
<table class="table" id="price-list">
|
||
<thead>
|
||
<tr>
|
||
<th><b class="glyphicon glyphicon-th-list" title="Добавление набора окон в список сравнения" aria-label="Добавление набора окон в список сравнения"></b></th>
|
||
<th>Поставщик окон и название оконного набора<small><br />
|
||
кликните чтобы увидеть описание и характеристики предложения</small>
|
||
</th>
|
||
<th colspan="2">Схема<small><br />
|
||
открывания</small></th>
|
||
<th>Цена, <b class="glyphicon glyphicon-ruble" aria-label="₽ (руб.)" title="₽ (руб.)"></b><small><br />
|
||
одно окно</small></th>
|
||
<th>N</th>
|
||
<th colspan="2" class="hidden-xs hidden-sm">Cумма, <b class="glyphicon glyphicon-ruble" aria-label="₽ (руб.)" title="₽ (руб.)"></b><small><br />
|
||
однотипные окна</small></th>
|
||
<th>Стоимость, <b class="glyphicon glyphicon-ruble" aria-label="₽ (руб.)" title="₽ (руб.)"></b><small><br />
|
||
все окна квартиры</small></th>
|
||
<th>Скидка</th>
|
||
<th>Итого<small><br />
|
||
за все окна с учетом скидки</small></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody id="offers">
|
||
{% include "price/price_list_frame.html" %}
|
||
</tbody>
|
||
</table>
|
||
</form>
|
||
{% with SERIA_BASE=BASE_SERIA %}{% include "report/build_info_in_table.html" %}{% endwith %}
|
||
{# --- Баннер: НАЧАЛО --- #}
|
||
<div class="row"><div class="col-md-12 col-xs-12"><hr class="dotted-black" />{% include "ad/bannet-wide.html" %}</div></div>
|
||
{# --- Баннер: конец --- #}
|
||
<div class="row">
|
||
{% include "report/report_last_user_visit.html" %}
|
||
{% include "report/report_log_user_visit.html" %}
|
||
<p id="shadow_buffer"></p>
|
||
</div>
|
||
|
||
{# Скрытый элемент для отслеживания визитов пользователя (передача данных в JS track_user_visit.js) #}
|
||
<div id="tracking-data"
|
||
data-current-url="{{ request.path }}"
|
||
data-address="{{ ADDRESS }}"
|
||
data-apart="{{ APART }}"
|
||
style="display: none;"></div>
|
||
|
||
{# модальное окно #}
|
||
<div class="modal fade bs-example-modal-sm" id="modal-exclamation" tabindex="-1" role="dialog">
|
||
<div class="modal-dialog modal-sm">
|
||
<div class="modal-content">
|
||
<div class="modal-header">
|
||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||
<h4 class="modal-title" id="mySmallModalLabel">Внимание:</h4>
|
||
</div>
|
||
<div class="modal-body">
|
||
<p>Извините, для сравнения коммерческих предложений окон нужно выбрать не менее двух и не более шести позиций.</p>
|
||
</div>
|
||
<div class="modal-footer">
|
||
<button type="button" class="btn btn-default" data-dismiss="modal">Спасибо, все понятно.</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
{% endblock %}
|
||
|
||
{% comment %}
|
||
{% block Top_Nav_Bar %}
|
||
{# ОТЛАДКА, ГАСИМ ВЕРХНЕЕ МЕНЮ #}
|
||
{% endblock %}
|
||
{% endcomment %}
|
||
|