diff --git a/accounts/models.py b/accounts/models.py index ae74b8ed..188748c4 100644 --- a/accounts/models.py +++ b/accounts/models.py @@ -99,14 +99,14 @@ class User(AbstractBaseUser, PermissionsMixin): """ email = models.EmailField( - verbose_name = u'Электронная почта', + verbose_name = u'Email', max_length = 255, #unique = True, db_index = True, ) - username = models.CharField(verbose_name='Почта', max_length=255, unique=True, db_index=True) - first_name = models.CharField(verbose_name='Имя', max_length=255) - last_name = models.CharField(verbose_name='Фамилия', max_length=255) + username = models.CharField(verbose_name='Email', max_length=255, unique=True, db_index=True) + first_name = models.CharField(verbose_name='First name', max_length=255) + last_name = models.CharField(verbose_name='Last name', max_length=255) url = models.SlugField(blank=True) # @@ -156,18 +156,35 @@ class User(AbstractBaseUser, PermissionsMixin): """ send_mail(subject, message, from_email, [self.email]) + def has_perm(self, perm, obj=None): return True def has_module_perms(self, app_label): return True + def get_expositions_number(self): + return len(self.exposition_users.all()) + + def get_conferences_number(self): + return len(self.conference_users.all()) + + def get_seminars_number(self): + return len(self.seminar_users.all()) + + def get_webinars_number(self): + return len(self.webinar_users.all()) + def get_events_number(self): - expositions = self.exposition_users.all() - conferences = self.conference_users.all() - seminars = self.seminar_users.all() - webinars = self.webinar_users.all() - return len(list(expositions)+list(conferences)+list(seminars)+list(webinars)) + n = self.get_expositions_number() + self.get_conferences_number() + self.get_seminars_number() + self.get_webinars_number() + return n + + def get_permanent_url(self): + if self.url: + return '/user/'+self.url+'/' + return '/user/'+str(self.id)+'/' + + class Profile(models.Model): user = models.OneToOneField(User) @@ -231,9 +248,8 @@ def create_user_inf(sender, instance, created, **kwargs): post_save.connect(create_user_inf, sender=User) - #need import after User Model, because User imported in "organiser.models" -from organiser.models import Organiser +#from organiser.models import Organiser ''' def create_profiles(sender, **kw): diff --git a/accounts/urls.py b/accounts/urls.py index f21a7823..375e0e07 100644 --- a/accounts/urls.py +++ b/accounts/urls.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- from django.conf.urls import patterns, url from django.contrib.auth.decorators import login_required -from views import SettingsView, ProfileView, CalendarView, MessagesView +from views import SettingsView, ProfileView, CalendarView, UserView, UserExpositionsView, UserConferenceView, UserSeminarView from views import NameView, HomeView, AvatarView, WorkView, AboutCompanyView, PhoneView, EmailView, WebPageView,\ SocialView, AboutView @@ -11,6 +11,16 @@ urlpatterns = patterns('', url(r'^profile/$', login_required(ProfileView.as_view())), url(r'^profile/settings/$', login_required(SettingsView.as_view())), url(r'^profile/calendar/$', login_required(CalendarView.as_view())), + url(r'^user/(?P.*)/expositions/(?P\d+)/$', UserExpositionsView.as_view()), + url(r'^user/(?P.*)/expositions/$', UserExpositionsView.as_view()), + url(r'^user/(?P.*)/seminars/(?P\d+)/$', UserSeminarView.as_view()), + url(r'^user/(?P.*)/seminars/$', UserSeminarView.as_view()), + url(r'^user/(?P.*)/conferences/(?P\d+)/$', UserConferenceView.as_view()), + url(r'^user/(?P.*)/conferences/$', UserConferenceView.as_view()), + url(r'^user/(?P.*)/events/(?P\d+)/$', UserView.as_view()), + url(r'^user/(?P.*)/events/$', UserView.as_view()), + url(r'^user/(?P.*)/$', UserView.as_view()), + #url(r'^profile/messages/(?P.*)/$', login_required(MessagesView.as_view())), #url(r'^profile/messages/$', login_required(MessagesView.as_view())), @@ -25,6 +35,8 @@ urlpatterns = patterns('', url(r'^profile/update/web-page/$', login_required(WebPageView.as_view())), url(r'^profile/update/social/$', login_required(SocialView.as_view())), url(r'^profile/update/about/$', login_required(AboutView.as_view())), + + url(r'^profile/change-password/', 'accounts.views.change_password'), # url(r'^accounts/get/calendar/(?P\d+)/(?P\d+)/$', 'accounts.views.get_calendar'), url(r'^accounts/get-tag-users/$', 'accounts.views.user_for_tag'), diff --git a/accounts/views.py b/accounts/views.py index 5c582366..75271d40 100644 --- a/accounts/views.py +++ b/accounts/views.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- -from django.shortcuts import render_to_response +from django.shortcuts import render_to_response, get_object_or_404 from django.http import HttpResponseRedirect, HttpResponse -from django.template import RequestContext -from django.core.context_processors import csrf + + from django.contrib.auth.decorators import login_required from django.utils.translation import ugettext as _ from django.utils import timezone @@ -14,7 +14,7 @@ from models import User # python import json, datetime import calendar as python_calendar -from django.views.generic import TemplateView, FormView +from django.views.generic import TemplateView, FormView, ListView class SettingsView(TemplateView): template_name = 'accounts/settings.html' @@ -96,6 +96,22 @@ class ProfileView(TemplateView): class MessagesView(TemplateView): template_name = 'accounts/messages.html' +from django_messages.forms import SendForm +class UserView(TemplateView): + template_name = 'accounts/user.html' + + def get_context_data(self, **kwargs): + context = super(UserView, self).get_context_data(**kwargs) + url = self.kwargs.get('url') + try: + url = int(url) + user = get_object_or_404(User, id=url) + except ValueError: + user = get_object_or_404(User, url=url) + + context['message_form'] = SendForm() + context['member'] = user + return context @login_required @@ -109,10 +125,10 @@ def change_password(request): if form.is_valid(): user = request.user if(user.check_password(form.cleaned_data.get('old_password'))): - #user.set_password(form.cleaned_data.get('new_password')) - #user.save() + user.set_password(form.cleaned_data.get('new_password')) + user.save() success['success'] = True - success['message'] = _(u'Пароль именен') + success['message'] = _(u'Пароль изменен') return HttpResponse(json.dumps(success), content_type='application/json') else: errors = {'errors': [_(u'Не правильный пароль')]} @@ -198,8 +214,8 @@ class EmailView(ProfileInvalidView): def form_valid(self, form): user = self.request.user form = self.form_class(self.request.POST, instance=user) - form.save() - response = {'success': True} + #form.save() + response = {'success': False} return HttpResponse(json.dumps(response), content_type='application/json') @@ -217,4 +233,64 @@ class NameView(ProfileInvalidView): def test(request): - return HttpResponse('test') \ No newline at end of file + return HttpResponse('test') + +from exposition.models import Exposition + + + +def get_user(url): + try: + url = int(url) + user = get_object_or_404(User, id=url) + except ValueError: + user = get_object_or_404(User, url=url) + return user + +class UserEventView(ListView): + model = Exposition + template_name = 'accounts/user_events.html' + paginate_by = 2 + obj = None + event_type = None + + + def get_queryset(self): + url = self.kwargs.get('url') + user = get_user(url) + self.obj = user + return user.exposition_users.all() + + def get_context_data(self, **kwargs): + context = super(UserEventView, self).get_context_data(**kwargs) + context['u'] = self.obj + context['event_type'] = self.event_type + return context + +class UserExpositionsView(UserEventView): + event_type = _(u'Выставки') + + def get_queryset(self): + url = self.kwargs.get('url') + user = get_user(url) + self.obj = user + return user.exposition_users.all() + +class UserConferenceView(UserEventView): + event_type = _(u'Конференции') + + def get_queryset(self): + url = self.kwargs.get('url') + user = get_user(url) + self.obj = user + return user.conference_users.all() + +class UserSeminarView(UserEventView): + event_type = _(u'Семинары') + + def get_queryset(self): + url = self.kwargs.get('url') + user = get_user(url) + self.obj = user + return user.seminar_users.all() + diff --git a/build/pip-delete-this-directory.txt b/build/pip-delete-this-directory.txt deleted file mode 100644 index c8883ea9..00000000 --- a/build/pip-delete-this-directory.txt +++ /dev/null @@ -1,5 +0,0 @@ -This file is placed here by pip to indicate the source was put -here by pip. - -Once this package is successfully installed this source code will be -deleted (unless you remove this file). diff --git a/core/views.py b/core/views.py index b4556a5a..4d164b0f 100644 --- a/core/views.py +++ b/core/views.py @@ -7,6 +7,9 @@ from place_conference.models import PlaceConference from django.views.generic import ListView from functions.views_help import split_params from django.utils.translation import ugettext as _ +from django.http import HttpResponse + + class PlaceListView(ListView): @@ -74,4 +77,59 @@ class PlaceListView(ListView): context = super(PlaceListView, self).get_context_data(**kwargs) context['filter'] = self.params context['single_page'] = self.single_page - return context \ No newline at end of file + return context + +class PlacePhotoView(PlaceListView): + paginate_by = 20 + template_name = 'place/place_photo.html' + obj = None + + def get_queryset(self): + pl_ex = PlaceExposition.objects.all() + pl_conf = PlaceConference.objects.all() + + params = self.get_params() + for param in params: + + if param.get('type') == 'country': + country = Country.objects.safe_get(url=param.get('url')) + if country: + param['name'] = country.name + pl_ex = pl_ex.filter(country=country) + pl_conf = pl_conf.filter(country=country) + if param.get('type') == 'city': + city = City.objects.safe_get(url=param.get('url')) + if city: + param['name'] = city.name + pl_ex = pl_ex.filter(city=city) + pl_conf = pl_conf.filter(city=city) + + if param.get('type') == 'place': + pl_ex = pl_ex.filter(url=param.get('url')) + if pl_ex: + query = pl_ex + else: + query = pl_conf.filter(url=param.get('url')) + + self.single_page = True + + if query: + param['name'] = query[0].name + + #if self.request: + # views = query[0].views + # query.update(views=views+1) + + params.append({'type':'photo', 'name':_(u'Фото')}) + self.params = params + self.obj = query[0] + + return query[0].photos.all() + + self.params = params + return list(pl_ex) + list(pl_conf) + + def get_context_data(self, **kwargs): + context = super(PlacePhotoView, self).get_context_data(**kwargs) + context['object'] = self.obj + return context diff --git a/django_messages/expomap_urls.py b/django_messages/expomap_urls.py index 14a84832..bd6df7a7 100644 --- a/django_messages/expomap_urls.py +++ b/django_messages/expomap_urls.py @@ -1,14 +1,16 @@ # -*- coding: utf-8 -*- from django.conf.urls import patterns, url from django.contrib.auth.decorators import login_required -from expomap_views import InboxView, message_reply, MessageHistory +from expomap_views import InboxView, message_reply, MessageHistory, send_message urlpatterns = patterns('', url(r'^profile/messages/reply/(?P[\d]+)/$', message_reply), + url(r'^send-to/(?P.*)/$', send_message), url(r'^profile/messages/history/(?P[\d]+)/$', login_required(MessageHistory.as_view())), url(r'^profile/messages/$', login_required(InboxView.as_view())), + #url(r'^profile/messages/reply/(?P[\d]+)/$', login_required(InboxView.as_view())), ) diff --git a/django_messages/expomap_views.py b/django_messages/expomap_views.py index 78f754b3..3f8f7736 100644 --- a/django_messages/expomap_views.py +++ b/django_messages/expomap_views.py @@ -2,11 +2,11 @@ from django.http import HttpResponseRedirect, HttpResponse from django.shortcuts import render_to_response, get_object_or_404 from django.views.generic import ListView, DetailView, TemplateView, FormView -from django.utils.translation import ugettext as _ -from django.contrib import messages +from accounts.models import User + from django.db.models import Q from django.utils import timezone -from forms import ComposeForm, ReplyForm +from forms import ComposeForm, ReplyForm, SendForm from models import Message import json @@ -39,6 +39,26 @@ def message_reply(request, message_id): return HttpResponse('error') return HttpResponse('not ajax') + +def send_message(request, url): + response = {'success': False} + try: + url = int(url) + recipient = get_object_or_404(User, id=url) + except ValueError: + + recipient = get_object_or_404(User, url=url) + if request.POST: + form = SendForm(request.POST) + if form.is_valid(): + form.save(sender=request.user, recipient=recipient) + response['success'] = True + return HttpResponse(json.dumps(response), content_type='application/json') + + else: + return HttpResponse('error') + return HttpResponse('not ajax') + class MessageHistory(FormView): template_name = 'accounts/messages_history.html' form_class = ReplyForm @@ -56,7 +76,7 @@ class MessageHistory(FormView): Q(sender=self.request.user, recipient=user) | Q(sender=user, recipient=self.request.user) )[:15] - Message.objects.filter(sender=self.request.user, recipient=user).update(read_at=now) + Message.objects.filter(sender=user, recipient=self.request.user).update(read_at=now) context['profile_messages'] = messages return context diff --git a/django_messages/forms.py b/django_messages/forms.py index 8aaa360b..0ca759cd 100644 --- a/django_messages/forms.py +++ b/django_messages/forms.py @@ -42,6 +42,22 @@ class ReplyForm(forms.Form): user = User.objects.get(id=recipient) return user +class SendForm(forms.Form): + body = forms.CharField(label=_(u"Body"), + widget=forms.Textarea(attrs={'rows': '12', 'cols':'55'})) + + def save(self, sender, recipient): + body = self.cleaned_data['body'] + msg = Message( + sender = sender, + recipient = recipient, + body = body, + ) + msg.save() + + return msg + + class ComposeForm(forms.Form): """ A simple default form for private messages. diff --git a/exposition/models.py b/exposition/models.py index b903c1d5..767796c8 100644 --- a/exposition/models.py +++ b/exposition/models.py @@ -154,6 +154,7 @@ class Exposition(TranslatableModel, EventMixin): return periodic.get(self.periodic) def get_nearest_events(self): + theme = self.theme.all()[0] now = datetime.datetime.now() now = now.replace(day=now.day-1) diff --git a/functions/form_check.py b/functions/form_check.py index a742178d..5a834b8c 100644 --- a/functions/form_check.py +++ b/functions/form_check.py @@ -23,8 +23,10 @@ def translit_with_separator(string, separator='-'): """ #make string unicode - string = u'%s'%string string = string.strip() + string = u'%s'%string + string = string.replace(u'\u200e', '') + #make string translit st = pytils.translit.translify(string) @@ -33,6 +35,9 @@ def translit_with_separator(string, separator='-'): st = re.sub('[^\w\-_\.]', separator, st) #delete dublicating separators st = re.sub('%s+'%separator, separator, st) + # delete if last symbol == separator + if st[-1] == separator: + st = st[:-1] return st.lower() \ No newline at end of file diff --git a/functions/pipeline.py b/functions/pipeline.py index 1a327ce4..1d167830 100644 --- a/functions/pipeline.py +++ b/functions/pipeline.py @@ -1,28 +1,5 @@ -from requests import request, HTTPError -""" -def test(strategy, user, response, details, - is_new=False, *args,**kwargs): - user = user - st = strategy - resp = response - fdsfds - -""" from accounts.models import User -from django.contrib import auth - -def test(*args, **kwargs): - - - #strategy = strategy - strategy = kwargs.get('strategy') - - asdsad - #auth.login(request(), u) - - - return None def load_user(details, response, uid, *args, **kwargs): diff --git a/import_xls/excel_settings.py b/import_xls/excel_settings.py index 5c9ae149..7175d9c5 100644 --- a/import_xls/excel_settings.py +++ b/import_xls/excel_settings.py @@ -240,25 +240,33 @@ def to_email(email): return email from file.models import FileModel -import urllib +import urllib2 from django.conf import settings from django.contrib.contenttypes.models import ContentType +from functions.files import get_alternative_filename def save_file(obj, value, purpose): if not obj.id: return None - urls = value.split(',') + urls = value.split(';') for url in urls: file_name = url.split('/')[-1] - download_to = settings.MEDIA_ROOT+'imgs/'+file_name + alt_name = get_alternative_filename(settings.MEDIA_ROOT+'imgs/', file_name) + + download_to = settings.MEDIA_ROOT+'imgs/'+alt_name + try: - urllib.urlretrieve (url, download_to) + response = urllib2.urlopen(url, timeout=3) except: - return None + continue - file_name ='imgs/'+file_name + with open(download_to,'wb') as f: + f.write(response.read()) + f.close() + + file_name ='imgs/'+alt_name content_type = ContentType.objects.get_for_model(obj) file = FileModel(file_path=file_name, file_type='JPG', purpose=purpose, content_type=content_type, object_id=obj.id) @@ -266,20 +274,79 @@ def save_file(obj, value, purpose): file.save() +from file.models import Photo +def save_photo(obj, value): + if not obj.id: + return None + + urls = value.split(';') + + for url in urls: + + file_name = url.split('/')[-1] + alt_name = get_alternative_filename(settings.MEDIA_ROOT+'imgs/', file_name) + download_to = settings.MEDIA_ROOT+'photos/'+alt_name + try: + response = urllib2.urlopen(url, timeout=3) + except: + continue + + with open(download_to,'wb') as f: + f.write(response.read()) + f.close() + + + file_name ='photos/'+alt_name + content_type = ContentType.objects.get_for_model(obj) + photo = Photo(file_path=file_name, file_type='JPG', + content_type=content_type, object_id=obj.id) + photo.save() + + +from place_exposition.models import EXPOSITION_TYPE +def to_type(value): + for t in EXPOSITION_TYPE: + if value == t[1]: + return t[0] + return 'Exposition complex' + +def to_phone(value): + deduct = ('-','(',')','.',' ', '+') + for elem in deduct: + value = value.replace(elem, '') + + value = to_int(value) + + return value + + + + from place_exposition.models import Hall def save_halls(obj, value): halls = value.split(';') res = [] for hall in halls: if hall: - l = hall.split('-') - area = int(l[1].strip()) - l = l[0].split(u'№') - try: - number = int(l[1].strip()) - except ValueError: - pass - name = l[0].strip() + area = None + number = None + name = '' + l = hall.split(u'–') + if len(l)>1: + area = int(l[1].strip().replace(' ', '')) + l = l[0].split(u'№') + if len(l)>1: + try: + number = int(l[1].strip()) + except ValueError: + pass + name = l[0].strip() + else: + name = l[0].strip() + + else: + name = l[0].strip() + res.append({'area': area, 'name':name, 'number': number}) for hall in res: h = Hall(place_exposition = obj, name=hall.get('name'), number=hall.get('number'), capacity=hall.get('area')) @@ -288,14 +355,15 @@ def save_halls(obj, value): place_exp_sett = { u'ID':{u'field': u'id', u'func': to_int}, u'Название':{u'field': u'name', u'func': unicode}, + u'Тип':{u'field': u'type', u'func': to_type}, u'Краткое описание':{u'field': u'main_title', u'func': unicode}, u'Страна':{u'field': u'country', u'func': to_country}, u'Город':{u'field': u'city', u'func': to_city, 'extra_values': 'country'}, u'Описание':{u'field': u'description', u'func': unicode}, u'Адрес':{u'field': u'adress', u'func': unicode}, - u'Тел.':{u'field': u'phone', u'func': to_int}, - u'Факс':{u'field': u'fax', u'func': to_int}, - u'Фото':{u'field': u'photo', u'func': save_file, u'method': True, u'purpose': 'photo'},#сделать + u'Тел.':{u'field': u'phone', u'func': to_phone}, + u'Факс':{u'field': u'fax', u'func': to_phone}, + u'Фото':{u'field': u'photo', u'func': save_photo, u'method': True},#сделать u'Лого':{u'field': u'logo', u'func': save_file, u'method': True, u'purpose': 'logo'},#сделать u'Веб-сайт':{u'field': u'web_page', u'func': unicode}, u'Email':{u'field': u'email', u'func': unicode}, @@ -306,7 +374,7 @@ place_exp_sett = { u'Общая выставочная площадь, кв. м.':{u'field': u'total_area', u'func': to_int}, u'Закрытая выставочная площадь, кв. м.':{u'field': u'closed_area', u'func': to_int}, u'Открытая выставочная площадь, кв. м.':{u'field': u'open_area', u'func': to_int}, - u'Количество павильонов':{u'field': u'total_pavilions', u'func': unicode}, + u'Количество павильонов':{u'field': u'total_pavilions', u'func': to_int}, u'Площадь павильонов/залов (по номерам)':{u'field': u'halls', u'func': save_halls, u'method': True},#!!! u'Конференц-залы':{u'field': u'total_halls', u'func': to_int}, u'Схема территории':{u'field': u'scheme', u'func': save_file, u'method': True, u'purpose': 'scheme teritory'},#сделать diff --git a/import_xls/import_forms.py b/import_xls/import_forms.py index 1a3cac3d..1d52a19b 100644 --- a/import_xls/import_forms.py +++ b/import_xls/import_forms.py @@ -110,9 +110,13 @@ def google_address(address): return '' return '' +from djutils.decorators import async +from djutils.queue.decorators import queue_command + class ImportPlaceExpositionForm(ImportForm): model = PlaceExposition settings = place_exp_sett + #@async def save_file(self): data = self.cleaned_data lang = data['language'] @@ -191,9 +195,15 @@ class ImportPlaceExpositionForm(ImportForm): for method in methods: func = method['func'] if method.get('purpose'): - func(object, method['value'], method['purpose']) + try: + func(object, method['value'], method['purpose']) + except: + continue else: - func(object, method['value']) + try: + func(object, method['value']) + except: + continue class ImportPlaceConferenceForm(ImportForm): diff --git a/locale/en/LC_MESSAGES/django.mo b/locale/en/LC_MESSAGES/django.mo new file mode 100644 index 00000000..c22004e9 Binary files /dev/null and b/locale/en/LC_MESSAGES/django.mo differ diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po new file mode 100644 index 00000000..7cf64ed6 --- /dev/null +++ b/locale/en/LC_MESSAGES/django.po @@ -0,0 +1,2175 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-05-15 14:59+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: accounts/admin.py:165 +msgid "Пароль именен" +msgstr "" + +#: accounts/admin.py:168 accounts/views.py:134 +msgid "Не правильный пароль" +msgstr "" + +#: accounts/edit_forms.py:8 +msgid "Выберите файл (GIF, JPG, PNG. Размер 100 × 100 пикселей)" +msgstr "" + +#: accounts/edit_forms.py:15 +msgid "Введите ваше имя" +msgstr "Enter your name" + +#: accounts/edit_forms.py:16 +msgid "Введите вашу фамилию" +msgstr "" + +#: accounts/edit_forms.py:28 +msgid "Страна" +msgstr "" + +#: accounts/edit_forms.py:43 +msgid "Укажите вашу должность" +msgstr "" + +#: accounts/edit_forms.py:45 +msgid "Место работы" +msgstr "" + +#: accounts/edit_forms.py:53 templates/client/accounts/profile.html:158 +msgid "в" +msgstr "" + +#: accounts/edit_forms.py:60 accounts/models.py:197 +msgid "Описание компании" +msgstr "" + +#: accounts/edit_forms.py:68 +msgid "Контактный телефон" +msgstr "" + +#: accounts/edit_forms.py:74 +msgid "Ваш e-mail" +msgstr "" + +#: accounts/edit_forms.py:81 +msgid "Адрес вашего сайта" +msgstr "" + +#: accounts/edit_forms.py:88 accounts/models.py:204 +msgid "Facebook" +msgstr "" + +#: accounts/edit_forms.py:89 accounts/models.py:205 +msgid "Twitter" +msgstr "" + +#: accounts/edit_forms.py:90 accounts/models.py:207 +msgid "В контакте" +msgstr "" + +#: accounts/edit_forms.py:91 accounts/models.py:206 +msgid "LinkedIn" +msgstr "" + +#: accounts/edit_forms.py:99 +msgid "Немного о себе" +msgstr "" + +#: accounts/forms.py:120 +msgid "Old password" +msgstr "" + +#: accounts/forms.py:122 +msgid "Введите старый пароль" +msgstr "" + +#: accounts/forms.py:123 +msgid "New password" +msgstr "" + +#: accounts/forms.py:125 +msgid "Придумайте новый пароль" +msgstr "" + +#: accounts/forms.py:126 +msgid "Confirm password" +msgstr "" + +#: accounts/forms.py:128 +msgid "Повторите новый пароль" +msgstr "" + +#: accounts/forms.py:140 accounts/forms.py:141 +msgid "Пароли не совпадают!" +msgstr "" + +#: accounts/forms.py:149 accounts/forms.py:150 +msgid "Пароль должен содержать цифры и буквы" +msgstr "" + +#: accounts/forms.py:156 +msgid "" +"Получать приглашения, сообщения и другую корреспонденцию от пользователей " +"Expomap" +msgstr "" + +#: accounts/forms.py:157 +msgid "Получать обзор событий" +msgstr "" + +#: accounts/forms.py:158 +msgid "Получать новости" +msgstr "" + +#: accounts/views.py:131 +msgid "Пароль изменен" +msgstr "" + +#: accounts/views.py:271 exposition/models.py:169 +#: functions/custom_views.py:204 templates/client/index.html:125 +#: templates/client/includes/event_list_description.html:5 +msgid "Выставки" +msgstr "" + +#: accounts/views.py:280 functions/custom_views.py:204 +msgid "Конференции" +msgstr "" + +#: accounts/views.py:289 functions/custom_views.py:204 +msgid "Семинары" +msgstr "" + +#: core/views.py:23 place_conference/models.py:89 +#: place_exposition/models.py:96 +msgid "Места" +msgstr "" + +#: core/views.py:123 templates/client/photoreport.html:9 +#: templates/client/photoreport.html:15 +msgid "Фото" +msgstr "" + +#: django_messages/admin.py:21 +msgid "group" +msgstr "" + +#: django_messages/admin.py:22 +msgid "Creates the message optionally for all users or a group of users." +msgstr "" + +#: django_messages/admin.py:30 +msgid "All users" +msgstr "" + +#: django_messages/admin.py:48 django_messages/models.py:94 +msgid "Message" +msgstr "" + +#: django_messages/admin.py:55 +msgid "Date/time" +msgstr "" + +#: django_messages/apps.py:6 django_messages/models.py:95 +msgid "Messages" +msgstr "" + +#: django_messages/fields.py:56 +#, python-format +msgid "The following usernames are incorrect: %(users)s" +msgstr "" + +#: django_messages/forms.py:17 django_messages/forms.py:66 +#: django_messages/models.py:55 +#: django_messages/templates/django_messages/inbox.html:10 +#: django_messages/templates/django_messages/outbox.html:10 +#: django_messages/templates/django_messages/trash.html:10 +#: django_messages/templates/django_messages/view.html:8 +msgid "Subject" +msgstr "" + +#: django_messages/forms.py:18 django_messages/forms.py:46 +#: django_messages/forms.py:67 django_messages/models.py:56 +msgid "Body" +msgstr "" + +#: django_messages/forms.py:65 django_messages/models.py:58 +#: django_messages/templates/django_messages/outbox.html:10 +#: django_messages/templates/django_messages/view.html:14 +msgid "Recipient" +msgstr "" + +#: django_messages/management.py:9 +msgid "Message Received" +msgstr "" + +#: django_messages/management.py:9 +msgid "you have received a message" +msgstr "" + +#: django_messages/management.py:10 +msgid "Message Sent" +msgstr "" + +#: django_messages/management.py:10 +msgid "you have sent a message" +msgstr "" + +#: django_messages/management.py:11 +msgid "Message Replied" +msgstr "" + +#: django_messages/management.py:11 +msgid "you have replied to a message" +msgstr "" + +#: django_messages/management.py:12 +msgid "Reply Received" +msgstr "" + +#: django_messages/management.py:12 +msgid "you have received a reply to a message" +msgstr "" + +#: django_messages/management.py:13 +msgid "Message Deleted" +msgstr "" + +#: django_messages/management.py:13 +msgid "you have deleted a message" +msgstr "" + +#: django_messages/management.py:14 +msgid "Message Recovered" +msgstr "" + +#: django_messages/management.py:14 +msgid "you have undeleted a message" +msgstr "" + +#: django_messages/models.py:57 +#: django_messages/templates/django_messages/inbox.html:10 +#: django_messages/templates/django_messages/trash.html:10 +#: django_messages/templates/django_messages/view.html:10 +msgid "Sender" +msgstr "" + +#: django_messages/models.py:59 +msgid "Parent message" +msgstr "" + +#: django_messages/models.py:60 +msgid "sent at" +msgstr "" + +#: django_messages/models.py:61 +msgid "read at" +msgstr "" + +#: django_messages/models.py:62 +msgid "replied at" +msgstr "" + +#: django_messages/models.py:63 +msgid "Sender deleted at" +msgstr "" + +#: django_messages/models.py:64 +msgid "Recipient deleted at" +msgstr "" + +#: django_messages/utils.py:26 +#, python-format +msgid "" +"%(sender)s wrote:\n" +"%(body)s" +msgstr "" + +#: django_messages/utils.py:54 +#, python-format +msgid "Re%(prefix)s: %(subject)s" +msgstr "" + +#: django_messages/utils.py:60 +#, python-format +msgid "New Message: %(subject)s" +msgstr "" + +#: django_messages/views.py:78 django_messages/views.py:114 +msgid "Message successfully sent." +msgstr "" + +#: django_messages/views.py:121 +#, python-format +msgid "Re: %(subject)s" +msgstr "" + +#: django_messages/views.py:157 +msgid "Message successfully deleted." +msgstr "" + +#: django_messages/views.py:184 +msgid "Message successfully recovered." +msgstr "" + +#: django_messages/templates/django_messages/base.html:9 +#: django_messages/templates/django_messages/inbox.html:6 +#: django_messages/templates/django_messages/new_message.html:13 +msgid "Inbox" +msgstr "" + +#: django_messages/templates/django_messages/base.html:10 +#: django_messages/templates/django_messages/outbox.html:6 +msgid "Sent Messages" +msgstr "" + +#: django_messages/templates/django_messages/base.html:11 +msgid "New Message" +msgstr "" + +#: django_messages/templates/django_messages/base.html:12 +msgid "Trash" +msgstr "" + +#: django_messages/templates/django_messages/compose.html:4 +msgid "Compose Message" +msgstr "" + +#: django_messages/templates/django_messages/compose.html:10 +msgid "Send" +msgstr "" + +#: django_messages/templates/django_messages/inbox.html:10 +msgid "Received" +msgstr "" + +#: django_messages/templates/django_messages/inbox.html:10 +#: django_messages/templates/django_messages/outbox.html:10 +#: django_messages/templates/django_messages/trash.html:10 +msgid "Action" +msgstr "" + +#: django_messages/templates/django_messages/inbox.html:22 +#: django_messages/templates/django_messages/outbox.html:19 +#: django_messages/templates/django_messages/trash.html:19 +#: django_messages/templates/django_messages/view.html:13 +msgid "DATETIME_FORMAT" +msgstr "" + +#: django_messages/templates/django_messages/inbox.html:23 +#: django_messages/templates/django_messages/outbox.html:20 +msgid "delete" +msgstr "" + +#: django_messages/templates/django_messages/inbox.html:29 +#: django_messages/templates/django_messages/outbox.html:26 +#: django_messages/templates/django_messages/trash.html:26 +msgid "No messages." +msgstr "" + +#: django_messages/templates/django_messages/new_message.html:4 +#, python-format +msgid "" +"Hello %(recipient)s,\n" +"\n" +"you received a private message from %(sender)s with\n" +"the following contents:" +msgstr "" + +#: django_messages/templates/django_messages/new_message.html:12 +#, python-format +msgid "Sent from %(site_url)s" +msgstr "" + +#: django_messages/templates/django_messages/new_message.html:14 +#: django_messages/templates/django_messages/view.html:20 +msgid "Reply" +msgstr "" + +#: django_messages/templates/django_messages/outbox.html:10 +msgid "Sent" +msgstr "" + +#: django_messages/templates/django_messages/trash.html:6 +msgid "Deleted Messages" +msgstr "" + +#: django_messages/templates/django_messages/trash.html:10 +#: django_messages/templates/django_messages/view.html:12 +msgid "Date" +msgstr "" + +#: django_messages/templates/django_messages/trash.html:20 +msgid "undelete" +msgstr "" + +#: django_messages/templates/django_messages/trash.html:29 +msgid "" +"Deleted Messages are removed from the trash at unregular intervals, don't " +"rely on this feature for long-time storage." +msgstr "" + +#: django_messages/templates/django_messages/view.html:6 +msgid "View Message" +msgstr "" + +#: django_messages/templates/django_messages/view.html:22 +msgid "Delete" +msgstr "" + +#: django_messages/templates/notification/messages_deleted/full.txt:1 +#, python-format +msgid "You have deleted the message '%(message)s'." +msgstr "" + +#: django_messages/templates/notification/messages_deleted/notice.html:1 +#, python-format +msgid "" +"You have deleted the message %(message)s." +msgstr "" + +#: django_messages/templates/notification/messages_received/full.txt:1 +#, python-format +msgid "" +"%(message_sender)s has sent you a message:\n" +"\n" +"%(message)s\n" +"\n" +"%(message_body)s\n" +"\n" +"http://%(current_site)s%(message_url)s" +msgstr "" + +#: django_messages/templates/notification/messages_received/notice.html:2 +#, python-format +msgid "" +"You have received the message %(message)s " +"from %(message_sender)s." +msgstr "" + +#: django_messages/templates/notification/messages_received/short.txt:1 +#: django_messages/templates/notification/messages_reply_received/short.txt:1 +#, python-format +msgid "%(notice)s by %(message_sender)s" +msgstr "" + +#: django_messages/templates/notification/messages_recovered/full.txt:1 +#, python-format +msgid "You have recovered the message '%(message)s'." +msgstr "" + +#: django_messages/templates/notification/messages_recovered/notice.html:1 +#, python-format +msgid "" +"You have recovered the message %(message)s." +msgstr "" + +#: django_messages/templates/notification/messages_replied/full.txt:1 +#, python-format +msgid "" +"You have replied to '%(message_parent_msg)s' from %(message_recipient)s." +msgstr "" + +#: django_messages/templates/notification/messages_replied/notice.html:2 +#, python-format +msgid "" +"You have replied to %(message_parent_msg)s " +"from %(message_recipient)s." +msgstr "" + +#: django_messages/templates/notification/messages_reply_received/full.txt:1 +#, python-format +msgid "" +"%(message_sender)s replied to '%(message_parent_msg)s':\n" +"\n" +"%(message)s\n" +"\n" +"%(message_body)s\n" +"\n" +"http://%(current_site)s%(message_url)s" +msgstr "" + +#: django_messages/templates/notification/messages_reply_received/notice.html:2 +#, python-format +msgid "%(message_sender)s has sent you a reply to %(message_parent_msg)s." +msgstr "" + +#: django_messages/templates/notification/messages_sent/full.txt:1 +#, python-format +msgid "You have sent the message '%(message)s' to %(message_recipient)s." +msgstr "" + +#: django_messages/templates/notification/messages_sent/notice.html:2 +#, python-format +msgid "" +"You have sent the message %(message)s to " +"%(message_recipient)s." +msgstr "" + +#: exposition/models.py:18 +msgid "Не выбрано" +msgstr "" + +#: exposition/models.py:19 exposition/models.py:26 +msgid "Специалисты" +msgstr "" + +#: exposition/models.py:20 exposition/models.py:26 +msgid "Специалисты и потребители" +msgstr "" + +#: exposition/models.py:21 exposition/models.py:27 +msgid "Широкая публика" +msgstr "" + +#: exposition/models.py:151 +msgid "Ежегодно" +msgstr "" + +#: exposition/models.py:151 +msgid "2 раза в год" +msgstr "" + +#: exposition/models.py:151 +msgid "3 раза в год" +msgstr "" + +#: exposition/models.py:152 +msgid "4 раза в год" +msgstr "" + +#: exposition/models.py:152 +msgid "5 раз в год" +msgstr "" + +#: exposition/models.py:152 +msgid "Раз в 2 года" +msgstr "" + +#: exposition/models.py:153 +msgid "Раз в 3 года" +msgstr "" + +#: exposition/models.py:153 +msgid "Раз в 4 года" +msgstr "" + +#: exposition/views.py:32 templates/client/conference.html:213 +#: templates/client/exposition.html:218 templates/client/seminar.html:213 +#: templates/client/webinar.html:184 +#: templates/client/includes/event_object.html:204 +msgid "Посетители" +msgstr "" + +#: exposition/views.py:50 functions/custom_views.py:205 +#: templates/client/conference.html:194 templates/client/exposition.html:199 +#: templates/client/seminar.html:194 templates/client/webinar.html:165 +#: templates/client/includes/event_object.html:182 +msgid "Участники" +msgstr "" + +#: exposition/views.py:65 +#: templates/client/exposition/exposition_statistic.html:79 +msgid "Статистика" +msgstr "" + +#: exposition/views.py:80 +msgid "Программа" +msgstr "" + +#: exposition/views.py:95 templates/client/exposition/exposition_price.html:79 +msgid "Стоимость посещения и участия" +msgstr "" + +#: file/models.py:130 +msgid "view count" +msgstr "" + +#: functions/custom_views.py:205 +msgid "Вебинары" +msgstr "" + +#: functions/custom_views.py:205 +msgid "Фоторепортажи" +msgstr "" + +#: functions/forms.py:11 templates/client/includes/footer.html:24 +#: templates/client/includes/menu.html:6 +msgid "выставки" +msgstr "" + +#: functions/forms.py:12 templates/client/index.html:135 +#: templates/client/includes/footer.html:25 +#: templates/client/includes/menu.html:7 +msgid "конференции" +msgstr "" + +#: functions/forms.py:13 templates/client/index.html:145 +#: templates/client/includes/footer.html:26 +#: templates/client/includes/menu.html:8 +msgid "семинары" +msgstr "" + +#: functions/forms.py:14 templates/client/includes/footer.html:27 +#: templates/client/includes/menu.html:9 +msgid "вебинары" +msgstr "" + +#: place_conference/models.py:85 +#: templates/client/includes/place_object.html:59 +msgid "Конгресс-центр" +msgstr "" + +#: place_conference/models.py:85 +msgid "Конференц зал" +msgstr "" + +#: place_exposition/models.py:134 +msgid "Конгессо-выставочный центр" +msgstr "" + +#: place_exposition/models.py:134 +msgid "Выставочный центр" +msgstr "" + +#: place_exposition/models.py:135 +msgid "Выставочный комплекс" +msgstr "" + +#: proj/settings.py:55 +msgid "Russian" +msgstr "" + +#: proj/settings.py:56 +msgid "English" +msgstr "" + +#: registration/admin.py:23 +msgid "Activate users" +msgstr "" + +#: registration/admin.py:43 +msgid "Re-send activation emails" +msgstr "" + +#: registration/forms.py:44 +msgid "First name" +msgstr "" + +#: registration/forms.py:45 registration/forms.py:50 +msgid "This value may contain only letters, numbers and @/./+/-/_ characters." +msgstr "" + +#: registration/forms.py:46 templates/client/popups/register.html:12 +msgid "Имя" +msgstr "" + +#: registration/forms.py:49 +msgid "Last name" +msgstr "" + +#: registration/forms.py:51 templates/client/popups/register.html:20 +msgid "Фамилия" +msgstr "" + +#: registration/forms.py:53 +msgid "E-mail" +msgstr "" + +#: registration/forms.py:53 templates/client/popups/register.html:28 +msgid "Адрес электронной почты" +msgstr "" + +#: registration/forms.py:54 templates/client/popups/register.html:34 +msgid "Придумайте пароль" +msgstr "" + +#: registration/forms.py:55 registration/forms.py:132 +msgid "Password" +msgstr "" + +#: registration/forms.py:56 templates/client/popups/register.html:40 +msgid "Повторите пароль" +msgstr "" + +#: registration/forms.py:57 +msgid "Password (again)" +msgstr "" + +#: registration/forms.py:83 +msgid "I have read and agree to the Terms of Service" +msgstr "" + +#: registration/forms.py:84 +msgid "You must agree to the terms to register" +msgstr "" + +#: registration/forms.py:100 +msgid "" +"This email address is already in use. Please supply a different email " +"address." +msgstr "" + +#: registration/forms.py:127 +msgid "" +"Registration using free email addresses is prohibited. Please supply a " +"different email address." +msgstr "" + +#: registration/forms.py:131 templates/client/popups/login.html:11 +msgid "Ваш адрес электронной почты" +msgstr "" + +#: registration/forms.py:132 +msgid "Ваш Пароль" +msgstr "" + +#: registration/models.py:182 +msgid "user" +msgstr "" + +#: registration/models.py:183 +msgid "activation key" +msgstr "" + +#: registration/models.py:188 +msgid "registration profile" +msgstr "" + +#: registration/models.py:189 +msgid "registration profiles" +msgstr "" + +#: templates/admin/hvad/change_form.html:38 +#: templates/admin/hvad/change_form.html:40 +#: templates/admin/hvad/deletion_not_allowed.html:10 +#: templates/admin/hvad/includes/translation_tabs.html:6 +#: templates/admin/hvad/includes/translation_tabs.html:8 +msgid "Delete Translation" +msgstr "" + +#: templates/admin/hvad/deletion_not_allowed.html:6 +msgid "Home" +msgstr "" + +#: templates/admin/hvad/deletion_not_allowed.html:15 +#, python-format +msgid "" +"Deletion of the %(language_name)s translation of %(object_name)s " +"'%(escaped_object)s' is not allowed, because it is the last available " +"translation of this instance." +msgstr "" + +#: templates/admin/hvad/edit_inline/stacked.html:10 +#: templates/admin/hvad/edit_inline/tabular.html:30 +msgid "View on site" +msgstr "" + +#: templates/admin/hvad/edit_inline/stacked.html:68 +#: templates/admin/hvad/edit_inline/tabular.html:115 +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "" + +#: templates/admin/hvad/edit_inline/stacked.html:71 +#: templates/admin/hvad/edit_inline/tabular.html:118 +msgid "Remove" +msgstr "" + +#: templates/admin/hvad/edit_inline/tabular.html:17 +msgid "Delete?" +msgstr "" + +#: templates/client/advertising.html:9 +#: templates/client/accounts/calendar.html:8 +#: templates/client/accounts/messages.html:6 +#: templates/client/accounts/messages_history.html:6 +#: templates/client/accounts/profile.html:9 +#: templates/client/accounts/settings.html:8 +#: templates/client/accounts/user_events.html:8 +#: templates/client/includes/bread_scrumbs.html:5 +msgid "Главная страница" +msgstr "" + +#: templates/client/advertising.html:10 templates/client/advertising.html:15 +msgid "Реклама на сайте" +msgstr "" + +#: templates/client/advertising.html:21 +msgid "Рост аудитории Expomap 2009–2014 гг." +msgstr "" + +#: templates/client/advertising.html:40 +msgid "посещений в" +msgstr "" + +#: templates/client/advertising.html:40 templates/client/advertising.html:85 +msgid "месяц" +msgstr "" + +#: templates/client/advertising.html:45 +msgid "целевых" +msgstr "" + +#: templates/client/advertising.html:45 +msgid "просмотров" +msgstr "" + +#: templates/client/advertising.html:45 +msgid "вашей рекламы" +msgstr "" + +#: templates/client/advertising.html:85 +msgid "Посещений в" +msgstr "" + +#: templates/client/advertising.html:112 +msgid "Баннерная реклама" +msgstr "" + +#: templates/client/advertising.html:115 +msgid "" +"Вы можете таргетировать Вашу рекламу, привязывая ее показы к определенной " +"тематической отрасли (например, события в сфере строительства) или " +"географической зоне (например, выставки и конференции Москвы)." +msgstr "" + +#: templates/client/advertising.html:116 +msgid "" +"Возможные варианты размещения и размеры баннеров можно посмотреть на эскизе." +msgstr "" + +#: templates/client/advertising.html:121 +msgid "от" +msgstr "" + +#: templates/client/advertising.html:121 templates/client/advertising.html:143 +#: templates/client/advertising.html:163 +msgid "руб." +msgstr "" + +#: templates/client/advertising.html:122 templates/client/advertising.html:144 +#: templates/client/advertising.html:164 +msgid "Заказать услугу" +msgstr "" + +#: templates/client/advertising.html:125 +msgid "за месяц размещения" +msgstr "" + +#: templates/client/advertising.html:128 +msgid "Скидки при длительном размещении, а также агентствам." +msgstr "" + +#: templates/client/advertising.html:135 +msgid "Приоритетное размещение событий в каталоге" +msgstr "" + +#: templates/client/advertising.html:138 +msgid "" +"Ваше событие всегда в Топе тематического календаря и выделено цветом — вне " +"зависимости от дат его проведения." +msgstr "" + +#: templates/client/advertising.html:147 +msgid "за период до 1 года (с момента размещения до начала события)" +msgstr "" + +#: templates/client/advertising.html:156 +msgid "Персональная визитка Вашей компании" +msgstr "" + +#: templates/client/advertising.html:158 +msgid "" +"В связи с недавним появлением каталога, спешите занять первые места в " +"рубриках!" +msgstr "" + +#: templates/client/advertising.html:167 +msgid "за год за 1 тематический раздел" +msgstr "" + +#: templates/client/advertising.html:182 +msgid "Наша аудитория" +msgstr "" + +#: templates/client/advertising.html:184 +msgid "Маркетологи" +msgstr "" + +#: templates/client/advertising.html:185 +msgid "PR-специалисты" +msgstr "" + +#: templates/client/advertising.html:186 +msgid "Профильные специалисты" +msgstr "" + +#: templates/client/advertising.html:187 +msgid "Руководители департаментов" +msgstr "" + +#: templates/client/advertising.html:187 +msgid "(продажи, снабжение, маркетинг, PR и др.)" +msgstr "" + +#: templates/client/advertising.html:189 +msgid "Руководители компаний" +msgstr "" + +#: templates/client/advertising.html:190 +msgid "Собственники бизнеса" +msgstr "" + +#: templates/client/advertising.html:196 +msgid "Наши рекламодатели" +msgstr "" + +#: templates/client/advertising.html:199 +msgid "Организаторы мероприятий" +msgstr "" + +#: templates/client/advertising.html:200 +msgid "Туристические компании" +msgstr "" + +#: templates/client/advertising.html:201 +msgid "Гостиницы и системы бронирования" +msgstr "" + +#: templates/client/advertising.html:202 +msgid "Сервис-компании в сфере конгрессно-выставочного бизнеса" +msgstr "" + +#: templates/client/advertising.html:203 +msgid "Компании-производители" +msgstr "" + +#: templates/client/advertising.html:204 +msgid "Торговые компании" +msgstr "" + +#: templates/client/blank.html:25 +msgid "Expomap — выставки, конференции, семинары" +msgstr "" + +#: templates/client/conference.html:60 templates/client/conference.html:286 +#: templates/client/seminar.html:60 templates/client/seminar.html.py:265 +#: templates/client/popups/period.html:12 +#: templates/client/popups/place.html:62 +msgid "с" +msgstr "" + +#: templates/client/conference.html:60 templates/client/conference.html:286 +#: templates/client/seminar.html:60 templates/client/seminar.html.py:265 +#: templates/client/popups/period.html:16 +#: templates/client/popups/place.html:66 +msgid "по" +msgstr "" + +#: templates/client/conference.html:68 templates/client/exposition.html:70 +#: templates/client/seminar.html:68 +#: templates/client/exposition/exposition_price.html:64 +#: templates/client/exposition/exposition_programm.html:58 +#: templates/client/exposition/exposition_statistic.html:63 +#: templates/client/includes/address_block.html:8 +#: templates/client/includes/event_object.html:59 +msgid "Раскрыть карту" +msgstr "" + +#: templates/client/conference.html:72 templates/client/exposition.html:74 +#: templates/client/seminar.html:72 +#: templates/client/exposition/exposition_price.html:68 +#: templates/client/exposition/exposition_programm.html:62 +#: templates/client/exposition/exposition_statistic.html:67 +#: templates/client/includes/address_block.html:11 +#: templates/client/includes/event_object.html:63 +msgid "Скрыть карту" +msgstr "" + +#: templates/client/conference.html:80 templates/client/exposition.html:82 +#: templates/client/seminar.html:80 templates/client/webinar.html:66 +#: templates/client/includes/event_object.html:72 +msgid "Я планирую посетить" +msgstr "" + +#: templates/client/conference.html:81 templates/client/exposition.html:83 +#: templates/client/seminar.html:81 templates/client/webinar.html:67 +#: templates/client/includes/event_list.html:86 +#: templates/client/includes/event_list.html:89 +#: templates/client/includes/event_object.html:73 +#: templates/client/includes/place_object.html:233 +#: templates/client/includes/exposition/exposition_list.html:86 +#: templates/client/includes/exposition/exposition_list.html:89 +msgid "в расписание" +msgstr "" + +#: templates/client/conference.html:82 templates/client/exposition.html:84 +#: templates/client/index.html:43 templates/client/seminar.html:82 +#: templates/client/webinar.html:68 +#: templates/client/includes/event_list.html:92 +#: templates/client/includes/event_object.html:74 +#: templates/client/includes/company/company_list.html:35 +#: templates/client/includes/exposition/exposition_list.html:92 +#: templates/client/includes/exposition/members.html:35 +msgid "заметка" +msgstr "" + +#: templates/client/conference.html:84 templates/client/exposition.html:86 +#: templates/client/seminar.html:84 +#: templates/client/includes/event_object.html:77 +msgid "Найти отель" +msgstr "" + +#: templates/client/conference.html:114 +msgid "Посетить конференцию" +msgstr "" + +#: templates/client/conference.html:117 templates/client/exposition.html:119 +#: templates/client/seminar.html:117 templates/client/webinar.html:102 +#: templates/client/includes/event_steps.html:7 +msgid "Зарегистрируйтесь на событие" +msgstr "" + +#: templates/client/conference.html:118 +msgid "Билеты на конференцию" +msgstr "" + +#: templates/client/conference.html:122 templates/client/exposition.html:124 +#: templates/client/seminar.html:122 templates/client/webinar.html:107 +#: templates/client/includes/event_steps.html:12 +msgid "Забронируйте отель по лучшей цене" +msgstr "" + +#: templates/client/conference.html:127 templates/client/exposition.html:129 +#: templates/client/seminar.html:127 templates/client/webinar.html:112 +#: templates/client/includes/event_steps.html:17 +msgid "Купите авиабилеты по лучшему тарифу" +msgstr "" + +#: templates/client/conference.html:136 templates/client/exposition.html:138 +#: templates/client/seminar.html:136 +#: templates/client/includes/event_object.html:114 +msgid "Фотографии с прошлой выставки" +msgstr "" + +#: templates/client/conference.html:157 templates/client/exposition.html:159 +#: templates/client/seminar.html:157 templates/client/webinar.html:142 +#: templates/client/includes/event_object.html:135 +#: templates/client/includes/company/company_object.html:73 +msgid "Дополнительная информация" +msgstr "" + +#: templates/client/conference.html:159 templates/client/exposition.html:161 +#: templates/client/seminar.html:159 +#: templates/client/includes/event_object.html:138 +msgid "Деловая программа" +msgstr "" + +#: templates/client/conference.html:160 templates/client/exposition.html:162 +#: templates/client/seminar.html:160 +#: templates/client/includes/event_object.html:140 +msgid "Условия участия" +msgstr "" + +#: templates/client/conference.html:163 templates/client/exposition.html:165 +#: templates/client/seminar.html:163 templates/client/webinar.html:145 +#: templates/client/includes/event_object.html:143 +msgid "Организатор" +msgstr "" + +#: templates/client/conference.html:170 templates/client/exposition.html:174 +#: templates/client/seminar.html:170 templates/client/webinar.html:152 +#: templates/client/includes/event_object.html:152 +msgid "Веб-сайт" +msgstr "" + +#: templates/client/conference.html:175 templates/client/exposition.html:179 +#: templates/client/seminar.html:175 +#: templates/client/includes/event_object.html:159 +msgid "Аудитория" +msgstr "" + +#: templates/client/conference.html:180 templates/client/exposition.html:185 +#: templates/client/seminar.html:180 +#: templates/client/includes/event_object.html:166 +msgid "Периодичность" +msgstr "" + +#: templates/client/conference.html:183 templates/client/exposition.html:188 +#: templates/client/seminar.html:183 +#: templates/client/includes/event_object.html:171 +msgid "Экспонируемые продукты" +msgstr "" + +#: templates/client/conference.html:195 templates/client/exposition.html:200 +#: templates/client/seminar.html:195 templates/client/webinar.html:166 +#: templates/client/includes/event_object.html:183 +msgid "Все участники" +msgstr "" + +#: templates/client/conference.html:220 templates/client/exposition.html:225 +#: templates/client/seminar.html:220 templates/client/webinar.html:191 +#: templates/client/includes/event_object.html:211 +msgid "Все посетители" +msgstr "" + +#: templates/client/conference.html:228 templates/client/exposition.html:234 +#: templates/client/exposition/exposition_statistic.html:101 +#: templates/client/includes/event_object.html:220 +#: templates/client/includes/place_object.html:107 +msgid "Общая выставочная площадь" +msgstr "" + +#: templates/client/conference.html:231 templates/client/exposition.html:237 +#: templates/client/includes/event_object.html:223 +#: templates/client/includes/place_object.html:115 +#: templates/client/includes/place_object.html:121 +msgid "м²" +msgstr "" + +#: templates/client/conference.html:237 templates/client/exposition.html:244 +#: templates/client/exposition/exposition_statistic.html:94 +#: templates/client/includes/event_object.html:230 +msgid "учасников" +msgstr "" + +#: templates/client/conference.html:238 templates/client/exposition.html:245 +#: templates/client/exposition/exposition_statistic.html:90 +#: templates/client/includes/event_object.html:231 +msgid "посетителей" +msgstr "" + +#: templates/client/conference.html:240 templates/client/exposition.html:247 +#: templates/client/includes/event_object.html:233 +#: templates/client/includes/place_object.html:143 +msgid "Основано в" +msgstr "" + +#: templates/client/conference.html:240 templates/client/exposition.html:247 +#: templates/client/includes/event_object.html:233 +#: templates/client/includes/place_object.html:143 +msgid "году" +msgstr "" + +#: templates/client/conference.html:251 templates/client/exposition.html:258 +#: templates/client/seminar.html:230 +#: templates/client/includes/event_object.html:244 +msgid "Отели рядом с выставкой от" +msgstr "" + +#: templates/client/conference.html:253 templates/client/exposition.html:260 +#: templates/client/seminar.html:232 +#: templates/client/includes/event_object.html:246 +msgid "Все отели поблизости" +msgstr "" + +#: templates/client/conference.html:260 templates/client/exposition.html:267 +#: templates/client/seminar.html:239 +#: templates/client/includes/event_object.html:255 +msgid "Ближайшие выставки по тематике" +msgstr "" + +#: templates/client/exposition.html:116 +#: templates/client/includes/event_steps.html:4 +msgid "Посетить выставку" +msgstr "" + +#: templates/client/exposition.html:120 +#: templates/client/includes/event_steps.html:8 +msgid "Билеты на выставку" +msgstr "" + +#: templates/client/index.html:42 +msgid "добавить в календарь" +msgstr "" + +#: templates/client/index.html:131 +msgid "Все выставки" +msgstr "" + +#: templates/client/index.html:141 +msgid "Все конференции" +msgstr "" + +#: templates/client/index.html:151 +msgid "Все семинары" +msgstr "" + +#: templates/client/index.html:175 templates/client/includes/news.html:6 +msgid "Новости событий" +msgstr "" + +#: templates/client/index.html:193 templates/client/includes/news.html:41 +msgid "Все новости" +msgstr "" + +#: templates/client/index.html:200 +msgid "Фоторепортажи:" +msgstr "" + +#: templates/client/index.html:242 +msgid "Наши партнеры:" +msgstr "" + +#: templates/client/index.html:268 +msgid "Обзоры и аналитика" +msgstr "" + +#: templates/client/index.html:269 +msgid "Все обзоры" +msgstr "" + +#: templates/client/place_catalog.html:57 +#: templates/client/includes/place_list.html:46 +msgid "фото" +msgstr "" + +#: templates/client/seminar.html:114 +msgid "Посетить семинар" +msgstr "" + +#: templates/client/seminar.html:118 +msgid "Билеты на семинар" +msgstr "" + +#: templates/client/webinar.html:99 +msgid "Посетить вебинар" +msgstr "" + +#: templates/client/webinar.html:103 +msgid "Билеты на вебинар" +msgstr "" + +#: templates/client/webinar.html:121 +msgid "Фотографии с прошлого вебинара" +msgstr "" + +#: templates/client/webinar.html:200 +msgid "Ближайшие вебинары по тематике" +msgstr "" + +#: templates/client/accounts/calendar.html:9 +#: templates/client/accounts/messages.html:7 +#: templates/client/accounts/messages_history.html:7 +#: templates/client/accounts/profile.html:10 +#: templates/client/accounts/profile.html:16 +#: templates/client/accounts/settings.html:9 +msgid "Личный кабинет" +msgstr "" + +#: templates/client/accounts/calendar.html:10 +msgid "Календарь" +msgstr "" + +#: templates/client/accounts/calendar.html:16 +msgid "Личный календарь" +msgstr "" + +#: templates/client/accounts/messages.html:8 +#: templates/client/accounts/messages.html:14 +#: templates/client/accounts/messages_history.html:8 +#: templates/client/accounts/messages_history.html:14 +msgid "Сообщения" +msgstr "" + +#: templates/client/accounts/messages.html:40 +msgid "ответить" +msgstr "" + +#: templates/client/accounts/messages.html:42 +msgid "вся переписка" +msgstr "" + +#: templates/client/accounts/messages.html:57 +#: templates/client/accounts/messages_history.html:45 +#: templates/client/accounts/user.html:122 +msgid "Сообщение" +msgstr "" + +#: templates/client/accounts/messages.html:65 +#: templates/client/accounts/messages_history.html:53 +#: templates/client/accounts/user.html:129 +msgid "отправить" +msgstr "" + +#: templates/client/accounts/messages_history.html:31 +msgid "Вы" +msgstr "" + +#: templates/client/accounts/messages_history.html:54 +msgid "Все сообщения" +msgstr "" + +#: templates/client/accounts/profile.html:31 +#: templates/client/accounts/profile.html:81 +#: templates/client/accounts/profile.html:119 +#: templates/client/accounts/profile.html:163 +#: templates/client/accounts/profile.html:201 +#: templates/client/accounts/profile.html:252 +#: templates/client/accounts/profile.html:305 +#: templates/client/accounts/profile.html:335 +#: templates/client/accounts/profile.html:371 +#: templates/client/accounts/profile.html:409 +msgid "редактировать" +msgstr "" + +#: templates/client/accounts/profile.html:40 +msgid "выберите файл" +msgstr "" + +#: templates/client/accounts/profile.html:41 +msgid "Файл не выбран" +msgstr "" + +#: templates/client/accounts/profile.html:50 +#: templates/client/accounts/profile.html:106 +#: templates/client/accounts/profile.html:142 +#: templates/client/accounts/profile.html:186 +#: templates/client/accounts/profile.html:217 +#: templates/client/accounts/profile.html:289 +#: templates/client/accounts/profile.html:321 +#: templates/client/accounts/profile.html:351 +#: templates/client/accounts/profile.html:387 +#: templates/client/accounts/profile.html:425 +msgid "Сохранить" +msgstr "" + +#: templates/client/accounts/profile.html:53 +#: templates/client/accounts/profile.html:109 +#: templates/client/accounts/profile.html:146 +#: templates/client/accounts/profile.html:190 +#: templates/client/accounts/profile.html:221 +#: templates/client/accounts/profile.html:293 +#: templates/client/accounts/profile.html:325 +#: templates/client/accounts/profile.html:355 +#: templates/client/accounts/profile.html:391 +#: templates/client/accounts/profile.html:429 +msgid "закрыть" +msgstr "" + +#: templates/client/accounts/profile.html:95 +msgid "Город" +msgstr "" + +#: templates/client/accounts/profile.html:230 +msgid "редактировать профиль" +msgstr "" + +#: templates/client/accounts/profile.html:231 +msgid "завершить редактирование" +msgstr "" + +#: templates/client/accounts/profile.html:403 +msgid "О себе:" +msgstr "" + +#: templates/client/accounts/settings.html:10 +#: templates/client/accounts/settings.html:16 +msgid "Настройки" +msgstr "" + +#: templates/client/accounts/settings.html:24 +msgid "смена пароля" +msgstr "" + +#: templates/client/accounts/settings.html:46 +msgid "Пароль изменен!" +msgstr "" + +#: templates/client/accounts/settings.html:52 +#: templates/client/accounts/settings.html:74 +#: templates/client/accounts/settings.html:677 +msgid "сохранить" +msgstr "" + +#: templates/client/accounts/settings.html:60 +msgid "настройка e-mail уведомлений" +msgstr "" + +#: templates/client/accounts/settings.html:82 +msgid "социализация и sharing" +msgstr "" + +#: templates/client/accounts/settings.html:137 +msgid "настройка подписки" +msgstr "" + +#: templates/client/accounts/settings.html:142 +#: templates/client/includes/announces.html:6 +msgid "по e-mail" +msgstr "" + +#: templates/client/accounts/settings.html:143 +#: templates/client/includes/announces.html:7 +msgid "через RSS" +msgstr "" + +#: templates/client/accounts/settings.html:144 +#: templates/client/includes/announces.html:8 +msgid "на twitter" +msgstr "" + +#: templates/client/accounts/settings.html:145 +#: templates/client/includes/announces.html:9 +msgid "в iCal" +msgstr "" + +#: templates/client/accounts/user.html:51 +#: templates/client/includes/company/company_list.html:39 +#: templates/client/includes/company/company_object.html:42 +#: templates/client/includes/exposition/members.html:39 +#: templates/client/includes/exposition/visitors.html:40 +msgid "отправить сообщение" +msgstr "" + +#: templates/client/accounts/user.html:92 +msgid "О себе" +msgstr "" + +#: templates/client/accounts/user.html:99 +#: templates/client/includes/company/company_object.html:99 +msgid "Участие в событиях" +msgstr "" + +#: templates/client/accounts/user.html:117 +msgid "Ответить" +msgstr "" + +#: templates/client/exposition/exposition_price.html:36 +#: templates/client/exposition/exposition_statistic.html:35 +msgid "Скидка" +msgstr "" + +#: templates/client/exposition/exposition_price.html:86 +msgid "Для посещения" +msgstr "" + +#: templates/client/exposition/exposition_price.html:88 +msgid "Стоимость билетов" +msgstr "" + +#: templates/client/exposition/exposition_price.html:96 +msgid "на 1 день" +msgstr "" + +#: templates/client/exposition/exposition_price.html:102 +#: templates/client/exposition/exposition_price.html:125 +msgid "на все дни" +msgstr "" + +#: templates/client/exposition/exposition_price.html:108 +msgid "Предварительная регистрация" +msgstr "" + +#: templates/client/exposition/exposition_price.html:131 +msgid "Регистрация на" +msgstr "" + +#: templates/client/exposition/exposition_price.html:131 +msgid "стойке" +msgstr "" + +#: templates/client/exposition/exposition_price.html:137 +msgid "Заказать билет" +msgstr "" + +#: templates/client/exposition/exposition_price.html:140 +msgid "Выставка открыта для" +msgstr "" + +#: templates/client/exposition/exposition_price.html:154 +msgid "Для участия" +msgstr "" + +#: templates/client/exposition/exposition_price.html:156 +msgid "Стоимость аренды 1м²" +msgstr "" + +#: templates/client/exposition/exposition_price.html:163 +msgid "оборудованная площадь" +msgstr "" + +#: templates/client/exposition/exposition_price.html:170 +msgid "необорудованная площадь" +msgstr "" + +#: templates/client/exposition/exposition_price.html:177 +msgid "открытая площадь" +msgstr "" + +#: templates/client/exposition/exposition_price.html:183 +msgid "Заявка на участие" +msgstr "" + +#: templates/client/exposition/exposition_price.html:187 +msgid "Минимальный размер стенда" +msgstr "" + +#: templates/client/exposition/exposition_price.html:190 +msgid "Регистрационный взнос" +msgstr "" + +#: templates/client/exposition/exposition_price.html:193 +msgid "Крайний срок подачи заявки" +msgstr "" + +#: templates/client/exposition/exposition_statistic.html:103 +msgid "м" +msgstr "" + +#: templates/client/exposition/exposition_statistic.html:112 +msgid "Страны" +msgstr "" + +#: templates/client/includes/announces.html:4 +msgid "получать анонсЫ" +msgstr "" + +#: templates/client/includes/catalog_search.html:6 +msgid "поиск событий" +msgstr "" + +#: templates/client/includes/catalog_search.html:11 +msgid "Я ищу:" +msgstr "" + +#: templates/client/includes/catalog_search.html:17 +msgid "Где:" +msgstr "" + +#: templates/client/includes/catalog_search.html:22 +msgid "найти" +msgstr "" + +#: templates/client/includes/catalog_search.html:26 +msgid "Тематика: " +msgstr "" + +#: templates/client/includes/catalog_search.html:27 +msgid "Место: " +msgstr "" + +#: templates/client/includes/catalog_search.html:28 +msgid "Период: " +msgstr "" + +#: templates/client/includes/event_list.html:72 +#: templates/client/includes/place_object.html:224 +#: templates/client/includes/exposition/exposition_list.html:72 +msgid "услуги" +msgstr "" + +#: templates/client/includes/event_list.html:84 +#: templates/client/includes/exposition/exposition_list.html:84 +msgid "из расписания" +msgstr "" + +#: templates/client/includes/event_list.html:96 +#: templates/client/includes/place_object.html:240 +#: templates/client/includes/exposition/exposition_list.html:96 +msgid "Лучшие цены на отели на" +msgstr "" + +#: templates/client/includes/event_list_description.html:6 +msgid "" +"\n" +"\t\t

Выставки - один из наиболее популярных инструментов " +"среди маркетологов. Это объясняется тем, что специализированные " +"выставки предоставляют отличную возможность быстро и в " +"одном месте найти новых партнеров и клиентов, узнать о новых трендах своей " +"отрасли, послушать насыщенную деловую программу. Поэтому мы создали " +"Expomap.Ru именно в помощь специалистам отделов маркетинга " +"и собственникам бизнеса, предоставляя легкий и удобный поиск " +"выставок, практические кейсы о том, как правильно выбрать " +"выставку, как организовать ее посещение за рубежом или " +"участие со стендом. Вы легко можете связаться с нашими " +"онлайн-консультантами через Skype или позвонив по тел. +7 499 999 12 " +"07, и получить бесплатную информацию об интересующей Вас " +"выставке или рекомендации по тем или иным вопросам.

\n" +"\n" +"\t\t

Сейчас в нашем каталоге представлены международные выставки 2013 " +"года, а также уже прошедшие мероприятия, начиная с 2008 года – со всех стран " +"и уголков мира. С помощью рубрикатора (левый блок \"Каталог " +"выставок\") или панели поиска (строка для ввода или расширенный " +"поиск) Вы всегда сможете найти календарь выставок по интересующим Вас тематикам: строительные выставки, медицинские выставки, выставки недвижимости " +"и другие. Кроме тематик, рубрикатор дает возможность сортировать события: по " +"алфавиту, по странам, по городам, по датам. Объединить все эти критерии Вы " +"можете, используя расширенный поиск. Итоговое расписание выставок по Вашим критериям будет построено " +"удобным образом, начиная с ближайших событий.

\n" +"\t " +msgstr "" + +#: templates/client/includes/feedback.html:5 +msgid "обратный звонок" +msgstr "" + +#: templates/client/includes/footer.html:22 +#: templates/client/includes/menu.html:4 +msgid "События" +msgstr "ёё" + +#: templates/client/includes/footer.html:30 +#: templates/client/includes/menu.html:12 +msgid "места" +msgstr "" + +#: templates/client/includes/footer.html:31 +#: templates/client/includes/menu.html:13 +msgid "участники" +msgstr "" + +#: templates/client/includes/footer.html:35 +#: templates/client/includes/menu.html:17 +msgid "о нас" +msgstr "" + +#: templates/client/includes/footer.html:36 +#: templates/client/includes/menu.html:18 +msgid "партнеры" +msgstr "" + +#: templates/client/includes/footer.html:37 +#: templates/client/includes/menu.html:19 +msgid "реклама" +msgstr "" + +#: templates/client/includes/footer.html:38 +#: templates/client/includes/menu.html:20 +msgid "сервис" +msgstr "" + +#: templates/client/includes/footer.html:39 +#: templates/client/includes/menu.html:21 +msgid "для партнеров" +msgstr "" + +#: templates/client/includes/footer.html:40 +#: templates/client/includes/menu.html:22 +msgid "контакты" +msgstr "" + +#: templates/client/includes/header.html:8 +msgid "Выставки, конференции, семинары" +msgstr "" + +#: templates/client/includes/header.html:55 +msgid "личный кабинет" +msgstr "" + +#: templates/client/includes/header.html:59 +msgid "настройки" +msgstr "" + +#: templates/client/includes/header.html:62 +msgid "календарь" +msgstr "" + +#: templates/client/includes/header.html:63 +msgid "документы" +msgstr "" + +#: templates/client/includes/header.html:67 +msgid "Выход" +msgstr "" + +#: templates/client/includes/header.html:72 +#: templates/client/popups/register.html:6 +msgid "Регистрация" +msgstr "" + +#: templates/client/includes/header.html:73 +msgid "вход" +msgstr "" + +#: templates/client/includes/header.html:85 +msgid "Выставки в Германии" +msgstr "" + +#: templates/client/includes/header.html:86 +msgid "Выставки в Берлине" +msgstr "" + +#: templates/client/includes/header.html:87 +msgid "Выставки в России" +msgstr "" + +#: templates/client/includes/header.html:91 +msgid "Выставки по городам" +msgstr "" + +#: templates/client/includes/header.html:92 +msgid "Выставки по странам" +msgstr "" + +#: templates/client/includes/header.html:93 +msgid "Выставки по тематикам" +msgstr "" + +#: templates/client/includes/online_consult.html:5 +msgid "он-лайн" +msgstr "" + +#: templates/client/includes/online_consult.html:5 +msgid "консультант" +msgstr "" + +#: templates/client/includes/online_consult.html:8 +msgid "Возникли трудности?" +msgstr "" + +#: templates/client/includes/online_consult.html:8 +msgid "Наши специалисты с" +msgstr "" + +#: templates/client/includes/online_consult.html:8 +msgid "радостью помогут вам!" +msgstr "" + +#: templates/client/includes/page_filter.html:3 +#: templates/client/popups/period.html:6 templates/client/popups/place.html:56 +msgid "Период" +msgstr "" + +#: templates/client/includes/page_filter.html:8 +msgid "Указать диапазон дат" +msgstr "" + +#: templates/client/includes/place_list.html:41 +msgid "описание" +msgstr "" + +#: templates/client/includes/place_list.html:43 +#: templates/client/includes/company/company_list.html:34 +#: templates/client/includes/exposition/members.html:34 +#: templates/client/includes/exposition/visitors.html:34 +msgid "события" +msgstr "" + +#: templates/client/includes/place_list.html:51 +msgid "Найти отели поблизости" +msgstr "" + +#: templates/client/includes/place_object.html:45 +msgid "Банк / банкоматы / обмен валюты" +msgstr "" + +#: templates/client/includes/place_object.html:51 +msgid "Детская комната" +msgstr "" + +#: templates/client/includes/place_object.html:54 +msgid "Сервис для инвалидов" +msgstr "" + +#: templates/client/includes/place_object.html:62 +msgid "Бизнес центр" +msgstr "" + +#: templates/client/includes/place_object.html:65 +msgid "Онлайн-регистрация" +msgstr "" + +#: templates/client/includes/place_object.html:68 +msgid "Кафе и рестораны" +msgstr "" + +#: templates/client/includes/place_object.html:73 +msgid "Информационные терминалы" +msgstr "" + +#: templates/client/includes/place_object.html:76 +msgid "Парковка" +msgstr "" + +#: templates/client/includes/place_object.html:79 +msgid "Пресс-центр" +msgstr "" + +#: templates/client/includes/place_object.html:82 +msgid "Мобильное приложение" +msgstr "" + +#: templates/client/includes/place_object.html:90 +msgid "Фотогалерея" +msgstr "" + +#: templates/client/includes/place_object.html:116 +msgid "закрытая выставочная площадь" +msgstr "" + +#: templates/client/includes/place_object.html:122 +msgid "открытая выставочная площадь" +msgstr "" + +#: templates/client/includes/place_object.html:152 +msgid "Схема павильонов" +msgstr "" + +#: templates/client/includes/place_object.html:161 +msgid "Контактная информация" +msgstr "" + +#: templates/client/includes/place_object.html:171 +msgid "телефон" +msgstr "" + +#: templates/client/includes/place_object.html:174 +msgid "факс" +msgstr "" + +#: templates/client/includes/place_object.html:184 +msgid "Список событий" +msgstr "" + +#: templates/client/includes/place_object.html:267 +msgid "Ближайшие выставочные центры" +msgstr "" + +#: templates/client/includes/services.html:3 +msgid "Наши услуги" +msgstr "" + +#: templates/client/includes/services.html:6 +msgid "Переводчики" +msgstr "" + +#: templates/client/includes/services.html:7 +msgid "Хостесс, модели, стендистки" +msgstr "" + +#: templates/client/includes/services.html:8 +msgid "Каталоги выставок" +msgstr "" + +#: templates/client/includes/services.html:9 +msgid "Билеты на выставки" +msgstr "" + +#: templates/client/includes/services.html:10 +msgid "Заочное посещение" +msgstr "" + +#: templates/client/includes/services.html:11 +msgid "Участие и посещение" +msgstr "" + +#: templates/client/includes/accounts/calendar_table.html:8 +msgid "визуализация" +msgstr "" + +#: templates/client/includes/accounts/calendar_table.html:29 +#: templates/client/includes/accounts/calendar_table.html:123 +msgid "Сегодня" +msgstr "" + +#: templates/client/includes/company/company_list.html:33 +#: templates/client/includes/exposition/members.html:33 +#: templates/client/includes/exposition/visitors.html:33 +msgid "информация" +msgstr "" + +#: templates/client/includes/company/company_object.html:77 +msgid "Год основания:" +msgstr "" + +#: templates/client/includes/company/company_object.html:82 +msgid "Количество сотрудников:" +msgstr "" + +#: templates/client/includes/company/company_object.html:86 +msgid "О компании:" +msgstr "" + +#: templates/client/includes/company/company_object.html:102 +msgid "выставках" +msgstr "" + +#: templates/client/includes/company/company_object.html:103 +msgid "конференциях" +msgstr "" + +#: templates/client/includes/company/company_object.html:104 +msgid "семинарах" +msgstr "" + +#: templates/client/includes/company/company_object.html:124 +msgid "Участник" +msgstr "" + +#: templates/client/includes/company/company_object.html:150 +msgid "Все события" +msgstr "" + +#: templates/client/includes/company/company_object.html:154 +msgid "Сотрудники" +msgstr "" + +#: templates/client/includes/company/company_object.html:181 +msgid "Все сотрудники" +msgstr "" + +#: templates/client/includes/exposition/exposition_list.html:28 +msgid "Активная" +msgstr "" + +#: templates/client/includes/exposition/exposition_list.html:30 +msgid "Неактивная" +msgstr "" + +#: templates/client/includes/photoreport/photoreport_list.html:56 +msgid "Все фотографии" +msgstr "" + +#: templates/client/includes/photoreport/photoreport_list.html:57 +msgid "фотографий" +msgstr "" + +#: templates/client/includes/photoreport/photoreport_object.html:86 +#: templates/client/place/place_photo.html:83 +msgid "На фотографии отмечены" +msgstr "" + +#: templates/client/includes/photoreport/photoreport_object.html:92 +#: templates/client/place/place_photo.html:90 +msgid "Коментарии" +msgstr "" + +#: templates/client/includes/photoreport/photoreport_object.html:104 +#: templates/client/place/place_photo.html:102 +msgid "Оставьте свой комментарий" +msgstr "" + +#: templates/client/includes/photoreport/photoreport_object.html:109 +#: templates/client/place/place_photo.html:108 +msgid "отметить человека" +msgstr "" + +#: templates/client/photoreport/photoreport_catalog.html:25 +msgid "Ничего не найдено" +msgstr "" + +#: templates/client/popups/login.html:5 +msgid "Вход в личный кабинет" +msgstr "" + +#: templates/client/popups/login.html:17 +msgid "Ваш пароль" +msgstr "" + +#: templates/client/popups/login.html:19 +msgid "Напомнить пароль" +msgstr "" + +#: templates/client/popups/login.html:23 +msgid "войти" +msgstr "" + +#: templates/client/popups/login.html:24 +msgid "Запомнить" +msgstr "" + +#: templates/client/popups/login.html:27 +#: templates/client/popups/register.html:45 +msgid "Зарегистрироваться" +msgstr "" + +#: templates/client/popups/login.html:34 +#: templates/client/popups/register.html:51 +msgid "или войдите с помощью" +msgstr "" + +#: templates/client/popups/period.html:21 +#: templates/client/popups/place.html:48 templates/client/popups/place.html:71 +#: templates/client/popups/theme.html:34 +msgid "применить" +msgstr "" + +#: templates/client/popups/place.html:6 +msgid "Место" +msgstr "" + +#: templates/client/popups/place.html:12 +msgid "Выберите страну из списка" +msgstr "" + +#: templates/client/popups/place.html:35 +msgid "Быстрый выбор" +msgstr "" + +#: templates/client/popups/place.html:41 +msgid "Сбросить выбранные регионы" +msgstr "" + +#: templates/client/popups/register.html:15 +msgid "например, свое имя" +msgstr "" + +#: templates/client/popups/register.html:23 +msgid "например, свою фамилию" +msgstr "" + +#: templates/client/popups/register.html:30 +msgid "например, ivanova@mail.ru" +msgstr "" + +#: templates/client/popups/register.html:36 +#: templates/client/popups/register.html:42 +msgid "пароль должен иметь не меньше 6 символов" +msgstr "" + +#: templates/client/popups/theme.html:7 +msgid "Тематика" +msgstr "" + +#: templates/client/popups/theme.html:20 +msgid "Выберите интересующую вас тематику" +msgstr "" + +#: templates/registration/password_change_done.html:4 +#: templates/registration/password_change_done.html:8 +msgid "Password change successful" +msgstr "" + +#: templates/registration/password_change_done.html:10 +msgid "Your password was changed." +msgstr "" + +#: templates/registration/password_change_form.html:5 +#: templates/registration/password_change_form.html:9 +msgid "Password change" +msgstr "" + +#: templates/registration/password_change_form.html:11 +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" + +#: templates/registration/password_change_form.html:16 +msgid "Old password:" +msgstr "" + +#: templates/registration/password_change_form.html:18 +#: templates/registration/password_reset_confirm.html:19 +msgid "New password:" +msgstr "" + +#: templates/registration/password_change_form.html:20 +#: templates/registration/password_reset_confirm.html:21 +msgid "Confirm password:" +msgstr "" + +#: templates/registration/password_change_form.html:22 +#: templates/registration/password_reset_confirm.html:22 +msgid "Change my password" +msgstr "" + +#: templates/registration/password_reset_complete.html:6 +#: templates/registration/password_reset_complete.html:10 +msgid "Password reset complete" +msgstr "" + +#: templates/registration/password_reset_complete.html:12 +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" + +#: templates/registration/password_reset_complete.html:14 +msgid "Log in" +msgstr "" + +#: templates/registration/password_reset_confirm.html:6 +#: templates/registration/password_reset_form.html:6 +#: templates/registration/password_reset_form.html:10 +msgid "Password reset" +msgstr "" + +#: templates/registration/password_reset_confirm.html:12 +msgid "Enter new password" +msgstr "" + +#: templates/registration/password_reset_confirm.html:14 +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" + +#: templates/registration/password_reset_confirm.html:27 +msgid "Password reset unsuccessful" +msgstr "" + +#: templates/registration/password_reset_confirm.html:29 +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" + +#: templates/registration/password_reset_done.html:6 +#: templates/registration/password_reset_done.html:10 +msgid "Password reset successful" +msgstr "" + +#: templates/registration/password_reset_done.html:12 +msgid "" +"We've e-mailed you instructions for setting your password to the e-mail " +"address you submitted. You should be receiving it shortly." +msgstr "" + +#: templates/registration/password_reset_email.html:2 +msgid "You're receiving this e-mail because you requested a password reset" +msgstr "" + +#: templates/registration/password_reset_email.html:3 +#, python-format +msgid "for your user account at %(site_name)s" +msgstr "" + +#: templates/registration/password_reset_email.html:5 +msgid "Please go to the following page and choose a new password:" +msgstr "" + +#: templates/registration/password_reset_email.html:9 +msgid "Your username, in case you've forgotten:" +msgstr "" + +#: templates/registration/password_reset_email.html:11 +msgid "Thanks for using our site!" +msgstr "" + +#: templates/registration/password_reset_email.html:13 +#, python-format +msgid "The %(site_name)s team" +msgstr "" + +#: templates/registration/password_reset_form.html:12 +msgid "" +"Forgotten your password? Enter your e-mail address below, and we'll e-mail " +"instructions for setting a new one." +msgstr "" + +#: templates/registration/password_reset_form.html:17 +msgid "E-mail address:" +msgstr "" + +#: templates/registration/password_reset_form.html:17 +msgid "Reset my password" +msgstr "" diff --git a/media/imgs/cl-logo-1.png b/media/accounts/avatar/cl-logo-1.png similarity index 100% rename from media/imgs/cl-logo-1.png rename to media/accounts/avatar/cl-logo-1.png diff --git a/media/accounts/avatar/cl-logo-2.png b/media/accounts/avatar/cl-logo-2.png new file mode 100644 index 00000000..4a64c4dc Binary files /dev/null and b/media/accounts/avatar/cl-logo-2.png differ diff --git a/media/accounts/avatar/cl-logo-2_1.png b/media/accounts/avatar/cl-logo-2_1.png new file mode 100644 index 00000000..4a64c4dc Binary files /dev/null and b/media/accounts/avatar/cl-logo-2_1.png differ diff --git a/media/accounts/avatar/part-logo-1.png b/media/accounts/avatar/part-logo-1.png new file mode 100644 index 00000000..3a088d2b Binary files /dev/null and b/media/accounts/avatar/part-logo-1.png differ diff --git a/media/imgs/.1 b/media/imgs/.1 new file mode 100644 index 00000000..f0e1dc98 --- /dev/null +++ b/media/imgs/.1 @@ -0,0 +1,291 @@ + + + + "" + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ + + +
+ RU + EN + 中文 + +
+ + + + + +
+ +
+
+ +   +
+
+ +
+ +
+
+

+
+

EF_map_plan_all_04.png

+
+ +
+
+
+ +
+
+ + + +
+ + + + + + + + + + + +. + + + + + + + + + diff --git a/media/imgs/.2 b/media/imgs/.2 new file mode 100644 index 00000000..98d26f44 --- /dev/null +++ b/media/imgs/.2 @@ -0,0 +1,334 @@ + + + + + + - - + + + + + + + + + + + + + + + +  + + + + + + + + + +
 English Francaise Deutsch  + + + + + + + + +
   
+ + + +
+ + + + + + + + +
+ + + + + + + + + + + + + +
  : ,
. , 52 , "-" +
   +: (8552) 470-102
+E-mail: chelnyexpo@gmail.com, expokama1@bk.ru
+ +
+
+ + + + + + + + + + + +
+ +
+
+ + + + + + + + +
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +



+ +
     
+
+ + + + + +
+ + + + + +
+

+

  • + +
  • +1- +

    +
  • +
    +
    + + + + + + + + + +
    + + + + +

    - - .
    +
    +
    + + + +


    + + +
    + + +
    + + + + + + + + + +
    +
    +
    +
    +
    +
    +
    +
    + + + + +

    + + + + + +
    + + +
    + + + + + + +
    + + +
    + + +
    + + +

    +
    +
    +
    + + + + + + + +
    + + +

    + + +
    +
    + + + + + + + + +
    +
    +
    +
    +TopList  + + + + + +Mail.Ru +   Design by Hotkey +

    +
    + diff --git a/media/imgs/.3 b/media/imgs/.3 new file mode 100644 index 00000000..f097796a --- /dev/null +++ b/media/imgs/.3 @@ -0,0 +1,251 @@ + + + + "" - + + + + + + + + + + + + +
    + + + + + +
    + + + + + + + + + + + + + +
    +
    + + + + + +
      ''
    +
    +
    + + + + + + + + + + + + + +
    + + + + + + + +
    +
    2013 - 2014 +
    +
    +
    >
    + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    + +
    + +
    + +
    + +
    + + -
    + +
    + + + + + + + + + + + + + + + + +
    + 19:55 (GMT +5)

    + :   . +
    + + +
    + +. + + + +
    + + + + +
    +
    + +

    + + + + + + +

    + + + + + + + +
    + + + + + + + +
    + + +
    +
    + + + diff --git a/media/imgs/.4 b/media/imgs/.4 new file mode 100644 index 00000000..a5a8ca08 --- /dev/null +++ b/media/imgs/.4 @@ -0,0 +1,818 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + +
    + +
    + + + +
    + +
    +
    +
    + + + + + + + +
    + +
    +
    + +
    +
    +
    +
      +
    +
    +
    + +

    +
    +
    + + +
    +
    +
    +    +
    +

    +
    + + / + +
    +
    + + + + + + + + + + +
    + + + + + +
    «» , .
    + +
    , , .
    + +
    , ,
    + +
    +
    +
    + +
    (495) 786 33 33
    + +
    +
    +
    + +
    :
    + +
    , , 16, 1 2.
    + +
    +
    +
    + +

    . ()

    + +
    , . ( , ) . .
    + +

    . ()

    + +
    , ( , ) . .
    + +
    +

    ( )

    + +
    +

    . ()

    + +

    , . ( , ) . . , . .

    + +
    + +

    . ()

    + +

    , ( , ) . .

    + +

    , . .

    +
    + +

    + +
    +

    . ()

    + +

    , . ( , ) . .

    + +

    , (-7). , ( : л)

    + +
    + +

    . ()

    + +

    , ( , ) . .

    + +

    , (-7). , ( : л)

    + +

    olimpiysky_visitor_map.jpg

    +
    + +

    + +
    +

    . ()

    + +

    , . ( , ) . . , (-7). , , л.

    + +
    + +

    . ()

    + +

    , ( , ) . .

    + +

    , (-7). , , л

    +
    + +

    + +
    +

    . ()

    + +

    , . ( , ) .

    + +

    ( ) ( ). , ( ) - . .

    + +
    + +

    . ()

    + +

    , ( , ) .

    + +

    ( ) ( ). , ( ) - . .

    +
    + +

    + +
    +

    . ()

    + +

    , . ( , ) . .

    + +

    , ( , ).

    + +
    + +

    . ()

    + +

    , ( , ) . .

    + +

    , ( , ).

    +
    + +

    1-5 ( )

    + +
    +

    . ()

    + +

    , . ( , ) .

    + +

    , . - .

    + +
    + +

    . ()

    + +

    , ( , ) .

    + +

    , . - .

    +
    + +

    5 8 ( )

    + +
    +

    . ()

    + +

    , . ( , ) . .

    + +

    , ( ). - .

    + +
    + +

    . ()

    + +

    , ( , ) . .

    + +

    , ( ). - .

    +
    +
    + +
    +
    +
    + +
    ...
    +
    +
    + +
    + + +
    + +
    + +
    + + +
    +
      +
    • +
    • +
    • +
    +
    +
    +
    +
    + +
    + + + + + +
    + +
    +
    +
    +
    (495) 786 33 33
    +
    +

    + + + +
    +
    + + . + + + + + +
    +
    +
    + + + +
    +
    +

    + ©
    , 2014
    + +

    + +
    +
    +
    + UnrealArt +
    +
    + ith +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/media/imgs/.5 b/media/imgs/.5 new file mode 100644 index 00000000..66b6f554 --- /dev/null +++ b/media/imgs/.5 @@ -0,0 +1,291 @@ + + + + "" + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + + +
    + RU + EN + 中文 + +
    + + + + + +
    + +
    +
    + +   +
    +
    + +
    + +
    +
    +

    +
    +

    EF_map_plan_all_04.png

    +
    + +
    +
    +
    + +
    +
    + + + +
    + + + + + + + + + + + +. + + + + + + + + + diff --git a/media/imgs/59 b/media/imgs/59 new file mode 100644 index 00000000..f5cdd408 --- /dev/null +++ b/media/imgs/59 @@ -0,0 +1,50 @@ + +План комплекса "Ленэкспо" - Выставочный комплекс «Ленэкспо» +Яндекс.Метрика + + + + + + + diff --git a/media/imgs/cl-logo-3_1.1.png b/media/imgs/cl-logo-3_1.1.png deleted file mode 100644 index 3783a0d7..00000000 Binary files a/media/imgs/cl-logo-3_1.1.png and /dev/null differ diff --git a/media/imgs/cl-logo-3_1.2.png b/media/imgs/cl-logo-3_1.2.png deleted file mode 100644 index 3783a0d7..00000000 Binary files a/media/imgs/cl-logo-3_1.2.png and /dev/null differ diff --git a/media/imgs/cl-logo-3_1.png b/media/imgs/cl-logo-3_1.png deleted file mode 100644 index 3783a0d7..00000000 Binary files a/media/imgs/cl-logo-3_1.png and /dev/null differ diff --git a/media/imgs/expo-volga.png b/media/imgs/expo-volga.png new file mode 100644 index 00000000..bf9e7765 Binary files /dev/null and b/media/imgs/expo-volga.png differ diff --git a/media/imgs/get-file.1.aspx?id=111&DBCode=UploadedFile b/media/imgs/get-file.1.aspx?id=111&DBCode=UploadedFile new file mode 100644 index 00000000..d29ae745 Binary files /dev/null and b/media/imgs/get-file.1.aspx?id=111&DBCode=UploadedFile differ diff --git a/media/imgs/get-file.aspx?id=111&DBCode=UploadedFile b/media/imgs/get-file.aspx?id=111&DBCode=UploadedFile new file mode 100644 index 00000000..d29ae745 Binary files /dev/null and b/media/imgs/get-file.aspx?id=111&DBCode=UploadedFile differ diff --git a/media/imgs/index.php b/media/imgs/index.php new file mode 100644 index 00000000..739ee640 --- /dev/null +++ b/media/imgs/index.php @@ -0,0 +1,471 @@ + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + + + + + +
    + + + +
    + + + + + + +
    + +
    + + +
    + +
    +
    +
    + + +
    +
    +
    + + + + + + +
    + + + +
    +
      + +
    • +
    • + + +
    • +
    • + + +
    • +
    • + + +
    • +
    • + + +
    • +
    • + + +
    • +
    • + + +
    +
    + + +
    + +
    +
    + +
    I- .
    + +
    .
    + +
    , , .
    + +
    .
    + +
    +
    +
    + +
    +
    + +
    ...
    +
    + +
    + +
    +
    +
    + + + + + + + + + + \ No newline at end of file diff --git a/media/imgs/index.php?option=com_content&view=article&id=460&Itemid=192 b/media/imgs/index.php?option=com_content&view=article&id=460&Itemid=192 deleted file mode 100644 index acd2dce1..00000000 --- a/media/imgs/index.php?option=com_content&view=article&id=460&Itemid=192 +++ /dev/null @@ -1,457 +0,0 @@ - - - - - - - - - - Схема парковки - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - -
    - - -
    -
    - -
    -
    - - -
    -
    -
    - - - -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    - - -
    - - - -
    - -
    - - -
    - -

    - Схема парковки

    - - - - - -
    - - - - - -

    -

    -

    Для получения файла большого размера нажмите на картинку

    - -
    - -
    - -

    - - -
    - -
    - - -
    -
    - - - - - -
    -
    - - -
    -
    - -
    -
    -
    -
    -
    - - -
    -
    - - - - - -
    -
    - - -
    - -
    -
    - - - - - - - - \ No newline at end of file diff --git a/media/imgs/logo.1.png b/media/imgs/logo.1.png new file mode 100644 index 00000000..8f4e23f1 Binary files /dev/null and b/media/imgs/logo.1.png differ diff --git a/media/imgs/logo.2.png b/media/imgs/logo.2.png new file mode 100644 index 00000000..195e96a5 Binary files /dev/null and b/media/imgs/logo.2.png differ diff --git a/media/imgs/logo.png b/media/imgs/logo.png new file mode 100644 index 00000000..2fb5872b Binary files /dev/null and b/media/imgs/logo.png differ diff --git a/media/imgs/outline b/media/imgs/outline new file mode 100644 index 00000000..e09d23aa --- /dev/null +++ b/media/imgs/outline @@ -0,0 +1,162 @@ + + + + + + + + + План выстовочного комплекса + + + + + + + + + + + + + + + + + + + + + +Яндекс.Метрика + + + + + + + + \ No newline at end of file diff --git a/media/photos/06.JPG b/media/photos/06.JPG new file mode 100644 index 00000000..563e59dc Binary files /dev/null and b/media/photos/06.JPG differ diff --git a/media/photos/57_full.jpeg b/media/photos/57_full.jpeg new file mode 100644 index 00000000..e69de29b diff --git a/media/photos/DSC_0912.JPG b/media/photos/DSC_0912.JPG new file mode 100644 index 00000000..83b31422 Binary files /dev/null and b/media/photos/DSC_0912.JPG differ diff --git a/place_exposition/models.py b/place_exposition/models.py index 48da6018..88afef1a 100644 --- a/place_exposition/models.py +++ b/place_exposition/models.py @@ -15,8 +15,8 @@ import copy from exposition.models import Exposition from place_conference.models import PlaceConference -EXPOSITION_TYPE = (('Exposition complex', 'Выставочный комплекс'), ('Convention centre', 'Конгессно-выставочный центр'), - ('Exposition centre', 'Выставочный центр'),) +EXPOSITION_TYPE = (('Exposition complex', u'Выставочный комплекс'), ('Convention centre', u'Конгрессно-выставочный центр'), + ('Exposition centre', u'Выставочный центр'),) class PlaceExposition(TranslatableModel): """ @@ -110,7 +110,7 @@ class PlaceExposition(TranslatableModel): return logo def get_photos(self): - photos = self.photos.all()[:3] + photos = self.photos.all() return photos def get_scheme(self): @@ -125,8 +125,8 @@ class PlaceExposition(TranslatableModel): return events def get_nearest_places(self): - pl_exp = PlaceExposition.objects.filter(city=self.city).exclude(id=self.id)[:3] - pl_conf = PlaceConference.objects.filter(city=self.city)[:3] + pl_exp = PlaceExposition.objects.language().filter(city=self.city).exclude(id=self.id)[:3] + pl_conf = PlaceConference.objects.language().filter(city=self.city)[:3] #return pl_exp[] return list(pl_exp)+ list(pl_conf)#PlaceExposition.objects.filter(city=self.city).exclude(id=self.id) diff --git a/proj/settings.py b/proj/settings.py index ada9788d..54e2b4e1 100644 --- a/proj/settings.py +++ b/proj/settings.py @@ -56,6 +56,10 @@ LANGUAGES = ( ('en', _('English')), ) +LOCALE_PATHS = ( + os.path.join(SITE_ROOT, 'locale'), +) + DEFAULT_CHARSET = 'utf-8' SITE_ID = 1 @@ -221,10 +225,14 @@ ACCOUNT_ACTIVATION_DAYS=2 # mail settings EMAIL_USE_TLS = True EMAIL_HOST = 'smtp.gmail.com' +#EMAIL_HOST = 'localhost' +#EMAIL_HOST_USER = 'kotzilla' EMAIL_HOST_USER = 'kotzillla@gmail.com' EMAIL_HOST_PASSWORD = 'fitter2006' + + EMAIL_PORT = 587 -DEFAULT_FROM_EMAIL = 'kotzillla@gmail.com' +#DEFAULT_FROM_EMAIL = 'kotzillla@gmail.com' AUTHENTICATION_BACKENDS = ( @@ -327,6 +335,7 @@ INSTALLED_APPS = ( 'ckeditor', 'django_messages', 'bitfield', + 'djutils', #'social_auth', 'social.apps.django_app.default', #'south', diff --git a/proj/urls.py b/proj/urls.py index 28c5216c..d1732473 100644 --- a/proj/urls.py +++ b/proj/urls.py @@ -2,24 +2,27 @@ from django.conf.urls import patterns, include, url from views import AdvertisingView -from core.views import PlaceListView +from core.views import PlaceListView, PlacePhotoView from views import MainPageView + urlpatterns = patterns('', - url(r'^$', MainPageView.as_view()),#'proj.views.home', name='home'), + url(r'^$', MainPageView.as_view()), + url(r'^', include('accounts.urls')), url(r'^', include('exposition.urls')), url(r'^', include('conference.urls')), url(r'^', include('seminar.urls')), url(r'^', include('webinar.urls')), url(r'^', include('company.urls')), url(r'^', include('photoreport.urls')), - url(r'^', include('accounts.urls')), + url(r'^', include('file.urls')), url(r'^', include('django_messages.expomap_urls')), url(r'^messages/', include('django_messages.urls')), url(r'^advertising/$', AdvertisingView.as_view()), + url(r'^places/(?P.*)/photo/$', PlacePhotoView.as_view()), url(r'^places/(?P.*)/(?P\d+)/$', PlaceListView.as_view()), url(r'^places/(?P\d+)/$', PlaceListView.as_view()), url(r'^places/(?P.*)/$', PlaceListView.as_view()), @@ -46,5 +49,5 @@ urlpatterns = patterns('', # ajax urls urlpatterns += patterns('', url(r'^register/', 'registration.backends.default.views.RegisterAjaxView'), - url(r'^profile/change-password/', 'accounts.views.change_password'), +# url(r'^profile/change-password/', 'accounts.views.change_password'), ) \ No newline at end of file diff --git a/registration/backends/default/views.py b/registration/backends/default/views.py index 8ca52b9b..88c2b4b2 100644 --- a/registration/backends/default/views.py +++ b/registration/backends/default/views.py @@ -184,6 +184,7 @@ def RegisterAjaxView(request): return HttpResponse('not ajax') from django.contrib.auth.forms import AuthenticationForm +from registration.forms import LoginForm def LogoutView(request): diff --git a/static/client/js/main.js b/static/client/js/main.js index 2b7dcb4d..8d0f7965 100644 --- a/static/client/js/main.js +++ b/static/client/js/main.js @@ -52,6 +52,18 @@ function addError(inputId, msg){ /* submiting registration form */ $(function () { + $('#send_message_form').on('submit', function(event){ + event.preventDefault(); + $this = $(this); + var formData = $this.serialize(); + var url = $this.attr('action') + $.post(url, formData, function(data){ + if (data.success){ + $.fancybox.close(); + $this.find('#id_body').val('') + } + }); + }); $('#reply_form').on('submit', function(event){ event.preventDefault(); $this = $(this); @@ -63,15 +75,12 @@ function addError(inputId, msg){ if (data.success){ $.fancybox.close(); $this.find('#id_recipient').val('') - $this.find('#id_').val('') - - } - + $this.find('#id_body').val('') + } }); }); - $('.visit').on('click', function(event){ event.preventDefault(); var url = $(this).attr('href'); @@ -132,16 +141,15 @@ function addError(inputId, msg){ $('#paswd_change').on('submit', function(event){ event.preventDefault(); var formData = $(this).serialize(); - var url = 'change-password/'; + var url = '/profile/change-password/'; var $form = $(this); $.post(url, formData, function(data){ - if (data.success){ - console.log(data); + if (data.success){ $('#paswd_change .mf-success').fadeIn(300); setTimeout(function(){ $('#paswd_change .mf-success').fadeOut(300); }, 3000); - //$form.find('mf-success').show(); + $form.find('#id_old password').val('') } else{ @@ -162,13 +170,12 @@ function addError(inputId, msg){ /* Нестандартное оформление для поля select */ $.fn.customSelect = function () { - return $(this).each(function() { - + return $(this).each(function() { var $this = $(this); var $options = $this.children('option'); var numberOfOptions = $this.children('option').length; var $selected = $(":selected", $this); - + console.log($selected); // Hides the select element $this.addClass('s-hidden'); diff --git a/static/client/js/profile.js b/static/client/js/profile.js index 38712b73..16e3566e 100644 --- a/static/client/js/profile.js +++ b/static/client/js/profile.js @@ -1,6 +1,130 @@ -!function ($){ - - $('#id_country').onchange = function(){alert('111');} +function handleNameForm(data){ + if (data.success){ + var fname = $this.find('#id_first_name').val() + var lname = $this.find('#id_last_name').val() + $this.parent().parent().prev().html(fname+' '+lname) + $this.next().click() + } +} + +function handleHomeForm(data){ + if (data.success){ + var country = $this.find('#id_country option:selected').text(); + var city = $this.find('#id_city option:selected').text(); + + $this.parent().parent().prev(); + $this.parent().parent().prev().prev().find('a').attr('#'); + $this.parent().parent().prev().prev().find('a').html(country); + + $this.next().click() + } +} + +function handleWorkForm(data){ + if (data.success){ + var position = $this.find('#id_position').val(); + var work = $this.find('#id_work').val(); + + var result = position; + if (work!=''){ + result = result + ' в ' + work; + } + + $this.parent().parent().prev().html(result); + + $this.next().click() + } +} + +function handleAboutCompanyForm(data){ + if (data.success){ + var about_company = $this.find('#id_about_company').val(); + $this.parent().parent().prev().html(about_company); + $this.next().click(); + } +} + +function handleSocialForm(data){ + if (data.success){ + var fb = $this.find('#id_facebook').val(); + var li = $this.find('#id_linkedin').val(); + var tw = $this.find('#id_twitter').val(); + var vk = $this.find('#id_vk').val(); + + if (fb==''){fb = '#';} + if (li==''){li = '#';} + if (tw==''){tw = '#';} + if (vk==''){vk = '#';} + + var $ul = $this.parent().parent().prev(); + $ul.find('li:eq(0) a').attr('href', fb); + $ul.find('li:eq(1) a').attr('href', li); + $ul.find('li:eq(2) a').attr('href', vk); + $ul.find('li:eq(3) a').attr('href', tw); + + $this.next().click(); + } +} + +function handlePhoneForm(data){ + if (data.success){ + var phone = $this.find('#id_phone').val() + phone = '+'+phone.replace(/(\d{2})(\d{3})(\d{3})(\d{4})/, "$1 $2 $3 $4"); + $this.parent().parent().prev().html(phone) + $this.next().click() + } +} + +function handleEmailForm(data){ + if (data.success){ + var email = $this.find('#id_email').val() + $this.parent().parent().prev().html(email) + $this.parent().parent().prev().attr('href', 'mailto:'+url) + $this.next().click() + } +} + +function handleWebPageForm(data){ + if (data.success){ + var url = $this.find('#id_web_page').val() + $this.parent().parent().prev().attr('href', url) + $this.parent().parent().prev().html(url) + $this.next().click() + } +} + +function handleAboutForm(data){ + if (data.success){ + var about = $this.find('#id_about').val() + $this.parent().parent().prev().html(about) + $this.next().click() + } +} + +function formHandler(id, handleFunction){ + $(id).on('submit', function(event){ + event.preventDefault() + $this = $(this) + var url = $this.attr('action'); + var formData = $this.serialize(); + $.post(url, formData, handleFunction); + }); +} + + +$(document).ready(function(){ + formHandler('#home_form', handleHomeForm); + formHandler('#name_form', handleNameForm); + formHandler('#work_form', handleWorkForm); + formHandler('#about_company_form', handleAboutCompanyForm); + formHandler('#social_form', handleSocialForm); + formHandler('#phone_form', handlePhoneForm); + //formHandler('#email_form', handleEmailForm); + formHandler('#web_page_form', handleWebPageForm); + formHandler('#about_form', handleAboutForm); + + //$('#id_country').onchange = function(){alert('111');} + $('#id_country').on('change', function(){alert('111');}) $('.pcm-next, .pcm-prev').on('click', function(e){ e.preventDefault(); @@ -9,10 +133,10 @@ }); +}) - -}(jQuery); + handleCalendar = function(data){ diff --git a/templates/client/accounts/messages.html b/templates/client/accounts/messages.html index 3bd7fdce..c9dc5bc9 100644 --- a/templates/client/accounts/messages.html +++ b/templates/client/accounts/messages.html @@ -20,14 +20,15 @@ {% for sender in senders %}
  • -
    +
    {{ sender.message.sent_at }}
    diff --git a/templates/client/accounts/messages_history.html b/templates/client/accounts/messages_history.html index 11d2ab05..435a2156 100644 --- a/templates/client/accounts/messages_history.html +++ b/templates/client/accounts/messages_history.html @@ -30,7 +30,7 @@ {% ifequal msg.sender user %} {% trans 'Вы' %}: {% else %} - {{ msg.sender.get_full_name }} + {{ msg.sender.get_full_name }} {% endifequal %}
    {{ msg.body }}
    diff --git a/templates/client/accounts/profile.html b/templates/client/accounts/profile.html index e943f5f8..b8829e2b 100644 --- a/templates/client/accounts/profile.html +++ b/templates/client/accounts/profile.html @@ -30,20 +30,17 @@
    {% trans 'редактировать' %}
    -
    {% csrf_token %} + {% csrf_token %}
    -
    {% trans 'выберите файл' %}
    -
    {% trans 'Файл не выбран' %}
    -
    - {{ avatar_form.avatar }} -
    -
    - +
    {% trans 'выберите файл' %}
    +
    {% trans 'Файл не выбран' %}
    +
    +
    @@ -57,21 +54,33 @@
    -
    12
    + {# END avatar #}
    {# country and city #}
    - {{ home_form.instance.country }} + {% if home_form.instance.country %} + + {% else %} + + {% endif %} + {{ home_form.instance.country }} + + {% if home_form.instance.city %} - , {{ home_form.instance.city }} + + {% else %} + {% endif %} + , {{ home_form.instance.city }} + +
    {% trans 'редактировать' %}
    - {% csrf_token %} + {% csrf_token %}
    @@ -105,11 +114,12 @@ {# name #}
    - {{ name_form.get_full_name }} + {{ name_form.get_full_name }}
    {% trans 'редактировать' %}
    - {% csrf_token %} + {% csrf_token %}
    @@ -142,15 +152,17 @@ {# position #}
    +

    {{ work_form.position.value }} {% if work_form.work.value %} {% trans 'в' %} {{ work_form.work.value }} {% endif %} +

    {% trans 'редактировать' %}
    - {% csrf_token %} + {% csrf_token %}
    @@ -184,11 +196,11 @@ {# description #}
    - {{ about_company_form.about_company.value }} +

    {{ about_company_form.about_company.value }}

    {% trans 'редактировать' %}
    - {% csrf_token %} + {% csrf_token %}
    @@ -219,15 +231,27 @@ {% trans 'завершить редактирование' %}
    {% trans 'редактировать' %}
    - {% csrf_token %} + {% csrf_token %}
    @@ -275,12 +299,12 @@
    {% trans 'Все посетители' %} @@ -229,7 +237,7 @@ {% endif %}
    - +
    + {% if exposition.get_nearest_events %}
    -
    {% trans 'Ближайшие выставки по тематике' %} «{{ exposition.theme.all.0 }}»
    +
    {% trans 'Ближайшие выставки по тематике' %} «{{ exposition.theme.all.0 }}»
      {% for exp in exposition.get_nearest_events %}
    • @@ -291,7 +301,10 @@ {% endfor %}
    + {% endif %} + {% endblock %} {% block content_text %} diff --git a/templates/client/includes/exposition/exposition_list.html b/templates/client/includes/exposition/exposition_list.html index e69de29b..2b4b63d2 100644 --- a/templates/client/includes/exposition/exposition_list.html +++ b/templates/client/includes/exposition/exposition_list.html @@ -0,0 +1,118 @@ +{% load static %} +{% load i18n %} +{% load template_filters %} + + \ No newline at end of file diff --git a/templates/client/includes/exposition/members.html b/templates/client/includes/exposition/members.html index fe56e772..f9c74e1a 100644 --- a/templates/client/includes/exposition/members.html +++ b/templates/client/includes/exposition/members.html @@ -30,13 +30,13 @@
  • diff --git a/templates/client/includes/exposition/visitors.html b/templates/client/includes/exposition/visitors.html index c9a37cc5..a242f08f 100644 --- a/templates/client/includes/exposition/visitors.html +++ b/templates/client/includes/exposition/visitors.html @@ -6,7 +6,7 @@ {% for member in object_list %}
  • {% endfor %} - \ No newline at end of file + + diff --git a/templates/client/includes/header.html b/templates/client/includes/header.html index e68f2b69..0bb4dc5c 100644 --- a/templates/client/includes/header.html +++ b/templates/client/includes/header.html @@ -52,25 +52,25 @@ {% else %} {% endif %} diff --git a/templates/client/includes/news.html b/templates/client/includes/news.html index 18c2766c..ecdc5670 100644 --- a/templates/client/includes/news.html +++ b/templates/client/includes/news.html @@ -7,6 +7,7 @@
      +
    \ No newline at end of file diff --git a/templates/client/includes/page_filter.html b/templates/client/includes/page_filter.html index 83fc1f8e..99f497c6 100644 --- a/templates/client/includes/page_filter.html +++ b/templates/client/includes/page_filter.html @@ -1,10 +1,10 @@ \ No newline at end of file diff --git a/templates/client/includes/place_list.html b/templates/client/includes/place_list.html index 0ab36e65..1cd152cf 100644 --- a/templates/client/includes/place_list.html +++ b/templates/client/includes/place_list.html @@ -38,17 +38,17 @@ diff --git a/templates/client/includes/place_object.html b/templates/client/includes/place_object.html index 5a929af5..e535a3da 100644 --- a/templates/client/includes/place_object.html +++ b/templates/client/includes/place_object.html @@ -42,44 +42,44 @@
      {% if place.bank %} -
    • Банк / банкоматы / обмен валюты
    • +
    • {% trans 'Банк / банкоматы / обмен валюты' %}
    • {% endif %} {% if place.wifi %}
    • Wi-Fi
    • {% endif %} {% if place.children_room %} -
    • Детская комната
    • +
    • {% trans 'Детская комната' %}
    • {% endif %} {% if place.disabled_service %} -
    • Сервис для инвалидов
    • +
    • {% trans 'Сервис для инвалидов' %}
    • {% endif %}
      {% if place.conference_centre %} -
    • Конгресс-центр
    • +
    • {% trans 'Конгресс-центр' %}
    • {% endif %} {% if place.business_centre %} -
    • Бизнес центр
    • +
    • {% trans 'Бизнес центр' %}
    • {% endif %} {% if place.online_registration %} -
    • Онлайн-регистрация
    • +
    • {% trans 'Онлайн-регистрация' %}
    • {% endif %} {% if place.cafe %} -
    • Кафе и рестораны
    • +
    • {% trans 'Кафе и рестораны' %}
    • {% endif %}
      {% if place.terminals %} -
    • Информационные терминалы
    • +
    • {% trans 'Информационные терминалы' %}
    • {% endif %} {% if place.parking %} -
    • Парковка
    • +
    • {% trans 'Парковка' %}
    • {% endif %} {% if place.press_centre %} -
    • Пресс-центр
    • +
    • {% trans 'Пресс-центр' %}
    • {% endif %} {% if place.mobile_application %} -
    • Мобильное приложение
    • +
    • {% trans 'Мобильное приложение' %}
    • {% endif %}
    @@ -87,7 +87,7 @@
    {% if place.get_photos %}
    -
    Фотогалерея
    +
    {% trans 'Фотогалерея' %}
    @@ -53,22 +53,22 @@ diff --git a/templates/registration/activation_email.txt b/templates/registration/activation_email.txt index 4a523809..9c2b349a 100644 --- a/templates/registration/activation_email.txt +++ b/templates/registration/activation_email.txt @@ -1,6 +1,6 @@ -Someone, hopefully you, signed up for a new account at djangoproject.com using this email address. If it was you, and you'd like to activate and use your account, click the link below or copy and paste it into your web browser's address bar: +Someone, hopefully you, signed up for a new account at {{ site }} using this email address. If it was you, and you'd like to activate and use your account, click the link below or copy and paste it into your web browser's address bar: -http://127.0.0.1:8000/accounts/activate/{{ activation_key }}/ +http://{{ site }}/accounts/activate/{{ activation_key }}/ If you didn't request this, you don't need to do anything; you won't receive any more email from us, and the account will expire automatically in {{ expiration_days }} days. diff --git a/templates/registration/activation_email_subject.txt b/templates/registration/activation_email_subject.txt index 8ec5ec44..2d146b83 100644 --- a/templates/registration/activation_email_subject.txt +++ b/templates/registration/activation_email_subject.txt @@ -1 +1 @@ -Activate your djangoproject.com account - you have {{ expiration_days }} days! +Activate your {{ site }} account - you have {{ expiration_days }} days!