@ -1,3 +1,88 @@ |
|||||||
from django.db import models |
# -*- coding: utf-8 -*- |
||||||
|
from django.contrib.syndication.views import Feed |
||||||
|
from django.shortcuts import get_object_or_404 |
||||||
|
|
||||||
# Create your models here. |
from exposition.models import Exposition |
||||||
|
from theme.models import Theme |
||||||
|
from country.models import Country |
||||||
|
from city.models import City |
||||||
|
|
||||||
|
EXPO_ON_PAGE = 10 |
||||||
|
|
||||||
|
# nearest expositions at all |
||||||
|
|
||||||
|
class LatestExpositions(Feed): |
||||||
|
title = u"Ближайшие выставки на expomap.ru" |
||||||
|
link = '/rss/latest/' |
||||||
|
description = u'Подписывайтесь на наш RSS-канал' |
||||||
|
|
||||||
|
def items(self): |
||||||
|
return Exposition.enable.upcoming()[:EXPO_ON_PAGE] |
||||||
|
|
||||||
|
def item_title(self, item): |
||||||
|
return item.name |
||||||
|
|
||||||
|
def item_description(self, item): |
||||||
|
return item.main_title |
||||||
|
|
||||||
|
def item_link(self, item): |
||||||
|
return '/expo/%s/'%item.url |
||||||
|
|
||||||
|
NUM_ITEMS_ON_PAGE = 20 |
||||||
|
|
||||||
|
|
||||||
|
class CountryFeeds(Feed): |
||||||
|
description_template = '/rss/country_feeds/' |
||||||
|
|
||||||
|
def get_object(self, request, slug): |
||||||
|
return get_object_or_404(Country, url=slug) |
||||||
|
|
||||||
|
def title(self, obj): |
||||||
|
return u"Ближайшие выставки %s:" % obj.inflect |
||||||
|
|
||||||
|
def link(self,obj): |
||||||
|
return obj.get_permanent_url() |
||||||
|
|
||||||
|
def item_description(self, obj): |
||||||
|
return obj.main_title |
||||||
|
|
||||||
|
def items(self, obj): |
||||||
|
return Exposition.enable.upcoming().filter(country=obj)[:NUM_ITEMS_ON_PAGE] |
||||||
|
|
||||||
|
|
||||||
|
class CityFeeds(Feed): |
||||||
|
description_template = '/rss/city_feeds/' |
||||||
|
|
||||||
|
def get_object(self, request, slug): |
||||||
|
return get_object_or_404(City, url=slug) |
||||||
|
|
||||||
|
def title(self, obj): |
||||||
|
return u"Ближайшие выставки в %s: " % obj.inflect |
||||||
|
|
||||||
|
def link(self,obj): |
||||||
|
return obj.get_permanent_url() |
||||||
|
|
||||||
|
def item_description(self, obj): |
||||||
|
return obj.main_title |
||||||
|
|
||||||
|
def items(self, obj): |
||||||
|
return Exposition.enable.upcoming().filter(city = obj)[:NUM_ITEMS_ON_PAGE] |
||||||
|
|
||||||
|
|
||||||
|
class ThemeFeeds(Feed): |
||||||
|
description_template = '/rss/theme_feeds/' |
||||||
|
|
||||||
|
def get_object(self, request, slug): |
||||||
|
return get_object_or_404(Theme, url=slug) |
||||||
|
|
||||||
|
def title(self, obj): |
||||||
|
return u"Ближайшие выставки %s: " % obj.inflect |
||||||
|
|
||||||
|
def link(self,obj): |
||||||
|
return obj.url |
||||||
|
|
||||||
|
def item_description(self, obj): |
||||||
|
return obj.main_title |
||||||
|
|
||||||
|
def items(self, obj): |
||||||
|
return Exposition.enable.upcoming().filter(theme = obj)[:NUM_ITEMS_ON_PAGE] |
||||||
@ -0,0 +1,11 @@ |
|||||||
|
from django.conf.urls import url, patterns |
||||||
|
from models import LatestExpositions, CountryFeeds, CityFeeds, ThemeFeeds |
||||||
|
|
||||||
|
|
||||||
|
urlpatterns = patterns('', |
||||||
|
url(r'^latest/$', LatestExpositions()), |
||||||
|
url(r'^country/(?P<slug>.*)/$', CountryFeeds()), |
||||||
|
url(r'^city/(?P<slug>.*)/$', CityFeeds()), |
||||||
|
url(r'^theme/(?P<slug>.*)/$', ThemeFeeds()), |
||||||
|
|
||||||
|
) |
||||||
@ -1,20 +1,141 @@ |
|||||||
# -*- coding: utf-8 -*- |
# -*- coding: utf-8 -*- |
||||||
|
import MySQLdb |
||||||
|
import os.path |
||||||
|
from MySQLdb.cursors import DictCursor |
||||||
|
from django.utils.translation import activate |
||||||
from django.core.management.base import BaseCommand |
from django.core.management.base import BaseCommand |
||||||
from meta.models import MetaSetting |
from django.conf import settings |
||||||
|
from exposition.models import Exposition |
||||||
|
from theme.models import Theme |
||||||
|
from theme.models import Theme, Tag |
||||||
|
|
||||||
|
|
||||||
class Command(BaseCommand): |
class Command(BaseCommand): |
||||||
def handle(self, *args, **options): |
def handle(self, *args, **options): |
||||||
a = MetaSetting.objects.filter(translations__h1__contains='«').count() |
#expos = Exposition.objects.filter(theme__isnull=True, old_url__isnull=False) |
||||||
qs = MetaSetting.objects.language('ru').all() |
db = MySQLdb.connect(host="localhost", |
||||||
for item in qs: |
user="expomap", |
||||||
item.title = item.title.replace(u'«', u'').replace(u'»', u'') |
passwd="7FbLtAGjse", |
||||||
item.description = item.title.replace(u'«', u'').replace(u'»', u'') |
db="old_db", |
||||||
item.h1 = item.h1.replace(u'«', u'').replace(u'»', u'') |
charset='utf8', |
||||||
#item.save() |
cursorclass=DictCursor) |
||||||
|
cursor = db.cursor() |
||||||
|
activate('ru') |
||||||
|
#expos = Exposition.enable.upcoming().filter(logo='') |
||||||
|
expos = Exposition.objects.filter(tag__isnull=True).order_by('-data_end') |
||||||
|
#expo = Exposition.objects.get(old_url='salon-du-livre-2015') |
||||||
|
|
||||||
|
#handle_expo_tag(expo, cursor) |
||||||
|
|
||||||
|
for expo in expos: |
||||||
|
handle_expo_tag(expo, cursor) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
''' |
||||||
|
find_old_id = """ |
||||||
|
SELECT products.products_id |
||||||
|
from products |
||||||
|
LEFT JOIN `products_description` ON products.products_id=products_description.products_id |
||||||
|
WHERE url='%s' |
||||||
|
""" |
||||||
|
|
||||||
|
find_themes = "SELECT categories_id FROM `products_to_categories` WHERE `products_id` =%d" |
||||||
|
''' |
||||||
|
""" |
||||||
|
for expo in expos: |
||||||
|
cursor.execute(find_old_id%expo.old_url) |
||||||
|
old_ids = [item['products_id'] for item in cursor.fetchall()] |
||||||
|
print expo.old_url |
||||||
|
for id in old_ids: |
||||||
|
cursor.execute(find_themes%id) |
||||||
|
themes_ids = [item['categories_id'] for item in cursor.fetchall()] |
||||||
|
print themes_ids |
||||||
|
#if not themes_ids: |
||||||
|
# continue |
||||||
|
|
||||||
|
|
||||||
|
theme_qs = Theme.objects.filter(id__in=themes_ids) |
||||||
|
#expo.theme.add(*theme_qs) |
||||||
|
break |
||||||
|
|
||||||
|
print('----------------------') |
||||||
|
""" |
||||||
|
|
||||||
|
|
||||||
|
def handle_expo_tag(expo, cursor): |
||||||
|
old_url = expo.old_url |
||||||
|
if not old_url: |
||||||
|
return None |
||||||
|
print(old_url) |
||||||
|
find_old = """ |
||||||
|
SELECT products.products_id, url |
||||||
|
from products |
||||||
|
LEFT JOIN `products_description` ON products.products_id=products_description.products_id |
||||||
|
WHERE url='%s' |
||||||
|
""" |
||||||
|
cursor.execute(find_old%old_url) |
||||||
|
result = cursor.fetchone() |
||||||
|
expo_id = result.get('products_id') |
||||||
|
if not expo_id: |
||||||
|
return |
||||||
|
|
||||||
|
find_tag_id = """ |
||||||
|
SELECT tag_id |
||||||
|
FROM `products_tags` |
||||||
|
WHERE `product_id` =%d |
||||||
|
""" |
||||||
|
cursor.execute(find_tag_id%expo_id) |
||||||
|
tags_ids = [str(item['tag_id']) for item in cursor.fetchall()] |
||||||
|
if not tags_ids: |
||||||
|
return None |
||||||
|
find_tag = """ |
||||||
|
SELECT title |
||||||
|
FROM `tags` |
||||||
|
WHERE id in(%s) |
||||||
|
""" |
||||||
|
cursor.execute(find_tag%', '.join(tags_ids)) |
||||||
|
tag_names = [item['title'] for item in cursor.fetchall()] |
||||||
|
if not tag_names: |
||||||
|
return None |
||||||
|
|
||||||
|
themes = [item['id'] for item in expo.theme.all().values('id')] |
||||||
|
qs = Tag.objects.filter(translations__name__in=tag_names, theme__in=themes) |
||||||
|
expo.tag.add(*qs) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def handle_expo(expo, cursor): |
||||||
|
""" |
||||||
|
fixing logos |
||||||
|
|
||||||
|
""" |
||||||
|
if expo.logo: |
||||||
|
return |
||||||
|
|
||||||
|
find_old = """ |
||||||
|
SELECT products.products_id, url, products_img1 as logo |
||||||
|
from products |
||||||
|
LEFT JOIN `products_description` ON products.products_id=products_description.products_id |
||||||
|
WHERE url='%s' |
||||||
|
""" |
||||||
|
cursor.execute(find_old%expo.old_url) |
||||||
|
result = cursor.fetchall() |
||||||
|
if not result: |
||||||
|
return |
||||||
|
logo = result[0]['logo'] |
||||||
|
|
||||||
|
|
||||||
|
if logo: |
||||||
|
logo = logo.replace('..', '') |
||||||
|
|
||||||
|
print(logo) |
||||||
|
print(os.path.isfile(settings.MEDIA_ROOT[:-1]+logo)) |
||||||
|
if (os.path.isfile(settings.MEDIA_ROOT[:-1]+logo)): |
||||||
|
|
||||||
|
expo.logo = logo |
||||||
|
expo.save() |
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,47 @@ |
|||||||
|
function make_event_select(id, url, placeholder){ |
||||||
|
$(id).select2({ |
||||||
|
placeholder: placeholder, |
||||||
|
multiple: true, |
||||||
|
ajax: { |
||||||
|
|
||||||
|
url: url, |
||||||
|
width: '550px', |
||||||
|
dataType: "json", |
||||||
|
quietMillis: 200, |
||||||
|
multiple: true, |
||||||
|
|
||||||
|
data: function(term, page, theme){ |
||||||
|
return {term: term, |
||||||
|
page: page}; |
||||||
|
}, |
||||||
|
|
||||||
|
results: function (data) { |
||||||
|
var results = []; |
||||||
|
$.each(data, function(index, item){ |
||||||
|
results.push({ |
||||||
|
id: item.id, |
||||||
|
text: item.label |
||||||
|
}); |
||||||
|
}); |
||||||
|
return {results: results}; |
||||||
|
} |
||||||
|
}, |
||||||
|
initSelection : function(element, callback) { |
||||||
|
var data = []; |
||||||
|
$(element.val().split(",")).each(function(i) { |
||||||
|
var item = this.split(':'); |
||||||
|
data.push({ |
||||||
|
id: item[0], |
||||||
|
text: item[1] |
||||||
|
}); |
||||||
|
}); |
||||||
|
callback(data); |
||||||
|
} |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
$(document).ready(function(){ |
||||||
|
make_event_select('#id_expositions', '/admin/exposition/search/', 'Выставки'); |
||||||
|
make_event_select('#id_conferences', '/admin/conference/search/', 'Конференции'); |
||||||
|
}); |
||||||
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 65 KiB |
|
After Width: | Height: | Size: 47 KiB |
@ -0,0 +1,70 @@ |
|||||||
|
{% extends 'base.html' %} |
||||||
|
{% load static %} |
||||||
|
|
||||||
|
{% block scripts %} |
||||||
|
|
||||||
|
|
||||||
|
{# selects #} |
||||||
|
<link href="{% static 'js/select/select2.css' %}" rel="stylesheet"/> |
||||||
|
<script src="{% static 'js/select/select2.js' %}"></script> |
||||||
|
|
||||||
|
{% endblock %} |
||||||
|
|
||||||
|
{% block body %} |
||||||
|
|
||||||
|
<form method="post" class="form-horizontal" name="form" id="main_form"> {% csrf_token %} |
||||||
|
<fieldset> |
||||||
|
<legend><i class="icon-edit"></i>Управление услугой {{ object.name }}</legend> |
||||||
|
|
||||||
|
<div class="box span8" > |
||||||
|
<div class="box-header well"> |
||||||
|
<h2><i class="icon-pencil"></i></h2> |
||||||
|
</div> |
||||||
|
<div class="box-content"> |
||||||
|
{# event_type #} |
||||||
|
<div class="control-group {% if form.event_type.errors %}error{% endif %}"> |
||||||
|
<label class="control-label">{{ form.event_type.label }}:</label> |
||||||
|
<div class="controls"> |
||||||
|
{{ form.event_type }} |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
{# region #} |
||||||
|
<div class="control-group {% if form.region.errors %}error{% endif %}"> |
||||||
|
<label class="control-label">{{ form.region.label }}:</label> |
||||||
|
<div class="controls">{{ form.region }} |
||||||
|
<span class="help-inline">{{ form.region.errors }}</span> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
{# country #} |
||||||
|
<div class="control-group {% if form.country.errors %}error{% endif %}"> |
||||||
|
<label class="control-label">{{ form.country.label }}:</label> |
||||||
|
<div class="controls">{{ form.country }} |
||||||
|
<span class="help-inline">{{ form.country.errors }}</span> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
{# expositions #} |
||||||
|
<div class="control-group {% if form.expositions.errors %}error{% endif %}"> |
||||||
|
<label class="control-label">{{ form.expositions.label }}:</label> |
||||||
|
<div class="controls">{{ form.expositions }} |
||||||
|
<span class="help-inline">{{ form.expositions.errors }}</span> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
{# conferences #} |
||||||
|
<div class="control-group {% if form.conferences.errors %}error{% endif %}"> |
||||||
|
<label class="control-label">{{ form.conferences.label }}:</label> |
||||||
|
<div class="controls">{{ form.conferences }} |
||||||
|
<span class="help-inline">{{ form.conferences.errors }}</span> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</fieldset> |
||||||
|
</form> |
||||||
|
{% endblock %} |
||||||
|
|
||||||
|
{% block bot_scripts %} |
||||||
|
<script src="{% static 'custom_js/find_events.js' %}"></script> |
||||||
|
{% endblock %} |
||||||
@ -0,0 +1,39 @@ |
|||||||
|
{% extends 'admin_list.html' %} |
||||||
|
|
||||||
|
{% block body %} |
||||||
|
<div class="box span8"> |
||||||
|
<div class="box-header well"> |
||||||
|
<h2><i class="icon-arrow-down"></i>Список услуг</h2> |
||||||
|
</div> |
||||||
|
<div class="box-content"> |
||||||
|
|
||||||
|
<table class="table table-hover"> |
||||||
|
<thead> |
||||||
|
<tr> |
||||||
|
<th>id</th> |
||||||
|
<th>Название</th> |
||||||
|
<th> </th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{% for item in object_list %} |
||||||
|
|
||||||
|
<tr> |
||||||
|
<td>{{ item.id }}</td> |
||||||
|
<td>{{ item.name }}</td> |
||||||
|
|
||||||
|
<td> |
||||||
|
<a class="btn-small btn-info" href="/admin/service/control/{{ item.id }}/"> |
||||||
|
Управлять |
||||||
|
</a> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
|
||||||
|
{% endfor %} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
{# pagination #} |
||||||
|
{% include 'admin/includes/admin_pagination.html' with page_obj=object_list %} |
||||||
|
</div> |
||||||
|
{% endblock %} |
||||||
@ -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,9 +1,24 @@ |
|||||||
{% load static %} |
{% load static %} |
||||||
{% load template_filters %} |
{% load template_filters %} |
||||||
|
|
||||||
<div class="abn"> |
<div class="abn"> |
||||||
|
{% comment %} |
||||||
|
{% if False|random3 == 1 %} |
||||||
|
<a target="_blank" href="/redirect/redirect/31/"><img src="{% static 'client/img/partners/expomap-seminars-01.jpg' %}" alt="" /></a> |
||||||
|
{% else %} |
||||||
|
{% if False|random3 == 2 %} |
||||||
|
<a target="_blank" href="/redirect/redirect/32/"><img src="{% static 'client/img/partners/expomap-seminars-02.gif' %}" alt="" /></a> |
||||||
|
{% else %} |
||||||
|
<a target="_blank" href="/redirect/redirect/33/"><img src="{% static 'client/img/partners/expomap-seminars-03.gif' %}" alt="" /></a> |
||||||
|
{% endif %} |
||||||
|
{% endif %} |
||||||
|
{% endcomment %} |
||||||
|
|
||||||
|
{% comment %} |
||||||
{% if False|fourth %} |
{% if False|fourth %} |
||||||
<a target="_blank" href="/redirect/redirect/21/"><img src="{% static 'client/img/partners/unnamed.gif' %}" alt="" /></a> |
<a target="_blank" href="/redirect/redirect/21/"><img src="{% static 'client/img/partners/unnamed.gif' %}" alt="" /></a> |
||||||
{% else %} |
{% else %} |
||||||
<a target="_blank" href="/redirect/redirect/23/"><img src="{% static 'client/img/partners/unnamed_1.gif' %}" alt="" /></a> |
<a target="_blank" href="/redirect/redirect/23/"><img src="{% static 'client/img/partners/unnamed_1.gif' %}" alt="" /></a> |
||||||
{% endif %} |
{% endif %} |
||||||
|
{% endcomment %} |
||||||
</div> |
</div> |
||||||
@ -0,0 +1,8 @@ |
|||||||
|
<div id="expo-ad-popup" data-rdr="51" class="popup-window" style="width:800px;"> |
||||||
|
<header class="clearfix"> |
||||||
|
<div class="pw-title"></div> |
||||||
|
</header> |
||||||
|
<div class="pw-body clearfix"> |
||||||
|
<a href="/redirect/redirect/51/"><img src="/static/client/img/expo_b/mims15.gif"/></a> |
||||||
|
</div> |
||||||
|
</div> |
||||||
@ -0,0 +1,23 @@ |
|||||||
|
<div id="expo-ad-popup" data-rdr="52" class="popup-window" style="width:500px;"> |
||||||
|
<header class="clearfix"> |
||||||
|
<div class="pw-title">Вы планируете посещение MIMS Automechanika Moscow в Экспоцентре?</div> |
||||||
|
</header> |
||||||
|
<div class="pw-body clearfix"> |
||||||
|
<form id="expo-form-popup" class="pw-form simple-validate" action="/redirect/redirect/52/"> |
||||||
|
<div class="pwf-line"> |
||||||
|
С 24 по 27 августа 2015 г. в Экспоцентре будут представлены лучшие предложения производителей и поставщиков автозапчастей, оборудования и товаров для технического обслуживания автомобилей. |
||||||
|
</div> |
||||||
|
<div class="pwf-line"> |
||||||
|
<a href="/redirect/redirect/52/"> |
||||||
|
<img src="/static/client/img/expo_b/mims.png"> |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
<button>Узнать подробнее</button> |
||||||
|
</form> |
||||||
|
|
||||||
|
|
||||||
|
</div> |
||||||
|
|
||||||
|
</div> |
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,8 @@ |
|||||||
|
<div id="expo-ad-popup" data-rdr="49" class="popup-window" style="width:800px;"> |
||||||
|
<header class="clearfix"> |
||||||
|
<div class="pw-title"></div> |
||||||
|
</header> |
||||||
|
<div class="pw-body clearfix"> |
||||||
|
<a href="/redirect/redirect/49/"><img src="/static/client/img/expo_b/cemat15.gif"/></a> |
||||||
|
</div> |
||||||
|
</div> |
||||||
@ -0,0 +1,8 @@ |
|||||||
|
<div id="expo-ad-popup" data-rdr="50" class="popup-window" style="width:800px;"> |
||||||
|
<header class="clearfix"> |
||||||
|
<div class="pw-title"></div> |
||||||
|
</header> |
||||||
|
<div class="pw-body clearfix"> |
||||||
|
<a href="/redirect/redirect/50/"><img src="/static/client/img/expo_b/cemat15_v2.gif"/></a> |
||||||
|
</div> |
||||||
|
</div> |
||||||
@ -0,0 +1,24 @@ |
|||||||
|
|
||||||
|
<div id="expo-ad-popup" data-rdr="53" class="popup-window"> |
||||||
|
<header class="clearfix"> |
||||||
|
<div class="pw-title">Ваш логист пойдет на выставку CEMAT?</div> |
||||||
|
</header> |
||||||
|
<div class="pw-body clearfix"> |
||||||
|
<form id="expo-form-popup" class="pw-form simple-validate" action="/redirect/redirect/53/"> |
||||||
|
<div class="pwf-line"> |
||||||
|
С 22 по 25 сентября 2015 г. в Крокус Экспо производители складского оборудования и техники представят свои выгодные предложения. |
||||||
|
</div> |
||||||
|
<div class="pwf-line"> |
||||||
|
<a href="/redirect/redirect/53/"> |
||||||
|
<img src="/static/client/img/expo_b/cemat_modal1.png"> |
||||||
|
</a> |
||||||
|
<a href="/redirect/redirect/53. /" style="margin-left: 10px;"> |
||||||
|
<img src="/static/client/img/expo_b/cemat_modal2.png"> |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
<button >Узнать подробнее</button> |
||||||
|
</form> |
||||||
|
|
||||||
|
</div> |
||||||
|
|
||||||
|
</div> |
||||||
@ -1,3 +1 @@ |
|||||||
{% for text in object.get_index_text %} |
{{ object.get_index_text }} |
||||||
{{ text }} |
|
||||||
{% endfor %} |
|
||||||
@ -0,0 +1,6 @@ |
|||||||
|
<html> |
||||||
|
<head> |
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
||||||
|
</head> |
||||||
|
<body>Verification: 4c326c16c916403e</body> |
||||||
|
</html> |
||||||
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 65 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 8.3 KiB |
|
After Width: | Height: | Size: 8.4 KiB |
|
After Width: | Height: | Size: 47 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 65 KiB |
|
After Width: | Height: | Size: 47 KiB |
|
After Width: | Height: | Size: 43 B |
|
After Width: | Height: | Size: 6.4 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 1003 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 6.4 KiB |
|
After Width: | Height: | Size: 75 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 78 KiB |
@ -1,11 +1,13 @@ |
|||||||
# -*- coding: utf-8 -*- |
# -*- coding: utf-8 -*- |
||||||
from django.conf.urls import patterns, url |
from django.conf.urls import patterns, url |
||||||
from admin import TranslatorListView |
from admin import TranslatorListView, TranslatorList, TranslatorAdminView |
||||||
|
|
||||||
urlpatterns = patterns('translator.admin', |
urlpatterns = patterns('translator.admin', |
||||||
url(r'^add.*/$', 'translator_add'), |
url(r'^add.*/$', 'translator_add'), |
||||||
url(r'^delete/(?P<url>.*)/$', 'translator_delete'), |
url(r'^delete/(?P<url>.*)/$', 'translator_delete'), |
||||||
url(r'^change/(?P<url>.*)/$', 'translator_change'), |
url(r'^change/(?P<url>.*)/$', 'translator_change'), |
||||||
#url(r'^all/$', 'translator_all'), |
#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 -*- |
# -*- coding: utf-8 -*- |
||||||
from django.conf.urls import patterns, include, url |
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('', |
urlpatterns = patterns('', |
||||||
url(r'^city/(?P<city>.*)/page/(?P<page>\d+)/$', TranslatorList.as_view(), {'meta_id':88}), |
url(r'^city/(?P<city>.*)/all/page/(?P<page>\d+)/$', TranslatorList.as_view(), {'meta_id':88}), |
||||||
url(r'^city/(?P<city>.*)/$', TranslatorList.as_view(), {'meta_id':88}), |
url(r'^city/(?P<city>.*)/all/$', TranslatorList.as_view(), {'meta_id':88}), |
||||||
url(r'^country/(?P<country>.*)/page/(?P<page>\d+)/$', TranslatorList.as_view(), {'meta_id':87}), |
url(r'^city/(?P<slug>.*)/$', TranslatorsCity.as_view(), {'meta_id':88}), |
||||||
url(r'^country/(?P<country>.*)/$', TranslatorList.as_view(), {'meta_id':87}), |
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'^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}), |
url(r'^', TranslatorList.as_view() , {'meta_id':86}), |
||||||
) |
) |
||||||