From dde59aee558bed05f27a9d5548c4dfdda7bd17b8 Mon Sep 17 00:00:00 2001 From: Ivan Kovalkovskyi Date: Wed, 23 Sep 2015 18:37:21 +0300 Subject: [PATCH] banner statistic period search --- expobanner/admin.py | 37 +++++++++++-- templates/admin/expobanner/banner_stat.html | 31 ++++++++++- templates/admin/expobanner/main_stat.html | 36 ++++++++++++- templates/admin/expobanner/paid_stat.html | 31 ++++++++++- templates/client/blank.html | 6 ++- .../client/exposition/exposition_detail.html | 2 +- .../conference/default_description.html | 28 +++++----- .../exposition/default_description.html | 54 +++++++++++-------- 8 files changed, 181 insertions(+), 44 deletions(-) diff --git a/expobanner/admin.py b/expobanner/admin.py index 0fe5c1bc..7d1bf1b1 100644 --- a/expobanner/admin.py +++ b/expobanner/admin.py @@ -110,6 +110,20 @@ class BannerStat(DetailView): model = Banner template_name = 'admin/expobanner/banner_stat.html' + def get_context_data(self, **kwargs): + context = super(BannerStat, self).get_context_data(**kwargs) + obj = self.object + qs = obj.banner_stat.all() + date_from, date_to = self.request.GET.get('date_from'), self.request.GET.get('date_to') + if date_from: + date_from = datetime.strptime(date_from, "%d.%m.%Y") + qs = qs.filter(date__gt=date_from) + if date_to: + date_to = datetime.strptime(date_to, "%d.%m.%Y") + qs = qs.filter(date__lt=date_to) + context['stats'] = qs + return context + class PaidList(ListView): model = Exposition @@ -177,9 +191,17 @@ class PaidStat(DetailView): participation=Sum('participation_clicks'), catalog=Sum('catalog_clicks') ) + qs = obj.paidstat_set.all() + date_from, date_to = self.request.GET.get('date_from'), self.request.GET.get('date_to') + if date_from: + date_from = datetime.strptime(date_from, "%d.%m.%Y") + qs = qs.filter(date__gt=date_from) + if date_to: + date_to = datetime.strptime(date_to, "%d.%m.%Y") + qs = qs.filter(date__lt=date_to) + context['stats'] = qs return context - # ---------------------------------- class MainList(ListView): model = Exposition @@ -222,7 +244,7 @@ def main_turn(request, pk, status): main.save() return HttpResponseRedirect('/admin/expobanners/main/list/') - +from datetime import datetime class MainStat(DetailView): model = MainPage @@ -231,13 +253,22 @@ class MainStat(DetailView): def get_context_data(self, **kwargs): context = super(MainStat, self).get_context_data(**kwargs) obj = self.object - context['stats'] = obj.link.banner_stat.all() + context['all'] = obj.link.banner_stat.aggregate( views=Sum('view'), clicks=Sum('click'), unique_clicks=Sum('unique_click'), unique_views=Sum('unique_view') ) + qs = obj.link.banner_stat.all() + date_from, date_to = self.request.GET.get('date_from'), self.request.GET.get('date_to') + if date_from: + date_from = datetime.strptime(date_from, "%d.%m.%Y") + qs = qs.filter(date__gt=date_from) + if date_to: + date_to = datetime.strptime(date_to, "%d.%m.%Y") + qs = qs.filter(date__lt=date_to) + context['stats'] = qs return context # ------------------------------------ diff --git a/templates/admin/expobanner/banner_stat.html b/templates/admin/expobanner/banner_stat.html index 15d51bc2..6de23537 100644 --- a/templates/admin/expobanner/banner_stat.html +++ b/templates/admin/expobanner/banner_stat.html @@ -1,5 +1,6 @@ {% extends 'base.html' %} {% load static %} +{% load i18n %} {% block scripts %} {% endblock %} @@ -12,6 +13,20 @@

{{ object }} (Пароль: {{ object.stat_pswd }})

+ + +
+
+
+ + + + + +
+
+
+ @@ -23,7 +38,7 @@ - {% with stats=object.banner_stat.all %} + {% with stats=stats %} {% for stat in stats %} @@ -39,5 +54,19 @@ + {% endblock %} \ No newline at end of file diff --git a/templates/admin/expobanner/main_stat.html b/templates/admin/expobanner/main_stat.html index 6c593bb7..d186b92f 100644 --- a/templates/admin/expobanner/main_stat.html +++ b/templates/admin/expobanner/main_stat.html @@ -1,7 +1,14 @@ {% extends 'admin/base.html' %} {% load static %} +{% load i18n %} {% block scripts %} - + {# datetimepicker #} + + + {% endblock %} @@ -16,6 +23,19 @@
Линк на статистику: {{ request.get_host }}/expo-b/banner/{{ object.link.id }}/stat/
Пароль: {{ object.link.stat_pswd }}
+ +
+
+
+ + + + + +
+ +
+
{{ stat.date|date:"Y-m-d" }}
@@ -52,5 +72,19 @@ + {% endblock %} \ No newline at end of file diff --git a/templates/admin/expobanner/paid_stat.html b/templates/admin/expobanner/paid_stat.html index 86bbc620..1d0244ea 100644 --- a/templates/admin/expobanner/paid_stat.html +++ b/templates/admin/expobanner/paid_stat.html @@ -1,4 +1,5 @@ {% extends 'base.html' %} +{% load i18n %} {% load static %} {% block scripts %} @@ -16,6 +17,20 @@
Линк на статистику: {{ request.get_host }}/expo-b/paid/{{ object.id }}/stat/
Пароль: {{ object.stat_pswd }}
+ + +
+
+
+ + + + + +
+ +
+
@@ -34,7 +49,7 @@ - {% with stats=object.paidstat_set.all %} + {% with stats=stats %} {% for stat in stats %} @@ -50,5 +65,19 @@ + {% endblock %} \ No newline at end of file diff --git a/templates/client/blank.html b/templates/client/blank.html index ee88ffa4..9d78fc79 100644 --- a/templates/client/blank.html +++ b/templates/client/blank.html @@ -89,7 +89,11 @@ This template include basic anf main styles and js files, '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-P5C6GR'); - + diff --git a/templates/client/exposition/exposition_detail.html b/templates/client/exposition/exposition_detail.html index f95b6dc3..4750c1c4 100644 --- a/templates/client/exposition/exposition_detail.html +++ b/templates/client/exposition/exposition_detail.html @@ -1,4 +1,4 @@ -{% extends 'base_catalog.html' %} +{% extends 'client/base_catalog.html' %} {% load i18n %} {% load template_filters %} diff --git a/templates/client/includes/conference/default_description.html b/templates/client/includes/conference/default_description.html index a6addeeb..255c9745 100644 --- a/templates/client/includes/conference/default_description.html +++ b/templates/client/includes/conference/default_description.html @@ -1,21 +1,21 @@ +{% load i18n %}
-Конференция {{conf.name}} проходит {% include 'client/includes/show_date_block.html' with obj=conf %} в городе {{conf.city.name}}, {{conf.country.name}}. +{% blocktrans with name=conf.name%} +

Конференция {{name}} проходит {% endblocktrans %}{% include 'client/includes/show_date_block.html' with obj=conf %} +{% blocktrans with city=conf.name country=country.name name=conf.name id=conf.city.id code=request.LANGUAGE_CODE date1=conf.data_begin|date:'j' date2=conf.data_begin|date:'Y' date3=conf.data_begin|date:'n' date4=conf.data_end|date:'j' date5=conf.data_end|date:'Y' date6=conf.data_end|date:'n' %} + в городе {{city}}, {{country}}. Посмотреть, как проехать в место проведения конференции, можно на сайте конгрессной площадки. -Деловая программа {{conf.name}} разбита на секции по дням и размещается на сайте мероприятия с подробным списком -докладчиков конференции. Спикеров конференции {{conf.name}} обычно окончательно утверждают за 1-2 месяца до начала конференции. -
-

Ваши деловые контакты на {{conf.name}}

-
-Добавьте конференцию {{conf.name}} в расписание, чтобы не потерять важное событие, +Деловая программа {{name}} разбита на секции по дням и размещается на сайте мероприятия с подробным списком +докладчиков конференции. Спикеров конференции {{name}} обычно окончательно утверждают за 1-2 месяца до начала конференции.

+

Ваши деловые контакты на {{name}}

+

Добавьте конференцию {{name}} в расписание, чтобы не потерять важное событие, где встречаются профессионалы нужной Вам отрасли. Создавайте свой календарь мероприятий, просто нажав кнопку - "Добавить в календарь". -
-

Планируете самостоятельную поездку на {{conf.name}} ?

-
-Если Вам требуется размещение, мы рекомендуем посмотреть отели и цены в период проведения конференции здесь. + "Добавить в календарь".

+

Планируете самостоятельную поездку на {{name}} ?

+

Если Вам требуется размещение, мы рекомендуем посмотреть отели и цены в период проведения конференции здесь. Не забудьте проверить место и даты конференции на официальном сайте и в календаре организатора. Событие могут перенести, отменить, объединить с проектом схожей тематики. Expomap не несет ответственности за неточности предоставляемой информации. -Есть вопрос по участию в {{conf.name}} ? Ответим по тел. +7 (499) 999-12-07 - +Есть вопрос по участию в {{name}} ? Ответим по тел. +7 (499) 999-12-07

+ {% endblocktrans %}
\ No newline at end of file diff --git a/templates/client/includes/exposition/default_description.html b/templates/client/includes/exposition/default_description.html index af30f614..f96b760e 100644 --- a/templates/client/includes/exposition/default_description.html +++ b/templates/client/includes/exposition/default_description.html @@ -1,24 +1,34 @@ +{% load i18n %}
- Выставка {{expo.name}} проводится {% include 'client/includes/show_date_block.html' with obj=expo %} в городе {{expo.city.name}}, {{expo.country.name}}. - Экспонируемые продукты и разделы выставки Вы можете посмотреть ниже, в блоке «Дополнительная информация». - Полный список участников {{expo.name}} размещается на официальном сайте выставки и постоянно обновляется. - Там же Вы сможете найти экспонентов предыдущего года. Деловая программа {{expo.name}} обычно публикуется ближе к - началу события. -
-

Ваш личный календарь

-
- Добавьте выставку {{expo.name}} в расписание, чтобы не потерять важное событие. Создавайте свой календарь мероприятий, - просто нажав кнопку Добавить в календарь. -
-

Планируете самостоятельную поездку на {{expo.name}}?

-
- Мы рекомендуем посмотреть отели и цены в период проведения выставки здесь . - {% if expo.place %} - Как добраться до выставочного центра {{expo.place.name}} можно посмотреть - здесь. - {% endif %} - Не забудьте проверить место и даты выставки на официальном сайте и в календаре выставочного комплекса. - Событие могут перенести, отменить, объединить с проектом схожей тематики. - Expomap не несет ответственности за неточности предоставляемой информации. - Есть вопрос о посещении или участии в {{ expo.name }}? Ответим по тел. +7 (499) 999-12-07 + {% blocktrans with name=expo.name %} +

Выставка {{ name }} проводится{% endblocktrans %} + {% include 'client/includes/show_date_block.html' with obj=expo %} + {% blocktrans with city=expo.city.name country=expo.country.name %} в городе {{ city }}, {{ country }} + .{% endblocktrans %} + {% blocktrans with name=expo.name id=expo.city.id code=request.LANGUAGE_CODE date1=expo.data_begin|date:'j' date2=expo.data_begin|date:'Y' date3=expo.data_begin|date:'n' date4=expo.data_end|date:'j' date5=expo.data_end|date:'Y' date6=expo.data_end|date:'n' %} + Экспонируемые продукты и разделы выставки Вы можете посмотреть ниже, в блоке + «Дополнительная информация». + Полный список участников {{ name }} размещается на официальном сайте выставки и постоянно обновляется. + Там же Вы сможете найти экспонентов предыдущего года. Деловая программа {{ name }} обычно публикуется ближе к + началу события.

+ +

Ваш личный календарь

+

Добавьте выставку {{ name }} в календарь, чтобы не + потерять важное событие. Создавайте свой календарь мероприятий, + просто нажав кнопку Добавить в календарь.

+ +

Планируете самостоятельную поездку на {{ name }}?

+

Мы рекомендуем посмотреть отели и цены в период проведения выставки + здесь. + {% endblocktrans %}{% if expo.place %} + {% blocktrans with name=expo.place.name url=expo.place.url %}Как добраться до выставочного центра {{ name }} можно + посмотреть + здесь.{% endblocktrans %} +{% endif %} + {% blocktrans with name=expo.name %} + Не забудьте проверить место и даты выставки на официальном сайте и в календаре выставочного комплекса. + Событие могут перенести, отменить, объединить с проектом схожей тематики. + Expomap не несет ответственности за неточности предоставляемой информации. + Есть вопрос о посещении или участии в {{ name }}? Ответим по тел. +7 (499) 999-12-07

+ {% endblocktrans %}
\ No newline at end of file
{{ all.participation}} {{ all.catalog }}
{{ stat.date|date:"Y-m-d" }}