From 8cbe868bcfcc6b184a54ee38e97ac2c03d0de982 Mon Sep 17 00:00:00 2001 From: Alexander Burdeiny Date: Wed, 13 Jul 2016 12:19:53 +0300 Subject: [PATCH] =?UTF-8?q?1470:=20=D0=9F=D0=BE=D0=BF-=D0=B0=D0=BF'=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- accounts/views.py | 14 ++++++++++---- expobanner/utils.py | 5 ++--- static/client/js/rejs/banners.js | 9 +++++++++ templates/client/blank.html | 9 +++++++++ templates/client/popups/announce_subscription.html | 14 ++++++++++---- theme/search_indexes.py | 3 ++- 6 files changed, 42 insertions(+), 12 deletions(-) diff --git a/accounts/views.py b/accounts/views.py index 1c2dbaea..69a11220 100644 --- a/accounts/views.py +++ b/accounts/views.py @@ -5,7 +5,7 @@ import datetime from django.core.urlresolvers import reverse import calendar as python_calendar from django.shortcuts import get_object_or_404 -from django.http import HttpResponseRedirect, HttpResponse, Http404 +from django.http import HttpResponseRedirect, HttpResponse, Http404, HttpResponseBadRequest from django.contrib.auth.decorators import login_required from django.utils.translation import ugettext as _, get_language from django_messages.forms import SendForm @@ -26,7 +26,7 @@ from company.edit_forms import NameForm as CompNameForm, HomeForm as CompHomeFor FoundationForm as CompFound, SpecializationForm as CompSpec, AddressForm as CompAddress from meta.views import MetadataMixin from emencia.django.newsletter.forms import SubscribeSettingsForm -from emencia.django.newsletter.models import Contact +from emencia.django.newsletter.models import Contact, ContactSettings class SettingsView(TemplateView): @@ -42,7 +42,13 @@ class SettingsView(TemplateView): try: contact = user.contact_set.get(email=user.username) except Contact.DoesNotExist: - contact = None + try: + contact = Contact.objects.get(email=user.username) + contact.user = user + contact.save() + except Contact.DoesNotExist: + contact = None + if not contact: return SubscribeSettingsForm() setting = contact.contactsettings @@ -94,7 +100,7 @@ def save_announce_settings(request): # todo: subscribe settings error handle #not_valid - return HttpResponseRedirect(reverse('accounts_settings')) + return HttpResponseRedirect(reverse('accounts_settings')) class CalendarView(TemplateView): diff --git a/expobanner/utils.py b/expobanner/utils.py index 25014f2b..e10832ac 100644 --- a/expobanner/utils.py +++ b/expobanner/utils.py @@ -123,13 +123,12 @@ def random_choice_banners(banners): ''' Include weight of customers model. ''' - print(banners) choice_from = {} for i, banner in enumerate(banners): key = 'customer{pk}'.format(pk=banner.customer_id) if banner.customer_id else i choice_from.setdefault(key, []).append(banner) - key = random.choice(choice_from.keys()) - return random.choice(choice_from.get(key)) + pre_choiced = random.choice(choice_from.values()) + return random.choice(pre_choiced) def get_top_events(tops, params, request): diff --git a/static/client/js/rejs/banners.js b/static/client/js/rejs/banners.js index da5511ed..a0312b39 100644 --- a/static/client/js/rejs/banners.js +++ b/static/client/js/rejs/banners.js @@ -77,6 +77,11 @@ if (parent) { if (banner.is_popup) { + + window.is_popup_banner = true; + // маркируем для попапа подписки о том что есть попап банер + // /templates/client/popups/announce_subscription.html + if (banner.is_img) { parent.innerHTML = "
" + @@ -124,6 +129,10 @@ // top_load - load expo_b_under_search banner or all other var top_load = top_load || false; getBanners(getUrl(top_load), insertBanners, top_load); + + if (!top_load) { + document.dispatchEvent(window.bannersjsRequestDone); + } }; // load expo_b_under_search top banner diff --git a/templates/client/blank.html b/templates/client/blank.html index 63db2d34..2b68d46f 100644 --- a/templates/client/blank.html +++ b/templates/client/blank.html @@ -72,6 +72,15 @@ This template include basic anf main styles and js files, // console.info("DOMbannersjsElementInserted fired"); window.marker_DOMbannersjsElementInserted = true }); + + var bannersjsRequestDone = new Event('bannersjsRequestDone'); + window.bannersjsRequestDone = bannersjsRequestDone; + window.marker_bannersjsRequestDone = false; + document.addEventListener("bannersjsRequestDone", function() { + window.marker_bannersjsRequestDone = true; + }); + + window.is_popup_banner = false; })(); diff --git a/templates/client/popups/announce_subscription.html b/templates/client/popups/announce_subscription.html index 7ec387b6..76286e2f 100644 --- a/templates/client/popups/announce_subscription.html +++ b/templates/client/popups/announce_subscription.html @@ -63,11 +63,13 @@ $(function() { - window.reg_opened = window.reg_opened || false + window.reg_opened = window.reg_opened || false; function open_func() { - if (window.reg_opened) { - setTimeout(open_func, 1000); + if (window.reg_opened || window.is_popup_banner) { + if (!window.is_popup_banner) { + setTimeout(open_func, 1000); + } return; } setCookie('subscribe_popup', '1', 30); @@ -85,7 +87,11 @@ ); } - setTimeout(open_func, 1000); + if (!window.marker_bannersjsRequestDone) { + document.addEventListener("bannersjsRequestDone", function() { + setTimeout(open_func, 1000); + }); + } }); diff --git a/theme/search_indexes.py b/theme/search_indexes.py index fd1a42d7..273a36c2 100644 --- a/theme/search_indexes.py +++ b/theme/search_indexes.py @@ -94,6 +94,7 @@ class ThemeIndex(indexes.SearchIndex, indexes.Indexable, ExpoSearchMixin): return Theme def index_queryset(self, using=None): + translation.activate('ru') return self.get_model().active.all() #return self.get_model().objects.filter() @@ -170,4 +171,4 @@ class TagIndex(indexes.SearchIndex, indexes.Indexable, ExpoSearchMixin): def index_queryset(self, using=None): #return self.get_model().active.all() - return self.get_model().active.all() \ No newline at end of file + return self.get_model().active.all()