diff --git a/devices/models.py b/devices/models.py index 8e9c969..9641685 100644 --- a/devices/models.py +++ b/devices/models.py @@ -7,6 +7,8 @@ from taggit.managers import TaggableManager from taggit.models import GenericUUIDTaggedItemBase, TaggedItemBase +from datetime import datetime, timedelta + class UUIDTaggedItem(GenericUUIDTaggedItemBase, TaggedItemBase): class Meta: @@ -71,7 +73,6 @@ def get_metrics(self): def get_metric_files(self): return self.metricstextfile_set.order_by("-time_uploaded")[:20] - def get_absolute_url(self): return reverse("device_detail", args=[str(self.id)]) @@ -129,6 +130,10 @@ class Category(models.TextChoices): device = models.OneToOneField(Device, on_delete=models.CASCADE, null=True) category = models.CharField(max_length=50, choices=Category.choices, default=Category.E) + @property + def device_name(self): + return self.device.device_id + @property def location_description(self): return location_category_information[self.category]['description'] @@ -147,11 +152,15 @@ def day_limit(self): @property def location_hourly_metrics(self): - return self.device.hourlyaggregate_set.order_by("-date") + return (self.device.hourlyaggregate_set + .filter(date__range=[datetime.today() - timedelta(days=2), datetime.today()]) + .order_by("-date")) @property def location_daily_metrics(self): - return self.device.dailyaggregate_set.order_by("-date") + return (self.device.dailyaggregate_set + .filter(date__range=[datetime.today() - timedelta(weeks=4), datetime.today()]) + .order_by("-date")) @property def location_recordings(self): diff --git a/devices/serializers.py b/devices/serializers.py index d4e5ecb..1b29d68 100644 --- a/devices/serializers.py +++ b/devices/serializers.py @@ -31,7 +31,7 @@ class LocationMetricsSerializer(serializers.ModelSerializer): class Meta: model = Location fields = [ - 'id', 'location_hourly_metrics', 'location_daily_metrics' + 'id', 'device_name', 'location_hourly_metrics', 'location_daily_metrics' ]