From c9f8e6f203f84dec0a28182a066a3a1d72cf0de3 Mon Sep 17 00:00:00 2001 From: Slava Kyrachevsky Date: Wed, 12 Jul 2017 15:18:45 +0300 Subject: [PATCH] export_contacts --- apps/emencia/django/newsletter/admin_urls.py | 3 ++- .../django/newsletter/views/admin_views.py | 15 +++++++++++++++ templates/c_admin/newsletters/mailing_list.html | 11 ++--------- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/apps/emencia/django/newsletter/admin_urls.py b/apps/emencia/django/newsletter/admin_urls.py index be0bac91..c7446ee4 100644 --- a/apps/emencia/django/newsletter/admin_urls.py +++ b/apps/emencia/django/newsletter/admin_urls.py @@ -25,7 +25,7 @@ from emencia.django.newsletter.views.admin_views import ( RecommendsList, RecommendsCreateorEdit, RecommendsDelete, - + export_contacts ) urlpatterns = patterns('', @@ -57,6 +57,7 @@ urlpatterns = patterns('', url(r'^mailinglist/all/$', MailingListView.as_view(), name='newsletters_mailinglist'), url(r'^mailinglist/(?P\d+)/edit/', UpdateMailingList.as_view(), name='newsletters_mailinglist_update'), url(r'^mailinglist/(?P\d+)/', DeleteMailingList.as_view(), name='newsletters_mailinglist_delete'), + url(r'^export_contacts/(?P\d+)/', export_contacts, name='newsletters_export_contacts'), url(r'^mailinglist/filter/', CreateMailingList.as_view(), {'filter': True}, name='newsletters_mailinglist_create_filter'), url(r'^mailinglist/', CreateMailingList.as_view(), name='newsletters_mailinglist_create'), diff --git a/apps/emencia/django/newsletter/views/admin_views.py b/apps/emencia/django/newsletter/views/admin_views.py index 8100aa88..beee7a45 100644 --- a/apps/emencia/django/newsletter/views/admin_views.py +++ b/apps/emencia/django/newsletter/views/admin_views.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- import datetime +import csv from django.conf import settings from django.core.urlresolvers import reverse_lazy, reverse @@ -257,6 +258,20 @@ class UpdateMailingList(MailingListMixin, UpdateView): pass +def export_contacts(request, pk): + contacts = Contact.objects.filter(mailinglist_subscriber__pk=pk)\ + .values_list('email', flat=True) + + response = HttpResponse(content_type='text/csv') + response['Content-Disposition'] = 'attachment; filename="contacts.csv"' + + writer = csv.writer(response) + for contact in contacts: + writer.writerow([contact]) + + return response + + class DailyMailSuccesUrlMixin(object): def get_success_url(self): if self.object.dailymail == True: diff --git a/templates/c_admin/newsletters/mailing_list.html b/templates/c_admin/newsletters/mailing_list.html index 22581a84..4217b922 100644 --- a/templates/c_admin/newsletters/mailing_list.html +++ b/templates/c_admin/newsletters/mailing_list.html @@ -10,15 +10,6 @@
- - - - - - - - - @@ -27,6 +18,7 @@ + @@ -36,6 +28,7 @@ +
{% trans "Название" %}      
{{ item.subscribers_count }} {{ item.unsubscribers_count }}{% trans "Экспорт" %} {% trans "Изменить" %} {% trans "Удалить" %} {% trans "Подписчики" %}