diff --git a/country/models.py b/country/models.py index 9af02d61..4d5a7402 100644 --- a/country/models.py +++ b/country/models.py @@ -62,7 +62,7 @@ class Area(TranslatableModel): def countries(self): lang = translation.get_language() return Country.objects.select_related('exposition_country')\ - .filter(exposition_country__country__isnull=False, translations__language_code=lang, area=self).distinct() + .filter(exposition_country__country__isnull=False, translations__language_code=lang, area=self).distinct().order_by('translations__name') def expos(self): countries = self.countries() @@ -167,7 +167,7 @@ class Country(TranslatableModel): def active_cities(self): lang = translation.get_language() return City.objects.select_related('exposition_city')\ - .filter(exposition_city__city__isnull=False, translations__language_code=lang, country=self).distinct() + .filter(exposition_city__city__isnull=False, translations__language_code=lang, country=self).distinct().order_by('translations__name') def get_sub_categories(self): objects = [{'text':item.name, 'id':item.id, 'name':'ci', 'sub': False} for item in self.active_cities()] diff --git a/functions/search_forms.py b/functions/search_forms.py index ab82be6a..45dac942 100644 --- a/functions/search_forms.py +++ b/functions/search_forms.py @@ -238,7 +238,11 @@ class ExpositionSearchForm(AbstactSearchForm): #co = forms.CharField(label=_(u'Страна'), required=False, widget=forms.CheckboxSelectMultiple()) #tg = forms.CharField(label=_(u'Теги'), required=False, widget=forms.CheckboxSelectMultiple()) - area = forms.MultipleChoiceField(label=_(u'Регион'), choices=[(item.id, item.name) for item in Area.objects.all_sorted()], + area = forms.MultipleChoiceField(label=_(u'Регион'), + choices=[(item.id, item.name) for item in Area.objects.\ + select_related('country', 'country__exposition_country').\ + filter(country__exposition_country__country__isnull=False).\ + distinct()], required=False, widget=forms.CheckboxSelectMultiple()) co = forms.MultipleChoiceField(label=_(u'Страна'), required=False, widget=forms.CheckboxSelectMultiple(), choices=[(item.id, item.name) for item in Country.objects.select_related('exposition_country')\ diff --git a/settings/templatetags/template_filters.py b/settings/templatetags/template_filters.py index aad5a748..304ad610 100644 --- a/settings/templatetags/template_filters.py +++ b/settings/templatetags/template_filters.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- from django import template +import base64 import phonenumbers import datetime, random from datetime import timedelta @@ -243,3 +244,6 @@ def in_events(day, events): return False +@register.filter +def base64_encode(value): + return base64.b64encode(value) \ No newline at end of file diff --git a/settings/views.py b/settings/views.py index 3b56d8a6..be9bf5da 100644 --- a/settings/views.py +++ b/settings/views.py @@ -52,10 +52,7 @@ def search_autocomplete(request): objects = areas + countries + cities return HttpResponse(json.dumps(objects), content_type='application/json') if form == 'subj': - objects = [{'text': get_by_lang(item, 'name', lang), 'id':item.pk, 'name': item.form_name} for item in SearchQuerySet().models(Theme, Tag).autocomplete(content_auto=term)] - #themes = [{'text':item.name, 'id':item.id, 'name':'th'} for item in Theme.objects.filter(translations__name__contains=term)] - #tags = [{'text':item.name, 'id':item.id, 'name':'tg'} for item in Tag.objects.filter(translations__name__contains=term)] - #objects = themes + tags + objects = [{'text': get_by_lang(item, 'name', lang), 'id':item.pk, 'name': item.form_name, 'cat': get_by_lang(item, 'parent', lang)} for item in SearchQuerySet().models(Theme, Tag).autocomplete(content_auto=term)] return HttpResponse(json.dumps(objects), content_type='application/json') else: return HttpResponse("Don't implemented yet") diff --git a/templates/client/includes/exposition/exposition_object.html b/templates/client/includes/exposition/exposition_object.html index 1a51af6e..824e6547 100644 --- a/templates/client/includes/exposition/exposition_object.html +++ b/templates/client/includes/exposition/exposition_object.html @@ -179,7 +179,7 @@ {% if exposition.web_page %}