build 4.6 Demo
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
"""Seed the IoT PreTester 4.6 Demo reference data."""
|
||||
|
||||
import os
|
||||
|
||||
import django
|
||||
from django.db import transaction
|
||||
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "IoTPreTester.settings")
|
||||
django.setup()
|
||||
|
||||
from IoTAnalyzer.models import Device, DeviceType, Manufacturer, Product # noqa: E402
|
||||
|
||||
|
||||
DEVICE_TYPES = (
|
||||
"Camera",
|
||||
"Smart Plug",
|
||||
"Smart Bulb",
|
||||
"Smart Switch",
|
||||
"Robot Vacuum Cleaner",
|
||||
"Smart Lock",
|
||||
"Smart Controller",
|
||||
"Sensor",
|
||||
)
|
||||
|
||||
MANUFACTURERS = (
|
||||
"Aqara",
|
||||
"Dreame",
|
||||
"DJI",
|
||||
"IKEA",
|
||||
"Nuki",
|
||||
"Philips Hue",
|
||||
"Roborock",
|
||||
"Shelly",
|
||||
"Sonoff",
|
||||
"TP-Link",
|
||||
"X-Sense",
|
||||
)
|
||||
|
||||
|
||||
@transaction.atomic
|
||||
def populate_database() -> None:
|
||||
"""Create stable reference rows and one sample device without duplicates."""
|
||||
for name in DEVICE_TYPES:
|
||||
DeviceType.objects.get_or_create(device_type=name)
|
||||
|
||||
for name in MANUFACTURERS:
|
||||
Manufacturer.objects.get_or_create(name=name)
|
||||
|
||||
manufacturer = Manufacturer.objects.get(name="Shelly")
|
||||
device_type = DeviceType.objects.get(device_type="Smart Controller")
|
||||
product, _ = Product.objects.get_or_create(
|
||||
manufacturer=manufacturer,
|
||||
device_type=device_type,
|
||||
product_name="1PM Gen3",
|
||||
)
|
||||
Device.objects.get_or_create(
|
||||
product=product,
|
||||
serial="DEMO-001",
|
||||
defaults={"comment": "IoT PreTester 4.6 Demo sample device"},
|
||||
)
|
||||
print("Demo reference data synchronized")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
populate_database()
|
||||
Reference in New Issue
Block a user