diff --git a/src/covid19/blueprints/common/common_model.py b/src/covid19/blueprints/common/common_model.py index 1404451522d7224706bcba298aac85f90a1c2c7f..168acb86b49925b917e540554d6b7ced48ff4065 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 f654f7ab73b625b20b49b898881ad361d61a01ae..e135bae8db32d8f573ced72ca88f5387c7708fd7 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 4570ba8dae203de7dfb0ac2d8b1770e4e7ca9bba..43da468f4a1ee09ad9b56bb7d1374467621fb4b3 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):