t1581: вывод городов в модалке

remotes/origin/stage6
Alexander Burdeiny 9 years ago
parent 60401fe4bf
commit 0a4e68f557
  1. 8
      accounts/views.py
  2. 1
      city/models.py
  3. 10
      emencia/django/newsletter/models.py
  4. 12
      functions/models_methods.py
  5. 5
      templates/client/accounts/mailing_settings.html
  6. 39
      templates/client/popups/russia_cities.html

@ -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:

@ -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

@ -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'Воскресенье')),
)

@ -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):
"""

@ -166,8 +166,11 @@
<div class="modals">
<div class="search-modal-overlay" id="search-modal">
<div class="search-modal-overlay" id="search-modal">
{% include 'client/popups/new_themes.html' %}
</div>
<div class="search-modal-overlay" id="search-modal">
{% include 'client/popups/russia_cities.html' %}
</div>
</div>

@ -0,0 +1,39 @@
{% load static %}
{% load i18n %}
{% load template_filters %}
<div class="popup-window r_cities">
<header>
<div class="title">{% trans 'Города России' %}</div>
</header>
<div class="body">
<div class="themes_wrapper">
<div class="scroll-container">
<div class="scroll-content">
<div class="topics-list">
<ul class="modal_checkboxes">
{% for pk, name in r_cities %}
<li class="level1">
<label>
<input type="checkbox" class="hidden_checkbox" name="r_cities_{{ pk }}" id="" value="{{ name }}"/>
<span class="custom_checkbox"></span>
<span class="label hidden">{{ text }}</span>
</label>
<ul class="sub"></ul>
</li>
{% endfor %}
</ul>
</div>
</div>
</div>
<div class="wait-ajax" style=""></div>
</div>
<div class="buttons_block">
<button class="modal-approve" type="button">{% trans 'Выбрать' %}</button>
<button class="modal-clear" type="button">{% trans 'Очистить' %}</button>
</div>
</div>
</div>
Loading…
Cancel
Save