7

Add visit count and days to segment overview

This commit is contained in:
Jasper Berghoef
2016-11-09 15:33:26 +01:00
parent b6c35e214a
commit b47cfd67cc
10 changed files with 108 additions and 7 deletions

View File

@ -0,0 +1,27 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.10.3 on 2016-11-09 13:35
from __future__ import unicode_literals
from django.db import migrations, models
import django.utils.timezone
class Migration(migrations.Migration):
dependencies = [
('personalisation', '0016_auto_20161109_1255'),
]
operations = [
migrations.AddField(
model_name='segment',
name='create_date',
field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now),
preserve_default=False,
),
migrations.AddField(
model_name='segment',
name='edit_date',
field=models.DateTimeField(auto_now=True),
),
]

View File

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.10.3 on 2016-11-09 14:29
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('personalisation', '0017_auto_20161109_1435'),
]
operations = [
migrations.AddField(
model_name='segment',
name='visit_count',
field=models.PositiveIntegerField(default=0),
),
]

View File

@ -6,18 +6,18 @@ from datetime import datetime
from django.db import models
from django.utils.encoding import python_2_unicode_compatible
from django.utils.translation import ugettext_lazy as _
from modelcluster.fields import ParentalKey
from modelcluster.models import ClusterableModel
from wagtail.wagtailadmin.edit_handlers import FieldPanel, InlinePanel
from wagtail.wagtailcore.models import Orderable
from wagtail.wagtailadmin.edit_handlers import FieldPanel
from polymorphic.models import PolymorphicModel
@python_2_unicode_compatible
class Segment(ClusterableModel):
"""Model for a new segment"""
name = models.CharField(max_length=255)
create_date = models.DateTimeField(auto_now_add=True)
edit_date = models.DateTimeField(auto_now=True)
visit_count = models.PositiveIntegerField(default=0)
STATUS_CHOICES = (
('enabled', 'Enabled'),
('disabled', 'Disabled'),

Binary file not shown.

After

Width:  |  Height:  |  Size: 794 B

View File

@ -64,6 +64,38 @@
}
}
.block_container .block .segment_stats {
list-style: none;
padding: 0;
margin: 0;
margin-bottom: 10px;
}
.block_container .block .segment_stats li {
display: inline-block;
font-size: 24px;
font-weight: bold;
margin-right: 50px;
}
.block_container .block .segment_stats li::last-child{
margin-right: 0;
}
.block_container .block .segment_stats li::before {
display: inline-block;
content: "";
width: 20px;
height: 20px;
margin-right: 5px;
background-size: 20px 20px;
}
.block_container .block .segment_stats .visit_stat::before {
background-image: url("./rocket_icon.png");
}
.block_container .block .segment_stats .days_stat::before {
background-image: url("./calendar_icon.png");
}
.block_container .block.suggestion .suggestive_text {
display: block;
position: absolute;
@ -75,3 +107,7 @@
font-size: 20px;
font-weight: 100;
}
.block_container .block.suggestion .suggestive_text:hover {
text-decoration: underline;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -1,5 +1,5 @@
{% extends "modeladmin/index.html" %}
{% load i18n staticfiles modeladmin_tags %}
{% load i18n staticfiles modeladmin_tags personalisation_filters %}
{% block content_main %}
<div>
@ -23,6 +23,10 @@
{% for segment in object_list %}
<div class="block">
<a href="inspect/{{ segment.pk }}"><h2>{{ segment }}</h2></a>
<ul class="segment_stats">
<li class="visit_stat">{{ segment.visit_count }}</li>
<li class="days_stat">{{ segment.create_date|days_since:segment.status }}</li>
</ul>
{% if user_can_create %}
<ul class="block_actions">
{% if segment.status == "disabled" %}

View File

@ -0,0 +1,13 @@
from django.utils import timezone
from django.template import Library
register = Library()
@register.filter(name='days_since')
def active_days(value, arg):
"""Returns the number of days the segment has been active"""
if arg == 'enabled':
delta = timezone.now() - value
return delta.days
return 0

View File

@ -1,5 +1,6 @@
from django.conf.urls import include, url
from wagtail.contrib.modeladmin.options import ModelAdmin, modeladmin_register
from wagtail.contrib.modeladmin.views import IndexView
from wagtail.wagtailcore import hooks
from personalisation import admin_urls
@ -22,10 +23,10 @@ class SegmentModelAdmin(ModelAdmin):
model = Segment
menu_icon = 'group'
add_to_settings_menu = False
list_display = ('status', 'name')
inspect_view_enabled = True
list_display = ('status', 'name', 'create_date', 'edit_date')
index_view_extra_css = ['personalisation/segment/index.css']
form_view_extra_css = ['personalisation/segment/form.css']
inspect_view_enabled = True
modeladmin_register(SegmentModelAdmin)