From 17a0bb11951b706fce3a32e69fa4b9cc6f517cdb Mon Sep 17 00:00:00 2001 From: thomaswoehlke <thomas.woehlke@gmail.com> Date: Fri, 5 Feb 2021 22:47:15 +0100 Subject: [PATCH] work --- src/covid19/blueprints/common/common_model.py | 11 +++++++---- src/covid19/blueprints/europe/europe_model.py | 8 ++++---- .../blueprints/europe/europe_model_import.py | 14 ++++++++++---- 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/covid19/blueprints/common/common_model.py b/src/covid19/blueprints/common/common_model.py index 14044515..168acb86 100644 --- a/src/covid19/blueprints/common/common_model.py +++ b/src/covid19/blueprints/common/common_model.py @@ -71,8 +71,8 @@ class CommonDateReported(db.Model): @classmethod def remove_all(cls): - # TODO: SQLalchemy instead of SQL - db.session.execute("delete from " + cls.__tablename__) + for one in cls.get_all(): + db.session.delete(one) db.session.commit() return None @@ -123,13 +123,16 @@ class CommonRegion(db.Model): 'polymorphic_identity': 'common_date_reported', 'polymorphic_on': type } + __table_args__ = ( + db.UniqueConstraint('type', 'region', name='unique_common_region_reported'), + ) id = db.Column(db.Integer, primary_key=True) region = db.Column(db.String(255), unique=True) @classmethod def remove_all(cls): - # TODO: SQLalchemy instead of SQL - db.session.execute("delete from " + cls.__tablename__) + for one in cls.get_all(): + db.session.delete(one) db.session.commit() return None diff --git a/src/covid19/blueprints/europe/europe_model.py b/src/covid19/blueprints/europe/europe_model.py index f654f7ab..e135bae8 100644 --- a/src/covid19/blueprints/europe/europe_model.py +++ b/src/covid19/blueprints/europe/europe_model.py @@ -47,8 +47,8 @@ class EuropeCountry(db.Model): @classmethod def remove_all(cls): - # TODO: SQLalchemy instead of SQL - db.session.execute("delete from " + cls.__tablename__ + " cascade") + for one in cls.get_all(): + db.session.delete(one) db.session.commit() return None @@ -101,8 +101,8 @@ class EuropeData(db.Model): @classmethod def remove_all(cls): - # TODO: SQLalchemy instead of SQL - db.session.execute("delete from " + cls.__tablename__ + " cascade") + for one in cls.get_all(): + db.session.delete(one) db.session.commit() return None diff --git a/src/covid19/blueprints/europe/europe_model_import.py b/src/covid19/blueprints/europe/europe_model_import.py index 4570ba8d..43da468f 100644 --- a/src/covid19/blueprints/europe/europe_model_import.py +++ b/src/covid19/blueprints/europe/europe_model_import.py @@ -18,19 +18,25 @@ class EuropeDataImportTable(db.Model): @classmethod def remove_all(cls): - # TODO: SQLalchemy instead of SQL - db.session.execute("delete from " + cls.__tablename__ + " cascade") + for one in cls.get_all(): + db.session.delete(one) db.session.commit() return None @classmethod def get_all_as_page(cls, page): #TODO: #51 order_by: year_week, country - return db.session.query(cls).paginate(page, per_page=ITEMS_PER_PAGE) + return db.session.query(cls).order_by( + cls.year_week, + cls.countries_and_territories + ).paginate(page, per_page=ITEMS_PER_PAGE) @classmethod def get_all(cls): - return db.session.query(cls).all() + return db.session.query(cls).order_by( + cls.year_week, + cls.countries_and_territories + ).all() @classmethod def get_by_id(cls, other_id): -- GitLab