diff --git a/client/src/pages/admin/competitions/AddCompetition.tsx b/client/src/pages/admin/competitions/AddCompetition.tsx index e2bb126ee72462da94433b3b15c64ae1783dc228..c4a0e78bd4afeb673876d1f7c361af224226762f 100644 --- a/client/src/pages/admin/competitions/AddCompetition.tsx +++ b/client/src/pages/admin/competitions/AddCompetition.tsx @@ -75,7 +75,10 @@ const AddCompetition: React.FC = (props: any) => { .catch(({ response }) => { console.warn(response.data) if (response?.status === 409) - actions.setFieldError('error', 'En tävling med det namnet finns redan, välj ett nytt namn och försök igen') + actions.setFieldError( + 'error', + 'Denna tävling finns redan, välj ett nytt namn, region eller år och försök igen' + ) else if (response.data && response.data.message) actions.setFieldError('error', response.data && response.data.message) else actions.setFieldError('error', 'Någonting gick fel, försök igen') diff --git a/server/app/database/models.py b/server/app/database/models.py index 7596ab6b99b3bacc22c8f80f03578a5dede09f6f..7371bc773c9e66ef2c89be55e23e2501a43e11b0 100644 --- a/server/app/database/models.py +++ b/server/app/database/models.py @@ -5,8 +5,7 @@ each other. """ from app.core import bcrypt, db -from app.database.types import (IMAGE_COMPONENT_ID, QUESTION_COMPONENT_ID, - TEXT_COMPONENT_ID) +from app.database.types import IMAGE_COMPONENT_ID, QUESTION_COMPONENT_ID, TEXT_COMPONENT_ID from sqlalchemy.ext.hybrid import hybrid_method, hybrid_property from sqlalchemy.orm import backref @@ -145,8 +144,9 @@ class Competition(db.Model): Depend on table: Media, City. """ + __table_args__ = (db.UniqueConstraint("name", "year", "city_id"),) id = db.Column(db.Integer, primary_key=True) - name = db.Column(db.String(STRING_SIZE), unique=True) + name = db.Column(db.String(STRING_SIZE), nullable=False) year = db.Column(db.Integer, nullable=False, default=2020) font = db.Column(db.String(STRING_SIZE), nullable=False) city_id = db.Column(db.Integer, db.ForeignKey("city.id"), nullable=False) @@ -242,6 +242,7 @@ class QuestionAlternative(db.Model): Depend on table: Question. """ + __table_args__ = ( db.UniqueConstraint("question_id", "alternative_order"), db.UniqueConstraint("question_id", "correct_order"), diff --git a/server/populate.py b/server/populate.py index ffb24a3fca572f31aa9bf01d94c3ceded32c8bbb..71aba44a517e05cfcc7bacbaeb0b3ab445cd976f 100644 --- a/server/populate.py +++ b/server/populate.py @@ -56,21 +56,21 @@ def create_default_items(): dbc.add.user("admin@test.se", "password", admin_id, city_id, "Admina Denfina") dbc.add.user("test@test.se", "password", editor_id, city_id, "Test Osteron") - # dbc.add.user("sven@test.se", "password", editor_id, 1, "Sven Mattson") - # dbc.add.user("erika@test.se", "password", editor_id, 2, "Erika Malmberg") - # dbc.add.user("anette@test.se", "password", editor_id, 3, "Anette Frisk") - # dbc.add.user("emil@test.se", "password", editor_id, 4, "Emil Svensson") - # dbc.add.user("david@test.se", "password", editor_id, 5, "David Ek") - - # dbc.add.competition(f"Regionfinal", 2012, 1) - # dbc.add.competition(f"Regionfinal", 2012, 2) - # dbc.add.competition(f"Regionfinal", 2012, 3) - # dbc.add.competition(f"Regionfinal", 2012, 4) - # dbc.add.competition(f"Regionfinal", 2012, 5) - # dbc.add.competition(f"Rikssemifinal", 2012, 6) - # dbc.add.competition(f"Rikssemifinal", 2012, 7) - # dbc.add.competition(f"Rikssemifinal", 2012, 8) - # dbc.add.competition(f"Riksfinal", 2012, 9) + dbc.add.user("sven@test.se", "password", editor_id, 1, "Sven Mattson") + dbc.add.user("erika@test.se", "password", editor_id, 2, "Erika Malmberg") + dbc.add.user("anette@test.se", "password", editor_id, 3, "Anette Frisk") + dbc.add.user("emil@test.se", "password", editor_id, 4, "Emil Svensson") + dbc.add.user("david@test.se", "password", editor_id, 5, "David Ek") + + dbc.add.competition(f"Regionfinal", 2012, 1) + dbc.add.competition(f"Regionfinal", 2012, 2) + dbc.add.competition(f"Regionfinal", 2012, 3) + dbc.add.competition(f"Regionfinal", 2012, 4) + dbc.add.competition(f"Regionfinal", 2012, 5) + dbc.add.competition(f"Rikssemifinal", 2012, 6) + dbc.add.competition(f"Rikssemifinal", 2012, 7) + dbc.add.competition(f"Rikssemifinal", 2012, 8) + dbc.add.competition(f"Riksfinal", 2012, 9) question_types_items = dbc.get.all(QuestionType)