remotes/origin/stage6
Alexander Burdeiny 9 years ago
parent bcfac98255
commit ae3190292d
  1. 2
      accounts/urls.py
  2. 59
      accounts/views.py
  3. 1
      emencia/django/newsletter/forms.py
  4. 8
      templates/client/accounts/mailing_settings.html
  5. 5
      templates/client/accounts/settings.html

@ -9,6 +9,7 @@ from views import (
Feed,
HomeView,
MailingSettings,
MailingSettingsUnsubscribe,
NameView,
PhoneView,
ProfileCompanyView,
@ -21,6 +22,7 @@ from views import (
urlpatterns = patterns('',
url(r'^profile/company/$', login_required(ProfileCompanyView.as_view())),
url(r'^profile/mailing/$', login_required(MailingSettings.as_view()), name='accounts-mailing_settings'),
url(r'^profile/mailing/unsubscribe/$', login_required(MailingSettingsUnsubscribe.as_view()), name='accounts-mailing_settings_unsubscribe'),
url(r'^profile/settings/$', login_required(SettingsView.as_view()), name='accounts_settings'),
url(r'^profile/calendar/remove/$', 'accounts.views.remove_from_calendar'),
url(r'^profile/calendar/export/$', 'core.views.download_workbook'),

@ -11,7 +11,9 @@ from django.http import HttpResponseRedirect, HttpResponse, Http404, HttpRespons
from django.contrib.auth.decorators import login_required
from django.utils.translation import ugettext as _, get_language
from django_messages.forms import SendForm
from django.views.generic import TemplateView, FormView
from django.views.generic import TemplateView, FormView, RedirectView
# from django.views.generic.detail import SingleObjectMixin
from django.conf import settings
from meta.views import MetadataMixin
@ -91,18 +93,8 @@ class SettingsView(CreateUpdateView):
return context
class MailingSettings(ContextMixin, AjaxableResponseMixin, CreateUpdateView):
form_class = MailingSettingsForm
template_name = 'client/accounts/mailing_settings.html'
success_url = reverse_lazy('accounts-mailing_settings')
def get_success_url(self):
return self.success_url
def get_object(self):
self.extra_ctx.update({
'r_cities': City.used.russia(),
})
class GetUserMixin(object):
def get_user(self):
instance = None
if self.request.user.is_authenticated():
try:
@ -117,7 +109,22 @@ class MailingSettings(ContextMixin, AjaxableResponseMixin, CreateUpdateView):
instance = Contact.objects.get(pk=self.request.session['ml_contact_pk'])
except Contact.DoesNotExist:
pass
return instance
class MailingSettings(GetUserMixin, ContextMixin, AjaxableResponseMixin, CreateUpdateView):
form_class = MailingSettingsForm
template_name = 'client/accounts/mailing_settings.html'
success_url = reverse_lazy('accounts-mailing_settings')
def get_success_url(self):
return self.success_url
def get_object(self):
self.extra_ctx.update({
'r_cities': City.used.russia(),
})
instance = self.get_user()
if instance is not None:
self.extra_ctx.update({
'checked_f_countries': list(instance.f_countries.values_list('pk', flat=True)),
@ -130,19 +137,33 @@ class MailingSettings(ContextMixin, AjaxableResponseMixin, CreateUpdateView):
return instance
def form_valid(self, form):
print(form.cleaned_data)
print(form.errors)
print(self.request.POST)
# print(form.cleaned_data)
# print(form.errors)
# print(self.request.POST)
# import pdb; pdb.set_trace()
return super(MailingSettings, self).form_valid(form)
def form_invalid(self, form):
print(form.cleaned_data)
print(form.errors)
print(self.request.POST)
# print(form.cleaned_data)
# print(form.errors)
# print(self.request.POST)
return super(MailingSettings, self).form_invalid(form)
class MailingSettingsUnsubscribe(GetUserMixin, RedirectView):
url = reverse_lazy('accounts-mailing_settings')
def get(self, request, *args, **kwargs):
contact = self.get_user()
if contact is None:
return HttpResponseForbidden()
if contact.subscriber:
contact.subscriber = False
contact.save()
return super(MailingSettingsUnsubscribe, self).get(request, *args, **kwargs)
class CalendarView(TemplateView):
"""
display template with user calendar(one month)

@ -163,6 +163,7 @@ class MailingSettingsForm(forms.ModelForm):
obj.tags = self.cleaned_data.get('tg') or []
obj.themes = self.cleaned_data.get('th') or []
obj.from_users = False
obj.subscriber = True
obj.save()
return obj

@ -23,6 +23,12 @@
</div>
</header>
{% if not object.subscriber %}
<div class="reversed" style="border-left: 5px solid #ff9900; padding: 8px 12px; background-color: #fff; font-size:17px; text-align: justify; margin-bottom: 10px">
{% trans "Вы не являетесь подписчиком. Чтобы подписаться, выберите интересующие Вас данные." %}
</div>
{% endif %}
<form action="." method="post" id="mailing_settings_form">
{% csrf_token %}
<div class="themes_block">
@ -153,7 +159,7 @@
<div class="button_block">
<div class="container">
<button type="submit">{% trans "Сохранить" %}</button>
<a href="#">{% trans 'Не хочу быть в курсе событий (отписаться от всего)' %}</a>
<a href="{% url 'accounts-mailing_settings_unsubscribe' %}">{% trans 'Не хочу быть в курсе событий (отписаться от всего)' %}</a>
</div>
</div>
</form>

@ -114,6 +114,9 @@
-->
<div class="set-sect subscribe">
<header>{% trans 'настройка подписки' %}</header>
<a href="{% url 'accounts-mailing_settings' %}" >{% trans 'Перейти к настройке' %}</a>
<span><img style="margin-right: -2px; margin-bottom: 4px;" src="{% static 'img/announce-letter.png' %}"></span>
{% comment %}
<div class="set-sect-body">
<form action="." method="post">
{% csrf_token %}
@ -189,6 +192,8 @@
</div>
</form>
</div>
{% endcomment %}
</div>
{% block scripts %}

Loading…
Cancel
Save