Browse Source

command to import previous version

boyska 4 years ago
parent
commit
61331ca7c3

+ 1 - 0
rxmap/rxmapp/__init__.py

@@ -0,0 +1 @@
+default_app_config = 'rxmapp.apps.RxmappConfig'

+ 4 - 1
rxmap/rxmapp/apps.py

@@ -1,5 +1,8 @@
 from django.apps import AppConfig
 
-
 class RxmappConfig(AppConfig):
     name = "rxmapp"
+    def ready(self):
+        import rxmapp.signals
+
+

+ 34 - 0
rxmap/rxmapp/management/commands/import_flask.py

@@ -0,0 +1,34 @@
+import json
+import re
+import sys
+
+from django.core.management.base import BaseCommand, CommandError
+from django.contrib.auth import get_user_model
+
+from rxmapp.models import RapportoRicezione, TipoRadio
+
+
+class Command(BaseCommand):
+    help = "Closes the specified poll for voting"
+    date_re = re.compile(r"\d\d\d\d-\d\d-\d\d")
+
+    def add_arguments(self, parser):
+        pass
+
+    def handle(self, *args, **options):
+        data = json.load(sys.stdin)
+        user = get_user_model().objects.filter(is_superuser=True).first()
+        tiporadio = TipoRadio.objects.all().first()
+        cnt = 0
+        for rapporto_in in data["rapporti"]:
+            rdata = {
+                "author": user,
+                "tipo_radio": tiporadio,
+                "created": self.date_re.search(rapporto_in["explaination"]).group(0),
+            }
+            for key in ("lat", "lng", "comprensibile", "stabilita"):
+                rdata[key] = rapporto_in[key]
+            r, created = RapportoRicezione.objects.get_or_create(**rdata)
+            if created:
+                cnt += 1
+        self.stdout.write(self.style.SUCCESS("%d rapporti importati" % cnt))

+ 14 - 0
rxmap/rxmapp/migrations/0002_auto_20200307_1843.py

@@ -0,0 +1,14 @@
+# Generated by Django 2.2 on 2020-03-07 17:43
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [("rxmapp", "0001_initial")]
+
+    operations = [
+        migrations.RenameField(
+            model_name="rapportoricezione", old_name="date", new_name="created"
+        )
+    ]

+ 3 - 3
rxmap/rxmapp/models.py

@@ -25,7 +25,7 @@ class RapportoRicezione(models.Model):
         TipoRadio, on_delete=models.PROTECT, related_name="rapporti"
     )
 
-    date = models.DateField(default=datetime.now)
+    created = models.DateField(default=datetime.now)
 
     lat = models.FloatField()
     lng = models.FloatField()
@@ -61,9 +61,9 @@ class RapportoRicezione(models.Model):
         Aggiunto il %s da %s
         """ % (
             self.tipo_radio.nome,
-            self.date,
+            self.created,
             self.author.username,
         )
 
     def __str__(self):
-        return "<Rapporto %s del %s>" % (self.pk, self.date)
+        return "<Rapporto %s del %s>" % (self.pk, self.created)

+ 10 - 0
rxmap/rxmapp/signals.py

@@ -0,0 +1,10 @@
+from django.db.models.signals import post_migrate
+from django.dispatch import receiver
+
+from .models import TipoRadio
+
+@receiver(post_migrate)
+def create_tiporadio(sender, **kwargs):
+    if TipoRadio.objects.count() == 0:
+        print('Creo un TipoRadio di base in modo che ci sia sempre un tipo di radio usabile')
+        TipoRadio.objects.create(nome='autoradio', descrizione='NO radioline usate in automobile')