Master. Merged and checked

remotes/origin/1203
Kotiuk Nazarii 11 years ago
commit ad071cb0c9
  1. 72
      conference/views.py
  2. 2
      core/views.py
  3. 4
      expobanner/forms.py
  4. 5
      expobanner/models.py
  5. 55
      expobanner/utils.py
  6. 28
      expobanner/views.py
  7. 122
      exposition/views.py
  8. 6
      place_exposition/urls.py
  9. 35
      place_exposition/views.py
  10. 4
      proj/urls.py
  11. 39
      templates/client/base_catalog.html
  12. 113
      templates/client/base_page.html
  13. 2
      templates/client/blank.html
  14. 6
      templates/client/conference/catalog.html
  15. 6
      templates/client/conference/conference_list.html
  16. 4
      templates/client/conference/members.html
  17. 4
      templates/client/conference/visitors.html
  18. 3
      templates/client/exposition/catalog.html
  19. 5
      templates/client/exposition/catalog_theme.html
  20. 7
      templates/client/includes/article/blog_list.html
  21. 7
      templates/client/includes/article/news_list.html
  22. 22
      templates/client/includes/banner_blocks/aside2.html
  23. 20
      templates/client/includes/banners/aside_2.html
  24. 23
      templates/client/includes/banners/catalog_inner.html
  25. 2
      templates/client/includes/banners/catalog_inner_2.html
  26. 24
      templates/client/includes/banners/detail_inner.html
  27. 10
      templates/client/includes/banners/expo_detail.html
  28. 6
      templates/client/includes/banners/expo_list_baner.html
  29. 9
      templates/client/includes/banners/header.html
  30. 2
      templates/client/includes/banners/main_page_inner.html
  31. 2
      templates/client/includes/banners/tops.html
  32. 16
      templates/client/includes/banners/under_search.html
  33. 7
      templates/client/includes/company/company_list.html
  34. 29
      templates/client/includes/conference/conference_list.html
  35. 6
      templates/client/includes/conference/conference_object.html
  36. 154
      templates/client/includes/exposition/expo_list_paid.html
  37. 6
      templates/client/includes/exposition/exposition_list.html
  38. 8
      templates/client/includes/exposition/exposition_object.html
  39. 7
      templates/client/includes/exposition/members.html
  40. 7
      templates/client/includes/exposition/search_result.html
  41. 7
      templates/client/includes/exposition/visitors.html
  42. 7
      templates/client/includes/place/place_list.html
  43. 4
      templates/client/includes/place/place_object.html
  44. 23
      templates/client/index.html
  45. 2
      templates/client/page/page_view.html
  46. 2
      templates/client/place/catalog.html
  47. 3
      templates/client/robots.txt
  48. 2
      templates/registration/acquire_email.html
  49. 2
      templates/registration/social_registration_complete.html

@ -10,6 +10,8 @@ from django.views.generic import ListView, DetailView
from django.views.generic.edit import FormMixin
from django.utils.translation import ugettext as _
from django.utils import translation
from service.models import Service
from service.views import order_forms
from note.models import Note
from models import Conference
from accounts.models import User
@ -17,7 +19,6 @@ from country.models import Country
from city.models import City
from theme.models import Theme, Tag
from service.order_forms import AdvertiseForm
from functions.search_forms import ExpositionSearchForm
from meta.views import MetadataMixin
from functions.cache_mixin import JitterCacheMixin, CacheMixin
@ -97,7 +98,6 @@ class ConferenceCatalog(JitterCacheMixin, MetadataMixin, ListView):
model = Conference
paginate_by = settings.CLIENT_PAGINATION
template_name = 'client/conference/catalog.html'
search_form = ExpositionSearchForm
filter_object = None
year = None
month = None
@ -152,10 +152,8 @@ class ConferenceCatalog(JitterCacheMixin, MetadataMixin, ListView):
return qs.order_by('data_begin')
def get_context_data(self, **kwargs):
context = super(ConferenceCatalog, self).get_context_data(**kwargs)
context['search_form'] = self.search_form
context['filter_object'] = self.filter_object
context['year'] = self.year
context['month'] = self.month
@ -164,6 +162,7 @@ class ConferenceCatalog(JitterCacheMixin, MetadataMixin, ListView):
class ConferenceCountryCatalog(ConferenceCatalog):
catalog_url = '/conference/country/'
def get_filtered_qs(self):
#this method used in parent get_queryset
slug = self.kwargs.get('slug')
@ -173,6 +172,12 @@ class ConferenceCountryCatalog(ConferenceCatalog):
qs = self.model.enable.upcoming().filter(country=country)
return qs
def get_context_data(self, **kwargs):
context = super(ConferenceCountryCatalog, self).get_context_data(**kwargs)
context['country'] = str(self.kwargs['country'].id)
return context
class ConferenceCityCatalog(ConferenceCatalog):
catalog_url = '/conference/city/'
def get_filtered_qs(self):
@ -184,6 +189,11 @@ class ConferenceCityCatalog(ConferenceCatalog):
self.filter_object = city
return qs
def get_context_data(self, **kwargs):
context = super(ConferenceCityCatalog, self).get_context_data(**kwargs)
context['city'] = str(self.kwargs['city'].id)
return context
class ConferenceThemeCatalog(ConferenceCatalog):
template_name = 'conference/catalog_theme.html'
@ -219,6 +229,9 @@ class ConferenceThemeCatalog(ConferenceCatalog):
context['country'] = self.country
if self.city:
context['city'] = self.city
context['theme_for_filter'] = self.kwargs['theme']
context['themes'] = [str(self.kwargs['theme'].id)]
return context
@ -233,16 +246,20 @@ class ConferenceTagCatalog(ConferenceCatalog):
self.filter_object = tag
return qs
def get_context_data(self, **kwargs):
context = super(ConferenceTagCatalog, self).get_context_data(**kwargs)
tag = self.kwargs['tag']
context['theme_for_filter'] = tag.theme
context['themes'] = [str(tag.theme.id)]
context['tag'] = str(self.kwargs['tag'].id)
return context
class ConferenceVisitors(MetadataMixin, ListView):
paginate_by = settings.CLIENT_PAGINATION
model = Conference
#template_name = 'event_visitors.html'
template_name = 'client/conference/visitors.html'
obj = None
search_form = ExpositionSearchForm
def get_queryset(self):
slug = self.kwargs.get('slug')
@ -252,20 +269,19 @@ class ConferenceVisitors(MetadataMixin, ListView):
def get_context_data(self, **kwargs):
context = super(ConferenceVisitors, self).get_context_data(**kwargs)
context['object'] = self.obj
context['search_form'] = self.search_form
obj = self.obj
context['object'] = obj
context['city'] = str(obj.city_id)
context['country'] = str(obj.country_id)
context['themes'] = [str(item.id) for item in obj.theme.all()]
return context
class ConferenceMembers(MetadataMixin, ListView):
paginate_by = settings.CLIENT_PAGINATION
model = Conference
#template_name = 'event_visitors.html'
template_name = 'client/conference/members.html'
obj = None
search_form = ExpositionSearchForm
def get_queryset(self):
slug = self.kwargs.get('slug')
@ -275,12 +291,14 @@ class ConferenceMembers(MetadataMixin, ListView):
def get_context_data(self, **kwargs):
context = super(ConferenceMembers, self).get_context_data(**kwargs)
context['object'] = self.obj
context['search_form'] = self.search_form
obj = self.obj
context['object'] = obj
context['city'] = str(obj.city_id)
context['country'] = str(obj.country_id)
context['themes'] = [str(item.id) for item in obj.theme.all()]
return context
from service.models import Service
from service.views import order_forms
class ConferenceThankView(MetadataMixin, DetailView):
model = Conference
@ -324,7 +342,11 @@ class ConferenceServiceView(FormMixin, DetailView):
raise Http404
context['form'] = self.get_form(self.form_class)
context['service'] = service
context['object'] = self.get_object()
obj = self.get_object()
context['object'] = obj
context['city'] = str(obj.city_id)
context['country'] = str(obj.country_id)
context['themes'] = [str(item.id) for item in obj.theme.all()]
return context
def form_valid(self, form):
@ -347,14 +369,11 @@ class ConferenceServiceView(FormMixin, DetailView):
'city':user.profile.city.name if user.profile.city else '',
'phone': user.profile.phone if user.profile.phone else ''}
return initial
else:
return self.initial.copy()
class ConferenceDetail(JitterCacheMixin, DetailView):
cache_range = settings.CACHE_RANGE
model = Conference
@ -370,19 +389,21 @@ class ConferenceDetail(JitterCacheMixin, DetailView):
except City.DoesNotExist:
return super(ConferenceDetail, self).dispatch(request, *args, **kwargs)
def get_context_data(self, **kwargs):
context = super(ConferenceDetail, self).get_context_data(**kwargs)
context['advertising_form'] = AdvertiseForm()
obj = self.object
context['city'] = str(obj.city_id)
context['country'] = str(obj.country_id)
context['themes'] = [str(item.id) for item in obj.theme.all()]
return context
class ConferenceList(MetadataMixin, JitterCacheMixin, ListView):
cache_range = settings.CACHE_RANGE
model = Conference
paginate_by = settings.CLIENT_PAGINATION
template_name = 'client/conference/conference_list.html'
search_form = ExpositionSearchForm
catalog_url = '/conference/'
year = None
month = None
@ -410,7 +431,6 @@ class ConferenceList(MetadataMixin, JitterCacheMixin, ListView):
context = super(ConferenceList, self).get_context_data(**kwargs)
context['month'] = self.month
context['catalog_url'] = self.catalog_url
context['search_form'] = self.search_form
context['year'] = self.year
context['month'] = self.month
return context

@ -244,7 +244,7 @@ class DeletePage(DeleteView):
class PageDetailed(DetailView):
model = Page
template_name = 'client/base_page.html'
template_name = 'client/base_catalog.html'
slug_field = 'url'
slug_url_kwarg = 'url'

@ -164,13 +164,13 @@ class TopCreateForm(forms.ModelForm):
theme_ids = self.cleaned_data['theme']
if theme_ids:
return Theme.objects.filter(id__in=theme_ids)
return None
return Theme.objects.none()
def clean_country(self):
country_ids = self.cleaned_data['country']
if country_ids:
return Country.objects.filter(id__in=country_ids)
return None
return Country.objects.none()
def clean_exposition(self):
expo_id = self.cleaned_data['exposition']

@ -255,6 +255,11 @@ class Top(models.Model, StatMixin):
class Meta:
ordering = ['position']
def get_event(self):
try:
return self.exposition_set.all()[0]
except IndexError:
return None
class TopStat(models.Model):
date = models.DateField()

@ -21,22 +21,21 @@ def get_by_sort(banner_list):
def get_banner_by_params(banners_list, urls, params):
#print('START. NUMBER of queries = %d'%len(connection.queries))
thematic_banners = []
url_banners = []
for banner in banners_list:
#print('-------------------------')
#print('number of queries = %d'%len(connection.queries))
# check by theme
banner_theme_ids = [str(theme.id) for theme in banner.theme.all()]
#print('number of queries = %d'%len(connection.queries))
if banner_theme_ids:
if params.get('theme'):
theme = params['theme']
if theme in banner_theme_ids:
flag = False
for th in theme:
if th in banner_theme_ids:
flag = True
if flag:
thematic_banners.append(banner)
continue
# check by country
@ -63,7 +62,7 @@ def get_banner_by_params(banners_list, urls, params):
if common_urls:
url_banners.append(banner)
continue
print('-------------------------')
if thematic_banners:
return random.choice(thematic_banners)
if url_banners:
@ -71,3 +70,43 @@ def get_banner_by_params(banners_list, urls, params):
return None
#print('END. NUMBER of queries = %d'%len(connection.queries))
def get_top_events(tops, params):
catalog = params.get('catalog')
country = params.get('country', '')
theme = params.get('theme', [])
city = params.get('city', '')
tag = params.get('tag', '')
catalog_tops = [item for item in tops if item.catalog == catalog]
good_tops = []
for top in catalog_tops:
country_ids = [str(item.id) for item in top.country.all()]
theme_ids = [str(item.id) for item in top.theme.all()]
excluded_tags_ids = [str(item.id) for item in top.excluded_tags.all()]
excluded_cities_ids = [str(item.id) for item in top.excluded_cities.all()]
if not country_ids and not theme_ids:
# universal top
good_tops.append(top)
continue
# check country
if country in country_ids and city not in excluded_cities_ids :
good_tops.append(top)
continue
# check theme
if tag in excluded_tags_ids:
continue
flag = False
for th in theme:
if th in theme_ids:
flag = True
continue
if flag:
good_tops.append(top)
sorted_top = sorted(good_tops, key=lambda x: x.position)
events = []
for top in sorted_top:
event = top.get_event()
if event:
events.append(event)
return events

@ -3,8 +3,10 @@ import json
import re
from django.http import HttpResponse
from django.shortcuts import redirect, get_object_or_404
from django.shortcuts import render_to_response
from django.template import RequestContext
from .models import Banner, BannerGroup, URL, Top
from expobanner.utils import get_by_sort, get_banner_by_params, get_client_ip
from expobanner.utils import get_by_sort, get_banner_by_params, get_client_ip, get_top_events
def click(request, banner_id):
@ -32,7 +34,7 @@ def get_banners(request):
elif url == u.url:
good_urls.append(u)
# fill parameters dict
params = {'theme': request.GET.get('theme'),
params = {'theme': request.GET.getlist('theme', []),
'tag': request.GET.get('tag'),
'country': request.GET.get('country'),
'city': request.GET.get('city'),
@ -69,25 +71,8 @@ def get_banners(request):
return HttpResponse(json.dumps(result, indent=4), content_type='application/json')
def get_top_events(tops, params):
catalog = params.get('catalog')
country = params.get('country', '')
theme = params.get('theme', [])
good_tops = []
for top in tops:
if top.catalog != catalog:
continue
country_ids = [str(item.id) for item in top.country.all()]
if not country in country_ids:
continue
from exposition.models import Exposition
from django.shortcuts import render_to_response
from django.template import RequestContext
def get_top(request):
params = {'theme': request.GET.get('theme'),
params = {'theme': request.GET.getlist('theme', []),
'tag': request.GET.get('tag'),
'country': request.GET.get('country'),
'city': request.GET.get('city'),
@ -95,6 +80,5 @@ def get_top(request):
tops = Top.cached.all()
events = get_top_events(tops, params)
expos = Exposition.objects.filter(top__isnull=False)
context = {'objects': expos}
context = {'objects': events}
return render_to_response('client/includes/exposition/expo_top.html', context, context_instance=RequestContext(request))

@ -2,14 +2,14 @@
import json
import datetime
from django.http import HttpResponseRedirect, HttpResponse, HttpResponsePermanentRedirect
from django.contrib import messages
from django.contrib.contenttypes.models import ContentType
from django.conf import settings
from django.views.generic import ListView, DetailView
from django.utils.translation import ugettext as _
from django.shortcuts import get_object_or_404, render_to_response
from django.shortcuts import get_object_or_404
from django.http import Http404
from django.utils import translation
from django.views.generic.edit import FormMixin
from django.core.mail import EmailMessage
#models
from accounts.models import User
from models import Exposition
@ -23,9 +23,7 @@ from service.order_forms import AdvertiseForm
from functions.search_forms import ExpositionSearchForm
from functions.custom_views import ExpoSearchView
from meta.views import MetadataMixin
from functions.cache_mixin import JitterCacheMixin, CacheMixin
from functions.cache_mixin import JitterCacheMixin
class ExpositionBy(JitterCacheMixin, MetadataMixin, ListView):
@ -156,12 +154,28 @@ class ExpoDetail(JitterCacheMixin, MetadataMixin, DetailView):
def get_context_data(self, **kwargs):
context = super(ExpoDetail, self).get_context_data(**kwargs)
context['advertising_form'] = AdvertiseForm()
obj = self.object
context['city'] = str(obj.city_id)
context['country'] = str(obj.country_id)
context['themes'] = [str(item.id) for item in obj.theme.all()]
return context
class ExpositionProgramme(MetadataMixin, DetailView):
model = Exposition
slug_field = 'url'
template_name = 'client/exposition/programm.html'
queryset = Exposition.objects.language().select_related('place', 'city', 'country', 'paid_new')
def get_context_data(self, **kwargs):
context = super(ExpositionProgramme, self).get_context_data(**kwargs)
obj = self.object
context['city'] = str(obj.city_id)
context['country'] = str(obj.country_id)
context['themes'] = [str(item.id) for item in obj.theme.all()]
return context
class ExpositionPrice(MetadataMixin, DetailView):
@ -170,20 +184,47 @@ class ExpositionPrice(MetadataMixin, DetailView):
template_name = 'client/exposition/price.html'
queryset = Exposition.objects.language().select_related('place', 'city', 'country', 'paid_new')
def get_context_data(self, **kwargs):
context = super(ExpositionPrice, self).get_context_data(**kwargs)
obj = self.object
context['city'] = str(obj.city_id)
context['country'] = str(obj.country_id)
context['themes'] = [str(item.id) for item in obj.theme.all()]
return context
class ExpositionStatistic(MetadataMixin, DetailView):
model = Exposition
slug_field = 'url'
template_name = 'client/exposition/statistic.html'
queryset = Exposition.objects.language().select_related('place', 'city', 'country', 'paid_new')
def get_context_data(self, **kwargs):
context = super(ExpositionStatistic, self).get_context_data(**kwargs)
obj = self.object
context['city'] = str(obj.city_id)
context['country'] = str(obj.country_id)
context['themes'] = [str(item.id) for item in obj.theme.all()]
return context
from django.views.generic.edit import FormMixin, ModelFormMixin
class ExpositionThankView(MetadataMixin, DetailView):
model = Exposition
slug_field = 'url'
template_name = 'client/service/thank_u_page.html'
def get_context_data(self, **kwargs):
context = super(ExpositionThankView, self).get_context_data(**kwargs)
obj = self.object
context['city'] = str(obj.city_id)
context['country'] = str(obj.country_id)
context['themes'] = [str(item.id) for item in obj.theme.all()]
return context
def visit_redirect(request, slug):
obj = get_object_or_404(Exposition, url=slug)
redirect = obj.get_permanent_url() + 'price/'
@ -226,7 +267,12 @@ class ExpositionServiceView(MetadataMixin, FormMixin, DetailView):
raise Http404
context['form'] = self.get_form(self.form_class)
context['service'] = self.service
context['object'] = self.get_object()
obj = self.get_object()
context['object'] = obj
context['city'] = str(obj.city_id)
context['country'] = str(obj.country_id)
context['themes'] = [str(item.id) for item in obj.theme.all()]
return context
def form_valid(self, form):
@ -248,8 +294,6 @@ class ExpositionServiceView(MetadataMixin, FormMixin, DetailView):
'city':user.profile.city.name if user.profile.city else '',
'phone': user.profile.phone if user.profile.phone else ''}
return initial
else:
return self.initial.copy()
@ -260,12 +304,12 @@ class ExpoList(MetadataMixin, JitterCacheMixin, ListView):
model = Exposition
paginate_by = settings.CLIENT_PAGINATION
template_name = 'client/exposition/exposition_list.html'
search_form = ExpositionSearchForm
catalog_url = '/expo/'
year = None
month = None
def get_queryset(self):
MONTHES = settings.MONTHES
if self.request.user.is_staff:
qs = self.model.objects.upcoming()
else:
@ -286,24 +330,21 @@ class ExpoList(MetadataMixin, JitterCacheMixin, ListView):
context = super(ExpoList, self).get_context_data(**kwargs)
context['month'] = self.month
context['catalog_url'] = self.catalog_url
context['search_form'] = self.search_form
context['year'] = self.year
context['month'] = self.month
return context
MONTHES = settings.MONTHES
class ExpoCatalog(MetadataMixin, ListView):
model = Exposition
paginate_by = settings.CLIENT_PAGINATION
template_name = 'client/exposition/catalog.html'
search_form = ExpositionSearchForm
filter_object = None
year = None
month = None
country = None
city = None
paid = None
def get_filtered_qs(self):
# diferent for views
@ -352,12 +393,8 @@ class ExpoCatalog(MetadataMixin, ListView):
return qs.order_by('data_begin')
def get_context_data(self, **kwargs):
context = super(ExpoCatalog, self).get_context_data(**kwargs)
if self.paid:
context['paid'] = self.paid
context['search_form'] = self.search_form
context['filter_object'] = self.filter_object
context['year'] = self.year
context['month'] = self.month
@ -366,6 +403,7 @@ class ExpoCatalog(MetadataMixin, ListView):
context['tag_for_filter'] = self.kwargs['tag']
return context
class ExpoCountryCatalog(ExpoCatalog):
catalog_url = '/expo/country/'
def get_filtered_qs(self):
@ -382,6 +420,7 @@ class ExpoCountryCatalog(ExpoCatalog):
context['country'] = str(self.kwargs['country'].id)
return context
class ExpoCityCatalog(ExpoCatalog):
catalog_url = '/expo/city/'
def get_filtered_qs(self):
@ -411,11 +450,8 @@ class ExpoThemeCatalog(ExpoCatalog):
city_slug = self.kwargs.get('city_slug')
theme = get_object_or_404(Theme, url=slug)
self.kwargs['theme'] = theme
qs = self.model.enable.upcoming().filter(theme=theme)
qs = self.model.enable.upcoming().filter(theme=theme).exclude(paid__isnull=False)
paid= list(self.model.enable.filter(theme=theme).filter(paid__isnull=False))
if paid:
self.paid = paid
if country_slug:
country = get_object_or_404(Country, url=country_slug)
self.country = country
@ -434,9 +470,9 @@ class ExpoThemeCatalog(ExpoCatalog):
def get_context_data(self, **kwargs):
context = super(ExpoThemeCatalog, self).get_context_data(**kwargs)
if self.country:
context['country'] = str(self.country.id)
context['country'] = self.country
if self.city:
context['city'] = str(self.city.id)
context['city'] = self.city
context['theme_for_filter'] = self.kwargs['theme']
context['themes'] = [str(self.kwargs['theme'].id)]
return context
@ -444,16 +480,13 @@ class ExpoThemeCatalog(ExpoCatalog):
class ExpoTagCatalog(ExpoCatalog):
catalog_url = '/expo/tag/'
def get_filtered_qs(self):
#this method used in parent get_queryset
slug = self.kwargs.get('slug')
tag = get_object_or_404(Tag, url=slug)
self.kwargs['tag'] = tag
qs = self.model.enable.upcoming().filter(tag=tag).exclude(paid__isnull=False)
paid= list(self.model.enable.filter(tag=tag).filter(paid__isnull=False))
if paid:
self.paid = paid
qs = self.model.enable.upcoming().filter(tag=tag)
self.filter_object = tag
return qs
@ -469,12 +502,8 @@ class ExpoTagCatalog(ExpoCatalog):
class ExpoVisitors(MetadataMixin, ListView):
paginate_by = settings.CLIENT_PAGINATION
model = Exposition
#template_name = 'event_visitors.html'
template_name = 'client/exposition/visitors.html'
obj = None
search_form = ExpositionSearchForm
def get_queryset(self):
slug = self.kwargs.get('slug')
@ -485,20 +514,19 @@ class ExpoVisitors(MetadataMixin, ListView):
def get_context_data(self, **kwargs):
context = super(ExpoVisitors, self).get_context_data(**kwargs)
context['object'] = self.obj
context['search_form'] = self.search_form
obj = self.obj
context['object'] = obj
context['city'] = str(obj.city_id)
context['country'] = str(obj.country_id)
context['themes'] = [str(item.id) for item in obj.theme.all()]
return context
class ExpoMembers(MetadataMixin, ListView):
paginate_by = settings.CLIENT_PAGINATION
model = Exposition
#template_name = 'event_visitors.html'
template_name = 'client/exposition/members.html'
obj = None
search_form = ExpositionSearchForm
def get_queryset(self):
slug = self.kwargs.get('slug')
@ -509,8 +537,11 @@ class ExpoMembers(MetadataMixin, ListView):
def get_context_data(self, **kwargs):
context = super(ExpoMembers, self).get_context_data(**kwargs)
context['object'] = self.obj
context['search_form'] = self.search_form
obj = self.obj
context['object'] = obj
context['city'] = str(obj.city_id)
context['country'] = str(obj.country_id)
context['themes'] = [str(item.id) for item in obj.theme.all()]
return context
@ -546,11 +577,9 @@ def add_note(request, slug):
return HttpResponse(json.dumps(args), content_type='application/json')
from django.core.mail import send_mail
from django.core.mail import EmailMessage
def send_to_organiser(request, slug):
exposition = get_object_or_404(Exposition, url=slug)
mail_send = exposition.paid.organiser
mail_send = 'evm@expomap.ru'
name = request.POST.get('person_inf')
email = request.POST.get('person')
phone = request.POST.get('phone', '')
@ -562,5 +591,4 @@ def send_to_organiser(request, slug):
msg.send()
redirect_to = '%sservice/thanks/'%exposition.get_permanent_url()
return HttpResponse(json.dumps({'success':True, 'redirect_to': redirect_to}), content_type='application/json')
return HttpResponse(json.dumps({'success':True, 'redirect_to': redirect_to}), content_type='application/json')

@ -1,13 +1,11 @@
# -*- coding: utf-8 -*-
from django.conf.urls import patterns, include, url
from views import PlaceSearchView, PlaceDetail, PlaceList, PlaceCityCatalog, PlaceCountryCatalog, PlacePhoto
from views import PlaceDetail, PlaceList, PlaceCityCatalog, PlaceCountryCatalog, PlacePhoto
urlpatterns = patterns('',
# correct
url(r'search/', PlaceSearchView.as_view()),
# correct
#url(r'country/$', PlaceCountryCatalog.as_view()),
url(r'country/(?P<slug>.*)/page/(?P<page>\d+)/$', PlaceCountryCatalog.as_view(), {'meta_id':49}),
url(r'country/(?P<slug>.*)/$', PlaceCountryCatalog.as_view(), {'meta_id':49}),

@ -42,19 +42,11 @@ def place(request, url, photo=None):
return render_to_response('photoreport.html', args, context_instance=RequestContext(request))
return render_to_response('place.html', args, context_instance=RequestContext(request))
from functions.custom_views import ExpoSearchView
from functions.search_forms import PlaceSearchForm
class PlaceSearchView(ExpoSearchView):
#paginate_by = 10
template_name = 'place/search.html'
search_form = PlaceSearchForm
model = PlaceExposition
class PlaceDetail(JitterCacheMixin, MetadataMixin, DetailView):
cache_range = settings.CACHE_RANGE
model = PlaceExposition
search_form = PlaceSearchForm
slug_field = 'url'
template_name = 'client/place/place_detail.html'
@ -96,7 +88,9 @@ class PlaceDetail(JitterCacheMixin, MetadataMixin, DetailView):
def get_context_data(self, **kwargs):
context = super(PlaceDetail, self).get_context_data(**kwargs)
context['search_form'] = self.search_form
obj = self.object
context['city'] = str(obj.city_id)
context['country'] = str(obj.country_id)
return context
class PlacePhoto(ListView):
@ -118,7 +112,10 @@ class PlacePhoto(ListView):
def get_context_data(self, **kwargs):
context = super(PlacePhoto, self).get_context_data(**kwargs)
context['object'] = self.obj
obj = self.obj
context['object'] = obj
context['city'] = str(obj.city_id)
context['country'] = str(obj.country_id)
return context
@ -126,7 +123,6 @@ class PlaceList(JitterCacheMixin, MetadataMixin, ListView):
model = PlaceExposition
paginate_by = 10
template_name = 'client/place/place_list.html'
search_form = PlaceSearchForm
def get_queryset(self):
@ -135,11 +131,6 @@ class PlaceList(JitterCacheMixin, MetadataMixin, ListView):
conf_qs = PlaceConference.objects.language().all()
return list(qs)+list(conf_qs)
def get_context_data(self, **kwargs):
context = super(PlaceList, self).get_context_data(**kwargs)
context['search_form'] = self.search_form
return context
class PlaceCatalog(JitterCacheMixin, MetadataMixin, ListView):
cache_range = settings.CACHE_RANGE
@ -170,6 +161,11 @@ class PlaceCountryCatalog(PlaceCatalog):
return list(qs) + list(conf_qs)
def get_context_data(self, **kwargs):
context = super(PlaceCountryCatalog, self).get_context_data(**kwargs)
context['country'] = str(self.kwargs['country'].id)
return context
class PlaceCityCatalog(PlaceCatalog):
catalog_url = '/places/'
@ -181,4 +177,9 @@ class PlaceCityCatalog(PlaceCatalog):
self.filter_object = city
qs = self.model.objects.language().select_related('country', 'city').filter(city=city).order_by('-rating')
conf_qs = PlaceConference.objects.language().select_related('country', 'city').filter(city=city)
return list(qs) + list(conf_qs)
return list(qs) + list(conf_qs)
def get_context_data(self, **kwargs):
context = super(PlaceCityCatalog, self).get_context_data(**kwargs)
context['city'] = str(self.kwargs['city'].id)
return context

@ -8,7 +8,7 @@ import debug_toolbar
from django.views.generic.base import TemplateView
class Robot(TemplateView):
template_name = 'robots.txt'
template_name = 'client/robots.txt'
content_type = 'text/plain'
class YandexCheck(TemplateView):
@ -71,9 +71,7 @@ urlpatterns = patterns('',
url(r'^', include('password_reset.urls')),
url(r'^i18n/', include('django.conf.urls.i18n')),
url(r'^redirect/', include('banners.urls')),
#url(r'^social/', include('social_auth.urls')),
url(r'^', include('settings.old_urls')),
#url(r'^search/', include('haystack.urls')),
url(r'^', include('service.urls')),
)

@ -17,54 +17,33 @@
<hr />
{% include 'client/includes/online_consult.html' %}
{% include 'client/includes/banners/aside_1.html' %}
{% block aside_banner1 %}
{% if theme_for_filter.id == 27 or theme_for_filter.id == 9 or theme_for_filter.id == 48 %}
<div class="sbnr">
<div class="sbnr-wrap">
<a href="/redirect/redirect/11/" target="_blank">
<img src="{% static 'client/img/partners/ipsa_.gif' %}" alt="" />
</a>
</div>
</div>
{% endif %}
{% endblock %}
{% include 'client/includes/banners/aside_1.html' %}
{% include 'client/includes/services.html' %}
<hr />
{% include 'client/includes/announces.html' %}
{% block asside_banner2 %}
<!-- task EXPO-145-->
{% comment %}
<div class="sbnr">
<div class="sbnr-wrap">
<a href="/redirect/redirect/11/">
<img src="{% static 'client/img/partners/imgo.jpg' %}" alt="" />
</a>
</div>
</div>
{% endcomment %}
{% endblock %}
{% include 'client/includes/side_confs.html' %}
<hr />
{% include 'client/includes/banners/aside_2.html' %}
<hr />
<div class="s-news-list">
{% include 'client/includes/news.html' with news=news_list %}
</div>
{% include 'client/includes/banners/aside_3.html' %}
{% block aside_vk %}
<div class="vk-widget">
{% include 'client/includes/social_widjet.html' %}
</div>
<div class="vk-widget">
{% include 'client/includes/social_widjet.html' %}
</div>
{% endblock %}
{% include 'client/includes/banners/aside_4.html' %}
</aside>

@ -1,113 +0,0 @@
{% extends 'blank.html' %}
{% load static %}
{% load i18n %}
{% load template_filters %}
{% block main_part %}
<section class="layout main-part">
<div class="layout-wrap">
<aside>
<div class="sbg"></div>
{% include 'menu.html' %}
<hr/>
{% include 'client/includes/feedback.html' %}
<hr />
{% include 'client/includes/online_consult.html' %}
{% block aside_banner1 %}
{% if theme_for_filter.id == 27 or theme_for_filter.id == 9 or theme_for_filter.id == 48 %}
<div class="sbnr">
<div class="sbnr-wrap">
<a href="/redirect/redirect/11/" target="_blank">
<img src="{% static 'client/img/partners/ipsa_.gif' %}" alt="" />
</a>
</div>
</div>
{% endif %}
{% endblock %}
{% include 'client/includes/services.html' %}
<hr />
{% include 'client/includes/announces.html' %}
{% block asside_banner2 %}
<!-- task EXPO-145-->
{% comment %}
<div class="sbnr">
<div class="sbnr-wrap">
<a href="/redirect/redirect/11/">
<img src="{% static 'client/img/partners/imgo.jpg' %}" alt="" />
</a>
</div>
</div>
{% endcomment %}
{% endblock %}
{% include 'client/includes/side_confs.html' %}
<hr />
<div class="s-news-list">
{% include 'client/includes/news.html' with news=news_list %}
</div>
{% block aside_vk %}
<div class="vk-widget">
{% include 'client/includes/social_widjet.html' %}
</div>
{% endblock %}
</aside>
<div class="mcl">
{% with search_form=search_form %}
{% include 'client/includes/catalog_search.html' %}
{% endwith %}
{% block under_search_baner %}
{% include 'client/includes/banners/under_search.html' %}
{% endblock %}
{% block bread_scrumbs %}
{% endblock %}
<div class="page-title">
{% block page_title %}
{% endblock %}
</div>
{% block page_filter %}
{% endblock %}
{% block page_body %}
<div class="page-body clearfix">
{% block content_list %}
{% endblock %}
{% block paginator %}
{% endblock %}
{% block content_footer_banner %}
{% endblock %}
</div>
{% block content_text %}
{% comment %}
{% with filter=filter %}
{% include 'includes/event_list_description.html' %}
{% endwith %}
{% endcomment %}
{% endblock %}
{% endblock %}
</div>
</div>
</section>
{% endblock %}

@ -81,7 +81,7 @@ This template include basic anf main styles and js files,
<!--test expo_b -->
<script>
window.sendData = {
"theme": [{% for item in themes %}{{ item }}{% endfor %}],
"theme": [{{ themes|join:", " }}],
"country": "{{ country }}",
"city": "{{ city }}",
"tag": "{{ tag }}"

@ -27,14 +27,14 @@
<h1>{% if meta %}{{ meta.h1 }}{% else %}{% trans 'Конференции' %}: <strong>{{ filter_object.name }}</strong>{% endif %}</h1>
</div>
{% include 'includes/exposition/catalog_filter_period.html' %}
{% include 'client/includes/exposition/catalog_filter_period.html' %}
{% endblock %}
{% block content_list %}
{% include 'includes/conference/conference_list.html' with object_list=object_list %}
{% include 'client/includes/conference/conference_list.html' with object_list=object_list %}
{% endblock %}
{% block paginator %}
{% include 'includes/catalog_paginator.html' with page_obj=page_obj %}
{% include 'client/includes/catalog_paginator.html' with page_obj=page_obj %}
{% endblock %}

@ -26,17 +26,17 @@
<h1>{% if meta %}{{ meta.h1 }}{% else %}{% trans 'Конференции' %}{% endif %}</h1>
</div>
{% include 'includes/exposition/catalog_filter_period.html' %}
{% include 'client/includes/exposition/catalog_filter_period.html' %}
{% endblock %}
{% block content_list %}
{% include 'includes/conference/conference_list.html' with object_list=object_list %}
{% include 'client/includes/conference/conference_list.html' with object_list=object_list %}
{% endblock %}
{% block paginator %}
{% include 'includes/catalog_paginator.html' with page_obj=page_obj %}
{% include 'client/includes/catalog_paginator.html' with page_obj=page_obj %}
{% endblock %}

@ -17,9 +17,9 @@
{% endblock %}
{% block content_list %}
{% include 'includes/exposition/members.html' with object_list=object_list %}
{% include 'client/includes/exposition/members.html' with object_list=object_list %}
{% endblock %}
{% block paginator %}
{% include 'includes/catalog_paginator.html' with page_obj=page_obj %}
{% include 'client/includes/catalog_paginator.html' with page_obj=page_obj %}
{% endblock %}

@ -18,9 +18,9 @@
{% block content_list %}
{% include 'includes/exposition/visitors.html' with object_list=object_list %}
{% include 'client/includes/exposition/visitors.html' with object_list=object_list %}
{% endblock %}
{% block paginator %}
{% include 'includes/catalog_paginator.html' with page_obj=page_obj %}
{% include 'client/includes/catalog_paginator.html' with page_obj=page_obj %}
{% endblock %}

@ -33,9 +33,6 @@
{% endblock %}
{% block content_list %}
{% if paid %}
{% include 'includes/exposition/expo_list_paid.html' with object_list=paid %}
{% endif %}
{% include 'includes/exposition/exposition_list.html' with object_list=object_list %}
{% endblock %}

@ -49,18 +49,13 @@
{% block page_title %}
<div class="page-title">
{# <h1>{% trans 'Выставки' %}: <strong>{{ filter_object.name }}</strong></h1> #}
<h1>{% if meta %}{{ meta.h1 }}{% else %}{% trans 'Выставки' %}: <strong>{{ filter_object.name }}</strong>{% endif %}</h1>
</div>
{% include 'includes/exposition/catalog_filter_period.html' %}
{% endblock %}
{% block content_list %}
{% if paid %}
{% include 'includes/exposition/exposition_list.html' with object_list=paid %}
{% endif %}
{% include 'includes/exposition/exposition_list.html' with object_list=object_list %}
{% endblock %}

@ -10,6 +10,13 @@
<strong><span>{{ blog.created|date:"d E Y" }}</span>{% if blog.tag.all.exists %}{% include 'includes/article_tags.html' with obj=blog %}{% endif %}</strong>
</div>
</div>
{% if forloop.counter == 5 or objects|length < 5 %}
{% include 'client/includes/banners/catalog_inner_2.html' %}
{% endif %}
{% if forloop.counter == 8 %}
{% include 'client/includes/banners/catalog_inner.html' %}
{%endif %}
{% endfor %}
</div>
</div>

@ -10,6 +10,13 @@
<strong><span>{{ news.publish_date|date:"d E Y" }}</span>{% with event=news.get_event %}{% if event %}<a href="{{ event.get_permanent_url }}" title=""><b>{{ event.name }}</b></a>{% endif %}{% endwith %}</strong>
</div>
</div>
{% if forloop.counter == 5 or objects|length < 5 %}
{% include 'client/includes/banners/catalog_inner_2.html' %}
{% endif %}
{% if forloop.counter == 8 %}
{% include 'client/includes/banners/catalog_inner.html' %}
{%endif %}
{% endfor %}
</div>
</div>

@ -1,22 +0,0 @@
<div id="aside_2">
<!-- Яндекс.Директ -->
<script type="text/javascript">
yandex_partner_id = 58151;
yandex_site_bg_color = 'FFFFF';
yandex_ad_format = 'direct';
yandex_font_size = 1;
yandex_direct_type = 'vertical';
yandex_direct_limit = 3;
yandex_direct_title_font_size = 3;
yandex_direct_links_underline = false;
yandex_direct_title_color = '666666';
yandex_direct_url_color = '000000';
yandex_direct_text_color = '000000';
yandex_direct_hover_color = 'FF8000';
yandex_direct_sitelinks_color = 'FF8000';
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>
</div>

@ -1,4 +1,24 @@
<div class="sbnr">
<div class="sbnr-wrap" id="expo_b_aside_2">
<!-- Яндекс.Директ -->
<script type="text/javascript">
yandex_partner_id = 58151;
yandex_site_bg_color = 'FFFFF';
yandex_ad_format = 'direct';
yandex_font_size = 1;
yandex_direct_type = 'vertical';
yandex_direct_limit = 3;
yandex_direct_title_font_size = 3;
yandex_direct_links_underline = false;
yandex_direct_title_color = '666666';
yandex_direct_url_color = '000000';
yandex_direct_text_color = '000000';
yandex_direct_hover_color = 'FF8000';
yandex_direct_sitelinks_color = 'FF8000';
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>
</div>
</div>

@ -1,3 +1,26 @@
<div id="expo_b_catalog_inner">
<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>
</div>

@ -0,0 +1,2 @@
<div id="expo_b_catalog_inner_2">
</div>

@ -1,3 +1,25 @@
<div id="expo_b_detail_inner">
<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>
</div>

@ -1,12 +1,6 @@
{% load static %}
{% load template_filters %}
<div class="abn">
{% if object.theme.all.0.id in banner_themes %}
<a target="_blank" href="/redirect/redirect/24/"><img src="{% static 'client/img/partners/unnamed_2.gif' %}" alt="" /></a>
{% else %}
{% if object.theme.all.1.id in banner_themes %}
<a target="_blank" href="/redirect/redirect/24/"><img src="{% static 'client/img/partners/unnamed_2.gif' %}" alt="" /></a>
{% endif %}
{% endif %}
<div class="abn" id="expo_b_detail_inner_2">
</div>

@ -1,6 +0,0 @@
{% load static %}
<div class="abn">
{% if theme_for_filter.id in banner_themes or tag_for_filter.id in banner_tags %}
<a target="_blank" href="/redirect/redirect/24/"><img src="{% static 'client/img/partners/unnamed_2.gif' %}" alt="" /></a>
{% endif %}
</div>

@ -1,3 +1,12 @@
<div class="abn" id="expo_b_header">
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- 468 на 60 -->
<ins class="adsbygoogle"
style="display:inline-block;width:468px;height:60px"
data-ad-client="ca-pub-5242360491829403"
data-ad-slot="4482648777"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>

@ -4,7 +4,7 @@
<script>
/* НУЖНО ЛИ??? */
window.sendData = {
"theme": [{% for item in themes %}{{ item }}{% endfor %}],
"theme": [{{ themes|join:", " }}],
"country": "{{ country }}",
"city": "{{ city }}",
"tag": "{{ tag }}"

@ -1,16 +0,0 @@
{% load static %}
{% load template_filters %}
<div class="abn">
{% with r=False|random3 %}
{% ifequal r 0 %}
<a target="_blank" href="/redirect/redirect/57/"><img src="{% static 'client/img/partners/cemat15_900x130_bilet.gif' %}" alt="" /></a>
{% endifequal %}
{% ifequal r 1 %}
<a target="_blank" href="/redirect/redirect/58/"><img src="{% static 'client/img/partners/beach.png' %}" alt="" /></a>
{% endifequal %}
{% ifequal r 2 %}
<a target="_blank" href="/redirect/redirect/61/"><img src="{% static 'client/img/partners/IPSA_2015_web_900x130.gif' %}" alt="" /></a>
{% endifequal %}
{% endwith %}
</div>

@ -60,5 +60,12 @@
</div>
</footer>
</li>
{% if forloop.counter == 5 or objects|length < 5 %}
{% include 'client/includes/banners/catalog_inner_2.html' %}
{% endif %}
{% if forloop.counter == 8 %}
{% include 'client/includes/banners/catalog_inner.html' %}
{%endif %}
{% endfor %}
</ul>

@ -92,31 +92,12 @@
</div>
</footer>
</li>
{% if forloop.counter == 5 or objects|length < 5 %}
{% include 'client/includes/banners/catalog_inner_2.html' %}
{% endif %}
{% 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>
{% include 'client/includes/banners/catalog_inner.html' %}
{%endif %}
{% endfor %}

@ -196,6 +196,12 @@
{% endif %}
</dl>
</div>
<div class="clearfix">
<hr />
{% include 'client/includes/banners/detail_inner.html' %}
</div>
<hr />
<div class="i-members clearfix">
<div class="im-participants">

@ -1,154 +0,0 @@
{% load static %}
{% load i18n %}
{% load template_filters %}
{% 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="/expo/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/exposition/{{ 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>
{% else %}
<script src="{% static 'client/js_min/_modules/block.exposition.list.min.js' %}"></script>
{% endif %}<script>
EXPO.exposition.list.init({
note:{
wrapClass:'note-wrap',
wrapDisabledClass:'note-wrap-disabled',
buttonClass:'note-button',
inputClass:'note-text'
},
addCalendarText:"{% trans 'В расписание' %}",
removeCalendarText:"{% trans 'Из расписания' %}"
});
</script>
{% endblock %}

@ -100,9 +100,9 @@
</footer>
</li>
{% if forloop.counter == 5 or objects|length < 5 %}
{% include 'client/includes/banners/expo_list_baner.html' %}
{% endif %}
{% if forloop.counter == 5 or objects|length < 5 %}
{% include 'client/includes/banners/catalog_inner_2.html' %}
{% endif %}
{% if forloop.counter == 8 %}
{% include 'client/includes/banners/catalog_inner.html' %}

@ -206,10 +206,10 @@
</dl>
</div>
<div class="clearfix">
<hr />
{% include 'client/includes/banners/detail_inner.html' %}
</div>
<div class="clearfix">
<hr />
{% include 'client/includes/banners/detail_inner.html' %}
</div>
<hr />
<div class="i-members clearfix">

@ -49,5 +49,12 @@
</div>
</footer>
</li>
{% if forloop.counter == 5 or objects|length < 5 %}
{% include 'client/includes/banners/catalog_inner_2.html' %}
{% endif %}
{% if forloop.counter == 8 %}
{% include 'client/includes/banners/catalog_inner.html' %}
{%endif %}
{% endfor %}
</ul>

@ -83,6 +83,13 @@
</div>
</footer>
</li>
{% if forloop.counter == 5 or objects|length < 5 %}
{% include 'client/includes/banners/catalog_inner_2.html' %}
{% endif %}
{% if forloop.counter == 8 %}
{% include 'client/includes/banners/catalog_inner.html' %}
{%endif %}
{% endfor %}
</ul>
{% block scripts %}

@ -51,6 +51,13 @@
</div>
</footer>
</li>
{% if forloop.counter == 5 or objects|length < 5 %}
{% include 'client/includes/banners/catalog_inner_2.html' %}
{% endif %}
{% if forloop.counter == 8 %}
{% include 'client/includes/banners/catalog_inner.html' %}
{%endif %}
{% endfor %}
</ul>

@ -48,6 +48,13 @@
</div>
</div>
</li>
{% if forloop.counter == 5 or objects|length < 5 %}
{% include 'client/includes/banners/catalog_inner_2.html' %}
{% endif %}
{% if forloop.counter == 8 %}
{% include 'client/includes/banners/catalog_inner.html' %}
{%endif %}
{% endfor %}
</ul>
{% endwith %}

@ -287,6 +287,10 @@
<div class="m-article">
{% include 'client/includes/booking_block.html' with city=place.city place=place %}
</div>
<div class="clearfix">
<hr />
{% include 'client/includes/banners/detail_inner.html' %}
</div>
{% if place.get_nearest_places %}
<div class="e-cat">
<div class="sect-title">{% trans 'Ближайшие выставочные центры' %}</div>

@ -55,22 +55,7 @@
</div>
</div>
<div class="abn">
{% block menu_banner %}
{% comment %}
{% if False|random3 == 1 %}
<a target="_blank" href="/redirect/redirect/31/"><img src="{% static 'client/img/partners/expomap-seminars-01.jpg' %}" alt="" /></a>
{% else %}
{% if False|random3 == 2 %}
<a target="_blank" href="/redirect/redirect/32/"><img src="{% static 'client/img/partners/expomap-seminars-02.gif' %}" alt="" /></a>
{% else %}
<a target="_blank" href="/redirect/redirect/33/"><img src="{% static 'client/img/partners/expomap-seminars-03.gif' %}" alt="" /></a>
{% endif %}
{% endif %}
{% endcomment %}
{% endblock %}
</div>
{% include 'client/includes/banners/main_page_inner.html' %}
</div>
</div>
@ -159,12 +144,6 @@
<div class="mcl">
<div class="mp-reviews-wrap clearfix">
{% include 'client/includes/index/blogs.html' with blogs=blogs %}
{% comment %}
<!-- task EXPO-145-->
<div class="sbnr">
<div class="sbnr-wrap"><a href="#"><img src="{% static 'client/img/_del-temp/bnrs.jpg' %}" alt="" /></a></div>
</div>
{% endcomment %}
</div>
</div>
</div>

@ -1,4 +1,4 @@
{% extends 'base_page.html' %}
{% extends 'client/base_catalog.html' %}
{% load static %}
{% load i18n %}

@ -18,7 +18,7 @@
{% endblock %}
{% block content_list %}
{% include 'includes/place/place_list.html' with object_list=object_list %}
{% include 'client/includes/place/place_list.html' with object_list=object_list %}
{% endblock %}
{% block paginator %}

@ -97,6 +97,7 @@ Disallow: /*/serv-visa-info.php
Disallow: /*/serv-uchastie-info.php
Disallow: /*/serv-catalogue-info.php
Disallow: /*/serv-catalogs-info.php
Disallow: /expo-b/
Sitemap: http://expomap.ru/sitemap.xml
User-agent: Googlebot
@ -198,6 +199,7 @@ Disallow: /*/serv-visa-info.php
Disallow: /*/serv-uchastie-info.php
Disallow: /*/serv-catalogue-info.php
Disallow: /*/serv-catalogs-info.php
Disallow: /expo-b/
Sitemap: http://expomap.ru/sitemap.xml
User-agent: Yandex
@ -299,5 +301,6 @@ Disallow: /*/serv-visa-info.php
Disallow: /*/serv-uchastie-info.php
Disallow: /*/serv-catalogue-info.php
Disallow: /*/serv-catalogs-info.php
Disallow: /expo-b/
Host: expomap.ru
Sitemap: http://expomap.ru/sitemap.xml

@ -1,4 +1,4 @@
{% extends "client/base_page.html" %}
{% extends "client/base_catalog.html" %}
{% block title %}Email confirmation{% endblock %}

@ -1,4 +1,4 @@
{% extends "client/base_page.html" %}
{% extends "client/base_catalog.html" %}
{% block title %}Registration complete{% endblock %}

Loading…
Cancel
Save