downloaded from remote2

remotes/origin/1203
Ivan_Home_PC 10 years ago
parent 958ba883c3
commit 799df0ea99
  1. 374
      django_messages/locale/en/LC_MESSAGES/django.po
  2. 19
      functions/overrides.py
  3. 122
      password_reset/locale/en/LC_MESSAGES/django.po
  4. 11
      templates/admin/article/article_confirm_delete.html
  5. 38
      templates/admin/expobanner/link_list.html
  6. 55
      templates/admin/expobanner/main_list.html
  7. 90
      templates/admin/expobanner/main_stat.html
  8. 11
      templates/client/includes/banners/detail_inner_3.html
  9. 2
      templates/client/includes/banners/popup.html
  10. 2
      templates/client/includes/banners/popup_2.html
  11. 21
      templates/client/includes/conference/default_description.html
  12. 34
      templates/client/includes/exposition/default_description.html
  13. 32
      templates/client/specialist_catalog/catalog.html
  14. 113
      templates/client/static_client/js/rejs/banners.js
  15. 69
      templates/client/static_client/js/rejs/tops.js
  16. 2
      wizard/description.txt

@ -0,0 +1,374 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-08 13:44+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: django_messages/admin.py:21
msgid "group"
msgstr ""
#: django_messages/admin.py:22
msgid "Creates the message optionally for all users or a group of users."
msgstr ""
#: django_messages/admin.py:30
msgid "All users"
msgstr ""
#: django_messages/admin.py:48 django_messages/models.py:94
msgid "Message"
msgstr ""
#: django_messages/admin.py:55
msgid "Date/time"
msgstr ""
#: django_messages/apps.py:6 django_messages/models.py:95
msgid "Messages"
msgstr ""
#: django_messages/fields.py:56
#, python-format
msgid "The following usernames are incorrect: %(users)s"
msgstr ""
#: django_messages/forms.py:17 django_messages/forms.py:66
#: django_messages/models.py:55
#: django_messages/templates/django_messages/inbox.html:10
#: django_messages/templates/django_messages/outbox.html:10
#: django_messages/templates/django_messages/trash.html:10
#: django_messages/templates/django_messages/view.html:8
msgid "Subject"
msgstr ""
#: django_messages/forms.py:18 django_messages/forms.py:46
#: django_messages/forms.py:67 django_messages/models.py:56
msgid "Body"
msgstr ""
#: django_messages/forms.py:65 django_messages/models.py:58
#: django_messages/templates/django_messages/outbox.html:10
#: django_messages/templates/django_messages/view.html:14
msgid "Recipient"
msgstr ""
#: django_messages/management.py:9
msgid "Message Received"
msgstr ""
#: django_messages/management.py:9
msgid "you have received a message"
msgstr ""
#: django_messages/management.py:10
msgid "Message Sent"
msgstr ""
#: django_messages/management.py:10
msgid "you have sent a message"
msgstr ""
#: django_messages/management.py:11
msgid "Message Replied"
msgstr ""
#: django_messages/management.py:11
msgid "you have replied to a message"
msgstr ""
#: django_messages/management.py:12
msgid "Reply Received"
msgstr ""
#: django_messages/management.py:12
msgid "you have received a reply to a message"
msgstr ""
#: django_messages/management.py:13
msgid "Message Deleted"
msgstr ""
#: django_messages/management.py:13
msgid "you have deleted a message"
msgstr ""
#: django_messages/management.py:14
msgid "Message Recovered"
msgstr ""
#: django_messages/management.py:14
msgid "you have undeleted a message"
msgstr ""
#: django_messages/models.py:57
#: django_messages/templates/django_messages/inbox.html:10
#: django_messages/templates/django_messages/trash.html:10
#: django_messages/templates/django_messages/view.html:10
msgid "Sender"
msgstr ""
#: django_messages/models.py:59
msgid "Parent message"
msgstr ""
#: django_messages/models.py:60
msgid "sent at"
msgstr ""
#: django_messages/models.py:61
msgid "read at"
msgstr ""
#: django_messages/models.py:62
msgid "replied at"
msgstr ""
#: django_messages/models.py:63
msgid "Sender deleted at"
msgstr ""
#: django_messages/models.py:64
msgid "Recipient deleted at"
msgstr ""
#: django_messages/templates/django_messages/base.html:9
#: django_messages/templates/django_messages/inbox.html:6
#: django_messages/templates/django_messages/new_message.html:13
msgid "Inbox"
msgstr ""
#: django_messages/templates/django_messages/base.html:10
#: django_messages/templates/django_messages/outbox.html:6
msgid "Sent Messages"
msgstr ""
#: django_messages/templates/django_messages/base.html:11
msgid "New Message"
msgstr ""
#: django_messages/templates/django_messages/base.html:12
msgid "Trash"
msgstr ""
#: django_messages/templates/django_messages/compose.html:4
msgid "Compose Message"
msgstr ""
#: django_messages/templates/django_messages/compose.html:10
msgid "Send"
msgstr ""
#: django_messages/templates/django_messages/inbox.html:10
msgid "Received"
msgstr ""
#: django_messages/templates/django_messages/inbox.html:10
#: django_messages/templates/django_messages/outbox.html:10
#: django_messages/templates/django_messages/trash.html:10
msgid "Action"
msgstr ""
#: django_messages/templates/django_messages/inbox.html:22
#: django_messages/templates/django_messages/outbox.html:19
#: django_messages/templates/django_messages/trash.html:19
#: django_messages/templates/django_messages/view.html:13
msgid "DATETIME_FORMAT"
msgstr ""
#: django_messages/templates/django_messages/inbox.html:23
#: django_messages/templates/django_messages/outbox.html:20
msgid "delete"
msgstr ""
#: django_messages/templates/django_messages/inbox.html:29
#: django_messages/templates/django_messages/outbox.html:26
#: django_messages/templates/django_messages/trash.html:26
msgid "No messages."
msgstr ""
#: django_messages/templates/django_messages/new_message.html:4
#, python-format
msgid ""
"Hello %(recipient)s,\n"
"\n"
"you received a private message from %(sender)s with\n"
"the following contents:"
msgstr ""
#: django_messages/templates/django_messages/new_message.html:12
#, python-format
msgid "Sent from %(site_url)s"
msgstr ""
#: django_messages/templates/django_messages/new_message.html:14
#: django_messages/templates/django_messages/view.html:20
msgid "Reply"
msgstr ""
#: django_messages/templates/django_messages/outbox.html:10
msgid "Sent"
msgstr ""
#: django_messages/templates/django_messages/trash.html:6
msgid "Deleted Messages"
msgstr ""
#: django_messages/templates/django_messages/trash.html:10
#: django_messages/templates/django_messages/view.html:12
msgid "Date"
msgstr ""
#: django_messages/templates/django_messages/trash.html:20
msgid "undelete"
msgstr ""
#: django_messages/templates/django_messages/trash.html:29
msgid ""
"Deleted Messages are removed from the trash at unregular intervals, don't "
"rely on this feature for long-time storage."
msgstr ""
#: django_messages/templates/django_messages/view.html:6
msgid "View Message"
msgstr ""
#: django_messages/templates/django_messages/view.html:22
msgid "Delete"
msgstr ""
#: django_messages/templates/notification/messages_deleted/full.txt:1
#, python-format
msgid "You have deleted the message '%(message)s'."
msgstr ""
#: django_messages/templates/notification/messages_deleted/notice.html:1
#, python-format
msgid ""
"You have deleted the message <a href=\"%(message_url)s\">%(message)s</a>."
msgstr ""
#: django_messages/templates/notification/messages_received/full.txt:1
#, python-format
msgid ""
"%(message_sender)s has sent you a message:\n"
"\n"
"%(message)s\n"
"\n"
"%(message_body)s\n"
"\n"
"http://%(current_site)s%(message_url)s"
msgstr ""
#: django_messages/templates/notification/messages_received/notice.html:2
#, python-format
msgid ""
"You have received the message <a href=\"%(message_url)s\">%(message)s</a> "
"from %(message_sender)s."
msgstr ""
#: django_messages/templates/notification/messages_received/short.txt:1
#: django_messages/templates/notification/messages_reply_received/short.txt:1
#, python-format
msgid "%(notice)s by %(message_sender)s"
msgstr ""
#: django_messages/templates/notification/messages_recovered/full.txt:1
#, python-format
msgid "You have recovered the message '%(message)s'."
msgstr ""
#: django_messages/templates/notification/messages_recovered/notice.html:1
#, python-format
msgid ""
"You have recovered the message <a href=\"%(message_url)s\">%(message)s</a>."
msgstr ""
#: django_messages/templates/notification/messages_replied/full.txt:1
#, python-format
msgid ""
"You have replied to '%(message_parent_msg)s' from %(message_recipient)s."
msgstr ""
#: django_messages/templates/notification/messages_replied/notice.html:2
#, python-format
msgid ""
"You have replied to <a href=\"%(message_url)s\">%(message_parent_msg)s</a> "
"from %(message_recipient)s."
msgstr ""
#: django_messages/templates/notification/messages_reply_received/full.txt:1
#, python-format
msgid ""
"%(message_sender)s replied to '%(message_parent_msg)s':\n"
"\n"
"%(message)s\n"
"\n"
"%(message_body)s\n"
"\n"
"http://%(current_site)s%(message_url)s"
msgstr ""
#: django_messages/templates/notification/messages_reply_received/notice.html:2
#, python-format
msgid "%(message_sender)s has sent you a reply to %(message_parent_msg)s."
msgstr ""
#: django_messages/templates/notification/messages_sent/full.txt:1
#, python-format
msgid "You have sent the message '%(message)s' to %(message_recipient)s."
msgstr ""
#: django_messages/templates/notification/messages_sent/notice.html:2
#, python-format
msgid ""
"You have sent the message <a href=\"%(message_url)s\">%(message)s</a> to "
"%(message_recipient)s."
msgstr ""
#: django_messages/utils.py:26
#, python-format
msgid ""
"%(sender)s wrote:\n"
"%(body)s"
msgstr ""
#: django_messages/utils.py:54
#, python-format
msgid "Re%(prefix)s: %(subject)s"
msgstr ""
#: django_messages/utils.py:60
#, python-format
msgid "New Message: %(subject)s"
msgstr ""
#: django_messages/views.py:78 django_messages/views.py:114
msgid "Message successfully sent."
msgstr ""
#: django_messages/views.py:121
#, python-format
msgid "Re: %(subject)s"
msgstr ""
#: django_messages/views.py:157
msgid "Message successfully deleted."
msgstr ""
#: django_messages/views.py:184
msgid "Message successfully recovered."
msgstr ""

@ -0,0 +1,19 @@
from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage
class SeoPaginator(Paginator):
def validate_number(self, number):
"Validates the given 1-based page number."
try:
number = int(number)
except (TypeError, ValueError):
raise PageNotAnInteger('That page number is not an integer')
if number < 1:
raise EmptyPage('That page number is less than 1')
if number > self.num_pages:
if number == 1 and self.allow_empty_first_page:
pass
else:
number = 1
return number

@ -0,0 +1,122 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-08 13:44+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: password_reset/forms.py:14
msgid "Sorry, this user doesn't exist."
msgstr ""
#: password_reset/forms.py:31
msgid "Username"
msgstr ""
#: password_reset/forms.py:32
msgid "Email"
msgstr ""
#: password_reset/forms.py:33
msgid "Для восстановления пароля укажите email, который Вы регистрировали"
msgstr ""
#: password_reset/forms.py:83
msgid "Unable to find user."
msgstr ""
#: password_reset/forms.py:89
msgid "New password"
msgstr ""
#: password_reset/forms.py:93
msgid "New password (confirm)"
msgstr ""
#: password_reset/forms.py:98
msgid "The two passwords didn't match."
msgstr ""
#: password_reset/templates/password_reset/recovery_done.html:3
msgid "New password set"
msgstr ""
#: password_reset/templates/password_reset/recovery_done.html:6
msgid ""
"Your password has successfully been reset. You can use it right now on the "
"login page."
msgstr ""
#: password_reset/templates/password_reset/recovery_email.txt:1
#, python-format
msgid "Dear %(username)s,"
msgstr ""
#: password_reset/templates/password_reset/recovery_email.txt:3
#, python-format
msgid ""
"You -- or someone pretending to be you -- has requested a password reset on "
"%(domain)s."
msgstr ""
#: password_reset/templates/password_reset/recovery_email.txt:5
msgid "You can set your new password by following this link:"
msgstr ""
#: password_reset/templates/password_reset/recovery_email.txt:9
msgid ""
"If you don't want to reset your password, simply ignore this email and it "
"will stay unchanged."
msgstr ""
#: password_reset/templates/password_reset/recovery_email_subject.txt:1
#, python-format
msgid "Password recovery on %(domain)s"
msgstr ""
#: password_reset/templates/password_reset/recovery_form.html:5
msgid "Password recovery"
msgstr ""
#: password_reset/templates/password_reset/recovery_form.html:10
msgid "Recover my password"
msgstr ""
#: password_reset/templates/password_reset/reset.html:5
#, python-format
msgid ""
"Sorry, this password reset link is invalid. You can still <a href="
"\"%(recovery_url)s\">request a new one</a>."
msgstr ""
#: password_reset/templates/password_reset/reset.html:7
#, python-format
msgid "Hi, <strong>%(username)s</strong>. Please choose your new password."
msgstr ""
#: password_reset/templates/password_reset/reset.html:11
msgid "Set new password"
msgstr ""
#: password_reset/templates/password_reset/reset_sent.html:4
msgid "Password recovery sent"
msgstr ""
#: password_reset/templates/password_reset/reset_sent.html:7
#, python-format
msgid ""
"An email was sent to <strong>%(email)s</strong> %(ago)s ago. Use the link in "
"it to set a new password."
msgstr ""

@ -0,0 +1,11 @@
{% extends 'base.html' %}
{% block sidebar %}{% endblock %}
{% block body %}
<form action="" method="post">{% csrf_token %}
<div class="controls">
<p>Вы точно хотите удалить "{{ object }}" ?</p>
<input class="btn btn-large btn-danger delete" type="submit" value="Да" />
<a class="btn btn-large btn-primary" href = "/admin/article/blog/all">Нет</a>
</div>
</form>
{% endblock %}

@ -0,0 +1,38 @@
{% extends 'base.html' %}
{% block body %}
<div class="box span8">
<div class="box-header well">
<h2><i class="icon-arrow-down"></i>{{ verbose }}</h2>
</div>
<div class="box-content">
{% block list_table %}
<table class="table table-hover">
<thead>
<tr>
<th>Объект</th>
<th>ссылка для отслеживания</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody>
{% for item in object_list %}
<tr>
<td>{{ item }}</td>
<td>{{request.get_host}}{{ item.get_click_link }}</td>
<td><a href="{% url 'expobanner-update_link' item.id %}">Изменить</a> </td>
<td><a href="{% url 'expobanner_stat_link' item.id %}">Статистика</a> </td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}
</div>
{# pagination #}
{% include 'admin/includes/admin_pagination.html' with page_obj=object_list %}
</div>
{% endblock %}

@ -0,0 +1,55 @@
{% extends 'admin/base.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">
{% block list_table %}
<div style="float:left;">
<a class="btn btn-success" href="{% url 'expobanner-create_main' %}"><i class="icon-plus-sign icon-white"></i> Добавить выставку</a>
</div>
<div style="float:right;">
<form method="get" id="form">
Только опубликование<input id="public" type="checkbox" name="onlypublic" value="true">
</form>
</div>
<table class="table table-hover">
<thead>
<tr>
<th>Выставка</th>
<th>Позиция</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody>
{% for item in object_list %}
<tr>
<td>{{ item }}</td>
<td>{{ item.main.position }}</td>
<td><a href="{% url 'expobanner-update_main' item.main.id %}">Изменить</a> </td>
<td>{% if item.main.public %}<a href="{% url 'expobanner-main-turn' item.main.id 'off' %}">отключить</a>{% else %}<a href="{% url 'expobanner-main-turn' item.main.id 'on' %}">включить</a>{% endif %} </td>
<td><a href="{% url 'expobanner_stat_main' item.main.id %}">Статистика</a> </td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}
</div>
{# pagination #}
{% include 'admin/includes/admin_pagination.html' with page_obj=object_list %}
</div>
<script>
var cbox = $("#public");
var form = $("#form");
if(location.search != "")
cbox.attr('checked', true);
cbox.click(function(){
form.submit()
});
</script>
{% endblock %}

@ -0,0 +1,90 @@
{% extends 'admin/base.html' %}
{% load static %}
{% load i18n %}
{% block scripts %}
{# datetimepicker #}
<script type="text/javascript">
console.log("2");
</script>
<script src="{% static 'js/jquery.dataTables.min.js' %}"></script>
{% endblock %}
{% block body %}
<div class="row-fluid sortable">
<div class="box span12">
<div class="box-header well" data-original-title>
<h2><i class="icon-align-justify"></i> {{ object.get_event }}</h2>
</div>
<div class="box-content">
<div class="row-fluid">
<div class="span8">Линк на статистику: <b>{{ request.get_host }}/expo-b/banner/{{ object.link.id }}/stat/</b></div>
<div class="span4">Пароль: <b>{{ object.link.stat_pswd }}</b></div>
</div>
<!-- date filter -->
<div class="row-fluid">
<form class = "form-inline" method="get" >
<div class="form-group ">
<label class="control-label" for="id_date_from"> {% trans "с: " %}</label>
<input class="form-control" type="text" name="date_from" id="id_date_from">
<label for="id_date_to" >{% trans "по: " %}</label>
<input class="form-control" type="text" name="date_to" id="id_date_to" >
<button class="btn btn-primary" type="submit" >{% trans "Фильтровать" %}</button>
</div>
</form>
</div>
<!-- end date filter -->
<table class="table table-striped table-bordered bootstrap-datatable datatable">
<thead>
<tr>
<th>Дата</th>
<th>Показы</th>
<th>Клики</th>
<th>Уникальные показы</th>
<th>Уникальные клики</th>
</tr>
</thead>
<tbody>
<tr>
<td><b>Всего</b></td>
<td>{{ all.views }}</td>
<td>{{ all.clicks }}</td>
<td>{{ all.unique_views}}</td>
<td>{{ all.unique_clicks }}</td>
</tr>
{% with stats=stats %}
{% for stat in stats %}
<tr>
<td>{{ stat.date|date:"Y-m-d" }}</td>
<td>{{ stat.view }}</td>
<td>{{ stat.click }}</td>
<td>{{ stat.unique_view }}</td>
<td>{{ stat.unique_click }}</td>
</tr>
{% endfor %}
{% endwith %}
</tbody>
</table>
</div>
</div>
</div>
<script>
console.log("down");
$('#id_date_from').datetimepicker({
todayHighlight: true,
format : 'dd.mm.yyyy',
minView:2
});
$('#id_date_to').datetimepicker({
todayHighlight: true,
format : 'dd.mm.yyyy',
minView:2
});
console.log("1");
</script>
{% endblock %}

@ -0,0 +1,11 @@
<div class="abn" id="expo_b_detail_inner_3">
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- Горизонтальный -->
<ins class="adsbygoogle"
style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5242360491829403"
data-ad-slot="6420652378"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>

@ -0,0 +1,2 @@
<div id="expo_b_popup" class="popup-window" style="width:900px;">
</div>

@ -0,0 +1,2 @@
<div id="expo_b_popup_2" class="popup-window" style="width:700px;">
</div>

@ -0,0 +1,21 @@
{% load i18n %}
<div class="ied-text">
{% blocktrans with name=conf.name%}
<p class="text-indent-1-5em">Конференция {{name}} проходит {% endblocktrans %}{% include 'client/includes/show_date_block.html' with obj=conf %}
{% blocktrans with city=conf.name country=country.name name=conf.name id=conf.city.id code=request.LANGUAGE_CODE date1=conf.data_begin|date:'j' date2=conf.data_begin|date:'Y' date3=conf.data_begin|date:'n' date4=conf.data_end|date:'j' date5=conf.data_end|date:'Y' date6=conf.data_end|date:'n' %}
в городе {{city}}, {{country}}.
Посмотреть, как проехать в место проведения конференции, можно на сайте конгрессной площадки.
Деловая программа {{name}} разбита на секции по дням и размещается на сайте мероприятия с подробным списком
докладчиков конференции. Спикеров конференции {{name}} обычно окончательно утверждают за 1-2 месяца до начала конференции.</p>
<h3>Ваши деловые контакты на {{name}} </h3>
<p class="text-indent-1-5em">Добавьте конференцию {{name}} в расписание, чтобы не потерять важное событие,
где встречаются профессионалы нужной Вам отрасли. Создавайте свой календарь мероприятий, просто нажав кнопку
"Добавить в календарь".</p>
<h3>Планируете самостоятельную поездку на {{name}} ? </h3>
<p class="text-indent-1-5em">Если Вам требуется размещение, мы рекомендуем посмотреть отели и цены в период проведения конференции <a href="http://www.booking.com/searchresults.html?aid=333667&city={{ id }}&do_availability_check=on&label=conf_search&lang={{ code }}&checkin_monthday={{ date1 }}&checkin_year_month={{ date2 }}-{{ date3 }}&checkout_monthday={{ date4 }}&checkout_year_month={{ date5 }}-{{ date6 }}">здесь</a>.
Не забудьте проверить место и даты конференции на официальном сайте и в календаре организатора. Событие могут перенести,
отменить, объединить с проектом схожей тематики. Expomap не несет ответственности за неточности
предоставляемой информации.
Есть вопрос по участию в {{name}} ? Ответим по тел. <b>+7 (499) 999-12-07</b></p>
{% endblocktrans %}
</div>

@ -0,0 +1,34 @@
{% load i18n %}
<div class="ied-text">
{% blocktrans with name=expo.name %}
<p class="text-indent-1-5em">Выставка {{ name }} проводится{% endblocktrans %}
{% include 'client/includes/show_date_block.html' with obj=expo %}
{% blocktrans with city=expo.city.name country=expo.country.name %} в городе {{ city }}, {{ country }}
.{% endblocktrans %}
{% blocktrans with name=expo.name id=expo.city.id code=request.LANGUAGE_CODE date1=expo.data_begin|date:'j' date2=expo.data_begin|date:'Y' date3=expo.data_begin|date:'n' date4=expo.data_end|date:'j' date5=expo.data_end|date:'Y' date6=expo.data_end|date:'n' %}
Экспонируемые продукты и разделы выставки Вы можете посмотреть ниже, в блоке
<a href="#additional">«Дополнительная информация».</a>
Полный список участников {{ name }} размещается на официальном сайте выставки и постоянно обновляется.
Там же Вы сможете найти экспонентов предыдущего года. Деловая программа {{ name }} обычно публикуется ближе к
началу события.</p>
<h3>Ваш личный календарь</h3>
<p class="text-indent-1-5em">Добавьте выставку {{ name }} в <a href="/profile/calendar/">календарь</a>, чтобы не
потерять важное событие. Создавайте свой календарь мероприятий,
просто нажав кнопку Добавить в календарь.</p>
<h3>Планируете самостоятельную поездку на {{ name }}?</h3>
<p class="text-indent-1-5em">Мы рекомендуем посмотреть отели и цены в период проведения выставки
<a href="http://www.booking.com/searchresults.html?aid=333667&city={{ id }}&do_availability_check=on&label=expo_search&lang={{ code }}&checkin_monthday={{ date1 }}&checkin_year_month={{ date2 }}-{{ date3 }}&checkout_monthday={{ date4 }}&checkout_year_month={{ date5 }}-{{ date6 }}">здесь</a>.
{% endblocktrans %}{% if expo.place %}
{% blocktrans with name=expo.place.name url=expo.place.url %}Как добраться до выставочного центра {{ name }} можно
посмотреть
<a href="/places/{{ url }}">здесь</a>.{% endblocktrans %}
{% endif %}
{% blocktrans with name=expo.name %}
Не забудьте проверить место и даты выставки на официальном сайте и в календаре выставочного комплекса.
Событие могут перенести, отменить, объединить с проектом схожей тематики.
Expomap не несет ответственности за неточности предоставляемой информации.
Есть вопрос о посещении или участии в {{ name }}? Ответим по тел. <b>+7 (499) 999-12-07</b></p>
{% endblocktrans %}
</div>

@ -0,0 +1,32 @@
{% extends "client/base_catalog.html" %}
{% load static %}
{% load i18n %}
{% load template_filters %}
{% block bread_scrumbs %}
<div class="bread-crumbs">
<a href="/">{% trans 'Главная страница' %}</a>
<strong>{{ title }}</strong>
</div>
{% endblock %}
{% block content_list %}
{% with objects=object_list %}
{% for obj in objects %}
{% set cur_word = obj.place.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="{{ obj.get_absolute_url }}">{{ obj.place }}</a>
</li>
{% set prev_word = obj.place.name %}
{% endfor %}
{% endwith %}
{% endblock %}

@ -0,0 +1,113 @@
(function () {
"use strict";
var API_URL_ROOT = "/expo-b/get-banners/";
var getUrl = function () {
var search = [];
var parts = /^\/([^\/]+)(?:\/|$)/i.exec(location.pathname);
if (parts) {
search.push("catalog=" + encodeURIComponent(parts[1]));
} else {
search.push("catalog=");
}
var elements = $("[id^=\"expo_b_\"]");
for (var j = 0; j < elements.length; j++) {
search.push("places=" + encodeURIComponent($(elements[j]).attr("id")));
}
var data = window.sendData;
if (data instanceof Object) {
for (var key in data) {
if (data.hasOwnProperty(key)) {
var value = data[key];
if (value instanceof Array) {
for (var i = 0, l = value.length; i < l; i++) {
search.push(encodeURIComponent(key) + "=" + encodeURIComponent(value[i]));
}
} else {
search.push(encodeURIComponent(key) + "=" + encodeURIComponent(value));
}
}
}
}
return API_URL_ROOT + "?" + search.join("&");
};
var getBanners = function (url, callback) {
var xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.onreadystatechange = function (event) {
if (event.target.readyState === 4) {
if (event.target.status === 200) {
try {
callback(JSON.parse(event.target.responseText));
} catch (error) {
// do nothing
}
}
}
};
xhr.send();
};
var addBanner = function (banner) {
var parent = document.getElementById(banner.id);
if (parent) {
if (banner.is_popup) {
if (banner.is_img) {
parent.innerHTML =
"<header class=\"clearfix\"><div class=\"pw-title\"></div></header><div class=\"pw-body clearfix\">" +
"<a href=\""+ banner.url + "\"><img src=\"" + banner.img + "\" alt=\"" + banner.alt + "\" /></a></div>";
} else if (banner.is_html) {
parent.innerHTML = banner.text;
}
$("#expo-form-popup").on("submit", function(e) {
e.preventDefault();
window.location = $("#expo-form-popup").attr("action");
});
setTimeout(function(){
$.fancybox.open([{"href": "#" + banner.id}], {});
}, 5000);
} else {
if (banner.is_img) {
var a = document.createElement("a");
a.href = banner.url;
var img = document.createElement("img");
img.src = banner.img;
img.alt = banner.alt;
a.appendChild(img);
parent.appendChild(a);
} else if (banner.is_html) {
parent.innerHTML = banner.text;
}
}
}
};
var insertBanners = function (data) {
if (data instanceof Array) {
for (var i = 0, l = data.length; i < l; i++) {
addBanner(data[i]);
}
}
};
var main = function () {
getBanners(getUrl(), insertBanners);
};
window.addEventListener("load", main);
})();

@ -0,0 +1,69 @@
(function () {
"use strict";
var API_URL_ROOT = "/expo-b/get-tops/";
var PARENT_ID = "expo_top_events";
var getUrl = function () {
var search = [];
var parts = /^\/([^\/]+)(?:\/|$)/i.exec(location.pathname);
if (parts) {
search.push("catalog=" + encodeURIComponent(parts[1]));
} else {
search.push("catalog=");
}
var data = window.sendData;
if (data instanceof Object) {
for (var key in data) {
if (data.hasOwnProperty(key)) {
var value = data[key];
if (value instanceof Array) {
for (var i = 0, l = value.length; i < l; i++) {
search.push(encodeURIComponent(key) + "=" + encodeURIComponent(value[i]));
}
} else {
search.push(encodeURIComponent(key) + "=" + encodeURIComponent(value));
}
}
}
}
return API_URL_ROOT + "?" + search.join("&");
};
var getTops = function (url, callback) {
var xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.onreadystatechange = function (event) {
if (event.target.readyState === 4) {
if (event.target.status === 200) {
try {
callback(event.target.responseText);
} catch (error) {
// do nothing
}
}
}
};
xhr.send();
};
var insertTops = function (text) {
var parent = document.getElementById(PARENT_ID);
if (parent) {
parent.innerHTML = text;
}
};
var main = function () {
getTops(getUrl(), insertTops);
};
window.addEventListener("load", main);
})();

@ -0,0 +1,2 @@
Должен был быть модуль для добавления событий и других даных через кабинет пользователя.
Остановленна разработка по ненадобности, так как делается функционал добавление событий через црм
Loading…
Cancel
Save