diff --git a/accounts/views.py b/accounts/views.py index 3cabf169..01cfccd8 100644 --- a/accounts/views.py +++ b/accounts/views.py @@ -15,9 +15,10 @@ from django.views.generic import TemplateView, FormView from django.conf import settings from meta.views import MetadataMixin -from functions.custom_views import ListView, CreateUpdateView, AjaxableResponseMixin +from functions.custom_views import ListView, CreateUpdateView, AjaxableResponseMixin, ContextMixin from functions.views_help import dates_range, get_user from exposition.models import Exposition +from city.models import City from company.forms import CreateCompanyForm from company.edit_forms import NameForm as CompNameForm, HomeForm as CompHomeForm, PhoneForm as CompPhoneForm,\ EmailForm as CompEmailForm, WebPageForm as CompWebPageForm, SocialForm as CompSocialForm,\ @@ -90,12 +91,15 @@ class SettingsView(CreateUpdateView): return context -class MailingSettings(AjaxableResponseMixin, CreateUpdateView): +class MailingSettings(ContextMixin, AjaxableResponseMixin, CreateUpdateView): form_class = MailingSettingsForm template_name = 'client/accounts/mailing_settings.html' success_url = reverse_lazy('accounts-mailing_settings') def get_object(self): + self.extra_ctx.update({ + 'r_cities': City.used.russia(), + }) try: instance = Contact.objects.get(user=self.request.user) except Contact.DoesNotExist: diff --git a/city/models.py b/city/models.py index 749facc0..ea6cf6cf 100644 --- a/city/models.py +++ b/city/models.py @@ -90,7 +90,6 @@ class City(TranslatableModel): from conference.models import Conference return Conference.objects.filter(city=self).count() - def get_parent(self): """ returns dictionary of parents diff --git a/emencia/django/newsletter/models.py b/emencia/django/newsletter/models.py index e2431328..8734d371 100644 --- a/emencia/django/newsletter/models.py +++ b/emencia/django/newsletter/models.py @@ -114,11 +114,11 @@ class Contact(models.Model): MONTH = (3, _(u'Раз в месяц')), ) PERIODIC_DAY_CHOICES = EnumChoices( - MON=(1, _(u'Понедельник')), - TUE=(2, _(u'Вторник')), - WED=(3, _(u'Среда')), - THU=(4, _(u'Четверг')), - FRI=(5, _(u'Пятница')), + MON=(1, _(u'Пн')), + TUE=(2, _(u'Вт')), + WED=(3, _(u'Ср')), + THU=(4, _(u'Чт')), + FRI=(5, _(u'Пт')), # Sat=(6, _(u'Суббота')), # Sun=(7, _(u'Воскресенье')), ) diff --git a/functions/models_methods.py b/functions/models_methods.py index 6ce53d68..6c011b11 100644 --- a/functions/models_methods.py +++ b/functions/models_methods.py @@ -183,6 +183,18 @@ class CityManager(TranslationManager): cache.set(key, cities, self.cache_time) return cities + def russia(self, cached=True): + lang = translation.get_language() + key = 'russia_cities_%s' % lang + if cached and key in cache: + cached_cities = cache.get(key) + return cached_cities + else: + cities = list(self.language(lang).filter(country__url='russia').order_by('name').values_list('pk', 'name')) + cache.set(key, cities, self.cache_time) + return cities + + def hvad_to_dict(object): """ diff --git a/templates/client/accounts/mailing_settings.html b/templates/client/accounts/mailing_settings.html index d3a37916..228a108c 100644 --- a/templates/client/accounts/mailing_settings.html +++ b/templates/client/accounts/mailing_settings.html @@ -166,8 +166,11 @@
-
+
{% include 'client/popups/new_themes.html' %} +
+
+ {% include 'client/popups/russia_cities.html' %}
diff --git a/templates/client/popups/russia_cities.html b/templates/client/popups/russia_cities.html new file mode 100644 index 00000000..70e4c075 --- /dev/null +++ b/templates/client/popups/russia_cities.html @@ -0,0 +1,39 @@ +{% load static %} +{% load i18n %} +{% load template_filters %} + +