]> git.parisson.com Git - teleforma.git/commitdiff
update recovery env, allow null profile.user, fix profile copy
authorGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Mon, 22 Nov 2021 11:03:53 +0000 (12:03 +0100)
committerGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Mon, 22 Nov 2021 11:03:53 +0000 (12:03 +0100)
env/recovery.env
env/recovery.yml
teleforma/management/commands/teleforma-copy-students.py
teleforma/migrations/0014_alter_profile_user.py [new file with mode: 0644]
teleforma/models/crfpa.py

index 18b569ea64cd50550f8aaf714044d1a4baf38372..0c0c7b69954ff8e8735c9582b2be56a2f53d3172 100644 (file)
@@ -3,7 +3,7 @@ DEBUG=True
 DB_PORT=5432
 DB_HOST=db
 POSTGRES_HOST=db
-POSTGRES_PASSWORD=mysecretpassword
+POSTGRES_PASSWORD=EtOdlerlOt8ob
 POSTGRES_DATABASE=teleforma
 POSTGRES_DB=teleforma
 POSTGRES_USER=teleforma
index 777ba3619a1ee1248157597665a98dacb4c90377..bacddd3db32f4321b7a54c1d5177aa8fe271d322 100644 (file)
@@ -9,7 +9,7 @@ services:
     command: /bin/sh /srv/app/wsgi.sh
     restart: unless-stopped
     env_file:
-      - env/prod.env
+      - env/recovery.env
     volumes:
       - /mnt/crfpa-videos:/mnt/crfpa-videos
       - /mnt/crfpa-scripts:/mnt/crfpa-scripts
@@ -33,7 +33,7 @@ services:
     ports:
       - "9006:8000"
     env_file:
-      - env/prod.env
+      - env/recovery.env
     networks:
       - teleforma-recovery
     links:
@@ -47,7 +47,21 @@ services:
 
   db:
     env_file:
-      - env/prod.env
+      - env/recovery.env
+    networks:
+      - teleforma-recovery
+
+  db-recovery:
+    image: postgres:13
+    env_file:
+      - env/recovery.env
+    environment:
+      PGDATA: /var/lib/postgresql/data/pgdata
+    volumes:
+      - ./var/lib/postgresql-recovery:/var/lib/postgresql/data:rw
+      - ./bin:/srv/bin
+      - ./var/backup/:/srv/backup
+      - /etc/localtime:/etc/localtime:ro
     networks:
       - teleforma-recovery
 
@@ -64,6 +78,7 @@ volumes:
     app:
     channels:
     db:
+    db-recovery:
     redis:
 
 
index 31488d59fa0f1f10e980109403441c1700198ae1..50c6a4e1ccbac30d20e5efcc8638d7997b36ca0a 100644 (file)
@@ -30,7 +30,7 @@ class Command(BaseCommand):
     period_name = 'Annuelle'
     db_from = 'recovery'
     db_to = 'default'
-    logger = Logger('/var/log/app/sudent_import_recovery.log')
+    logger = Logger('/var/log/app/student_import_recovery.log')
 
     def handle(self, *args, **options):
         period = Period.objects.get(name=self.period_name)
@@ -63,6 +63,7 @@ class Command(BaseCommand):
             optional_fees = deepcopy(student.optional_fees.all())
             paybacks = deepcopy(student.paybacks.all())
             trainings = student.trainings.all()
+            profile = deepcopy(Profile.objects.using(self.db_from).get(user=student.user))
 
             user.pk = None
             user.username = get_unique_username(user.first_name, user.last_name)
@@ -73,6 +74,11 @@ class Command(BaseCommand):
             student.save(using=self.db_to)
             student.user = user
             student.save(using=self.db_to)
+            profile.pk = None
+            profile.user = None
+            profile.save(using=self.db_to)
+            profile.user = user
+            profile.save(using=self.db_to)
 
             for training in trainings:
                 training_to = Training.objects.using(self.db_to).get(name=training.name, period=period)
diff --git a/teleforma/migrations/0014_alter_profile_user.py b/teleforma/migrations/0014_alter_profile_user.py
new file mode 100644 (file)
index 0000000..8a4c4ba
--- /dev/null
@@ -0,0 +1,21 @@
+# Generated by Django 3.2.3 on 2021-11-22 11:55
+
+from django.conf import settings
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+        ('teleforma', '0013_auto_20211122_0057'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='profile',
+            name='user',
+            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='profile', to=settings.AUTH_USER_MODEL, unique=True, verbose_name='user'),
+        ),
+    ]
index e84d429a156a08cd9dcd38cfe9502cdef0a1e910..712bbf4b64a33b2aba9391fd02cffc45e137502b 100755 (executable)
@@ -422,7 +422,7 @@ class Profile(models.Model):
     "User profile extension"
 
     user = models.ForeignKey(User, related_name='profile',
-                             verbose_name=_('user'), unique=True, on_delete=models.CASCADE)
+                             verbose_name=_('user'), unique=True, on_delete=models.CASCADE, null=True)
     address = models.CharField(_('Address'), max_length=255, blank=True)
     address_detail = models.CharField(
         _('Address detail'), max_length=255, blank=True, null=True)