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, Feed,
HomeView, HomeView,
MailingSettings, MailingSettings,
MailingSettingsUnsubscribe,
NameView, NameView,
PhoneView, PhoneView,
ProfileCompanyView, ProfileCompanyView,
@ -21,6 +22,7 @@ from views import (
urlpatterns = patterns('', urlpatterns = patterns('',
url(r'^profile/company/$', login_required(ProfileCompanyView.as_view())), 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/$', 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/settings/$', login_required(SettingsView.as_view()), name='accounts_settings'),
url(r'^profile/calendar/remove/$', 'accounts.views.remove_from_calendar'), url(r'^profile/calendar/remove/$', 'accounts.views.remove_from_calendar'),
url(r'^profile/calendar/export/$', 'core.views.download_workbook'), 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.contrib.auth.decorators import login_required
from django.utils.translation import ugettext as _, get_language from django.utils.translation import ugettext as _, get_language
from django_messages.forms import SendForm 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 django.conf import settings
from meta.views import MetadataMixin from meta.views import MetadataMixin
@ -91,18 +93,8 @@ class SettingsView(CreateUpdateView):
return context return context
class MailingSettings(ContextMixin, AjaxableResponseMixin, CreateUpdateView): class GetUserMixin(object):
form_class = MailingSettingsForm def get_user(self):
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 = None instance = None
if self.request.user.is_authenticated(): if self.request.user.is_authenticated():
try: try:
@ -117,7 +109,22 @@ class MailingSettings(ContextMixin, AjaxableResponseMixin, CreateUpdateView):
instance = Contact.objects.get(pk=self.request.session['ml_contact_pk']) instance = Contact.objects.get(pk=self.request.session['ml_contact_pk'])
except Contact.DoesNotExist: except Contact.DoesNotExist:
pass 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: if instance is not None:
self.extra_ctx.update({ self.extra_ctx.update({
'checked_f_countries': list(instance.f_countries.values_list('pk', flat=True)), 'checked_f_countries': list(instance.f_countries.values_list('pk', flat=True)),
@ -130,19 +137,33 @@ class MailingSettings(ContextMixin, AjaxableResponseMixin, CreateUpdateView):
return instance return instance
def form_valid(self, form): def form_valid(self, form):
print(form.cleaned_data) # print(form.cleaned_data)
print(form.errors) # print(form.errors)
print(self.request.POST) # print(self.request.POST)
# import pdb; pdb.set_trace() # import pdb; pdb.set_trace()
return super(MailingSettings, self).form_valid(form) return super(MailingSettings, self).form_valid(form)
def form_invalid(self, form): def form_invalid(self, form):
print(form.cleaned_data) # print(form.cleaned_data)
print(form.errors) # print(form.errors)
print(self.request.POST) # print(self.request.POST)
return super(MailingSettings, self).form_invalid(form) 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): class CalendarView(TemplateView):
""" """
display template with user calendar(one month) display template with user calendar(one month)

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

@ -23,6 +23,12 @@
</div> </div>
</header> </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"> <form action="." method="post" id="mailing_settings_form">
{% csrf_token %} {% csrf_token %}
<div class="themes_block"> <div class="themes_block">
@ -153,7 +159,7 @@
<div class="button_block"> <div class="button_block">
<div class="container"> <div class="container">
<button type="submit">{% trans "Сохранить" %}</button> <button type="submit">{% trans "Сохранить" %}</button>
<a href="#">{% trans 'Не хочу быть в курсе событий (отписаться от всего)' %}</a> <a href="{% url 'accounts-mailing_settings_unsubscribe' %}">{% trans 'Не хочу быть в курсе событий (отписаться от всего)' %}</a>
</div> </div>
</div> </div>
</form> </form>

@ -114,6 +114,9 @@
--> -->
<div class="set-sect subscribe"> <div class="set-sect subscribe">
<header>{% trans 'настройка подписки' %}</header> <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"> <div class="set-sect-body">
<form action="." method="post"> <form action="." method="post">
{% csrf_token %} {% csrf_token %}
@ -189,6 +192,8 @@
</div> </div>
</form> </form>
</div> </div>
{% endcomment %}
</div> </div>
{% block scripts %} {% block scripts %}

Loading…
Cancel
Save