From 4a584cc99b3d764d67476035d505a6a1bc6b936d Mon Sep 17 00:00:00 2001 From: Nam Tran Date: Mon, 14 Sep 2020 11:46:34 -0500 Subject: [PATCH] templates for index and sensor pages --- sites/WeatherStation/HomeWeather/models.py | 5 ++++- .../templates/HomeWeather/index.html | 20 +++++++++++++++++++ .../templates/HomeWeather/sensor.html | 18 +++++++++++++++++ sites/WeatherStation/HomeWeather/urls.py | 7 ++++++- sites/WeatherStation/HomeWeather/views.py | 14 +++++++++++-- 5 files changed, 60 insertions(+), 4 deletions(-) create mode 100644 sites/WeatherStation/HomeWeather/templates/HomeWeather/index.html create mode 100644 sites/WeatherStation/HomeWeather/templates/HomeWeather/sensor.html diff --git a/sites/WeatherStation/HomeWeather/models.py b/sites/WeatherStation/HomeWeather/models.py index a7a7f36..fc78d19 100644 --- a/sites/WeatherStation/HomeWeather/models.py +++ b/sites/WeatherStation/HomeWeather/models.py @@ -3,13 +3,16 @@ from django.db import models # Create your models here. class Sensor(models.Model): name = models.CharField(max_length=20, default="bedroom-bme280-01") + location = models.CharField(max_length=128, default="somewhere") temperature_unit = models.CharField(max_length=5, default="C") pressure_unit = models.CharField(max_length=5, default="hPa") humidity_unit = models.CharField(max_length=5, default="%") def __str__(self): - return f"Sensor {self.name}, units are C (temperature), hPa (pressure) and % (humidity)" + return f"""Sensor {self.name}, at {self.location}, units are C + (temperature), hPa (pressure) and % (humidity)""" class Measurement(models.Model): + sensor = models.IntegerField(default=0) time = models.DateTimeField('timestamp', auto_now=True) temperature = models.FloatField(default=-400) humidity = models.FloatField(default=-1) diff --git a/sites/WeatherStation/HomeWeather/templates/HomeWeather/index.html b/sites/WeatherStation/HomeWeather/templates/HomeWeather/index.html new file mode 100644 index 0000000..56f5329 --- /dev/null +++ b/sites/WeatherStation/HomeWeather/templates/HomeWeather/index.html @@ -0,0 +1,20 @@ + + + + + + Home weather station + + + List of sensors + {% if sensor_list %} + + {% else %} +

No sensor is added yet.

+ {% endif %} + + diff --git a/sites/WeatherStation/HomeWeather/templates/HomeWeather/sensor.html b/sites/WeatherStation/HomeWeather/templates/HomeWeather/sensor.html new file mode 100644 index 0000000..ec48034 --- /dev/null +++ b/sites/WeatherStation/HomeWeather/templates/HomeWeather/sensor.html @@ -0,0 +1,18 @@ + + + + + + Sensor details + + + Sensor details + + + diff --git a/sites/WeatherStation/HomeWeather/urls.py b/sites/WeatherStation/HomeWeather/urls.py index 88a9cac..8f14f6f 100644 --- a/sites/WeatherStation/HomeWeather/urls.py +++ b/sites/WeatherStation/HomeWeather/urls.py @@ -3,5 +3,10 @@ from django.urls import path from . import views urlpatterns = [ - path('', views.index, name='index'), + # http://127.0.0.1:8000/home/ + path('', views.index, name='homeweather_home'), + # http://127.0.0.1:8000/home/sensor/0/ + path('sensor//', views.sensor, name='sensor'), + # http://127.0.0.1:8000/home/meas/0/1/ + path('meas///', views.measurement, name='meas'), ] diff --git a/sites/WeatherStation/HomeWeather/views.py b/sites/WeatherStation/HomeWeather/views.py index 9ce07dc..efa664e 100644 --- a/sites/WeatherStation/HomeWeather/views.py +++ b/sites/WeatherStation/HomeWeather/views.py @@ -1,6 +1,16 @@ -from django.shortcuts import render +from django.shortcuts import render, get_object_or_404 from django.http import HttpResponse +from .models import Sensor, Measurement # Create your views here. def index(request): - return HttpResponse("Home Weather") + sensor_list = Sensor.objects.order_by('id')[:5] + context = {'sensor_list': sensor_list} + return render(request, 'HomeWeather/index.html', context) + +def sensor(request, sensor): + s = get_object_or_404(Sensor, pk=sensor) + return render(request, 'HomeWeather/sensor.html', {"sensor": s}) + +def measurement(request, sensor, measurement): + return HttpResponse(f"Sensor {sensor}, measurement {measurement}")