From b8ff4735c297dce31a04cdf47dfdec7d620b01bd Mon Sep 17 00:00:00 2001 From: Nazar Kotjuk Date: Thu, 29 Oct 2015 12:39:04 +0200 Subject: [PATCH] Evgenia newsletter fix --- ...newsletter_contacts_remove_notactivated.py | 15 ++++++++ .../commands/newsletter_create_announce.py | 8 ++--- emencia/django/newsletter/models.py | 6 ++-- emencia/django/newsletter/settings.py | 2 ++ .../newsletter/announce_template.html | 4 +-- .../django/newsletter/views/admin_views.py | 2 +- .../django/newsletter/views/mailing_list.py | 6 ++-- templates/admin/newsletters/contact_list.html | 3 ++ templates/client/accounts/feed.html | 4 +-- templates/client/accounts/settings.html | 13 ++----- .../newsletters/activation_complete.html | 36 +++++++++++++------ .../client/newsletters/unsubscribe_form.html | 6 ---- 12 files changed, 63 insertions(+), 42 deletions(-) create mode 100644 emencia/django/newsletter/management/commands/newsletter_contacts_remove_notactivated.py diff --git a/emencia/django/newsletter/management/commands/newsletter_contacts_remove_notactivated.py b/emencia/django/newsletter/management/commands/newsletter_contacts_remove_notactivated.py new file mode 100644 index 00000000..243d7a60 --- /dev/null +++ b/emencia/django/newsletter/management/commands/newsletter_contacts_remove_notactivated.py @@ -0,0 +1,15 @@ +from datetime import timedelta, datetime +from emencia.django.newsletter.settings import REMOVE_INACTIVATED_CONTACTS_DAYS +from django.core.management.base import NoArgsCommand +from emencia.django.newsletter.models import Contact + + +class Command(NoArgsCommand): + """ + remove not activated contacts + """ + help = 'create the announce every week.' + + def handle(self, *args, **options): + d = datetime.now() - timedelta(days=REMOVE_INACTIVATED_CONTACTS_DAYS) + Contact.objects.filter(activated=False, creation_date__lte=d).delete() diff --git a/emencia/django/newsletter/management/commands/newsletter_create_announce.py b/emencia/django/newsletter/management/commands/newsletter_create_announce.py index 94679626..85d8f99d 100644 --- a/emencia/django/newsletter/management/commands/newsletter_create_announce.py +++ b/emencia/django/newsletter/management/commands/newsletter_create_announce.py @@ -1,11 +1,7 @@ """Command for sending the newsletter""" from datetime import date, timedelta -from django.conf import settings -from django.utils.translation import activate from django.core.management.base import NoArgsCommand - -from emencia.django.newsletter.mailer import Mailer -from emencia.django.newsletter.models import Newsletter, MailingList +from emencia.django.newsletter.models import MailingList class Command(NoArgsCommand): @@ -14,5 +10,5 @@ class Command(NoArgsCommand): def handle(self, *args, **options): announce_list = MailingList.objects.get(id=1) - day = date.today()# + timedelta(days=1) + day = date.today() - timedelta(days=2) announce_list.generate_announce_newsletter(day) \ No newline at end of file diff --git a/emencia/django/newsletter/models.py b/emencia/django/newsletter/models.py index fbebc686..af20bf11 100644 --- a/emencia/django/newsletter/models.py +++ b/emencia/django/newsletter/models.py @@ -1,7 +1,6 @@ # -*- coding: utf-8 -*- """Models for emencia.django.newsletter""" from smtplib import SMTP -from smtplib import SMTPHeloError from datetime import datetime from datetime import timedelta from email.MIMEImage import MIMEImage @@ -29,6 +28,7 @@ from emencia.django.newsletter.settings import DEFAULT_HEADER_SENDER from emencia.django.newsletter.settings import ACTIVATION_SUBJECT, ACTIVATION_TEMPLATE, DEFAULT_SMPTSERVER_ID from emencia.django.newsletter.utils.vcard import vcard_contact_export from emencia.django.newsletter.utils import make_activation_code +from functions.form_check import translit_with_separator @@ -298,10 +298,10 @@ class MailingList(models.Model): # simple data sending_date = day + timedelta(days=1) start_sending_time = datetime.combine(sending_date, datetime.min.time()) - title = u'announce_%s'%sending_date.strftime('%Y_%m_%y') + title = u'Анонс событий на %s' % sending_date.strftime('%Y-%m-%y') newsletter = Newsletter(status=Newsletter.WAITING, sending_date=start_sending_time, - title=title, mailing_list=self, slug=title) + title=title, mailing_list=self, slug=translit_with_separator(title)) newsletter.save() # add default attacments copied from default announce newsletter diff --git a/emencia/django/newsletter/settings.py b/emencia/django/newsletter/settings.py index c072e28f..3486bcd7 100644 --- a/emencia/django/newsletter/settings.py +++ b/emencia/django/newsletter/settings.py @@ -43,3 +43,5 @@ ACTIVATION_SUBJECT = 'client/newsletters/activation_subject.txt' ACTIVATION_TEMPLATE = 'client/newsletters/activation_template.html' DEFAULT_SMPTSERVER_ID = 1 + +REMOVE_INACTIVATED_CONTACTS_DAYS = 3 diff --git a/emencia/django/newsletter/templates/newsletter/announce_template.html b/emencia/django/newsletter/templates/newsletter/announce_template.html index 1b7731a9..992ab4d9 100644 --- a/emencia/django/newsletter/templates/newsletter/announce_template.html +++ b/emencia/django/newsletter/templates/newsletter/announce_template.html @@ -52,7 +52,7 @@

{{ event.name }}

-

{{ obj.main_title|safe }}

+

{{ event.main_title|safe }}

добавить в расписание
{{ event.country.name }}, {{ event.city.name }}{% if event.place %}, {{ event.place.name }}{% endif %}
@@ -65,7 +65,7 @@
- посмотреть все события + посмотреть все события
diff --git a/emencia/django/newsletter/views/admin_views.py b/emencia/django/newsletter/views/admin_views.py index 1a7f4f2f..779fd892 100644 --- a/emencia/django/newsletter/views/admin_views.py +++ b/emencia/django/newsletter/views/admin_views.py @@ -56,7 +56,7 @@ class ContactList(FormView): class DeleteContact(DeleteView): - model = ContactSettings + model = Contact success_url = reverse_lazy('newsletters_contact_list') template_name = 'admin/newsletters/confirm_delete.html' diff --git a/emencia/django/newsletter/views/mailing_list.py b/emencia/django/newsletter/views/mailing_list.py index 2a1bd1c6..7b8e91a5 100644 --- a/emencia/django/newsletter/views/mailing_list.py +++ b/emencia/django/newsletter/views/mailing_list.py @@ -60,7 +60,6 @@ class UnsubscribeView(DetailView): def get_object(self, queryset=None): return get_object_or_404(Newsletter, slug=self.kwargs.get('slug')) - def get_announce_form(self): contact = untokenize(self.kwargs.get('uidb36'), self.kwargs.get('token')) self.contact= contact @@ -83,7 +82,6 @@ class UnsubscribeView(DetailView): form = SubscribeSettingsForm(instance=setting, initial=initial) return form - def get_context_data(self, **kwargs): context = super(UnsubscribeView, self).get_context_data(**kwargs) context['subscribe'] = self.get_announce_form() @@ -107,8 +105,12 @@ def unsubscription_handle(request): setting.save() form.save_m2m() form.save_additional_fields(setting) + if form.cleaned_data.get('get_announce'): messages.add_message(request, messages.INFO, u'Настройки вашой подписки успешно сохранены') + else: + contact.subscriber = False + contact.save() return HttpResponseRedirect(reverse_lazy('newsletter_mailinglist_unsubscribe_success')) diff --git a/templates/admin/newsletters/contact_list.html b/templates/admin/newsletters/contact_list.html index 1525896f..83effd34 100644 --- a/templates/admin/newsletters/contact_list.html +++ b/templates/admin/newsletters/contact_list.html @@ -104,6 +104,7 @@ Дата создания Дата редактирования   +   @@ -121,6 +122,8 @@ {{ item.modification_date|date:"Y-m-d H:i" }} Изменить + Удалить + {% endfor %} diff --git a/templates/client/accounts/feed.html b/templates/client/accounts/feed.html index d3b7bd06..c8f14674 100644 --- a/templates/client/accounts/feed.html +++ b/templates/client/accounts/feed.html @@ -52,11 +52,11 @@
{% if search_form.th %} - {% include 'client/popups/theme.html' with search_form=search_form filter="filter-" formId="filter-pwSubj" selectedItemTemplate="filter-subj-selected" autoCompleteId="filter-subj-complete-block" filterInputId="filter-subj-fliter-input" selectedItemsContainer="filter-csb-subj-selected-items" subjectTriggerWrapId="filter-subj-checks" exhibitionCheck="filter-exhibition-check" conferenceCheck="filter-conference-check" prefix="f-s-" submitText="{% trans 'Применить' %}" %} + {% include 'client/popups/theme.html' with search_form=search_form filter="filter-" formId="filter-pwSubj" selectedItemTemplate="filter-subj-selected" autoCompleteId="filter-subj-complete-block" filterInputId="filter-subj-fliter-input" selectedItemsContainer="filter-csb-subj-selected-items" subjectTriggerWrapId="filter-subj-checks" exhibitionCheck="filter-exhibition-check" conferenceCheck="filter-conference-check" prefix="f-s-" submitText="Применить" %} {% endif %} {% if search_form.area %} - {% include 'client/popups/place.html' with search_form=search_form filter="filter-" formId="filter-pwPlace" selectedItemTemplate="filter-csb-selected" autoCompleteId="filter-place-complete-block" filterInputId="filter-place-filter-input" selectedItemsContainer="filter-csb-selected-items" prefix="f-p-" submitText="{% trans 'Применить' %}" %} + {% include 'client/popups/place.html' with search_form=search_form filter="filter-" formId="filter-pwPlace" selectedItemTemplate="filter-csb-selected" autoCompleteId="filter-place-complete-block" filterInputId="filter-place-filter-input" selectedItemsContainer="filter-csb-selected-items" prefix="f-p-" submitText="Применить" %} {% endif %}
diff --git a/templates/client/accounts/settings.html b/templates/client/accounts/settings.html index 492e3ede..18cd5a67 100644 --- a/templates/client/accounts/settings.html +++ b/templates/client/accounts/settings.html @@ -128,7 +128,7 @@
+ {% trans 'Получать анонсы' %}
@@ -169,21 +169,14 @@
-
-
- - - - -

- +
- +
diff --git a/templates/client/newsletters/activation_complete.html b/templates/client/newsletters/activation_complete.html index 0ffe582c..3a468e03 100644 --- a/templates/client/newsletters/activation_complete.html +++ b/templates/client/newsletters/activation_complete.html @@ -1,18 +1,34 @@ {% extends "base_catalog.html" %} {% load i18n %} -{% block page_title %} -
-

{% trans "Успешная подписка" %}

-
-{% endblock %} +{% block page_body %} +
+
+
+
+
+ {% trans 'Ваша подписка активирована!' %} +
+
+
+
+
+

Мы очень рады, что теперь каждую среду вместе с другими профессионалами бизнеса Вы будете получать анонсы из календаря событий Expomap. Важные выставки и конференции не останутся незамеченными!

+

Вы всегда можете изменить параметры своей подписки:

+
    +
  • - добавить или изменить тематики;
  • +
  • - применить гео-фильтры (например, получать выставки только в г. Москва);
  • +
  • - изменить периодичность получения писем;
  • +
  • - отписаться! =(
  • +
-{% block content_list %} -
-
-

{% trans "Теперь вы успешно подписаны" %}

+

Мы будем рады любым Вашим пожелания по улучшению нашей рассылки - можете отправлять их на адрес evm@expomap.ru

+
+
+ +
+
- {% endblock %} diff --git a/templates/client/newsletters/unsubscribe_form.html b/templates/client/newsletters/unsubscribe_form.html index f16be816..51d5d51b 100644 --- a/templates/client/newsletters/unsubscribe_form.html +++ b/templates/client/newsletters/unsubscribe_form.html @@ -68,13 +68,7 @@ -
-
- - - -