unsubscription final. Subscription popup

remotes/origin/1203
Nazar Kotjuk 10 years ago
parent 71af4a0d1e
commit 9c902c730f
  1. 6
      emencia/django/newsletter/urls/mailing_list.py
  2. 4
      emencia/django/newsletter/urls/tracking.py
  3. 32
      emencia/django/newsletter/views/mailing_list.py
  4. 4
      templates/admin/newsletters/newsletter_list.html
  5. 1
      templates/client/base_catalog.html
  6. 6
      templates/client/newsletters/unsubscribe_form.html
  7. 41
      templates/client/newsletters/unsubscribe_success.html
  8. 71
      templates/client/popups/announce_subscription.html

@ -1,7 +1,7 @@
"""Urls for the emencia.django.newsletter Mailing List"""
from django.conf.urls import url
from django.conf.urls import patterns
from emencia.django.newsletter.views.mailing_list import UnsubscribeView
from emencia.django.newsletter.views.mailing_list import UnsubscribeView, UnsubscriptionSuccess
from emencia.django.newsletter.forms import MailingListSubscriptionForm
from emencia.django.newsletter.forms import AllMailingListSubscriptionForm
@ -20,6 +20,10 @@ urlpatterns = patterns('emencia.django.newsletter.views.mailing_list',
'unsubscription_handle',
name='newsletter_mailinglist_unsubscribe_handle'),
url(r'^unsubscribe/success/$',
UnsubscriptionSuccess.as_view(),
name='newsletter_mailinglist_unsubscribe_success'),
url(r'^subscribe/(?P<mailing_list_id>\d+)/',
'view_mailinglist_subscribe',
{'form_class': MailingListSubscriptionForm},

@ -1,6 +1,6 @@
"""Urls for the emencia.django.newsletter Tracking"""
from django.conf.urls.defaults import url
from django.conf.urls.defaults import patterns
from django.conf.urls import url
from django.conf.urls import patterns
urlpatterns = patterns('emencia.django.newsletter.views.tracking',
url(r'^newsletter/(?P<slug>[-\w]+)/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)\.(?P<format>png|gif|jpg)$',

@ -1,10 +1,12 @@
# -*- coding: utf-8 -*-
"""Views for emencia.django.newsletter Mailing List"""
from django.template import RequestContext
from django.shortcuts import get_object_or_404
from django.shortcuts import render_to_response
from django.contrib import messages
from django.http import HttpResponseRedirect
from django.views.generic import DetailView
from django.views.generic import DetailView, TemplateView
from django.core.urlresolvers import reverse_lazy
from emencia.django.newsletter.utils.tokens import untokenize
from emencia.django.newsletter.models import Newsletter, MailingList, ContactMailingStatus, Contact, ContactSettings
@ -13,7 +15,6 @@ from emencia.django.newsletter.forms import SubscribeSettingsForm
def view_mailinglist_unsubscribe(request, slug, uidb36, token):
"""hard Unsubscribe a contact to a mailing list"""
# todo: 111
newsletter = get_object_or_404(Newsletter, slug=slug)
contact = untokenize(uidb36, token)
@ -24,20 +25,8 @@ def view_mailinglist_unsubscribe(request, slug, uidb36, token):
already_unsubscribed = True
ContactMailingStatus.objects.create(newsletter=newsletter, contact=contact,
status=ContactMailingStatus.UNSUBSCRIPTION)
"""
if request.POST.get('email') and not already_unsubscribed:
newsletter.mailing_list.unsubscribers.add(contact)
newsletter.mailing_list.save()
already_unsubscribed = True
ContactMailingStatus.objects.create(newsletter=newsletter, contact=contact,
status=ContactMailingStatus.UNSUBSCRIPTION)
"""
return render_to_response('newsletter/mailing_list_unsubscribe.html',
{'email': contact.email,
'already_unsubscribed': already_unsubscribed},
context_instance=RequestContext(request))
return HttpResponseRedirect(reverse_lazy('newsletter_mailinglist_unsubscribe_success'))
def view_mailinglist_subscribe(request, form_class, mailing_list_id=None):
"""
@ -74,6 +63,7 @@ class UnsubscribeView(DetailView):
def get_announce_form(self):
contact = untokenize(self.kwargs.get('uidb36'), self.kwargs.get('token'))
self.contact= contact
setting = contact.contactsettings
initial = {'email': contact.email}
@ -97,6 +87,9 @@ class UnsubscribeView(DetailView):
def get_context_data(self, **kwargs):
context = super(UnsubscribeView, self).get_context_data(**kwargs)
context['subscribe'] = self.get_announce_form()
#
ContactMailingStatus.objects.create(newsletter=self.object, contact=self.contact,
status=ContactMailingStatus.UNSUBSCRIPTION)
return context
@ -114,5 +107,10 @@ def unsubscription_handle(request):
setting.save()
form.save_m2m()
form.save_additional_fields(setting)
messages.add_message(request, messages.INFO, u'Настройки вашой подписки успешно сохранены')
return HttpResponseRedirect('/')
if form.cleaned_data.get('get_announce'):
messages.add_message(request, messages.INFO, u'Настройки вашой подписки успешно сохранены')
return HttpResponseRedirect(reverse_lazy('newsletter_mailinglist_unsubscribe_success'))
class UnsubscriptionSuccess(TemplateView):
template_name = 'client/newsletters/unsubscribe_success.html'

@ -18,6 +18,8 @@
<th>Дата отправки</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody>
@ -29,6 +31,8 @@
<td>{{ item.sending_date|date:"Y-m-d H:i" }}</td>
<td><a href="{% url 'newsletters_newsletters_send_test' item.id %}">тест</a> </td>
<td><a href="{% url 'newsletters_newsletters_update' item.id %}">Изменить</a> </td>
<td><a href="#">История</a> </td>
<td>{% if item.status == item.SENT or item.status == item.CANCELED %}<a href="#">Статистика</a>{% endif %}</td>
</tr>
{% endfor %}
</tbody>

@ -96,4 +96,5 @@
{% block popup %}
{% include 'client/popups/announces.html' %}
{% include 'client/popups/announce_subscription.html' %}
{% endblock %}

@ -27,7 +27,7 @@
<div class="mf-subj-checks-title">
<label class="check">
{{ subscribe.get_announce }}
Получать анонсы</label>
{{ subscribe.get_announce.label }}</label>
</div>
<div class="mf-announces-body">
@ -78,11 +78,11 @@
<hr />
<div class="mf-line">
<label class="check">{{ subscribe.exponent_practicum }}«Практикум экспонента»<i>(учимся эффективно участвовать в выставках и грамотно пиарить свою компанию на событиях)</i></label>
<label class="check">{{ subscribe.exponent_practicum }}{% trans '«Практикум экспонента»' %}<i>({% trans 'учимся эффективно участвовать в выставках и грамотно пиарить свою компанию на событиях' %})</i></label>
</div>
<div class="mf-line">
<label class="check">{{ subscribe.organiser_practicum }}«Практикум организатора событий» <i>(Создаем, наполняем и продвигаем собственные ивэнты)</i></label>
<label class="check">{{ subscribe.organiser_practicum }}{% trans '«Практикум организатора событий»' %} <i>({% trans 'Создаем, наполняем и продвигаем собственные ивэнты' %})</i></label>
</div>
</li>

@ -0,0 +1,41 @@
{% extends 'client/base_catalog.html' %}
{% load static %}
{% load i18n %}
{% block page_body %}
<div class="m-article event-page">
<div class="item-wrap event clearfix" style="padding-left: 10px;">
<div class="i-info">
{% if messages %}
<header>
<div class="i-title">
{% trans 'Параметры вашей подписки изменены.' %}
</div>
</header>
{% else %}
<header>
<div class="i-title">
{% trans 'Вы успешно отписаны' %}
</div>
</header>
<div class="i-address">
<header>
<div class="address">
{% trans 'Мы очень сожалеем, что потеряли такого ценного подписчика как Вы! =( Но будем рады видеть Вас снова!' %}
</div>
</header>
</div>
{% endif %}
</div>
</div>
</div>
{% endblock %}

@ -0,0 +1,71 @@
{% load static %}
{% load i18n %}
{% if not request.COOKIES.subscribe_popup %}
<div id="pw-subscribe-popup" class="popup-window subscribe-modal">
<header class="clearfix">
<div class="step1">
<div class="pw-title ">{% trans 'Анонсы' %} <span class="type-of-event">{% trans 'конференций' %}</span> {% trans 'на ваш email' %}</div>
{# <p class="sub-header">{% trans 'по тематике' %} <a href="#">&laquo;Маркетинг&raquo;</a></p>#}
</div>
</header>
<div class="pw-body clearfix">
<div class="step1" >
<div class="label">
<p>
{% trans 'Более <b>30 000 профессионалов</b> получают наши анонсы событий каждую среду. Присоединяйтесь!' %}
</p>
</div>
<form action="/newsletters/" id="subscribe-form" class="pw-form">
<div style="display: none">
{% for theme in themes %}
<input checked="checked" name="theme" type="checkbox" value="{{ theme }}"/>
{% endfor %}
</div>
<div class="pwf-line">
<div class="pwf-field">
<input type="text" placeholder="Ваше имя" name="first_name" id="id_first_name">
</div>
</div>
<div class="pwf-line">
<div class="pwf-field">
<input type="text" placeholder="Email" name="email" id="id_email">
</div>
</div>
<div class="pwf-buttons-line">
<button type="submit" class="submit">{% trans 'Хочу быть в курсе' %}</button>
<img src="/static/client/img/arrow.png" alt="" class="submit-arrow"/>
</div>
</form>
</div>
</div>
</div>
<script>
function setCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
$(function() {
setCookie('subscribe_popup', '1', 30);
setTimeout(function(){
$.fancybox.open(
[{href: '#pw-subscribe-popup'}],
{}
);
}, 1000);
});
</script>
{% endif %}
Loading…
Cancel
Save