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

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

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

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

@ -21,22 +21,21 @@ def get_by_sort(banner_list):
def get_banner_by_params(banners_list, urls, params): def get_banner_by_params(banners_list, urls, params):
#print('START. NUMBER of queries = %d'%len(connection.queries))
thematic_banners = [] thematic_banners = []
url_banners = [] url_banners = []
for banner in banners_list: for banner in banners_list:
#print('-------------------------')
#print('number of queries = %d'%len(connection.queries))
# check by theme # check by theme
banner_theme_ids = [str(theme.id) for theme in banner.theme.all()] 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 banner_theme_ids:
if params.get('theme'): if params.get('theme'):
theme = params['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) thematic_banners.append(banner)
continue continue
# check by country # check by country
@ -63,7 +62,7 @@ def get_banner_by_params(banners_list, urls, params):
if common_urls: if common_urls:
url_banners.append(banner) url_banners.append(banner)
continue continue
print('-------------------------')
if thematic_banners: if thematic_banners:
return random.choice(thematic_banners) return random.choice(thematic_banners)
if url_banners: if url_banners:
@ -71,3 +70,43 @@ def get_banner_by_params(banners_list, urls, params):
return None return None
#print('END. NUMBER of queries = %d'%len(connection.queries)) #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 import re
from django.http import HttpResponse from django.http import HttpResponse
from django.shortcuts import redirect, get_object_or_404 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 .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): def click(request, banner_id):
@ -32,7 +34,7 @@ def get_banners(request):
elif url == u.url: elif url == u.url:
good_urls.append(u) good_urls.append(u)
# fill parameters dict # fill parameters dict
params = {'theme': request.GET.get('theme'), params = {'theme': request.GET.getlist('theme', []),
'tag': request.GET.get('tag'), 'tag': request.GET.get('tag'),
'country': request.GET.get('country'), 'country': request.GET.get('country'),
'city': request.GET.get('city'), 'city': request.GET.get('city'),
@ -69,25 +71,8 @@ def get_banners(request):
return HttpResponse(json.dumps(result, indent=4), content_type='application/json') 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): def get_top(request):
params = {'theme': request.GET.get('theme'), params = {'theme': request.GET.getlist('theme', []),
'tag': request.GET.get('tag'), 'tag': request.GET.get('tag'),
'country': request.GET.get('country'), 'country': request.GET.get('country'),
'city': request.GET.get('city'), 'city': request.GET.get('city'),
@ -95,6 +80,5 @@ def get_top(request):
tops = Top.cached.all() tops = Top.cached.all()
events = get_top_events(tops, params) events = get_top_events(tops, params)
expos = Exposition.objects.filter(top__isnull=False) context = {'objects': events}
context = {'objects': expos}
return render_to_response('client/includes/exposition/expo_top.html', context, context_instance=RequestContext(request)) return render_to_response('client/includes/exposition/expo_top.html', context, context_instance=RequestContext(request))

@ -2,14 +2,14 @@
import json import json
import datetime import datetime
from django.http import HttpResponseRedirect, HttpResponse, HttpResponsePermanentRedirect from django.http import HttpResponseRedirect, HttpResponse, HttpResponsePermanentRedirect
from django.contrib import messages
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.conf import settings from django.conf import settings
from django.views.generic import ListView, DetailView from django.views.generic import ListView, DetailView
from django.utils.translation import ugettext as _ 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.http import Http404
from django.utils import translation from django.views.generic.edit import FormMixin
from django.core.mail import EmailMessage
#models #models
from accounts.models import User from accounts.models import User
from models import Exposition from models import Exposition
@ -23,9 +23,7 @@ from service.order_forms import AdvertiseForm
from functions.search_forms import ExpositionSearchForm from functions.search_forms import ExpositionSearchForm
from functions.custom_views import ExpoSearchView from functions.custom_views import ExpoSearchView
from meta.views import MetadataMixin from meta.views import MetadataMixin
from functions.cache_mixin import JitterCacheMixin, CacheMixin from functions.cache_mixin import JitterCacheMixin
class ExpositionBy(JitterCacheMixin, MetadataMixin, ListView): class ExpositionBy(JitterCacheMixin, MetadataMixin, ListView):
@ -156,12 +154,28 @@ class ExpoDetail(JitterCacheMixin, MetadataMixin, DetailView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(ExpoDetail, self).get_context_data(**kwargs) context = super(ExpoDetail, self).get_context_data(**kwargs)
context['advertising_form'] = AdvertiseForm() 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 return context
class ExpositionProgramme(MetadataMixin, DetailView): class ExpositionProgramme(MetadataMixin, DetailView):
model = Exposition model = Exposition
slug_field = 'url' slug_field = 'url'
template_name = 'client/exposition/programm.html' 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): class ExpositionPrice(MetadataMixin, DetailView):
@ -170,20 +184,47 @@ class ExpositionPrice(MetadataMixin, DetailView):
template_name = 'client/exposition/price.html' template_name = 'client/exposition/price.html'
queryset = Exposition.objects.language().select_related('place', 'city', 'country', 'paid_new') 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): class ExpositionStatistic(MetadataMixin, DetailView):
model = Exposition model = Exposition
slug_field = 'url' slug_field = 'url'
template_name = 'client/exposition/statistic.html' 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): class ExpositionThankView(MetadataMixin, DetailView):
model = Exposition model = Exposition
slug_field = 'url' slug_field = 'url'
template_name = 'client/service/thank_u_page.html' 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): def visit_redirect(request, slug):
obj = get_object_or_404(Exposition, url=slug) obj = get_object_or_404(Exposition, url=slug)
redirect = obj.get_permanent_url() + 'price/' redirect = obj.get_permanent_url() + 'price/'
@ -226,7 +267,12 @@ class ExpositionServiceView(MetadataMixin, FormMixin, DetailView):
raise Http404 raise Http404
context['form'] = self.get_form(self.form_class) context['form'] = self.get_form(self.form_class)
context['service'] = self.service 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 return context
def form_valid(self, form): def form_valid(self, form):
@ -248,8 +294,6 @@ class ExpositionServiceView(MetadataMixin, FormMixin, DetailView):
'city':user.profile.city.name if user.profile.city else '', 'city':user.profile.city.name if user.profile.city else '',
'phone': user.profile.phone if user.profile.phone else ''} 'phone': user.profile.phone if user.profile.phone else ''}
return initial return initial
else: else:
return self.initial.copy() return self.initial.copy()
@ -260,12 +304,12 @@ class ExpoList(MetadataMixin, JitterCacheMixin, ListView):
model = Exposition model = Exposition
paginate_by = settings.CLIENT_PAGINATION paginate_by = settings.CLIENT_PAGINATION
template_name = 'client/exposition/exposition_list.html' template_name = 'client/exposition/exposition_list.html'
search_form = ExpositionSearchForm
catalog_url = '/expo/' catalog_url = '/expo/'
year = None year = None
month = None month = None
def get_queryset(self): def get_queryset(self):
MONTHES = settings.MONTHES
if self.request.user.is_staff: if self.request.user.is_staff:
qs = self.model.objects.upcoming() qs = self.model.objects.upcoming()
else: else:
@ -286,24 +330,21 @@ class ExpoList(MetadataMixin, JitterCacheMixin, ListView):
context = super(ExpoList, self).get_context_data(**kwargs) context = super(ExpoList, self).get_context_data(**kwargs)
context['month'] = self.month context['month'] = self.month
context['catalog_url'] = self.catalog_url context['catalog_url'] = self.catalog_url
context['search_form'] = self.search_form
context['year'] = self.year context['year'] = self.year
context['month'] = self.month context['month'] = self.month
return context return context
MONTHES = settings.MONTHES
class ExpoCatalog(MetadataMixin, ListView): class ExpoCatalog(MetadataMixin, ListView):
model = Exposition model = Exposition
paginate_by = settings.CLIENT_PAGINATION paginate_by = settings.CLIENT_PAGINATION
template_name = 'client/exposition/catalog.html' template_name = 'client/exposition/catalog.html'
search_form = ExpositionSearchForm
filter_object = None filter_object = None
year = None year = None
month = None month = None
country = None country = None
city = None city = None
paid = None
def get_filtered_qs(self): def get_filtered_qs(self):
# diferent for views # diferent for views
@ -352,12 +393,8 @@ class ExpoCatalog(MetadataMixin, ListView):
return qs.order_by('data_begin') return qs.order_by('data_begin')
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(ExpoCatalog, self).get_context_data(**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['filter_object'] = self.filter_object
context['year'] = self.year context['year'] = self.year
context['month'] = self.month context['month'] = self.month
@ -366,6 +403,7 @@ class ExpoCatalog(MetadataMixin, ListView):
context['tag_for_filter'] = self.kwargs['tag'] context['tag_for_filter'] = self.kwargs['tag']
return context return context
class ExpoCountryCatalog(ExpoCatalog): class ExpoCountryCatalog(ExpoCatalog):
catalog_url = '/expo/country/' catalog_url = '/expo/country/'
def get_filtered_qs(self): def get_filtered_qs(self):
@ -382,6 +420,7 @@ class ExpoCountryCatalog(ExpoCatalog):
context['country'] = str(self.kwargs['country'].id) context['country'] = str(self.kwargs['country'].id)
return context return context
class ExpoCityCatalog(ExpoCatalog): class ExpoCityCatalog(ExpoCatalog):
catalog_url = '/expo/city/' catalog_url = '/expo/city/'
def get_filtered_qs(self): def get_filtered_qs(self):
@ -411,11 +450,8 @@ class ExpoThemeCatalog(ExpoCatalog):
city_slug = self.kwargs.get('city_slug') city_slug = self.kwargs.get('city_slug')
theme = get_object_or_404(Theme, url=slug) theme = get_object_or_404(Theme, url=slug)
self.kwargs['theme'] = theme 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: if country_slug:
country = get_object_or_404(Country, url=country_slug) country = get_object_or_404(Country, url=country_slug)
self.country = country self.country = country
@ -434,9 +470,9 @@ class ExpoThemeCatalog(ExpoCatalog):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(ExpoThemeCatalog, self).get_context_data(**kwargs) context = super(ExpoThemeCatalog, self).get_context_data(**kwargs)
if self.country: if self.country:
context['country'] = str(self.country.id) context['country'] = self.country
if self.city: if self.city:
context['city'] = str(self.city.id) context['city'] = self.city
context['theme_for_filter'] = self.kwargs['theme'] context['theme_for_filter'] = self.kwargs['theme']
context['themes'] = [str(self.kwargs['theme'].id)] context['themes'] = [str(self.kwargs['theme'].id)]
return context return context
@ -444,16 +480,13 @@ class ExpoThemeCatalog(ExpoCatalog):
class ExpoTagCatalog(ExpoCatalog): class ExpoTagCatalog(ExpoCatalog):
catalog_url = '/expo/tag/' catalog_url = '/expo/tag/'
def get_filtered_qs(self): def get_filtered_qs(self):
#this method used in parent get_queryset #this method used in parent get_queryset
slug = self.kwargs.get('slug') slug = self.kwargs.get('slug')
tag = get_object_or_404(Tag, url=slug) tag = get_object_or_404(Tag, url=slug)
self.kwargs['tag'] = tag self.kwargs['tag'] = tag
qs = self.model.enable.upcoming().filter(tag=tag).exclude(paid__isnull=False) qs = self.model.enable.upcoming().filter(tag=tag)
paid= list(self.model.enable.filter(tag=tag).filter(paid__isnull=False))
if paid:
self.paid = paid
self.filter_object = tag self.filter_object = tag
return qs return qs
@ -469,12 +502,8 @@ class ExpoTagCatalog(ExpoCatalog):
class ExpoVisitors(MetadataMixin, ListView): class ExpoVisitors(MetadataMixin, ListView):
paginate_by = settings.CLIENT_PAGINATION paginate_by = settings.CLIENT_PAGINATION
model = Exposition model = Exposition
#template_name = 'event_visitors.html'
template_name = 'client/exposition/visitors.html' template_name = 'client/exposition/visitors.html'
obj = None obj = None
search_form = ExpositionSearchForm
def get_queryset(self): def get_queryset(self):
slug = self.kwargs.get('slug') slug = self.kwargs.get('slug')
@ -485,20 +514,19 @@ class ExpoVisitors(MetadataMixin, ListView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(ExpoVisitors, self).get_context_data(**kwargs) context = super(ExpoVisitors, self).get_context_data(**kwargs)
context['object'] = self.obj obj = self.obj
context['search_form'] = self.search_form 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 return context
class ExpoMembers(MetadataMixin, ListView): class ExpoMembers(MetadataMixin, ListView):
paginate_by = settings.CLIENT_PAGINATION paginate_by = settings.CLIENT_PAGINATION
model = Exposition model = Exposition
#template_name = 'event_visitors.html'
template_name = 'client/exposition/members.html' template_name = 'client/exposition/members.html'
obj = None obj = None
search_form = ExpositionSearchForm
def get_queryset(self): def get_queryset(self):
slug = self.kwargs.get('slug') slug = self.kwargs.get('slug')
@ -509,8 +537,11 @@ class ExpoMembers(MetadataMixin, ListView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(ExpoMembers, self).get_context_data(**kwargs) context = super(ExpoMembers, self).get_context_data(**kwargs)
context['object'] = self.obj obj = self.obj
context['search_form'] = self.search_form 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 return context
@ -546,11 +577,9 @@ def add_note(request, slug):
return HttpResponse(json.dumps(args), content_type='application/json') 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): def send_to_organiser(request, slug):
exposition = get_object_or_404(Exposition, url=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') name = request.POST.get('person_inf')
email = request.POST.get('person') email = request.POST.get('person')
phone = request.POST.get('phone', '') phone = request.POST.get('phone', '')
@ -563,4 +592,3 @@ def send_to_organiser(request, slug):
redirect_to = '%sservice/thanks/'%exposition.get_permanent_url() 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 -*- # -*- coding: utf-8 -*-
from django.conf.urls import patterns, include, url 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('', urlpatterns = patterns('',
# correct
url(r'search/', PlaceSearchView.as_view()),
# correct
#url(r'country/$', PlaceCountryCatalog.as_view()), #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>.*)/page/(?P<page>\d+)/$', PlaceCountryCatalog.as_view(), {'meta_id':49}),
url(r'country/(?P<slug>.*)/$', 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('photoreport.html', args, context_instance=RequestContext(request))
return render_to_response('place.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): class PlaceDetail(JitterCacheMixin, MetadataMixin, DetailView):
cache_range = settings.CACHE_RANGE cache_range = settings.CACHE_RANGE
model = PlaceExposition model = PlaceExposition
search_form = PlaceSearchForm
slug_field = 'url' slug_field = 'url'
template_name = 'client/place/place_detail.html' template_name = 'client/place/place_detail.html'
@ -96,7 +88,9 @@ class PlaceDetail(JitterCacheMixin, MetadataMixin, DetailView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(PlaceDetail, self).get_context_data(**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 return context
class PlacePhoto(ListView): class PlacePhoto(ListView):
@ -118,7 +112,10 @@ class PlacePhoto(ListView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(PlacePhoto, self).get_context_data(**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 return context
@ -126,7 +123,6 @@ class PlaceList(JitterCacheMixin, MetadataMixin, ListView):
model = PlaceExposition model = PlaceExposition
paginate_by = 10 paginate_by = 10
template_name = 'client/place/place_list.html' template_name = 'client/place/place_list.html'
search_form = PlaceSearchForm
def get_queryset(self): def get_queryset(self):
@ -135,11 +131,6 @@ class PlaceList(JitterCacheMixin, MetadataMixin, ListView):
conf_qs = PlaceConference.objects.language().all() conf_qs = PlaceConference.objects.language().all()
return list(qs)+list(conf_qs) 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): class PlaceCatalog(JitterCacheMixin, MetadataMixin, ListView):
cache_range = settings.CACHE_RANGE cache_range = settings.CACHE_RANGE
@ -170,6 +161,11 @@ class PlaceCountryCatalog(PlaceCatalog):
return list(qs) + list(conf_qs) 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): class PlaceCityCatalog(PlaceCatalog):
catalog_url = '/places/' catalog_url = '/places/'
@ -182,3 +178,8 @@ class PlaceCityCatalog(PlaceCatalog):
qs = self.model.objects.language().select_related('country', 'city').filter(city=city).order_by('-rating') 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) 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 from django.views.generic.base import TemplateView
class Robot(TemplateView): class Robot(TemplateView):
template_name = 'robots.txt' template_name = 'client/robots.txt'
content_type = 'text/plain' content_type = 'text/plain'
class YandexCheck(TemplateView): class YandexCheck(TemplateView):
@ -71,9 +71,7 @@ urlpatterns = patterns('',
url(r'^', include('password_reset.urls')), url(r'^', include('password_reset.urls')),
url(r'^i18n/', include('django.conf.urls.i18n')), url(r'^i18n/', include('django.conf.urls.i18n')),
url(r'^redirect/', include('banners.urls')), url(r'^redirect/', include('banners.urls')),
#url(r'^social/', include('social_auth.urls')),
url(r'^', include('settings.old_urls')), url(r'^', include('settings.old_urls')),
#url(r'^search/', include('haystack.urls')),
url(r'^', include('service.urls')), url(r'^', include('service.urls')),
) )

@ -17,54 +17,33 @@
<hr /> <hr />
{% include 'client/includes/online_consult.html' %} {% include 'client/includes/online_consult.html' %}
{% include 'client/includes/banners/aside_1.html' %}
{% block aside_banner1 %} {% include 'client/includes/banners/aside_1.html' %}
{% 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' %} {% include 'client/includes/services.html' %}
<hr /> <hr />
{% include 'client/includes/announces.html' %} {% 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' %} {% include 'client/includes/side_confs.html' %}
<hr /> <hr />
{% include 'client/includes/banners/aside_2.html' %} {% include 'client/includes/banners/aside_2.html' %}
<hr /> <hr />
<div class="s-news-list"> <div class="s-news-list">
{% include 'client/includes/news.html' with news=news_list %} {% include 'client/includes/news.html' with news=news_list %}
</div> </div>
{% include 'client/includes/banners/aside_3.html' %} {% include 'client/includes/banners/aside_3.html' %}
{% block aside_vk %} {% block aside_vk %}
<div class="vk-widget"> <div class="vk-widget">
{% include 'client/includes/social_widjet.html' %} {% include 'client/includes/social_widjet.html' %}
</div> </div>
{% endblock %} {% endblock %}
{% include 'client/includes/banners/aside_4.html' %} {% include 'client/includes/banners/aside_4.html' %}
</aside> </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 --> <!--test expo_b -->
<script> <script>
window.sendData = { window.sendData = {
"theme": [{% for item in themes %}{{ item }}{% endfor %}], "theme": [{{ themes|join:", " }}],
"country": "{{ country }}", "country": "{{ country }}",
"city": "{{ city }}", "city": "{{ city }}",
"tag": "{{ tag }}" "tag": "{{ tag }}"

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

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

@ -17,9 +17,9 @@
{% endblock %} {% endblock %}
{% block content_list %} {% 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 %} {% endblock %}
{% block paginator %} {% block paginator %}
{% include 'includes/catalog_paginator.html' with page_obj=page_obj %} {% include 'client/includes/catalog_paginator.html' with page_obj=page_obj %}
{% endblock %} {% endblock %}

@ -18,9 +18,9 @@
{% block content_list %} {% 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 %} {% endblock %}
{% block paginator %} {% block paginator %}
{% include 'includes/catalog_paginator.html' with page_obj=page_obj %} {% include 'client/includes/catalog_paginator.html' with page_obj=page_obj %}
{% endblock %} {% endblock %}

@ -33,9 +33,6 @@
{% endblock %} {% endblock %}
{% block content_list %} {% 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 %} {% include 'includes/exposition/exposition_list.html' with object_list=object_list %}
{% endblock %} {% endblock %}

@ -49,18 +49,13 @@
{% block page_title %} {% block page_title %}
<div class="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> <h1>{% if meta %}{{ meta.h1 }}{% else %}{% trans 'Выставки' %}: <strong>{{ filter_object.name }}</strong>{% endif %}</h1>
</div> </div>
{% include 'includes/exposition/catalog_filter_period.html' %} {% include 'includes/exposition/catalog_filter_period.html' %}
{% endblock %} {% endblock %}
{% block content_list %} {% 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 %} {% include 'includes/exposition/exposition_list.html' with object_list=object_list %}
{% endblock %} {% 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> <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>
</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 %} {% endfor %}
</div> </div>
</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> <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>
</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 %} {% endfor %}
</div> </div>
</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">
<div class="sbnr-wrap" id="expo_b_aside_2"> <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>
</div> </div>

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

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

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

@ -1,12 +1,6 @@
{% load static %} {% load static %}
{% load template_filters %} {% load template_filters %}
<div class="abn"> <div class="abn" id="expo_b_detail_inner_2">
{% 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> </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"> <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> </div>

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

@ -92,31 +92,12 @@
</div> </div>
</footer> </footer>
</li> </li>
{% if forloop.counter == 5 or objects|length < 5 %}
{% include 'client/includes/banners/catalog_inner_2.html' %}
{% endif %}
{% if forloop.counter == 8 %} {% if forloop.counter == 8 %}
<!-- Яндекс.Директ --> {% include 'client/includes/banners/catalog_inner.html' %}
<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 %} {%endif %}
{% endfor %} {% endfor %}

@ -196,6 +196,12 @@
{% endif %} {% endif %}
</dl> </dl>
</div> </div>
<div class="clearfix">
<hr />
{% include 'client/includes/banners/detail_inner.html' %}
</div>
<hr /> <hr />
<div class="i-members clearfix"> <div class="i-members clearfix">
<div class="im-participants"> <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> </footer>
</li> </li>
{% if forloop.counter == 5 or objects|length < 5 %} {% if forloop.counter == 5 or objects|length < 5 %}
{% include 'client/includes/banners/expo_list_baner.html' %} {% include 'client/includes/banners/catalog_inner_2.html' %}
{% endif %} {% endif %}
{% if forloop.counter == 8 %} {% if forloop.counter == 8 %}
{% include 'client/includes/banners/catalog_inner.html' %} {% include 'client/includes/banners/catalog_inner.html' %}

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

@ -49,5 +49,12 @@
</div> </div>
</footer> </footer>
</li> </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 %} {% endfor %}
</ul> </ul>

@ -83,6 +83,13 @@
</div> </div>
</footer> </footer>
</li> </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 %} {% endfor %}
</ul> </ul>
{% block scripts %} {% block scripts %}

@ -51,6 +51,13 @@
</div> </div>
</footer> </footer>
</li> </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 %} {% endfor %}
</ul> </ul>

@ -48,6 +48,13 @@
</div> </div>
</div> </div>
</li> </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 %} {% endfor %}
</ul> </ul>
{% endwith %} {% endwith %}

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

@ -55,22 +55,7 @@
</div> </div>
</div> </div>
{% include 'client/includes/banners/main_page_inner.html' %}
<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>
</div> </div>
</div> </div>
@ -159,12 +144,6 @@
<div class="mcl"> <div class="mcl">
<div class="mp-reviews-wrap clearfix"> <div class="mp-reviews-wrap clearfix">
{% include 'client/includes/index/blogs.html' with blogs=blogs %} {% 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> </div>
</div> </div>

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

@ -18,7 +18,7 @@
{% endblock %} {% endblock %}
{% block content_list %} {% 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 %} {% endblock %}
{% block paginator %} {% block paginator %}

@ -97,6 +97,7 @@ Disallow: /*/serv-visa-info.php
Disallow: /*/serv-uchastie-info.php Disallow: /*/serv-uchastie-info.php
Disallow: /*/serv-catalogue-info.php Disallow: /*/serv-catalogue-info.php
Disallow: /*/serv-catalogs-info.php Disallow: /*/serv-catalogs-info.php
Disallow: /expo-b/
Sitemap: http://expomap.ru/sitemap.xml Sitemap: http://expomap.ru/sitemap.xml
User-agent: Googlebot User-agent: Googlebot
@ -198,6 +199,7 @@ Disallow: /*/serv-visa-info.php
Disallow: /*/serv-uchastie-info.php Disallow: /*/serv-uchastie-info.php
Disallow: /*/serv-catalogue-info.php Disallow: /*/serv-catalogue-info.php
Disallow: /*/serv-catalogs-info.php Disallow: /*/serv-catalogs-info.php
Disallow: /expo-b/
Sitemap: http://expomap.ru/sitemap.xml Sitemap: http://expomap.ru/sitemap.xml
User-agent: Yandex User-agent: Yandex
@ -299,5 +301,6 @@ Disallow: /*/serv-visa-info.php
Disallow: /*/serv-uchastie-info.php Disallow: /*/serv-uchastie-info.php
Disallow: /*/serv-catalogue-info.php Disallow: /*/serv-catalogue-info.php
Disallow: /*/serv-catalogs-info.php Disallow: /*/serv-catalogs-info.php
Disallow: /expo-b/
Host: expomap.ru Host: expomap.ru
Sitemap: http://expomap.ru/sitemap.xml 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 %} {% block title %}Email confirmation{% endblock %}

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

Loading…
Cancel
Save