From aa5a96249ab1de5a51fe7f6e7b7b18641f3cedc9 Mon Sep 17 00:00:00 2001 From: Slava Kyrachevsky Date: Fri, 17 Feb 2017 13:23:00 +0200 Subject: [PATCH] =?UTF-8?q?=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5?= =?UTF-8?q?=D0=BB=D1=8F=20=D0=B4=D0=BB=D1=8F=20=D0=BF=D0=BE=D0=B4=D0=BF?= =?UTF-8?q?=D0=B8=D1=81=D0=BA=D0=B8=20=D0=BD=D0=B0=20=D1=80=D0=B0=D1=81?= =?UTF-8?q?=D1=81=D1=8B=D0=BB=D0=BA=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/emencia/django/newsletter/forms.py | 10 +++++++--- apps/emencia/django/newsletter/views/expo_views.py | 6 ++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/apps/emencia/django/newsletter/forms.py b/apps/emencia/django/newsletter/forms.py index 6ca24976..0978e52a 100644 --- a/apps/emencia/django/newsletter/forms.py +++ b/apps/emencia/django/newsletter/forms.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 diff --git a/apps/emencia/django/newsletter/views/expo_views.py b/apps/emencia/django/newsletter/views/expo_views.py index 5fb65276..45d16142 100644 --- a/apps/emencia/django/newsletter/views/expo_views.py +++ b/apps/emencia/django/newsletter/views/expo_views.py @@ -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')