Source code for apps.core.management.commands.seed

from django.core.management.base import BaseCommand
from apps.core.models.physical_unit import PhysicalUnit
from apps.core.models.area import Area
from apps.core.models.device import Device
from apps.core.models.device_type import DeviceType
from apps.core.models.device_type_sensor import DeviceTypeSensor
from apps.core.models.sensor import SensorEnum, Sensor
from django.contrib.auth.models import User




[docs]class Command(BaseCommand):
[docs] def handle(self, *args, **options): self.stdout.write('Seeding:') run_seed(self)
[docs]def run_seed(mode): ## add admin user - change this in production # mode.stdout.write('Creating admin...') # admin_name = 'admin' # admin_password = '7NF5ZWUgrRPLfsMs' # user = User.objects.create_user(username=admin_name, password=admin_password, is_superuser=True) # user.save() # mode.stdout.write('Done') # add physical units mode.stdout.write('Creating physical units..') unit_names = ['pocet','C', '%', 'uroven kvality'] for name in unit_names: ph_unit = PhysicalUnit(unit_name = name) ph_unit.save() mode.stdout.write('Done') # add area mode.stdout.write('Creating area...') area_office_name = 'poschodie_1' area_image = open('/home/app/backend-api/apps/core/management/commands/seed_documents/base64_1_poschodie.txt','r').read() area_1 = Area(office_name=area_office_name, image=area_image) area_1.save() mode.stdout.write('Done') # add device_type mode.stdout.write('Creating device_type [ESP32, Raspberry Pi]...') dev_type_name_1 = 'ESP32' dev_type_version_1 = 'esp_version' dev_type_description_1 = 'esp_description' dev_type_name_2 = 'Raspberry Pi' dev_type_version_2 = 'raspberry_pi_version' dev_type_description_2 = 'raspberry_pi_description#' device_type_1 = DeviceType(type_name=dev_type_name_1, default_version=dev_type_version_1, description=dev_type_description_1) device_type_2 = DeviceType(type_name=dev_type_name_2, default_version=dev_type_version_2, description=dev_type_description_2) device_type_1.save() device_type_2.save() mode.stdout.write('Done') # add device mode.stdout.write('Creating device [ESP_32]...') dev_battery_state = 100 dev_version = '1' dev_title = 'ESP_32' dev_ip_address = '192.168.100.1' device_1 = Device(type=device_type_1, battery_state=dev_battery_state, version=dev_version, title=dev_title, ip_address=dev_ip_address, area=area_1) device_1.save() mode.stdout.write('Done') #add sensor mode.stdout.write('Creating sensors [Temperature x 2, Humidity x 2, Occupancy x 2, AirQuality x 1]... ') sen_physical_unit_1 = PhysicalUnit.objects.get(unit_name='C') sen_physical_unit_2 = PhysicalUnit.objects.get(unit_name='%') sen_physical_unit_3 = PhysicalUnit.objects.get(unit_name='uroven kvality') sen_physical_unit_4 = PhysicalUnit.objects.get(unit_name='pocet') sensor_1 = Sensor(physical_unit=sen_physical_unit_1, sensor_type=SensorEnum.TEMP, device=device_1) sensor_2 = Sensor(physical_unit=sen_physical_unit_1, sensor_type=SensorEnum.TEMP, device=device_1) sensor_3 = Sensor(physical_unit=sen_physical_unit_2, sensor_type=SensorEnum.HUM, device=device_1) sensor_4 = Sensor(physical_unit=sen_physical_unit_2, sensor_type=SensorEnum.HUM, device=device_1) sensor_5 = Sensor(physical_unit=sen_physical_unit_4, sensor_type=SensorEnum.PPL_COUNTER, device=device_1) sensor_6 = Sensor(physical_unit=sen_physical_unit_4, sensor_type=SensorEnum.PPL_COUNTER, device=device_1) sensor_7 = Sensor(physical_unit=sen_physical_unit_3, sensor_type=SensorEnum.AIR, device=device_1) sensor_1.save() sensor_2.save() sensor_3.save() sensor_4.save() sensor_5.save() sensor_6.save() sensor_7.save() mode.stdout.write('Done')
# QUERY to delete seed except admin # delete from core_sensor where id is not null; delete from core_physicalunit where id is not null; DELETE FROM core_device where created_at BETWEEN NOW() - INTERVAL '24 HOURS' AND NOW() ;DELETE from core_devicetype where created_at BETWEEN now() - INTERVAL '24 HOURS' AND NOW(); DELETE from core_area where created_at BETWEEN now() - INTERVAL '24 HOURS' AND NOW();