diff --git a/billard/admin.py b/billard/admin.py index f23d77c..b06774c 100644 --- a/billard/admin.py +++ b/billard/admin.py @@ -31,8 +31,8 @@ class LocationAdmin(admin.ModelAdmin): @admin.register(Client) class ClientAdmin(admin.ModelAdmin): - list_display = ('uuid', 'location', 'report_user') - fields = ['location', 'uuid', 'report_user'] + list_display = ('uuid', 'location', 'report_user', 'last_seen') + fields = ['location', 'uuid', 'report_user', 'last_seen'] @admin.register(LocationData) diff --git a/billard/migrations/0026_client_last_seen.py b/billard/migrations/0026_client_last_seen.py new file mode 100644 index 0000000..d716f52 --- /dev/null +++ b/billard/migrations/0026_client_last_seen.py @@ -0,0 +1,17 @@ +# Generated by Django 2.0.2 on 2018-02-11 11:10 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ('billard', '0025_auto_20180211_1059'), + ] + + operations = [ + migrations.AddField( + model_name='client', + name='last_seen', + field=models.DateTimeField(blank=True, null=True, verbose_name='Letzter Update'), + ), + ] diff --git a/billard/models.py b/billard/models.py index 45e7378..5ce0cde 100644 --- a/billard/models.py +++ b/billard/models.py @@ -52,6 +52,7 @@ class Client(models.Model): location = models.ForeignKey(Location, related_name="clients", verbose_name="Standort", on_delete=models.CASCADE) report_user = models.ForeignKey(User, blank=True, null=True, verbose_name="Reporting Benutzer", related_name='reporting_clients', on_delete=models.DO_NOTHING) + last_seen = models.DateTimeField(blank=True, null=True, verbose_name="Letzter Update") def __str__(self): return '{}, {}'.format(self.location.name, self.uuid) diff --git a/billard/templatetags/display_client.py b/billard/templatetags/display_client.py index e1616d5..d15f81a 100644 --- a/billard/templatetags/display_client.py +++ b/billard/templatetags/display_client.py @@ -1,4 +1,4 @@ -from datetime import datetime +from datetime import datetime, timedelta from django import template from django.utils.html import format_html @@ -34,6 +34,9 @@ def display_client(client, desk_no): prize = '{0:.2f}'.format(prize) if prize != a.prize: a.prize = prize + before5min = datetime.now() - timedelta(minutes=5) + if client.last_seen is not None and client.last_seen < before5min: + alert = 'alert-danger' html = '
\n' html += '
\n'.format(alert) html += '

({}) {}

\n'.format(desk_no, desk.name)