src/WebBundle/Resources/views/Catalog/search-result.html.twig line 1

Open in your IDE?
  1. {% include '@Web/Catalog/script-tag.html.twig' with { 'result': result } %}
  2. {% import '@Web/Collection/collection_macros.html.twig' as setParameter %}
  3. {% import '@Web/Common/plural-macros.html.twig' as intl %}
  4. <div class="divDataFs"
  5.      data-filtersearch="{{ dataFilterSearch }}"
  6.      data-filters="{{ activeFilters != null ? activeFilters | json_encode(constant('JSON_PRETTY_PRINT')) : '' }}"
  7. ></div>
  8. <div class="set-z-index-boxify"></div>
  9. {% set currentPage = app.request.query.get('page') %}
  10. {% set isFirstPage = currentPage is null or currentPage == 1 or currentPage == '1' %}
  11. {% for k, elem in result.list %}
  12.     {% set article = (elem.interiors | length < 1 and (elem.a_show == 1 or elem.interiors | length == 0)) ? true : false %}
  13.     {% set numOfImgWithoutLazy = is_mobile() ? 5 : 12 %}
  14.     {# Условие для применения lazy loading на основе позиции элемента в списке #}
  15.     {# Если curRoute НЕ определен (API загрузка) - применяем lazy для ВСЕХ элементов #}
  16.     {# Если curRoute определен (первая загрузка страницы) - применяем lazy только для элементов после numOfImgWithoutLazy #}
  17.     {% set shouldApplyLazy = curRoute is not defined or loop.index > numOfImgWithoutLazy %}
  18.     {# Переменные для рейтинга - определяем один раз в начале #}
  19.     {% if elem.prc_count > 0 %}
  20.         {% set reviewsRate = elem.prc_vote / elem.prc_count %}
  21.         {% set reviewsRateRounded = reviewsRate | round(1) %}
  22.     {% endif %}
  23.     {# Найти интерьер с минимальной шириной, учитывая наличие атрибута 'x' #}
  24.     {% set interiorWithMinSize = null %}
  25.     {% for interior in elem.interiors %}
  26.         {% if interior.x is defined %}
  27.             {% if interiorWithMinSize is null or interior.x | number_format < interiorWithMinSize.x | number_format %}
  28.                 {% set interiorWithMinSize = interior %}
  29.             {% endif %}
  30.         {% endif %}
  31.     {% endfor %}
  32.     {% set isCategoryPage = true %}
  33.     {% set isFirstPageElem = k == 0 and isFirstPage %}
  34.     {% set totalReviewsCount = result.reviewsTotalCount is defined ? result.reviewsTotalCount : 0 %}
  35.     {# Определяем, можем ли мы показать схему продукта #}
  36.     {% set canShowProductSchema = isFirstPageElem and totalReviewsCount > 0 %}
  37.     {# Для резервной продуктовой разметки #}
  38.     {% set canShowNativeProductSchema = false %}
  39.     {# Данные для тестовой разметки продукта на странице категории #}
  40.     {% if canShowProductSchema %}
  41.         {% set productMarkupData = {
  42.             'name': result.catalogName is defined ? result.catalogName : '',
  43.             'ratingCount': totalReviewsCount,
  44.             'reviewCount': totalReviewsCount,
  45.             'ratingValue': result.avgReviewsStar is defined ? result.avgReviewsStar : 0,
  46.         } %}
  47.     {% endif %}
  48.     {% if elem.c_name != null %}
  49.         {% set price = elem.measureId == 1 and elem.price_mq > 0 ? elem.price_mq : elem.price %}
  50.         {% set price = userCurrency() == 'GBP' ? elem.price | floatSing : elem.price | floatSing(0) %}
  51.         <div class="boxInformer js-catalog-box-informer"
  52.             data-id={{ elem.c_id }}
  53.             {% if canShowProductSchema %}
  54.                 itemscope itemtype="https://schema.org/Product"
  55.             {% endif %}
  56.         >
  57.             {% set exhibitions = false %}
  58.             {% if not isPageExhibition and elem.c_exhibition | length > 0 %}
  59.                 {% set exhibitions = elem.c_exhibition %}
  60.             {% endif %}
  61.             {# выезжающий информер #}
  62.             <div class="collection-informer">
  63.                 <div class="innerBoxInformer">
  64.                     <div class="header-wrapper">
  65.                         <div class="header">
  66.                             {% if canShowProductSchema %}
  67.                                 <meta itemprop="name" content="{{ productMarkupData.name }}"/>
  68.                             {% endif %}
  69.                             <span
  70.                                 {% if canShowNativeProductSchema %}
  71.                                     itemprop="name"
  72.                                 {% endif %}
  73.                                 class="textCollection">{{ elem.c_name | transform }}
  74.                             </span>
  75.                             {% if elem.author != null %}
  76.                                 <span class="design-name" data-name="{{ elem.author | trim }}">
  77.                                 ({{ 'catalog_desigin' | trans ({'%author%' : elem.author | trim }) }})
  78.                                 </span>
  79.                             {% endif %}
  80.                             <span
  81.                                 {% if canShowNativeProductSchema %}
  82.                                     itemprop="brand" itemscope itemtype="https://schema.org/Brand"
  83.                                 {% endif %}
  84.                             >
  85.                                 {% if canShowNativeProductSchema %}
  86.                                     <meta itemprop="name" content="{{ elem.f_name | transform }}"/>
  87.                                 {% endif %}
  88.                                 {{ 'collection_by' | trans }} {{ elem.f_name | transform }}
  89.                             </span>
  90.                             <span class="flag flag-{{ elem.country_code | lower }}"></span>
  91.                         </div>
  92.                     </div>
  93.                     {% if canShowNativeProductSchema %}
  94.                         <meta itemprop="sku" content="{{ elem.c_code }}"/>
  95.                         <meta itemprop="description" content="{{ meta.description | raw }}"/>
  96.                         <meta itemprop="mpn" content="{{ elem.c_id }}"/>
  97.                         {% if elem.prc_count > 0 %}
  98.                             <span itemprop="review" itemscope itemtype="http://schema.org/Review">
  99.                                 <span itemprop="author" itemscope itemtype="http://schema.org/Person">
  100.                                     <meta itemprop="name" content="author"/>
  101.                                 </span>
  102.                                 <span itemprop="reviewRating" itemtype="http://schema.org/Rating" itemscope>
  103.                                     <meta itemprop="ratingValue" content="{{ elem.prc_vote / elem.prc_count }}"/>
  104.                                     <meta itemprop="bestRating" content="5"/>
  105.                                     <meta itemprop="worstRating" content="1"/>
  106.                                 </span>
  107.                             </span>
  108.                         {% endif %}
  109.                     {% endif %}
  110.                     {% if elem.type == 1 %}
  111.                         <br/>
  112.                         <div>
  113.                             <b>{{ 'catalog_price_from' | trans }}
  114.                                 <strong>{{ price > 0 ? price : '-' }}</strong>
  115.                                 {{ '' | currency | raw }}/{{ elem.measureText | trans }}
  116.                             </b>
  117.                         </div>
  118.                     {% endif %}
  119.                     <div class="settings" data-processed="0"
  120.                          data-action="{{ path('app_collection_settings', { 'coll': elem.c_id }) }}">
  121.                     </div>
  122.                     {% if elem.prc_count > 0 %}
  123.                         {% set lang = userLocale() | default('en') %}
  124.                         {% set reviewKey = 'review.plural_forms' %}
  125.                         {% set translated = reviewKey | trans %}
  126.                         {% set reviewTrans = translated == reviewKey ? 'review,reviews,reviews' : translated %}
  127.                         <div class="collections-rating">
  128.                             <span>{{ reviewsRateRounded }}&nbsp;</span>
  129.                             {{ include ('@Web/Common/rating_stars.html.twig', {'rating': reviewsRateRounded, 'classname': '' }) }}
  130.                             <a href={{ "#{elem.url}#description_reviews" }} class="count-reviews">
  131.                                 {{ elem.prc_count }} {{ intl.pluralForm(elem.prc_count, lang, reviewTrans) }}
  132.                             </a>
  133.                         </div>
  134.                     {% endif %}
  135.                 </div>
  136.                 <div class="arrow-tips">
  137.                     <div class="arrow-tips-inner"></div>
  138.                 </div>
  139.             </div>
  140.             {% set lastElCount = elem.interiors | length %}
  141.             {% set hiddenDots = lastElCount <= 1 %}
  142.             <div class="butPointBlueBox {{ hiddenDots ? ' dots--hidden' : '' }}">
  143.                 {% for index, interior in elem.interiors %}
  144.                     <div data-code="{{ interior.i_id }}"
  145.                          class="butPointBlue{{ index == 0 ? ' butPointBlueSel' : '' }}"
  146.                          data-slide-nav={{ loop.index }}></div>
  147.                 {% endfor %}
  148.                 {% if article %}
  149.                     {% for index, article in elem.articles %}
  150.                         {% if index < 3 - elem.interiors | length %}
  151.                             <div data-action=""
  152.                                  class="butPointBlue {{ index == 0 and elem.interiors | length == 0 ? ' butPointBlueSel' : '' }}">
  153.                             </div>
  154.                             {% set lastElCount = index + 1 %}
  155.                         {% endif %}
  156.                     {% endfor %}
  157.                 {% endif %}
  158.             </div>
  159.             <div class="arrow left" data-prev-interior="{{ lastElCount }}"></div>
  160.             <div class="arrow right" data-next-interior="2"></div>
  161.             <a href="{{ elem.url }}"
  162.                target="_blank"
  163.                rel="noopener"
  164.                class="bodyImg js-collection-page-link {% if article %}article_bodyImg{% endif %}"
  165.                data-id-coll="{{ elem.c_id }}"
  166.                data-link="{{ elem.url }}"
  167.                data-page="{{ page }}"
  168.                {% if canShowNativeProductSchema %}
  169.                    itemprop="url"
  170.                {% endif %}
  171.             >
  172.                 {% for index, interior in elem.interiors %}
  173.                     {% set path = setParameter.setCatalogInteriorNameFile(elem, interior) %}
  174.                     {% set trimmedPath = path | trim %}
  175.                     {# {% set pathWithModifiedPostfix = trimmedPath | replace({'/z_': '/a_'}) %} #}
  176.                     {% set id = interior.i_id %}
  177.                     <div>
  178.                         <img content="{{ trimmedPath }}"
  179.                             {% if canShowNativeProductSchema %}
  180.                                 itemprop="image"
  181.                             {% endif %}
  182.                             {# Применяем lazy loading если: элемент далеко в списке ИЛИ это не первое изображение в слайдере #}
  183.                             {% if shouldApplyLazy or index > 0 %}
  184.                                 loading="lazy"
  185.                             {% endif %}
  186.                             data-alt="{{ interior.alt }}"
  187.                             data-first="interior{{ interior.i_id }}"
  188.                             {% if index == 0 and interiorWithMinSize is not null %}
  189.                                 data-width="{{ interiorWithMinSize.x == "0" ? 200 : interiorWithMinSize.x }}"
  190.                                 data-height="{{ interiorWithMinSize.x == "0" ? 300 : interiorWithMinSize.y }}"
  191.                             {% elseif interior.x == 0 or interior.x > 600 %}
  192.                                 data-width="400"
  193.                                 data-height="400"
  194.                             {% else %}
  195.                                 data-width="{{ interior.x | round }}"
  196.                                 data-height="{{ interior.y | round }}"
  197.                             {% endif %}
  198.                             data-slide="{{ loop.index }}"
  199.                             data-process="{{ elem.process }}"
  200.                             alt="{{ interior.alt }}"
  201.                             data-observe-img
  202.                             {% if index == 0 %}
  203.                                 class="oneImg"
  204.                             {% else %}
  205.                                 class="image"
  206.                                 data-link="{{ trimmedPath }}"
  207.                             {% endif %}
  208.                             src="{{ trimmedPath }}"
  209.                         />
  210.                     </div>
  211.                 {% endfor %}
  212.                 {% if article %}
  213.                     {% for index, article in elem.articles %}
  214.                         {% if index < 3 - elem.interiors | length %}
  215.                             {% set path = setParameter.setCatalogArticleNameFile(elem, article) %}
  216.                             {% set trimmedPath = path | trim %}
  217.                             {% set pathWithModifiedPostfix = trimmedPath | replace({'/b_': '/a_'}) %}
  218.                             <div class="img_container_interiors">
  219.                                 <img content="{{ pathWithModifiedPostfix }}"
  220.                                     {# Применяем lazy loading для артикулов так же, как и для интерьеров #}
  221.                                     {% if shouldApplyLazy or index > 0 %}
  222.                                         loading="lazy"
  223.                                     {% endif %}
  224.                                     {% if canShowNativeProductSchema %}
  225.                                         itemprop="image"
  226.                                     {% endif %}
  227.                                      alt="{{ article.alt }}"
  228.                                      data-first="article{{ article.a_id }}"
  229.                                     {% if article.a_x == 0 or article.a_x > 600 %}
  230.                                         data-width="400"
  231.                                         data-height="400"
  232.                                     {% else %}
  233.                                         data-width="{{ article.a_x | round }}"
  234.                                         data-height="{{ article.a_y | round }}"
  235.                                     {% endif %}
  236.                                      data-process="{{ elem.process }}"
  237.                                     {% if index == 0 and elem.interiors | length == 0 %}
  238.                                         {# "art" используется в js плагине сетки #}
  239.                                         {# "art--highlights_img" - контур для светлых изобр. #}
  240.                                         class="oneImg img art {{ article.b_g == "1" ? ' art--highlights_img' : '' }}"
  241.                                     {% else %}
  242.                                         data-link="{{ asset(path) }}"
  243.                                     {% endif %}
  244.                                     src="{{ pathWithModifiedPostfix }}"
  245.                                 />
  246.                             </div>
  247.                         {% endif %}
  248.                     {% endfor %}
  249.                 {% endif %}
  250.             </a>
  251.             <div class="top">
  252. {#                {% if elem.arrow %}#}
  253. {#                    <span>+{{ te.valK(elem.ratingMonth)}}</span>#}
  254. {#                    #}{# Стрелка вверх - класс "arrow-up", стрелка вниз - класс "arrow-down" #}
  255. {#                    <div class="arrow-{{ elem.arrow }}"></div>#}
  256. {#                {% endif %}#}
  257.                 <div
  258.                     class="price-info interior-info-top{{ exhibitions ? ' exhibition-block' : '' }} {{ elem.discontinued ? ' discontinued' : '' }} {% if article %}article_info_top{% endif %}">
  259.                     {% if canShowNativeProductSchema %}
  260.                         <meta itemprop="material" content="{{ elem.material | join(', ') }}" />
  261.                     {% endif %}
  262.                     <span class="fon"
  263.                         {% if canShowNativeProductSchema %}
  264.                             itemprop="offers"
  265.                             itemscope
  266.                             itemtype="https://schema.org/Offer"
  267.                         {% endif %}
  268.                     >
  269.                         {% if (userSession.lang is defined) and (userSession.lang == 'ru' or userSession.lang == 'no' or userSession.lang == 'dk') %}
  270.                             {{ 'catalog_price_from' | trans }}
  271.                         {% endif %}
  272.                         <strong>
  273.                             {% if elem.price > 0 %}
  274.                                 {{- elem.price -}}{% if userSession.lang is not defined or (userSession.lang != 'ru' and userSession.lang != 'no' and userSession.lang != 'dk') %}+{% endif %}
  275.                             {% else %}
  276.                                 -
  277.                             {% endif %}
  278.                         </strong>
  279.                         {%- if canShowNativeProductSchema %}
  280.                             <meta itemprop="price" content="{{ elem.price }}"/>
  281.                             <meta itemprop="priceCurrency" content="{{ userCurrency() }}"/>
  282.                             <meta itemprop="itemCondition" content="http://schema.org/NewCondition"/>
  283.                             <meta itemprop="availability" content="http://schema.org/InStock"/>
  284.                             <meta itemprop="url" content="{{ elem.url }}"/>
  285.                             <meta itemprop="priceValidUntil" content="{{ date() | date_modify('+7 day') | date('Y-m-d') }}"/>
  286.                             <span itemprop="seller" itemtype="http://schema.org/Organization" itemscope>
  287.                                 <meta itemprop="name" content="{{ siteName }}"/>
  288.                             </span>
  289.                         {%- endif %}<span class="price-info-currency">{% if userCurrency() == 'HKD' %}港元{% else %}{{ '' | currency | raw }}{% endif %}/{{ elem.measureText }}</span>
  290.                     </span>
  291.                 </div>
  292.                 <!-- элем {{ elem.prc_count }} -->
  293.                 <div
  294.                     class="reviews-info"
  295.                     {% if canShowProductSchema %}
  296.                         itemprop="aggregateRating"
  297.                         itemscope
  298.                         itemtype="https://schema.org/AggregateRating"
  299.                     {% endif %}
  300.                 >
  301.                     {% if canShowProductSchema %}
  302.                         <meta itemprop="ratingCount" content="{{ productMarkupData.ratingCount }}"/>
  303.                         <meta itemprop="reviewCount" content="{{ productMarkupData.reviewCount }}"/>
  304.                         <meta itemprop="ratingValue" content="{{ productMarkupData.ratingValue }}"/>
  305.                         <meta itemprop="bestRating" content="5"/>
  306.                         <meta itemprop="worstRating" content="1"/>
  307.                     {% endif %}
  308.                     {% if elem.prc_count > 0 %}
  309.                         {# Почему 2 блока со звездами? #}
  310.                         <div
  311.                             class="reviews-block"
  312.                             style="display:none"
  313.                             {% if canShowNativeProductSchema %}
  314.                                 itemprop="aggregateRating"
  315.                                 itemscope
  316.                                 itemtype="https://schema.org/AggregateRating"
  317.                             {% endif %}
  318.                         >
  319.                             {% if canShowNativeProductSchema %}
  320.                                 <meta itemprop="ratingValue" content="{{ reviewsRate }}"/>
  321.                                 <meta itemprop="bestRating" content="5"/>
  322.                                 <meta itemprop="ratingCount" content="{{ elem.prc_count }}"/>
  323.                             {% endif %}
  324.                             {{ include ('@Web/Common/rating_stars.html.twig', {'rating': reviewsRateRounded, 'classname': '' }) }}
  325.                             <span class="count-reviews">
  326.                                     <b><a href="{{ elem.url }}#description_reviews">({{ elem.prc_count }})</a></b>
  327.                                 </span>
  328.                         </div>
  329.                         <div class="reviews-block all-stars js-all-stars {% if article %}inverted-color{% endif %}">
  330.                             <span class="rate">{{ reviewsRateRounded }}</span>
  331.                             {{ include ('@Web/Common/rating_stars.html.twig', {'rating': reviewsRateRounded, 'classname': '' }) }}
  332.                             <span class="count-reviews ">
  333.                                 <b><a href="{{ elem.url }}#description_reviews">({{ elem.prc_count }})</a></b>
  334.                             </span>
  335.                         </div>
  336.                     {% endif %}
  337.                 </div>
  338.                 <div class="interior-info-top aditional-info">
  339.                     {# вывод года релиза коллеции ярлычком, если это текущий год #}
  340.                     {% if elem.c_release_year == ('now' | date('Y')) %}
  341.                         <div class="status">{{ 'collection.releaseYear'|trans({'%d%': elem.c_release_year }) }}</div>
  342.                     {% endif %}
  343.                     {% if elem.discontinued %}
  344.                         <span class="coll-closed js-fon">{{ 'collection_unavailable_freezed_desc' | trans }}</span>
  345.                     {% endif %}
  346.                     {% if elem.c_status == 3 %}
  347.                         <div class="status">{{ 'article.temp_unavailable' | trans }}</div>
  348.                     {% endif %}
  349.                     {% if elem.awards and elem.awards | length > 0 %}
  350.                         <span class="awards-list js-awards">
  351.                             <img
  352.                                 loading="lazy"
  353.                                 class="help-tooltip-right"
  354.                                 src="{{ asset('img/award.svg') }}"
  355.                                 title="
  356.                                     {% for award in elem.awards %}
  357.                                         {{ award.title }} <br />
  358.                                     {% endfor %}
  359.                                 "
  360.                                 alt="
  361.                                     {% for award in elem.awards %}
  362.                                         {{ award.title }},
  363.                                     {% endfor %}
  364.                                 "
  365.                             />
  366.                         </span>
  367.                     {% endif %}
  368.                 </div>
  369.             </div>
  370.             <div class="collScriptBg">
  371.                 <div
  372.                      class="collScript {% if article %}article_collScript{% endif %}"
  373.                 >
  374.                     <span class="col_name">{{ elem.material | join(', ') | transform }}</span>
  375.                 </div>
  376.                 <div class="coll-params">
  377.                     <div class="coll-params-main">
  378.                         {# иконка экспресс образца #}
  379.                         {% if elem.hasExpressSample %}
  380.                             <div class="has-sample help-tooltip" title="{{ 'collection.sample_tooltip' | trans }}">
  381.                                 {% if is_mobile() %}
  382.                                     {% include (article) ? '@Web/SVGIconsCode/quik_sample_catalog_mobile_art.html.twig' : '@Web/SVGIconsCode/quik_sample_catalog_mobile.html.twig' %}
  383.                                 {% else %}
  384.                                     {% include (article) ? '@Web/SVGIconsCode/quick_sample_catalog_art.html.twig' : '@Web/SVGIconsCode/quick_sample_catalog.html.twig' %}
  385.                                 {% endif %}
  386.                             </div>
  387.                         {% endif %}
  388.                         {% if elem.interiors | length > 0 %}
  389.                             {# определить, какую подсказку показать при наведении (для добавленного или не добавленного интерьера в идеи) #}
  390.                             {% set isAddedInIdeabook = false %}
  391.                             <div
  392.                                 data-idea-btn-id="add-to-idea-button"
  393.                                 data-code="{{ elem.interiors[0].i_id }}"
  394.                                 data-b_link="{{ path('app_ideas_list', {id: null }) }}/"
  395.                                 data-action="{{ path('app_ideas_list', {id: elem.interiors[0].i_id }) }}"
  396.                                 class="idea-add idea-interior
  397.                                         {% for interior in elem.interiors %}
  398.                                             {% if result.favorites[interior.i_id] is defined %}
  399.                                                 active
  400.                                                 {% set isAddedInIdeabook = true %}
  401.                                             {% endif %}
  402.                                             idea-add-{{ interior.i_id }} i_{{ interior.i_id }}
  403.                                         {% endfor %}"
  404.                                 title="{% set ideasCount = elem.rating | default(0) %}"
  405.                                 role="add-to-project"
  406.                                 data-type-project="idea"
  407.                                 data-element-count="1"
  408.                                 data-msg-added="{{ 'idea_msg_added' | trans }}"
  409.                                 data-from-collection={{ elem.c_id }} {# для gtm #}
  410.                                 {# поиск поля в объекте с началом "price_sort" #}
  411.                                 {% for key, value in elem %}
  412.                                     {% if key[:10] == 'price_sort' %}
  413.                                 data-min-price={{ value }}
  414.                                 {% endif %}
  415.                                 {% endfor %}
  416.                             >
  417.                                 {% if is_mobile() %}
  418.                                     <i class="idea-added-to-project rating help-tooltip-fast-hide"
  419.                                         title="{{ 'collection_ideas_short' | trans | raw | capitalize }}">
  420.                                             {% include (article) ? '@Web/SVGIconsCode/idea_added_mobile_art.html.twig' : '@Web/SVGIconsCode/idea_added_mobile.html.twig' %}
  421.                                     </i>
  422.                                     <i class="idea-not-added-to-project rating {% if not is_mobile() %}help-tooltip-fast-hide{% endif %}"
  423.                                         title="{{ 'collection_ideas_short' | trans | raw | capitalize }}">
  424.                                             {% include (article) ? '@Web/SVGIconsCode/idea_no_added_mobile_art.html.twig' : '@Web/SVGIconsCode/idea_no_added_mobile.html.twig' %}
  425.                                     </i>
  426.                                 {% else %}
  427.                                     <i class="idea-added-to-project rating help-tooltip-fast-hide"
  428.                                         title="{{ 'collection_ideas_short' | trans({'%number%': te.valK(ideasCount)}) | raw | capitalize }}">
  429.                                             {% include (article) ? '@Web/SVGIconsCode/idea_added_art.html.twig' : '@Web/SVGIconsCode/idea_added.html.twig' %}
  430.                                     </i>
  431.                                     <i class="idea-not-added-to-project rating {% if not is_mobile() %}help-tooltip-fast-hide{% endif %}"
  432.                                         title="{{ 'collection_ideas_short' | trans({'%number%': te.valK(ideasCount)}) | raw | capitalize }}">
  433.                                             {% include (article) ? '@Web/SVGIconsCode/idea_no_added_art.html.twig' : '@Web/SVGIconsCode/idea_no_added.html.twig' %}
  434.                                     </i>
  435.                                 {% endif %}
  436.                                 <span class="val">{{ te.valK(ideasCount) }}</span>
  437.                             </div>
  438.                         {% endif %}
  439.                     </div>
  440.                 </div>
  441.             </div>
  442.         </div>
  443.     {% endif %}
  444. {% endfor %}