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 %}