From 922acea79b290817ad95f1b541f5ee5361ec707a Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Tue, 6 Feb 2018 09:29:48 +0100 Subject: [PATCH] Fix student import test on PostgreSQL --- stages/migrations/0005_extend_student_avs.py | 16 ++++++++++++++++ stages/models.py | 2 +- stages/views.py | 4 +++- 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 stages/migrations/0005_extend_student_avs.py diff --git a/stages/migrations/0005_extend_student_avs.py b/stages/migrations/0005_extend_student_avs.py new file mode 100644 index 0000000..0582f7a --- /dev/null +++ b/stages/migrations/0005_extend_student_avs.py @@ -0,0 +1,16 @@ +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('stages', '0004_add_student_report_fields'), + ] + + operations = [ + migrations.AlterField( + model_name='student', + name='avs', + field=models.CharField(blank=True, max_length=20, verbose_name='No AVS'), + ), + ] diff --git a/stages/models.py b/stages/models.py index 45bb91b..61d884c 100644 --- a/stages/models.py +++ b/stages/models.py @@ -169,7 +169,7 @@ class Student(models.Model): tel = models.CharField(max_length=40, blank=True, verbose_name='Téléphone') mobile = models.CharField(max_length=40, blank=True, verbose_name='Portable') email = models.EmailField(verbose_name='Courriel', blank=True) - avs = models.CharField(max_length=15, blank=True, verbose_name='No AVS') + avs = models.CharField(max_length=20, blank=True, verbose_name='No AVS') option_ase = models.ForeignKey(Option, null=True, blank=True, on_delete=models.SET_NULL) dispense_ecg = models.BooleanField(default=False) dispense_eps = models.BooleanField(default=False) diff --git a/stages/views.py b/stages/views.py index 469dcf0..101461d 100644 --- a/stages/views.py +++ b/stages/views.py @@ -14,6 +14,7 @@ from django.conf import settings from django.contrib import messages from django.core.files import File from django.core.mail import EmailMessage +from django.db import transaction from django.db.models import Case, Count, Value, When, Q from django.db.models.functions import Concat from django.http import HttpResponse, HttpResponseNotAllowed, HttpResponseRedirect @@ -289,7 +290,8 @@ class ImportViewBase(FormView): imp_file = CSVImportedFile(File(upfile)) else: imp_file = FileFactory(upfile) - stats = self.import_data(imp_file) + with transaction.atomic(): + stats = self.import_data(imp_file) except Exception as e: if settings.DEBUG: raise