banner statistic period search

remotes/origin/1203
Ivan Kovalkovskyi 11 years ago
parent 515073c6ea
commit dde59aee55
  1. 37
      expobanner/admin.py
  2. 31
      templates/admin/expobanner/banner_stat.html
  3. 36
      templates/admin/expobanner/main_stat.html
  4. 31
      templates/admin/expobanner/paid_stat.html
  5. 6
      templates/client/blank.html
  6. 2
      templates/client/exposition/exposition_detail.html
  7. 28
      templates/client/includes/conference/default_description.html
  8. 54
      templates/client/includes/exposition/default_description.html

@ -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
# ------------------------------------

@ -1,5 +1,6 @@
{% extends 'base.html' %}
{% load static %}
{% load i18n %}
{% block scripts %}
<script src="{% static 'js/jquery.dataTables.min.js' %}"></script>
{% endblock %}
@ -12,6 +13,20 @@
<h2><i class="icon-align-justify"></i> {{ object }} (Пароль: {{ object.stat_pswd }})</h2>
</div>
<div class="box-content">
<!-- date filter -->
<div class="row-fluid">
<form class = "form-inline" method="get" >
<div class="form-group ">
<label class="control-label" for="id_date_from"> {% trans "с: " %}</label>
<input class="form-control" type="text" name="date_from" id="id_date_from">
<label for="id_date_to" >{% trans "по: " %}</label>
<input class="form-control" type="text" name="date_to" id="id_date_to" >
<button class="btn btn-primary" type="submit" >{% trans "Фильтровать" %}</button>
</div>
</form>
</div>
<!-- end date filter -->
<table class="table table-striped table-bordered bootstrap-datatable datatable">
<thead>
<tr>
@ -23,7 +38,7 @@
</tr>
</thead>
<tbody>
{% with stats=object.banner_stat.all %}
{% with stats=stats %}
{% for stat in stats %}
<tr>
<td>{{ stat.date|date:"Y-m-d" }}</td>
@ -39,5 +54,19 @@
</div>
</div>
</div>
<script>
console.log("down");
$('#id_date_from').datetimepicker({
todayHighlight: true,
format : 'dd.mm.yyyy',
minView:2
});
$('#id_date_to').datetimepicker({
todayHighlight: true,
format : 'dd.mm.yyyy',
minView:2
});
console.log("1");
</script>
{% endblock %}

@ -1,7 +1,14 @@
{% extends 'admin/base.html' %}
{% load static %}
{% load i18n %}
{% block scripts %}
<script src="{% static 'js/jquery.dataTables.min.js' %}"></script>
{# datetimepicker #}
<script type="text/javascript">
console.log("2");
</script>
<script src="{% static 'js/jquery.dataTables.min.js' %}"></script>
{% endblock %}
@ -16,6 +23,19 @@
<div class="span8">Линк на статистику: <b>{{ request.get_host }}/expo-b/banner/{{ object.link.id }}/stat/</b></div>
<div class="span4">Пароль: <b>{{ object.link.stat_pswd }}</b></div>
</div>
<!-- date filter -->
<div class="row-fluid">
<form class = "form-inline" method="get" >
<div class="form-group ">
<label class="control-label" for="id_date_from"> {% trans "с: " %}</label>
<input class="form-control" type="text" name="date_from" id="id_date_from">
<label for="id_date_to" >{% trans "по: " %}</label>
<input class="form-control" type="text" name="date_to" id="id_date_to" >
<button class="btn btn-primary" type="submit" >{% trans "Фильтровать" %}</button>
</div>
</form>
</div>
<!-- end date filter -->
<table class="table table-striped table-bordered bootstrap-datatable datatable">
<thead>
<tr>
@ -52,5 +72,19 @@
</div>
</div>
</div>
<script>
console.log("down");
$('#id_date_from').datetimepicker({
todayHighlight: true,
format : 'dd.mm.yyyy',
minView:2
});
$('#id_date_to').datetimepicker({
todayHighlight: true,
format : 'dd.mm.yyyy',
minView:2
});
console.log("1");
</script>
{% endblock %}

@ -1,4 +1,5 @@
{% extends 'base.html' %}
{% load i18n %}
{% load static %}
{% block scripts %}
<script src="{% static 'js/jquery.dataTables.min.js' %}"></script>
@ -16,6 +17,20 @@
<div class="span8">Линк на статистику: <b>{{ request.get_host }}/expo-b/paid/{{ object.id }}/stat/</b></div>
<div class="span4">Пароль: <b>{{ object.stat_pswd }}</b></div>
</div>
<!-- date filter -->
<div class="row-fluid">
<form class = "form-inline" method="get" >
<div class="form-group ">
<label class="control-label" for="id_date_from"> {% trans "с: " %}</label>
<input class="form-control" type="text" name="date_from" id="id_date_from">
<label for="id_date_to" >{% trans "по: " %}</label>
<input class="form-control" type="text" name="date_to" id="id_date_to" >
<button class="btn btn-primary" type="submit" >{% trans "Фильтровать" %}</button>
</div>
</form>
</div>
<!-- end date filter -->
<table class="table table-striped table-bordered bootstrap-datatable datatable">
<thead>
<tr>
@ -34,7 +49,7 @@
<td>{{ all.participation}}</td>
<td>{{ all.catalog }}</td>
</tr>
{% with stats=object.paidstat_set.all %}
{% with stats=stats %}
{% for stat in stats %}
<tr>
<td>{{ stat.date|date:"Y-m-d" }}</td>
@ -50,5 +65,19 @@
</div>
</div>
</div>
<script>
console.log("down");
$('#id_date_from').datetimepicker({
todayHighlight: true,
format : 'dd.mm.yyyy',
minView:2
});
$('#id_date_to').datetimepicker({
todayHighlight: true,
format : 'dd.mm.yyyy',
minView:2
});
console.log("1");
</script>
{% endblock %}

@ -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');</script>
<!-- End Google Tag Manager -->
<style>
.text-indent-1-5em {
text-indent: 1.5em
}
</style>
</head>

@ -1,4 +1,4 @@
{% extends 'base_catalog.html' %}
{% extends 'client/base_catalog.html' %}
{% load i18n %}
{% load template_filters %}

@ -1,21 +1,21 @@
{% load i18n %}
<div class="ied-text">
Конференция {{conf.name}} проходит {% include 'client/includes/show_date_block.html' with obj=conf %} в городе {{conf.city.name}}, {{conf.country.name}}.
{% blocktrans with name=conf.name%}
<p class="text-indent-1-5em">Конференция {{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 месяца до начала конференции.
<br/>
<p><b>Ваши деловые контакты на {{conf.name}} </b></p>
<br/>
Добавьте конференцию {{conf.name}} в расписание, чтобы не потерять важное событие,
Деловая программа {{name}} разбита на секции по дням и размещается на сайте мероприятия с подробным списком
докладчиков конференции. Спикеров конференции {{name}} обычно окончательно утверждают за 1-2 месяца до начала конференции.</p>
<h3>Ваши деловые контакты на {{name}} </h3>
<p class="text-indent-1-5em">Добавьте конференцию {{name}} в расписание, чтобы не потерять важное событие,
где встречаются профессионалы нужной Вам отрасли. Создавайте свой календарь мероприятий, просто нажав кнопку
"Добавить в календарь".
<br/>
<p><b>Планируете самостоятельную поездку на {{conf.name}} ? </b></p>
<br/>
Если Вам требуется размещение, мы рекомендуем посмотреть отели и цены в период проведения конференции <a href="http://www.booking.com/searchresults.html?aid=333667&city={{ conf.city.id }}&do_availability_check=on&label=conf_search&lang={{ request.LANGUAGE_CODE }}&checkin_monthday={{ conf.data_begin|date:'j' }}&checkin_year_month={{ conf.data_begin|date:'Y' }}-{{ conf.data_begin|date:'n' }}&checkout_monthday={{ conf.data_end|date:'j' }}&checkout_year_month={{ conf.data_end|date:'Y' }}-{{ conf.data_end|date:'n' }}">здесь</a>.
"Добавить в календарь".</p>
<h3>Планируете самостоятельную поездку на {{name}} ? </h3>
<p class="text-indent-1-5em">Если Вам требуется размещение, мы рекомендуем посмотреть отели и цены в период проведения конференции <a href="http://www.booking.com/searchresults.html?aid=333667&city={{ id }}&do_availability_check=on&label=conf_search&lang={{ code }}&checkin_monthday={{ date1 }}&checkin_year_month={{ date2 }}-{{ date3 }}&checkout_monthday={{ date4 }}&checkout_year_month={{ date5 }}-{{ date6 }}">здесь</a>.
Не забудьте проверить место и даты конференции на официальном сайте и в календаре организатора. Событие могут перенести,
отменить, объединить с проектом схожей тематики. Expomap не несет ответственности за неточности
предоставляемой информации.
Есть вопрос по участию в {{conf.name}} ? Ответим по тел. <b>+7 (499) 999-12-07</b>
Есть вопрос по участию в {{name}} ? Ответим по тел. <b>+7 (499) 999-12-07</b></p>
{% endblocktrans %}
</div>

@ -1,24 +1,34 @@
{% load i18n %}
<div class="ied-text">
Выставка {{expo.name}} проводится {% include 'client/includes/show_date_block.html' with obj=expo %} в городе {{expo.city.name}}, {{expo.country.name}}.
Экспонируемые продукты и разделы выставки Вы можете посмотреть ниже, в блоке <a href="#additional">«Дополнительная информация».</a>
Полный список участников {{expo.name}} размещается на официальном сайте выставки и постоянно обновляется.
Там же Вы сможете найти экспонентов предыдущего года. Деловая программа {{expo.name}} обычно публикуется ближе к
началу события.
<br/>
<p><b>Ваш личный календарь</b></p>
<br/>
Добавьте выставку {{expo.name}} в расписание, чтобы не потерять важное событие. Создавайте свой календарь мероприятий,
просто нажав кнопку Добавить в календарь.
<br/>
<p> <b>Планируете самостоятельную поездку на {{expo.name}}?</b></p>
<br/>
Мы рекомендуем посмотреть отели и цены в период проведения выставки <a href="http://www.booking.com/searchresults.html?aid=333667&city={{ expo.city.id }}&do_availability_check=on&label=expo_search&lang={{ request.LANGUAGE_CODE }}&checkin_monthday={{ expo.data_begin|date:'j' }}&checkin_year_month={{ expo.data_begin|date:'Y' }}-{{ expo.data_begin|date:'n' }}&checkout_monthday={{ expo.data_end|date:'j' }}&checkout_year_month={{ expo.data_end|date:'Y' }}-{{ expo.data_end|date:'n' }}">здесь</a> .
{% if expo.place %}
Как добраться до выставочного центра {{expo.place.name}} можно посмотреть
<a href="/places/{{expo.place.url}}">здесь</a>.
{% endif %}
Не забудьте проверить место и даты выставки на официальном сайте и в календаре выставочного комплекса.
Событие могут перенести, отменить, объединить с проектом схожей тематики.
Expomap не несет ответственности за неточности предоставляемой информации.
Есть вопрос о посещении или участии в {{ expo.name }}? Ответим по тел. <b>+7 (499) 999-12-07</b>
{% blocktrans with name=expo.name %}
<p class="text-indent-1-5em">Выставка {{ 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' %}
Экспонируемые продукты и разделы выставки Вы можете посмотреть ниже, в блоке
<a href="#additional">«Дополнительная информация».</a>
Полный список участников {{ name }} размещается на официальном сайте выставки и постоянно обновляется.
Там же Вы сможете найти экспонентов предыдущего года. Деловая программа {{ name }} обычно публикуется ближе к
началу события.</p>
<h3>Ваш личный календарь</h3>
<p class="text-indent-1-5em">Добавьте выставку {{ name }} в <a href="/profile/calendar/">календарь</a>, чтобы не
потерять важное событие. Создавайте свой календарь мероприятий,
просто нажав кнопку Добавить в календарь.</p>
<h3>Планируете самостоятельную поездку на {{ name }}?</h3>
<p class="text-indent-1-5em">Мы рекомендуем посмотреть отели и цены в период проведения выставки
<a href="http://www.booking.com/searchresults.html?aid=333667&city={{ id }}&do_availability_check=on&label=expo_search&lang={{ code }}&checkin_monthday={{ date1 }}&checkin_year_month={{ date2 }}-{{ date3 }}&checkout_monthday={{ date4 }}&checkout_year_month={{ date5 }}-{{ date6 }}">здесь</a>.
{% endblocktrans %}{% if expo.place %}
{% blocktrans with name=expo.place.name url=expo.place.url %}Как добраться до выставочного центра {{ name }} можно
посмотреть
<a href="/places/{{ url }}">здесь</a>.{% endblocktrans %}
{% endif %}
{% blocktrans with name=expo.name %}
Не забудьте проверить место и даты выставки на официальном сайте и в календаре выставочного комплекса.
Событие могут перенести, отменить, объединить с проектом схожей тематики.
Expomap не несет ответственности за неточности предоставляемой информации.
Есть вопрос о посещении или участии в {{ name }}? Ответим по тел. <b>+7 (499) 999-12-07</b></p>
{% endblocktrans %}
</div>
Loading…
Cancel
Save