Merge branch 'stage8' into t88_newsletter

remotes/origin/t90_expo_page
Slava Kyrachevsky 9 years ago
commit 7afee48c21
  1. 24
      apps/conference/models.py
  2. 13
      apps/conference/tests/test_models.py
  3. 2
      apps/country/admin.py
  4. 18
      apps/expobanner/views.py
  5. 14
      apps/exposition/models.py
  6. 32
      apps/functions/model_mixin.py
  7. 1
      apps/place_exposition/views.py
  8. 2
      apps/service/models.py
  9. 2
      apps/service/urls.py
  10. 14
      apps/service/views.py
  11. 81
      static/client/js/_modules/block.exposition.list.js
  12. 3708
      static/client/js/_modules/page.events.feed.js
  13. 330
      static/client/js/_modules/page.exposition.object.js
  14. 74
      static/client/js/_modules/page.index.js
  15. 2
      static/client/js/rejs/tops.js
  16. 2
      static/client/js_min/_modules/block.exposition.list.min.js
  17. 2
      static/client/js_min/_modules/page.events.feed.min.js
  18. 2
      static/client/js_min/_modules/page.exposition.object.min.js
  19. 1
      static/client/js_min/_modules/page.index.min.js
  20. 2
      templates/c_admin/country/country_add.html
  21. 28
      templates/c_admin/country/country_list.html
  22. 262
      templates/client/accounts/feed.html
  23. 10
      templates/client/includes/conference/conference_list.html
  24. 637
      templates/client/includes/conference/conference_object.html
  25. 6
      templates/client/includes/conference/conference_paid.html
  26. 12
      templates/client/includes/conference/conference_partner.html
  27. 13
      templates/client/includes/conference/conference_services.html
  28. 16
      templates/client/includes/event_list.html
  29. 12
      templates/client/includes/event_steps.html
  30. 238
      templates/client/includes/events/filter_result.html
  31. 224
      templates/client/includes/exposition/expo_list_paid.html
  32. 6
      templates/client/includes/exposition/expo_paid.html
  33. 12
      templates/client/includes/exposition/exposition_list.html
  34. 14
      templates/client/includes/exposition/exposition_object.html
  35. 18
      templates/client/includes/exposition/exposition_services.html
  36. 10
      templates/client/includes/exposition/price.html
  37. 10
      templates/client/includes/exposition/programm.html
  38. 212
      templates/client/includes/exposition/search_result.html
  39. 6
      templates/client/includes/exposition/services.html
  40. 11
      templates/client/includes/exposition/statistic.html
  41. 2
      templates/client/includes/services.html
  42. 18
      templates/client/index.html
  43. 13
      templates/client/place/place_detail.html
  44. 13
      templates/client/place/place_exposition_list.html
  45. 4
      templates/client/specialist_catalog/catalog_detailed.html

@ -146,30 +146,6 @@ class Conference(TranslatableModel, EventMixin, ExpoMixin):
def __unicode__(self):
return self.lazy_translation_getter('name', unicode(self.pk))
def get_services(self):
return self.get_services_detail()
# country_ids = [item for item, bool in self.country.services if bool==True]
# ids = [item for item, bool in self.services if bool==True]
# qs = Service.objects.filter(Q(Q(url__in=country_ids) & Q(type=Service.type.conference)) | Q(url__in=ids))
# return list(qs)
#return list(Service.objects.language().filter(url__in=ids, type=Service.type.conference).order_by('sort'))
def get_services_detail(self):
# excluded = ['tickets']
return super(Conference, self).get_services_detail(None, Service.type.conference)
# def get_nearest_events(self):
# if self.theme.all():
# theme = self.theme.all()[0]
# now = datetime.datetime.now()
# now = now - datetime.timedelta(days=1)
# conferences = Conference.objects.filter(theme__in=[theme], data_begin__gt=now).exclude(id=self.id).order_by('data_begin')
# return conferences[:3]
# else:
# return []
def get_audience(self):
return self.audience.all()

@ -1,11 +1,8 @@
import datetime
from accounts.models import User
from django.contrib.contenttypes.models import ContentType
from django.core.urlresolvers import reverse, NoReverseMatch
from django.test import TestCase
from expobanner.models import Paid, Banner
from service.models import Service
from stats_collector.models import ObjectStats
from theme.models import Tag, Theme
@ -71,16 +68,6 @@ class ConferenceTest(TestCase):
'name', unicode(self.conference.pk))
)
def test_method_get_services(self):
services = [item for item, bool in self.conference.services if bool]
qs = Service.objects.language()
qs = qs.filter(url__in=services)
self.assertEqual(
sorted(self.conference.get_services(), key=lambda x: x.pk),
sorted(list(qs), key=lambda x: x.pk)
)
def test_method_get_news_url(self):
self.assertEqual(
self.conference.get_news_url(),

@ -81,7 +81,7 @@ def country_change(request, url):
'logo': c.logo}
if c.capital:
data['capital'] = c.capital.id
data['capital'] = c.capital_id
#data from translated fields
for code, name in settings.LANGUAGES:

@ -1,10 +1,10 @@
# -*- coding: utf-8 -*-
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 django.shortcuts import redirect, get_object_or_404, render
from .models import Banner, BannerGroup, URL, Top
from expobanner.utils import get_banner_by_params, get_client_ip, get_top_events, get_referer_view, set_cookie
@ -102,7 +102,13 @@ def get_top(request):
tops = Top.cached.all()
events = get_top_events(tops, params, request)
context = {'objects': events}
ctx = {'objects': events}
if not events:
return HttpResponse('')
if catalog == 'places':
return render_to_response('client/includes/exposition/expo_top_place.html', context, context_instance=RequestContext(request))
return render_to_response('client/includes/exposition/expo_top.html', context, context_instance=RequestContext(request))
return render(
request, 'client/includes/exposition/expo_top_place.html', ctx
)
return render(request, 'client/includes/exposition/expo_top.html', ctx)

@ -5,7 +5,6 @@ from django.contrib.contenttypes import generic
from django.core.urlresolvers import reverse_lazy
from django.db import models
from django.db.models.signals import post_save, pre_save
from django.dispatch import receiver
from django.utils import translation
from django.utils.translation import ugettext as _
from events.models import TargetAudience
@ -171,19 +170,6 @@ class Exposition(TranslatableModel, EventMixin, ExpoMixin):
def get_price(self):
return self.price_day or self.price_all
def get_services(self):
return self.get_services_detail()
# country_ids = [item for item, bool in self.country.services if bool==True]
# ids = [item for item, bool in self.services if bool==True]
# qs = Service.objects.language().filter(Q(Q(url__in=country_ids) & Q(type=Service.type.expo)) | Q(url__in=ids))
# return list(qs)
def get_services_detail(self):
excluded = ['visit']
return super(Exposition, self).get_services_detail(excluded, Service.type.expo)
def get_parent(self):
return {}

@ -245,38 +245,6 @@ class EventMixin(object):
def cancel(self):
self.canceled_by_administrator = True
def get_services(self):
country_ids = [item for item, bool in self.country.services if bool==True]
ids = [item for item, bool in self.services if bool==True and item in country_ids]
return list(Service.objects.language().filter(url__in=ids).order_by('sort'))
def get_services_detail(self, excluded, _type):
if not isinstance(getattr(self, '_get_services_detail', None), list):
# excluded = ['visit', 'tickets']
# country_ids = [item for item, bool in self.country.services if bool==True]
services = [item for item, bool in self.services if bool]
qs = Service.objects.language()
if excluded is not None:
qs = qs.exclude(url__in=excluded)
# qs = qs.filter(Q(Q(url__in=country_ids) & Q(type=_type)) | Q(url__in=ids))
qs = qs.filter(url__in=services)
self._get_services_detail = list(qs)
# import pdb; pdb.set_trace()
#двигаем билеты сразу за переводом
if excluded is None or 'tickets' not in excluded:
translator_idx = tickets = None
for idx, service in enumerate(self._get_services_detail):
if service.url == 'translator':
translator_idx = idx + 1
elif service.url == 'tickets':
tickets = service
if tickets and translator_idx:
self._get_services_detail.remove(tickets)
self._get_services_detail.insert(translator_idx, tickets)
return self._get_services_detail
def duration_days(self, month=None):
if not month:
d = self.data_end - self.data_begin

@ -237,7 +237,6 @@ class PlaceExpositionListView(MetadataMixin, ListView):
места, по ссылке "Все события"
"""
template_name = 'client/place/place_exposition_list.html'
# cache_range = settings.CACHE_RANGE
def get_object(self):
slug = self.kwargs.get('slug')

@ -6,7 +6,7 @@ from django.db.models.signals import post_save
from django.utils.translation import ugettext as _
from functions.custom_fields import EnumField
from functions.signal_handlers import post_save_handler
from hvad.models import TranslatableModel, TranslatedFields, TranslationManager
from hvad.models import TranslatableModel, TranslatedFields
CURENCIES = ('', 'USD', 'RUB', 'EUR')

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
from django.conf.urls import patterns, include, url
from django.conf.urls import patterns, url
from views import ServiceView, CallBackListView, VisitListView, TranslationListView, AdvertisingListView, \
ParticipationListView, RemoteListView,TicketsListView, Thanks

@ -2,23 +2,17 @@
import json
from itertools import chain
from django.http import HttpResponse
from django.views.generic import ListView, FormView, TemplateView
from django.shortcuts import get_object_or_404
from django.http import Http404
from django.http import HttpResponseRedirect, HttpResponse
from haystack.query import EmptySearchQuerySet
from meta.views import MetadataMixin
from accounts.models import UserLog
from exposition.models import Exposition
from conference.models import Conference
from functions.custom_views import ExpoListView
from models import Service
from order_forms import TranslationForm, CatalogForm, VisitForm, RemoteForm, ParticipationForm, TicketsForm,\
AdvertiseForm, BuildStandForm
#from functions.search_forms import CompanySearchForm
from service.models import CallBack, Visit, Translation, Advertising, Participation, Remote, Tickets
order_forms = {'translator': TranslationForm, 'catalog': CatalogForm, 'participation': ParticipationForm,
@ -121,12 +115,12 @@ def advertise(request, catalog=None, event_url=None):
raise HttpResponse('not ajax')
from service.models import CallBack, Visit, Translation, Advertising, Participation, Remote, Tickets
class AbstractOrderListView(ListView):
template_name = 'c_admin/service/order_list.html'
paginate_by = 20
class CallBackListView(AbstractOrderListView):
model = CallBack
@ -138,15 +132,19 @@ class VisitListView(AbstractOrderListView):
class TranslationListView(AbstractOrderListView):
model = Translation
class AdvertisingListView(AbstractOrderListView):
model = Advertising
class ParticipationListView(AbstractOrderListView):
model = Participation
class RemoteListView(AbstractOrderListView):
model = Remote
class TicketsListView(AbstractOrderListView):
model = Tickets

@ -1,78 +1,27 @@
var EXPO = EXPO || {}; //isolated namespace
EXPO.exposition = EXPO.exposition || {};
if (EXPO.exposition.list){
console.warn('WARNING: EXPO.place.object is already defined!');
console.warn('WARNING: EXPO.place.object is already defined!');
}else {
EXPO.exposition.list = (function () {
EXPO.exposition.list = (function () {
// dependencies
var com = EXPO.common;
var com = EXPO.common;
// variables
var that = {},
Note = function (it, opt) {
this.opt = opt;
this.DOMthis = it;
this.DOMbutton = it.querySelector('.'+opt.buttonClass);
this.DOMinput = it.querySelector('.'+opt.inputClass);
this.inputName = this.DOMinput.getAttribute('name');
this.url = this.DOMbutton.getAttribute('href');
this._controller();
};
Note.prototype = {
_init: function () {
},
_controller: function () {
var self = this;
$(this.DOMinput).on('blur', function () {
self.send();
});
$(this.DOMbutton).on('click', function () {
return false;
});
},
send: function () {
var data = {},
response,
self = this,
handler = function (data) {
if (data.success) {
console.log('ok');
$(self.DOMbutton).addClass('active');
} else {
console.log('data not send');
}
};
data[this.inputName] = this.DOMinput.value;
response = com.getRequest(data,this.url,handler);
}
};
that.opt = {}; //свойства по умолчанию
var that = {};
that.opt = {}; //свойства по умолчанию
//private
$(function () {
});
$(function () {
});
// methods
//инициализация общих свойств
that.init = function (options) {
$.extend(this.opt, options);
this.notes = [];
var self = this;
$('.'+this.opt.note.wrapClass).each(function () {
var note = new Note(this,self.opt.note);
self.notes.push(note);
});
$('.'+this.opt.note.wrapDisabledClass).on('click', function () {
$.fancybox.open('#pw-login');
return false;
});
com.opt.addCalendarText = this.opt.addCalendarText;
com.opt.removeCalendarText = this.opt.removeCalendarText;
};
return that;
}());
//инициализация общих свойств
that.init = function (options) {
$.extend(this.opt, options);
com.opt.addCalendarText = this.opt.addCalendarText;
com.opt.removeCalendarText = this.opt.removeCalendarText;
};
return that;
}());
}

File diff suppressed because it is too large Load Diff

@ -1,202 +1,154 @@
var EXPO = EXPO || {}; //isolated namespace
EXPO.exposition = EXPO.exposition || {};
if (EXPO.exposition.object){
console.warn('WARNING: EXPO.exposition.object is already defined!');
console.warn('WARNING: EXPO.exposition.object is already defined!');
}else {
EXPO.exposition.object = (function () {
EXPO.exposition.object = (function () {
// dependencies
var com = EXPO.common,
$waiter;
var com = EXPO.common,
$waiter;
// variables
var that = {},
Note = function (it, opt) {
this.opt = opt;
this.DOMthis = it;
this.DOMbutton = it.querySelector('.'+opt.buttonClass);
this.DOMinput = it.querySelector('.'+opt.inputClass);
this.inputName = this.DOMinput.getAttribute('name');
this.url = this.DOMbutton.getAttribute('href');
this._controller();
};
Note.prototype = {
_init: function () {
},
_controller: function () {
var self = this;
$(this.DOMinput).on('blur', function () {
self.send();
});
$(this.DOMbutton).on('click', function () {
return false;
});
},
send: function () {
var data = {},
response,
self = this,
handler = function (data) {
if (data.success){
console.log('ok');
$(self.DOMbutton).addClass('active');
}else{
console.log('data not send');
}
};
data[this.inputName] = this.DOMinput.value;
response = com.getRequest(data,this.url,handler);
}
};
that.opt = {}; //свойства по умолчанию
var that = {};
that.opt = {}; //свойства по умолчанию
//private
$(function () {
$waiter = $('#wait-ajax:not(.absolute)').css({'z-index': '8031'});
});
$(function () {
$waiter = $('#wait-ajax:not(.absolute)').css({'z-index': '8031'});
});
// methods
//инициализация общих свойств
that.init = function (options) {
$.extend(this.opt, options);
var self = this,
$visitButtons = $('.'+this.opt.visit.activeClass+', .'+this.opt.visit.passiveClass);
this.notes = [];
$('.'+this.opt.note.wrapClass).each(function () {
var note = new Note(this,self.opt.note);
self.notes.push(note);
});
$('.'+this.opt.note.wrapDisabledClass).on('click', function () {
$.fancybox.open('#pw-login');
return false;
});
com.opt.addCalendarText = this.opt.addCalendarText;
com.opt.removeCalendarText = this.opt.removeCalendarText;
/**
* visit buttons
*/
$visitButtons.off('click');
$visitButtons.on('click', function () {
if ($(this).hasClass(self.opt.visit.activeClass)){
/**
* I plan to visit
*/
$('.'+self.opt.visit.activeClass).hide().siblings('.'+self.opt.visit.passiveClass).show();
$('#'+self.opt.visit.visitorsListId).append(self.opt.visit.currentHtml);
$('#'+self.opt.visit.somebodyId).removeClass("hidden");
$('#'+self.opt.visit.nobodyId).addClass("hidden");
}else{
/**
* refuse to visit
*/
$('.'+self.opt.visit.passiveClass).hide().siblings('.'+self.opt.visit.activeClass).show();
$('#'+self.opt.visit.visitorsListId).children(".current").remove();
if($('#'+self.opt.visit.visitorsListId).children().length == 0){
$('#'+self.opt.visit.somebodyId).addClass("hidden");
$('#'+self.opt.visit.nobodyId).removeClass("hidden");
}
}
return false;
});
/**
* advertise form validation
*/
$('#'+this.opt.advertise.id).on("submit", function () {
var formData = $(this).serialize(),
formUrl = $(this).attr("action"),
$form = $(this),
/**
* executes after AJAX get request is complete
* @param data - data recieved from server ex
*/
handler = function (data) {
var clearValue = function () {
$('.err',$form).removeClass("err");
$('.pwf-msg',$form).text('');
};
if (data.success != true){
clearValue();
for (var k in data.errors){
if (data.errors.hasOwnProperty(k)) {
$('input[name="'+k+'"]',$form)
.closest(".required").addClass("err")
.siblings(".pwf-msg").text(data.errors[k]);
}
}
}else{
clearValue();
//инициализация общих свойств
that.init = function (options) {
$.extend(this.opt, options);
var self = this,
$visitButtons = $('.'+this.opt.visit.activeClass+', .'+this.opt.visit.passiveClass);
com.opt.addCalendarText = this.opt.addCalendarText;
com.opt.removeCalendarText = this.opt.removeCalendarText;
/**
* visit buttons
*/
$visitButtons.off('click');
$visitButtons.on('click', function () {
if ($(this).hasClass(self.opt.visit.activeClass)){
/**
* I plan to visit
*/
$('.'+self.opt.visit.activeClass).hide().siblings('.'+self.opt.visit.passiveClass).show();
$('#'+self.opt.visit.visitorsListId).append(self.opt.visit.currentHtml);
$('#'+self.opt.visit.somebodyId).removeClass("hidden");
$('#'+self.opt.visit.nobodyId).addClass("hidden");
}else{
/**
* refuse to visit
*/
$('.'+self.opt.visit.passiveClass).hide().siblings('.'+self.opt.visit.activeClass).show();
$('#'+self.opt.visit.visitorsListId).children(".current").remove();
if($('#'+self.opt.visit.visitorsListId).children().length == 0){
$('#'+self.opt.visit.somebodyId).addClass("hidden");
$('#'+self.opt.visit.nobodyId).removeClass("hidden");
}
}
return false;
});
/**
* advertise form validation
*/
$('#'+this.opt.advertise.id).on("submit", function () {
var formData = $(this).serialize(),
formUrl = $(this).attr("action"),
$form = $(this),
/**
* executes after AJAX get request is complete
* @param data - data recieved from server ex
*/
handler = function (data) {
var clearValue = function () {
$('.err',$form).removeClass("err");
$('.pwf-msg',$form).text('');
};
if (data.success !== true){
clearValue();
for (var k in data.errors){
if (data.errors.hasOwnProperty(k)) {
$('input[name="'+k+'"]',$form)
.closest(".required").addClass("err")
.siblings(".pwf-msg").text(data.errors[k]);
}
}
}else{
clearValue();
dataLayer.push({'event': 'advmemberform'});
$('input:text',$form).val('');
$.fancybox.close();
}
$waiter.hide();
};
$waiter.show();
com.postRequest(formData,formUrl,handler);
return false;
});
/**
* event news subscribe form validation
*/
$('#'+this.opt.event_news_subscribe.id).on("submit", function () {
var formData = $(this).serialize(),
formUrl = $(this).attr("action"),
$form = $(this),
/**
* executes after AJAX get request is complete
* @param data - data recieved from server ex
*/
handler = function (data) {
var clearValue = function () {
$('.err',$form).removeClass("err");
$('.pwf-msg',$form).text('');
};
if (data.success != true){
clearValue();
for (var k in data.errors){
console.log(data.errors.hasOwnProperty(k));
console.log(k);
if (data.errors.hasOwnProperty(k)) {
$('input[name="'+k+'"]',$form)
.closest(".required").addClass("err")
.siblings(".pwf-msg").text(data.errors[k]);
}
}
}else{
clearValue();
$('input:text',$form).val('');
$.fancybox.close();
}
$waiter.hide();
};
$waiter.show();
com.postRequest(formData,formUrl,handler);
return false;
});
/**
* event news subscribe form validation
*/
$('#'+this.opt.event_news_subscribe.id).on("submit", function () {
var formData = $(this).serialize(),
formUrl = $(this).attr("action"),
$form = $(this),
/**
* executes after AJAX get request is complete
* @param data - data recieved from server ex
*/
handler = function (data) {
var clearValue = function () {
$('.err',$form).removeClass("err");
$('.pwf-msg',$form).text('');
};
if (data.success != true){
clearValue();
for (var k in data.errors){
console.log(data.errors.hasOwnProperty(k));
console.log(k);
if (data.errors.hasOwnProperty(k)) {
$('input[name="'+k+'"]',$form)
.closest(".required").addClass("err")
.siblings(".pwf-msg").text(data.errors[k]);
}
}
}else{
clearValue();
dataLayer.push({'event': 'event-news-subscribe-form'});
$('input:text',$form).val('');
$('p#success').show();
if (data.sent == true) {
window.location = data.redirect_url;
} else {
window.setTimeout(function () {
$.fancybox.close();
}, 1000);
}
}
$waiter.hide();
};
$waiter.show();
com.postRequest(formData,formUrl,handler);
return false;
});
};
return that;
}());
$('input:text',$form).val('');
$('p#success').show();
if (data.sent == true) {
window.location = data.redirect_url;
} else {
window.setTimeout(function () {
$.fancybox.close();
}, 1000);
}
}
$waiter.hide();
};
$waiter.show();
com.postRequest(formData,formUrl,handler);
return false;
});
};
return that;
}());
}

@ -1,74 +0,0 @@
var EXPO = EXPO || {}; //isolated namespace
if (EXPO.index) {
console.warn('WARNING: EXPO.eventsFeed is already defined!');
} else {
EXPO.index = (function () {
// variables
var that = {};
//default module setting
that.opt = {};
//dependence's
var com = EXPO.common;
//private
var Note = function (it, opt) {
this.opt = opt;
this.DOMthis = it;
this.DOMbutton = it.querySelector('.'+opt.buttonClass);
this.DOMinput = it.querySelector('.'+opt.inputClass);
this.inputName = this.DOMinput.getAttribute('name');
this.url = this.DOMbutton.getAttribute('href');
this._controller();
};
Note.prototype = {
_init: function () {
},
_controller: function () {
var self = this;
$(this.DOMinput).on('blur', function () {
self.send();
});
$(this.DOMbutton).on('click', function () {
return false;
});
},
send: function () {
var data = {},
response,
self = this,
handler = function (data) {
if (data.success){
console.log('ok');
$(self.DOMbutton).addClass('active');
}else{
console.log('data not send');
}
};
data[this.inputName] = this.DOMinput.value;
response = com.getRequest(data,this.url,handler);
}
};
///////////////////////////
//инициализация общих свойств
that.init = function (options) {
// settings extending
$.extend(this.opt, options);
// begin of initialization
var self = this;
this.notes = [];
$('.'+this.opt.note.wrapClass).each(function () {
var note = new Note(this,self.opt.note);
self.notes.push(note);
});
$('.'+this.opt.note.wrapDisabledClass).on('click', function () {
$.fancybox.open('#pw-login');
return false;
});
};
return that;
}());
}

@ -72,7 +72,7 @@
$('div#' + PARENT_ID + ' ul li.cl-item').each(function(index, el) {
$('div.page-body ul.cat-list li.cl-item[data-slug=\'' + $(el).data('slug') + '\']').not(el).remove();
});
}
};
var insertTops = function (text) {
var parent = document.getElementById(PARENT_ID);

@ -1 +1 @@
var EXPO=EXPO||{};EXPO.exposition=EXPO.exposition||{},EXPO.exposition.list?console.warn("WARNING: EXPO.place.object is already defined!"):EXPO.exposition.list=function(){var t=EXPO.common,n={},o=function(t,n){this.opt=n,this.DOMthis=t,this.DOMbutton=t.querySelector("."+n.buttonClass),this.DOMinput=t.querySelector("."+n.inputClass),this.inputName=this.DOMinput.getAttribute("name"),this.url=this.DOMbutton.getAttribute("href"),this._controller()};return o.prototype={_init:function(){},_controller:function(){var t=this;$(this.DOMinput).on("blur",function(){t.send()}),$(this.DOMbutton).on("click",function(){return!1})},send:function(){var n,o={},i=this,e=function(t){t.success?(console.log("ok"),$(i.DOMbutton).addClass("active")):console.log("data not send")};o[this.inputName]=this.DOMinput.value,n=t.getRequest(o,this.url,e)}},n.opt={},$(function(){}),n.init=function(n){$.extend(this.opt,n),this.notes=[];var i=this;$("."+this.opt.note.wrapClass).each(function(){var t=new o(this,i.opt.note);i.notes.push(t)}),$("."+this.opt.note.wrapDisabledClass).on("click",function(){return $.fancybox.open("#pw-login"),!1}),t.opt.addCalendarText=this.opt.addCalendarText,t.opt.removeCalendarText=this.opt.removeCalendarText},n}();
var EXPO=EXPO||{};EXPO.exposition=EXPO.exposition||{},EXPO.exposition.list?console.warn("WARNING: EXPO.place.object is already defined!"):EXPO.exposition.list=function(){var t=EXPO.common,e={};return e.opt={},$(function(){}),e.init=function(e){$.extend(this.opt,e),t.opt.addCalendarText=this.opt.addCalendarText,t.opt.removeCalendarText=this.opt.removeCalendarText},e}();

File diff suppressed because one or more lines are too long

@ -1 +1 @@
var EXPO=EXPO||{};EXPO.exposition=EXPO.exposition||{},EXPO.exposition.object?console.warn("WARNING: EXPO.exposition.object is already defined!"):EXPO.exposition.object=function(){var t,s=EXPO.common,i={},e=function(t,s){this.opt=s,this.DOMthis=t,this.DOMbutton=t.querySelector("."+s.buttonClass),this.DOMinput=t.querySelector("."+s.inputClass),this.inputName=this.DOMinput.getAttribute("name"),this.url=this.DOMbutton.getAttribute("href"),this._controller()};return e.prototype={_init:function(){},_controller:function(){var t=this;$(this.DOMinput).on("blur",function(){t.send()}),$(this.DOMbutton).on("click",function(){return!1})},send:function(){var t,i={},e=this,o=function(t){t.success?(console.log("ok"),$(e.DOMbutton).addClass("active")):console.log("data not send")};i[this.inputName]=this.DOMinput.value,t=s.getRequest(i,this.url,o)}},i.opt={},$(function(){t=$("#wait-ajax:not(.absolute)").css({"z-index":"8031"})}),i.init=function(i){$.extend(this.opt,i);var o=this,n=$("."+this.opt.visit.activeClass+", ."+this.opt.visit.passiveClass);this.notes=[],$("."+this.opt.note.wrapClass).each(function(){var t=new e(this,o.opt.note);o.notes.push(t)}),$("."+this.opt.note.wrapDisabledClass).on("click",function(){return $.fancybox.open("#pw-login"),!1}),s.opt.addCalendarText=this.opt.addCalendarText,s.opt.removeCalendarText=this.opt.removeCalendarText,n.off("click"),n.on("click",function(){return $(this).hasClass(o.opt.visit.activeClass)?($("."+o.opt.visit.activeClass).hide().siblings("."+o.opt.visit.passiveClass).show(),$("#"+o.opt.visit.visitorsListId).append(o.opt.visit.currentHtml),$("#"+o.opt.visit.somebodyId).removeClass("hidden"),$("#"+o.opt.visit.nobodyId).addClass("hidden")):($("."+o.opt.visit.passiveClass).hide().siblings("."+o.opt.visit.activeClass).show(),$("#"+o.opt.visit.visitorsListId).children(".current").remove(),0==$("#"+o.opt.visit.visitorsListId).children().length&&($("#"+o.opt.visit.somebodyId).addClass("hidden"),$("#"+o.opt.visit.nobodyId).removeClass("hidden"))),!1}),$("#"+this.opt.advertise.id).on("submit",function(){var i=$(this).serialize(),e=$(this).attr("action"),o=$(this),n=function(s){var i=function(){$(".err",o).removeClass("err"),$(".pwf-msg",o).text("")};if(1!=s.success){i();for(var e in s.errors)s.errors.hasOwnProperty(e)&&$('input[name="'+e+'"]',o).closest(".required").addClass("err").siblings(".pwf-msg").text(s.errors[e])}else i(),dataLayer.push({event:"advmemberform"}),$("input:text",o).val(""),$.fancybox.close();t.hide()};return t.show(),s.postRequest(i,e,n),!1}),$("#"+this.opt.event_news_subscribe.id).on("submit",function(){var i=$(this).serialize(),e=$(this).attr("action"),o=$(this),n=function(s){var i=function(){$(".err",o).removeClass("err"),$(".pwf-msg",o).text("")};if(1!=s.success){i();for(var e in s.errors)console.log(s.errors.hasOwnProperty(e)),console.log(e),s.errors.hasOwnProperty(e)&&$('input[name="'+e+'"]',o).closest(".required").addClass("err").siblings(".pwf-msg").text(s.errors[e])}else i(),dataLayer.push({event:"event-news-subscribe-form"}),$("input:text",o).val(""),$("p#success").show(),1==s.sent?window.location=s.redirect_url:window.setTimeout(function(){$.fancybox.close()},1e3);t.hide()};return t.show(),s.postRequest(i,e,n),!1})},i}();
var EXPO=EXPO||{};EXPO.exposition=EXPO.exposition||{},EXPO.exposition.object?console.warn("WARNING: EXPO.exposition.object is already defined!"):EXPO.exposition.object=function(){var s,t=EXPO.common,e={};return e.opt={},$(function(){s=$("#wait-ajax:not(.absolute)").css({"z-index":"8031"})}),e.init=function(e){$.extend(this.opt,e);var i=this,o=$("."+this.opt.visit.activeClass+", ."+this.opt.visit.passiveClass);t.opt.addCalendarText=this.opt.addCalendarText,t.opt.removeCalendarText=this.opt.removeCalendarText,o.off("click"),o.on("click",function(){return $(this).hasClass(i.opt.visit.activeClass)?($("."+i.opt.visit.activeClass).hide().siblings("."+i.opt.visit.passiveClass).show(),$("#"+i.opt.visit.visitorsListId).append(i.opt.visit.currentHtml),$("#"+i.opt.visit.somebodyId).removeClass("hidden"),$("#"+i.opt.visit.nobodyId).addClass("hidden")):($("."+i.opt.visit.passiveClass).hide().siblings("."+i.opt.visit.activeClass).show(),$("#"+i.opt.visit.visitorsListId).children(".current").remove(),0==$("#"+i.opt.visit.visitorsListId).children().length&&($("#"+i.opt.visit.somebodyId).addClass("hidden"),$("#"+i.opt.visit.nobodyId).removeClass("hidden"))),!1}),$("#"+this.opt.advertise.id).on("submit",function(){var e=$(this).serialize(),i=$(this).attr("action"),o=$(this),r=function(t){var e=function(){$(".err",o).removeClass("err"),$(".pwf-msg",o).text("")};if(t.success!==!0){e();for(var i in t.errors)t.errors.hasOwnProperty(i)&&$('input[name="'+i+'"]',o).closest(".required").addClass("err").siblings(".pwf-msg").text(t.errors[i])}else e(),dataLayer.push({event:"advmemberform"}),$("input:text",o).val(""),$.fancybox.close();s.hide()};return s.show(),t.postRequest(e,i,r),!1}),$("#"+this.opt.event_news_subscribe.id).on("submit",function(){var e=$(this).serialize(),i=$(this).attr("action"),o=$(this),r=function(t){var e=function(){$(".err",o).removeClass("err"),$(".pwf-msg",o).text("")};if(1!=t.success){e();for(var i in t.errors)console.log(t.errors.hasOwnProperty(i)),console.log(i),t.errors.hasOwnProperty(i)&&$('input[name="'+i+'"]',o).closest(".required").addClass("err").siblings(".pwf-msg").text(t.errors[i])}else e(),dataLayer.push({event:"event-news-subscribe-form"}),$("input:text",o).val(""),$("p#success").show(),1==t.sent?window.location=t.redirect_url:window.setTimeout(function(){$.fancybox.close()},1e3);s.hide()};return s.show(),t.postRequest(e,i,r),!1})},e}();

@ -1 +0,0 @@
var EXPO=EXPO||{};EXPO.index?console.warn("WARNING: EXPO.eventsFeed is already defined!"):EXPO.index=function(){var t={};t.opt={};var n=EXPO.common,i=function(t,n){this.opt=n,this.DOMthis=t,this.DOMbutton=t.querySelector("."+n.buttonClass),this.DOMinput=t.querySelector("."+n.inputClass),this.inputName=this.DOMinput.getAttribute("name"),this.url=this.DOMbutton.getAttribute("href"),this._controller()};return i.prototype={_init:function(){},_controller:function(){var t=this;$(this.DOMinput).on("blur",function(){t.send()}),$(this.DOMbutton).on("click",function(){return!1})},send:function(){var t,i={},o=this,e=function(t){t.success?(console.log("ok"),$(o.DOMbutton).addClass("active")):console.log("data not send")};i[this.inputName]=this.DOMinput.value,t=n.getRequest(i,this.url,e)}},t.init=function(t){$.extend(this.opt,t);var n=this;this.notes=[],$("."+this.opt.note.wrapClass).each(function(){var t=new i(this,n.opt.note);n.notes.push(t)}),$("."+this.opt.note.wrapDisabledClass).on("click",function(){return $.fancybox.open("#pw-login"),!1})},t}();

@ -50,7 +50,7 @@
{# capital #}
<div class="control-group {% if form.capital.errors %}error{% endif %}">
<label class="control-label">{{ form.capital.label }}:</label>
<div class="controls">{{ form.capital}}
<div class="controls">{{ form.capital }}
<span class="help-inline">{{ form.capital.errors }}</span>
</div>
</div>

@ -21,21 +21,21 @@
</div>
<div class="box-content">
<table class="table table-hover">
<thead>
<tr>
<thead>
<tr>
<th>id</th>
<th>Страна</th>
<th>Столица</th>
<th>Страна</th>
<th>Столица</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody>
</tr>
</thead>
<tbody>
{% for item in object_list %}
<tr>
<tr>
<td>{{ item.id }}</td>
<td>{{ item.name }}</td>
<td>{% ifnotequal item.capital None %}{{ item.capital }} {% endifnotequal %}</td>
<td class="center sorting_1">
<td>{{ item.name }}</td>
<td>{{ item.capital|default_if_none:'' }}</td>
<td class="center sorting_1">
<a class="btn btn-info" href="/admin/country/change/{{ item.url|lower }}">
<i class="icon-edit icon-white"></i> Изменить
</a>
@ -44,10 +44,10 @@
</a>
</td>
</tr>
</tr>
{% endfor %}
</tbody>
</table>
</tbody>
</table>
<a class="btn btn-success" href="/admin/country/add"><i class="icon-plus-sign icon-white"></i> Добавить страну</a>
</div>

@ -3,10 +3,10 @@
{% load static %}
{% block bread_scrumbs %}
<div class="bread-crumbs">
<a href="/">{% trans 'Главная страница' %}</a>
<strong>{% trans 'Моя лента событий' %}</strong>
</div>
<div class="bread-crumbs">
<a href="/">{% trans 'Главная страница' %}</a>
<strong>{% trans 'Моя лента событий' %}</strong>
</div>
{% endblock %}
{% block page_title %}
<div class="page-title">
@ -15,42 +15,42 @@
{% endblock %}
{% if object_list %}
{% block head_scripts %}
{% include "client/includes/banners/tops_head_js.html" %}
{% include "client/includes/banners/tops_head_js.html" %}
{% endblock head_scripts %}
{% endif %}
{% block page_body %}
<div class="page-body clearfix events-feed-page">
<div class="events-filter-wrap" id="events-filter-wrap">
<a rel="nofollow" id="filter-show-button" class="button icon-eye " href="javascript:void(0);">{% trans 'Фильтрация ленты' %}</a>
<div class="events-filter" id="events-filter">
<section class="col">
<h2><span id="filter-subject-label" data-default="{% trans 'Тематические фильтры не выбраны' %}" data-selected="{% trans 'Тематика' %}">{% trans 'Тематические фильтры не выбраны' %}</span>: (<a class="change-filter filter-modal-open" href="#filter-pwSubj" id="filter-subj-modal-trigger">{% trans 'Изменить' %}</a>):</h2>
<div class="events-filter-box c-select-box">
<div class="csb-selected-items " >
<div class="csb-selected csb-subj-selected dna-template" id="filter-subject-tags">
<div class="csbs-text ">~~text~~</div>
<a class="csbs-del del-on-page" href="javascript:void(0);" data-checkbox-id="~~id~~">x</a>
</div>
<div class="page-body clearfix events-feed-page">
<div class="events-filter-wrap" id="events-filter-wrap">
<a rel="nofollow" id="filter-show-button" class="button icon-eye " href="javascript:void(0);">{% trans 'Фильтрация ленты' %}</a>
<div class="events-filter" id="events-filter">
<section class="col">
<h2><span id="filter-subject-label" data-default="{% trans 'Тематические фильтры не выбраны' %}" data-selected="{% trans 'Тематика' %}">{% trans 'Тематические фильтры не выбраны' %}</span>: (<a class="change-filter filter-modal-open" href="#filter-pwSubj" id="filter-subj-modal-trigger">{% trans 'Изменить' %}</a>):</h2>
<div class="events-filter-box c-select-box">
<div class="csb-selected-items " >
<div class="csb-selected csb-subj-selected dna-template" id="filter-subject-tags">
<div class="csbs-text ">~~text~~</div>
<a class="csbs-del del-on-page" href="javascript:void(0);" data-checkbox-id="~~id~~">x</a>
</div>
</div>
</div>
</section>
<section class="col ">
<h2 class="mt-0"><span id="filter-place-label" data-default="{% trans 'Географические фильтры не выбраны' %}" data-selected="{% trans 'Место проведения' %}">{% trans 'Географические фильтры не выбраны' %}</span>: (<a class="change-filter filter-modal-open" href="#filter-pwPlace" id="filter-place-modal-trigger">{% trans 'Изменить' %}</a>):</h2>
</div>
</div>
</section>
<section class="col ">
<h2 class="mt-0"><span id="filter-place-label" data-default="{% trans 'Географические фильтры не выбраны' %}" data-selected="{% trans 'Место проведения' %}">{% trans 'Географические фильтры не выбраны' %}</span>: (<a class="change-filter filter-modal-open" href="#filter-pwPlace" id="filter-place-modal-trigger">{% trans 'Изменить' %}</a>):</h2>
<div class="events-filter-box c-select-box">
<div class="csb-selected-items" >
<div class="csb-selected csb-subj-selected dna-template" id="filter-places-tags">
<div class="csbs-text ">~~text~~</div>
<a class="csbs-del del-on-page" href="javascript:void(0);" data-checkbox-id="~~id~~">x</a>
</div>
<div class="events-filter-box c-select-box">
<div class="csb-selected-items" >
<div class="csb-selected csb-subj-selected dna-template" id="filter-places-tags">
<div class="csbs-text ">~~text~~</div>
<a class="csbs-del del-on-page" href="javascript:void(0);" data-checkbox-id="~~id~~">x</a>
</div>
</div>
</div>
</section>
<button class="icon-check apply-filter button" type="submit" id="apply-filter-button">{% trans 'Применить' %}</button>
</div>
<form method="post" action="/profile/feed/" class="search_form" id="filter-block-form">{% csrf_token %}
</div>
</div>
</section>
<button class="icon-check apply-filter button" type="submit" id="apply-filter-button">{% trans 'Применить' %}</button>
</div>
<form method="post" action="/profile/feed/" class="search_form" id="filter-block-form">{% csrf_token %}
<div class="modals">
<div class="search-modal-overlay" id="filter-modal">
<div class="search-modal-wrap fancybox-skin">
@ -69,104 +69,104 @@
</div>
</div>
</div>
</form>
</div>
<div class="filter-hint-block" id="filter-hint-block">
<p><span class="red">*</span>{% trans ' Вы можете настроить ленту событий, один раз выбрав интересные темы и географию с помощью кнопки «Фильтрация ленты».' %}</p>
</div>
{% if object_list %}
{% include 'includes/exposition/exposition_list.html' with object_list=object_list %}
{% else %}
<p class="message-not-found">
<span>
<i class="fa fa-exclamation-triangle"></i>
</span>
<span class="message">
{% trans "Увы, событий, соответствующих выбранным фильтрам, нет в каталоге.<br> Попробуйте укрупнить параметры поиска" %}
</span>
</p>
{% endif %}
{% include 'includes/catalog_paginator.html' with page_obj=page_obj %}
{% if request.GET.debug == '1' %}
<script src="{% static 'client/js/_modules/page.events.feed.js' %}"></script>
{% else %}
<script src="{% static 'client/js_min/_modules/page.events.feed.min.js' %}"></script>
{% endif %}
<script>
EXPO.events.feed.init({
bodyId:'events-filter-wrap',
formId: 'filter-block-form',
activeClass:'active',
modalTriggerClass:'filter-modal-open',
searchData:'{{ filter_form.data_with_parents|safe }}',
closerText: "{% trans ' и еще _ позиции' %}",
closerTextSingle:"{% trans ' и еще _ позиция' %}",
applyButtonId:'apply-filter-button',
place: {
id: 'filter-pwPlace',
selectedItemTemplate: 'filter-csb-selected',
ajaxUrl: window.location.protocol + '//{{ request.get_host }}/search-form/',
autoCompleteUrl: window.location.protocol + '//{{ request.get_host }}/search-form/autocomplete/',
getParentUrl: window.location.protocol + '//{{ request.get_host }}/search-form/get-parent/',
autoCompleteId: 'filter-place-complete-block',
filterInputId: 'filter-place-filter-input',
modalTrigger: 'filter-place-modal-trigger',
selectedItemsContainer: 'filter-csb-selected-items',
clearAllButtonClass: 'modal-clear',
applyBtnClass: 'modal-approve',
tagsBoxId: 'filter-places-tags',
deleteTagClass: 'csbs-del',
bodyId: 'events-filter-wrap',
</form>
</div>
<div class="filter-hint-block" id="filter-hint-block">
<p><span class="red">*</span>{% trans ' Вы можете настроить ленту событий, один раз выбрав интересные темы и географию с помощью кнопки «Фильтрация ленты».' %}</p>
</div>
{% if object_list %}
{% include 'includes/exposition/exposition_list.html' with object_list=object_list %}
{% else %}
<p class="message-not-found">
<span>
<i class="fa fa-exclamation-triangle"></i>
</span>
<span class="message">
{% trans "Увы, событий, соответствующих выбранным фильтрам, нет в каталоге.<br> Попробуйте укрупнить параметры поиска" %}
</span>
</p>
{% endif %}
{% include 'includes/catalog_paginator.html' with page_obj=page_obj %}
{% if request.GET.debug == '1' %}
<script src="{% static 'client/js/_modules/page.events.feed.js' %}"></script>
{% else %}
<script src="{% static 'client/js_min/_modules/page.events.feed.min.js' %}"></script>
{% endif %}
<script>
EXPO.events.feed.init({
bodyId:'events-filter-wrap',
formId: 'filter-block-form',
activeClass:'active',
modalTriggerClass:'filter-modal-open',
searchData:'{{ filter_form.data_with_parents|safe }}',
closerText: "{% trans ' и еще _ позиции' %}",
closerTextSingle:"{% trans ' и еще _ позиция' %}",
applyButtonId:'apply-filter-button',
place: {
id: 'filter-pwPlace',
selectedItemTemplate: 'filter-csb-selected',
ajaxUrl: window.location.protocol + '//{{ request.get_host }}/search-form/',
autoCompleteUrl: window.location.protocol + '//{{ request.get_host }}/search-form/autocomplete/',
getParentUrl: window.location.protocol + '//{{ request.get_host }}/search-form/get-parent/',
autoCompleteId: 'filter-place-complete-block',
filterInputId: 'filter-place-filter-input',
modalTrigger: 'filter-place-modal-trigger',
selectedItemsContainer: 'filter-csb-selected-items',
clearAllButtonClass: 'modal-clear',
applyBtnClass: 'modal-approve',
tagsBoxId: 'filter-places-tags',
deleteTagClass: 'csbs-del',
bodyId: 'events-filter-wrap',
prefix: 'f-p-',
deleteId: 'place-tag-remove',
labelId: 'filter-place-label'
},
subject: {
id: 'filter-pwSubj',
selectedItemTemplate: 'filter-subj-selected',
autoCompleteId: 'filter-subj-complete-block',
ajaxUrl: window.location.protocol + '//{{ request.get_host }}/search-form/',
autoCompleteUrl: window.location.protocol + '//{{ request.get_host }}/search-form/autocomplete/',
filterInputId: 'filter-subj-fliter-input',
modalTrigger: 'fiter-subj-modal-trigger',
getParentUrl: window.location.protocol + '//{{ request.get_host }}/search-form/get-parent/',
selectedItemsContainer: 'filter-csb-subj-selected-items',
subjectTriggerWrapId: 'filter-subj-checks',
//switched by default
defaultOn: ['f-s-exhibition-check', 'f-s-conference-check'],
clearAllButtonClass: 'modal-clear',
applyBtnClass: 'modal-approve',
tagsBoxId: 'filter-subject-tags',
deleteTagClass: 'csbs-del',
bodyId: 'events-filter-wrap',
prefix: 'f-s-',
deleteId: 'subject-tag-remove',
prefix: 'f-p-',
deleteId: 'place-tag-remove',
labelId: 'filter-place-label'
},
subject: {
id: 'filter-pwSubj',
selectedItemTemplate: 'filter-subj-selected',
autoCompleteId: 'filter-subj-complete-block',
ajaxUrl: window.location.protocol + '//{{ request.get_host }}/search-form/',
autoCompleteUrl: window.location.protocol + '//{{ request.get_host }}/search-form/autocomplete/',
filterInputId: 'filter-subj-fliter-input',
modalTrigger: 'fiter-subj-modal-trigger',
getParentUrl: window.location.protocol + '//{{ request.get_host }}/search-form/get-parent/',
selectedItemsContainer: 'filter-csb-subj-selected-items',
subjectTriggerWrapId: 'filter-subj-checks',
//switched by default
defaultOn: ['f-s-exhibition-check', 'f-s-conference-check'],
clearAllButtonClass: 'modal-clear',
applyBtnClass: 'modal-approve',
tagsBoxId: 'filter-subject-tags',
deleteTagClass: 'csbs-del',
bodyId: 'events-filter-wrap',
prefix: 'f-s-',
deleteId: 'subject-tag-remove',
labelId: 'filter-subject-label'
},
modal:{
id:'filter-modal',
wrapClass:'search-modal-wrap',
size:{
'filter-pwSubj':{
width:640,
height:514
},
'filter-pwPlace':{
width:640,
height:460
}
}
},
filter: {
wrapperId:'"events-filter-wrap"',
bodyId:'events-filter',
buttonId:'filter-show-button',
hintId:'filter-hint-block'
labelId: 'filter-subject-label'
},
modal:{
id:'filter-modal',
wrapClass:'search-modal-wrap',
size:{
'filter-pwSubj':{
width:640,
height:514
},
'filter-pwPlace':{
width:640,
height:460
}
}
},
filter: {
wrapperId:'"events-filter-wrap"',
bodyId:'events-filter',
buttonId:'filter-show-button',
hintId:'filter-hint-block'
}
});
</script>
</div>
}
});
</script>
</div>
{% endblock %}

@ -108,11 +108,11 @@
</footer>
</li>
{% if forloop.counter == 5 or objects|length < 5 %}
{% if forloop.counter == 8 or objects|length < 8 %}
{% include 'client/includes/banners/catalog_inner_2.html' %}
{% endif %}
{% if forloop.counter == 10 %}
{% if forloop.counter == 15 %}
{% include 'client/includes/banners/catalog_inner.html' %}
{%endif %}
{% endfor %}
@ -136,12 +136,6 @@
<script>
EXPO.exposition.list.init({
note:{
wrapClass:'note-wrap',
wrapDisabledClass:'note-wrap-disabled',
buttonClass:'note-button',
inputClass:'note-text'
},
addCalendarText:"{% trans 'В расписание' %}",
removeCalendarText:"{% trans 'Из расписания' %}"
});

@ -3,66 +3,66 @@
{% load thumbnail %}
{% load template_filters %}
{% block page_body %}
<div class="m-article event-page">
<div class="item-wrap event clearfix">
<aside>
{% if event.expohit %}
<div class="hit"></div>
{% endif %}
<div class="m-article event-page">
<div class="item-wrap event clearfix">
<aside>
{% if event.expohit %}
<div class="hit"></div>
{% endif %}
{% if event.canceled %}
<div class="cancel"></div>
{% endif %}
<div class="i-pict">
{% with obj=event %}
{% include 'client/includes/show_logo.html' %}
{% endwith %}
</div>
<div class="i-stats">
{% if event.visitors %}
<span class="visitors" title="{% trans 'Посетители' %}">{{ event.visitors }}</span>
{% endif %}
{% if event.members %}
<span class="participants" title="{% trans 'Участники' %}">{{ event.members }}</span>
{% endif %}
</div>
<div class="i-discount">
{% if event.discount %}
<a class="discount-button" href="#">{% trans 'Скидка' %} -{{ event.discount }}%</a>
<div class="dsc-text">{{ event.discount_description|safe|linebreaks }}</div>
{% endif %}
</div>
</aside>
<div class="i-info">
<header>
<h1 class="i-title">
{% if event.main_title %}
{{ event.name|safe }} - {{ event.main_title|lowfirst|safe }}
{% else %}
{{ event.name|safe }}
{% endif %}
</h1>
</header>
<div class="i-date">
{% with obj=event %}
{% include 'client/includes/show_date_block.html' %}
{% endwith %}
<div class="i-pict">
{% with obj=event %}
{% include 'client/includes/show_logo.html' %}
{% endwith %}
</div>
<div class="i-stats">
{% if event.visitors %}
<span class="visitors" title="{% trans 'Посетители' %}">{{ event.visitors }}</span>
{% endif %}
{% if event.members %}
<span class="participants" title="{% trans 'Участники' %}">{{ event.members }}</span>
{% endif %}
</div>
<div class="i-discount">
{% if event.discount %}
<a class="discount-button" href="#">{% trans 'Скидка' %} -{{ event.discount }}%</a>
<div class="dsc-text">{{ event.discount_description|safe|linebreaks }}</div>
{% endif %}
</div>
</aside>
<div class="i-info">
<header>
<h1 class="i-title">
{% if event.main_title %}
{{ event.name|safe }} - {{ event.main_title|lowfirst|safe }}
{% else %}
{{ event.name|safe }}
{% endif %}
</h1>
</header>
<div class="i-date">
{% with obj=event %}
{% include 'client/includes/show_date_block.html' %}
{% endwith %}
{% include "client/includes/sharing_block.html" %}
</div>
{% if event.place %}
<div class="i-address">
<header>
<div class="address">
{{ event.place.adress }}
</div>
<div class="show-map"><a class="toggle-map" href="#">{% trans 'Раскрыть карту' %}</a></div>
</header>
<div class="i-map">
<div class="close-map"><a class="toggle-map" href="#">{% trans 'Скрыть карту' %}</a>
</div>
<div class="map-canvas" id="map-canvas" data-coords="{{ event.place.address.lat|stringformat:'f' }},{{ event.place.address.lng|stringformat:'f' }}" ></div>
</div>
</div>
{% include "client/includes/sharing_block.html" %}
</div>
{% if event.place %}
<div class="i-address">
<header>
<div class="address">
{{ event.place.adress }}
</div>
<div class="show-map"><a class="toggle-map" href="#">{% trans 'Раскрыть карту' %}</a></div>
</header>
<div class="i-map">
<div class="close-map"><a class="toggle-map" href="#">{% trans 'Скрыть карту' %}</a>
</div>
<div class="map-canvas" id="map-canvas" data-coords="{{ event.place.address.lat|stringformat:'f' }},{{ event.place.address.lng|stringformat:'f' }}" ></div>
</div>
</div>
{% else %}
<div class="i-address">
<header>
@ -71,99 +71,98 @@
</div>
</header>
</div>
{% endif %}
<hr />
<div class="i-buttons clearfix">
<div class="ib-main">
{% with event=event user=user %}
{% include 'client/includes/visit_button.html' %}
{% endwith %}
{% include 'client/includes/calendar_button.html' with obj=object %}
{% if request.user.is_admin %}
<a class="button green " href="/admin/conference/{{ object.url }}/">{% trans 'изменить' %}</a>
{% endif %}
{% endif %}
<hr />
<div class="i-buttons clearfix">
<div class="ib-main">
{% with event=event user=user %}
{% include 'client/includes/visit_button.html' %}
{% endwith %}
{% include 'client/includes/calendar_button.html' with obj=object %}
{% if request.user.is_admin %}
<a class="button green " href="/admin/conference/{{ object.url }}/">{% trans 'изменить' %}</a>
{% endif %}
{% if event.photogallery %}
<a class="button blue icon-photo" href="{{ event.get_permanent_url }}photo/">{% trans 'фото' %}</a>
{% endif %}
</div>
<div class="ib-add"><a target="_blank" class="button blue2 icon-find" href="http://www.booking.com/searchresults.html?aid={{ book_aid }}&city={{ object.city.id }}">{% trans 'Найти отель' %}</a></div>
</div>
<hr />
<div class="i-divs clearfix">
<div class="i-subj">
<ul>
{% with themes=event.theme.all %}
{% for theme in themes %}
<li><a href="{{ object.catalog }}theme/{{ theme.url }}/">{{ theme.name }} ({{ theme.conferences_number }})</a></li>
{% endfor %}
{% endwith %}
</div>
<div class="ib-add"><a target="_blank" class="button blue2 icon-find" href="http://www.booking.com/searchresults.html?aid={{ book_aid }}&city={{ object.city.id }}">{% trans 'Найти отель' %}</a></div>
</div>
<hr />
<div class="i-divs clearfix">
<div class="i-subj">
<ul>
{% with themes=event.theme.all %}
{% for theme in themes %}
<li><a href="{{ object.catalog }}theme/{{ theme.url }}/">{{ theme.name }} ({{ theme.conferences_number }})</a></li>
{% endfor %}
{% endwith %}
</ul>
</div>
<div class="i-tags">
{% with tags=event.tag.all %}
{% for tag in tags %}
<a href="{{ object.catalog }}tag/{{ tag.url }}/">{{ tag.name }}</a>{% if forloop.counter != tags|length %},{% endif %}
{% endfor %}
{% endwith %}
</div>
</div>
</div>
</div>
{% include 'client/includes/conference/conference_services.html' with event=event %}
{% include 'includes/event_steps.html' with event=event %}
{% if event.get_photos %}
{% with photos=event.get_photos|slice:"5" %}
<hr />
<div class="i-photo-slides">
<div class="sect-title"><a href="#">{% trans 'Фотографии с прошлой конференции' %}</a></div>
<div id="ps-photo-gallery" class="ps-photo-gallery swiper-container">
<ul class="swiper-wrapper">
{% for photo in photos %}
<li class="swiper-slide">
<img src="{{ photo.get_display_url }}" alt="" />
</li>
{% endfor %}
</ul>
<div class="re-controls">
<a class="prev" href="#">&lt;</a>
<a class="next" href="#">&gt;</a>
</div>
</div>
</div>
{% endwith %}
{% endif %}
<div class="i-event-description">
<h2 class="ied-title">{% if event.event_type == 'expo' %}{% trans 'О выставке' %}{% else %}{% trans 'О конференции' %}{% endif %} {{ event.name|safe }}</h2>
</ul>
</div>
<div class="i-tags">
{% with tags=event.tag.all %}
{% for tag in tags %}
<a href="{{ object.catalog }}tag/{{ tag.url }}/">{{ tag.name }}</a>{% if forloop.counter != tags|length %},{% endif %}
{% endfor %}
{% endwith %}
</div>
</div>
</div>
</div>
{% include 'includes/event_steps.html' with event=event %}
{% if event.get_photos %}
{% with photos=event.get_photos|slice:"5" %}
<hr />
<div class="i-photo-slides">
<div class="sect-title"><a href="#">{% trans 'Фотографии с прошлой конференции' %}</a></div>
<div id="ps-photo-gallery" class="ps-photo-gallery swiper-container">
<ul class="swiper-wrapper">
{% for photo in photos %}
<li class="swiper-slide">
<img src="{{ photo.get_display_url }}" alt="" />
</li>
{% endfor %}
</ul>
<div class="re-controls">
<a class="prev" href="#">&lt;</a>
<a class="next" href="#">&gt;</a>
</div>
</div>
</div>
{% endwith %}
{% endif %}
<div class="i-event-description">
<h2 class="ied-title">{% if event.event_type == 'expo' %}{% trans 'О выставке' %}{% else %}{% trans 'О конференции' %}{% endif %} {{ event.name|safe }}</h2>
{% if event.description %}
<div class="ied-text">{{ event.description|safe }}</div>
{% elif default_description %}
<div class="ied-text" style="text-align: justify">
{{ default_description|safe }}
{{ default_description|safe }}
</div>
{% else %}
{% include "client/includes/conference/default_description.html" with conf=event %}
{% endif %}
</div>
<hr />
<div class="i-event-additional clearfix">
<div class="sect-title">{% trans 'Дополнительная информация' %}</div>
<ul class="e-docs">
{% if event.business_program.exists %}
<li><a href="{{ event.get_permanent_url }}program/">{% trans 'Деловая программа' %}</a></li>
{% endif %}
{% endif %}
</div>
<hr />
<div class="i-event-additional clearfix">
<div class="sect-title">{% trans 'Дополнительная информация' %}</div>
<ul class="e-docs">
{% if event.business_program.exists %}
<li><a href="{{ event.get_permanent_url }}program/">{% trans 'Деловая программа' %}</a></li>
{% endif %}
</ul>
<dl class="add-info">
{% if event.organiser.all|length > 0 %}
<dt>{% trans 'Организатор' %}:</dt>
<dd>
{% with organisers=event.organiser.all %}
{% for organiser in organisers %}
{{ organiser.name }}<br />
{% endfor %}
{% endwith %}
</dd>
</ul>
<dl class="add-info">
{% if event.organiser.all|length > 0 %}
<dt>{% trans 'Организатор' %}:</dt>
<dd>
{% with organisers=event.organiser.all %}
{% for organiser in organisers %}
{{ organiser.name }}<br />
{% endfor %}
{% endwith %}
</dd>
{% else %}
{% if event.org %}
@ -176,135 +175,135 @@
{% endfor %}
{% endif %}
{% endif %}
{% endif %}
{% if event.web_page %}
<dt>{% trans 'Веб-сайт' %}:</dt>
<dd>
<a target="_blank" href="#" data-type="href" data-hash="1qwer" data-url="{{ event.web_page|base64_encode }}" class="link-encode">{{ event.web_page }}</a>
</dd>
{% endif %}
{% if event.get_audience %}
<dt>{% trans 'Аудитория' %}:</dt>
<dd>
{{ event.get_audience }}
</dd>
{% endif %}
{% if event.get_periodic %}
<dt>{% trans 'Периодичность' %}:</dt>
<dd>{{ event.get_periodic }}</dd>
{% endif %}
{% if event.time %}
<dt>{% trans 'Время работы' %}:</dt>
<dd>{{ event.time|safe }}</dd>
{% endif %}
</dl>
</div>
{% if event.web_page %}
<dt>{% trans 'Веб-сайт' %}:</dt>
<dd>
<a target="_blank" href="#" data-type="href" data-hash="1qwer" data-url="{{ event.web_page|base64_encode }}" class="link-encode">{{ event.web_page }}</a>
</dd>
{% endif %}
{% if event.get_audience %}
<dt>{% trans 'Аудитория' %}:</dt>
<dd>
{{ event.get_audience }}
</dd>
{% endif %}
{% if event.get_periodic %}
<dt>{% trans 'Периодичность' %}:</dt>
<dd>{{ event.get_periodic }}</dd>
{% endif %}
{% if event.time %}
<dt>{% trans 'Время работы' %}:</dt>
<dd>{{ event.time|safe }}</dd>
{% endif %}
</dl>
</div>
<div class="clearfix">
<hr />
{% include 'client/includes/banners/detail_inner.html' %}
</div>
{% include "client/includes/article/articles_in_event.html" with event=event news_list=news %}
<hr />
{% include "client/includes/article/articles_in_event.html" with event=event news_list=news %}
<hr />
<div class="i-members clearfix">
<div class="im-participants">
{% with companies=event.company.all|slice:":6" %}
{% if companies %}
{# есть участники #}
<header>
<div class="im-title">{% trans 'Спикеры' %}</div>
<a class="more" href="{{ event.get_permanent_url }}members/">{% trans 'Все спикеры' %}</a>
</header>
<ul>
{% for company in companies %}
<li>
<a href="{{ company.get_permanent_url }}">
<span class="imp-pict">
<div class="i-members clearfix">
<div class="im-participants">
{% with companies=event.company.all|slice:":6" %}
{% if companies %}
{# есть участники #}
<header>
<div class="im-title">{% trans 'Спикеры' %}</div>
<a class="more" href="{{ event.get_permanent_url }}members/">{% trans 'Все спикеры' %}</a>
</header>
<ul>
{% for company in companies %}
<li>
<a href="{{ company.get_permanent_url }}">
<span class="imp-pict">
{% with obj=company %}
{% include 'includes/show_logo.html' %}
{% endwith %}
</span>
{{ company.name }}
</a>
</li>
{% endfor %}
</ul>
{% else %}
{# нет участников #}
<header>
<div class="im-title">{% trans 'Спикеры' %}</div>
<p>{% trans 'Разместите информацию о ключевых спикерах' %}</p>
<p><a href="#pw-advertise" class="button icon-up pw-open" >{% trans 'Рекламировать спикера' %}</a></p>
</header>
{% endif %}
{% endwith %}
</div>
{% with obj=company %}
{% include 'includes/show_logo.html' %}
{% endwith %}
</span>
{{ company.name }}
</a>
</li>
{% endfor %}
</ul>
{% else %}
{# нет участников #}
<header>
<div class="im-title">{% trans 'Спикеры' %}</div>
<p>{% trans 'Разместите информацию о ключевых спикерах' %}</p>
<p><a href="#pw-advertise" class="button icon-up pw-open" >{% trans 'Рекламировать спикера' %}</a></p>
</header>
{% endif %}
{% endwith %}
</div>
<div class="im-visitors">
{% with visitors=event.users.all|slice:":17" %}
<header>
<div class="im-title">{% trans 'Посетители' %}</div>
</header>
<ul id="visitors-list">
{% if visitors %}
{# есть посетители #}
{% for user in visitors %}
{% if user == request.user %}
<li class="current"><a href="{{ user.get_permanent_url }}">{{ user.get_full_name }}&nbsp;{% if user.company %}({{ user.company.name }}){% endif %}</a></li>
{% else %}
<li><a href="{{ user.get_permanent_url }}">{{ user.get_full_name }}&nbsp;{% if user.company %}({{ user.company.name }}){% endif %}</a></li>
{% endif %}
{% endfor %}
{% endif %}
</ul>
<a id="somebody" class=" more mb-1em {% if visitors|length > 0 %}{%else%}hidden{% endif %}" href="{{ event.get_permanent_url }}visitors/">{% trans 'Все посетители' %}</a>
{% endwith %}
<p id="nobody" class=" mb-1em {% if event.users.all|length > 0 %}hidden{% else %}{% endif %}">{% trans 'Пока никто не отметился на событии.' %}</p>
{% with event=event user=user %}
{% include 'client/includes/visit_button.html' %}
{% endwith %}
</div>
</div>
<hr/>
{% if event.members or event.visitors or event.foundation_year %}
<div class="e-num-info">
<div class="eni-stats">
{% if event.members %}
<div class="enis-item"><b>{{ event.members }}</b> {% trans 'участников' %}</div>
{% endif %}
{% if event.visitors %}
<div class="enis-item"><b>{{ event.visitors }}</b> {% trans 'посетителей' %}</div>
{% endif %}
{% if event.foundation_year %}
<div class="eni-founded">{% trans 'Основано в' %} <b>{{ event.foundation_year }}</b> {% trans 'году' %}</div>
{% endif %}
</div>
</div>
{% endif %}
</div>
{% include 'client/includes/booking_block.html' with city=event.city place=event.place event=event %}
<hr />
{% if event.get_nearest_events %}
<div class="e-cat">
<div class="sect-title">{% trans 'Другие конференции, которые могут быть вам интересны' %}</div>
<ul class="cat-list cl-exhibitions">
{% for exp in event.get_nearest_events %}
<li class="cl-item">
<div class="cl-item-wrap clearfix">
<a href="{{ exp.get_permanent_url }}">
<div class="cli-pict">
{% with obj=exp %}
{% include 'client/includes/show_logo.html' %}
{% endwith %}
</div>
</a>
<div class="cli-info">
<div class="cli-top clearfix">
{% if exp.quality_label.rsva.is_set %}
<div class="im-visitors">
{% with visitors=event.users.all|slice:":17" %}
<header>
<div class="im-title">{% trans 'Посетители' %}</div>
</header>
<ul id="visitors-list">
{% if visitors %}
{# есть посетители #}
{% for user in visitors %}
{% if user == request.user %}
<li class="current"><a href="{{ user.get_permanent_url }}">{{ user.get_full_name }}&nbsp;{% if user.company %}({{ user.company.name }}){% endif %}</a></li>
{% else %}
<li><a href="{{ user.get_permanent_url }}">{{ user.get_full_name }}&nbsp;{% if user.company %}({{ user.company.name }}){% endif %}</a></li>
{% endif %}
{% endfor %}
{% endif %}
</ul>
<a id="somebody" class=" more mb-1em {% if visitors|length > 0 %}{%else%}hidden{% endif %}" href="{{ event.get_permanent_url }}visitors/">{% trans 'Все посетители' %}</a>
{% endwith %}
<p id="nobody" class=" mb-1em {% if event.users.all|length > 0 %}hidden{% else %}{% endif %}">{% trans 'Пока никто не отметился на событии.' %}</p>
{% with event=event user=user %}
{% include 'client/includes/visit_button.html' %}
{% endwith %}
</div>
</div>
<hr/>
{% if event.members or event.visitors or event.foundation_year %}
<div class="e-num-info">
<div class="eni-stats">
{% if event.members %}
<div class="enis-item"><b>{{ event.members }}</b> {% trans 'участников' %}</div>
{% endif %}
{% if event.visitors %}
<div class="enis-item"><b>{{ event.visitors }}</b> {% trans 'посетителей' %}</div>
{% endif %}
{% if event.foundation_year %}
<div class="eni-founded">{% trans 'Основано в' %} <b>{{ event.foundation_year }}</b> {% trans 'году' %}</div>
{% endif %}
</div>
</div>
{% endif %}
</div>
{% include 'client/includes/booking_block.html' with city=event.city place=event.place event=event %}
<hr />
{% if event.get_nearest_events %}
<div class="e-cat">
<div class="sect-title">{% trans 'Другие конференции, которые могут быть вам интересны' %}</div>
<ul class="cat-list cl-exhibitions">
{% for exp in event.get_nearest_events %}
<li class="cl-item">
<div class="cl-item-wrap clearfix">
<a href="{{ exp.get_permanent_url }}">
<div class="cli-pict">
{% with obj=exp %}
{% include 'client/includes/show_logo.html' %}
{% endwith %}
</div>
</a>
<div class="cli-info">
<div class="cli-top clearfix">
{% if exp.quality_label.rsva.is_set %}
<div class="cli-approved">
<img width="52" height="42" src="{% static 'client/img/rsva.jpg' %}" alt="" title="Approved Event" />
</div>
@ -319,48 +318,48 @@
<img width="52" height="42" src="{% static 'client/img/approved-logo.png' %}" alt="" title="Approved Event" />
</div>
{% endif %}
<header>
<div class="cli-title"><a href="{{ exp.get_permanent_url }}">{{ exp.name|safe }}</a></div>
</header>
<header>
<div class="cli-title"><a href="{{ exp.get_permanent_url }}">{{ exp.name|safe }}</a></div>
</header>
<div class="cli-descr">
{{ exp.main_title|safe|linebreaks }}
</div>
<div class="cli-descr">
{{ exp.main_title|safe|linebreaks }}
</div>
<div class="cli-bot clearfix">
<div class="cli-date">
{% with obj=exp %}
{% include 'client/includes/show_date_block.html' %}
{% endwith %}
</div>
<div class="cli-place">
<a href="{{ exp.country.get_permanent_url }}">{{ exp.country }}</a>, <a href="{{ exp.city.get_permanent_url }}">{{ exp.city }}</a>
{% if exp.place %}
, <a href="{{ exp.place.get_permanent_url }}">{{ exp.place }}</a>
{% endif %}
</div>
</div>
</div>
</div>
</div>
</li>
{% endfor %}
<li><a class="button more" href="{{ event.get_nearest_events_url|safe }}">{% trans 'Смотреть все' %}</a></li>
<div class="cli-bot clearfix">
<div class="cli-date">
{% with obj=exp %}
{% include 'client/includes/show_date_block.html' %}
{% endwith %}
</div>
<div class="cli-place">
<a href="{{ exp.country.get_permanent_url }}">{{ exp.country }}</a>, <a href="{{ exp.city.get_permanent_url }}">{{ exp.city }}</a>
{% if exp.place %}
, <a href="{{ exp.place.get_permanent_url }}">{{ exp.place }}</a>
{% endif %}
</div>
</div>
</div>
</div>
</div>
</li>
{% endfor %}
<li><a class="button more" href="{{ event.get_nearest_events_url|safe }}">{% trans 'Смотреть все' %}</a></li>
</ul>
</div>
{% endif %}
</ul>
</div>
{% endif %}
{% include 'client/includes/banners/detail_inner_3.html' %}
<div class="e-cat look-also">
<div class="sect-title">{% trans 'Смотрите также:' %}</div>
<a href="{{ event.catalog }}city/{{ event.city.url }}/">{% trans "Конференции" %} {% if request.LANGUAGE_CODE == 'ru' and event.city.inflect %}{{ event.city.inflect }}{% else %}{% trans 'in' %} {{ event.city.name }}{% endif %}</a>
<a href="{{ event.catalog }}country/{{ event.country.url }}/">{% trans "Конференции" %} {% if request.LANGUAGE_CODE == 'ru' and event.country.inflect %}{{ event.country.inflect }}{% else %}{% trans 'in' %} {{ event.country.name }}{% endif %}</a>
{% if event.theme.all %}
<a href="{{ event.catalog }}theme/{{ event.theme.all.0.url }}/country/{{ event.country.url }}/">{% trans "Конференции по тематике " %}&laquo;{{ event.theme.all.0.name|capfirst }}&raquo; {% if request.LANGUAGE_CODE == 'ru' and event.country.inflect %}{{ event.country.inflect }}{% else %}{% trans 'in' %} {{ event.country.name }}{% endif %}</a>
<a href="{{ event.catalog }}theme/{{ event.theme.all.0.url }}/city/{{ event.city.url }}/">{% trans "Конференции по тематике " %}&laquo;{{ event.theme.all.0.name|capfirst }}&raquo; {% if request.LANGUAGE_CODE == 'ru' and event.city.inflect %}{{ event.city.inflect }}{% else %}{% trans 'in' %} {{ event.city.name }}{% endif %}</a>
{% endif %}
</div>
<div class="e-cat look-also">
<div class="sect-title">{% trans 'Смотрите также:' %}</div>
<a href="{{ event.catalog }}city/{{ event.city.url }}/">{% trans "Конференции" %} {% if request.LANGUAGE_CODE == 'ru' and event.city.inflect %}{{ event.city.inflect }}{% else %}{% trans 'in' %} {{ event.city.name }}{% endif %}</a>
<a href="{{ event.catalog }}country/{{ event.country.url }}/">{% trans "Конференции" %} {% if request.LANGUAGE_CODE == 'ru' and event.country.inflect %}{{ event.country.inflect }}{% else %}{% trans 'in' %} {{ event.country.name }}{% endif %}</a>
{% if event.theme.all %}
<a href="{{ event.catalog }}theme/{{ event.theme.all.0.url }}/country/{{ event.country.url }}/">{% trans "Конференции по тематике " %}&laquo;{{ event.theme.all.0.name|capfirst }}&raquo; {% if request.LANGUAGE_CODE == 'ru' and event.country.inflect %}{{ event.country.inflect }}{% else %}{% trans 'in' %} {{ event.country.name }}{% endif %}</a>
<a href="{{ event.catalog }}theme/{{ event.theme.all.0.url }}/city/{{ event.city.url }}/">{% trans "Конференции по тематике " %}&laquo;{{ event.theme.all.0.name|capfirst }}&raquo; {% if request.LANGUAGE_CODE == 'ru' and event.city.inflect %}{{ event.city.inflect }}{% else %}{% trans 'in' %} {{ event.city.name }}{% endif %}</a>
{% endif %}
</div>
{% endblock %}
@ -368,36 +367,30 @@
{% endblock %}
{% block popup %}
{% include 'client/popups/advertise_member.html' with form=advertising_form %}
{% include 'client/popups/advertise_member.html' with form=advertising_form %}
{% endblock %}
{% block scripts %}
{% if request.GET.debug == '1' %}
<script src="{% static 'client/js/_modules/page.exposition.object.js' %}"></script>
{% else %}
<script src="{% static 'client/js_min/_modules/page.exposition.object.min.js' %}"></script>
{% endif %}
<script>
EXPO.exposition.object.init({
visit:{
activeClass:"visit",
passiveClass:"unvisit",
currentHtml:'<li class="current"><a href="{{ request.user.get_permanent_url }}">{{ request.user.get_full_name }}&nbsp;{% if request.user.company %}({{ request.user.company.name }}){% endif %}</a></li>',
visitorsListId:"visitors-list",
somebodyId:"somebody",
nobodyId:"nobody"
},
note:{
wrapClass:'note-wrap',
wrapDisabledClass:'note-wrap-disabled',
buttonClass:'note-button',
inputClass:'note-text'
},
advertise:{
id:"advert-member-form"
},
addCalendarText:"{% trans 'В расписание' %}",
removeCalendarText:"{% trans 'Из расписания' %}"
});
</script>
{% if request.GET.debug == '1' %}
<script src="{% static 'client/js/_modules/page.exposition.object.js' %}"></script>
{% else %}
<script src="{% static 'client/js_min/_modules/page.exposition.object.min.js' %}"></script>
{% endif %}
<script>
EXPO.exposition.object.init({
visit:{
activeClass:"visit",
passiveClass:"unvisit",
currentHtml:'<li class="current"><a href="{{ request.user.get_permanent_url }}">{{ request.user.get_full_name }}&nbsp;{% if request.user.company %}({{ request.user.company.name }}){% endif %}</a></li>',
visitorsListId:"visitors-list",
somebodyId:"somebody",
nobodyId:"nobody"
},
advertise:{
id:"advert-member-form"
},
addCalendarText:"{% trans 'В расписание' %}",
removeCalendarText:"{% trans 'Из расписания' %}"
});
</script>
{% endblock %}

@ -422,12 +422,6 @@
somebodyId:"somebody",
nobodyId:"nobody"
},
note:{
wrapClass:'note-wrap',
wrapDisabledClass:'note-wrap-disabled',
buttonClass:'note-button',
inputClass:'note-text'
},
advertise:{
id:"advert-member-form"
},

@ -87,7 +87,6 @@
{% if event.org %}
{% trans 'Организатор' %}: {{ event.org }}
{% endif %}
<a href="#pw-event-news-subscribe" class="button pw-open new_subribe_btn"><i class="fa fa-at"></i>&nbsp;{% trans 'Подписаться на новости' %}</a>
</div>
</div>
</div>
@ -110,6 +109,7 @@
<a class="button blue icon-photo" href="{{ event.get_permanent_url }}photo/">{% trans 'фото' %}</a>
{% endif %}
</div>
<div class="ib-add"><a class="button pw-open blue2" href="#pw-event-news-subscribe"><i class="fa fa-at"></i> {% trans 'Напомнить о выставке' %}</a></div>
</div>
<hr />
@ -165,10 +165,6 @@
{% endif %}
{% endwith %}
{# <p><a href="#pw-event-news-subscribe" class="button pw-open"><i class="fa fa-at"></i>&nbsp;{% trans 'Подписаться на новости' %}</a>&nbsp;&nbsp;&nbsp;<i>{% blocktrans with name=event.name|safe %}Получайте актуальную информацию о концеренции {{ name }} на свой email{% endblocktrans %}</i></p>#}
{# {% include 'client/includes/conference/conference_services.html' with event=event %}#}
{% include 'client/includes/event_steps.html' with event=event %}
<hr>
@ -583,12 +579,6 @@
somebodyId:"somebody",
nobodyId:"nobody"
},
note:{
wrapClass:'note-wrap',
wrapDisabledClass:'note-wrap-disabled',
buttonClass:'note-button',
inputClass:'note-text'
},
advertise:{
id:"advert-member-form"
},

@ -1,13 +0,0 @@
{% load i18n %}
<div class="i-sub-articles">
<ul>
{% with services=object.get_services_detail %}
{% for service in services %}
<li>
<a href="{{ exposition.get_permanent_url }}service/{{ service.url }}/">{{ service.name }}</a>
</li>
{% endfor %}
{% endwith %}
</ul>
</div>

@ -15,12 +15,12 @@
<div class="hit"></div>
{% endif %}
{% endif %}
<div class="cli-pict">
<div class="cli-pict">
{% with obj=obj %}
{% include 'client/includes/show_logo.html' %}
{% endwith %}
</div>
</a>
</a>
<div class="cli-info">
<div class="cli-top clearfix">
{% if user.is_staff %}
@ -68,21 +68,11 @@
<div class="cli-buttons clearfix">
<div class="cli-m-buttons">
<div class="cli-services">
<a class="button icon-sm" href="#">{% trans 'услуги' %}</a>
<div class="cli-services-sm">
<ul>
{% for service in obj.get_services %}
<li><a href="{{ service.get_permanent_url }}">{{ service.name }}</a></li>
{% endfor %}
</ul>
</div>
</div>
{% with event=obj user=user %}
{% include 'client/includes/calendar_button.html' %}
{% endwith %}
<a class="button green icon-note" href="#">{% trans 'заметка' %}</a>
<a class="button green icon-note" href="#">{% trans 'заметка' %}</a>
</div>
<div class="cli-s-buttons">

@ -38,20 +38,20 @@
<ul>
<li class="s1">
<div class="label">{% trans 'Устраните языковые барьеры' %}</div>
<a class="step" href="https://www.interpreters.travel/ru/new_partner_search?partner_id=44&search[city_name]={{ event.city.name }}" target="_blank"><b>{% trans "ПЕРЕВОДЧИК" %}</b></a>
</li>
<li class="s2">
<div class="label">{% trans 'Закажите отель по лучшей цене' %}</div>
<a class="step" href="http://www.booking.com/searchresults.html?aid={{ book_aid }}&city={{ event.city.id }}&do_availability_check=on&label=expo_search&lang={{ request.LANGUAGE_CODE }}&checkin_monthday={{ event.data_begin|date:'j' }}&checkin_year_month={{ event.data_begin|date:'Y' }}-{{ event.data_begin|date:'n' }}&checkout_monthday={{ event.data_end|date:'j' }}&checkout_year_month={{ event.data_end|date:'Y' }}-{{ event.data_end|date:'n' }}" target="_blank"><b>booking</b>.com</a>
</li>
<li class="s2">
<li class="s3">
<div class="label">{% trans 'Возьмите авто в аренду' %}</div>
<span class="step">Rental Cars</span>
{# <a class="step" href="#" target="_blank">Rental Cars</a>#}
</li>
<li class="s3">
<div class="label">{% trans 'Устраните языковые барьеры' %}</div>
<a class="step" href="https://www.interpreters.travel/ru/new_partner_search?partner_id=44&search[city_name]={{ event.city.name }}" target="_blank"><b>{% trans "ПЕРЕВОДЧИК" %}</b></a>
</li>
</ul>
</div>
{% endif %}

@ -8,106 +8,106 @@
{% endif %}
<ul class="cat-list cl-exhibitions">
{# START FOR #}
{% for result in query %}
<li class="cl-item {% if result.object.canceled %}canceled{% endif %}">
<div class="cl-item-wrap clearfix">
<a target="_blank" href="{{ result.object.get_permanent_url }}">
{% if result.object.canceled %}
<div class="cancel"></div>
{% elif result.object.expohit %}
<div class="hit"></div>
{% endif %}
<div class="cli-pict">
{% with obj=result.object %}
{% include 'client/includes/show_logo.html' %}
{% endwith %}
</div>
</a>
<div class="cli-info">
<div class="cli-top clearfix">
{% if result.object.quality_label.rsva.is_set %}
<div class="cli-approved">
<img width="52" height="42" src="{% static 'client/img/rsva.jpg' %}" alt="" title="Approved Event" />
</div>
{% endif %}
{% if result.object.quality_label.exporating.is_set %}
<div class="cli-approved">
<img width="52" height="42" src="{% static 'client/img/exporating_logo.png' %}" alt="" title="Approved Event" />
</div>
{% endif %}
{% if result.object.quality_label.ufi.is_set %}
<div class="cli-approved">
<img width="52" height="42" src="{% static 'client/img/approved-logo.png' %}" alt="" title="Approved Event" />
</div>
{% endif %}
<header>
<div class="cli-title"><a target="_blank" href="{{ result.object.get_permanent_url }}">{{ result.object.name|safe }}</a></div>
</header>
<div class="cli-descr">
{{ result.object.main_title|safe }}
</div>
</div>
<div class="cli-bot clearfix">
<div class="cli-date">
{% with obj=result.object %}
{% include 'client/includes/show_date_block.html' %}
{% endwith %}
</div>
{% if result.object.country %}
<div class="cli-place">
<a href="{{ result.object.catalog }}country/{{ result.object.country.url }}/">{{ result.object.country }}</a>, <a href="{{ result.object.catalog }}city/{{ result.object.city.url }}/">{{ result.object.city }}</a>
{% if result.object.place %}
, <a href="{{ result.object.place.get_permanent_url }}">{{ result.object.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=result.object %}
{% include 'client/includes/calendar_button.html' with obj=result.object %}
</div>
<div class="cli-s-buttons">
{% include 'client/buttons/booking_button.html' with object=result.object %}
</div>
</div>
</div>
<footer class="clearfix">
<div class="cli-stats">
{% if result.object.visitors %}
<span class="visitors" title="Посетители">{{ result.object.visitors }}</span>
{% endif %}
{% if result.object.members %}
<span class="participants" title="Участники">{{ result.object.members }}</span>
{% endif %}
</div>
<div class="cli-tags">
{% include 'client/includes/exposition/tags.html' with obj=result.object %}
</div>
</footer>
</li>
{% if not request.is_ajax %}
{# START FOR #}
{% for result in query %}
<li class="cl-item {% if result.object.canceled %}canceled{% endif %}">
<div class="cl-item-wrap clearfix">
<a target="_blank" href="{{ result.object.get_permanent_url }}">
{% if result.object.canceled %}
<div class="cancel"></div>
{% elif result.object.expohit %}
<div class="hit"></div>
{% endif %}
<div class="cli-pict">
{% with obj=result.object %}
{% include 'client/includes/show_logo.html' %}
{% endwith %}
</div>
</a>
<div class="cli-info">
<div class="cli-top clearfix">
{% if result.object.quality_label.rsva.is_set %}
<div class="cli-approved">
<img width="52" height="42" src="{% static 'client/img/rsva.jpg' %}" alt="" title="Approved Event" />
</div>
{% endif %}
{% if result.object.quality_label.exporating.is_set %}
<div class="cli-approved">
<img width="52" height="42" src="{% static 'client/img/exporating_logo.png' %}" alt="" title="Approved Event" />
</div>
{% endif %}
{% if result.object.quality_label.ufi.is_set %}
<div class="cli-approved">
<img width="52" height="42" src="{% static 'client/img/approved-logo.png' %}" alt="" title="Approved Event" />
</div>
{% endif %}
<header>
<div class="cli-title"><a target="_blank" href="{{ result.object.get_permanent_url }}">{{ result.object.name|safe }}</a></div>
</header>
<div class="cli-descr">
{{ result.object.main_title|safe }}
</div>
</div>
<div class="cli-bot clearfix">
<div class="cli-date">
{% with obj=result.object %}
{% include 'client/includes/show_date_block.html' %}
{% endwith %}
</div>
{% if result.object.country %}
<div class="cli-place">
<a href="{{ result.object.catalog }}country/{{ result.object.country.url }}/">{{ result.object.country }}</a>, <a href="{{ result.object.catalog }}city/{{ result.object.city.url }}/">{{ result.object.city }}</a>
{% if result.object.place %}
, <a href="{{ result.object.place.get_permanent_url }}">{{ result.object.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=result.object %}
{% include 'client/includes/calendar_button.html' with obj=result.object %}
</div>
<div class="cli-s-buttons">
{% include 'client/buttons/booking_button.html' with object=result.object %}
</div>
</div>
</div>
<footer class="clearfix">
<div class="cli-stats">
{% if result.object.visitors %}
<span class="visitors" title="Посетители">{{ result.object.visitors }}</span>
{% endif %}
{% if result.object.members %}
<span class="participants" title="Участники">{{ result.object.members }}</span>
{% endif %}
</div>
<div class="cli-tags">
{% include 'client/includes/exposition/tags.html' with obj=result.object %}
</div>
</footer>
</li>
{% if not request.is_ajax %}
{% if forloop.counter == 5 or objects|length < 5 %}
{% include 'client/includes/banners/catalog_inner_2.html' %}
{% endif %}
@ -115,32 +115,26 @@
{% if forloop.counter == 10 %}
{% include 'client/includes/banners/catalog_inner.html' %}
{%endif %}
{% endif %}
{% endif %}
{% endfor %}
{# END FOR #}
{% endfor %}
{# END FOR #}
</ul>
{% 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>
{% 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({
addCalendarText:"{% trans 'В расписание' %}",
removeCalendarText:"{% trans 'Из расписания' %}"
});
</script>
{% endblock %}

@ -5,114 +5,114 @@
{% 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%}
{% 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>
{% 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%}
{% 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 %}
{% if forloop.counter == 8 %}
{% if not NO_EXTERNAL_JS %}
<!-- Яндекс.Директ -->
<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>
<!-- Яндекс.Директ -->
<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 %}
{%endif %}
{% endfor %}
</ul>
{% else %}
@ -133,15 +133,9 @@
{% 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 'Из расписания' %}"
});
EXPO.exposition.list.init({
addCalendarText:"{% trans 'В расписание' %}",
removeCalendarText:"{% trans 'Из расписания' %}"
});
</script>
{% endblock %}

@ -429,12 +429,6 @@
somebodyId:"somebody",
nobodyId:"nobody"
},
note:{
wrapClass:'note-wrap',
wrapDisabledClass:'note-wrap-disabled',
buttonClass:'note-button',
inputClass:'note-text'
},
advertise:{
id:"advert-member-form"
},

@ -109,13 +109,13 @@
</footer>
</li>
{% if forloop.counter == 5 %}
{% if forloop.counter == 8 %}
{% include 'client/includes/banners/catalog_inner_2.html' %}
{% elif forloop.last and objects|length < 5 %}
{% elif forloop.last and objects|length < 8 %}
{% include 'client/includes/banners/catalog_inner_2.html' %}
{% endif %}
{% if forloop.counter == 10 %}
{% if forloop.counter == 15 %}
{% include 'client/includes/banners/catalog_inner.html' %}
{%endif %}
{% endfor %}
@ -139,12 +139,6 @@
<script>
EXPO.exposition.list.init({
note:{
wrapClass:'note-wrap',
wrapDisabledClass:'note-wrap-disabled',
buttonClass:'note-button',
inputClass:'note-text'
},
addCalendarText:"{% trans 'В расписание' %}",
removeCalendarText:"{% trans 'Из расписания' %}"
});

@ -91,10 +91,6 @@
</div>
{% endif %}
<div class="event_org">
<a href="#pw-event-news-subscribe" class="button pw-open new_subribe_btn"><i class="fa fa-at"></i>&nbsp;{% trans 'Подписаться на новости' %}</a>
</div>
<hr />
<div class="i-buttons clearfix">
@ -112,7 +108,7 @@
<a class="button blue icon-photo" href="{{ exposition.get_permanent_url }}photo/">{% trans 'фото' %}</a>
{% endif %}
</div>
<div class="ib-add"><a target="_blank" class="button blue2 icon-find" href="http://www.booking.com/searchresults.html?aid={{ book_aid }}&city={{ object.city.id }}">{% trans 'Найти отель' %}</a></div>
<div class="ib-add"><a class="button pw-open blue2" href="#pw-event-news-subscribe"><i class="fa fa-at"></i> {% trans 'Напомнить о выставке' %}</a></div>
</div>
<hr />
@ -138,8 +134,6 @@
</div>
</div>
{% include 'client/includes/exposition/exposition_services.html' with object=exposition %}
{% include 'client/includes/event_steps.html' with event=exposition %}
{% if exposition.get_photos %}
@ -459,12 +453,6 @@
somebodyId:"somebody",
nobodyId:"nobody"
},
note:{
wrapClass:'note-wrap',
wrapDisabledClass:'note-wrap-disabled',
buttonClass:'note-button',
inputClass:'note-text'
},
advertise:{
id:"advert-member-form"
},

@ -1,18 +0,0 @@
{% load i18n %}
<div class="i-sub-articles">
<ul>
{% with services=object.get_services_detail %}
{% for service in services %}
<li>
{# временно создаём условие, т.к. для переводчиков подключаем партнёров #}
{% if service.name == 'Переводчик' %}
<a href="https://www.interpreters.travel/ru/new_partner_search?partner_id=44&search[city_name]={{ object.place.city }}&search_date={{ object.data_begin|date:'Y-m-d' }}" target="_blank">{{ service.name }}</a>
{% else %}
<a href="{{ exposition.get_permanent_url }}service/{{ service.url }}/">{{ service.name }}</a>
{% endif %}
</li>
{% endfor %}
{% endwith %}
</ul>
</div>

@ -257,13 +257,3 @@
<div class="ed-back">
<a href="{{ exposition.get_permanent_url }}">{{ exposition.name|safe }}</a>
</div>
<div class="i-sub-articles">
<ul>
{% with services=exposition.get_services %}
{% for service in services %}
<li><a href="{{ exposition.get_permanent_url }}service/{{ service.url }}/">{{ service.name }}</a></li>
{% endfor %}
{% endwith %}
</ul>
</div>

@ -130,13 +130,3 @@
<div class="ed-back">
<a href="{{ exposition.get_permanent_url }}">{{ exposition.name|safe }}</a>
</div>
<div class="i-sub-articles">
<ul>
{% with services=exposition.get_services %}
{% for service in services %}
<li><a href="{{ exposition.get_permanent_url }}service/{{ service.url }}/">{{ service.name }}</a></li>
{% endfor %}
{% endwith %}
</ul>
</div>

@ -3,94 +3,94 @@
{% load template_filters %}
<ul class="cat-list cl-exhibitions">
{# START FOR #}
{% for result in query %}
<li class="cl-item {% if result.object.canceled %}canceled{% endif %}">
<div class="cl-item-wrap clearfix">
<a target="_blank" href="{{ result.object.get_permanent_url }}">
{% if result.object.canceled %}
<div class="cancel"></div>
{% elif result.object.expohit %}
<div class="hit"></div>
{% endif %}
<div class="cli-pict">
{% with obj=result.object %}
{% include 'client/includes/show_logo.html' %}
{% endwith %}
</div>
</a>
<div class="cli-info">
<div class="cli-top clearfix">
{% if result.object.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 target="_blank" href="{{ result.object.get_permanent_url }}">{{ result.object.name|safe }}</a></div>
</header>
<div class="cli-descr">
{{ result.object.main_title|safe }}
</div>
</div>
<div class="cli-bot clearfix">
<div class="cli-date">
{% with obj=result.object %}
{% include 'client/includes/show_date_block.html' %}
{% endwith %}
</div>
{% if result.object.country %}
<div class="cli-place">
<a href="{{ result.object.catalog }}country/{{ result.object.country.url }}/">{{ result.object.country }}</a>, <a href="{{ result.object.catalog }}city/{{ result.object.city.url }}/">{{ result.object.city }}</a>
{% if result.object.place %}
, <a href="{{ result.object.place.get_permanent_url }}">{{ result.object.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=result.object %}
{% include 'client/includes/calendar_button.html' with obj=result.object %}
</div>
<div class="cli-s-buttons">
{% include 'client/buttons/booking_button.html' with object=result.object %}
</div>
</div>
</div>
<footer class="clearfix">
<div class="cli-stats">
{% if result.object.visitors %}
<span class="visitors" title="Посетители">{{ result.object.visitors }}</span>
{% endif %}
{% if result.object.members %}
<span class="participants" title="Участники">{{ result.object.members }}</span>
{% endif %}
</div>
<div class="cli-tags">
{% include 'client/includes/exposition/tags.html' with obj=result.object %}
</div>
</footer>
</li>
{# START FOR #}
{% for result in query %}
<li class="cl-item {% if result.object.canceled %}canceled{% endif %}">
<div class="cl-item-wrap clearfix">
<a target="_blank" href="{{ result.object.get_permanent_url }}">
{% if result.object.canceled %}
<div class="cancel"></div>
{% elif result.object.expohit %}
<div class="hit"></div>
{% endif %}
<div class="cli-pict">
{% with obj=result.object %}
{% include 'client/includes/show_logo.html' %}
{% endwith %}
</div>
</a>
<div class="cli-info">
<div class="cli-top clearfix">
{% if result.object.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 target="_blank" href="{{ result.object.get_permanent_url }}">{{ result.object.name|safe }}</a></div>
</header>
<div class="cli-descr">
{{ result.object.main_title|safe }}
</div>
</div>
<div class="cli-bot clearfix">
<div class="cli-date">
{% with obj=result.object %}
{% include 'client/includes/show_date_block.html' %}
{% endwith %}
</div>
{% if result.object.country %}
<div class="cli-place">
<a href="{{ result.object.catalog }}country/{{ result.object.country.url }}/">{{ result.object.country }}</a>, <a href="{{ result.object.catalog }}city/{{ result.object.city.url }}/">{{ result.object.city }}</a>
{% if result.object.place %}
, <a href="{{ result.object.place.get_permanent_url }}">{{ result.object.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=result.object %}
{% include 'client/includes/calendar_button.html' with obj=result.object %}
</div>
<div class="cli-s-buttons">
{% include 'client/buttons/booking_button.html' with object=result.object %}
</div>
</div>
</div>
<footer class="clearfix">
<div class="cli-stats">
{% if result.object.visitors %}
<span class="visitors" title="Посетители">{{ result.object.visitors }}</span>
{% endif %}
{% if result.object.members %}
<span class="participants" title="Участники">{{ result.object.members }}</span>
{% endif %}
</div>
<div class="cli-tags">
{% include 'client/includes/exposition/tags.html' with obj=result.object %}
</div>
</footer>
</li>
{% if forloop.counter == 5 or objects|length < 5 %}
{% include 'client/includes/banners/catalog_inner_2.html' %}
@ -100,30 +100,24 @@
{% include 'client/includes/banners/catalog_inner.html' %}
{%endif %}
{% endfor %}
{# END FOR #}
{% endfor %}
{# END FOR #}
</ul>
{% 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>
{% 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({
addCalendarText:"{% trans 'В расписание' %}",
removeCalendarText:"{% trans 'Из расписания' %}"
});
</script>
{% endblock %}

@ -15,12 +15,6 @@
{% elif obj.partner %}
<li><a target="_blank" href="{{ obj.web_page }}">{% trans 'Официальный сайт' %}</a></li>
<li><a target="_blank" href="{{ obj.link }}">{% trans 'Билеты' %}</a></li>
{% else %}
{% with services=obj.get_services %}
{% for service in services %}
<li><a href="{{ obj.get_permanent_url }}service/{{ service.url }}/">{{ service.name }}</a></li>
{% endfor %}
{% endwith %}
{% endif %}
</ul>
</div>

@ -154,14 +154,3 @@
<div class="ed-back">
<a href="{{ exposition.get_permanent_url }}">{{ exposition.name|safe }}</a>
</div>
<div class="i-sub-articles">
<ul>
{% with services=exposition.get_services %}
{% for service in services %}
<li><a href="{{ exposition.get_permanent_url }}service/{{ service.url }}/">{{ service.name }}</a></li>
{% endfor %}
{% endwith %}
</ul>
</div>

@ -4,7 +4,7 @@
<nav>
<ul>
<li><a href="/advertising/">{% trans 'Продвижение событий' %}</a></li>
<li><a href="/service/participation/">{% trans 'Участие в выставках' %}</a></li>
<li><a href="/service/participation/">{% trans 'Организация участия в выставках' %}</a></li>
</ul>
</nav>
</div>

@ -211,21 +211,5 @@
</div>
</section>
{% if request.GET.debug == '1' %}
<script src="{% static 'client/js/_modules/page.index.js' %}"></script>
{% else %}
<script src="{% static 'client/js_min/_modules/page.index.min.js' %}"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.cycle2/2.1.6/jquery.cycle2.min.js" defer></script>
{% endif %}
<script>
EXPO.index.init({
note:{
wrapClass:'note-wrap',
wrapDisabledClass:'note-wrap-disabled',
buttonClass:'note-button',
inputClass:'note-text'
}
});
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.cycle2/2.1.6/jquery.cycle2.min.js" defer></script>
{% endblock %}

@ -260,20 +260,7 @@
<div class="cli-buttons clearfix">
<div class="cli-m-buttons">
<div class="cli-services">
<a class="button icon-sm" href="#">{% trans 'услуги' %}</a>
<div class="cli-services-sm">
<ul>
{% for service in event.get_services %}
<li><a href="{{ service.get_permanent_url }}">{{ service.name }}</a></li>
{% endfor %}
</ul>
</div>
</div>
<a class="button blue icon-calendar" href="{{ event.get_calendar_url }}">{% trans 'в расписание' %}</a>
<a class="button green icon-note" href="#">{% trans 'заметка' %}</a>
</div>
<div class="cli-s-buttons">

@ -60,20 +60,7 @@
<div class="cli-buttons clearfix">
<div class="cli-m-buttons">
<div class="cli-services">
<a class="button icon-sm" href="#">{% trans 'услуги' %}</a>
<div class="cli-services-sm">
<ul>
{% for service in event.get_services %}
<li><a href="{{ service.get_permanent_url }}">{{ service.name }}</a></li>
{% endfor %}
</ul>
</div>
</div>
<a class="button blue icon-calendar" href="{{ event.get_calendar_url }}">{% trans 'в расписание' %}</a>
<a class="button green icon-note" href="#">{% trans 'заметка' %}</a>
</div>
<div class="cli-s-buttons">

@ -230,9 +230,9 @@
<div class="rqob-button">
{# вместо формы выше временно ставим ссылку на партнёров #}
{% if object.type == 1 %}
<a class="ob-text" href="#">{% trans 'заказать услугу' %}</a>
<a class="ob-text link" href="https://www.interpreters.travel/ru/new_partner_search?partner_id=44&search[city_name]={{ object.place.capital }}" target="_blank">{% trans 'найти переводчика' %}</a>
{% else %}
<a class="ob-text link" href="https://www.interpreters.travel/ru/new_partner_search?partner_id=44&search[city_name]={{ object.place }}" target="_blank">{% trans 'заказать услугу' %}</a>
<a class="ob-text link" href="https://www.interpreters.travel/ru/new_partner_search?partner_id=44&search[city_name]={{ object.place }}" target="_blank">{% trans 'найти переводчика' %}</a>
{% endif %}
</div>
</div>

Loading…
Cancel
Save