From d751f0179b3ff53bc13a1a454e664c9e7f46db72 Mon Sep 17 00:00:00 2001 From: Alexander Burdeiny Date: Thu, 14 Jul 2016 17:10:48 +0300 Subject: [PATCH] =?UTF-8?q?1460:=20=D0=AD=D1=82=D0=B0=D0=BF=20=E2=84=965:?= =?UTF-8?q?=20=D0=94=D0=BE=D0=BF=D0=BE=D0=BB=D0=BD=D0=B8=D1=82=D0=B5=D0=BB?= =?UTF-8?q?=D1=8C=D0=BD=D0=BE=20-=20=D0=B4=D0=BE=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=BA=D0=B0=20=D0=90-=D0=91=20=D1=82=D0=B5=D1=81=D1=82?= =?UTF-8?q?=D0=BE=D0=B2=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=B2=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6=D0=BD=D0=BE=D1=81=D1=82?= =?UTF-8?q?=D1=8C=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8=D1=82=D1=8C=20?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D1=82=D1=83=D1=81=20=D1=80=D0=B0=D1=81=D1=81?= =?UTF-8?q?=D1=8B=D0=BB=D0=BA=D0=B8=20=D0=BD=D0=B0=20"=D0=BE=D1=82=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D0=B5=D0=BD=D0=B0"=20=D0=BF=D1=80=D1=8F=D0=BC?= =?UTF-8?q?=D0=BE=20=D1=81=D0=BE=20=D1=81=D1=82=D1=80=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D1=86=D1=8B=20"=D1=80=D0=B0=D1=81=D1=81=D1=8B=D0=BB=D0=BA?= =?UTF-8?q?=D0=B8".=20=D0=9E=D1=87=D0=B5=D0=BD=D1=8C=20=D0=B0=D0=BA=D1=82?= =?UTF-8?q?=D1=83=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D0=B0=D0=BD=D0=BE=D0=BD=D1=81=D0=BE=D0=B2.=20=D0=9E=D1=82?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D1=8E=20=D0=B3=D0=B5=D0=BD=D0=B5=D1=80=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D1=8E=20=D0=B0=D0=BD=D0=BE=D0=BD=D1=81=D0=BE=D0=B2?= =?UTF-8?q?=20=D0=BD=D0=B0=20=D0=B4=D0=B5=D0=B2=D0=B5.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- emencia/django/newsletter/admin_urls.py | 31 ++++++++++++++----- emencia/django/newsletter/models.py | 3 ++ .../django/newsletter/views/admin_views.py | 11 +++++++ support/dev/settings.py | 2 +- .../admin/newsletters/newsletter_list.html | 29 ++++++++++------- 5 files changed, 56 insertions(+), 20 deletions(-) diff --git a/emencia/django/newsletter/admin_urls.py b/emencia/django/newsletter/admin_urls.py index 899d2690..fb1b2f9e 100644 --- a/emencia/django/newsletter/admin_urls.py +++ b/emencia/django/newsletter/admin_urls.py @@ -1,16 +1,33 @@ -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,\ - NewsletterDelete, PopupStatisticsView, theme_for_filter_ajax - +from django.conf.urls import patterns, url +from emencia.django.newsletter.views.admin_views import ( + ContactList, + ContactQueryDelete, + CreateMailingList, + DeleteContact, + DeleteMailingList, + ExportContacts, + ImportContacts, + MailingListView, + NewsletterCloneView, + NewsletterCreate, + NewsletterDelete, + NewsletterHistory, + NewsletterListView, + NewsletterStatistics, + NewsletterUpdate, + PopupStatisticsView, + UpdateContact, + UpdateMailingList, + NewsletterCancelView, + theme_for_filter_ajax +) 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+)/cancel/$', NewsletterCancelView.as_view(), name='newsletters_newsletters_cancel'), 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'), url(r'^newsletters/(?P\d+)/test/$', diff --git a/emencia/django/newsletter/models.py b/emencia/django/newsletter/models.py index 11e77219..a346e40d 100644 --- a/emencia/django/newsletter/models.py +++ b/emencia/django/newsletter/models.py @@ -413,6 +413,9 @@ class Newsletter(models.Model): status__in=[ContactMailingStatus.SENT, ContactMailingStatus.AB_WAITING], ).count() + def can_cancel(self): + return self.status in [self.WAITING, self.SENDING] + @models.permalink def get_absolute_url(self): return ('newsletter_newsletter_preview', (self.slug,)) diff --git a/emencia/django/newsletter/views/admin_views.py b/emencia/django/newsletter/views/admin_views.py index 8b86452d..66f293cc 100644 --- a/emencia/django/newsletter/views/admin_views.py +++ b/emencia/django/newsletter/views/admin_views.py @@ -354,6 +354,17 @@ class NewsletterCloneView(RedirectView): return self.get(request, *args, **kwargs) +class NewsletterCancelView(NewsletterCloneView): + url = reverse_lazy("newsletters_newsletters_list") + + def get(self, request, *args, **kwargs): + newsletter = get_object_or_404(Newsletter, id=kwargs['pk']) + if newsletter.can_cancel: + newsletter.status = Newsletter.CANCELED + newsletter.save() + return HttpResponseRedirect(self.url) + + class NewsletterHistory(ListView): model = ContactMailingStatus template_name = 'admin/newsletters/newsletter_history.html' diff --git a/support/dev/settings.py b/support/dev/settings.py index def623f3..f3721b24 100644 --- a/support/dev/settings.py +++ b/support/dev/settings.py @@ -389,7 +389,7 @@ CRONJOBS = [ ('*/5 * * * *', 'django.core.management.call_command', ['update_views_cache']), ('40 6 * * * ', 'django.core.management.call_command', ['newsletter_contacts_remove_notactivated']), - ('41 5 * * *', 'django.core.management.call_command', ['newsletter_create_announce']), + # ('41 5 * * *', 'django.core.management.call_command', ['newsletter_create_announce']), ('12 4 * * *', 'django.core.management.call_command', ['stats_daily']), ] diff --git a/templates/admin/newsletters/newsletter_list.html b/templates/admin/newsletters/newsletter_list.html index 4aa105ed..f2dbd362 100644 --- a/templates/admin/newsletters/newsletter_list.html +++ b/templates/admin/newsletters/newsletter_list.html @@ -1,10 +1,11 @@ {% extends 'admin/base.html' %} +{% load i18n %} {% block body %}
-

Рассылки

+

{% trans "Рассылки" %}

@@ -12,10 +13,10 @@ - Название - Список рассылки - Статус - Дата отправки + {% trans "Название" %} + {% trans "Список рассылки" %} + {% trans "Статус" %} + {% trans "Дата отправки" %}       @@ -31,21 +32,25 @@ {{ item.mailing_list }} {{ item.get_status_text }} {{ item.sending_date|date:"Y-m-d H:i" }} - Тест - Clone - Изменить + {% trans "Тест" %} + {% trans "Clone" %} + + {% trans "Изменить" %} + {% if item.can_cancel %} +
{% trans "Отменить" %} + {% endif %} - История - Статистика + {% trans "История" %} + {% trans "Статистика" %} {% endfor %} - Добавить новый список + {% trans "Добавить новый список" %}
{# pagination #} {% include 'admin/includes/admin_pagination.html' with page_obj=page_obj %}
-{% endblock %} \ No newline at end of file +{% endblock %}