Show errors in time ago format

This commit is contained in:
George Lacey 2021-05-08 23:17:26 +01:00
parent ce66431a01
commit cf099292fe
4 changed files with 18 additions and 3 deletions

View File

@ -1,8 +1,14 @@
from django.db import models from django.db import models
from . import Label from . import Label
from ..utility.time import time_ago
from datetime import datetime
class Error(models.Model): class Error(models.Model):
label = models.ForeignKey(Label, on_delete=models.CASCADE, related_name='errors') label = models.ForeignKey(Label, on_delete=models.CASCADE, related_name='errors')
error = models.TextField() error = models.TextField()
time = models.DateTimeField() time = models.DateTimeField()
def time_ago(self):
return f"{time_ago(self.time, False, True)} ago"

View File

@ -1,7 +1,7 @@
div { div {
padding: 8px; padding: 8px;
margin: 8px; margin: 8px;
background: lightblue; background: lightskyblue;
} }
dl { dl {

View File

@ -36,9 +36,9 @@
<dt class="col-sm-9 h4">Recent errors:</dt> <dt class="col-sm-9 h4">Recent errors:</dt>
</dl> </dl>
{% endif %} {% endif %}
<dl class="row"> <dl class="row ml-1">
{% for error in repo.recent_errors %} {% for error in repo.recent_errors %}
<dt class="col-sm-4">{{ error.time|date:'d-m-Y H:i' }}</dt> <dt class="col-sm-4">{{ error.time_ago }}</dt>
<dd class="col-sm-8 text-truncate">{{ error.error }}</dd> <dd class="col-sm-8 text-truncate">{{ error.error }}</dd>
{% endfor %} {% endfor %}
</dl> </dl>

View File

@ -1,3 +1,12 @@
from datetime import datetime
def time_ago(time: datetime, short=False, truncate=False):
seconds = int((datetime.utcnow() - time).total_seconds())
return seconds_to_string(seconds, short=short, truncate=truncate)
def seconds_to_string(seconds: int, short=False, truncate=False): def seconds_to_string(seconds: int, short=False, truncate=False):
seconds = int(seconds) seconds = int(seconds)
increments = [('year', 'yr', 31557600), increments = [('year', 'yr', 31557600),