parent
fa2d0a313a
commit
b3d0eb8072
11 changed files with 463 additions and 22 deletions
@ -1,6 +1,8 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from django.conf.urls import url, patterns |
||||
from .views import * |
||||
from .views import CatalogDetailedCityView, CatalogDetailedCountryView |
||||
|
||||
urlpaterns = patterns('', |
||||
urlpatterns = patterns('', |
||||
url(r'^city/(?P<slug>.*)/$', CatalogDetailedCityView.as_view(), name="spec_catalog_city"), |
||||
url(r'^country/(?P<slug>.*)/$', CatalogDetailedCountryView.as_view(), name="spec_catalog_country"), |
||||
) |
||||
@ -0,0 +1,326 @@ |
||||
{% extends "client/base_catalog.html" %} |
||||
{% load static %} |
||||
{% load thumbnail %} |
||||
{% load i18n %} |
||||
|
||||
{% block head_scripts %} |
||||
|
||||
{% endblock %} |
||||
|
||||
{% block page_body%} |
||||
<div class="page-body clearfix request-form rq-translator"> |
||||
|
||||
<div class="m-article"> |
||||
|
||||
<div class="item-wrap place clearfix"> |
||||
<aside> |
||||
<div class="i-pict"> |
||||
{% thumbnail object.logo_preview "100x100" crop="center" as im %} |
||||
<img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}"> |
||||
{% endthumbnail %} |
||||
</div> |
||||
</aside> |
||||
|
||||
<div class="i-info"> |
||||
<header> |
||||
<div class="i-title">{{ object.title }}</div> |
||||
</header> |
||||
|
||||
<div class="i-descr"> |
||||
{{ object.main_descr }} |
||||
</div> |
||||
<hr/> |
||||
|
||||
<div class="i-address map-opened country_map"> |
||||
|
||||
{# #} |
||||
<div class="i-map"> |
||||
{% thumbnail object.place_photo "957x400" crop="center" as im %} |
||||
<img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}"> |
||||
{% endthumbnail %} |
||||
</div> |
||||
|
||||
{# <!-- позиция для карты задается в атрибуте data-coords -->#} |
||||
{# <div class="map-canvas" id="map-canvas" data-coords="55.751898,37.545172" ></div>#} |
||||
{# <div class="close-map"><a class="toggle-map" href="#">Скрыть карту</a></div>#} |
||||
{# #} |
||||
{# <header>#} |
||||
{# <div class="show-map show-map_1"><a class="toggle-map" href="#">Раскрыть карту</a></div>#} |
||||
{# </header>#} |
||||
</div> |
||||
|
||||
</div> |
||||
</div> |
||||
{{ object.big_cities }} |
||||
<div class="country_towns"> |
||||
<h4>Крупные города:</h4> |
||||
{{ object.big_cities }} |
||||
</div> |
||||
|
||||
<hr /> |
||||
|
||||
<div class="i-services country_content"> |
||||
<div class="i-descr"> |
||||
<h4>Коротко о наших преимуществах:</h4> |
||||
<div style="margin-top:20px;"> |
||||
{{ object.benefits|safe }} |
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
{# ----------------------------------------- FORM ----------------------------------------------#} |
||||
<div class="rq-form service-page" {% if form.errors %}style="display:block"{% endif %}> |
||||
<form method="post">{% csrf_token %} |
||||
|
||||
<hr /> |
||||
|
||||
<div class="rq-form-sect"> |
||||
|
||||
<div class="rqf-title">{% trans 'Информация о переводе' %}</div> |
||||
|
||||
<div class="mf-line cols-2 rq-trans"> |
||||
|
||||
<div class="mf-field"> |
||||
{{ form.languages }} |
||||
|
||||
</div> |
||||
|
||||
<div class="mf-field"> |
||||
{{ form.themes }} |
||||
|
||||
|
||||
</div> |
||||
</div> |
||||
|
||||
<div class="mf-line"> |
||||
<label>Занятость:</label> |
||||
<div class="mf-field rq-tickets-days rq-num"> |
||||
{{ form.days }} {% trans 'дней' %} |
||||
</div> |
||||
|
||||
<div class="mf-field rq-tickets-num rq-num"> |
||||
{{ form.hours }} {% trans 'часов в день' %} |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="mf-line rq-p-days"> |
||||
<label>{% trans 'Даты работы' %}:</label> |
||||
<div class="mf-field"> |
||||
<div class="period"> |
||||
<div class="pwf-field validate-field{% if form.fr.errors %} error-field{% endif %}"> |
||||
<label>{% trans 'с' %}</label> |
||||
{{ form.fr }} |
||||
<div class="error-blob"> |
||||
{{ form.fr.errors }} |
||||
|
||||
</div> |
||||
</div> |
||||
<div class="pwf-field validate-field{% if form.to.errors %} error-field{% endif %}"> |
||||
<label>{% trans 'по' %}</label> |
||||
{{ form.to }} |
||||
<div class="error-blob"> |
||||
{{ form.to.errors }} |
||||
|
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
</div> |
||||
|
||||
<hr /> |
||||
|
||||
<div class="rq-form-sect"> |
||||
|
||||
<div class="rqf-title">{% trans 'Ваши контактные данные' %}</div> |
||||
{% if not object %} |
||||
<div class="mf-line rq-person "> |
||||
<div class="mf-field validate-field{% if form.event.errors %} error-field{% endif %}"> |
||||
{{ form.event }} |
||||
<div class="error-blob"> |
||||
{{ form.event.errors }} |
||||
|
||||
</div> |
||||
</div> |
||||
</div> |
||||
{% endif %} |
||||
|
||||
<div class="mf-line rq-person"> |
||||
<div class="mf-field validate-field{% if form.person_inf.errors %} error-field{% endif %}"> |
||||
{{ form.person_inf }} |
||||
<div class="error-blob"> |
||||
{{ form.person_inf.errors }} |
||||
|
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="mf-line cols-2 rq-place"> |
||||
<div class="mf-field validate-field rq-country{% if form.country.errors %} error-field{% endif %}"> |
||||
{{ form.country }} |
||||
<div class="error-blob"> |
||||
{{ form.country.errors }} |
||||
|
||||
</div> |
||||
</div> |
||||
|
||||
<div class="mf-field validate-field rq-city{% if form.city.errors %} error-field{% endif %}"> |
||||
{{ form.city }} |
||||
<div class="error-blob"> |
||||
{{ form.city.errors }} |
||||
|
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="mf-line cols-2 rq-contacts"> |
||||
<div class="mf-field validate-field rq-tel{% if form.phone.errors %} error-field{% endif %}"> |
||||
{{ form.phone }} |
||||
<div class="error-blob"> |
||||
{{ form.phone.errors }} |
||||
|
||||
</div> |
||||
</div> |
||||
|
||||
<div class="mf-field validate-field rq-mail{% if form.person.errors %} error-field{% endif %}"> |
||||
{{ form.person }} |
||||
<div class="error-blob"> |
||||
{{ form.person.errors }} |
||||
|
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
</div> |
||||
|
||||
<hr /> |
||||
|
||||
<div class="rq-btn-wrap"> |
||||
|
||||
<div class="rq-order-button"> |
||||
<div class="rqob-wrap"> |
||||
<div class="rqob-button"> |
||||
<button type="submit">{% trans 'отправить запрос' %}</button> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
</div> |
||||
|
||||
</form> |
||||
</div> |
||||
{# ----------------------------------------- END FORM -------------------------------------------#} |
||||
|
||||
<div class="rq-btn-wrap rq-btn-to-hide rq-to-hide"> |
||||
<div class="rqb-cols"> |
||||
<div class="rqb-button"> |
||||
<div class="rq-order-button"> |
||||
<div class="rqob-wrap"> |
||||
<div class="rqob-price">от {{ object.price }} {{ object.currency }} / день</div> |
||||
<div class="rqob-button"> |
||||
<a class="ob-text" href="#">заказать услугу</a> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
|
||||
|
||||
|
||||
<hr> |
||||
{% if request.GET.debug == '1' %} |
||||
<script src="{% static 'client/js/_modules/page.translator.js' %}"></script> |
||||
{% else %} |
||||
<script src="{% static 'client/js_min/_modules/page.translator.min.js' %}"></script> |
||||
{% endif %} |
||||
<script> |
||||
EXPO.translator.init({}); |
||||
</script> |
||||
|
||||
|
||||
|
||||
|
||||
{% with object.specialists.all as specialists %} |
||||
{% if specialists %} |
||||
<div class="i-staff"> |
||||
<div class="sect-title">Наши специалисты</div> |
||||
|
||||
<div class="i-staff-list"> |
||||
|
||||
<ul> |
||||
{% for spec in specialists %} |
||||
<li> |
||||
<a href="#"> |
||||
<div class="sl-item clearfix"> |
||||
<div class="sl-pict"> |
||||
{% thumbnail spec.photo "100x100" crop="center" as im %} |
||||
<img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}"> |
||||
{% endthumbnail %} |
||||
</div> |
||||
<div class="sl-info"> |
||||
<div class="sl-info-wrap"> |
||||
<div class="sl-name">{{ spec.name }}</div> |
||||
<div class="sl-position">{{ spec.languages }}</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</a> |
||||
</li> |
||||
|
||||
{% endfor %} |
||||
|
||||
</ul> |
||||
|
||||
</div> |
||||
|
||||
</div> |
||||
{% endif %} |
||||
{% endwith %} |
||||
|
||||
</div> |
||||
{% with object.feedback_set.all as feedbacks %} |
||||
{% if feedbacks %} |
||||
<div class="rq-to-hide"> |
||||
|
||||
<div class="s-comments"> |
||||
<div class="sect-title">Отзывы клиентов:</div> |
||||
<div class="cat-list sc-comments"> |
||||
{% for feedback in feedbacks %} |
||||
<div class="cl-item"> |
||||
<div class="cl-item-wrap clearfix"> |
||||
|
||||
<div class="cli-pict"> |
||||
{% thumbnail feedback.logo "100x100" crop="center" as im %} |
||||
<img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}"> |
||||
{% endthumbnail %} |
||||
</div> |
||||
<div class="cli-info"> |
||||
<div class="cli-top clearfix"> |
||||
<header> |
||||
<div class="cli-title">{{ feedback.company }}</div> |
||||
</header> |
||||
</div> |
||||
|
||||
<div class="sc-name">{{ feedback.name }}</div> |
||||
|
||||
<div class="sc-text"> |
||||
{{ feedback.text }} |
||||
</div> |
||||
</div> |
||||
|
||||
</div> |
||||
</div> |
||||
{% endfor %} |
||||
</div> |
||||
</div> |
||||
|
||||
</div> |
||||
{% endif %} |
||||
{% endwith %} |
||||
|
||||
</div> |
||||
|
||||
{% endblock %} |
||||
Loading…
Reference in new issue