diff --git a/emencia/django/newsletter/admin_urls.py b/emencia/django/newsletter/admin_urls.py index 3575cc3c..6e874d1a 100644 --- a/emencia/django/newsletter/admin_urls.py +++ b/emencia/django/newsletter/admin_urls.py @@ -2,12 +2,14 @@ from django.conf.urls import url from django.conf.urls import patterns from emencia.django.newsletter.views.admin_views import ContactList, UpdateContact, MailingListView, UpdateMailingList,\ CreateMailingList, NewsletterListView, NewsletterCreate, ExportContacts, DeleteContact, NewsletterUpdate, \ - DeleteMailingList, ImportContacts, NewsletterHistory, NewsletterStatistics, NewsletterCloneView,ContactQueryDelete + DeleteMailingList, ImportContacts, NewsletterHistory, NewsletterStatistics, NewsletterCloneView,ContactQueryDelete,\ + NewsletterDelete urlpatterns = patterns('', url(r'^newsletters/all/$', NewsletterListView.as_view(), name='newsletters_newsletters_list'), url(r'^newsletters/(?P\d+)/edit/$', NewsletterUpdate.as_view(), name='newsletters_newsletters_update'), + url(r'^newsletters/(?P\d+)/delete/$', NewsletterDelete.as_view(), name='newsletters_newsletters_delete'), url(r'^newsletters/(?P\d+)/clone/$', NewsletterCloneView.as_view(), name='newsletters_newsletters_clone'), url(r'^newsletters/(?P\d+)/history/', NewsletterHistory.as_view(), name='newsletters_newsletters_history'), url(r'^newsletters/(?P\d+)/statistics/', NewsletterStatistics.as_view(), name='newsletters_newsletters_stat'), diff --git a/emencia/django/newsletter/views/admin_views.py b/emencia/django/newsletter/views/admin_views.py index 0f425041..62814321 100644 --- a/emencia/django/newsletter/views/admin_views.py +++ b/emencia/django/newsletter/views/admin_views.py @@ -101,10 +101,34 @@ class UpdateContact(UpdateView): data.update({'first_name': obj.first_name, 'subscriber': obj.subscriber, 'valid': obj.valid, 'tester': obj.tester, 'city':city}) - return data +class ExportContacts(FormView): + form_class = ContactFilterForm + + def get(self, request=None, *args, **kwargs): + form = self.form_class(request.GET) + if form.is_valid(): + qs, title = form.filter() + if qs.count(): + columns = ('email', 'first_name') + return ExcelResponse(qs, title, columns,'contacts') + return HttpResponseRedirect(self.request.META['HTTP_REFERER']) + + +class ImportContacts(FormView): + form_class = ContactImportForm + success_url = reverse_lazy("newsletters_contact_list") + template_name = 'admin/import templates/import_contacts.html' + + def form_valid(self, form): + form.save() + return HttpResponseRedirect(self.get_success_url()) + + + + class MailingListView(ListView): paginate_by = settings.ADMIN_PAGINATION model = MailingList @@ -239,24 +263,6 @@ def send_test_newsletter(request, pk): return HttpResponseRedirect(redirect) -class NewsletterHistory(ListView): - model = ContactMailingStatus - template_name = 'admin/newsletters/newsletter_history.html' - paginate_by = 50 - - def get_queryset(self): - self.newsletter = get_object_or_404(Newsletter, pk=self.kwargs['pk']) - qs = self.newsletter.contactmailingstatus_set.select_related('contact', 'link').all() - if self.request.GET.get('filter'): - qs = qs.filter(status=self.request.GET['filter']) - return qs - - def get_context_data(self, **kwargs): - context = super(NewsletterHistory, self).get_context_data(**kwargs) - context['newsletter'] = self.newsletter - context['choices'] = ContactMailingStatus.STATUS_CHOICES - return context - class NewsletterStatistics(DetailView): model = Newsletter template_name = 'admin/newsletters/newsletter_stat.html' @@ -283,30 +289,6 @@ class NewsletterStatistics(DetailView): return context - -class ExportContacts(FormView): - form_class = ContactFilterForm - - def get(self, request=None, *args, **kwargs): - form = self.form_class(request.GET) - if form.is_valid(): - qs, title = form.filter() - if qs.count(): - columns = ('email', 'first_name') - return ExcelResponse(qs, title, columns,'contacts') - return HttpResponseRedirect(self.request.META['HTTP_REFERER']) - - -class ImportContacts(FormView): - form_class = ContactImportForm - success_url = reverse_lazy("newsletters_contact_list") - template_name = 'admin/import templates/import_contacts.html' - - def form_valid(self, form): - form.save() - return HttpResponseRedirect(self.get_success_url()) - - class NewsletterCloneView(RedirectView): url = reverse_lazy("newsletters_newsletters_list") @@ -316,4 +298,29 @@ class NewsletterCloneView(RedirectView): return HttpResponseRedirect(self.url) def post(self, request, *args, **kwargs): - return self.get(request, *args, **kwargs) \ No newline at end of file + return self.get(request, *args, **kwargs) + + +class NewsletterHistory(ListView): + model = ContactMailingStatus + template_name = 'admin/newsletters/newsletter_history.html' + paginate_by = 50 + + def get_queryset(self): + self.newsletter = get_object_or_404(Newsletter, pk=self.kwargs['pk']) + qs = self.newsletter.contactmailingstatus_set.select_related('contact', 'link').all() + if self.request.GET.get('filter'): + qs = qs.filter(status=self.request.GET['filter']) + return qs + + def get_context_data(self, **kwargs): + context = super(NewsletterHistory, self).get_context_data(**kwargs) + context['newsletter'] = self.newsletter + context['choices'] = ContactMailingStatus.STATUS_CHOICES + return context + + +class NewsletterDelete(DeleteView): + model = Newsletter + template_name = 'admin/newsletters/confirm_delete.html' + success_url = reverse_lazy('newsletters_newsletters_list') \ No newline at end of file diff --git a/templates/admin/newsletters/confirm_delete.html b/templates/admin/newsletters/confirm_delete.html index 434d1b61..b34a3c75 100644 --- a/templates/admin/newsletters/confirm_delete.html +++ b/templates/admin/newsletters/confirm_delete.html @@ -3,7 +3,7 @@ {% block body %}
{% csrf_token %}
-

Вы точно хотите удалить "{{ object.contact.name }}{{ object.name }}" ?

+

Вы точно хотите удалить "{{ object.contact.name }}{{ object.name }}{{ object.title }}" ?

Нет
diff --git a/templates/admin/newsletters/newsletter_list.html b/templates/admin/newsletters/newsletter_list.html index 624a286c..6896a421 100644 --- a/templates/admin/newsletters/newsletter_list.html +++ b/templates/admin/newsletters/newsletter_list.html @@ -21,6 +21,7 @@       +   @@ -33,8 +34,10 @@ Тест Clone Изменить + История {% if item.status == item.SENT or item.status == item.CANCELED %}Статистика{% endif %} + x {% endfor %}