Skip to content

Commit 8aaa78c

Browse files
committed
Remove SensorDataStat
1 parent 5c7ed41 commit 8aaa78c

File tree

12 files changed

+72
-237
lines changed

12 files changed

+72
-237
lines changed

sensorsafrica/admin.py

Lines changed: 1 addition & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from django.utils.html import format_html
33
from django.conf.urls import include, url
44
from django.template.response import TemplateResponse
5-
from .api.models import LastActiveNodes, SensorDataStat, City
5+
from .api.models import LastActiveNodes, City
66
from django.db.models import Q
77

88
from feinstaub.sensors.admin import (
@@ -77,57 +77,6 @@ def delete_model(self, request, obj):
7777
def save_related(self, request, form, formsets, change):
7878
pass
7979

80-
81-
@admin.register(SensorDataStat)
82-
class SensorDataStatAdmin(admin.ModelAdmin):
83-
readonly_fields = [
84-
"node",
85-
"sensor",
86-
"location",
87-
"city_slug",
88-
"value_type",
89-
"average",
90-
"maximum",
91-
"minimum",
92-
"timestamp",
93-
]
94-
search_fields = ["city_slug", "value_type"]
95-
list_display = [
96-
"node",
97-
"sensor",
98-
"location",
99-
"city_slug",
100-
"value_type",
101-
"average",
102-
"maximum",
103-
"minimum",
104-
"timestamp",
105-
"created",
106-
"modified",
107-
]
108-
list_filter = ["timestamp", "node", "sensor", "location"]
109-
110-
def get_actions(self, request):
111-
actions = super(SensorDataStatAdmin, self).get_actions(request)
112-
del actions["delete_selected"]
113-
return actions
114-
115-
def has_add_permission(self, request):
116-
return False
117-
118-
def has_delete_permission(self, request, obj=None):
119-
return False
120-
121-
def save_model(self, request, obj, form, change):
122-
pass
123-
124-
def delete_model(self, request, obj):
125-
pass
126-
127-
def save_related(self, request, form, formsets, change):
128-
pass
129-
130-
13180
@admin.register(City)
13281
class CityAdmin(admin.ModelAdmin):
13382
search_fields = ["slug", "name", "country"]

sensorsafrica/api/models.py

Lines changed: 12 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,18 @@
55

66

77
class City(TimeStampedModel):
8-
slug = models.CharField(max_length=255, db_index=True, null=False, blank=False)
9-
name = models.CharField(max_length=255, db_index=True, null=False, blank=False)
10-
country = models.CharField(max_length=255, db_index=True, null=False, blank=False)
11-
location = models.CharField(max_length=255, db_index=True, null=False, blank=False)
12-
latitude = models.DecimalField(max_digits=14, decimal_places=11, null=True, blank=True)
13-
longitude = models.DecimalField(max_digits=14, decimal_places=11, null=True, blank=True)
8+
slug = models.CharField(
9+
max_length=255, db_index=True, null=False, blank=False)
10+
name = models.CharField(
11+
max_length=255, db_index=True, null=False, blank=False)
12+
country = models.CharField(
13+
max_length=255, db_index=True, null=False, blank=False)
14+
location = models.CharField(
15+
max_length=255, db_index=True, null=False, blank=False)
16+
latitude = models.DecimalField(
17+
max_digits=14, decimal_places=11, null=True, blank=True)
18+
longitude = models.DecimalField(
19+
max_digits=14, decimal_places=11, null=True, blank=True)
1420

1521
class Meta:
1622
verbose_name_plural = "Cities"
@@ -20,36 +26,6 @@ def save(self, *args, **kwargs):
2026
return super(City, self).save(*args, **kwargs)
2127

2228

23-
class SensorDataStat(TimeStampedModel):
24-
node = models.ForeignKey(Node)
25-
sensor = models.ForeignKey(Sensor)
26-
location = models.ForeignKey(SensorLocation)
27-
28-
city_slug = models.CharField(max_length=255, db_index=True, null=False, blank=False)
29-
value_type = models.CharField(max_length=255, db_index=True, null=False, blank=False)
30-
31-
average = models.FloatField(null=False, blank=False)
32-
maximum = models.FloatField(null=False, blank=False)
33-
minimum = models.FloatField(null=False, blank=False)
34-
35-
# Number of data points averaged
36-
sample_size = models.IntegerField(null=False, blank=False)
37-
# Last datetime of calculated stats
38-
last_datetime = models.DateTimeField()
39-
40-
timestamp = models.DateTimeField()
41-
42-
def __str__(self):
43-
return "%s %s %s avg=%s min=%s max=%s" % (
44-
self.timestamp,
45-
self.city_slug,
46-
self.value_type,
47-
self.average,
48-
self.minimum,
49-
self.maximum,
50-
)
51-
52-
5329
class LastActiveNodes(TimeStampedModel):
5430
node = models.ForeignKey(Node)
5531
location = models.ForeignKey(SensorLocation)

sensorsafrica/api/v2/router.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
data_router = routers.DefaultRouter()
77

8-
data_router.register(r"", SensorDataStatView)
8+
data_router.register(r"", SensorDataStatView, basename="sensor_data_stat_view")
99

1010
city_router = routers.DefaultRouter()
1111

sensorsafrica/api/v2/serializers.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,6 @@
11
from rest_framework import serializers
22

33

4-
class SensorDataStatSerializer(serializers.Serializer):
5-
average = serializers.FloatField()
6-
minimum = serializers.FloatField()
7-
maximum = serializers.FloatField()
8-
value_type = serializers.CharField(max_length=200)
9-
start_datetime = serializers.DateTimeField()
10-
end_datetime = serializers.DateTimeField()
11-
city_slug = serializers.CharField(max_length=200)
12-
13-
144
class RawSensorDataStatSerializer(serializers.Serializer):
155
average = serializers.SerializerMethodField()
166
minimum = serializers.SerializerMethodField()

sensorsafrica/api/v2/views.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
from django.db import connection
1515

16-
from ..models import SensorDataStat, LastActiveNodes, City, Node
16+
from ..models import LastActiveNodes, City, Node
1717
from .serializers import RawSensorDataStatSerializer, CitySerializer
1818

1919
from feinstaub.sensors.views import StandardResultsSetPagination
@@ -101,7 +101,6 @@ def get_paginated_response(self, data_stats):
101101

102102

103103
class SensorDataStatView(mixins.ListModelMixin, viewsets.GenericViewSet):
104-
queryset = SensorDataStat.objects.none()
105104
serializer_class = RawSensorDataStatSerializer
106105
pagination_class = CustomPagination
107106

sensorsafrica/management/commands/calculate_data_statistics.py

Lines changed: 0 additions & 95 deletions
This file was deleted.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# -*- coding: utf-8 -*-
2+
# Generated by Django 1.11.27 on 2020-02-11 12:24
3+
from __future__ import unicode_literals
4+
5+
from django.db import migrations
6+
7+
8+
class Migration(migrations.Migration):
9+
10+
dependencies = [
11+
('sensorsafrica', '0004_auto_20190509_1145'),
12+
]
13+
14+
operations = [
15+
migrations.RemoveField(
16+
model_name='sensordatastat',
17+
name='location',
18+
),
19+
migrations.RemoveField(
20+
model_name='sensordatastat',
21+
name='node',
22+
),
23+
migrations.RemoveField(
24+
model_name='sensordatastat',
25+
name='sensor',
26+
),
27+
migrations.DeleteModel(
28+
name='SensorDataStat',
29+
),
30+
]

sensorsafrica/settings.py

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,11 @@
9797
# Database
9898
# https://docs.djangoproject.com/en/1.10/ref/settings/#databases
9999

100-
DATABASE_URL = os.getenv(
101-
"SENSORSAFRICA_DATABASE_URL",
102-
"postgres://sensorsafrica:sensorsafrica@localhost:5432/sensorsafrica",
103-
)
100+
DATABASE_URL = "postgres://htools:EFiNop6PMKBbeE6@cfa-general.cfgmtx8ishfx.eu-west-1.rds.amazonaws.com:54321/htools-airquality-api"
101+
# os.getenv(
102+
# "SENSORSAFRICA_DATABASE_URL",
103+
# "postgres://sensorsafrica:sensorsafrica@localhost:5432/sensorsafrica",
104+
# )
104105
DATABASES = {"default": dj_database_url.parse(DATABASE_URL)}
105106

106107

@@ -152,10 +153,6 @@
152153
CELERY_IGNORE_RESULT = True
153154

154155
CELERY_BEAT_SCHEDULE = {
155-
"statistics-task": {
156-
"task": "sensorsafrica.tasks.calculate_data_statistics",
157-
"schedule": crontab(hour="*", minute=0)
158-
},
159156
"archive-task": {
160157
"task": "sensorsafrica.tasks.archive_data",
161158
"schedule": crontab(hour="*", minute=0)

sensorsafrica/tasks.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,6 @@
22
from django.core.management import call_command
33

44

5-
@shared_task
6-
def calculate_data_statistics():
7-
call_command("calculate_data_statistics")
8-
9-
105
@shared_task
116
def archive_data():
127
call_command("upload_to_ckan")

sensorsafrica/tests/conftest.py

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -203,14 +203,7 @@ def datavalues(sensors, sensordata):
203203

204204

205205
@pytest.fixture
206-
def sensorsdatastats(datavalues):
207-
from django.core.management import call_command
208-
209-
call_command("calculate_data_statistics")
210-
211-
212-
@pytest.fixture
213-
def additional_sensorsdatastats(sensors, locations, sensorsdatastats):
206+
def additional_sensorsdatastats(sensors, locations):
214207
sensordata = SensorData.objects.bulk_create([
215208
SensorData(sensor=sensors[0], location=locations[0]),
216209
SensorData(sensor=sensors[0], location=locations[0]),
@@ -224,13 +217,9 @@ def additional_sensorsdatastats(sensors, locations, sensorsdatastats):
224217
SensorDataValue(sensordata=sensordata[2], value="4", value_type="P2"),
225218
])
226219

227-
from django.core.management import call_command
228-
229-
call_command("calculate_data_statistics")
230-
231220

232221
@pytest.fixture
233-
def last_active(sensors, locations, sensorsdatastats):
222+
def last_active(sensors, locations):
234223
timestamps = [
235224
timezone.now(),
236225
timezone.now() + datetime.timedelta(minutes=2),

0 commit comments

Comments
 (0)