вывел чойсы для инпутов

remotes/origin/stage6
Alexander Burdeiny 9 years ago
parent 429236eac2
commit a91ebbd2f7
  1. 1
      .gitignore
  2. 22
      accounts/views.py
  3. 15
      emencia/django/newsletter/forms.py

1
.gitignore vendored

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

@ -103,18 +103,22 @@ class MailingSettings(ContextMixin, AjaxableResponseMixin, CreateUpdateView):
self.extra_ctx.update({ self.extra_ctx.update({
'r_cities': City.used.russia(), 'r_cities': City.used.russia(),
}) })
try: instance = None
instance = Contact.objects.get(user=self.request.user) if self.request.user.is_authenticated():
except Contact.DoesNotExist: try:
instance = None instance = Contact.objects.get(user=self.request.user)
except Contact.DoesNotExist:
try:
instance = Contact.objects.get(email=self.request.user.email)
except Contact.DoesNotExist:
pass
if instance is not None: if instance is not None:
self.extra_ctx.update({ self.extra_ctx.update({
'checked_f_countries': instance.f_countries.values_list('pk', flat=True), 'checked_f_countries': list(instance.f_countries.values_list('pk', flat=True)),
'checked_r_cities': instance.r_cities.values_list('pk', flat=True), 'checked_r_cities': list(instance.r_cities.values_list('pk', flat=True)),
'checked_tg': instance.tags.values_list('pk', flat=True), 'checked_tg': list(instance.tags.values_list('pk', flat=True)),
'checked_th': instance.themes.values_list('pk', flat=True), 'checked_th': list(instance.themes.values_list('pk', flat=True)),
}) })
return instance return instance
def form_valid(self, form): def form_valid(self, form):

@ -119,7 +119,7 @@ class ML_ModelMultipleChoiceField(forms.ModelMultipleChoiceField):
class MailingSettingsForm(forms.ModelForm): class MailingSettingsForm(forms.ModelForm):
r_cities = ML_ModelMultipleChoiceField( r_cities = ML_ModelMultipleChoiceField(
label=_(u'Города России'), required=False, label=_(u'Города России'), required=False,
queryset=City.objects.all().distinct()) queryset=City.objects.all())
f_countries = ML_ModelMultipleChoiceField( f_countries = ML_ModelMultipleChoiceField(
label=_(u'Зарубежные страны'), required=False, label=_(u'Зарубежные страны'), required=False,
queryset=Country.objects.all()) queryset=Country.objects.all())
@ -153,22 +153,21 @@ class MailingSettingsForm(forms.ModelForm):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super(MailingSettingsForm, self).__init__(*args, **kwargs) super(MailingSettingsForm, self).__init__(*args, **kwargs)
# self.fields['f_countries'].queryset = Country.objects.none() for field in ['f_countries', 'r_cities', 'tg', 'th']:
# self.fields['r_cities'].queryset = City.objects.none() self.fields[field].widget.attrs.update({'style': 'display: none;'})
# self.fields['tg'].queryset = Tag.objects.none()
# self.fields['th'].queryset = Theme.objects.none()
if self.instance and self.instance.pk: if self.instance and self.instance.pk:
if self.instance.f_countries: if self.instance.f_countries:
self.fields['f_countries'].c_queryset = self.instance.f_countries.distinct() self.fields['f_countries'].c_queryset = self.instance.f_countries.distinct()
self.fields['f_countries'].widget.choices = self.fields['f_countries'].choices
if self.instance.r_cities: if self.instance.r_cities:
self.fields['r_cities'].c_queryset = self.instance.r_cities.distinct() self.fields['r_cities'].c_queryset = self.instance.r_cities.distinct()
self.fields['r_cities'].widget.choices = self.fields['r_cities'].choices
if self.instance.tags: if self.instance.tags:
self.fields['tg'].c_queryset = self.instance.tags.distinct() self.fields['tg'].c_queryset = self.instance.tags.distinct()
self.fields['tg'].widget.choices = self.fields['tg'].choices
if self.instance.themes: if self.instance.themes:
self.fields['th'].c_queryset = self.instance.themes.distinct() self.fields['th'].c_queryset = self.instance.themes.distinct()
# import pdb; self.fields['th'].widget.choices = self.fields['th'].choices
# pdb.set_trace();
def save(self): def save(self):
obj = super(MailingSettingsForm, self).save(commit=False) obj = super(MailingSettingsForm, self).save(commit=False)

Loading…
Cancel
Save