service, js for buttons

remotes/origin/1203
Nazar Kotyuk 12 years ago
parent 7386707fb0
commit c1e4e2c9c6
  1. 1
      accounts/models.py
  2. 10
      exposition/management/commands/exposition_load.py
  3. 9
      exposition/urls.py
  4. 153
      exposition/views.py
  5. 4
      functions/custom_views.py
  6. 1
      media/import/.~lock.expositions_ru.xlsx#
  7. 1
      media/import/.~lock.places_ru.xlsx#
  8. BIN
      media/import/Places Eng Upd.xlsx
  9. 29
      organiser/event_forms.py
  10. 7
      organiser/urls.py
  11. 16
      organiser/views.py
  12. 1
      proj/urls.py
  13. 11
      service/forms.py
  14. 80
      service/models.py
  15. 198
      service/order_forms.py
  16. 19
      service/views.py
  17. 26
      settings/templatetags/template_filters.py
  18. 1
      static/client/css/main.css
  19. 40
      static/client/js/main.js
  20. 15
      templates/client/includes/calendar_button.html
  21. 15
      templates/client/includes/event_list.html
  22. 13
      templates/client/includes/event_object.html
  23. 6
      templates/client/includes/event_steps.html
  24. 39
      templates/client/includes/header.html
  25. 15
      templates/client/includes/visit_button.html
  26. 305
      templates/client/organiser/add_event.html
  27. 80
      templates/client/service/catalog.html
  28. 84
      templates/client/service/participation.html
  29. 75
      templates/client/service/remotely.html
  30. 78
      templates/client/service/tickets.html
  31. 126
      templates/client/service/tour.html
  32. 80
      templates/client/service/translator.html

@ -82,6 +82,7 @@ class UserManager(BaseUserManager):
user.save(using=self._db)
return user
def safe_get(self, **kwargs):
model = self.model
try:

@ -22,7 +22,7 @@ def to_country(value):
try:
#query = get_translation_aware_manager(Country)
#country = query.filter(name=value)[0]
country = Country.objects.filter(translations__name=value)[0]
country = Country.objects.filter(translations__name=value.strip())[0]
return country
except IndexError:
return None
@ -32,7 +32,7 @@ def to_city(value, lang, country):
# get city by name
#objects = get_translation_aware_manager(City)
# except IndexError if no found
city = City.objects.filter(translations__name=value, country=country)[0]
city = City.objects.filter(translations__name=value.strip(), country=country)[0]
return city
except IndexError:
return None
@ -283,11 +283,12 @@ event_sett = {
class Command(BaseCommand):
def handle(self, *args, **options):
f = open(settings.MEDIA_ROOT+'/import/expositions_ru.xlsx', 'r')
f = open(settings.MEDIA_ROOT+'/import/Places Eng Upd.xlsx', 'r')
book = xlrd.open_workbook(file_contents=f.read())
sheet = book.sheet_by_index(0)
row_list = [sheet.row_values(row_number) for row_number in range(sheet.nrows)]
labels = [label for label in row_list[0]]
print(123)
@ -368,12 +369,15 @@ class Command(BaseCommand):
if not flag:
object.save()
"""
try:
print('pre save %s'% str(object))
object.save()
except:
print('saving error')
continue
"""
print('post save %s'% str(object))
else:
print('bad city')

@ -3,11 +3,16 @@ from django.conf.urls import patterns, include, url
from views import ExpositionView, ExpositionVisitors, ExpositionMembers, ExpositionStatistic, ExpositionPrice,\
ExpositionProgramme, ExpositionSearchView
from views import ExpositionServiceView
urlpatterns = patterns('',
url(r'expositions/search/', ExpositionSearchView.as_view()),
url(r'expositions/search/', ExpositionSearchView.as_view()),
url(r'expositions/(?P<params>.*)/(?P<page>\d+)/$', ExpositionView.as_view()),
url(r'expositions/(?P<page>\d+)/$', ExpositionView.as_view()),
#
url(r'expositions/(?P<params>.*)/service/(?P<url>.*)/$', ExpositionServiceView.as_view()),
url(r'expositions/(?P<params>.*)/statistic/$', ExpositionStatistic.as_view()),
url(r'expositions/(?P<params>.*)/price/$', ExpositionPrice.as_view()),
url(r'expositions/(?P<params>.*)/program/$', ExpositionProgramme.as_view()),
@ -18,8 +23,6 @@ urlpatterns = patterns('',
url(r'expositions/$', ExpositionView.as_view()),
#
url(r'exposition-add-calendar/(?P<id>\d+)/$', 'exposition.views.exposition_add_calendar'),
url(r'exposition-remove-calendar/(?P<id>\d+)/$', 'exposition.views.exposition_remove_calendar'),
url(r'exposition-visit/(?P<id>\d+)/$', 'exposition.views.exposition_visit'),
url(r'exposition-unvisit/(?P<id>\d+)/$', 'exposition.views.exposition_unvisit'),
)

@ -1,20 +1,114 @@
# -*- coding: utf-8 -*-
from django.shortcuts import render_to_response
from django.http import HttpResponseRedirect, HttpResponse
from django.template import RequestContext
from django.shortcuts import get_object_or_404
from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage
from django.contrib import messages
#models
from models import Exposition
from accounts.models import User
from functions.custom_views import ExpoListView, ExpoMixin, EventDetail
from django.views.generic import ListView, DetailView
from functions.custom_views import ExpoListView, ExpoMixin, EventDetail, single_page_filter
from django.views.generic import ListView, DetailView, FormView
from haystack.query import EmptySearchQuerySet
from functions.search_forms import ExpositionSearchForm
from service.views import order_forms
from django.shortcuts import get_object_or_404
from django.http import Http404
#
from service.models import Service
from country.models import Country
from city.models import City
from company.models import Company
from theme.models import Theme, Tag
import json
from django.utils.translation import ugettext as _
class ExpositionServiceView(FormView, ExpoMixin):
params = None
search_form = ExpositionSearchForm
model = Exposition
obj = None
service = None
def get_form_class(self):
url = self.kwargs.get('url')
form = order_forms.get(url)
if not form:
raise Http404
service = get_object_or_404(Service, url=url)
self.service = service
self.template_name = service.template
params = self.get_params()
for param in params:
if param.get('type') == 'country':
country = Country.objects.safe_get(url=param.get('url'))
if country:
param['name'] = country.name
if param.get('type') == 'city':
city = City.objects.safe_get(url=param.get('url'))
if city:
param['name'] = city.name
if param.get('type') == 'theme':
theme = Theme.objects.safe_get(url=param.get('url'))
if theme:
param['name'] = theme.name
if param.get('type') == 'tag':
tag = Tag.objects.safe_get(url=param.get('url'))
if tag:
param['name'] = tag.name
if param.get('type') == 'year':
param['name'] = param.get('url')
if param.get('type') == 'month':
monthes = {'jan': 1, 'feb': 2, 'mar': 3, 'apr': 4, 'may': 5, 'jun': 6,
'jul': 7, 'aug': 8, 'sep': 9, 'oct': 10, 'nov': 11, 'dec': 12}
param['name'] = param.get('url')
if param.get('type') == 'member' and self.model != Company:
param['name'] = param.get('url')
company = Company.objects.safe_get(url=param.get('url'))
if company:
param['name'] = company.name
if param.get('type') == single_page_filter.get(self.model):
try:
self.obj = self.model.objects.get(url=param.get('url'))
except self.model.DoesNotExist:
raise Http404
param['name'] = self.obj.name
params.append({'type':'service', 'name':service.name})
self.params = params
return form
def get_context_data(self, **kwargs):
context = super(ExpositionServiceView, self).get_context_data(**kwargs)
context['search_form'] = ExpositionSearchForm()
context['search_action'] = '/expositions/search/'
context['event'] = self.obj
context['service'] = self.service
context['filter'] = self.params
return context
def form_valid(self, form):
form.save()
messages.success(self.request, _(u'Ваш запрос был успешно отправлен'))
return HttpResponseRedirect(self.request.path)
#def form_invalid(self, form):
# return HttpResponse(form.errors)
class ExpositionSearchView(ListView):
paginate_by = 2
template_name = 'exposition/search.html'
@ -145,29 +239,17 @@ def exposition_add_calendar(request, id):
if user.is_authenticated():
exp = Exposition.objects.safe_get(id=id)
if exp:
if exp in user.calendar.expositions.all():
user.calendar.expositions.remove(exp)
args['in'] = False
else:
user.calendar.expositions.add(exp)
args['success'] = True
else:
args['not_authorized'] = True
args['in'] = True
args['success'] = True
return HttpResponse(json.dumps(args), content_type='application/json')
def exposition_remove_calendar(request, id):
args = {'success': False}
user = request.user
if user.is_authenticated():
exp = Exposition.objects.safe_get(id=id)
if exp:
user.calendar.expositions.remove(exp)
args['success'] = True
else:
args['not_authorized'] = True
args['success'] = True
return HttpResponse(json.dumps(args), content_type='application/json')
def exposition_visit(request, id):
@ -175,23 +257,20 @@ def exposition_visit(request, id):
user = request.user
if user.is_authenticated():
exp = Exposition.objects.safe_get(id=id)
if exp:
if user in exp.users.all():
exp.users.remove(user)
args['in'] = False
else:
exp.users.add(user)
args['success'] = True
args['in'] = True
else:
args['not_authorized'] = True
args['success'] = True
return HttpResponse(json.dumps(args), content_type='application/json')
def exposition_unvisit(request, id):
args = {'success': False}
user = request.user
if user.is_authenticated():
exp = Exposition.objects.safe_get(id=id)
"""
if exp:
exp.users.remove(user)
exp.users.add(user)
args['success'] = True
"""
else:
args['not_authorized'] = True
args['success'] = True

@ -218,6 +218,10 @@ class ExpoMixin(object):
single_page_filter = {Exposition:'event', Conference:'event', Seminar:'event', Webinar:'event', Company:'member',
User:'visitor', Photoreport: 'photoreport'}
class ExpoListView(ExpoMixin, ListView):
"""
"""

@ -1 +0,0 @@
kotzilla ,kotzilla,kotzilla-Satellite-L300,27.05.2014 19:59,file:///home/kotzilla/.config/libreoffice/3;

@ -1 +0,0 @@
kotzilla ,kotzilla,kotzilla-Satellite-L300,27.05.2014 19:16,file:///home/kotzilla/.config/libreoffice/3;

Binary file not shown.

@ -0,0 +1,29 @@
# -*- coding: utf-8 -*-
from django import forms
from theme.models import Theme
from country.models import Country
from django.utils.translation import ugettext as _
class AddEventForm1(forms.Form):
event_type = forms.ChoiceField(choices=[])
theme = forms.ModelMultipleChoiceField(queryset=Theme.objects.all(), label=_(u'Тематика'))
tag = forms.CharField(widget=forms.SelectMultiple(), label=_(u'Теги'), required=False)
name = forms.CharField(label=_(u'Имя'),
widget=forms.TextInput(attrs={'placeholder':_(u'Введите назввание выставки')}))
main_title = forms.CharField(label=_(u'Краткое описание'), required=False,
widget=forms.TextInput(attrs={'placeholder':_(u'Краткое описание выставки (необязательно)')}))
description = forms.CharField(label=_(u'Полное описание'), required=False,
widget=forms.Textarea(attrs={'placeholder':_(u'Полное описание выставки')}))
date_begin = forms.DateTimeField(label=_(u'c'))
date_begin = forms.DateTimeField(label=_(u'по'))
country = forms.ModelChoiceField(label=_(u'Страна'),queryset=Country.objects.all())
city = forms.CharField(label=_(u'Город'), widget=forms.SelectMultiple())
place = forms.CharField(label=_(u'Локация'), required=False)
audience = forms.MultipleChoiceField(label=_(u'Аудитория'), choices=[], required=False)
periodic = forms.ChoiceField(label=_(u'Периодичность'), choices=[], required=False)
quality_label = forms.MultipleChoiceField(label=_(u'Членства и знаки качества'), choices=[], required=False)
web_page = forms.URLField(label=_(u'Веб сайт'), required=False)
products = forms.CharField(label=_(u'Экспонируемые продукты'), required=False,
widget=forms.TextInput())
logo = forms.ImageField(label=_(u'Логотип'), required=False)

@ -0,0 +1,7 @@
from django.conf.urls import patterns, include, url
from views import AddEventView
urlpatterns = patterns('',
url(r'add-event/$', AddEventView.as_view()),
)

@ -0,0 +1,16 @@
# -*- coding: utf-8 -*-
from django.http import HttpResponseRedirect, HttpResponse
#models
from functions.custom_views import ExpoListView, ExpoMixin, EventDetail
from django.views.generic import ListView, DetailView
from haystack.query import EmptySearchQuerySet
from functions.search_forms import ExpositionSearchForm
from django.views.generic import FormView, TemplateView
from event_forms import AddEventForm1
#
import json
from django.utils.translation import ugettext as _
class AddEventView(FormView):
template_name = 'organiser/add_event.html'
form_class = AddEventForm1

@ -15,6 +15,7 @@ urlpatterns = patterns('',
url(r'^', include('webinar.urls')),
url(r'^', include('company.urls')),
url(r'^', include('photoreport.urls')),
url(r'^organiser/', include('organiser.urls')),
url(r'^', include('file.urls')),

@ -26,9 +26,11 @@ class ServiceForm(forms.Form):
# city = forms.MultipleChoiceField(required=False, choices="")
url = forms.CharField(label='url', required=False)
price = forms.IntegerField(label='Цена', required=False,
widget=forms.TextInput(attrs={'placeholder':'Валюта'}))
#price = forms.CharField(label='Цена', required=False,
# widget=forms.TextInput(attrs={'placeholder':'Валюта'}))
price = forms.CharField(label='Цена', required=False,
widget=forms.TextInput(attrs={'placeholder':'Цена'}))
currency_list = [('USD','USD'), ('EUR','EUR'), ('RUB','RUB')]
currency = forms.ChoiceField(choices=currency_list)
@ -70,9 +72,10 @@ class ServiceForm(forms.Form):
service.url = translit_with_separator(data['url']).lower() if data['url']\
else translit_with_separator(data['name_ru'].lower())
service.price = data['price']+' '+data['currency']#%s %s'%(data['price'], data['currency'])
# uses because in the next loop data will be overwritten
#service.price = data['price']+' '+data['currency']#%s %s'%(data['price'], data['currency'])
service.price = data['price']
service.currency = data['currency']
fill_with_signal(Service, service, data)

@ -1,12 +1,16 @@
# -*- coding: utf-8 -*-
from django.db import models
from hvad.models import TranslatableModel, TranslatedFields
from functions.custom_fields import EnumField
CURENCIES = ('USD', 'RUB', 'EUR')
class Service(TranslatableModel):
url = models.SlugField(unique=True)
price = models.CharField(max_length=20, blank=True)
currency = EnumField(values=CURENCIES, blank=True, default='USD')
price = models.PositiveIntegerField(blank=True, null=True)
params = models.CharField(max_length=255, blank=True)
template = models.CharField(max_length=255, blank=True)
#translated fields
@ -33,8 +37,76 @@ class Service(TranslatableModel):
return '/service/%s/'%self.url
from django.db.models.signals import post_save
from functions.signal_handlers import post_save_handler
post_save.connect(post_save_handler, sender=Service)
post_save.connect(post_save_handler, sender=Service)
class AbstractOrder(models.Model):
person = models.ForeignKey('accounts.User')
phone = models.BigIntegerField()
city = models.CharField(max_length=255)
country = models.CharField(max_length=255)
person_inf = models.CharField(max_length=255)
price = models.IntegerField(blank=True, null=True)
currency = EnumField(values=CURENCIES, blank=True)
exposition = models.ForeignKey('exposition.Exposition', null=True)
conference = models.ForeignKey('conference.Conference', null=True)
seminar = models.ForeignKey('seminar.Seminar', null=True)
class Meta:
abstract = True
class Catalog(AbstractOrder):
pass
class Tickets(AbstractOrder):
days = models.SmallIntegerField()
people = models.SmallIntegerField()
class Remote(AbstractOrder):
interested_participants = models.TextField(blank=True)
additional = models.CharField(max_length=255)
class Participation(AbstractOrder):
area = models.IntegerField(null=True)
area_type = models.CharField(max_length=255)
company_inf = models.TextField()
class Translation(AbstractOrder):
days = models.IntegerField()
hours = models.IntegerField()
fr = models.DateField()
to = models.DateField()
languages = models.TextField()
themes = models.TextField()
class Visit(AbstractOrder):
fr = models.DateField()
to = models.DateField()
people = models.IntegerField()
hotel_additional = models.TextField(blank=True)
city_from = models.CharField(max_length=255, blank=True)
hotel_stars = models.CharField(max_length=30, blank=True)
hotel_location = models.CharField(max_length=255, blank=True)
hotel_budget = models.CharField(max_length=255, blank=True)
hotel_budget_add = models.CharField(max_length=255, blank=True)
avia_tickets = models.BooleanField()
avia_type = models.CharField(max_length=255)
visa = models.BooleanField()
transfer = models.BooleanField()
event_tickets = models.BooleanField()
#
translator = models.BooleanField()
languages = models.CharField(max_length=255, blank=True)
themes = models.CharField(max_length=255, blank=True)
tr_employment_days = models.PositiveIntegerField(blank=True, null=True)
tr_employment_hours = models.PositiveIntegerField(blank=True, null=True)
excursion = models.BooleanField()
notes = models.TextField(blank=True)

@ -0,0 +1,198 @@
# -*- coding: utf-8 -*-
from django import forms
from django.utils.translation import ugettext as _
from accounts.models import User
from models import Catalog, Tickets, Remote, Participation, Translation, Visit, CURENCIES
from exposition.models import Exposition
from conference.models import Conference
from seminar.models import Seminar
class AbstractOrderForm(forms.ModelForm):
person_inf = forms.CharField(widget=forms.TextInput(attrs={'placeholder': _(u'Контактное лицо')}))
country = forms.CharField(widget=forms.TextInput(attrs={'placeholder': _(u'Страна')}))
city = forms.CharField(widget=forms.TextInput(attrs={'placeholder': _(u'Город')}))
phone = forms.CharField(widget=forms.TextInput(attrs={'placeholder': _(u'Контактный номер телефона')}))
person = forms.EmailField(widget=forms.TextInput(attrs={'placeholder': _(u'Электронная почта')}))
currency = forms.CharField(widget=forms.HiddenInput())
exposition = forms.CharField(widget=forms.HiddenInput(), required=False)
conference = forms.CharField(widget=forms.HiddenInput(), required=False)
seminar = forms.CharField(widget=forms.HiddenInput(), required=False)
def clean_exposition(self):
exp_id = self.cleaned_data.get('exposition')
if not exp_id:
return None
try:
return Exposition.objects.get(id=exp_id)
except Exposition.DoesNotExist:
return None
def clean_seminar(self):
sem_id = self.cleaned_data.get('seminar')
if not sem_id:
return None
try:
return Seminar.objects.get(id=sem_id)
except Seminar.DoesNotExist:
return None
def clean_conference(self):
conf_id = self.cleaned_data.get('conference')
if not conf_id:
return None
try:
return Conference.objects.get(id=conf_id)
except Conference.DoesNotExist:
return None
def clean_person(self):
cleaned_data = super(AbstractOrderForm, self).clean()
email = cleaned_data.get('person')
try:
user = User.objects.get(username=email)
except User.DoesNotExist:
fname = ''
lname = ''
person_inf = cleaned_data.get('person_inf')
if person_inf:
person_inf = person_inf.split(' ')
fname = person_inf[0]
lname = ' '.join(person_inf[1:])
user = User.objects.create_user(email, fname, lname)
return user
def clean_phone(self):
cleaned_data = super(AbstractOrderForm, self).clean()
phone = cleaned_data.get('phone')
if not phone:
return
deduct = ('-','(',')','.',' ')
for elem in deduct:
phone = phone.replace(elem, '')
if phone.isdigit():
return phone
else:
raise forms.ValidationError(_(u'Введите правильный телефон'))
class CatalogForm(AbstractOrderForm):
class Meta:
model = Catalog
class TicketsForm(AbstractOrderForm):
class Meta:
model = Tickets
ADDITIONAL_REMOTE_CHOICES = [(_(u'официальный каталог'), _(u'официальный каталог')),
(_(u'фотоотчет'), _(u'фотоотчет')),
(_(u'видеоотчет'), _(u'видеоотчет'))
]
class RemoteForm(AbstractOrderForm):
additional = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple(), choices=ADDITIONAL_REMOTE_CHOICES)
class Meta:
model = Remote
def clean_additional(self):
additional = self.cleaned_data.get('additional')
if not additional:
return ''
else:
return ', '.join(additional)
AREA_TYPE_CHOICES=[(_(u'оборудованная'), _(u'оборудованная')),
(_(u'не оборудованная'), _(u'не оборудованная'))
]
class ParticipationForm(AbstractOrderForm):
area_type = forms.ChoiceField(choices=AREA_TYPE_CHOICES, required=False)
company_inf = forms.CharField(required=False,
widget=forms.Textarea(attrs={'placeholder': _(u'Краткое описание, вид деятельности компании')}))
class Meta:
model = Participation
LANGS = [(_(u'Русский'), _(u'Русский'))]
from theme.models import Theme
class TranslationForm(AbstractOrderForm):
languages = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple(),
choices=LANGS)
themes = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple(),
choices=[(theme.id, theme.id) for theme in Theme.objects.language().filter()])
fr = forms.DateField(widget=forms.DateInput(attrs={'class': 'date dateFrom', 'placeholder': _(u'дд.мм.гггг')}))
to = forms.DateField(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'))]
AVIA_TYPE_CHOICES = [(_(u'Прямой'), _(u'Прямой')), (_(u'С пересадкой'), _(u'С пересадкой')),
(_(u'Бизнес-класс'), _(u'Бизнес-класс')), (_(u'Эконом-класс'), _(u'Эконом-класс'))]
HOTEL_LOCATION_CHOICES = [('', _(u'Выберите')), (_(u'Расположение1'), _(u'Расположение1')),
(_(u'Расположение2'), _(u'Расположение2'))]
HOTEL_BUDGET_ADD = [('', _(u'Выберите')), (_(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'дд.мм.гггг')}))
hotel_additional = forms.ChoiceField(choices=HOTEL_ADDITIONAL_CHOICES, required=False)
hotel_stars = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple(),
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()])
avia_type = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple(),
choices=AVIA_TYPE_CHOICES)
class Meta:
model = Visit
def clean_hotel_stars(self):
hotel_stars = self.cleaned_data.get('hotel_stars')
if not hotel_stars:
return ''
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:
return ''
else:
return ', '.join(avia_type)

@ -5,11 +5,27 @@ from functions.custom_views import ExpoListView
from django.views.generic import ListView, FormView, TemplateView
from haystack.query import EmptySearchQuerySet
from django.shortcuts import get_object_or_404
from django.http import Http404
import json
from functions.search_forms import CompanySearchForm
from order_forms import TranslationForm, CatalogForm, VisitForm, RemoteForm, ParticipationForm, TicketsForm
order_forms = {'translator': TranslationForm, 'catalog': CatalogForm, 'participation': ParticipationForm,
'remote': RemoteForm, 'tickets': TicketsForm, 'visit': VisitForm}
class ServiceView(FormView):
def get_form_class(self):
url = self.kwargs.get('url')
form = order_forms.get(url)
if form:
return form
else:
raise Http404
class ServiceView(TemplateView):
def get_template_names(self):
url = self.kwargs.get('url')
@ -18,4 +34,3 @@ class ServiceView(TemplateView):
return service.template

@ -1,6 +1,16 @@
from django import template
import phonenumbers
import datetime
from datetime import timedelta
from django import template
from dateutil.relativedelta import relativedelta
from exposition.models import Exposition
from conference.models import Conference
from seminar.models import Seminar
from webinar.models import Webinar
from company.models import Company
from photoreport.models import Photoreport
register = template.Library()
@ -36,13 +46,6 @@ def int_format(value, decimal_points=3, seperator=u' '):
def subtract(value, arg):
return value - arg
from exposition.models import Exposition
from conference.models import Conference
from seminar.models import Seminar
from webinar.models import Webinar
from company.models import Company
from photoreport.models import Photoreport
@register.filter
def generate_url(value, arg=None):
@ -75,10 +78,13 @@ def duration(event, month=None):
else:
return event.duration_days()
@register.filter
def in_event(event, day):
beg = event.data_begin
end = event.data_end
beg = datetime.date(beg.year, beg.month, beg.day)
end = datetime.date(end.year, end.month, end.day)
day = datetime.date(day.year, day.month, day.day)
@ -87,7 +93,6 @@ def in_event(event, day):
return True
return False
from dateutil.relativedelta import relativedelta
@register.filter
def add_month(date, month=1):
@ -101,11 +106,6 @@ def in_calendar(event, user):
return True
return False
from datetime import datetime, timedelta
from django import template
from django.utils.timesince import timesince
@register.filter
def timesince_exp(value, date=None):

@ -4109,6 +4109,7 @@ form.s-message {
line-height: 15px;
}
.c-select-box .csb-menu .places-list > ul > li.active > a,
.c-select-box .csb-menu .places-list > ul > li.active > label {
color: #ff6600;
}

@ -81,24 +81,58 @@ function addError(inputId, msg){
});
$('.visit').on('click', function(event){
$('.visit, .unvisit').on('click', function(event){
event.preventDefault();
var $this = $(this);
var url = $(this).attr('href');
$.get(url, function(data){
if (data.not_authorized){
$.fancybox.open('#pw-login');
}
else{
if(data.success){
if(data.in){
if($this.hasClass('visit')){
$this.hide();
$this.siblings('.unvisit').show()
}
}
else{
if($this.hasClass('unvisit')){
$this.hide();
$this.siblings('.visit').show()
}
}
}
}
});
});
$('.addcalendar').on('click', function(event){
$('.addcalendar, .removecalendar').on('click', function(event){
event.preventDefault();
var url = $(this).attr('href');
var $this = $(this);
var url = $this.attr('href');
$.get(url, function(data){
if (data.not_authorized){
$.fancybox.open('#pw-login');
}
else{
if(data.success){
if(data.in){
if($this.hasClass('addcalendar')){
$this.hide();
$this.siblings('.removecalendar').show()
}
}
else{
if($this.hasClass('removecalendar')){
$this.hide();
$this.siblings('.addcalendar').show()
}
}
}
}
});
});

@ -0,0 +1,15 @@
{% load i18n %}
{% load template_filters %}
{% if user.is_authenticated %}
{% if event|in_calendar:user %}
<a style="display:none;" class="button blue icon-calendar addcalendar" href="{{ event.get_calendar_url }}">{% trans 'в расписание' %}</a>
<a class="button blue icon-calendar removecalendar" href="{{ event.get_calendar_url }}">{% trans 'из расписание' %}</a>
{% else %}
<a class="button blue icon-calendar addcalendar" href="{{ event.get_calendar_url }}">{% trans 'в расписание' %}</a>
<a style="display:none;" class="button blue icon-calendar removecalendar" href="{{ event.get_calendar_url }}">{% trans 'из расписание' %}</a>
{% endif %}
{% else %}
<a class="button blue icon-calendar addcalendar" href="{{ event.get_calendar_url }}">{% trans 'в расписание' %}</a>
<a style="display:none;" class="button blue icon-calendar removecalendar" href="{{ event.get_calendar_url }}">{% trans 'из расписание' %}</a>
{% endif %}

@ -78,17 +78,10 @@
</ul>
</div>
</div>
<a class="button blue icon-calendar" href="#">
{% if user.is_authenticated %}
{% if obj|in_calendar:user %}
{% trans 'из расписания' %}
{% else %}
{% trans 'в расписание' %}
{% endif %}
{% else %}
{% trans 'в расписание' %}
{% endif %}
</a>
{% with event=obj user=user %}
{% include 'client/includes/calendar_button.html' %}
{% endwith %}
<a class="button green icon-note" href="#">{% trans 'заметка' %}</a>
</div>

@ -69,8 +69,13 @@
<hr />
<div class="i-buttons clearfix">
<div class="ib-main">
<a class="button icon-check" href="{{ exposition.get_visit_url }}">{% trans 'Я планирую посетить' %}</a>
<a class="button blue icon-calendar" href="{{ exposition.get_calendar_url }}">{% trans 'в расписание' %}</a>
{% with event=exposition user=user %}
{% include 'client/includes/visit_button.html' %}
{% endwith %}
{% with event=exposition user=user %}
{% include 'client/includes/calendar_button.html' %}
{% endwith %}
<a class="button green icon-note" href="#">{% trans 'заметка' %}</a>
</div>
<!--
@ -99,12 +104,12 @@
<div class="i-sub-articles">
<ul>
{% for service in exposition.get_services %}
<li><a href="{{ service.get_permanent_url }}">{{ service.name }}</a></li>
<li><a href="/{{ filter|generate_url }}/service/{{ service.url }}">{{ service.name }}</a></li>
{% endfor %}
</ul>
</div>
{% with event=exposition %}
{% with event=exposition filter=filter %}
{% include 'includes/event_steps.html' %}
{% endwith %}
{% if exposition.get_photos %}

@ -1,11 +1,15 @@
{% load i18n %}
{% load template_filters %}
<div class="i-steps">
<div class="is-title">{% trans 'Посетить выставку' %}</div>
<ul>
<li class="s1">
<div class="label">1. {% trans 'Зарегистрируйтесь на событие' %}</div>
<a class="step" href="#">{% trans 'Билеты на выставку' %}</a>
<a class="step" href="{% if filter %}/{{ filter|generate_url }}/service/visit/{% else %}{{ event.get_permanent_url }}/service/visit/{%endif%}">
{% trans 'Билеты на выставку' %}
</a>
</li>
<li class="s2">

@ -50,23 +50,30 @@
</ul>
{% if user.is_authenticated %}
<div class="cabinet-links">
<div class="cl-body clearfix">
<div class="cl-body clearfix">
{% if user.organiser %}
<ul class="clb-menu">
<li><a href="#">события</a></li>
<li><a href="#">Новости</a></li>
<li><a href="#">репортажи</a></li>
</ul>
{% endif %}
<div class="clb-profile"><a class="icon-user" href="/profile/">{% trans 'личный кабинет' %}</a></div>
<div class="clb-messages"><a class="icon-msg" href="/profile/messages/">{% if messages_inbox_count %} {{ messages_inbox_count }} {% endif %}</a></div>
<div class="clb-settings">
<a class="cl-btn icon-gear" href="/profile/settings/">{% trans 'настройки' %}</a>
</div>
<div class="clb-docs">
<a class="cl-btn icon-cal" href="/profile/calendar/">{% trans 'календарь' %}</a>
<a class="cl-btn icon-doc" href="#">{% trans 'документы' %}</a>
</div>
</div>
<div class="logout"><a href="/logout/">{% trans 'Выход' %}</a></div>
<div class="clb-profile"><a class="icon-user" href="/profile/">{% trans 'личный кабинет' %}</a></div>
<div class="clb-messages"><a class="icon-msg" href="/profile/messages/">{% if messages_inbox_count %} {{ messages_inbox_count }} {% endif %}</a></div>
<div class="clb-settings">
<a class="cl-btn icon-gear" href="/profile/settings/">{% trans 'настройки' %}</a>
</div>
<div class="clb-docs">
<a class="cl-btn icon-cal" href="/profile/calendar/">{% trans 'календарь' %}</a>
<a class="cl-btn icon-doc" href="#">{% trans 'документы' %}</a>
</div>
</div>
<div class="logout"><a href="/logout/">{% trans 'Выход' %}</a></div>
</div>
</div>
{% else %}
<div class="authorisation-links">
<a class="l-button ico register pw-open" href="#pw-reg">{% trans 'Регистрация' %}</a>

@ -0,0 +1,15 @@
{% load i18n %}
{% load template_filters %}
{% if user.is_authenticated %}
{% if user in event.users.all %}
<a style="display:none;" class="button icon-check visit" href="{{ exposition.get_visit_url }}">{% trans 'Я планирую посетить' %}</a>
<a class="button icon-check unvisit" href="{{ exposition.get_visit_url }}">{% trans 'Не планирую посещать' %}</a>
{% else %}
<a class="button icon-check visit" href="{{ exposition.get_visit_url }}">{% trans 'Я планирую посетить' %}</a>
<a style="display:none;" class="button icon-check unvisit" href="{{ exposition.get_visit_url }}">{% trans 'Не планирую посещать' %}</a>
{% endif %}
{% else %}
<a class="button icon-check visit" href="{{ exposition.get_visit_url }}">{% trans 'Я планирую посетить' %}</a>
<a style="display:none;" class="button icon-check unvisit" href="{{ exposition.get_visit_url }}">{% trans 'Не планирую посещать' %}</a>
{% endif %}

@ -0,0 +1,305 @@
{% extends 'base_catalog.html' %}
{% load i18n %}
{% block bread_scrumbs %}
<div class="bread-crumbs">
<a href="/">{% trans 'Главная страница' %}</a>
<strong>{% trans 'Добавить событие' %}</strong>
</div>
{% endblock %}
{% block page_title %}
<div class="page-title">
<h1>{% trans 'Добавить событие' %}</h1>
</div>
{% endblock %}
{% block page_body %}
<div class="page-body clearfix">
<div class="set-sect p-form adm-form">
<div class="set-sect-title clearfix">
<h3>{% trans 'Шаг 1. Основная информация' %}</h3>
</div>
<form action="#">
<hr />
<div class="mf-line afs-type">
<label>Тип события:</label>
<div class="mf-field">
<label class="check"><input type="radio" name="nt" /> {% trans 'выставка' %}</label>
<label class="check"><input type="radio" name="nt" /> {% trans 'конференция' %}</label>
<label class="check"><input type="radio" name="nt" /> {% trans 'семинар' %}</label>
<label class="check"><input type="radio" name="nt" /> {% trans 'вебинар' %}</label>
</div>
</div>
<hr />
<div class="adm-form-body">
<div class="mf-line s-subj-tag">
<div class="mf-field">
<label>{% trans 'Тематика' %}:</label>
<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>
{% for val, choice in form.theme.field.choices %}
<li><label><input type="checkbox" name="theme" value="{{ val }}" />{{ choice }}</label></li>
{% endfor %}
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="mf-field">
<label>{% trans 'Теги' %}:</label>
<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>
</div>
</div>
<hr />
<h2>{% trans 'Описание выставки' %}</h2>
<div class="mf-line">
<div class="mf-field">
{{ form.name }}
</div>
</div>
<div class="mf-line full-width">
<div class="mf-field">
{{ form.main_title }}
</div>
</div>
<div class="mf-line full-width">
<div class="mf-field">
<textarea name="description" cols="30" rows="10" placeholder="{% trans 'Полное описание выставки' %}"></textarea>
</div>
</div>
<hr />
<div id="dates-range" class="mf-line">
<label class="h2">{% trans 'Даты проведения' %}:</label>
<div class="mf-field">
<div class="period">
<div class="pwf-field">
<label>{% trans 'с' %}</label>
<input type="text" class="date dateFrom" name="dateFrom" placeholder="{% trans 'дд.мм.гггг' %}" />
</div>
<div class="pwf-field">
<label>{% trans 'по' %}</label>
<input type="text" class="date dateTo" name="dateTo" placeholder="{% trans 'дд.мм.гггг' %}" />
</div>
</div>
</div>
</div>
<hr />
<div class="mfs-location">
<h2>{% trans 'Локация' %}</h2>
<div class="mf-line">
<div class="mf-field">
<input type="text" name="pntitle" placeholder="{% trans 'Место проведения' %}" />
</div>
</div>
<div class="mf-line">
<div class="mf-field">
<input type="text" name="pntitle" placeholder="{% trans 'Страна' %}" />
</div>
<div class="mf-field">
<input type="text" name="pntitle" placeholder="{% trans 'Город' %}" />
</div>
</div>
</div>
<hr />
<div class="mfs-additional">
<h2>{% trans 'Дополнительная информация' %}</h2>
<div class="mf-line mf-targets">
<label>{% trans 'Аудитория' %}:</label>
<div class="mf-field">
<div class="clearfix">
<div class="mff-col">
<label class="check"><input type="checkbox" name="c01" />{% trans 'специалисты' %}</label>
<label class="check"><input type="checkbox" name="c02" />{% trans 'специалисты и потребители' %}</label>
<label class="check"><input type="checkbox" name="c03" />{% trans 'широкая публика' %}</label>
</div>
<div class="mff-col">
<select name="period">
<option value="">{% trans 'Периодичность' %}</option>
<option value="1">{% trans 'Еженедельно' %}</option>
<option value="2">{% trans '2 раза в месяц' %}</option>
<option value="3">{% trans 'Ежемесячно' %}</option>
</select>
</div>
</div>
<hr />
</div>
</div>
<div class="mf-line mf-membership">
<label>{% trans 'Членства и знаки качества' %}:</label>
<div class="mf-field">
<label class="check"><input type="checkbox" name="c01" />{% trans 'Российско-Британская торговая палата' %}</label>
<label class="check"><input type="checkbox" name="c02" />{% trans 'Ассоциация Европейского Бизнеса' %}</label>
<label class="check"><input type="checkbox" name="c03" />{% trans 'Российский союз выставок и ярмарок' %}</label>
<label class="check"><input type="checkbox" name="c04" />{% trans 'Американская торговая палата' %}</label>
<label class="check"><input type="checkbox" name="c05" />{% trans 'UFI' %}</label>
<hr />
</div>
</div>
<div class="mf-line mf-prod">
<div class="mf-field">
<input type="text" name="pntitle" placeholder="{% trans 'Веб-сайт (необязательно)' %}" />
<textarea name="pnprod" cols="30" rows="10" placeholder="{% trans 'Экспонируемые продукты' %}"></textarea>
<hr />
</div>
</div>
<div class="mf-line mf-time">
<label>{% trans 'Время работы' %}:</label>
<div id="work-time" class="mf-field">
<div class="w-time">
<div class="w-time-day">
<select name="d01">
<option value="12.04.2014">12.04.2014</option>
</select>
</div>
<div class="w-time-wrap">
<label>{% trans 'c' %}</label>
<select name="tFrom01">
<option value="">{% trans 'чч:мм' %}</option>
<option value="1">08:00</option>
<option value="2">09:00</option>
<option value="3">10:00</option>
<option value="4">11:00</option>
<option value="5">12:00</option>
<option value="6">13:00</option>
<option value="7">14:00</option>
<option value="8">15:00</option>
<option value="9">16:00</option>
<option value="10">17:00</option>
<option value="11">18:00</option>
<option value="12">19:00</option>
<option value="13">20:00</option>
</select>
</div>
<div class="w-time-wrap">
<label>{% trans 'до' %}</label>
<select name="tTo01">
<option value="">{% trans 'чч:мм' %}</option>
<option value="1">09:00</option>
<option value="2">10:00</option>
<option value="3">11:00</option>
<option value="4">12:00</option>
<option value="5">13:00</option>
<option value="6">14:00</option>
<option value="7">15:00</option>
<option value="8">16:00</option>
<option value="9">17:00</option>
<option value="10">18:00</option>
<option value="11">19:00</option>
<option value="12">20:00</option>
<option value="13">21:00</option>
</select>
</div>
<label class="check"><input type="checkbox" class="w-time-switcher" name="c05" checked />{% trans 'Один график на все дни' %}</label>
</div>
</div>
</div>
</div>
<hr />
<div class="mf-line mf-logo">
<label class="h2">{% trans 'Логотип' %}:</label>
<div class="mf-field">
<div class="input-file clearfix">
<div class="button big icon-clip">{% trans 'выберите файл' %}</div>
<div class="file-text" data-placeholder="{% trans 'Не выбрано ни одного файла' %}"></div>
<div class="if-field-wrap"><input type="file" name="avatar" /></div>
</div>
</div>
</div>
<hr />
</div>
<div class="a-bot-buttons-line clearfix">
<div class="abb-left">
<a class="button big icon-save" href="#">{% trans 'сохранить как черновик' %}</a>
</div>
<div class="abb-right">
<a class="button big orange a-more" href="#">{% trans 'далее' %}</a>
</div>
</div>
</form>
</div>
<div class="set-sect p-form adm-form not-active">
<div class="set-sect-title clearfix">
<h3>{% trans 'Шаг 2. Добавление фото' %}</h3>
</div>
</div>
<div class="set-sect p-form adm-form not-active">
<div class="set-sect-title clearfix">
<h3>{% trans 'Шаг 3. Статистика и условия участия' %}</h3>
</div>
</div>
</div>
{% endblock %}

@ -2,20 +2,15 @@
{% load static %}
{% load i18n %}
{% block bread_scrumbs %}
<div class="bread-crumbs">
<a href="/">{% trans 'Главная страница' %}</a>
<strong>{% trans 'Официальный каталог выставки' %}</strong>
</div>
{% endblock %}
{% block page_title %}
<div class="page-title">
<h1>{% trans 'Официальный каталог выставки' %}</h1>
<h1>{% trans 'Официальный каталог выставки' %}{% if event %} {{ event.name }} {% endif %}</h1>
</div>
{% endblock %}
{% block page_body %}
<div class="page-body clearfix request-form rq-catalog">
<div class="m-article">
@ -26,7 +21,7 @@
<div class="rqi-body">
<h2>{% trans 'Предлагаем Вам заказать печатный каталог выставки' %}</h2>
<h2>{% trans 'Предлагаем Вам заказать печатный каталог выставки' %}{% if event %} {{ event.name }} {% endif %}</h2>
<div class="rqi-cols">
<ul>
@ -45,9 +40,8 @@
</div>
</div>
<div class="rq-form">
<form action="#">
<div class="rq-form" {% if form.errors %}style="display:block"{% endif %}>
<form action="#" method="post">{% csrf_token %}
<hr />
@ -57,27 +51,50 @@
<div class="mf-line rq-person">
<div class="mf-field">
<input type="text" name="name" placeholder="{% trans 'Контактное лицо' %}" />
{{ form.person_inf }}
</div>
</div>
<div class="mf-line rq-person">
<div class="mf-field error">
{{ form.person_inf.errors }}
</div>
</div>
<div class="mf-line cols-2 rq-place">
<div class="mf-field rq-country">
<input type="text" name="country" placeholder="{% trans 'Страна' %}" />
{{ form.country }}
</div>
<div class="mf-field rq-city">
<input type="text" name="city" placeholder="{% trans 'Город' %}" />
{{ form.city }}
</div>
</div>
<div class="mf-line cols-2 rq-place">
<div class="mf-field rq-country error">
{{ form.country.errors }}
</div>
<div class="mf-field rq-city error">
{{ form.city.errors }}
</div>
</div>
<div class="mf-line cols-2 rq-contacts">
<div class="mf-field rq-tel">
<input type="text" name="tel" placeholder="{% trans 'Контактный номер телефона' %}" />
{{ form.phone }}
</div>
<div class="mf-field rq-mail">
<input type="text" name="email" placeholder="{% trans 'Электронная почта' %}" />
{{ form.person }}
</div>
</div>
<div class="mf-line cols-2 rq-contacts">
<div class="mf-field rq-tel error">
{{ form.phone.errors }}
</div>
<div class="mf-field rq-mail error">
{{ form.person.errors }}
</div>
</div>
@ -89,8 +106,24 @@
<div class="rq-order-button">
<div class="rqob-wrap">
<div class="rqob-price">2 000 <em class="rub"><i>руб.</i></em> + {% trans 'стоимость каталога' %}</div>
<div class="rqob-price">{{ service.price }} {{ service.currency }} + {% trans 'стоимость каталога' %}</div>
<div class="rqob-button">
{% ifequal event.get_catalog_url '/expositions/' %}
<input id="id_exposition" name="exposition" type="hidden" value="{{ event.id }}" />
{% endifequal %}
{% ifequal event.get_catalog_url '/conferences/' %}
<input id="id_conference" name="conference" type="hidden" />
{% endifequal %}
{% ifequal event.get_catalog_url '/seminars/' %}
<input id="id_seminar" name="seminar" type="hidden" />
{% endifequal %}
{% if service.price %}
<input id="id_price" name="price" type="hidden" value="{{ service.price }}"/>
{% endif %}
{% if service.price %}
<input id="id_currency" name="currency" type="hidden" value="{{ service.currency }}"/>
{% endif %}
<button type="submit">{% trans 'Сделать запрос' %}</button>
</div>
</div>
@ -106,7 +139,7 @@
<div class="rq-order-button">
<div class="rqob-wrap">
<div class="rqob-price">2 000 <em class="rub"><i>руб.</i></em> + {% trans 'стоимость каталога' %}</div>
<div class="rqob-price">{{ service.price }} {{ service.currency }} + {% trans 'стоимость каталога' %}</div>
<div class="rqob-button">
<a class="ob-text" href="#">{% trans 'Сделать запрос' %}</a>
</div>
@ -115,7 +148,18 @@
<div class="ob-descr">{% trans 'Стоимость каталога оплачивается c учетом доставки, которую обозначают организаторы выставки (в среднем от 0 до 50 евро).' %}</div>
</div>
{% if messages %}
<div class="alert-message">
<ul>
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>
{{ message }}
</li>
{% endfor %}
</ul>
</div>
{% endif %}
<hr />
<div class="rq-note">
{% trans '<p><b>Внимание!</b> Мы не можем гарантировать то, что все организаторы предоставляют возможность заказа печатного каталога выставки. Получая Ваш запрос, мы персонально связываемся с организатором конкретного события и уточняем информацию об условиях приобретения. Только после этого мы подтверждаем Вам возможность заказа.</p>' %}

@ -4,7 +4,7 @@
{% block page_title %}
<div class="page-title">
<h1>{% trans 'Участие в выставке' %}</h1>
<h1>{% trans 'Участие в выставке' %}{% if event %} {{ event.name }} {% endif %}</h1>
</div>
{% endblock %}
@ -18,7 +18,7 @@
<div class="rqi-pict"><img src="{% static 'client/img/_del-temp/request-participation.png' %}" alt="" /></div>
<div class="rqi-body">
<h2>{% trans 'Предлагаем Вам услуги профессиональной организации Вашего участия в выставке' %}</h2>
<h2>{% trans 'Предлагаем Вам услуги профессиональной организации Вашего участия в выставке' %}{% if event %} {{ event.name }} {% endif %}</h2>
<div class="rqi-cols">
<ul>
@ -38,8 +38,8 @@
</div>
<div class="rq-form">
<form action="#">
<div class="rq-form" {% if form.errors %}style="display:block"{% endif %}>
<form action="#" method="post">{% csrf_token %}
<hr />
@ -50,21 +50,26 @@
<div class="mf-line cols-2">
<div class="mf-field rq-area-val">
<label>{% trans 'Требуемая площадь' %}:</label>
<input type="text" name="area" placeholder="" />
{{ form.area }}
</div>
<div class="mf-field rq-area-type">
<label>{% trans 'Вид площади' %}:</label>
<select name="tArea">
<option value="1">{% trans 'оборудованная' %}</option>
<option value="2">{% trans 'не оборудованная' %}</option>
</select>
{{ form.area_type }}
</div>
</div>
<div class="mf-line cols-2">
<div class="mf-field rq-area-val">
{{ form.area.errors }}
</div>
<div class="mf-field rq-area-type">
{{ form.area_type.errors }}
</div>
</div>
<div class="mf-line full-width">
<div class="mf-field">
<textarea name="sDescr" cols="30" rows="10" placeholder="{% trans 'Краткое описание, вид деятельности компании' %}"></textarea>
{{ form.company_inf }}
</div>
</div>
@ -78,27 +83,48 @@
<div class="mf-line rq-person">
<div class="mf-field">
<input type="text" name="name" placeholder="{% trans 'Контактное лицо' %}" />
{{ form.person_inf }}
</div>
</div>
<div class="mf-line rq-person">
<div class="mf-field error">
{{ form.person_inf.errors }}
</div>
</div>
<div class="mf-line cols-2 rq-place">
<div class="mf-field rq-country">
<input type="text" name="country" placeholder="{% trans 'Страна' %}" />
{{ form.country }}
</div>
<div class="mf-field rq-city">
<input type="text" name="city" placeholder="{% trans 'Город' %}" />
{{ form.city }}
</div>
</div>
<div class="mf-line cols-2 rq-place">
<div class="mf-field rq-country error">
{{ form.country.errors }}
</div>
<div class="mf-field rq-city error">
{{ form.city.errors }}
</div>
</div>
<div class="mf-line cols-2 rq-contacts">
<div class="mf-field rq-tel">
<input type="text" name="tel" placeholder="{% trans 'Контактный номер телефона' %}" />
{{ form.phone }}
</div>
<div class="mf-field rq-mail">
<input type="text" name="email" placeholder="{% trans 'Электронная почта' %}" />
{{ form.person }}
</div>
</div>
<div class="mf-line cols-2 rq-contacts">
<div class="mf-field rq-tel error">
{{ form.phone.errors }}
</div>
<div class="mf-field rq-mail error">
{{ form.person.errors }}
</div>
</div>
@ -107,6 +133,22 @@
<hr />
<div class="rq-btn-wrap">
{% ifequal event.get_catalog_url '/expositions/' %}
<input id="id_exposition" name="exposition" type="hidden" value="{{ event.id }}" />
{% endifequal %}
{% ifequal event.get_catalog_url '/conferences/' %}
<input id="id_conference" name="conference" type="hidden" />
{% endifequal %}
{% ifequal event.get_catalog_url '/seminars/' %}
<input id="id_seminar" name="seminar" type="hidden" />
{% endifequal %}
{% if service.price %}
<input id="id_price" name="price" type="hidden" value="{{ service.price }}"/>
{% endif %}
{% if service.price %}
<input id="id_currency" name="currency" type="hidden" value="{{ service.currency }}"/>
{% endif %}
<button class="big orange a-more" type="submit">{% trans 'отправить запрос' %}</button>
@ -126,6 +168,18 @@
{% trans '<p>За организацию Вашего участия в зарубежной выставке наша компания берет дополнительный % от контракта с организатором. Его величина варьируется от 5 до 15% и зависит от метража арендуемой площади и необходимых дополнительных услуг, которые определяют общую трудоемкость процесса и состав специалистов.</p>' %}
</div>
{% if messages %}
<div class="alert-message">
<ul>
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>
{{ message }}
</li>
{% endfor %}
</ul>
</div>
{% endif %}
</div>

@ -38,8 +38,8 @@
</div>
<div class="rq-form">
<form action="#">
<div class="rq-form" {% if form.errors %}style="display:block"{% endif %}>
<form action="#" method="post">{% csrf_token %}
<hr />
@ -48,19 +48,18 @@
<div class="rqf-title">{% trans 'Информация о заказе' %}</div>
<div class="mf-line cols-2 rq-remotely-what">
<label>{% trans 'Интересующие участники выставки' %}: <em>{% trans '(укажите продукцию
или названия компаний)' %}</em></label>
<label>{% trans 'Интересующие участники выставки' %}: <em>{% trans '(укажите продукцию или названия компаний)' %}</em></label>
<div class="mf-field">
<textarea name="sDescr" cols="30" rows="10" placeholder=""></textarea>
{{ form.interested_participants }}
</div>
</div>
<div class="mf-line cols-2 rq-remotely-options">
<label>{% trans 'Дополнительно вы можете заказать' %}:</label>
<div class="mf-field">
<label class="check"><input type="checkbox" name="o1" />{% trans 'официальный каталог' %}</label>
<label class="check"><input type="checkbox" name="o2" />{% trans 'фотоотчет' %}</label>
<label class="check"><input type="checkbox" name="o3" />{% trans 'видеоотчет' %}</label>
{% for choice_id, choice_label in form.additional.field.choices %}
<label class="check"><input type="checkbox" name="additional" value="{{ choice_id }}"/>{{ choice_label }}</label>
{% endfor %}
</div>
</div>
@ -74,27 +73,48 @@
<div class="mf-line rq-person">
<div class="mf-field">
<input type="text" name="name" placeholder="{% trans 'Контактное лицо' %}" />
{{ form.person_inf }}
</div>
</div>
<div class="mf-line rq-person">
<div class="mf-field error">
{{ form.person_inf.errors }}
</div>
</div>
<div class="mf-line cols-2 rq-place">
<div class="mf-field rq-country">
<input type="text" name="country" placeholder="{% trans 'Страна' %}" />
{{ form.country }}
</div>
<div class="mf-field rq-city">
<input type="text" name="city" placeholder="{% trans 'Город' %}" />
{{ form.city }}
</div>
</div>
<div class="mf-line cols-2 rq-place">
<div class="mf-field rq-country error">
{{ form.country.errors }}
</div>
<div class="mf-field rq-city error">
{{ form.city.errors }}
</div>
</div>
<div class="mf-line cols-2 rq-contacts">
<div class="mf-field rq-tel">
<input type="text" name="tel" placeholder="{% trans 'Контактный номер телефона' %}" />
{{ form.phone }}
</div>
<div class="mf-field rq-mail">
<input type="text" name="email" placeholder="{% trans 'Электронная почта' %}" />
{{ form.person }}
</div>
</div>
<div class="mf-line cols-2 rq-contacts">
<div class="mf-field rq-tel error">
{{ form.phone.errors }}
</div>
<div class="mf-field rq-mail error">
{{ form.person.errors }}
</div>
</div>
@ -108,6 +128,22 @@
<div class="rqob-wrap">
<div class="rqob-price">{% trans 'Стоимость базового пакета услуги 400 €' %}</div>
<div class="rqob-button">
{% ifequal event.get_catalog_url '/expositions/' %}
<input id="id_exposition" name="exposition" type="hidden" value="{{ event.id }}" />
{% endifequal %}
{% ifequal event.get_catalog_url '/conferences/' %}
<input id="id_conference" name="conference" type="hidden" />
{% endifequal %}
{% ifequal event.get_catalog_url '/seminars/' %}
<input id="id_seminar" name="seminar" type="hidden" />
{% endifequal %}
{% if service.price %}
<input id="id_price" name="price" type="hidden" value="{{ service.price }}"/>
{% endif %}
{% if service.price %}
<input id="id_currency" name="currency" type="hidden" value="{{ service.currency }}"/>
{% endif %}
<button type="submit">{% trans 'отправить запрос' %}</button>
</div>
</div>
@ -148,6 +184,19 @@
</div>
{% if messages %}
<div class="alert-message">
<ul>
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>
{{ message }}
</li>
{% endfor %}
</ul>
</div>
{% endif %}
</div>
{% endblock %}

@ -4,7 +4,7 @@
{% block page_title %}
<div class="page-title">
<h1>{% trans 'Билеты' %}</h1>
<h1>{% trans 'Билеты на выставку' %}{% if event %} {{ event.name }} {% endif %}</h1>
</div>
{% endblock %}
@ -18,13 +18,13 @@
<div class="rqi-pict"><img src="{% static 'client/img/_del-temp/request-tickets.png' %}" alt="" /></div>
<div class="rqi-body">
<h2>{% trans 'Предлагаем Вам заранее заказать билеты на выставку' %}.</h2>
<h2>{% trans 'Предлагаем Вам заранее заказать билеты на выставку' %}{% if event %} {{ event.name }} {% endif %}</h2>
<div class="rqi-cols">
<ul>
<li>{% trans 'экономия времени' %}</li>
<li>{% trans 'нет очередей' %}</li>
<li>{% trans 'отчетные документы для бухгадтерии' %}</li>
<li>{% trans 'отчетные документы для бухгалтерии' %}</li>
</ul>
</div>
@ -32,8 +32,8 @@
</div>
<div class="rq-form">
<form action="#">
<div class="rq-form" {% if form.errors %}style="display:block"{% endif %}>
<form action="#" method="post">{% csrf_token %}
<hr />
@ -44,12 +44,20 @@
<div class="mf-line cols-2 rq-tickets-data">
<div class="mf-field rq-tickets-days rq-num">
<label>{% trans 'Количество дней посещения выставки' %}:</label>
<input type="text" name="country" placeholder="" />
{{ form.days }}
</div>
<div class="mf-field rq-tickets-num rq-num">
<label>{% trans 'Количество человек' %}:</label>
<input type="text" name="country" placeholder="" />
{{ form.people }}
</div>
</div>
<div class="mf-line cols-2 rq-tickets-data">
<div class="mf-field rq-tickets-days rq-num">
{{ form.days.errors }}
</div>
<div class="mf-field rq-tickets-num rq-num">
{{ form.people.errors }}
</div>
</div>
@ -63,27 +71,40 @@
<div class="mf-line rq-person">
<div class="mf-field">
<input type="text" name="name" placeholder="{% trans 'Контактное лицо' %}" />
{{ form.person_inf }}
</div>
</div>
<div class="mf-line rq-person">
<div class="mf-field error">
{{ form.person_inf.errors }}
</div>
</div>
<div class="mf-line cols-2 rq-place">
<div class="mf-field rq-country">
<input type="text" name="country" placeholder="{% trans 'Страна' %}" />
{{ form.country }}
</div>
<div class="mf-field rq-city">
<input type="text" name="city" placeholder="{% trans 'Город' %}" />
{{ form.city }}
</div>
</div>
<div class="mf-line cols-2 rq-place">
<div class="mf-field rq-country error">
{{ form.country.errors }}
</div>
<div class="mf-field rq-city error">
{{ form.city.errors }}
</div>
</div>
<div class="mf-line cols-2 rq-contacts">
<div class="mf-field rq-tel">
<input type="text" name="tel" placeholder="{% trans 'Контактный номер телефона' %}" />
{{ form.phone }}
</div>
<div class="mf-field rq-mail">
<input type="text" name="email" placeholder="{% trans 'Электронная почта' %}" />
{{ form.person }}
</div>
</div>
@ -95,8 +116,24 @@
<div class="rq-order-button">
<div class="rqob-wrap">
<div class="rqob-price">{% trans 'Регистрация 1 450' %} <em class="rub"><i>{% trans 'руб' %}.</i></em> + {% trans 'билет организатора' %}</div>
<div class="rqob-price">{% trans 'Регистрация' %} {{ service.price }} {{ service.currency }} + {% trans 'билет организатора' %}</div>
<div class="rqob-button">
{% ifequal event.get_catalog_url '/expositions/' %}
<input id="id_exposition" name="exposition" type="hidden" value="{{ event.id }}" />
{% endifequal %}
{% ifequal event.get_catalog_url '/conferences/' %}
<input id="id_conference" name="conference" type="hidden" />
{% endifequal %}
{% ifequal event.get_catalog_url '/seminars/' %}
<input id="id_seminar" name="seminar" type="hidden" />
{% endifequal %}
{% if service.price %}
<input id="id_price" name="price" type="hidden" value="{{ service.price }}"/>
{% endif %}
{% if service.price %}
<input id="id_currency" name="currency" type="hidden" value="{{ service.currency }}"/>
{% endif %}
<button type="submit">{% trans 'Сделать запрос' %}</button>
</div>
</div>
@ -112,7 +149,7 @@
<div class="rq-order-button">
<div class="rqob-wrap">
<div class="rqob-price">{% trans 'Регистрация 1 450' %} <em class="rub"><i>{% trans 'руб' %}.</i></em> + {% trans 'билет организатора' %}</div>
<div class="rqob-price">{% trans 'Регистрация' %} {{ service.price }} {{ service.currency }} + {% trans 'билет организатора' %}</div>
<div class="rqob-button">
<a class="ob-text" href="#">{% trans 'Сделать запрос' %}</a>
</div>
@ -122,6 +159,19 @@
</div>
{% if messages %}
<div class="alert-message">
<ul>
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>
{{ message }}
</li>
{% endfor %}
</ul>
</div>
{% endif %}
<hr />
<div class="rq-note">
{% trans '<p><b>Внимание!</b> Мы не можем гарантировать то, что все организаторы предоставляют возможность предварительной регистрации посетителей. Получая ваш запрос, мы персонально связываемся с организаторами конкретного события и уточняем информацию об условиях приобретения билетов. Только после этого мы подтверждаем вам возможность.</p>' %}

@ -4,7 +4,7 @@
{% block page_title %}
<div class="page-title">
<h1>{% trans 'Посещение выставки' %}</h1>
<h1>{% trans 'Посещение выставки' %} {% if event %}{{ event.name }}{% endif %}</h1>
</div>
{% endblock %}
@ -19,7 +19,7 @@
<div class="rqi-body">
<h4>{% trans 'Посещение Modeko 2014 откроет для вас новые горизонты развития бизнеса, и мы готовы вам помочь с этим! Организация любой деловой поездки представляет собой индивидуальный тур, кропотливо подобранный под ваши конкретные пожелания' %}.</h4>
<h4>{% trans 'Посещение' %} {% if event %}{{ event.name }}{% else %}{% trans 'выставки' %}{% endif %} {% trans 'откроет для вас новые горизонты развития бизнеса, и мы готовы вам помочь с этим! Организация любой деловой поездки представляет собой индивидуальный тур, кропотливо подобранный под ваши конкретные пожелания' %}.</h4>
<h4>{% trans 'Сервис также включает ряд особенностей' %}:</h4>
@ -33,8 +33,8 @@
</div>
<div class="rq-form">
<form action="#">
<div class="rq-form" {% if form.errors %}style="display:block"{% endif %}>
<form action="#" method="post">{% csrf_token %}
<hr />
@ -48,11 +48,11 @@
<div class="period">
<div class="pwf-field">
<label>{% trans 'с' %}</label>
<input type="text" class="date dateFrom" name="dateFrom" placeholder="{% trans 'дд.мм.гггг' %}" />
{{ form.fr }}
</div>
<div class="pwf-field">
<label>{% trans 'по' %}</label>
<input type="text" class="date dateTo" name="dateTo" placeholder="{% trans 'дд.мм.гггг' %}" />
{{ form.to }}
</div>
</div>
</div>
@ -62,15 +62,12 @@
<label>{% trans 'Количество человек' %}:</label>
<div class="mf-field">
<div class="rq-num">
<input type="text" name="pnum" placeholder="" />
{{ form.people }}
</div>
<div class="rq-sel-cond">
<label>{% trans 'Условия размещения' %}:</label>
<select name="conditions">
<option value="">{% trans 'Выберите' %}</option>
</select>
{{ form.hotel_additional }}
</div>
</div>
</div>
@ -78,18 +75,18 @@
<div class="mf-line rq-from-city">
<label>{% trans 'Город отправления' %}:</label>
<div class="mf-field">
<input type="text" name="pnum" placeholder="" />
{{ form.city_from }}
</div>
</div>
<div class="mf-line">
<label>{% trans 'Категория отеля' %}:</label>
<div class="mf-field">
<label class="rq-rad-rate rr1"><input type="checkbox" name="rr" value="1" /></label>
<label class="rq-rad-rate rr2"><input type="checkbox" name="rr" value="2" /></label>
<label class="rq-rad-rate rr3"><input type="checkbox" name="rr" value="2" /></label>
<label class="rq-rad-rate rr4"><input type="checkbox" name="rr" value="2" /></label>
<label class="rq-rad-rate rr5"><input type="checkbox" name="rr" value="2" /></label>
<label class="rq-rad-rate rr1"><input type="checkbox" name="hotel_stars" value="{{ form.hotel_stars.field.choices.0.0 }}" /></label>
<label class="rq-rad-rate rr2"><input type="checkbox" name="hotel_stars" value="{{ form.hotel_stars.field.choices.1.0 }}" /></label>
<label class="rq-rad-rate rr3"><input type="checkbox" name="hotel_stars" value="{{ form.hotel_stars.field.choices.2.0 }}" /></label>
<label class="rq-rad-rate rr4"><input type="checkbox" name="hotel_stars" value="{{ form.hotel_stars.field.choices.3.0 }}" /></label>
<label class="rq-rad-rate rr5"><input type="checkbox" name="hotel_stars" value="{{ form.hotel_stars.field.choices.4.0 }}" /></label>
</div>
</div>
@ -98,20 +95,13 @@
<div class="mf-field">
<div class="rq-sel-cond rq-hotel-loc">
<select name="conditions">
<option value="">{% trans 'Выберите' %}</option>
</select>
{{ form.hotel_location }}
</div>
<div class="rq-sel-cond rq-h-price">
<label>{% trans 'Примерный бюджет на отель' %}:</label>
<input type="text" name="pnum" placeholder="" />
<select name="conditions">
<option value="">{% trans 'Выберите' %}</option>
<option value="1">{% trans 'В сутки' %}</option>
<option value="1">{% trans 'В неделю' %}</option>
</select>
{{ form.hotel_budget }}
{{ form.hotel_budget_add }}
</div>
</div>
@ -122,23 +112,22 @@
<div class="mf-field">
<div class="rq-sub-sect avia-tickets">
<div class="rq-switch"><label class="check"><input type="checkbox" name="o1" />{% trans 'Авиабилеты' %}</label></div>
<div class="rq-switch"><label class="check">{{ form.avia_tickets }}{% trans 'Авиабилеты' %}</label></div>
<div class="rq-sub-sect-body">
<label class="check"><input type="checkbox" name="o1" />{% trans 'Прямой' %}</label>
<label class="check"><input type="checkbox" name="o1" />{% trans 'С пересадкой' %}</label>
<label class="check"><input type="checkbox" name="o1" />{% trans 'Бизнес-класс' %}</label>
<label class="check"><input type="checkbox" name="o1" />{% trans 'Эконом-класс' %}</label>
{% for choice_id, choice_label in form.avia_type.field.choices %}
<label class="check"><input type="checkbox" name="avia_type" value="{{ choice_id }}" />{{ choice_id }}</label>
{% endfor %}
</div>
</div>
<ul>
<li><label class="check"><input type="checkbox" name="o1" />{% trans 'Оформление визы' %}</label></li>
<li><label class="check"><input type="checkbox" name="o1" />{% trans 'Трансфер' %}</label></li>
<li><label class="check"><input type="checkbox" name="o1" />{% trans 'Билеты на выставку (приглашения)' %}</label></li>
<li><label class="check">{{ form.visa }}{% trans 'Оформление визы' %}</label></li>
<li><label class="check">{{ form.transfer }}{% trans 'Трансфер' %}</label></li>
<li><label class="check">{{ form.event_tickets }}{% trans 'Билеты на выставку (приглашения)' %}</label></li>
</ul>
<div class="rq-sub-sect transl-service">
<div class="rq-switch"><label class="check"><input type="checkbox" name="o1" />{% trans 'Услуги переводчика' %}</label></div>
<div class="rq-switch"><label class="check">{{ form.translator }}{% trans 'Услуги переводчика' %}</label></div>
<div class="rq-sub-sect-body">
<div class="rq-s-line">
@ -148,19 +137,13 @@
<div class="scroll-container csb-menu">
<div class="scroll-content clearfix">
<ul>
<li><label><input type="checkbox" name="subj" value="1" />{% trans 'Русский' %}</label></li>
<li><label><input type="checkbox" name="subj" value="2" />{% trans 'Английский' %}</label></li>
<li><label><input type="checkbox" name="subj" value="3" />{% trans 'Немецкий' %}</label></li>
<li><label><input type="checkbox" name="subj" value="4" />{% trans 'Французкий' %}</label></li>
<li><label><input type="checkbox" name="subj" value="5" />{% trans 'Испанский' %}</label></li>
<li><label><input type="checkbox" name="subj" value="6" />{% trans 'Португальский' %}</label></li>
<li><label><input type="checkbox" name="subj" value="7" />{% trans 'Итальнский' %}</label></li>
<li><label><input type="checkbox" name="subj" value="8" />{% trans 'Шведский' %}</label></li>
{% for choice_id, choice_label in form.languages.field.choices %}
<li><label><input type="checkbox" name="languages" value="{{ choice_id }}" />{{ choice_label }}</label></li>
{% endfor %}
</ul>
</div>
</div>
</div>
</div>
</div>
@ -193,18 +176,16 @@
</div>
</div>
<ul>
<li><label class="check"><input type="checkbox" name="o1" />{% trans 'Экскурсионная программа' %}</label></li>
<li><label class="check">{{ form.excursion }} {% trans 'Экскурсионная программа' %}</label></li>
</ul>
</div>
</div>
<div class="mf-line rq-notes">
<label>{% trans 'Пожелания' %}:</label>
<div class="mf-field">
<textarea name="notes" cols="30" rows="10"></textarea>
{{ form.notes }}
</div>
</div>
@ -218,27 +199,48 @@
<div class="mf-line rq-person">
<div class="mf-field">
<input type="text" name="name" placeholder="{% trans 'Контактное лицо' %}" />
{{ form.person_inf }}
</div>
</div>
<div class="mf-line rq-person">
<div class="mf-field error">
{{ form.person_inf.errors }}
</div>
</div>
<div class="mf-line cols-2 rq-place">
<div class="mf-field rq-country">
<input type="text" name="country" placeholder="{% trans 'Страна' %}" />
{{ form.country }}
</div>
<div class="mf-field rq-city">
<input type="text" name="city" placeholder="{% trans 'Город' %}" />
{{ form.city }}
</div>
</div>
<div class="mf-line cols-2 rq-place">
<div class="mf-field rq-country error">
{{ form.country.errors }}
</div>
<div class="mf-field rq-city error">
{{ form.city.errors }}
</div>
</div>
<div class="mf-line cols-2 rq-contacts">
<div class="mf-field rq-tel">
<input type="text" name="tel" placeholder="{% trans 'Контактный номер телефона' %}" />
{{ form.phone }}
</div>
<div class="mf-field rq-mail">
<input type="text" name="email" placeholder="{% trans 'Электронная почта' %}" />
{{ form.person }}
</div>
</div>
<div class="mf-line cols-2 rq-contacts">
<div class="mf-field rq-tel error">
{{ form.phone.errors }}
</div>
<div class="mf-field rq-mail error">
{{ form.person.errors }}
</div>
</div>
@ -247,6 +249,22 @@
<hr />
<div class="rq-btn-wrap">
{% ifequal event.get_catalog_url '/expositions/' %}
<input id="id_exposition" name="exposition" type="hidden" value="{{ event.id }}" />
{% endifequal %}
{% ifequal event.get_catalog_url '/conferences/' %}
<input id="id_conference" name="conference" type="hidden" />
{% endifequal %}
{% ifequal event.get_catalog_url '/seminars/' %}
<input id="id_seminar" name="seminar" type="hidden" />
{% endifequal %}
{% if service.price %}
<input id="id_price" name="price" type="hidden" value="{{ service.price }}"/>
{% endif %}
{% if service.price %}
<input id="id_currency" name="currency" type="hidden" value="{{ service.currency }}"/>
{% endif %}
<button class="big orange a-more" type="submit">{% trans 'Запрос туроператору' %}</button>

@ -4,7 +4,7 @@
{% block page_title %}
<div class="page-title">
<h1>{% trans 'Переводчик' %}</h1>
<h1>{% trans 'Услуги переводчика' %}{% if event %} {% trans 'на' %} {{ event.name }} {% endif %}</h1>
</div>
{% endblock %}
@ -30,8 +30,8 @@
</div>
<div class="rq-form">
<form action="#">
<div class="rq-form" {% if form.errors %}style="display:block"{% endif %}>
<form action="#" method="post">{% csrf_token %}
<hr />
@ -49,14 +49,9 @@
<div class="scroll-container csb-menu">
<div class="scroll-content clearfix">
<ul>
<li><label><input type="checkbox" name="subj" value="1" />{% trans 'Русский' %}</label></li>
<li><label><input type="checkbox" name="subj" value="2" />{% trans 'Английский' %}</label></li>
<li><label><input type="checkbox" name="subj" value="3" />{% trans 'Немецкий' %}</label></li>
<li><label><input type="checkbox" name="subj" value="4" />{% trans 'Французкий' %}</label></li>
<li><label><input type="checkbox" name="subj" value="5" />{% trans 'Испанский' %}</label></li>
<li><label><input type="checkbox" name="subj" value="6" />{% trans 'Португальский' %}</label></li>
<li><label><input type="checkbox" name="subj" value="7" />{% trans 'Итальнский' %}</label></li>
<li><label><input type="checkbox" name="subj" value="8" />{% trans 'Шведский' %}</label></li>
{% for choice_id, choice_label in form.languages.field.choices %}
<li><label><input type="checkbox" name="languages" value="{{ choice_id }}" />{{ choice_label }}</label></li>
{% endfor %}
</ul>
</div>
</div>
@ -73,6 +68,9 @@
<div class="scroll-container csb-menu">
<div class="scroll-content clearfix">
<ul>
{% for choice_id, choice_label in form.theme.field.choices %}
<li><label><input type="checkbox" name="themes" value="{{ choice_id }}" />{{ choice_label }}</label></li>
{% endfor %}
</ul>
</div>
@ -86,11 +84,11 @@
<div class="mf-line">
<label>Занятость:</label>
<div class="mf-field rq-tickets-days rq-num">
<input type="text" name="country" placeholder="" /> {% trans 'дней' %}
{{ form.days }} {% trans 'дней' %}
</div>
<div class="mf-field rq-tickets-num rq-num">
<input type="text" name="country" placeholder="" /> {% trans 'часов в день' %}
{{ form.hours }} {% trans 'часов в день' %}
</div>
</div>
@ -100,11 +98,11 @@
<div class="period">
<div class="pwf-field">
<label>{% trans 'с' %}</label>
<input type="text" class="date dateFrom" name="dateFrom" placeholder="{% trans 'дд.мм.гггг' %}" />
{{ form.fr }}
</div>
<div class="pwf-field">
<label>{% trans 'по' %}</label>
<input type="text" class="date dateTo" name="dateTo" placeholder="{% trans 'дд.мм.гггг' %}" />
{{ form.to }}
</div>
</div>
</div>
@ -120,27 +118,49 @@
<div class="mf-line rq-person">
<div class="mf-field">
<input type="text" name="name" placeholder="{% trans 'Контактное лицо' %}" />
{{ form.person_inf }}
</div>
</div>
<div class="mf-line rq-person">
<div class="mf-field error">
{{ form.person_inf.errors }}
</div>
</div>
<div class="mf-line cols-2 rq-place">
<div class="mf-field rq-country">
<input type="text" name="country" placeholder="{% trans 'Страна' %}" />
{{ form.country }}
</div>
<div class="mf-field rq-city">
<input type="text" name="city" placeholder="{% trans 'Город' %}" />
{{ form.city }}
</div>
</div>
<div class="mf-line cols-2 rq-place">
<div class="mf-field rq-country error">
{{ form.country.errors }}
</div>
<div class="mf-field rq-city error">
{{ form.city.errors }}
</div>
</div>
<div class="mf-line cols-2 rq-contacts">
<div class="mf-field rq-tel">
<input type="text" name="tel" placeholder="{% trans 'Контактный номер телефона' %}" />
{{ form.phone }}
</div>
<div class="mf-field rq-mail">
<input type="text" name="email" placeholder="{% trans 'Электронная почта' %}" />
{{ form.person }}
</div>
</div>
<div class="mf-line cols-2 rq-contacts">
<div class="mf-field rq-tel error">
{{ form.phone.errors }}
</div>
<div class="mf-field rq-mail error">
{{ form.person.errors }}
</div>
</div>
@ -152,8 +172,24 @@
<div class="rq-order-button">
<div class="rqob-wrap">
<div class="rqob-price">{% trans 'от 80 € / день' %}</div>
<div class="rqob-price">{% trans 'от' %} {{ service.price }} {{ service.currency }} / {% trans 'день' %}</div>
<div class="rqob-button">
{% ifequal event.get_catalog_url '/expositions/' %}
<input id="id_exposition" name="exposition" type="hidden" value="{{ event.id }}" />
{% endifequal %}
{% ifequal event.get_catalog_url '/conferences/' %}
<input id="id_conference" name="conference" type="hidden" />
{% endifequal %}
{% ifequal event.get_catalog_url '/seminars/' %}
<input id="id_seminar" name="seminar" type="hidden" />
{% endifequal %}
{% if service.price %}
<input id="id_price" name="price" type="hidden" value="{{ service.price }}"/>
{% endif %}
{% if service.price %}
<input id="id_currency" name="currency" type="hidden" value="{{ service.currency }}"/>
{% endif %}
<button type="submit">{% trans 'отправить запрос' %}</button>
</div>
</div>
@ -170,7 +206,7 @@
<div class="rqb-button">
<div class="rq-order-button">
<div class="rqob-wrap">
<div class="rqob-price">{% trans 'от 80 € / день' %}</div>
<div class="rqob-price">{% trans 'от' %} {{ service.price }} {{ service.currency }} / {% trans 'день' %}</div>
<div class="rqob-button">
<a class="ob-text" href="#">{% trans 'Сделать запрос' %}</a>
</div>

Loading…
Cancel
Save