diff --git a/src/covid19/blueprints/common/common_model.py b/src/covid19/blueprints/common/common_model.py index 46cb0fdd558a5720a86e18b655896ab8a9b94d30..2147f2bb8f3e38acf724f79d78f49bc2e28f09ec 100644 --- a/src/covid19/blueprints/common/common_model.py +++ b/src/covid19/blueprints/common/common_model.py @@ -9,12 +9,8 @@ class CommonDateReported(db.Model): __mapper_args__ = { 'concrete': True } - __table_args__ = ( - db.UniqueConstraint('type', 'date_reported', name='unique_common_date_reported'), - ) # id = db.Column(db.Integer, primary_key=True) - date_reported = db.Column(db.String(255), nullable=False) year_week = db.Column(db.String(255), nullable=False) datum = db.Column(db.Date, nullable=False) year = db.Column(db.Integer, nullable=False) diff --git a/src/covid19/blueprints/europe/europe_model.py b/src/covid19/blueprints/europe/europe_model.py index 3a6b88e3047fe8edc0b7f955840fe99520ab43b6..65203568712be33922c752a21bab5f503049fe8f 100644 --- a/src/covid19/blueprints/europe/europe_model.py +++ b/src/covid19/blueprints/europe/europe_model.py @@ -8,6 +8,8 @@ class EuropeDateReported(CommonDateReported): __tablename__ = 'europe_date_reported' id = db.Column(db.Integer, primary_key=True) + date_reported = db.Column(db.String(255), nullable=False, unique=True) + __mapper_args__ = { 'concrete': True } @@ -114,8 +116,12 @@ class EuropeData(db.Model): europe_country_id = db.Column(db.Integer, db.ForeignKey('europe_country.id'), nullable=False) europe_country = db.relationship('EuropeCountry', lazy='joined', cascade="all, delete") - europe_date_reported_id = db.Column(db.Integer, db.ForeignKey('common_date_reported.id'), nullable=False) - europe_date_reported = db.relationship('EuropeDateReported', lazy='joined', cascade="all, delete") + europe_date_reported_id = db.Column(db.Integer, db.ForeignKey('europe_date_reported.id'), nullable=False) + europe_date_reported = db.relationship( + 'EuropeDateReported', + lazy='joined', + cascade='all, delete', + order_by='desc(EuropeDateReported.date_reported)') @classmethod def remove_all(cls): diff --git a/src/covid19/blueprints/rki/rki_model.py b/src/covid19/blueprints/rki/rki_model.py index 9cfd7bc21da0a6da9de0c6a6f553d00391adb9e8..14287b0bba6f359eacd3a5089f4df4df9406e291 100644 --- a/src/covid19/blueprints/rki/rki_model.py +++ b/src/covid19/blueprints/rki/rki_model.py @@ -10,6 +10,8 @@ class RkiDateReported(CommonDateReported): __tablename__ = 'rki_date_reported' id = db.Column(db.Integer, primary_key=True) + date_reported = db.Column(db.String(255), nullable=False, unique=True) + __mapper_args__ = { 'concrete': True } @@ -116,9 +118,12 @@ class RkiBundeslaender(db.Model): deaths_new = db.Column(db.Integer, nullable=False) deaths_cumulative = db.Column(db.Integer, nullable=False) date_reported_id = db.Column(db.Integer, - db.ForeignKey('common_date_reported.id'), nullable=False) + db.ForeignKey('rki_date_reported.id'), nullable=False) date_reported = db.relationship( - 'RkiDateReported', lazy='joined', order_by='desc(RkiDateReported.date_reported)') + 'RkiDateReported', + lazy='joined', + cascade='all, delete', + order_by='desc(RkiDateReported.date_reported)') country_id = db.Column(db.Integer, db.ForeignKey('rki_country.id'), nullable=False) country = db.relationship( diff --git a/src/covid19/blueprints/vaccination/vaccination_model.py b/src/covid19/blueprints/vaccination/vaccination_model.py index 327dd8be622070d4334f43ed6f412ad01ca00049..db0d6c84fa6f573421db36d4249cc376877fe0e1 100644 --- a/src/covid19/blueprints/vaccination/vaccination_model.py +++ b/src/covid19/blueprints/vaccination/vaccination_model.py @@ -8,6 +8,8 @@ class VaccinationDateReported(CommonDateReported): __tablename__ = 'vaccination_date_reported' id = db.Column(db.Integer, primary_key=True) + date_reported = db.Column(db.String(255), nullable=False, unique=True) + __mapper_args__ = { 'concrete': True } @@ -40,7 +42,7 @@ class VaccinationData(db.Model): __tablename__ = 'vaccination_data' id = db.Column(db.Integer, primary_key=True) - date_reported_id = db.Column(db.Integer, db.ForeignKey('common_date_reported.id'), nullable=False) + date_reported_id = db.Column(db.Integer, db.ForeignKey('vaccination_date_reported.id'), nullable=False) date_reported = db.relationship( 'VaccinationDateReported', lazy='joined', diff --git a/src/covid19/blueprints/vaccination/vaccination_model_import.py b/src/covid19/blueprints/vaccination/vaccination_model_import.py index 0931f45f8e0f7ea64a81885500b5c4508695e372..e182af639944097c043523a0e3915125623177b2 100644 --- a/src/covid19/blueprints/vaccination/vaccination_model_import.py +++ b/src/covid19/blueprints/vaccination/vaccination_model_import.py @@ -48,7 +48,7 @@ class VaccinationImport(db.Model): @classmethod def get_all(cls): return db.session.query(cls)\ - .order_by(cls.datum.desc())\ + .order_by(cls.datum)\ .all() @classmethod @@ -71,9 +71,20 @@ class VaccinationImport(db.Model): @classmethod def get_date_rep(cls): - return db.session.query(cls)\ - .options(defer('*'), undefer("datum")) \ + return db.session.query(cls.datum)\ .group_by(cls.datum)\ .distinct()\ + .order_by(cls.datum)\ .all() + @classmethod + def get_date_reported_as_array(cls): + resultarray = [] + resultlist = db.session.query(cls.datum)\ + .group_by(cls.datum)\ + .distinct()\ + .order_by(cls.datum)\ + .all() + for resultitem in resultlist: + resultarray.append(resultitem[0]) + return resultarray diff --git a/src/covid19/blueprints/vaccination/vaccination_service_update.py b/src/covid19/blueprints/vaccination/vaccination_service_update.py index 1d6e772ca52ca4e19fcbb75beec13bc01c2e8047..d2d5b04882777ff6e649b752c0d019e895e85377 100644 --- a/src/covid19/blueprints/vaccination/vaccination_service_update.py +++ b/src/covid19/blueprints/vaccination/vaccination_service_update.py @@ -20,7 +20,7 @@ class VaccinationServiceUpdate: def __update_date_reported(self): app.logger.info(" __update_date_reported [begin]") app.logger.info("------------------------------------------------------------") - date_reported_list = VaccinationImport.get_date_rep() + date_reported_list = VaccinationImport.get_date_reported_as_array() i = 0 for one_date_reported in date_reported_list: i += 1 diff --git a/src/covid19/blueprints/who/who_model.py b/src/covid19/blueprints/who/who_model.py index 2ca87c73a8f5ed2a078fc617cc9c5ec6ab3fa43a..58c9c82c565609fbc93e122920571431c92954c7 100644 --- a/src/covid19/blueprints/who/who_model.py +++ b/src/covid19/blueprints/who/who_model.py @@ -9,6 +9,8 @@ class WhoDateReported(CommonDateReported): __tablename__ = 'who_date_reported' id = db.Column(db.Integer, primary_key=True) + date_reported = db.Column(db.String(255), nullable=False, unique=True) + __mapper_args__ = { 'concrete': True } @@ -142,7 +144,7 @@ class WhoData(db.Model): deaths_new = db.Column(db.Integer, nullable=False) deaths_cumulative = db.Column(db.Integer, nullable=False) date_reported_id = db.Column(db.Integer, - db.ForeignKey('common_date_reported.id'), nullable=False) + db.ForeignKey('who_date_reported.id'), nullable=False) date_reported = db.relationship( 'WhoDateReported', lazy='joined',