From 3a133a10aa56ba9d4d705937316b28ad6249ef97 Mon Sep 17 00:00:00 2001 From: Kotiuk Nazarii Date: Wed, 2 Sep 2015 20:53:15 +0300 Subject: [PATCH] Cookies check --- expobanner/utils.py | 7 ++++++- expobanner/views.py | 11 ++++++++--- templates/client/blank.html | 1 + 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/expobanner/utils.py b/expobanner/utils.py index 9c4222a2..b87e1c7f 100644 --- a/expobanner/utils.py +++ b/expobanner/utils.py @@ -20,11 +20,16 @@ def get_by_sort(banner_list): return result -def get_banner_by_params(banners_list, urls, params): +def get_banner_by_params(banners_list, urls, params, request): thematic_banners = [] url_banners = [] for banner in banners_list: + # check popups + if banner.popup: + cookie = request.COOKIES.get(banner.cookie) + if cookie: + continue # check by theme banner_theme_ids = [str(theme.id) for theme in banner.theme.all()] if banner_theme_ids: diff --git a/expobanner/views.py b/expobanner/views.py index 99135b27..512292e0 100644 --- a/expobanner/views.py +++ b/expobanner/views.py @@ -42,9 +42,10 @@ def get_banners(request): group_banners = BannerGroup.cached.group_banners() result = [] + set_cookie = None # get banners for all groups for group, banners in group_banners.iteritems(): - banner = get_banner_by_params(banners, good_urls, params) + banner = get_banner_by_params(banners, good_urls, params, request) if banner: if banner.html: text = banner.text @@ -66,10 +67,14 @@ def get_banners(request): 'alt': alt, 'text': text }) + if banner.popup: + set_cookie = banner.cookie # add view log banner.log(request, 1) - - return HttpResponse(json.dumps(result, indent=4), content_type='application/json') + response = HttpResponse(json.dumps(result, indent=4), content_type='application/json') + if set_cookie: + response.set_cookie(set_cookie, 1) + return response def get_top(request): params = {'theme': request.GET.getlist('theme', []), diff --git a/templates/client/blank.html b/templates/client/blank.html index 1be9b75a..19a075c1 100644 --- a/templates/client/blank.html +++ b/templates/client/blank.html @@ -136,6 +136,7 @@ This template include basic anf main styles and js files, {% endif %} {% include 'client/popups/callback.html' %} + {% include 'client/includes/banners/popup.html' %} {% block popup_banner %} {% if not request.COOKIES.popover_test1 %} {% if theme_for_filter %}