remotes/origin/stage6
Alexander Burdeiny 9 years ago
parent 42865ee7aa
commit d1a474c338
  1. 1
      .gitignore
  2. 39
      city/admin.py
  3. 4
      city/admin_urls.py
  4. 26
      conference/views.py
  5. 32
      country/admin.py
  6. 4
      country/admin_urls.py
  7. 15
      emencia/django/newsletter/forms.py
  8. 14
      exposition/views.py
  9. 20
      functions/forms.py
  10. 29
      functions/views_help.py
  11. 5
      proj/config.ini
  12. 31
      settings/admin.py
  13. 3
      settings/admin_urls.py
  14. 90
      settings/forms.py
  15. 484
      static/js/select2-4.0.3/css/select2.css
  16. 1
      static/js/select2-4.0.3/css/select2.min.css
  17. 3
      static/js/select2-4.0.3/js/i18n/ar.js
  18. 3
      static/js/select2-4.0.3/js/i18n/az.js
  19. 3
      static/js/select2-4.0.3/js/i18n/bg.js
  20. 3
      static/js/select2-4.0.3/js/i18n/ca.js
  21. 3
      static/js/select2-4.0.3/js/i18n/cs.js
  22. 3
      static/js/select2-4.0.3/js/i18n/da.js
  23. 3
      static/js/select2-4.0.3/js/i18n/de.js
  24. 3
      static/js/select2-4.0.3/js/i18n/el.js
  25. 3
      static/js/select2-4.0.3/js/i18n/en.js
  26. 3
      static/js/select2-4.0.3/js/i18n/es.js
  27. 3
      static/js/select2-4.0.3/js/i18n/et.js
  28. 3
      static/js/select2-4.0.3/js/i18n/eu.js
  29. 3
      static/js/select2-4.0.3/js/i18n/fa.js
  30. 3
      static/js/select2-4.0.3/js/i18n/fi.js
  31. 3
      static/js/select2-4.0.3/js/i18n/fr.js
  32. 3
      static/js/select2-4.0.3/js/i18n/gl.js
  33. 3
      static/js/select2-4.0.3/js/i18n/he.js
  34. 3
      static/js/select2-4.0.3/js/i18n/hi.js
  35. 3
      static/js/select2-4.0.3/js/i18n/hr.js
  36. 3
      static/js/select2-4.0.3/js/i18n/hu.js
  37. 3
      static/js/select2-4.0.3/js/i18n/id.js
  38. 3
      static/js/select2-4.0.3/js/i18n/is.js
  39. 3
      static/js/select2-4.0.3/js/i18n/it.js
  40. 3
      static/js/select2-4.0.3/js/i18n/ja.js
  41. 3
      static/js/select2-4.0.3/js/i18n/km.js
  42. 3
      static/js/select2-4.0.3/js/i18n/ko.js
  43. 3
      static/js/select2-4.0.3/js/i18n/lt.js
  44. 3
      static/js/select2-4.0.3/js/i18n/lv.js
  45. 3
      static/js/select2-4.0.3/js/i18n/mk.js
  46. 3
      static/js/select2-4.0.3/js/i18n/ms.js
  47. 3
      static/js/select2-4.0.3/js/i18n/nb.js
  48. 3
      static/js/select2-4.0.3/js/i18n/nl.js
  49. 3
      static/js/select2-4.0.3/js/i18n/pl.js
  50. 3
      static/js/select2-4.0.3/js/i18n/pt-BR.js
  51. 3
      static/js/select2-4.0.3/js/i18n/pt.js
  52. 3
      static/js/select2-4.0.3/js/i18n/ro.js
  53. 3
      static/js/select2-4.0.3/js/i18n/ru.js
  54. 3
      static/js/select2-4.0.3/js/i18n/sk.js
  55. 3
      static/js/select2-4.0.3/js/i18n/sr-Cyrl.js
  56. 3
      static/js/select2-4.0.3/js/i18n/sr.js
  57. 3
      static/js/select2-4.0.3/js/i18n/sv.js
  58. 3
      static/js/select2-4.0.3/js/i18n/th.js
  59. 3
      static/js/select2-4.0.3/js/i18n/tr.js
  60. 3
      static/js/select2-4.0.3/js/i18n/uk.js
  61. 3
      static/js/select2-4.0.3/js/i18n/vi.js
  62. 3
      static/js/select2-4.0.3/js/i18n/zh-CN.js
  63. 3
      static/js/select2-4.0.3/js/i18n/zh-TW.js
  64. 6436
      static/js/select2-4.0.3/js/select2.full.js
  65. 3
      static/js/select2-4.0.3/js/select2.full.min.js
  66. 5725
      static/js/select2-4.0.3/js/select2.js
  67. 3
      static/js/select2-4.0.3/js/select2.min.js
  68. 8
      templates/c_admin/base.html
  69. 177
      templates/c_admin/includes/admin_nav.html
  70. 175
      templates/c_admin/settings/sections.html
  71. 2
      templates/client/base_catalog.html
  72. 14
      templates/client/includes/side_popular.html

1
.gitignore vendored

@ -14,6 +14,7 @@ Thumbs.db
.DS_Store
locale
proj/settings.py
collected_static
# gulp
node_modules

@ -1,19 +1,24 @@
# -*- coding: utf-8 -*-
import json
from django.shortcuts import render_to_response, get_object_or_404
from django.http import HttpResponseRedirect
from django.http import HttpResponseRedirect, HttpResponse
from django.core.context_processors import csrf
from django.conf import settings
from django.contrib.auth.decorators import login_required
from django.contrib.contenttypes.models import ContentType
#models and forms
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import get_language
from exposition.admin import get_by_lang
from forms import CityForm, CityDeleteForm, CityFilterForm
from models import City
from file.models import FileModel
from file.forms import FileModelForm
#custom views
from haystack.query import SearchQuerySet
from functions.custom_views import objects_list, add_object_with_file, delete_object
from functions.admin_views import AdminListView
from django.utils.translation import ugettext_lazy as _
from functions.http import JsonResponse
def city_all(request):
@ -94,19 +99,27 @@ def city_change(request, url):
return render_to_response('city_add.html', args)
from django.http import HttpResponse
import json
def search_city(request):
country = request.GET['country']
term = request.GET['term'].capitalize()
# country = request.GET.get('country')
term = request.GET.get('term')
# if not term:
# qs = City.objects.language().filter(country=country)[:200]
# else:
# qs = City.objects.language().filter(country=country, translations__name__contains=term)
# result = [{'id': city.id, 'label': city.name} for city in qs]
lang = get_language()
if not term:
qs = City.objects.language().filter(country=country)[:200]
qs = SearchQuerySet().models(City).order_by('text')[:30]
else:
qs = City.objects.language().filter(country=country, translations__name__contains=term)
result = [{'id': city.id, 'label': city.name} for city in qs]
qs = SearchQuerySet().models(City).autocomplete(content_auto=term.capitalize()).order_by('text')[:30]
result = []
for item in qs:
label = get_by_lang(item, 'name', lang)
if label:
result.append({'id': item.pk, 'label': label})
return JsonResponse(json.dumps(result), content_type='application/json', safe=False)
return HttpResponse(json.dumps(result), content_type='application/json')
class CityListView(AdminListView):
template_name = 'c_admin/city/city_list.html'

@ -7,6 +7,6 @@ urlpatterns = patterns('city.admin',
url(r'^delete/(?P<url>.*)/$', 'city_delete'),
url(r'^change/(.*)/$', 'city_change'),
url(r'^all/$', CityListView.as_view()),
url(r'^search/$', 'search_city'),
url(r'^search/$', 'search_city', name='admin_city_search'),
)
)

@ -2,10 +2,6 @@
import datetime
import json
from accounts.models import User
from article.models import Article
from city.models import City
from country.models import Country
from django.conf import settings
from django.contrib import messages
from django.contrib.contenttypes.models import ContentType
@ -21,8 +17,16 @@ from django.utils import translation
from django.utils.translation import ugettext as _
from django.views.generic import DetailView
from django.views.generic.edit import FormMixin
from functions.cache_mixin import CacheMixin, JitterCacheMixin
from functions.custom_views import ListView
from functions.views_help import get_side_items
from accounts.models import User
from article.models import Article
from city.models import City
from country.models import Country
from meta.views import MetadataMixin
from models import Conference
from note.models import Note
@ -62,6 +66,12 @@ class ConferenceByCountry(ConferenceBy):
catalog = 'country/'
stat_kind = 'country'
def get_context_data(self, **kwargs):
context = super(ConferenceByCountry, self).get_context_data(**kwargs)
context['can_filter'] = False
context['side_popular'] = get_side_items('conf', Country)
return context
def get_queryset(self):
return self.model.objects.conference_countries_with_count()
#lang = translation.get_language()
@ -69,6 +79,7 @@ class ConferenceByCountry(ConferenceBy):
# .filter(conference_country__country__isnull=False, translations__language_code=lang)\
# .order_by('translations__name').distinct()
class ConferenceByTag(ConferenceBy):
model = Tag
title1 = _(u'По тегам')
@ -80,7 +91,6 @@ class ConferenceByTag(ConferenceBy):
return self.model.active.conference_themes_with_count()
class ConferenceByTheme(ConferenceBy):
model = Theme
title1 = _(u'По тематикам')
@ -103,6 +113,12 @@ class ConferenceByCity(ConferenceBy):
catalog = 'city/'
stat_kind = 'city'
def get_context_data(self, **kwargs):
context = super(ConferenceByCity, self).get_context_data(**kwargs)
context['can_filter'] = False
context['side_popular'] = get_side_items('conf', City)
return context
def get_queryset(self):
return self.model.used.conference_cities_with_count()
#lang = translation.get_language()

@ -1,21 +1,26 @@
# -*- coding: utf-8 -*-
import json
from django.shortcuts import render_to_response
from django.http import HttpResponseRedirect, HttpResponse
from django.core.context_processors import csrf
from django.conf import settings
from django.contrib.contenttypes.models import ContentType
#models and forms
from models import Country
from forms import CountryForm, CountryDeleteForm, CountryFilterForm
from django.utils.translation import get_language
from haystack.query import SearchQuerySet
from hvad.utils import get_translation_aware_manager
from exposition.admin import get_by_lang
from file.models import FileModel
from file.forms import FileModelForm
#custom views
from functions.http import JsonResponse
from functions.custom_views import objects_list, add_object_with_file, delete_object, filtered_list
from functions.admin_views import paginate_results
from functions.forms import AdminSearchForm
from functions.admin_views import AdminListView
from hvad.utils import get_translation_aware_manager
from models import Country
from forms import CountryForm, CountryDeleteForm, CountryFilterForm
def country_all(request):
"""
@ -125,3 +130,18 @@ class CountryListView(AdminListView):
result = paginate_results(qs, page=self.request.GET.get('page'))
context['object_list'] = result
return context
def search_country(request):
term = request.GET.get('term')
lang = get_language()
if not term:
qs = SearchQuerySet().models(Country).order_by('text')[:30]
else:
qs = SearchQuerySet().models(Country).autocomplete(content_auto=term.capitalize()).order_by('text')[:30]
result = []
for item in qs:
label = get_by_lang(item, 'name', lang)
if label:
result.append({'id': item.pk, 'label': label})
return JsonResponse(json.dumps(result), content_type='application/json', safe=False)

@ -8,4 +8,6 @@ urlpatterns = patterns('country.admin',
url(r'^change/(?P<url>.*)/$', 'country_change'),
#url(r'^all/$', 'country_all'),
url(r'^all/$', CountryListView.as_view()),
)
url(r'^search/$', 'search_country', name='admin_country_search'),
)

@ -7,12 +7,12 @@ import xlrd
from django import forms
from django.core.exceptions import ValidationError
from django.db.models import Sum
from django.forms.models import ModelChoiceIterator
from django.http import Http404
from django.utils import translation
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import get_language
from django.utils.encoding import smart_text, force_text
from functions.forms import ML_ModelMultipleChoiceField
from haystack.query import SearchQuerySet
@ -70,19 +70,6 @@ class MailingListSubscriptionForm(forms.ModelForm):
exclude = ('email',)
class CustomModelChoiceIterator(ModelChoiceIterator):
def __init__(self, field):
self.field = field
self.queryset = getattr(field, 'c_queryset', field.queryset.none())
class ML_ModelMultipleChoiceField(forms.ModelMultipleChoiceField):
def _get_choices(self):
if hasattr(self, '_choices'):
return self._choices
return CustomModelChoiceIterator(self)
choices = property(_get_choices, forms.ChoiceField._set_choices)
class MailingSettingsForm(forms.ModelForm):
r_cities = ML_ModelMultipleChoiceField(
label=_(u'Города России'), required=False,

@ -23,6 +23,8 @@ from django.views.generic.edit import FormMixin
from functions.cache_mixin import JitterCacheMixin
from functions.custom_views import ExpoSearchView, ListView
from functions.search_forms import ExpositionSearchForm
from functions.views_help import get_side_items
from meta.views import MetadataMixin
from models import Exposition
from note.models import Note
@ -61,6 +63,12 @@ class ExpositionByCountry(ExpositionBy):
catalog = 'country/'
stat_kind = 'country'
def get_context_data(self, **kwargs):
context = super(ExpositionByCountry, self).get_context_data(**kwargs)
context['can_filter'] = False
context['side_popular'] = get_side_items('expo', Country)
return context
def get_queryset(self):
return self.model.objects.expo_countries_with_count()
#lang = translation.get_language()
@ -105,6 +113,12 @@ class ExpositionByCity(ExpositionBy):
catalog = 'city/'
stat_kind = 'city'
def get_context_data(self, **kwargs):
context = super(ExpositionByCity, self).get_context_data(**kwargs)
context['can_filter'] = False
context['side_popular'] = get_side_items('expo', City)
return context
def get_queryset(self):
return self.model.used.expo_cities_with_count()
#return self.model.used.expo_cities()

@ -1,9 +1,11 @@
# -*- coding: utf-8 -*-
from django import forms
from django.utils.translation import ugettext_lazy as _
from django.db.models import ObjectDoesNotExist
from django.forms.models import ModelChoiceIterator
from theme.models import Theme
from haystack.query import SearchQuerySet
from django.db.models import ObjectDoesNotExist
class AdminSearchForm(forms.Form):
search_name = forms.CharField(required=False, max_length=50)
@ -182,3 +184,19 @@ class FieldsetMixin(object):
'fields': (self[field] for field in fs.get('fields')) if fs.get('fields') else None,
'fieldsets': (fieldset for fieldset in self.fieldsets(fieldsets=fs.get('fieldsets'))) if fs.get('fieldsets') else None,
}
class CustomModelChoiceIterator(ModelChoiceIterator):
def __init__(self, field):
self.field = field
self.queryset = getattr(field, 'c_queryset', field.queryset.none())
class ML_ModelMultipleChoiceField(forms.ModelMultipleChoiceField):
def _get_choices(self):
if hasattr(self, '_choices'):
return self._choices
return CustomModelChoiceIterator(self)
choices = property(_get_choices, forms.ChoiceField._set_choices)

@ -1,9 +1,13 @@
# -*- coding: utf-8 -*-
import re
import datetime
import json
from django.shortcuts import get_object_or_404
from django.core.cache import cache
from django.conf import settings
from django.utils.translation import get_language, activate
from django.core.urlresolvers import reverse, reverse_lazy
from accounts.models import User
from emencia.django.newsletter.models import Contact
@ -52,3 +56,28 @@ def get_subscribers_count():
count = Contact.objects.valid_subscribers().filter(from_users=False).count()
cache.set(key, count, datetime.timedelta(days=1).total_seconds())
return count
# def test_get_side_items():
# from city.models import City
# activate('ru')
# get_side_items('conf', City)
def get_side_items(event_type, model):
cache_timeout = datetime.timedelta(days=1)
lang = get_language()
option = '{type}_{model}'.format(type=event_type, model=model.__name__.lower())
key = '{option}_catalog_{lang}'.format(option=option, lang=lang)
data = cache.get(key)
if data is None:
data = []
config = settings.INI_CONFIG
pks = json.loads(config.get('sections', option, '[]'))
if pks:
qs = model.objects.language().filter(pk__in=pks).values_list('pk', 'name', 'url')
raw_data = dict(map(lambda item: (item[0], {'name': item[1], 'url': reverse(option, args=[item[2]])}), qs))
for pk in pks:
item = raw_data.get(pk)
if item:
data.append(item)
cache.set(key, data, cache_timeout.total_seconds())
return data

@ -0,0 +1,5 @@
[sections]
expo_city = [-2960561, -2996338, -1044367, -1762397, -1746443, -1771148, -1924465, -1907161, -1456928, -121726, -2140479, 20088325, 20079110]
conf_city = [-2960561, -2996338, -1044367]
expo_country = [159, 47, 40, 186, 31, 99, 87, 60]
conf_country = [159, 47, 187]

@ -1,10 +1,15 @@
# -*- coding: utf-8 -*-
import json
from django.shortcuts import render_to_response
from django.views.generic import FormView
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
from django.core.urlresolvers import reverse, reverse_lazy
from django.core.context_processors import csrf
from forms import MainPageArticle, MainPageNews, MainPageThemes
from django.conf import settings
from functions.custom_views import ContextMixin
from forms import MainPageArticle, MainPageNews, MainPageThemes, EventSectionSettingsForm
def handle_form(request, form):
@ -54,3 +59,25 @@ def main_page(request):
}
args.update(csrf(request))
return render_to_response('c_admin/settings/main_page.html', args)
class EventSectionSettings(ContextMixin, FormView):
form_class = EventSectionSettingsForm
template_name = 'c_admin/settings/sections.html'
success_url = reverse_lazy('settings_sections')
def get_initial(self):
INI_CONFIG = settings.INI_CONFIG
if not INI_CONFIG.has_section('sections'):
return {}
initial = {}
for option, value in INI_CONFIG.items('sections'):
try:
initial[option] = json.loads(value)
except:
pass
return initial
def form_valid(self, form):
form.save()
return super(EventSectionSettings, self).form_valid(form)

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
from django.conf.urls import patterns, include, url
from .admin import handle_themes, handle_news, handle_articles, main_page
from .admin import handle_themes, handle_news, handle_articles, main_page, EventSectionSettings
urlpatterns = patterns('',
url(r'^main-page/themes/', handle_themes, name='settings_main_page_themes'),
@ -8,5 +8,6 @@ urlpatterns = patterns('',
url(r'^main-page/blogs/$', handle_articles, name='settings_main_page_articles'),
url(r'^main-page/$', main_page, name='settings_main_page'),
url(r'^sections/$', EventSectionSettings.as_view(), name='settings_sections'),
)

@ -1,6 +1,7 @@
# -*- coding: utf-8 -*-
from article.models import Article
from ckeditor.widgets import CKEditorWidget
import json
from itertools import chain
from django import forms
from django.core.exceptions import (
MultipleObjectsReturned,
@ -9,12 +10,23 @@ from django.core.exceptions import (
)
from django.db.models import Q
from django.utils.encoding import force_text
from django.utils.html import format_html
from django.utils.translation import ugettext as _
from django.conf import settings
from django.core.urlresolvers import reverse, reverse_lazy
from django.core.cache import cache
from functions.forms import (
ExpoTranslatableModelForm,
ExpoTranslatableModelForm_
ExpoTranslatableModelForm_,
ML_ModelMultipleChoiceField
)
from theme.models import Theme
from article.models import Article
from ckeditor.widgets import CKEditorWidget
from city.models import City
from country.models import Country
from .models import Html, LandingComment, ParticipationComment
@ -41,9 +53,29 @@ class ParticipationCommentForm(CommentForm):
model = ParticipationComment
class OrderedModelMultipleChoiceField(forms.ModelMultipleChoiceField):
"""A Ordered MultipleChoiceField whose choices are a model QuerySet."""
class OrderedSelectMultiple(forms.SelectMultiple):
def render_options(self, choices, selected_choices):
choices = dict(self.choices)
selected_choices_str = set(force_text(v) for v in selected_choices)
output = []
for choice in selected_choices:
label = choices.get(choice)
if label:
output.append(self.render_option(selected_choices_str, choice, label))
# unselected_choices = set(choices.iterkeys()).difference(selected_choices)
# if unselected_choices:
# for option_value, option_label in filter(lambda x: x[0] in unselected_choices, choices.iteritems()):
# if isinstance(option_label, (list, tuple)):
# output.append(format_html('<optgroup label="{0}">', force_text(option_value)))
# for option in option_label:
# output.append(self.render_option(selected_choices_str, *option))
# output.append('</optgroup>')
# else:
# output.append(self.render_option(selected_choices_str, option_value, option_label))
return '\n'.join(output)
class OredredMixin(object):
def clean(self, value):
if self.required and not value:
raise ValidationError(self.error_messages['required'])
@ -69,6 +101,15 @@ class OrderedModelMultipleChoiceField(forms.ModelMultipleChoiceField):
return values
class OrderedModelMultipleChoiceField(OredredMixin, forms.ModelMultipleChoiceField):
"""A Ordered MultipleChoiceField whose choices are a model QuerySet."""
pass
class OML_MMChoiceField(OredredMixin, ML_ModelMultipleChoiceField):
widget = OrderedSelectMultiple
class MainPageThemes(forms.Form):
exposition_themes = OrderedModelMultipleChoiceField(queryset=Theme.objects.filter(types=Theme.types.exposition),
required=False)
@ -105,8 +146,6 @@ class MainPageNews(forms.Form):
return qs
class MainPageArticle(forms.Form):
article = forms.ModelMultipleChoiceField(queryset=Article.objects.blogs(), required=False,
widget=forms.SelectMultiple(attrs={'style': 'width: 100%;'}))
@ -117,3 +156,38 @@ class MainPageArticle(forms.Form):
Article.objects.blogs().exclude(id__in=[item.id for item in articles]).update(main_page=0)
articles.update(main_page=1)
class EventSectionSettingsForm(forms.Form):
expo_city = OML_MMChoiceField(label=_(u'Каталог городов (выставки)'),
queryset=City.objects.all(), required=False)
conf_city = OML_MMChoiceField(label=_(u'Каталог городов (конференции)'),
queryset=City.objects.all(), required=False)
expo_country = OML_MMChoiceField(label=_(u'Каталог стран (выставки)'),
queryset=Country.objects.all(), required=False)
conf_country = OML_MMChoiceField(label=_(u'Каталог стран (конференции)'),
queryset=Country.objects.all(), required=False)
def __init__(self, *args, **kwargs):
super(EventSectionSettingsForm, self).__init__(*args, **kwargs)
for name, field in self.fields.iteritems():
model = field.queryset.model.__name__.lower()
field.widget.attrs.update({
'data-ajax-url': reverse('admin_{model}_search'.format(model=model)),
'select2': 'true',
})
if self.initial[name]:
field.c_queryset = field.queryset.filter(pk__in=self.initial[name])
field.widget.choices = field.choices
def save(self):
INI_CONFIG = settings.INI_CONFIG
if not INI_CONFIG.has_section('sections'):
INI_CONFIG.add_section('sections')
for option in ['expo_city', 'conf_city', 'expo_country', 'conf_country']:
INI_CONFIG.set('sections', option, json.dumps(map(lambda x: x.pk, self.cleaned_data.get(option))))
with open(settings.INI_CONFIG_PATH, 'wb') as configfile:
INI_CONFIG.write(configfile)
for lang_code, name in settings.LANGUAGES:
for key_attr in ['C_CITY_CATALOG_KEY', 'C_COUNTRY_CATALOG_KEY', 'E_CITY_CATALOG_KEY', 'E_COUNTRY_CATALOG_KEY']:
cache.delete(getattr(settings, key_attr) + '_' + lang_code)

@ -0,0 +1,484 @@
.select2-container {
box-sizing: border-box;
display: inline-block;
margin: 0;
position: relative;
vertical-align: middle; }
.select2-container .select2-selection--single {
box-sizing: border-box;
cursor: pointer;
display: block;
height: 28px;
user-select: none;
-webkit-user-select: none; }
.select2-container .select2-selection--single .select2-selection__rendered {
display: block;
padding-left: 8px;
padding-right: 20px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap; }
.select2-container .select2-selection--single .select2-selection__clear {
position: relative; }
.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered {
padding-right: 8px;
padding-left: 20px; }
.select2-container .select2-selection--multiple {
box-sizing: border-box;
cursor: pointer;
display: block;
min-height: 32px;
user-select: none;
-webkit-user-select: none; }
.select2-container .select2-selection--multiple .select2-selection__rendered {
display: inline-block;
overflow: hidden;
padding-left: 8px;
text-overflow: ellipsis;
white-space: nowrap; }
.select2-container .select2-search--inline {
float: left; }
.select2-container .select2-search--inline .select2-search__field {
box-sizing: border-box;
border: none;
font-size: 100%;
margin-top: 5px;
padding: 0; }
.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {
-webkit-appearance: none; }
.select2-dropdown {
background-color: white;
border: 1px solid #aaa;
border-radius: 4px;
box-sizing: border-box;
display: block;
position: absolute;
left: -100000px;
width: 100%;
z-index: 1051; }
.select2-results {
display: block; }
.select2-results__options {
list-style: none;
margin: 0;
padding: 0; }
.select2-results__option {
padding: 6px;
user-select: none;
-webkit-user-select: none; }
.select2-results__option[aria-selected] {
cursor: pointer; }
.select2-container--open .select2-dropdown {
left: 0; }
.select2-container--open .select2-dropdown--above {
border-bottom: none;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0; }
.select2-container--open .select2-dropdown--below {
border-top: none;
border-top-left-radius: 0;
border-top-right-radius: 0; }
.select2-search--dropdown {
display: block;
padding: 4px; }
.select2-search--dropdown .select2-search__field {
padding: 4px;
width: 100%;
box-sizing: border-box; }
.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {
-webkit-appearance: none; }
.select2-search--dropdown.select2-search--hide {
display: none; }
.select2-close-mask {
border: 0;
margin: 0;
padding: 0;
display: block;
position: fixed;
left: 0;
top: 0;
min-height: 100%;
min-width: 100%;
height: auto;
width: auto;
opacity: 0;
z-index: 99;
background-color: #fff;
filter: alpha(opacity=0); }
.select2-hidden-accessible {
border: 0 !important;
clip: rect(0 0 0 0) !important;
height: 1px !important;
margin: -1px !important;
overflow: hidden !important;
padding: 0 !important;
position: absolute !important;
width: 1px !important; }
.select2-container--default .select2-selection--single {
background-color: #fff;
border: 1px solid #aaa;
border-radius: 4px; }
.select2-container--default .select2-selection--single .select2-selection__rendered {
color: #444;
line-height: 28px; }
.select2-container--default .select2-selection--single .select2-selection__clear {
cursor: pointer;
float: right;
font-weight: bold; }
.select2-container--default .select2-selection--single .select2-selection__placeholder {
color: #999; }
.select2-container--default .select2-selection--single .select2-selection__arrow {
height: 26px;
position: absolute;
top: 1px;
right: 1px;
width: 20px; }
.select2-container--default .select2-selection--single .select2-selection__arrow b {
border-color: #888 transparent transparent transparent;
border-style: solid;
border-width: 5px 4px 0 4px;
height: 0;
left: 50%;
margin-left: -4px;
margin-top: -2px;
position: absolute;
top: 50%;
width: 0; }
.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear {
float: left; }
.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow {
left: 1px;
right: auto; }
.select2-container--default.select2-container--disabled .select2-selection--single {
background-color: #eee;
cursor: default; }
.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {
display: none; }
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
border-color: transparent transparent #888 transparent;
border-width: 0 4px 5px 4px; }
.select2-container--default .select2-selection--multiple {
background-color: white;
border: 1px solid #aaa;
border-radius: 4px;
cursor: text; }
.select2-container--default .select2-selection--multiple .select2-selection__rendered {
box-sizing: border-box;
list-style: none;
margin: 0;
padding: 0 5px;
width: 100%; }
.select2-container--default .select2-selection--multiple .select2-selection__rendered li {
list-style: none; }
.select2-container--default .select2-selection--multiple .select2-selection__placeholder {
color: #999;
margin-top: 5px;
float: left; }
.select2-container--default .select2-selection--multiple .select2-selection__clear {
cursor: pointer;
float: right;
font-weight: bold;
margin-top: 5px;
margin-right: 10px; }
.select2-container--default .select2-selection--multiple .select2-selection__choice {
background-color: #e4e4e4;
border: 1px solid #aaa;
border-radius: 4px;
cursor: default;
float: left;
margin-right: 5px;
margin-top: 5px;
padding: 0 5px; }
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
color: #999;
cursor: pointer;
display: inline-block;
font-weight: bold;
margin-right: 2px; }
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
color: #333; }
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline {
float: right; }
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
margin-left: 5px;
margin-right: auto; }
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
margin-left: 2px;
margin-right: auto; }
.select2-container--default.select2-container--focus .select2-selection--multiple {
border: solid black 1px;
outline: 0; }
.select2-container--default.select2-container--disabled .select2-selection--multiple {
background-color: #eee;
cursor: default; }
.select2-container--default.select2-container--disabled .select2-selection__choice__remove {
display: none; }
.select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple {
border-top-left-radius: 0;
border-top-right-radius: 0; }
.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {
border-bottom-left-radius: 0;
border-bottom-right-radius: 0; }
.select2-container--default .select2-search--dropdown .select2-search__field {
border: 1px solid #aaa; }
.select2-container--default .select2-search--inline .select2-search__field {
background: transparent;
border: none;
outline: 0;
box-shadow: none;
-webkit-appearance: textfield; }
.select2-container--default .select2-results > .select2-results__options {
max-height: 200px;
overflow-y: auto; }
.select2-container--default .select2-results__option[role=group] {
padding: 0; }
.select2-container--default .select2-results__option[aria-disabled=true] {
color: #999; }
.select2-container--default .select2-results__option[aria-selected=true] {
background-color: #ddd; }
.select2-container--default .select2-results__option .select2-results__option {
padding-left: 1em; }
.select2-container--default .select2-results__option .select2-results__option .select2-results__group {
padding-left: 0; }
.select2-container--default .select2-results__option .select2-results__option .select2-results__option {
margin-left: -1em;
padding-left: 2em; }
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
margin-left: -2em;
padding-left: 3em; }
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
margin-left: -3em;
padding-left: 4em; }
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
margin-left: -4em;
padding-left: 5em; }
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
margin-left: -5em;
padding-left: 6em; }
.select2-container--default .select2-results__option--highlighted[aria-selected] {
background-color: #5897fb;
color: white; }
.select2-container--default .select2-results__group {
cursor: default;
display: block;
padding: 6px; }
.select2-container--classic .select2-selection--single {
background-color: #f7f7f7;
border: 1px solid #aaa;
border-radius: 4px;
outline: 0;
background-image: -webkit-linear-gradient(top, white 50%, #eeeeee 100%);
background-image: -o-linear-gradient(top, white 50%, #eeeeee 100%);
background-image: linear-gradient(to bottom, white 50%, #eeeeee 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }
.select2-container--classic .select2-selection--single:focus {
border: 1px solid #5897fb; }
.select2-container--classic .select2-selection--single .select2-selection__rendered {
color: #444;
line-height: 28px; }
.select2-container--classic .select2-selection--single .select2-selection__clear {
cursor: pointer;
float: right;
font-weight: bold;
margin-right: 10px; }
.select2-container--classic .select2-selection--single .select2-selection__placeholder {
color: #999; }
.select2-container--classic .select2-selection--single .select2-selection__arrow {
background-color: #ddd;
border: none;
border-left: 1px solid #aaa;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
height: 26px;
position: absolute;
top: 1px;
right: 1px;
width: 20px;
background-image: -webkit-linear-gradient(top, #eeeeee 50%, #cccccc 100%);
background-image: -o-linear-gradient(top, #eeeeee 50%, #cccccc 100%);
background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0); }
.select2-container--classic .select2-selection--single .select2-selection__arrow b {
border-color: #888 transparent transparent transparent;
border-style: solid;
border-width: 5px 4px 0 4px;
height: 0;
left: 50%;
margin-left: -4px;
margin-top: -2px;
position: absolute;
top: 50%;
width: 0; }
.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear {
float: left; }
.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow {
border: none;
border-right: 1px solid #aaa;
border-radius: 0;
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
left: 1px;
right: auto; }
.select2-container--classic.select2-container--open .select2-selection--single {
border: 1px solid #5897fb; }
.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow {
background: transparent;
border: none; }
.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b {
border-color: transparent transparent #888 transparent;
border-width: 0 4px 5px 4px; }
.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single {
border-top: none;
border-top-left-radius: 0;
border-top-right-radius: 0;
background-image: -webkit-linear-gradient(top, white 0%, #eeeeee 50%);
background-image: -o-linear-gradient(top, white 0%, #eeeeee 50%);
background-image: linear-gradient(to bottom, white 0%, #eeeeee 50%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }
.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single {
border-bottom: none;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
background-image: -webkit-linear-gradient(top, #eeeeee 50%, white 100%);
background-image: -o-linear-gradient(top, #eeeeee 50%, white 100%);
background-image: linear-gradient(to bottom, #eeeeee 50%, white 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0); }
.select2-container--classic .select2-selection--multiple {
background-color: white;
border: 1px solid #aaa;
border-radius: 4px;
cursor: text;
outline: 0; }
.select2-container--classic .select2-selection--multiple:focus {
border: 1px solid #5897fb; }
.select2-container--classic .select2-selection--multiple .select2-selection__rendered {
list-style: none;
margin: 0;
padding: 0 5px; }
.select2-container--classic .select2-selection--multiple .select2-selection__clear {
display: none; }
.select2-container--classic .select2-selection--multiple .select2-selection__choice {
background-color: #e4e4e4;
border: 1px solid #aaa;
border-radius: 4px;
cursor: default;
float: left;
margin-right: 5px;
margin-top: 5px;
padding: 0 5px; }
.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove {
color: #888;
cursor: pointer;
display: inline-block;
font-weight: bold;
margin-right: 2px; }
.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover {
color: #555; }
.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
float: right; }
.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
margin-left: 5px;
margin-right: auto; }
.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
margin-left: 2px;
margin-right: auto; }
.select2-container--classic.select2-container--open .select2-selection--multiple {
border: 1px solid #5897fb; }
.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple {
border-top: none;
border-top-left-radius: 0;
border-top-right-radius: 0; }
.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple {
border-bottom: none;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0; }
.select2-container--classic .select2-search--dropdown .select2-search__field {
border: 1px solid #aaa;
outline: 0; }
.select2-container--classic .select2-search--inline .select2-search__field {
outline: 0;
box-shadow: none; }
.select2-container--classic .select2-dropdown {
background-color: white;
border: 1px solid transparent; }
.select2-container--classic .select2-dropdown--above {
border-bottom: none; }
.select2-container--classic .select2-dropdown--below {
border-top: none; }
.select2-container--classic .select2-results > .select2-results__options {
max-height: 200px;
overflow-y: auto; }
.select2-container--classic .select2-results__option[role=group] {
padding: 0; }
.select2-container--classic .select2-results__option[aria-disabled=true] {
color: grey; }
.select2-container--classic .select2-results__option--highlighted[aria-selected] {
background-color: #3875d7;
color: white; }
.select2-container--classic .select2-results__group {
cursor: default;
display: block;
padding: 6px; }
.select2-container--classic.select2-container--open .select2-dropdown {
border-color: #5897fb; }

File diff suppressed because one or more lines are too long

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ar",[],function(){return{errorLoading:function(){return"لا يمكن تحميل النتائج"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="الرجاء حذف "+t+" عناصر";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="الرجاء إضافة "+t+" عناصر";return n},loadingMore:function(){return"جاري تحميل نتائج إضافية..."},maximumSelected:function(e){var t="تستطيع إختيار "+e.maximum+" بنود فقط";return t},noResults:function(){return"لم يتم العثور على أي نتائج"},searching:function(){return"جاري البحث…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/az",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return t+" simvol silin"},inputTooShort:function(e){var t=e.minimum-e.input.length;return t+" simvol daxil edin"},loadingMore:function(){return"Daha çox nəticə yüklənir…"},maximumSelected:function(e){return"Sadəcə "+e.maximum+" element seçə bilərsiniz"},noResults:function(){return"Nəticə tapılmadı"},searching:function(){return"Axtarılır…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/bg",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Моля въведете с "+t+" по-малко символ";return t>1&&(n+="a"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Моля въведете още "+t+" символ";return t>1&&(n+="a"),n},loadingMore:function(){return"Зареждат се още…"},maximumSelected:function(e){var t="Можете да направите до "+e.maximum+" ";return e.maximum>1?t+="избора":t+="избор",t},noResults:function(){return"Няма намерени съвпадения"},searching:function(){return"Търсене…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ca",[],function(){return{errorLoading:function(){return"La càrrega ha fallat"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Si us plau, elimina "+t+" car";return t==1?n+="àcter":n+="àcters",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Si us plau, introdueix "+t+" car";return t==1?n+="àcter":n+="àcters",n},loadingMore:function(){return"Carregant més resultats…"},maximumSelected:function(e){var t="Només es pot seleccionar "+e.maximum+" element";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No s'han trobat resultats"},searching:function(){return"Cercant…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/cs",[],function(){function e(e,t){switch(e){case 2:return t?"dva":"dvě";case 3:return"tři";case 4:return"čtyři"}return""}return{errorLoading:function(){return"Výsledky nemohly být načteny."},inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?"Prosím zadejte o jeden znak méně":n<=4?"Prosím zadejte o "+e(n,!0)+" znaky méně":"Prosím zadejte o "+n+" znaků méně"},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?"Prosím zadejte ještě jeden znak":n<=4?"Prosím zadejte ještě další "+e(n,!0)+" znaky":"Prosím zadejte ještě dalších "+n+" znaků"},loadingMore:function(){return"Načítají se další výsledky…"},maximumSelected:function(t){var n=t.maximum;return n==1?"Můžete zvolit jen jednu položku":n<=4?"Můžete zvolit maximálně "+e(n,!1)+" položky":"Můžete zvolit maximálně "+n+" položek"},noResults:function(){return"Nenalezeny žádné položky"},searching:function(){return"Vyhledávání…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/da",[],function(){return{errorLoading:function(){return"Resultaterne kunne ikke indlæses."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Angiv venligst "+t+" tegn mindre";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Angiv venligst "+t+" tegn mere";return n},loadingMore:function(){return"Indlæser flere resultater…"},maximumSelected:function(e){var t="Du kan kun vælge "+e.maximum+" emne";return e.maximum!=1&&(t+="r"),t},noResults:function(){return"Ingen resultater fundet"},searching:function(){return"Søger…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/de",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Bitte "+t+" Zeichen weniger eingeben"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Bitte "+t+" Zeichen mehr eingeben"},loadingMore:function(){return"Lade mehr Ergebnisse…"},maximumSelected:function(e){var t="Sie können nur "+e.maximum+" Eintr";return e.maximum===1?t+="ag":t+="äge",t+=" auswählen",t},noResults:function(){return"Keine Übereinstimmungen gefunden"},searching:function(){return"Suche…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/el",[],function(){return{errorLoading:function(){return"Τα αποτελέσματα δεν μπόρεσαν να φορτώσουν."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Παρακαλώ διαγράψτε "+t+" χαρακτήρ";return t==1&&(n+="α"),t!=1&&(n+="ες"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Παρακαλώ συμπληρώστε "+t+" ή περισσότερους χαρακτήρες";return n},loadingMore:function(){return"Φόρτωση περισσότερων αποτελεσμάτων…"},maximumSelected:function(e){var t="Μπορείτε να επιλέξετε μόνο "+e.maximum+" επιλογ";return e.maximum==1&&(t+="ή"),e.maximum!=1&&(t+="ές"),t},noResults:function(){return"Δεν βρέθηκαν αποτελέσματα"},searching:function(){return"Αναζήτηση…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Please delete "+t+" character";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Please enter "+t+" or more characters";return n},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/es",[],function(){return{errorLoading:function(){return"La carga falló"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor, elimine "+t+" car";return t==1?n+="ácter":n+="acteres",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Por favor, introduzca "+t+" car";return t==1?n+="ácter":n+="acteres",n},loadingMore:function(){return"Cargando más resultados…"},maximumSelected:function(e){var t="Sólo puede seleccionar "+e.maximum+" elemento";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No se encontraron resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/et",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" vähem",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" rohkem",n},loadingMore:function(){return"Laen tulemusi…"},maximumSelected:function(e){var t="Saad vaid "+e.maximum+" tulemus";return e.maximum==1?t+="e":t+="t",t+=" valida",t},noResults:function(){return"Tulemused puuduvad"},searching:function(){return"Otsin…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/eu",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gutxiago",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gehiago",n},loadingMore:function(){return"Emaitza gehiago kargatzen…"},maximumSelected:function(e){return e.maximum===1?"Elementu bakarra hauta dezakezu":e.maximum+" elementu hauta ditzakezu soilik"},noResults:function(){return"Ez da bat datorrenik aurkitu"},searching:function(){return"Bilatzen…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fa",[],function(){return{errorLoading:function(){return"امکان بارگذاری نتایج وجود ندارد."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="لطفاً "+t+" کاراکتر را حذف نمایید";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="لطفاً تعداد "+t+" کاراکتر یا بیشتر وارد نمایید";return n},loadingMore:function(){return"در حال بارگذاری نتایج بیشتر..."},maximumSelected:function(e){var t="شما تنها میتوانید "+e.maximum+" آیتم را انتخاب نمایید";return t},noResults:function(){return"هیچ نتیجهای یافت نشد"},searching:function(){return"در حال جستجو..."}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fi",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Ole hyvä ja anna "+t+" merkkiä vähemmän"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Ole hyvä ja anna "+t+" merkkiä lisää"},loadingMore:function(){return"Ladataan lisää tuloksia…"},maximumSelected:function(e){return"Voit valita ainoastaan "+e.maximum+" kpl"},noResults:function(){return"Ei tuloksia"},searching:function(){}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fr",[],function(){return{errorLoading:function(){return"Les résultats ne peuvent pas être chargés."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Supprimez "+t+" caractère";return t!==1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Saisissez "+t+" caractère";return t!==1&&(n+="s"),n},loadingMore:function(){return"Chargement de résultats supplémentaires…"},maximumSelected:function(e){var t="Vous pouvez seulement sélectionner "+e.maximum+" élément";return e.maximum!==1&&(t+="s"),t},noResults:function(){return"Aucun résultat trouvé"},searching:function(){return"Recherche en cours…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/gl",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Elimine ";return t===1?n+="un carácter":n+=t+" caracteres",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Engada ";return t===1?n+="un carácter":n+=t+" caracteres",n},loadingMore:function(){return"Cargando máis resultados…"},maximumSelected:function(e){var t="Só pode ";return e.maximum===1?t+="un elemento":t+=e.maximum+" elementos",t},noResults:function(){return"Non se atoparon resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/he",[],function(){return{errorLoading:function(){return"שגיאה בטעינת התוצאות"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="נא למחוק ";return t===1?n+="תו אחד":n+=t+" תווים",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="נא להכניס ";return t===1?n+="תו אחד":n+=t+" תווים",n+=" או יותר",n},loadingMore:function(){return"טוען תוצאות נוספות…"},maximumSelected:function(e){var t="באפשרותך לבחור עד ";return e.maximum===1?t+="פריט אחד":t+=e.maximum+" פריטים",t},noResults:function(){return"לא נמצאו תוצאות"},searching:function(){return"מחפש…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hi",[],function(){return{errorLoading:function(){return"परिड नहि सक।"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" अकषर क हट";return t>1&&(n=t+" अकषर हट "),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="कपय "+t+" य अधिक अकषर दरज कर";return n},loadingMore:function(){return"अधिक परिम लड ह रह..."},maximumSelected:function(e){var t="आप कवल "+e.maximum+" आइटम क चयन कर सकत";return t},noResults:function(){return"कई परिम नहि"},searching:function(){return"खज रह..."}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hr",[],function(){function e(e){var t=" "+e+" znak";return e%10<5&&e%10>0&&(e%100<5||e%100>19)?e%10>1&&(t+="a"):t+="ova",t}return{errorLoading:function(){return"Preuzimanje nije uspjelo."},inputTooLong:function(t){var n=t.input.length-t.maximum;return"Unesite "+e(n)},inputTooShort:function(t){var n=t.minimum-t.input.length;return"Unesite još "+e(n)},loadingMore:function(){return"Učitavanje rezultata…"},maximumSelected:function(e){return"Maksimalan broj odabranih stavki je "+e.maximum},noResults:function(){return"Nema rezultata"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hu",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Túl hosszú. "+t+" karakterrel több, mint kellene."},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Túl rövid. Még "+t+" karakter hiányzik."},loadingMore:function(){return"Töltés…"},maximumSelected:function(e){return"Csak "+e.maximum+" elemet lehet kiválasztani."},noResults:function(){return"Nincs találat."},searching:function(){return"Keresés…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/id",[],function(){return{errorLoading:function(){return"Data tidak boleh diambil."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Hapuskan "+t+" huruf"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Masukkan "+t+" huruf lagi"},loadingMore:function(){return"Mengambil data…"},maximumSelected:function(e){return"Anda hanya dapat memilih "+e.maximum+" pilihan"},noResults:function(){return"Tidak ada data yang sesuai"},searching:function(){return"Mencari…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/is",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vinsamlegast styttið texta um "+t+" staf";return t<=1?n:n+"i"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vinsamlegast skrifið "+t+" staf";return t>1&&(n+="i"),n+=" í viðbót",n},loadingMore:function(){return"Sæki fleiri niðurstöður…"},maximumSelected:function(e){return"Þú getur aðeins valið "+e.maximum+" atriði"},noResults:function(){return"Ekkert fannst"},searching:function(){return"Leita…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/it",[],function(){return{errorLoading:function(){return"I risultati non possono essere caricati."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Per favore cancella "+t+" caratter";return t!==1?n+="i":n+="e",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Per favore inserisci "+t+" o più caratteri";return n},loadingMore:function(){return"Caricando più risultati…"},maximumSelected:function(e){var t="Puoi selezionare solo "+e.maximum+" element";return e.maximum!==1?t+="i":t+="o",t},noResults:function(){return"Nessun risultato trovato"},searching:function(){return"Sto cercando…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ja",[],function(){return{errorLoading:function(){return"結果が読み込まれませんでした"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" 文字を削除してください";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="少なくとも "+t+" 文字を入力してください";return n},loadingMore:function(){return"読み込み中…"},maximumSelected:function(e){var t=e.maximum+" 件しか選択できません";return t},noResults:function(){return"対象が見つかりません"},searching:function(){return"検索しています…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/km",[],function(){return{errorLoading:function(){return"មនអចទញយកទននយ"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="សមលបចញ "+t+" អកសរ";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="សមបញល"+t+" អកសរ រនជងន";return n},loadingMore:function(){return"កងទញយកទននយបនម..."},maximumSelected:function(e){var t="អនកអចជសរសបនត "+e.maximum+" ជមសប";return t},noResults:function(){return"មនមនលទធផល"},searching:function(){return"កងសងរក..."}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ko",[],function(){return{errorLoading:function(){return"결과를 불러올 수 없습니다."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="너무 깁니다. "+t+" 글자 지워주세요.";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="너무 짧습니다. "+t+" 글자 더 입력해주세요.";return n},loadingMore:function(){return"불러오는 중…"},maximumSelected:function(e){var t="최대 "+e.maximum+"개까지만 선택 가능합니다.";return t},noResults:function(){return"결과가 없습니다."},searching:function(){return"검색 중…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lt",[],function(){function e(e,t,n,r){return e%10===1&&(e%100<11||e%100>19)?t:e%10>=2&&e%10<=9&&(e%100<11||e%100>19)?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Pašalinkite "+n+" simbol";return r+=e(n,"į","ius","ių"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Įrašykite dar "+n+" simbol";return r+=e(n,"į","ius","ių"),r},loadingMore:function(){return"Kraunama daugiau rezultatų…"},maximumSelected:function(t){var n="Jūs galite pasirinkti tik "+t.maximum+" element";return n+=e(t.maximum,"ą","us","ų"),n},noResults:function(){return"Atitikmenų nerasta"},searching:function(){return"Ieškoma…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lv",[],function(){function e(e,t,n,r){return e===11?t:e%10===1?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Lūdzu ievadiet par "+n;return r+=" simbol"+e(n,"iem","u","iem"),r+" mazāk"},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Lūdzu ievadiet vēl "+n;return r+=" simbol"+e(n,"us","u","us"),r},loadingMore:function(){return"Datu ielāde…"},maximumSelected:function(t){var n="Jūs varat izvēlēties ne vairāk kā "+t.maximum;return n+=" element"+e(t.maximum,"us","u","us"),n},noResults:function(){return"Sakritību nav"},searching:function(){return"Meklēšana…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/mk",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Ве молиме внесете "+e.maximum+" помалку карактер";return e.maximum!==1&&(n+="и"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Ве молиме внесете уште "+e.maximum+" карактер";return e.maximum!==1&&(n+="и"),n},loadingMore:function(){return"Вчитување резултати…"},maximumSelected:function(e){var t="Можете да изберете само "+e.maximum+" ставк";return e.maximum===1?t+="а":t+="и",t},noResults:function(){return"Нема пронајдено совпаѓања"},searching:function(){return"Пребарување…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ms",[],function(){return{errorLoading:function(){return"Keputusan tidak berjaya dimuatkan."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Sila hapuskan "+t+" aksara"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Sila masukkan "+t+" atau lebih aksara"},loadingMore:function(){return"Sedang memuatkan keputusan…"},maximumSelected:function(e){return"Anda hanya boleh memilih "+e.maximum+" pilihan"},noResults:function(){return"Tiada padanan yang ditemui"},searching:function(){return"Mencari…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nb",[],function(){return{errorLoading:function(){return"Kunne ikke hente resultater."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Vennligst fjern "+t+" tegn"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vennligst skriv inn ";return t>1?n+=" flere tegn":n+=" tegn til",n},loadingMore:function(){return"Laster flere resultater…"},maximumSelected:function(e){return"Du kan velge maks "+e.maximum+" elementer"},noResults:function(){return"Ingen treff"},searching:function(){return"Søker…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nl",[],function(){return{errorLoading:function(){return"De resultaten konden niet worden geladen."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Gelieve "+t+" karakters te verwijderen";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Gelieve "+t+" of meer karakters in te voeren";return n},loadingMore:function(){return"Meer resultaten laden…"},maximumSelected:function(e){var t=e.maximum==1?"kan":"kunnen",n="Er "+t+" maar "+e.maximum+" item";return e.maximum!=1&&(n+="s"),n+=" worden geselecteerd",n},noResults:function(){return"Geen resultaten gevonden…"},searching:function(){return"Zoeken…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pl",[],function(){var e=["znak","znaki","znaków"],t=["element","elementy","elementów"],n=function(t,n){if(t===1)return n[0];if(t>1&&t<=4)return n[1];if(t>=5)return n[2]};return{errorLoading:function(){return"Nie można załadować wyników."},inputTooLong:function(t){var r=t.input.length-t.maximum;return"Usuń "+r+" "+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return"Podaj przynajmniej "+r+" "+n(r,e)},loadingMore:function(){return"Trwa ładowanie…"},maximumSelected:function(e){return"Możesz zaznaczyć tylko "+e.maximum+" "+n(e.maximum,t)},noResults:function(){return"Brak wyników"},searching:function(){return"Trwa wyszukiwanie…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt-BR",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Apague "+t+" caracter";return t!=1&&(n+="es"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Digite "+t+" ou mais caracteres";return n},loadingMore:function(){return"Carregando mais resultados…"},maximumSelected:function(e){var t="Você só pode selecionar "+e.maximum+" ite";return e.maximum==1?t+="m":t+="ns",t},noResults:function(){return"Nenhum resultado encontrado"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor apague "+t+" ";return n+=t!=1?"caracteres":"carácter",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Introduza "+t+" ou mais caracteres";return n},loadingMore:function(){return"A carregar mais resultados…"},maximumSelected:function(e){var t="Apenas pode seleccionar "+e.maximum+" ";return t+=e.maximum!=1?"itens":"item",t},noResults:function(){return"Sem resultados"},searching:function(){return"A procurar…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ro",[],function(){return{errorLoading:function(){return"Rezultatele nu au putut fi incărcate."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vă rugăm să ștergeți"+t+" caracter";return t!==1&&(n+="e"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vă rugăm să introduceți "+t+"sau mai multe caractere";return n},loadingMore:function(){return"Se încarcă mai multe rezultate…"},maximumSelected:function(e){var t="Aveți voie să selectați cel mult "+e.maximum;return t+=" element",e.maximum!==1&&(t+="e"),t},noResults:function(){return"Nu au fost găsite rezultate"},searching:function(){return"Căutare…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ru",[],function(){function e(e,t,n,r){return e%10<5&&e%10>0&&e%100<5||e%100>20?e%10>1?n:t:r}return{errorLoading:function(){return"Невозможно загрузить результаты"},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Пожалуйста, введите на "+n+" символ";return r+=e(n,"","a","ов"),r+=" меньше",r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Пожалуйста, введите еще хотя бы "+n+" символ";return r+=e(n,"","a","ов"),r},loadingMore:function(){return"Загрузка данных…"},maximumSelected:function(t){var n="Вы можете выбрать не более "+t.maximum+" элемент";return n+=e(t.maximum,"","a","ов"),n},noResults:function(){return"Совпадений не найдено"},searching:function(){return"Поиск…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sk",[],function(){var e={2:function(e){return e?"dva":"dve"},3:function(){return"tri"},4:function(){return"štyri"}};return{inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?"Prosím, zadajte o jeden znak menej":n>=2&&n<=4?"Prosím, zadajte o "+e[n](!0)+" znaky menej":"Prosím, zadajte o "+n+" znakov menej"},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?"Prosím, zadajte ešte jeden znak":n<=4?"Prosím, zadajte ešte ďalšie "+e[n](!0)+" znaky":"Prosím, zadajte ešte ďalších "+n+" znakov"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(t){return t.maximum==1?"Môžete zvoliť len jednu položku":t.maximum>=2&&t.maximum<=4?"Môžete zvoliť najviac "+e[t.maximum](!1)+" položky":"Môžete zvoliť najviac "+t.maximum+" položiek"},noResults:function(){return"Nenašli sa žiadne položky"},searching:function(){return"Vyhľadávanie…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sr-Cyrl",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return"Преузимање није успело."},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Обришите "+n+" симбол";return r+=e(n,"","а","а"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Укуцајте бар још "+n+" симбол";return r+=e(n,"","а","а"),r},loadingMore:function(){return"Преузимање још резултата…"},maximumSelected:function(t){var n="Можете изабрати само "+t.maximum+" ставк";return n+=e(t.maximum,"у","е","и"),n},noResults:function(){return"Ништа није пронађено"},searching:function(){return"Претрага…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sr",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return"Preuzimanje nije uspelo."},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Obrišite "+n+" simbol";return r+=e(n,"","a","a"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Ukucajte bar još "+n+" simbol";return r+=e(n,"","a","a"),r},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(t){var n="Možete izabrati samo "+t.maximum+" stavk";return n+=e(t.maximum,"u","e","i"),n},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sv",[],function(){return{errorLoading:function(){return"Resultat kunde inte laddas."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vänligen sudda ut "+t+" tecken";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vänligen skriv in "+t+" eller fler tecken";return n},loadingMore:function(){return"Laddar fler resultat…"},maximumSelected:function(e){var t="Du kan max välja "+e.maximum+" element";return t},noResults:function(){return"Inga träffar"},searching:function(){return"Söker…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/th",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="โปรดลบออก "+t+" ตวอกษร";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="โปรดพมพเพมอก "+t+" ตวอกษร";return n},loadingMore:function(){return"กำลงคนขอมลเพม…"},maximumSelected:function(e){var t="คณสามารถเลอกไดไมเกน "+e.maximum+" รายการ";return t},noResults:function(){return"ไมพบขอมล"},searching:function(){return"กำลงคนขอมล…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/tr",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" karakter daha girmelisiniz";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="En az "+t+" karakter daha girmelisiniz";return n},loadingMore:function(){return"Daha fazla…"},maximumSelected:function(e){var t="Sadece "+e.maximum+" seçim yapabilirsiniz";return t},noResults:function(){return"Sonuç bulunamadı"},searching:function(){return"Aranıyor…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/uk",[],function(){function e(e,t,n,r){return e%100>10&&e%100<15?r:e%10===1?t:e%10>1&&e%10<5?n:r}return{errorLoading:function(){return"Неможливо завантажити результати"},inputTooLong:function(t){var n=t.input.length-t.maximum;return"Будь ласка, видаліть "+n+" "+e(t.maximum,"літеру","літери","літер")},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Будь ласка, введіть "+t+" або більше літер"},loadingMore:function(){return"Завантаження інших результатів…"},maximumSelected:function(t){return"Ви можете вибрати лише "+t.maximum+" "+e(t.maximum,"пункт","пункти","пунктів")},noResults:function(){return"Нічого не знайдено"},searching:function(){return"Пошук…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/vi",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vui lòng nhập ít hơn "+t+" ký tự";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vui lòng nhập nhiều hơn "+t+' ký tự"';return n},loadingMore:function(){return"Đang lấy thêm kết quả…"},maximumSelected:function(e){var t="Chỉ có thể chọn được "+e.maximum+" lựa chọn";return t},noResults:function(){return"Không tìm thấy kết quả"},searching:function(){return"Đang tìm…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-CN",[],function(){return{errorLoading:function(){return"无法载入结果。"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="请删除"+t+"个字符";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="请再输入至少"+t+"个字符";return n},loadingMore:function(){return"载入更多结果…"},maximumSelected:function(e){var t="最多只能选择"+e.maximum+"个项目";return t},noResults:function(){return"未找到结果"},searching:function(){return"搜索中…"}}}),{define:e.define,require:e.require}})();

@ -0,0 +1,3 @@
/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-TW",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="請刪掉"+t+"個字元";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="請再輸入"+t+"個字元";return n},loadingMore:function(){return"載入中…"},maximumSelected:function(e){var t="你只能選擇最多"+e.maximum+"項";return t},noResults:function(){return"沒有找到相符的項目"},searching:function(){return"搜尋中…"}}}),{define:e.define,require:e.require}})();

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

@ -29,10 +29,12 @@
<link href="{% static 'css/uploadify.css' %}" rel='stylesheet'>
{# select2 #}
<link href="{% static 'js/select/select2.css' %}" rel="stylesheet"/>
<script src="{% static 'js/select/select2.js' %}"></script>
{% block select2 %}
<link href="{% static 'js/select/select2.css' %}" rel="stylesheet"/>
<script src="{% static 'js/select/select2.js' %}"></script>
{% endblock select2 %}
{# The fav icon #}
<link rel="shortcut icon" href="img/favicon.ico">
<link rel="shortcut icon" href="{% static 'img/favicon.ico' %}">
{# datetimepicker #}
<link href="{% static 'js/datetimepicker/css/datetimepicker.css' %}" rel="stylesheet"/>
<script src="{% static 'js/datetimepicker/js/bootstrap-datetimepicker.js' %}"></script>

@ -5,135 +5,134 @@
<ul class="nav nav-tabs nav-stacked">
<li class="nav-header">Добавить</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="icon-eye-open"></i> События<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/admin/exposition/all">Выставка</a></li>
<li><a href="/admin/conference/all">Конференция</a></li>
<li><a href="/admin/seminar/all">Семинар</a></li>
<li><a href="/admin/webinar/all">Вебинар</a></li>
<li class="divider"></li>
<li><a href="/admin/import-event">Импорт</a></li>
<li><a href="/admin/export-event">Экспорт</a></li>
<li><a href="/admin/import/log/">Архив логов</a></li>
</ul>
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="icon-eye-open"></i> События<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/admin/exposition/all">Выставка</a></li>
<li><a href="/admin/conference/all">Конференция</a></li>
<li><a href="/admin/seminar/all">Семинар</a></li>
<li><a href="/admin/webinar/all">Вебинар</a></li>
<li class="divider"></li>
<li><a href="/admin/import-event">Импорт</a></li>
<li><a href="/admin/export-event">Экспорт</a></li>
<li><a href="/admin/import/log/">Архив логов</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="icon-eye-open"></i> Места проведения<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/admin/place_exposition/all">Место проведения выставки</a></li>
<li><a href="/admin/place_conference/all">Место проведения конференции</a></li>
</ul>
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="icon-eye-open"></i> Места проведения<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/admin/place_exposition/all">Место проведения выставки</a></li>
<li><a href="/admin/place_conference/all">Место проведения конференции</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="icon-eye-open"></i> Пользователи<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/admin/accounts/all">Пользователи</a></li>
<li><a href="/admin/company/all">Компании</a></li>
<li><a href="{% url 'admin_accounts_statistic' %}">Статистика</a></li>
</ul>
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="icon-eye-open"></i> Пользователи<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/admin/accounts/all">Пользователи</a></li>
<li><a href="/admin/company/all">Компании</a></li>
<li><a href="{% url 'admin_accounts_statistic' %}">Статистика</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="icon-wrench"></i> Настройки<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/admin/country/all">Страна</a></li>
<li><a href="/admin/city/all">Город</a></li>
<li><a href="/admin/theme/theme/all">Тематики</a></li>
{# <li><a href="/admin/theme/blog_theme/all">Тематики для блогов</a></li> #}
<li><a href="/admin/theme/tag/all">Теги</a></li>
<li><a href="/admin/service/all">Услуги</a></li>
<li><a href="{% url 'linked_service_all' %}">Управление услугами</a></li>
<li><a href="/admin/settings/main-page/">Главная страница</a></li>
<li><a href="/admin/meta/all/">Мета</a></li>
<li><a href="/admin/rosetta/">Перевод</a></li>
<li><a href="{% url 'redirects-list' %}">Редиректы</a></li>
<li class="divider"></li>
<li><a href="/admin/import-theme">Импорт тематик</a></li>
<li><a href="/admin/import-tag">Импорт тегов</a></li>
<li class="divider"></li>
<li><a href="/admin/stats/">{% trans "Статистика разделов" %}</a></li>
<li><a href="/admin/stats/events/">{% trans "Статистика событий" %}</a></li>
</ul>
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="icon-wrench"></i> Настройки<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/admin/country/all">Страна</a></li>
<li><a href="/admin/city/all">Город</a></li>
<li><a href="/admin/theme/theme/all">Тематики</a></li>
{# <li><a href="/admin/theme/blog_theme/all">Тематики для блогов</a></li> #}
<li><a href="/admin/theme/tag/all">Теги</a></li>
<li><a href="/admin/service/all">Услуги</a></li>
<li><a href="{% url 'linked_service_all' %}">Управление услугами</a></li>
<li><a href="/admin/settings/main-page/">Главная страница</a></li>
<li><a href="{% url 'settings_sections' %}">Разделы событий</a></li>
<li><a href="/admin/meta/all/">Мета</a></li>
<li><a href="/admin/rosetta/">Перевод</a></li>
<li><a href="{% url 'redirects-list' %}">Редиректы</a></li>
<li class="divider"></li>
<li><a href="/admin/import-theme">Импорт тематик</a></li>
<li><a href="/admin/import-tag">Импорт тегов</a></li>
<li class="divider"></li>
<li><a href="/admin/stats/">{% trans "Статистика разделов" %}</a></li>
<li><a href="/admin/stats/events/">{% trans "Статистика событий" %}</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="icon-list"></i> Справочники<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/admin/article/blog/all/">Статьи</a></li>
<li><a href="/admin/article/news/all/">Новости</a></li>
<li><a href="/admin/translator_catalog/catalog/all/">Каталог переводчиков</a></li>
<li><a href="/admin/translator_catalog/specialist/all/">Список переводчиков</a></li>
</ul>
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="icon-list"></i> Справочники<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/admin/article/blog/all/">Статьи</a></li>
<li><a href="/admin/article/news/all/">Новости</a></li>
<li><a href="/admin/translator_catalog/catalog/all/">Каталог переводчиков</a></li>
<li><a href="/admin/translator_catalog/specialist/all/">Список переводчиков</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="icon-circle-arrow-down"></i> Импорт<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/admin/import-event">События</a></li>
<li><a href="/admin/import-place_exposition">Место проведения выставок</a></li>
<li><a href="/admin/import-place_conference">Место проведения конференций</a></li>
<li><a href="/admin/import-event">События</a></li>
<li><a href="/admin/import-place_exposition">Место проведения выставок</a></li>
<li><a href="/admin/import-place_conference">Место проведения конференций</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class=" icon-circle-arrow-up"></i> Экспорт<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/admin/export-event">События</a></li>
<li><a href="/admin/export-place_exposition">Место проведения выставок</a></li>
<li><a href="/admin/export-place_conference">Место проведения конференций</a></li>
<li><a href="/admin/export-theme">Тематики</a></li>
<li><a href="/admin/export-tag">Теги</a></li>
<li><a href="/admin/export-company">Компании</a></li>
<li><a href="/admin/export-event">События</a></li>
<li><a href="/admin/export-place_exposition">Место проведения выставок</a></li>
<li><a href="/admin/export-place_conference">Место проведения конференций</a></li>
<li><a href="/admin/export-theme">Тематики</a></li>
<li><a href="/admin/export-tag">Теги</a></li>
<li><a href="/admin/export-company">Компании</a></li>
</ul>
</li>
<li class="dropdown">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class=" icon-circle-arrow-up"></i> Заказы<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/admin/service/order/callback/">Обратный звонок</a></li>
<li><a href="/admin/service/order/visit/">Бизнес-тур под ключ</a></li>
<li><a href="/admin/service/order/translation/">Переводчик</a></li>
<li><a href="/admin/service/order/advertising/">Рекламировать</a></li>
<li><a href="/admin/service/order/participation/">Участие</a></li>
<li><a href="/admin/service/order/remote/">Заочное посещение</a></li>
<li><a href="/admin/service/order/tickets/">Билеты</a></li>
<li><a href="/admin/service/order/callback/">Обратный звонок</a></li>
<li><a href="/admin/service/order/visit/">Бизнес-тур под ключ</a></li>
<li><a href="/admin/service/order/translation/">Переводчик</a></li>
<li><a href="/admin/service/order/advertising/">Рекламировать</a></li>
<li><a href="/admin/service/order/participation/">Участие</a></li>
<li><a href="/admin/service/order/remote/">Заочное посещение</a></li>
<li><a href="/admin/service/order/tickets/">Билеты</a></li>
</ul>
</li>
<li class="dropdown">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class=" icon-circle-arrow-up"></i> Реклама<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/admin/expobanners/banners/control/">Управление банерами</a></li>
<li><a href="/admin/expobanners/paid/list/">Платные выставки</a></li>
<li><a href="{% url 'confbanner-list_paid' %}">Платные конференции</a></li>
<li><a href="/admin/expobanners/top/list/">События в топе</a></li>
<li><a href="/admin/expobanners/main/list/">Выставки на главной</a></li>
<li><a href="/admin/expobanners/main/conf/list/">Конференции на главной</a></li>
<li><a href="/admin/expobanners/main/block/22/">Блок на главной</a></li>
<li><a href="{% url 'expobaner-comment_list' %}">Комментарии на /advertising/</a></li>
<li><a href="{% url 'expobaner-pcomment_list' %}">Комментарии на /service/participation/</a></li>
<li><a href="/admin/expobanners/banners/control/">Управление банерами</a></li>
<li><a href="/admin/expobanners/paid/list/">Платные выставки</a></li>
<li><a href="{% url 'confbanner-list_paid' %}">Платные конференции</a></li>
<li><a href="/admin/expobanners/top/list/">События в топе</a></li>
<li><a href="/admin/expobanners/main/list/">Выставки на главной</a></li>
<li><a href="/admin/expobanners/main/conf/list/">Конференции на главной</a></li>
<li><a href="/admin/expobanners/main/block/22/">Блок на главной</a></li>
<li><a href="{% url 'expobaner-comment_list' %}">Комментарии на /advertising/</a></li>
<li><a href="{% url 'expobaner-pcomment_list' %}">Комментарии на /service/participation/</a></li>
</ul>
</li>
<li class="dropdown">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class=" icon-circle-arrow-up"></i> Рассылка<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/admin/newsletters/contact/all/">Подписчики</a></li>
<li><a href="/admin/newsletters/mailinglist/all/">Списки рассылок</a></li>
<li><a href="/admin/newsletters/newsletters/all/">Рассылки</a></li>
<li><a href="{% url 'newsletters_dailymail_list' %}">Ежедневные рассылки</a></li>
<li><a href="{% url 'newsletters_recommends_list' %}">Настройки рекомендаций</a></li>
<li><a href="/admin/newsletters/get-popup-statistics/">Статистика</a></li>
<li><a href="/admin/newsletters/contact/all/">Подписчики</a></li>
<li><a href="/admin/newsletters/mailinglist/all/">Списки рассылок</a></li>
<li><a href="/admin/newsletters/newsletters/all/">Рассылки</a></li>
<li><a href="{% url 'newsletters_dailymail_list' %}">Ежедневные рассылки</a></li>
<li><a href="{% url 'newsletters_recommends_list' %}">Настройки рекомендаций</a></li>
<li><a href="/admin/newsletters/get-popup-statistics/">Статистика</a></li>
</ul>
</li>
</ul>
</div>
</div>

@ -0,0 +1,175 @@
{% extends 'base.html' %}
{% load i18n %}
{% load static %}
{% block select2 %}
<link href="{% static 'js/select2-4.0.3/css/select2.min.css' %}" rel="stylesheet"/>
<script src="{% static 'js/select2-4.0.3/js/select2.min.js' %}"></script>
{% endblock select2 %}
{% block main_js_exlude %}
{% endblock main_js_exlude %}
{% block scripts %}
{# selects #}
<link href="{% static 'js/select2-4.0.3/css/select2.min.css' %}" rel="stylesheet"/>
<script src="{% static 'js/select2-4.0.3/js/select2.min.js' %}"></script>
<link href="{% static 'js/jquery-ui-1.12.0-rc.2/jquery-ui.min.css' %}" rel="stylesheet"/>
<link href="{% static 'js/jquery-ui-1.12.0-rc.2/jquery-ui.structure.min.css' %}" rel="stylesheet"/>
<link href="{% static 'js/jquery-ui-1.12.0-rc.2/jquery-ui.theme.min.css' %}" rel="stylesheet"/>
<script src="{% static 'js/jquery-ui-1.12.0-rc.2/jquery-ui.min.js' %}"></script>
<script src="{% static 'js/select/select2.sortable.js' %}"></script>
<script>
(function($){
$.fn.extend({
// select2SortableOrder: function(){
// var args = Array.prototype.slice.call(arguments, 0);
// var $this = this.filter('[multiple]');
// $this.each(function(){
// var $select = $(this);
// // skip elements not select2-ed
// if(typeof($select.data('select2')) !== 'object'){
// return false;
// }
// var $select2 = $select.siblings('.select2-container'),
// unselected = [],
// sorted;
// var argList = undefined;
// if(typeof(args[0]) != 'undefined' && args[0].length > 0 && $.isArray(args[0])){
// argList = args[0];
// sorted = [];
// $select.find('option').each(function(){
// var isSelected = false,
// index = argList.indexOf(this.value);
// if (index >= 0) {
// sorted[index] = this;
// isSelected = true;
// }
// if(!isSelected){
// !this.selected && unselected.push(this);
// }
// });
// }
// else{
// $select.find('option').each(function(){
// !this.selected && unselected.push(this);
// });
// sorted = $($select2.find('.select2-choices li[class!="select2-search-field"]').map( function() {
// if (!this) {
// return undefined;
// }
// var id = $(this).data('select2Data').id;
// return $select.find('option[value="' + id + '"]')[0];
// }));
// }
// sorted.push.apply(sorted, unselected);
// $select.children().remove();
// $select.append(sorted);
// });
// return $this;
// },
select2_sortable: function(){
var select = $(this);
var ul = $(select).next('.select2-container').first('ul.select2-selection__rendered');
ul.sortable({
placeholder : 'ui-state-highlight',
forcePlaceholderSize: true,
items : 'li:not(.select2-search__field)',
tolerance : 'pointer',
stop: function() {
$($(ul).find('.select2-selection__choice').get().reverse()).each(function() {
var id = $(this).data('data').id;
var option = select.find('option[value="' + id + '"]')[0];
$(select).prepend(option);
});
}
});
}
});
}(jQuery));
function make_event_select(select){
// var select = $(id);
select.select2({
// placeholder: placeholder,
multiple: true,
ajax: {
url: select.data('ajax-url'),
width: '550px',
dataType: "json",
quietMillis: 200,
data: function(params){
return {term: params.term,
page: params.page};
},
processResults: function (data) {
return {results: $.map(JSON.parse(data), function(obj) {
obj.text = obj.label;
return obj
})};
},
},
createTag: function(params) {
return undefined;
},
});
}
$(document).ready(function(){
$('select[select2=true]').each(function() {
make_event_select($(this));
$(this).select2_sortable();
});
// $('#id_expo_city').select2SortableOrder({{ expo_city|safe }});
});
</script>
<style>
.select2-container--default .select2-selection--multiple .select2-selection__rendered li {
float: none;
}
</style>
{% endblock %}
{% block body %}
<div class="row-fluid sortable">
<div class="box span12">
<div class="box-header well" data-original-title>
<h2><i class="icon-tasks"></i></h2>
</div>
<div class="box-content">
<form method="post" action=".">
{% csrf_token %}
{% for field in form %}
<div class="control-group {% if field.errors %}error{% endif %}">
<label class="control-label"><b>{{ field.label }}:</b></label>
<div class="controls">{{ field }}
<span class="help-inline">{{ field.errors }}</span>
</div>
</div>
{% endfor %}
<hr/>
<button type="submit" class="btn btn-primary" >Сохранить</button>
</form>
</div>
</div>
</div>
{% endblock %}
{% block bot_scripts %}
{% endblock %}

@ -36,6 +36,8 @@
{% include 'client/includes/announces.html' %}
{% include 'client/includes/side_popular.html' %}
{% include 'client/includes/side_confs.html' %}
{% include 'client/includes/side_places.html' %}

@ -0,0 +1,14 @@
{% load i18n %}
{% if side_popular %}
<div class="mps-sect">
<header style="font-size: 23px;">{% trans 'Самые популярные' %}</header>
<nav>
<ul>
{% for obj in side_popular %}
<li><a href="{{ obj.url }}">{{ obj.name }}</a></li>
{% endfor %}
</ul>
</nav>
</div>
{% endif %}
Loading…
Cancel
Save