diff --git a/.gitignore b/.gitignore index cb627fc4..3a849c70 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,5 @@ Thumbs.db npm-debug.log /proj/local.py +atlassian-ide-plugin.xml + diff --git a/accounts/edit_forms.py b/accounts/edit_forms.py index ee602621..1f00bb1e 100644 --- a/accounts/edit_forms.py +++ b/accounts/edit_forms.py @@ -61,20 +61,9 @@ class WorkForm(forms.ModelForm): position = forms.CharField(label=_(u'Укажите вашу должность'), required=False, widget=forms.TextInput()) - company = forms.CharField(label=_(u'Место работы'), widget=forms.HiddenInput(attrs={'class': 'select2'})) - def __init__(self, *args, **kwargs): - super(WorkForm, self).__init__(*args, **kwargs) - if self.instance.company: - self.fields['company'].widget = forms.HiddenInput(attrs={'class': 'select2', 'data-init-text': self.instance.company.name}) class Meta: model = User - fields = ('position', 'company') - - def clean_company(self): - try: - return Company.objects.get(id=self.cleaned_data['company']) - except Company.DoesNotExist: - return None + fields = ('position',) class AboutCompanyForm(forms.ModelForm): @@ -91,6 +80,21 @@ class PhoneForm(forms.ModelForm): model = Profile fields = ('phone',) + def clean_phone(self): + phone = self.cleaned_data['phone'] + if not phone: + return + + deduct = ('-','(',')','.',' ', '+') + for elem in deduct: + phone = phone.replace(elem, '') + if phone.isdigit(): + return phone + else: + raise forms.ValidationError(_(u'Введите правильный телефон')) + + + class EmailForm(forms.ModelForm): email = forms.EmailField(label=_(u'Ваш e-mail'), required=False) 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/blank.html b/templates/client/blank.html index 3e786ee1..b5389f95 100644 --- a/templates/client/blank.html +++ b/templates/client/blank.html @@ -60,7 +60,7 @@ This template include basic anf main styles and js files, -->