сохранение данных пользователя для подписки на рассылку

remotes/origin/HEAD
Slava Kyrachevsky 9 years ago
parent 9ce9b87e2a
commit aa5a96249a
  1. 10
      apps/emencia/django/newsletter/forms.py
  2. 6
      apps/emencia/django/newsletter/views/expo_views.py

@ -84,7 +84,8 @@ class MailingSettingsForm(forms.ModelForm):
email = forms.EmailField(
error_messages={
'required': _(u'Поле e-mail обязательно для заполнения')
}
},
widget=forms.TextInput(attrs={'placeholder': _(u'Ваш e-mail')})
)
r_cities = ML_ModelMultipleChoiceField(
label=_(u'Города России'), required=False,
@ -110,7 +111,6 @@ class MailingSettingsForm(forms.ModelForm):
'content_articles',
]
widgets = {
'email': forms.TextInput(attrs={'placeholder': _(u'Ваш e-mail')}),
'first_name': forms.TextInput(attrs={'placeholder': _(u'Ваше имя')}),
'moscow': forms.CheckboxInput(),
'foreign': forms.CheckboxInput(),
@ -126,6 +126,10 @@ class MailingSettingsForm(forms.ModelForm):
for field in ['co', 'r_cities', 'tg', 'th', 'area']:
self.fields[field].widget.attrs.update({'style': 'display: none;'})
if self.instance and self.instance.pk:
# если пользовать авторизован, у нас есть инстанс
# и там не нужно выводить для редактирования его личные данные
del self.fields['email']
del self.fields['first_name']
# area
self.initial['area'] = set(self.instance.area.values_list('pk', flat=True))
area_q = Area.objects.language().all().order_by('name')
@ -199,7 +203,7 @@ class MailingSettingsForm(forms.ModelForm):
u'вам интересны. На основе этих '
u'настроек мы включим в ваше письмо '
u'релевантные события!'))
if not cleaned_data.get('moscow') or not cleaned_data.get('russia'):
if not cleaned_data.get('moscow') and not cleaned_data.get('russia') and not cleaned_data.get('foreign'):
raise forms.ValidationError(_(u'Необходимо выбрать минимум '
u'1 вариант в гео-фильтрах'))
return cleaned_data

@ -65,6 +65,12 @@ class SubscribeView(GetUserMixin, FormView):
data['first_name'] = self.request.GET['first_name']
return data
def get_form_kwargs(self):
kwargs = super(SubscribeView, self).get_form_kwargs()
if self.request.user.is_authenticated():
kwargs.update({'instance': self.object})
return kwargs
def get_success_url(self):
if not self.request.user.is_authenticated():
return reverse_lazy('subscription_activation_send')

Loading…
Cancel
Save