From f838c94d1f458821075f9254c5a98f4bcd056f52 Mon Sep 17 00:00:00 2001 From: "J.-S. Caux" <J.S.Caux@uva.nl> Date: Mon, 19 Oct 2020 20:01:27 +0200 Subject: [PATCH] Make converters robust to empty initial database --- colleges/converters.py | 11 +++++++++-- journals/converters.py | 11 +++++++++-- ontology/converters.py | 20 +++++++++++++++++--- 3 files changed, 35 insertions(+), 7 deletions(-) diff --git a/colleges/converters.py b/colleges/converters.py index ffcbdaadd..14efc72df 100644 --- a/colleges/converters.py +++ b/colleges/converters.py @@ -2,13 +2,20 @@ __copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)" __license__ = "AGPL v3" -from colleges.models import College +from django.db.utils import ProgrammingError class CollegeSlugConverter: - regex = '|'.join([c.slug for c in College.objects.all()]) + + def __init__(self): + try: + from colleges.models import College + self.regex = '|'.join([c.slug for c in College.objects.all()]) + except ProgrammingError: + self.regex = 'physics' def to_python(self, value): + from colleges.models import College try: return College.objects.get(slug=value) except College.DoesNotExist: diff --git a/journals/converters.py b/journals/converters.py index 3064cbb38..f65b6a302 100644 --- a/journals/converters.py +++ b/journals/converters.py @@ -2,13 +2,20 @@ __copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)" __license__ = "AGPL v3" -from journals.models import Journal +from django.db.utils import ProgrammingError class JournalDOILabelConverter: - regex = '|'.join([j.doi_label for j in Journal.objects.all()]) + + def __init__(self): + try: + from journals.models import Journal + self.regex = '|'.join([j.doi_label for j in Journal.objects.all()]) + except ProgrammingError: + self.regex = 'SciPost' def to_python(self, value): + from journals.models import Journal try: return Journal.objects.get(doi_label=value).doi_label except Journal.DoesNotExist: diff --git a/ontology/converters.py b/ontology/converters.py index c12848a46..dcc9e90e4 100644 --- a/ontology/converters.py +++ b/ontology/converters.py @@ -2,13 +2,20 @@ __copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)" __license__ = "AGPL v3" -from .models import AcademicField, Specialty +from django.db.utils import ProgrammingError class AcademicFieldSlugConverter: - regex = '|'.join([a.slug for a in AcademicField.objects.all()]) + + def __init__(self): + try: + from ontology.models import AcademicField + self.regex = '|'.join([a.slug for a in AcademicField.objects.all()]) + except ProgrammingError: + self.regex = 'physics' def to_python(self, value): + from ontology.models import AcademicField try: return AcademicField.objects.get(slug=value) except AcademicField.DoesNotExist: @@ -20,9 +27,16 @@ class AcademicFieldSlugConverter: class SpecialtySlugConverter: - regex = '|'.join([s.slug for s in Specialty.objects.all()]) + + def __init__(self): + try: + from ontology.models import Specialty + self.regex = '|'.join([s.slug for s in Specialty.objects.all()]) + except ProgrammingError: + self.regex = 'phys-ct' def to_python(self, value): + from ontology.models import Specialty try: return Specialty.objects.get(slug=value) except Specialty.DoesNotExist: -- GitLab