parent
c104147080
commit
91c43d8f31
23 changed files with 757 additions and 53 deletions
@ -0,0 +1,133 @@ |
||||
{% extends 'base.html' %} |
||||
{% load static %} |
||||
{# Displays translator form and file form in modal window #} |
||||
|
||||
|
||||
{% block scripts %} |
||||
|
||||
<script src="{% static 'ckeditor/ckeditor/ckeditor.js' %}"></script> |
||||
{# selects #} |
||||
<link href="{% static 'js/select/select2.css' %}" rel="stylesheet"/> |
||||
<script src="{% static 'js/select/select2.js' %}"></script> |
||||
<script src="{% static 'custom_js/make_select.js' %}"></script> |
||||
{# ajax #} |
||||
<script src="{% static 'custom_js/file_post_ajax.js' %}"></script> |
||||
{# datetimepicker #} |
||||
<link href="{% static 'js/datetimepicker/css/datetimepicker.css' %}" rel="stylesheet"/> |
||||
<script src="{% static 'js/datetimepicker/js/bootstrap-datetimepicker.js' %}"></script> |
||||
<script type="text/javascript"> |
||||
$(document).ready(function(){ |
||||
$('#id_birth').datetimepicker({ |
||||
todayHighlight: true, |
||||
format : 'dd.mm.yyyy', |
||||
minView:2 |
||||
}); |
||||
}); |
||||
</script> |
||||
|
||||
|
||||
{% endblock %} |
||||
|
||||
{% block body %} |
||||
<form method="post" class="form-horizontal" enctype="multipart/form-data" name="form1" id="form1"> {% csrf_token %} |
||||
<fieldset> |
||||
<legend><i class="icon-edit"></i>Изменить переводчика(<a target="_blank" href="{{ object.get_translator_url }}">на сайте</a>)</legend> |
||||
|
||||
<div class="box span8" > |
||||
<div class="box-header well"> |
||||
<h2><i class="icon-pencil"></i> Основная информация</h2> |
||||
</div> |
||||
<div class="box-content"> |
||||
{# name #} |
||||
<div class="control-group {% if form_user.first_name.errors %}error{% endif %}"> |
||||
<label class="control-label"><b>{{ form_user.first_name.label }}:</b></label> |
||||
<div class="controls">{{ form_user.first_name }} |
||||
<span class="help-inline">{{ form_user.first_name.errors }}</span> |
||||
</div> |
||||
</div> |
||||
|
||||
{# surname #} |
||||
<div class="control-group {% if form_user.last_name.errors %}error{% endif %}"> |
||||
<label class="control-label"><b>{{ form_user.last_name.label }}:</b></label> |
||||
<div class="controls">{{ form_user.last_name }} |
||||
<span class="help-inline">{{ form_user.last_name.errors }}</span> |
||||
</div> |
||||
</div> |
||||
|
||||
{# country #} |
||||
<div class="control-group {% if form_profile.country.errors %}error{% endif %}"> |
||||
<label class="control-label"><b>{{ form_profile.country.label }}:</b></label> |
||||
<div class="controls">{{ form_profile.country }} |
||||
<span class="help-inline">{{ form_profile.country.errors }}</span> |
||||
</div> |
||||
</div> |
||||
|
||||
{# city #} |
||||
<div class="control-group {% if form_profile.city.errors %}error{% endif %}"> |
||||
<label class="control-label"><b>{{ form_profile.city.label }}:</b></label> |
||||
<div class="controls">{{ form_profile.city }} |
||||
<span class="help-inline">{{ form_profile.city.errors }}</span> |
||||
</div> |
||||
</div> |
||||
|
||||
{# logo #} |
||||
<div class="control-group {% if form_profile.avatar.errors %}error{% endif %}"> |
||||
<label class="control-label"><b>{{ form_profile.avatar.label }}:</b></label> |
||||
<div class="controls">{{ form_profile.avatar }} |
||||
<span class="help-inline">{{ form_profile.avatar.errors }}</span> |
||||
</div> |
||||
</div> |
||||
|
||||
|
||||
</div> |
||||
|
||||
</div> |
||||
|
||||
<div class="box span8" > |
||||
<div class="box-header well"> |
||||
<h2><i class="icon-pencil"></i> Информация по переводчику</h2> |
||||
</div> |
||||
<div class="box-content"> |
||||
|
||||
{# car #} |
||||
<div class="control-group {% if form.car.errors %}error{% endif %}"> |
||||
<label class="control-label"><b>{{ form.car.label }}:</b></label> |
||||
<div class="controls">{{ form.car }} |
||||
<span class="help-inline">{{ form.car.errors }}</span> |
||||
</div> |
||||
</div> |
||||
|
||||
{# birth #} |
||||
<div class="control-group {% if form.birth.errors %}error{% endif %}"> |
||||
<label class="control-label"><b>{{ form.birth.label }}:</b></label> |
||||
<div class="controls">{{ form.birth }} |
||||
<span class="help-inline">{{ form.birth.errors }}</span> |
||||
</div> |
||||
</div> |
||||
|
||||
{# gender #} |
||||
<div class="control-group {% if form.gender.errors %}error{% endif %}"> |
||||
<label class="control-label"><b>{{ form.gender.label }}:</b></label> |
||||
<div class="controls">{{ form.gender }} |
||||
<span class="help-inline">{{ form.gender.errors }}</span> |
||||
</div> |
||||
</div> |
||||
{# time #} |
||||
|
||||
{% include 'admin/forms/multilang.html' with field='education' form=form languages=languages%} |
||||
{% include 'admin/forms/multilang.html' with field='specialization' form=form languages=languages%} |
||||
{% include 'admin/forms/multilang.html' with field='languages' form=form languages=languages%} |
||||
{% include 'admin/forms/multilang.html' with field='native_language' form=form languages=languages%} |
||||
{% include 'admin/forms/multilang.html' with field='prices' form=form languages=languages%} |
||||
{% include 'admin/forms/multilang.html' with field='discounts' form=form languages=languages%} |
||||
|
||||
|
||||
</div> |
||||
</div> |
||||
<div class="controls"> |
||||
<input class="btn btn-large btn-primary" type="submit" value="Изменить"> |
||||
<input class="btn btn-large" type="reset" value="Отмена"> |
||||
</div> |
||||
</fieldset> |
||||
</form> |
||||
{% endblock %} |
||||
@ -0,0 +1,108 @@ |
||||
{% extends 'base_catalog.html' %} |
||||
{% load i18n %} |
||||
|
||||
|
||||
{% block bread_scrumbs %} |
||||
|
||||
{% endblock %} |
||||
|
||||
{% block page_title %} |
||||
<div class="bread-crumbs"> |
||||
<a href="/">Главная страница</a> |
||||
<a href="/translators/city/{{ object.url }}/">Города</a> |
||||
<strong>Переводчики {{ object.inflect }}</strong> |
||||
</div> |
||||
{% endblock %} |
||||
|
||||
{% block content_list %} |
||||
<div class="m-article"> |
||||
<div class="item-wrap place clearfix"> |
||||
<aside> |
||||
<div class="i-pict"> |
||||
{% include 'client/includes/show_logo.html' with obj=object %} |
||||
</div> |
||||
|
||||
{# <a class="button about" href="#">о городе</a> #} |
||||
</aside> |
||||
|
||||
<div class="i-info"> |
||||
<header> |
||||
<div class="i-title">{{ object.name }}</div> |
||||
</header> |
||||
|
||||
<div class="i-descr"> |
||||
<p>Компания Serve Businesses Worldwide предлагает Вам возможность заказать услуги русскоговорящих переводчиков со знанием английского языка практически непосредственно в Великобритании.</p> |
||||
</div> |
||||
|
||||
</div> |
||||
</div> |
||||
|
||||
<hr /> |
||||
|
||||
<div class="i-services country_content"> |
||||
<div class="i-descr"> |
||||
<h4>Коротко о наших преимуществах:</h4> |
||||
<ul class="content_list"> |
||||
<li>Эффективная цена</li> |
||||
<li>Опыт и профессионализм специалистов</li> |
||||
<li>Знание разных менталитетов и психологических аспектов проведения переговоров с зарубежными бизнесменами</li> |
||||
<li>Ориентированность в мировых выставочных комплексах </li> |
||||
<li>Гарантии, отчетность по договору, прозрачные безналичные расчеты в России</li> |
||||
</ul> |
||||
|
||||
</div> |
||||
</div> |
||||
|
||||
<div class="rq-btn-wrap rq-btn-to-hide"> |
||||
|
||||
<div class="rqb-cols"> |
||||
<div class="rqb-button"> |
||||
<div class="rq-order-button"> |
||||
<div class="rqob-wrap"> |
||||
<div class="rqob-price">от 80 € / день</div> |
||||
<div class="rqob-button"> |
||||
<a class="ob-text" href="#">заказать услугу</a> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
<hr> |
||||
|
||||
|
||||
<div class="i-staff"> |
||||
<div class="sect-title"><a href="/translators/city/{{ object.url }}/all/">Наши специалисты</a></div> |
||||
|
||||
<div class="i-staff-list"> |
||||
|
||||
<ul> |
||||
{% with object_list=object_list %} |
||||
{% for user in object_list %} |
||||
<li> |
||||
<a href="{{ user.get_translator_url }}"> |
||||
<div class="sl-item clearfix"> |
||||
<div class="sl-pict"> |
||||
{% include 'includes/show_logo.html' with obj=user %} |
||||
</div> |
||||
<div class="sl-info"> |
||||
<div class="sl-info-wrap"> |
||||
<div class="sl-name">{{ user.get_full_name }}</div> |
||||
<div class="sl-position">{{ user.translator.languages }}</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</a> |
||||
</li> |
||||
|
||||
{% endfor %} |
||||
{% endwith %} |
||||
</ul> |
||||
</div> |
||||
<a class="button more" href="/translators/city/{{ object.url }}/all/">Все переводчики</a> |
||||
</div> |
||||
|
||||
</div> |
||||
{% endblock %} |
||||
|
||||
@ -0,0 +1,137 @@ |
||||
{% extends 'base_catalog.html' %} |
||||
{% load i18n %} |
||||
|
||||
|
||||
{% block bread_scrumbs %} |
||||
<div class="bread-crumbs"> |
||||
<a href="/">Главная страница</a> |
||||
<a href="/translators/country/">Страны</a> |
||||
<strong>Переводчики {{ object.inflect }}</strong> |
||||
</div> |
||||
{% endblock %} |
||||
|
||||
{% block page_title %} |
||||
|
||||
{% endblock %} |
||||
|
||||
{% block content_list %} |
||||
<div class="m-article"> |
||||
<div class="item-wrap place clearfix"> |
||||
<aside> |
||||
<div class="i-pict">{% include 'client/includes/show_logo.html' with obj=object %}</div> |
||||
{# <a class="button about" href="#">о стране</a> #} |
||||
</aside> |
||||
|
||||
<div class="i-info"> |
||||
<header> |
||||
<div class="i-title">Переводчики {{ object.inflect }}</div> |
||||
</header> |
||||
|
||||
<div class="i-descr"> |
||||
<p>Компания Serve Businesses Worldwide предлагает Вам возможность заказать услуги русскоговорящих переводчиков со знанием английского языка практически непосредственно в Великобритании.</p> |
||||
<p>Ниже приведен список наиболее часто востребованных территориальных направлений для оказания услуг перевода в Великобритании. Приведенный перечень не является исчерпывающим, поэтому, если Вы не нашли нужный Вам город, обратитесь к нашим консультантам. </p> |
||||
</div> |
||||
<br> |
||||
{% if object.latitude and object.longitude %} |
||||
<div class="i-address map-opened country_map"> |
||||
|
||||
<div class="i-map"> |
||||
<!-- позиция для карты задается в атрибуте data-coords --> |
||||
<div class="map-canvas" id="map-canvas" data-coords="{{ object.latitude }},{{ object.longitude }}" ></div> |
||||
<div class="close-map"><a class="toggle-map" href="#">Скрыть карту</a></div> |
||||
</div> |
||||
<header> |
||||
<div class="show-map show-map_1"><a class="toggle-map" href="#">Раскрыть карту</a></div> |
||||
</header> |
||||
</div> |
||||
{% endif %} |
||||
|
||||
</div> |
||||
</div> |
||||
|
||||
<hr /> |
||||
|
||||
{% if object.big_cities.exists %} |
||||
{% with cities=object.big_cities.all %} |
||||
<div class="country_towns"> |
||||
<h4>Крупные города:</h4> |
||||
<table> |
||||
<tr> |
||||
<td> |
||||
<ul> |
||||
{% for city in cities %} |
||||
<li><a href="/translators/city/{{ city.url }}/" title="">{{ city.name }}</a></li> |
||||
{% endfor %} |
||||
</ul> |
||||
</td> |
||||
|
||||
<th> </th> |
||||
</tr> |
||||
</table> |
||||
</div> |
||||
|
||||
<hr/> |
||||
{% endwith %} |
||||
{% endif %} |
||||
|
||||
<div class="i-services country_content"> |
||||
<div class="i-descr"> |
||||
<h4>Коротко о наших преимуществах:</h4> |
||||
<ul class="content_list"> |
||||
<li>Эффективная цена</li> |
||||
<li>Опыт и профессионализм специалистов</li> |
||||
<li>Знание разных менталитетов и психологических аспектов проведения переговоров с зарубежными бизнесменами</li> |
||||
<li>Ориентированность в мировых выставочных комплексах </li> |
||||
<li>Гарантии, отчетность по договору, прозрачные безналичные расчеты в России</li> |
||||
</ul> |
||||
|
||||
</div> |
||||
</div> |
||||
|
||||
<div class="rq-btn-wrap rq-btn-to-hide"> |
||||
|
||||
<div class="rqb-cols"> |
||||
<div class="rqb-button"> |
||||
<div class="rq-order-button"> |
||||
<div class="rqob-wrap"> |
||||
<div class="rqob-price">от 80 € / день</div> |
||||
<div class="rqob-button"> |
||||
<a class="ob-text" href="#">заказать услугу</a> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
|
||||
<hr> |
||||
|
||||
<div class="i-staff"> |
||||
<div class="sect-title"><a href="/translators/country/{{ object.url }}/all/">Наши специалисты</a></div> |
||||
|
||||
<div class="i-staff-list"> |
||||
|
||||
<ul> |
||||
{% for user in object_list %} |
||||
<li> |
||||
<a href="{{ user.get_translator_url }}"> |
||||
<div class="sl-item clearfix"> |
||||
<div class="sl-pict">{% include 'client/includes/show_logo.html' with obj=user %}</div> |
||||
<div class="sl-info"> |
||||
<div class="sl-info-wrap"> |
||||
<div class="sl-name">{{ user.get_full_name }}</div> |
||||
<div class="sl-position">{{ user.translator.languages }}</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</a> |
||||
</li> |
||||
{% endfor %} |
||||
</ul> |
||||
</div> |
||||
<a class="button more" href="/translators/country/{{ object.url }}/all/">Все переводчики</a> |
||||
</div> |
||||
|
||||
</div> |
||||
{% endblock %} |
||||
@ -0,0 +1,59 @@ |
||||
{% extends 'base_catalog.html' %} |
||||
{% load static %} |
||||
{% load i18n %} |
||||
{% load thumbnail %} |
||||
{% load template_filters %} |
||||
|
||||
|
||||
{% block bread_scrumbs %} |
||||
<div class="bread-crumbs"> |
||||
<a href="/">{% trans 'Главная страница' %}</a> |
||||
{% if object.profile.country %} |
||||
<a href="/translators/country/{{ object.profile.country.url }}/">{{ object.profile.country.name }}</a> |
||||
{% if object.profile.city %} |
||||
<a href="/translators/city/{{ object.profile.city.url }}/">{{ object.profile.city.name }}</a> |
||||
{% endif %} |
||||
{% endif %} |
||||
|
||||
<strong>{{ obect.get_full_name }}</strong> |
||||
</div> |
||||
{% endblock %} |
||||
|
||||
{% block content_list %} |
||||
<div class="m-article cl-news blog_block"> |
||||
<div class="profile_top"> |
||||
<div class="profile_top_pic"> |
||||
{% if object.profile.avatar %} |
||||
{% thumbnail object.profile.avatar "100x100" format="PNG" as im %} |
||||
<img class="user-avatar" src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}"/> |
||||
{% endthumbnail %} |
||||
{% else %} |
||||
<img class="user-avatar" src="{% static 'client/img/no-userpic-big.gif' %}" width="100" height="100"/> |
||||
{% endif %} |
||||
</div> |
||||
<div class="profile_top_left_1"> |
||||
<h1>{{ object.get_full_name }}</h1> |
||||
<p><span class="icon1"></span><b>{{ object.translator.languages }}</b></p> |
||||
|
||||
<p>{% ifequal object.translator.gender 'female' %}<span class="icon2"></span>{% endifequal %}{{ object.translator.birth|how_many_years }} лет{% if object.translator.car %}<span class="icon3"></span>Есть личный автомобиль</p>{% endif %} |
||||
</div> |
||||
<div class="profile_top_right_1"> |
||||
{% if object.profile.country %} |
||||
<p><span class="icon4"></span><a href="/translators/country/{{ object.profile.country.url }}/" title="">{{ object.profile.country.name }}</a> |
||||
{% if object.profile.city %}, <a href="/translators/city/{{ object.profile.city.url }}/" title="">{{ object.profile.city.name }}</a>{% endif %}</p> |
||||
{% endif %} |
||||
{% if object.translator.native_language %} |
||||
<p><span class="icon5"></span>{% trans 'Родной язык' %} — {{ object.translator.native_language }}</p> |
||||
{% endif %} |
||||
</div> |
||||
<div class="clear"></div> |
||||
|
||||
<hr> |
||||
{% if object.translator.education %} |
||||
<h3>{% trans 'Образование' %}:</h3> |
||||
{{ object.translator.education }} |
||||
<hr> |
||||
{% endif %} |
||||
</div> |
||||
</div> |
||||
{% endblock %} |
||||
@ -0,0 +1,33 @@ |
||||
{% extends 'base_catalog.html' %} |
||||
{% load i18n %} |
||||
{% load template_filters %} |
||||
|
||||
{% block bread_scrumbs %} |
||||
<div class="bread-crumbs"> |
||||
<a href="/">Главная страница</a> |
||||
<strong>{{ catalog_name }}</strong> |
||||
</div> |
||||
{% endblock %} |
||||
|
||||
{% block page_title %} |
||||
|
||||
{% endblock %} |
||||
|
||||
{% block content_list %} |
||||
{% with objects=object_list %} |
||||
{% for obj in objects %} |
||||
{% set cur_word = obj.name %} |
||||
{% if cur_word|slice:":1"|lower != prev_word|slice:":1"|lower and forloop.counter != 1 %} |
||||
</ul> |
||||
{% endif %} |
||||
{% if cur_word|slice:":1"|lower != prev_word|slice:":1"|lower %} |
||||
<ul class="leter-list"> |
||||
<div class="leter"><font size="5">{{ cur_word|slice:":1"|upper }}</font></div> |
||||
{% endif %} |
||||
<li> |
||||
<a href="/translators{{ obj.catalog }}{{ obj.url }}/">{{ obj.name }} ({{ obj.translators_count }})</a> |
||||
</li> |
||||
{% set prev_word = obj.name %} |
||||
{% endfor %} |
||||
{% endwith %} |
||||
{% endblock %} |
||||
@ -1,11 +1,13 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from django.conf.urls import patterns, url |
||||
from admin import TranslatorListView |
||||
from admin import TranslatorListView, TranslatorList, TranslatorAdminView |
||||
|
||||
urlpatterns = patterns('translator.admin', |
||||
url(r'^add.*/$', 'translator_add'), |
||||
url(r'^delete/(?P<url>.*)/$', 'translator_delete'), |
||||
url(r'^change/(?P<url>.*)/$', 'translator_change'), |
||||
#url(r'^all/$', 'translator_all'), |
||||
url(r'^all/$', TranslatorListView.as_view()), |
||||
url(r'^all/$', TranslatorList.as_view()), |
||||
url(r'^(?P<id>.*)/$', 'translator_edit'), |
||||
#url(r'^$', TranslatorAdminView.as_view()), |
||||
) |
||||
|
||||
@ -1,13 +1,19 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from django.conf.urls import patterns, include, url |
||||
from translator.views import TranslatorList |
||||
from translator.views import TranslatorList, TranslatorsCity, TranslatorsByCity, TranslatorsByCountry, \ |
||||
TranslatorsCountry, TranslatorProfile |
||||
|
||||
|
||||
urlpatterns = patterns('', |
||||
url(r'^city/(?P<city>.*)/page/(?P<page>\d+)/$', TranslatorList.as_view(), {'meta_id':88}), |
||||
url(r'^city/(?P<city>.*)/$', TranslatorList.as_view(), {'meta_id':88}), |
||||
url(r'^country/(?P<country>.*)/page/(?P<page>\d+)/$', TranslatorList.as_view(), {'meta_id':87}), |
||||
url(r'^country/(?P<country>.*)/$', TranslatorList.as_view(), {'meta_id':87}), |
||||
url(r'^city/(?P<city>.*)/all/page/(?P<page>\d+)/$', TranslatorList.as_view(), {'meta_id':88}), |
||||
url(r'^city/(?P<city>.*)/all/$', TranslatorList.as_view(), {'meta_id':88}), |
||||
url(r'^city/(?P<slug>.*)/$', TranslatorsCity.as_view(), {'meta_id':88}), |
||||
url(r'^city/$', TranslatorsByCity.as_view(), {'meta_id':88}), |
||||
url(r'^country/(?P<country>.*)/all/page/(?P<page>\d+)/$', TranslatorList.as_view(), {'meta_id':87}), |
||||
url(r'^country/(?P<country>.*)/all/$', TranslatorList.as_view(), {'meta_id':87}), |
||||
url(r'^country/(?P<slug>.*)/$', TranslatorsCountry.as_view(), {'meta_id':87}), |
||||
url(r'^country/$', TranslatorsByCountry.as_view(), {'meta_id':87}), |
||||
url(r'^page/(?P<page>\d+)/$', TranslatorList.as_view() , {'meta_id':86}), |
||||
url(r'^(?P<slug>.*)/$', TranslatorProfile.as_view()), |
||||
url(r'^', TranslatorList.as_view() , {'meta_id':86}), |
||||
) |
||||
Loading…
Reference in new issue