64 lines
1.6 KiB
Python
64 lines
1.6 KiB
Python
|
import calendar
|
||
|
|
||
|
import django_tables2 as tables
|
||
|
|
||
|
from .models import HIDEvent
|
||
|
|
||
|
|
||
|
class UnitTimeTable(tables.Table):
|
||
|
members = tables.columns.Column()
|
||
|
members_delta = tables.columns.TemplateColumn(
|
||
|
"{{ value|floatformat:2}}%", verbose_name="Δ Members"
|
||
|
)
|
||
|
access_count = tables.columns.Column()
|
||
|
access_count_delta = tables.columns.TemplateColumn(
|
||
|
"{{ value|floatformat:2}}%", verbose_name="Δ Access Count"
|
||
|
)
|
||
|
|
||
|
class Meta:
|
||
|
fields = ("members", "members_delta", "access_count", "access_count_delta")
|
||
|
|
||
|
|
||
|
class DeniedAccessTable(tables.Table):
|
||
|
name = tables.TemplateColumn(
|
||
|
"{{ record.forename|default:'' }} {{ record.surname|default:'' }}"
|
||
|
)
|
||
|
|
||
|
class Meta:
|
||
|
model = HIDEvent
|
||
|
|
||
|
fields = (
|
||
|
"timestamp",
|
||
|
"door",
|
||
|
"event_type",
|
||
|
"name",
|
||
|
"raw_card_number",
|
||
|
"decoded_card_number",
|
||
|
)
|
||
|
|
||
|
|
||
|
class MostActiveMembersTable(tables.Table):
|
||
|
name = tables.Column()
|
||
|
access_count = tables.Column()
|
||
|
|
||
|
|
||
|
class DetailByDayTable(tables.Table):
|
||
|
timestamp__date = tables.DateColumn(verbose_name="Date")
|
||
|
name = tables.Column()
|
||
|
access_count = tables.Column()
|
||
|
|
||
|
|
||
|
class BusiestDayOfWeekTable(tables.Table):
|
||
|
timestamp__week_day = tables.Column("Week Day")
|
||
|
events = tables.Column()
|
||
|
members = tables.Column()
|
||
|
|
||
|
def render_timestamp__week_day(self, value):
|
||
|
return calendar.day_name[(value - 2) % 7]
|
||
|
|
||
|
|
||
|
class BusiestTimeOfDayTable(tables.Table):
|
||
|
timestamp__hour = tables.TemplateColumn("{{ value }}:00", verbose_name="Hour")
|
||
|
events = tables.Column()
|
||
|
members = tables.Column()
|