|
@@ -0,0 +1,38 @@
|
|
|
+import os
|
|
|
+
|
|
|
+import yaml
|
|
|
+from django.conf import settings
|
|
|
+from django.core.management.base import BaseCommand, CommandError
|
|
|
+
|
|
|
+from suitablephones.models import Bluetooth, Camera, Device
|
|
|
+
|
|
|
+
|
|
|
+class Command(BaseCommand):
|
|
|
+ help = 'Closes the specified poll for voting'
|
|
|
+
|
|
|
+ def add_arguments(self, parser):
|
|
|
+ parser.add_argument('poll_ids', nargs='+', type=int)
|
|
|
+
|
|
|
+ def handle(self, *args, **options):
|
|
|
+ Device.objects.all().delete()
|
|
|
+ Bluetooth.objects.all().delete()
|
|
|
+ Camera.objects.all().delete()
|
|
|
+ for filename in os.listdir(settings.LINEAGEWIKI + "/_data/devices/"):
|
|
|
+ with open(filename, "r") as stream:
|
|
|
+ try:
|
|
|
+ data = yaml.safe_load(stream)
|
|
|
+ dev = Device()
|
|
|
+ for key, value in data.items():
|
|
|
+ if key == "cameras":
|
|
|
+ cam = Camera.objects.filter(*value.items())
|
|
|
+ if not cam.exists():
|
|
|
+ cam = Camera()
|
|
|
+ for subkey, subvalue in value.items():
|
|
|
+ cam
|
|
|
+ for subkey in value.items():
|
|
|
+ setattr(cam, subkey, subvalue)
|
|
|
+ else:
|
|
|
+ setattr(dev, key, value)
|
|
|
+ dev.save()
|
|
|
+ except yaml.YAMLError as exc:
|
|
|
+ print(exc)
|