remotes/origin/1203
Назар Котюк 11 years ago
commit 13abedbafe
  1. 2
      proj/settings.py
  2. 2
      service/models.py
  3. 52
      service/order_forms.py
  4. 6
      service/views.py
  5. 1
      templates/client/includes/catalog_search.html
  6. 246
      templates/client/includes/conference/conference_list.html
  7. 28
      templates/client/includes/event_steps.html
  8. 18
      templates/client/includes/exposition/exposition_list.html
  9. 99
      templates/client/includes/place/place_list.html
  10. 20
      templates/client/service/tour.html
  11. 21
      templates/client/service/translator.html
  12. 12
      templates/client/static_client/css/main.css
  13. 74
      templates/client/static_client/js/_modules/block.search.js
  14. 2
      templates/client/static_client/js_min/_modules/block.search.min.js

@ -404,6 +404,8 @@ MONTHES = {'jan': {'value': 1, 'name': _(u'Январь')}, 'feb': {'value': 2,
SNG_COUNTRIES = [159, 186, 31, 6, 99, 13, 189, 64]
CLIENT_DATE_FORMAT = ["%d.%m.%Y"]
# cache pages in random seconds. random in this range
CACHE_RANGE = [60, 120]

@ -107,7 +107,7 @@ class Translation(AbstractOrder):
class Visit(AbstractOrder):
fr = models.DateField()
to = models.DateField()
people = models.IntegerField()
people = models.IntegerField(blank=True, null=True)
hotel_additional = models.TextField(blank=True)
city_from = models.CharField(max_length=255, blank=True)
hotel_stars = models.CharField(max_length=30, blank=True)

@ -6,6 +6,7 @@ from models import Catalog, Tickets, Remote, Participation, Translation, Visit,
from exposition.models import Exposition
from conference.models import Conference
from seminar.models import Seminar
from django.conf import settings
class AbstractOrderForm(forms.ModelForm):
@ -74,7 +75,7 @@ class AbstractOrderForm(forms.ModelForm):
if not phone:
return
deduct = ('-','(',')','.',' ')
deduct = ('-','(',')','.',' ', '+')
for elem in deduct:
phone = phone.replace(elem, '')
if phone.isdigit():
@ -132,42 +133,43 @@ from theme.models import Theme
class TranslationForm(AbstractOrderForm):
languages = forms.CharField(required=False)
themes = forms.CharField(required=False)
fr = forms.DateField(widget=forms.DateInput(attrs={'class': 'date dateFrom', 'placeholder': _(u'дд.мм.гггг')}), required=False)
to = forms.DateField(widget=forms.DateInput(attrs={'class': 'date dateTo', 'placeholder': _(u'дд.мм.гггг')}), required=False)
fr = forms.DateField(input_formats=settings.CLIENT_DATE_FORMAT,
widget=forms.DateInput(attrs={'class': 'date dateFrom', 'placeholder': _(u'дд.мм.гггг')}))
to = forms.DateField(input_formats=settings.CLIENT_DATE_FORMAT,
widget=forms.DateInput(attrs={'class': 'date dateTo', 'placeholder': _(u'дд.мм.гггг')}))
class Meta:
model = Translation
HOTEL_ADDITIONAL_CHOICES = [('', _(u'Выберите')),(_(u'Условие1'), _(u'Условие1')),
(_(u'Условие2'), _(u'Условие2')),(_(u'Условие3'), _(u'Условие3'))]
HOTEL_ADDITIONAL_CHOICES = [('', _(u'Выберите')), (_(u'Одноместное'), _(u'Одноместное')),
(_(u'Двухместное'), _(u'Двухместное')),(_(u'Трехместное'), _(u'Трехместное'))]
AVIA_TYPE_CHOICES = [(_(u'Прямой'), _(u'Прямой')), (_(u'С пересадкой'), _(u'С пересадкой')),
(_(u'Бизнес-класс'), _(u'Бизнес-класс')), (_(u'Эконом-класс'), _(u'Эконом-класс'))]
HOTEL_LOCATION_CHOICES = [('', _(u'Выберите')), (_(u'Расположение1'), _(u'Расположение1')),
(_(u'Расположение2'), _(u'Расположение2'))]
HOTEL_LOCATION_CHOICES = [('', _(u'Выберите')), (_(u'Любое'), _(u'Любое')),
(_(u'Рядом с выставкой'), _(u'Рядом с выставкой')),
(_(u'В центре'), _(u'В центре'))]
HOTEL_BUDGET_ADD = [('', _(u'Выберите')), (_(u'В сутки'), _(u'В сутки')), (_(u'В неделю'), _(u'В неделю'))]
HOTEL_BUDGET_ADD = [(_(u'В сутки'), _(u'В сутки')), (_(u'За весь период'), _(u'За весь период'))]
class VisitForm(AbstractOrderForm):
fr = forms.DateField(widget=forms.DateInput(attrs={'class': 'date dateFrom', 'placeholder': _(u'дд.мм.гггг')}))
to = forms.DateField(widget=forms.DateInput(attrs={'class': 'date dateTo', 'placeholder': _(u'дд.мм.гггг')}))
fr = forms.DateField(input_formats=settings.CLIENT_DATE_FORMAT, required=False,
widget=forms.DateInput(attrs={'class': 'date dateFrom', 'placeholder': _(u'дд.мм.гггг')}))
to = forms.DateField(input_formats=settings.CLIENT_DATE_FORMAT, required=False,
widget=forms.DateInput(attrs={'class': 'date dateTo', 'placeholder': _(u'дд.мм.гггг')}))
hotel_additional = forms.ChoiceField(choices=HOTEL_ADDITIONAL_CHOICES, required=False)
hotel_stars = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple(),
hotel_stars = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple(), required=False,
choices=[('1','1'),('2','2'),('3','3'),('4','4'),('5','5')])
hotel_location = forms.ChoiceField(choices=HOTEL_LOCATION_CHOICES, required=False)
hotel_budget_add = forms.ChoiceField(choices=HOTEL_BUDGET_ADD, required=False)
languages = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple(),
choices=LANGS)
themes = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple(),
choices=[(theme.name, theme.name) for theme in Theme.objects.all()])
languages = forms.CharField(required=False, widget=forms.TextInput(attrs={'placeholder': _(u'Знание языков')}))
themes = forms.CharField(required=False, widget=forms.TextInput(attrs={'placeholder': _(u'Тематика')}))
avia_type = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple(),
choices=AVIA_TYPE_CHOICES)
choices=AVIA_TYPE_CHOICES, required=False)
class Meta:
model = Visit
@ -178,20 +180,6 @@ class VisitForm(AbstractOrderForm):
else:
return ', '.join(hotel_stars)
def clean_languages(self):
languages = self.cleaned_data.get('languages')
if not languages:
return ''
else:
return ', '.join(languages)
def clean_themes(self):
themes = self.cleaned_data.get('themes')
if not themes:
return ''
else:
return ', '.join(themes)
def clean_avia_type(self):
avia_type = self.cleaned_data.get('avia_type')
if not avia_type:

@ -17,6 +17,8 @@ order_forms = {'translator': TranslationForm, 'catalog': CatalogForm, 'participa
'remote': RemoteForm, 'tickets': TicketsForm, 'visit': VisitForm, 'buildstand': BuildStandForm}
class ServiceView(FormView):
success_url = '/service/thanks/'
def get_form_class(self):
url = self.kwargs.get('url')
@ -26,13 +28,9 @@ class ServiceView(FormView):
else:
raise Http404
def get_template_names(self):
url = self.kwargs.get('url')
service = get_object_or_404(Service, url=url)
return service.template

@ -99,6 +99,7 @@
{% if request.GET.debug == '1' %}
<script src="{% static 'client/js/_modules/block.search.js' %}"></script>
{% else %}
<script src="{% static 'client/js_min/_modules/block.search.min.js' %}"></script>
{% endif %}
<script>

@ -1,124 +1,134 @@
{% load static %}
{% load i18n %}
{% load template_filters %}
<ul class="cat-list cl-exhibitions">
{% with objects=object_list %}
{% for obj in objects %}
<li class="cl-item {% if obj.canceled %}canceled{% endif %}">
<div class="cl-item-wrap clearfix">
<a href="{{ obj.get_permanent_url }}">
{% if obj.canceled %}
<div class="cancel"></div>
{% else %}
{% if obj.expohit %}
<div class="hit"></div>
{% endif %}
{% endif %}
<div class="cli-pict">
{% with obj=obj %}
{% include 'client/includes/show_logo.html' %}
{% endwith %}
</div>
</a>
<div class="cli-info">
<div class="cli-top clearfix">
{% if obj.quality_label.ufi.is_set %}
<div class="cli-approved">
<img src="{% static 'client/img/approved-logo.png' %}" alt="" title="Approved Event" />
</div>
{% endif %}
<header>
<div class="cli-title"><a href="{{ obj.get_permanent_url }}">{{ obj.name|safe }}</a></div>
</header>
<div class="cli-descr">
{{ obj.main_title|safe }}
</div>
</div>
<div class="cli-bot clearfix">
<div class="cli-date">
{% with obj=obj %}
{% include 'client/includes/show_date_block.html' %}
{% endwith %}
</div>
{% if obj.country %}
<div class="cli-place">
<a href="{{ obj.catalog }}country/{{ obj.country.url }}/">{{ obj.country }}</a>, <a href="{{ obj.catalog }}city/{{ obj.city.url }}/">{{ obj.city }}</a>
{% if obj.place %}
, <a href="/places/{{ obj.place.url }}/">{{ obj.place }}</a>
{% endif %}
</div>
{% endif %}
</div>
</div>
<div class="cli-buttons clearfix">
<div class="cli-m-buttons">
{% include 'client/includes/exposition/services.html' with obj=obj %}
{% include 'client/includes/calendar_button.html' with obj=obj%}
<div class="{% if request.user.is_authenticated%}note-wrap{% else %}note-wrap-disabled{% endif %}">
{% with note=obj|note_by_user:request.user %}
<a class="button green icon-note {% if note %}active{% endif %} note-button" href="/conference/add-note/{{ obj.url }}/">{% trans 'заметка' %}</a>
<div class="note-overlay">
<form action="">
<textarea name="note_text" class="note-text"> {{ note }}</textarea>
</form>
</div>
{% endwith %}
</div>
{% if request.user.is_admin %}
<div class="note-wrap">
<a class="button green " href="/admin/conference/{{ obj.url }}/">{% trans 'изменить' %}</a>
</div>
{% endif %}
<div></div>
</div>
<div class="cli-s-buttons">
{% include 'client/buttons/booking_button.html' with object=obj %}
</div>
</div>
</div>
<footer class="clearfix">
<div class="cli-stats">
{% if obj.visitors %}
<span class="visitors" title="Посетители">{{ obj.visitors }}</span>
{% endif %}
{% if obj.members %}
<span class="participants" title="Участники">{{ obj.members }}</span>
{% endif %}
</div>
<div class="cli-tags">
{% include 'client/includes/exposition/tags.html' with obj=obj %}
</div>
</footer>
</li>
{% if forloop.counter == 8 %}
<!-- Яндекс.Директ -->
<script type="text/javascript">
yandex_partner_id = 58151;
yandex_site_bg_color = 'FFFFFF';
yandex_ad_format = 'direct';
yandex_font_size = 1;
yandex_direct_type = 'horizontal';
yandex_direct_border_type = 'block';
yandex_direct_limit = 3;
yandex_direct_title_font_size = 3;
yandex_direct_border_radius = true;
yandex_direct_links_underline = false;
yandex_direct_header_bg_color = 'FEEAC7';
yandex_direct_bg_color = 'FFF9F0';
yandex_direct_border_color = 'FBE5C0';
yandex_direct_title_color = '666666';
yandex_direct_url_color = '000000';
yandex_direct_text_color = '000000';
yandex_direct_hover_color = 'FF3333';
yandex_direct_sitelinks_color = '666666';
yandex_direct_favicon = false;
yandex_no_sitelinks = false;
document.write('<scr'+'ipt type="text/javascript" src="//an.yandex.ru/system/context.js"></scr'+'ipt>');
</script>
{%endif %}
{% endfor %}
{% endwith %}
</ul>
{% with objects=object_list %}
{% if objects %}
<ul class="cat-list cl-exhibitions">
{% for obj in objects %}
<li class="cl-item {% if obj.canceled %}canceled{% endif %}">
<div class="cl-item-wrap clearfix">
<a href="{{ obj.get_permanent_url }}">
{% if obj.canceled %}
<div class="cancel"></div>
{% else %}
{% if obj.expohit %}
<div class="hit"></div>
{% endif %}
{% endif %}
<div class="cli-pict">
{% with obj=obj %}
{% include 'client/includes/show_logo.html' %}
{% endwith %}
</div>
</a>
<div class="cli-info">
<div class="cli-top clearfix">
{% if obj.quality_label.ufi.is_set %}
<div class="cli-approved">
<img src="{% static 'client/img/approved-logo.png' %}" alt="" title="Approved Event" />
</div>
{% endif %}
<header>
<div class="cli-title"><a href="{{ obj.get_permanent_url }}">{{ obj.name|safe }}</a></div>
</header>
<div class="cli-descr">
{{ obj.main_title|safe }}
</div>
</div>
<div class="cli-bot clearfix">
<div class="cli-date">
{% with obj=obj %}
{% include 'client/includes/show_date_block.html' %}
{% endwith %}
</div>
{% if obj.country %}
<div class="cli-place">
<a href="{{ obj.catalog }}country/{{ obj.country.url }}/">{{ obj.country }}</a>, <a href="{{ obj.catalog }}city/{{ obj.city.url }}/">{{ obj.city }}</a>
{% if obj.place %}
, <a href="/places/{{ obj.place.url }}/">{{ obj.place }}</a>
{% endif %}
</div>
{% endif %}
</div>
</div>
<div class="cli-buttons clearfix">
<div class="cli-m-buttons">
{% include 'client/includes/exposition/services.html' with obj=obj %}
{% include 'client/includes/calendar_button.html' with obj=obj%}
<div class="{% if request.user.is_authenticated%}note-wrap{% else %}note-wrap-disabled{% endif %}">
{% with note=obj|note_by_user:request.user %}
<a class="button green icon-note {% if note %}active{% endif %} note-button" href="/conference/add-note/{{ obj.url }}/">{% trans 'заметка' %}</a>
<div class="note-overlay">
<form action="">
<textarea name="note_text" class="note-text"> {{ note }}</textarea>
</form>
</div>
{% endwith %}
</div>
{% if request.user.is_admin %}
<div class="note-wrap">
<a class="button green " href="/admin/conference/{{ obj.url }}/">{% trans 'изменить' %}</a>
</div>
{% endif %}
<div></div>
</div>
<div class="cli-s-buttons">
{% include 'client/buttons/booking_button.html' with object=obj %}
</div>
</div>
</div>
<footer class="clearfix">
<div class="cli-stats">
{% if obj.visitors %}
<span class="visitors" title="Посетители">{{ obj.visitors }}</span>
{% endif %}
{% if obj.members %}
<span class="participants" title="Участники">{{ obj.members }}</span>
{% endif %}
</div>
<div class="cli-tags">
{% include 'client/includes/exposition/tags.html' with obj=obj %}
</div>
</footer>
</li>
{% if forloop.counter == 8 %}
<!-- Яндекс.Директ -->
<script type="text/javascript">
yandex_partner_id = 58151;
yandex_site_bg_color = 'FFFFFF';
yandex_ad_format = 'direct';
yandex_font_size = 1;
yandex_direct_type = 'horizontal';
yandex_direct_border_type = 'block';
yandex_direct_limit = 3;
yandex_direct_title_font_size = 3;
yandex_direct_border_radius = true;
yandex_direct_links_underline = false;
yandex_direct_header_bg_color = 'FEEAC7';
yandex_direct_bg_color = 'FFF9F0';
yandex_direct_border_color = 'FBE5C0';
yandex_direct_title_color = '666666';
yandex_direct_url_color = '000000';
yandex_direct_text_color = '000000';
yandex_direct_hover_color = 'FF3333';
yandex_direct_sitelinks_color = '666666';
yandex_direct_favicon = false;
yandex_no_sitelinks = false;
document.write('<scr'+'ipt type="text/javascript" src="//an.yandex.ru/system/context.js"></scr'+'ipt>');
</script>
{%endif %}
{% endfor %}
</ul>
{% else %}
<p class="message-not-found">
<span class="message">
{% trans "Конференции по указанным параметрам не найдены. Попробуйте задать менее точный запрос по теме или расширить период времени" %}
</span>
</p>
{% endif %}
{% endwith %}
{% block scripts %}
{% if request.GET.debug == '1' %}
<script src="{% static 'client/js/_modules/block.exposition.list.js' %}"></script>

@ -3,26 +3,14 @@
<div class="i-steps">
<div class="is-title">{% if event.catalog == '/expo/' %}{% trans 'Участвовать в выставке' %}{% else %}{% trans 'Посетить конференцию' %}{% endif %}</div>
<ul>
{% if event.country_id in sng_countries %}
<li class="s1">
<div class="label">1. {% trans 'Участвовать в событии' %}</div>
<a class="step"
href="{{ event.get_permanent_url }}service/participation/"
target="_blank">
{% trans 'Участвовать' %}
</a>
</li>
{% else %}
<li class="s1">
<div class="label">1. {% trans 'Зарегистрируйтесь на событие' %}</div>
<a class="step"
href="{% if event.registration_link %}{{ registration_link }}{% else %}{{ event.get_permanent_url }}service/tickets/{% endif %}"
target="_blank">
{% if event.catalog == '/expo/' %}{% trans 'Билеты на выставку' %}{% else %}{% trans 'Регистрация' %}{% endif %}
</a>
</li>
{% endif %}
<li class="s1">
<div class="label">{% if event.catalog == '/expo/' %}{% trans 'Создайте уникальную концепцию' %}{% else %}{% trans 'Зарегистрируйтесь на событие' %}{% endif %}</div>
<a class="step"
href="{% if event.registration_link %}{{ registration_link }}{% else %}{{ event.get_permanent_url }}service/tickets/{% endif %}"
target="_blank">
{% if event.catalog == '/expo/' %}{% trans 'Заявка на участие' %}{% else %}{% trans 'Регистрация' %}{% endif %}
</a>
</li>
<li class="s2">
<div class="label">{% trans 'Забронируйте отель по лучшей цене' %}</div>

@ -1,8 +1,10 @@
{% load static %}
{% load i18n %}
{% load template_filters %}
{% with objects=object_list %}
{% if objects %}
<ul class="cat-list cl-exhibitions">
{% with objects=object_list %}
{% for obj in objects %}
<li class="cl-item {% if obj.canceled %}canceled{% endif %}">
<div class="cl-item-wrap clearfix">
@ -119,8 +121,20 @@
</script>
{%endif %}
{% endfor %}
{% endwith %}
</ul>
{% else %}
<p class="message-not-found">
<span class="message">
{% trans "Выставки по указанным параметрам не найдены. Попробуйте задать менее точный запрос по теме или расширить период времени" %}
</span>
</p>
{% endif %}
{% endwith %}
{% block scripts %}
{% if request.GET.debug == '1' %}
<script src="{% static 'client/js/_modules/block.exposition.list.js' %}"></script>

@ -1,56 +1,53 @@
{% load static %}
{% load i18n %}
<ul class="cat-list cl-places">
{% for object in object_list %}
<li class="cl-item" {% if forloop.counter == 1 %}style="border:1px solid #ff6600;"{% else %}{% endif %}>
<div class="cl-item-wrap clearfix">
<a href="{{ object.get_permanent_url }}">
<div class="cli-pict">
{% with obj=object %}
{% include 'client/includes/show_logo.html' %}
{% endwith %}
{% with objects=object_list %}
<ul class="cat-list cl-places">
{% for object in object_list %}
<li class="cl-item" {% if forloop.counter == 1 %}style="border:1px solid #ff6600;"{% else %}{% endif %}>
<div class="cl-item-wrap clearfix">
<a href="{{ object.get_permanent_url }}">
<div class="cli-pict">
{% with obj=object %}
{% include 'client/includes/show_logo.html' %}
{% endwith %}
</div>
</a>
<div class="cli-info">
<div class="cli-top clearfix">
<header>
<div class="cli-title"><a href="{{ object.get_permanent_url }}">{{ object.name|safe }}</a></div>
<!--<div class="cli-rate">{{ object.rating }}</div>-->
</header>
<div class="cli-descr">{{ object.get_type }}</div>
</div>
<div class="cli-bot clearfix">
{% if object.total_area %}
<div class="cli-dim">{{ object.total_area }} м2</div>
{% endif %}
<div class="cli-place"><a href="/places/country/{{ object.country.url }}/">{{ object.country }}</a>, <a href="/places/city/{{ object.city.url }}/">{{ object.city }}</a>
</div>
</div>
</div>
</a>
<div class="cli-info">
<div class="cli-top clearfix">
<header>
<div class="cli-title"><a href="{{ object.get_permanent_url }}">{{ object.name|safe }}</a></div>
<!--<div class="cli-rate">{{ object.rating }}</div>-->
</header>
<div class="cli-descr">{{ object.get_type }}</div>
</div>
<div class="cli-bot clearfix">
{% if object.total_area %}
<div class="cli-dim">{{ object.total_area }} м2</div>
{% endif %}
<div class="cli-place"><a href="/places/country/{{ object.country.url }}/">{{ object.country }}</a>, <a href="/places/city/{{ object.city.url }}/">{{ object.city }}</a>
</div>
</div>
</div>
<div class="cli-buttons clearfix">
<div class="cli-m-buttons">
<a class="button icon-info" href="{{ object.get_permanent_url }}">{% trans 'описание' %}</a>
{% if object.get_events_number %}
<a class="button green icon-list" href="#">{% trans 'события' %} ({{ object.get_events_number }})</a>
{% endif %}
{% if object.photogallery %}
<a class="button blue icon-photo" href="{{ object.get_permanent_url }}photo/">{% trans 'фото' %}</a>
{% endif %}
</div>
<div class="cli-s-buttons">
<a class="button blue2 lc" target="_blank" href="http://www.booking.com/searchresults.html?aid={{ book_aid }}&city={{ object.city.id }}">{% trans 'Найти отели поблизости' %}</a>
</div>
</div>
</li>
{% endfor %}
</ul>
<div class="cli-buttons clearfix">
<div class="cli-m-buttons">
<a class="button icon-info" href="{{ object.get_permanent_url }}">{% trans 'описание' %}</a>
{% if object.get_events_number %}
<a class="button green icon-list" href="#">{% trans 'события' %} ({{ object.get_events_number }})</a>
{% endif %}
{% if object.photogallery %}
<a class="button blue icon-photo" href="{{ object.get_permanent_url }}photo/">{% trans 'фото' %}</a>
{% endif %}
</div>
<div class="cli-s-buttons">
<a class="button blue2 lc" target="_blank" href="http://www.booking.com/searchresults.html?aid={{ book_aid }}&city={{ object.city.id }}">{% trans 'Найти отели поблизости' %}</a>
</div>
</div>
</li>
{% endfor %}
</ul>
{% endwith %}

@ -23,6 +23,7 @@
{% block page_title %}
<div class="page-title">
<h1>{% if meta %}{{ meta.h1 }}{% else %}{% trans 'Посещение выставки' %} {% if object %}{{ object.name }}{% endif %}{% endif %}</h1>
{{ form.errors }}
</div>
{% endblock %}
@ -150,28 +151,17 @@
<div class="rq-s-line">
<div class="mf-field full-width">
<input type="text" name="languages" id="id_languages" placeholder="{% trans 'Знание языков' %}"/>
{{ form.languages }}
</div>
</div>
<div class="rq-s-line">
<!-- todo: сделать input:text-->
<div class="c-select-box select" data-placeholder="{% trans 'Тематика' %}">
<div class="csb-selected-items"></div>
<div class="csb-menu-wrap">
<div class="scroll-container csb-menu">
<div class="scroll-content clearfix">
<ul>
</ul>
</div>
</div>
</div>
<div class="mf-field full-width">
{{ form.themes }}
</div>
</div>
<div class="rq-s-line">

@ -50,7 +50,7 @@
</div>
<div class="rq-form service-page" {% if form.errors %}style="display:block"{% endif %}>
{{ form.errors }}
{% comment %}{{ form.errors }}{% endcomment %}
<form method="post">{% csrf_token %}
<hr />
@ -62,11 +62,12 @@
<div class="mf-line cols-2 rq-trans">
<div class="mf-field">
<input id="id_languages" name="languages" placeholder="{% trans 'Знание языков' %}" type="text">
<input id="id_languages" name="languages" placeholder="{% trans 'Знание языков' %}" type="text" value="{{ form.languages.value }}">
</div>
<div class="mf-field">
<input id="id_themes" name="themes" placeholder="{% trans 'Тематика' %}" type="text">
<input id="id_themes" name="themes" placeholder="{% trans 'Тематика' %}" type="text" value="{{ form.themes.value }}">
</div>
</div>
@ -86,13 +87,21 @@
<label>{% trans 'Даты работы' %}:</label>
<div class="mf-field">
<div class="period">
<div class="pwf-field">
<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">
<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>
@ -183,7 +192,7 @@
</form>
</div>
<div class="rq-btn-wrap rq-btn-to-hide">
<div class="rq-btn-wrap rq-btn-to-hide rq-to-hide">
<div class="rqb-cols">
<div class="rqb-button">

@ -13761,3 +13761,15 @@ hr + .rq-note {
background-position: -74px 0;
}
/**************************\
# форма "отправить заявку"
\**************************/
.period .pwf-field .error-blob{
line-height: 18px;
}
.service-page .period .pwf-field.error-field:before{
margin-right: 13px;
margin-top: -8px;
}

@ -577,17 +577,24 @@ if (EXPO.searchBlock){
}
};
// var newData = ['banan','banan2','banan3','banan4','banan5'];
/**
* the ID value of the timer that is set
*/
self.timeout;
self.$inputFilter.attr('autocomplete', 'on');
self.$inputFilter.on('keyup', function (event) {
text = $(this).val();
event.stopImmediatePropagation();
clearTimeout(self.timeout);
if (text.length > 2 && firstComplete){
getRequest({'term':text, 'form':form}, self.opt.autoCompleteUrl, requestHandler);
firstComplete = false;
self.timeout = setTimeout(function () {
getRequest({'term':text, 'form':form}, self.opt.autoCompleteUrl, requestHandler);
firstComplete = false;
}, 1000);
}else if(text.length == 0 && !firstComplete){
if(self.$inputFilter.hasClass('ui-autocomplete-input')){
@ -1604,17 +1611,24 @@ if (EXPO.searchBlock){
}
};
// var newData = ['banan','banan2','banan3','banan4','banan5'];
/**
* the ID value of the timer that is set
*/
self.timeout;
self.$inputFilter.attr('autocomplete', 'on');
self.$inputFilter.on('keyup', function (event) {
text = $(this).val();
event.stopImmediatePropagation();
clearTimeout(self.timeout);
if (text.length > 2 && firstComplete){
getRequest({'term':text, 'form':form}, self.opt.autoCompleteUrl, requestHandler);
firstComplete = false;
self.timeout = setTimeout(function () {
getRequest({'term':text, 'form':form}, self.opt.autoCompleteUrl, requestHandler);
firstComplete = false;
}, 1000);
}else if(text.length == 0 && !firstComplete){
if(self.$inputFilter.hasClass('ui-autocomplete-input')){
@ -1996,14 +2010,20 @@ if (EXPO.searchBlock){
}
}
};
this.completeName = 'autocomplete',
this.firstComplete = true;
this.completeName = 'autocomplete';
this.firstComplete = true;
this.$field.attr('autocomplete','off');
/**
* the ID value of the timer that is set
*/
this.timeout;
//autocomplete behaviour
self.$field.on('keyup', function (event) {
var reqObj;
text = $(this).val();
event.stopImmediatePropagation();
clearTimeout(self.timeout);
if(self.dataForm){
reqObj = {
'term':text,
@ -2016,15 +2036,18 @@ if (EXPO.searchBlock){
}
if(self.opt.anyChar){
if (text.length > 2){
getRequest(reqObj, self.opt.autoCompleteUrl, function (data) {
if(self.$field.hasClass('ui-autocomplete-input')){
self.$field[self.completeName]( "destroy" );
self.timeout = setTimeout(function () {
getRequest(reqObj, self.opt.autoCompleteUrl, function (data) {
if(self.$field.hasClass('ui-autocomplete-input')){
self.$field[self.completeName]( "destroy" );
}
self.rawData.set(data);
self._initAutoComplete();
self.showList('');
});
}, 1000);
}
self.rawData.set(data);
self._initAutoComplete();
self.showList('');
});
} else if(text.length === 0){
if(self.$field.hasClass('ui-autocomplete-input')){
self.$field[self.completeName]( "destroy" );
@ -2034,14 +2057,15 @@ if (EXPO.searchBlock){
}
}else{
if (text.length > 2 && firstComplete){
getRequest(reqObj, self.opt.autoCompleteUrl, function (data) {
self.timeout = setTimeout(function () {
getRequest(reqObj, self.opt.autoCompleteUrl, function (data) {
self.rawData.set(data);
self._initAutoComplete();
self.showList('');
});
firstComplete = false;
}, 1000);
self.rawData.set(data);
self._initAutoComplete();
self.showList('');
// self.DOMcompleteWrap.addClass('full-visible');
});
firstComplete = false;
}else if(text.length == 0 && !firstComplete){
if(self.$field.hasClass('ui-autocomplete-input')){

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save