diff --git a/emencia/django/newsletter/admin_forms.py b/emencia/django/newsletter/admin_forms.py index 7f4a50be..f70ed361 100644 --- a/emencia/django/newsletter/admin_forms.py +++ b/emencia/django/newsletter/admin_forms.py @@ -62,10 +62,12 @@ class ContactSettingsForm(forms.ModelForm): import xlrd - +from theme.models import Theme class MailingListForm(forms.ModelForm): excel_file = forms.FileField(label='Импортировать подписчиков', required=False) + theme_for_filter = forms.MultipleChoiceField(label=u'Тематики', required=False, + choices=[(item.id, item.name) for item in Theme.objects.language().all()]) class Meta: model = MailingList diff --git a/emencia/django/newsletter/forms.py b/emencia/django/newsletter/forms.py index 71749f2e..066fabbc 100644 --- a/emencia/django/newsletter/forms.py +++ b/emencia/django/newsletter/forms.py @@ -168,6 +168,7 @@ class ContactFilterForm(forms.Form): qs = qs.filter(creation_date__lt=datetime.strptime(self.cleaned_data['created_to'], "%d.%m.%Y")) if self.cleaned_data.get('not_subscriber'): qs = qs.filter(subscriber=False) + qs = qs.distinct() return qs, title diff --git a/emencia/django/newsletter/templates/newsletter/announce_template.html b/emencia/django/newsletter/templates/newsletter/announce_template.html index cc7ada10..992ab4d9 100644 --- a/emencia/django/newsletter/templates/newsletter/announce_template.html +++ b/emencia/django/newsletter/templates/newsletter/announce_template.html @@ -73,12 +73,6 @@ {% endwith %} {# end events #} - {# banner #} - - - - -
{% if news %} diff --git a/emencia/django/newsletter/views/admin_views.py b/emencia/django/newsletter/views/admin_views.py index 11fe5f23..830a7230 100644 --- a/emencia/django/newsletter/views/admin_views.py +++ b/emencia/django/newsletter/views/admin_views.py @@ -151,6 +151,16 @@ class UpdateMailingList(UpdateView): def get_success_url(self): return self.success_url + def form_valid(self, form): + + obj = form.save() + + themes = form.cleaned_data.get('theme_for_filter') + if themes: + obj.subscribers.add(*list(Contact.objects.filter(contactsettings__theme__in=themes).distinct())) + + return HttpResponseRedirect(self.success_url) + class CreateMailingList(CreateView): model = MailingList @@ -165,6 +175,8 @@ class CreateMailingList(CreateView): contacts, _ = filter_form.filter() obj.subscribers = contacts obj.save() + + return HttpResponseRedirect(self.success_url) diff --git a/templates/admin/newsletters/mailing_list_object.html b/templates/admin/newsletters/mailing_list_object.html index abb1ef47..91c26b3e 100644 --- a/templates/admin/newsletters/mailing_list_object.html +++ b/templates/admin/newsletters/mailing_list_object.html @@ -28,4 +28,12 @@ + +{% endblock %} + +{% block scripts %} +{# selects #} + + + {% endblock %}