diff --git a/src/flask_covid19/blueprints/app_all/all_model.py b/src/flask_covid19/blueprints/app_all/all_model.py index 3f7e3fc1c68e4e00463e64f3b3e7c668403b8b53..c62a7fb22b35de0dd61c280e89171b8c2b525768 100644 --- a/src/flask_covid19/blueprints/app_all/all_model.py +++ b/src/flask_covid19/blueprints/app_all/all_model.py @@ -315,7 +315,7 @@ class BlueprintLocation(db.Model): class BlueprintFactTableTimeSeries(db.Model): __tablename__ = 'blueprint_data_timeline' __table_args__ = ( - db.UniqueConstraint('location_id', 'date_reported_id', name='uix_blueprint_data'), + db.UniqueConstraint('date_reported_id', name='uix_blueprint_data_timeline'), ) id = db.Column(db.Integer, primary_key=True) date_reported_id = db.Column(db.Integer, db.ForeignKey('blueprint_date_reported.id'), nullable=False) @@ -373,6 +373,10 @@ class BlueprintFactTable(db.Model): __table_args__ = ( db.UniqueConstraint('location_id', 'date_reported_id', name='uix_blueprint_data'), ) + + def __str__(self): + return self.date_reported.__str__() + " " + self.location.__str__() + id = db.Column(db.Integer, primary_key=True) date_reported_id = db.Column(db.Integer, db.ForeignKey('blueprint_date_reported.id'), nullable=False) date_reported = db.relationship( diff --git a/src/flask_covid19/blueprints/data_divi/divi_model.py b/src/flask_covid19/blueprints/data_divi/divi_model.py index ae4da87b1f4b484652336fb9f46e54d3f6c19980..687a5ab75806ffdad281925396be21e95344205e 100644 --- a/src/flask_covid19/blueprints/data_divi/divi_model.py +++ b/src/flask_covid19/blueprints/data_divi/divi_model.py @@ -60,7 +60,7 @@ class DiviCountry(BlueprintLocation): id = db.Column(db.Integer, primary_key=True) location_code = db.Column(db.String(255), unique=True, nullable=True) location = db.Column(db.String(255), nullable=False, unique=True) - location_group_id = db.Column(db.Integer, db.ForeignKey('blueprint_location_group.id'), nullable=False) + location_group_id = db.Column(db.Integer, db.ForeignKey('divi_country_region.id'), nullable=False) location_group = db.relationship( 'DiviRegion', lazy='joined', diff --git a/src/flask_covid19/blueprints/data_divi/divi_service_import.py b/src/flask_covid19/blueprints/data_divi/divi_service_import.py index 29c7a6b0d6e27738c4670d9589df2b768b76f240..55b14a07484f4912c0d6393f29d381802e5a6cff 100644 --- a/src/flask_covid19/blueprints/data_divi/divi_service_import.py +++ b/src/flask_covid19/blueprints/data_divi/divi_service_import.py @@ -4,6 +4,7 @@ import psycopg2 from database import db, app from flask_covid19.blueprints.app_all.all_config import BlueprintConfig +from flask_covid19.blueprints.app_web.all_model_factory import BlueprintDateReportedFactory from flask_covid19.blueprints.data_divi.divi_model_import import DiviImport diff --git a/src/flask_covid19/blueprints/data_divi/divi_service_update.py b/src/flask_covid19/blueprints/data_divi/divi_service_update.py index a703398d13c8f6d8f44f7d8175722e259cdacc05..eaafd48e4fb2f89b082588d8c49a7f1b41936939 100644 --- a/src/flask_covid19/blueprints/data_divi/divi_service_update.py +++ b/src/flask_covid19/blueprints/data_divi/divi_service_update.py @@ -1,6 +1,7 @@ from database import db, app from flask_covid19.blueprints.app_all.all_config import BlueprintConfig +from flask_covid19.blueprints.app_web.all_model_factory import BlueprintDateReportedFactory from flask_covid19.blueprints.data_divi.divi_model import DiviRegion, DiviDateReported, DiviCountry, DiviData from flask_covid19.blueprints.data_divi.divi_model_import import DiviImport @@ -28,7 +29,7 @@ class DiviServiceUpdateFull(DiviServiceUpdateBase): output = " [ " + str(i) + " ] " + i_date_reported c = DiviDateReported.find_by_date_reported(i_date_reported) if c is None: - o = DiviDateReported.create_new_object_factory(my_date_rep=i_date_reported) + o = BlueprintDateReportedFactory.create_new_object_for_divi(my_date_rep=i_date_reported) db.session.add(o) db.session.commit() output += " added" diff --git a/src/flask_covid19/blueprints/data_ecdc/ecdc_model.py b/src/flask_covid19/blueprints/data_ecdc/ecdc_model.py index 460f50350264d1055cb7cb11c1138c0dcdb69f43..01c4240a415a440eab3ad472b900606b84458b53 100644 --- a/src/flask_covid19/blueprints/data_ecdc/ecdc_model.py +++ b/src/flask_covid19/blueprints/data_ecdc/ecdc_model.py @@ -176,7 +176,7 @@ class EcdcData(BlueprintFactTable): 'EcdcCountry', lazy='joined', cascade='save-update', - order_by='asc(EcdcDateReported.location)') + order_by='asc(EcdcCountry.location)') processed_update = db.Column(db.Boolean, nullable=False) processed_full_update = db.Column(db.Boolean, nullable=False) # diff --git a/src/flask_covid19/blueprints/data_ecdc/ecdc_service_import.py b/src/flask_covid19/blueprints/data_ecdc/ecdc_service_import.py index 0f9cef4b02d0416d120c3403b8b2f68e04e9d671..a39a00f59951978a93521aea610db08dacbcb376 100644 --- a/src/flask_covid19/blueprints/data_ecdc/ecdc_service_import.py +++ b/src/flask_covid19/blueprints/data_ecdc/ecdc_service_import.py @@ -4,6 +4,7 @@ import psycopg2 from database import db, app from flask_covid19.blueprints.app_all.all_config import BlueprintConfig from flask_covid19.blueprints.data_ecdc.ecdc_model import EcdcDateReported +from flask_covid19.blueprints.app_web.all_model_factory import BlueprintDateReportedFactory from flask_covid19.blueprints.data_ecdc.ecdc_model_import import EcdcImport, EcdcFlat @@ -30,7 +31,7 @@ class EcdcServiceImport: file_reader = csv.DictReader(csv_file, delimiter=',', quotechar='"') for row in file_reader: date_rep = row['dateRep'] - d = EcdcDateReported.create_new_object_factory(my_date_rep=date_rep) + d = BlueprintDateReportedFactory.create_new_object_for_ecdc(my_date_rep=date_rep) o = EcdcImport( date_rep=date_rep, day=row['day'], diff --git a/src/flask_covid19/blueprints/data_ecdc/ecdc_service_update.py b/src/flask_covid19/blueprints/data_ecdc/ecdc_service_update.py index 7495de21deb5fbdaf06a1dd799629f8db57de134..2242bf7eec182995e125353600ac8b510323c559 100644 --- a/src/flask_covid19/blueprints/data_ecdc/ecdc_service_update.py +++ b/src/flask_covid19/blueprints/data_ecdc/ecdc_service_update.py @@ -1,6 +1,7 @@ from database import db, app from flask_covid19.blueprints.app_all.all_config import BlueprintConfig from flask_covid19.blueprints.data_ecdc.ecdc_model_import import EcdcImport +from flask_covid19.blueprints.app_web.all_model_factory import BlueprintDateReportedFactory from flask_covid19.blueprints.data_ecdc.ecdc_model import EcdcDateReported, EcdcContinent, EcdcCountry, EcdcData @@ -26,9 +27,7 @@ class EcdcServiceUpdateFull(EcdcServiceUpdateBase): for result_item in result_date_rep: k += 1 my_date_rep = result_item[0] - o = EcdcDateReported.create_new_object_factory( - my_date_rep=my_date_rep, - ) + o = BlueprintDateReportedFactory.create_new_object_for_ecdc(my_date_rep=my_date_rep) db.session.add(o) a = str(o) b = str(k) diff --git a/src/flask_covid19/blueprints/data_owid/owid_service_import.py b/src/flask_covid19/blueprints/data_owid/owid_service_import.py index 7ca6214d082337ba8ff092e2a72e2a94021ed951..dbeebabdb022c6c51c87d9aa109270f1f6f4d28c 100644 --- a/src/flask_covid19/blueprints/data_owid/owid_service_import.py +++ b/src/flask_covid19/blueprints/data_owid/owid_service_import.py @@ -4,6 +4,7 @@ from database import db, app from flask_covid19.blueprints.app_all.all_config import BlueprintConfig from flask_covid19.blueprints.data_owid.owid_model import OwidDateReported +from flask_covid19.blueprints.app_web.all_model_factory import BlueprintDateReportedFactory from flask_covid19.blueprints.data_owid.owid_model_import import OwidImport, OwidFlat @@ -31,7 +32,7 @@ class OwidServiceImport: k = 0 for row in file_reader: date_reported = row['date'] - d = OwidDateReported.create_new_object_factory(my_date_rep=date_reported) + d = BlueprintDateReportedFactory.create_new_object_for_owid(my_date_rep=date_reported) o = OwidImport( iso_code=row['iso_code'], date=date_reported, diff --git a/src/flask_covid19/blueprints/data_owid/owid_service_update.py b/src/flask_covid19/blueprints/data_owid/owid_service_update.py index 2a4808cea36f930a2ab6946fa31c1cb20b1a86f9..b05e65db7fd9de3b4e8645e439a0e6ccf7b4fd25 100644 --- a/src/flask_covid19/blueprints/data_owid/owid_service_update.py +++ b/src/flask_covid19/blueprints/data_owid/owid_service_update.py @@ -1,5 +1,6 @@ from database import db, app from flask_covid19.blueprints.app_all.all_config import BlueprintConfig +from flask_covid19.blueprints.app_web.all_model_factory import BlueprintDateReportedFactory from flask_covid19.blueprints.data_owid.owid_model import OwidDateReported, OwidData, OwidContinent, OwidCountry from flask_covid19.blueprints.data_owid.owid_model_import import OwidImport @@ -25,7 +26,7 @@ class OwidServiceUpdateFull(OwidServiceUpdateBase): log_lines = [] for i_date_reported, in OwidImport.get_dates(): i += 1 - o = OwidDateReported.create_new_object_factory(my_date_rep=i_date_reported) + o = BlueprintDateReportedFactory.create_new_object_for_owid(my_date_rep=i_date_reported) db.session.add(o) output = " full update OWID date_reported [ " + str(i) + " ] " + i_date_reported + " added" log_lines.append(output) diff --git a/src/flask_covid19/blueprints/data_rki/rki_service_import.py b/src/flask_covid19/blueprints/data_rki/rki_service_import.py index ed5bc71c328729afd9a12f512c2cd3edee623fee..3388d1b4b2a3544b28461665401d6ff65768fd9c 100644 --- a/src/flask_covid19/blueprints/data_rki/rki_service_import.py +++ b/src/flask_covid19/blueprints/data_rki/rki_service_import.py @@ -3,6 +3,7 @@ import psycopg2 from database import db, app from flask_covid19.blueprints.app_all.all_config import BlueprintConfig +from flask_covid19.blueprints.app_web.all_model_factory import BlueprintDateReportedFactory from flask_covid19.blueprints.data_rki.rki_model import RkiMeldedatum from flask_covid19.blueprints.data_rki.rki_model_import import RkiImport, RkiFlat @@ -32,7 +33,7 @@ class RkiServiceImport: for row in file_reader: k = k + 1 meldedatum = row['Meldedatum'] - d = RkiMeldedatum.create_new_object_factory(my_date_rep=meldedatum) + d = BlueprintDateReportedFactory.create_new_object_for_rki(my_date_rep=meldedatum) # app.logger.info("RKI meldedatum: " + str(d) + " " + meldedatum) o = RkiImport( fid=row['FID'], diff --git a/src/flask_covid19/blueprints/data_rki/rki_service_update.py b/src/flask_covid19/blueprints/data_rki/rki_service_update.py index 06d032b982d382be06e4028e5f7e2348c1830c53..a7d966f8dd7ff6fa53e10b4eca8da56f71fe823a 100644 --- a/src/flask_covid19/blueprints/data_rki/rki_service_update.py +++ b/src/flask_covid19/blueprints/data_rki/rki_service_update.py @@ -1,6 +1,7 @@ from database import db, app from flask_covid19.blueprints.app_all.all_config import BlueprintConfig +from flask_covid19.blueprints.app_web.all_model_factory import BlueprintDateReportedFactory from flask_covid19.blueprints.data_rki.rki_model import RkiData, RkiMeldedatum, RkiBundesland, RkiLandkreis from flask_covid19.blueprints.data_rki.rki_model_import import RkiImport @@ -26,7 +27,7 @@ class RkiServiceUpdateFull(RkiServiceUpdateBase): output_lines = [] for datum_of_import in RkiImport.get_datum_of_all_import(): i += 1 - o = RkiMeldedatum.create_new_object_factory(my_date_rep=datum_of_import) + o = BlueprintDateReportedFactory.create_new_object_for_rki(my_date_rep=datum_of_import) db.session.add(o) output = " [ " + str(i) + " ] full update RKI meldedatum ... " + str(o) output_lines.append(output) diff --git a/src/flask_covid19/blueprints/data_vaccination/vaccination_model.py b/src/flask_covid19/blueprints/data_vaccination/vaccination_model.py index 6e2062382fe8bc7ebd10a60abead270e3ea5d123..32aaff55d2086ddfb45f8d9c6310f5d6777e6eb9 100644 --- a/src/flask_covid19/blueprints/data_vaccination/vaccination_model.py +++ b/src/flask_covid19/blueprints/data_vaccination/vaccination_model.py @@ -38,6 +38,7 @@ class VaccinationDateReported(BlueprintDateReported): class VaccinationData(BlueprintFactTableTimeSeries): __tablename__ = 'vaccination' + __mapper_args__ = {'concrete': True} id = db.Column(db.Integer, primary_key=True) date_reported_id = db.Column(db.Integer, db.ForeignKey('vaccination_date_reported.id'), nullable=False) diff --git a/src/flask_covid19/blueprints/data_vaccination/vaccination_service_import.py b/src/flask_covid19/blueprints/data_vaccination/vaccination_service_import.py index 9927ec1d528fab81dc8868a0646b0bfa44642e02..a8fa7cf895b956bf0299949599b4fbfbd11c627a 100644 --- a/src/flask_covid19/blueprints/data_vaccination/vaccination_service_import.py +++ b/src/flask_covid19/blueprints/data_vaccination/vaccination_service_import.py @@ -4,6 +4,7 @@ import psycopg2 from database import db, app from flask_covid19.blueprints.app_all.all_config import BlueprintConfig +from flask_covid19.blueprints.app_web.all_model_factory import BlueprintDateReportedFactory from flask_covid19.blueprints.data_vaccination.vaccination_model import VaccinationDateReported from flask_covid19.blueprints.data_vaccination.vaccination_model_import import VaccinationImport, VaccinationFlat @@ -39,7 +40,7 @@ class VaccinationServiceImport: file_reader = csv.DictReader(csv_file, delimiter='\t', quotechar='"') for row in file_reader: date_reported = row['date'] - d = VaccinationDateReported.create_new_object_factory(my_date_rep=date_reported) + d = BlueprintDateReportedFactory.create_new_object_for_vaccination(my_date_rep=date_reported) o = VaccinationImport( dosen_kumulativ=self.__int(row['dosen_kumulativ']), dosen_differenz_zum_vortag=self.__int(row['dosen_differenz_zum_vortag']), diff --git a/src/flask_covid19/blueprints/data_vaccination/vaccination_service_update.py b/src/flask_covid19/blueprints/data_vaccination/vaccination_service_update.py index d9a844f3212695ec437795d594b60236526d5e78..87f711a4f575a8bc82caf655df3855aa6d4f6dc5 100644 --- a/src/flask_covid19/blueprints/data_vaccination/vaccination_service_update.py +++ b/src/flask_covid19/blueprints/data_vaccination/vaccination_service_update.py @@ -1,5 +1,6 @@ from database import db, app from flask_covid19.blueprints.app_all.all_config import BlueprintConfig +from flask_covid19.blueprints.app_web.all_model_factory import BlueprintDateReportedFactory from flask_covid19.blueprints.data_vaccination.vaccination_model_import import VaccinationImport from flask_covid19.blueprints.data_vaccination.vaccination_model import VaccinationDateReported from flask_covid19.blueprints.data_vaccination.vaccination_model import VaccinationData @@ -26,7 +27,7 @@ class VaccinationServiceUpdateFull(VaccinationServiceUpdateBase): i = 0 for one_date_reported in date_reported_list: i += 1 - o = VaccinationDateReported.create_new_object_factory(one_date_reported) + o = BlueprintDateReportedFactory.create_new_object_for_vaccination(my_date_rep=one_date_reported) db.session.add(o) output = " full_update RkiVaccination date_reported [ " + str(i) + " ] " + str(o) app.logger.info(output) diff --git a/src/flask_covid19/blueprints/data_who/who_model.py b/src/flask_covid19/blueprints/data_who/who_model.py index 3f9a96c0fceb7ecc601286761d9ace2e8757645e..c03fa1b54c6dc9b9e9063a1a5371cb0656a1b60f 100644 --- a/src/flask_covid19/blueprints/data_who/who_model.py +++ b/src/flask_covid19/blueprints/data_who/who_model.py @@ -130,9 +130,6 @@ class WhoData(BlueprintFactTable): __tablename__ = 'who' __mapper_args__ = {'concrete': True} - def __str__(self): - return self.date_reported.__str__() + " " + self.location.__str__() - id = db.Column(db.Integer, primary_key=True) date_reported_id = db.Column(db.Integer, db.ForeignKey('who_date_reported.id'), nullable=False) date_reported = db.relationship( diff --git a/src/flask_covid19/blueprints/data_who/who_service_import.py b/src/flask_covid19/blueprints/data_who/who_service_import.py index 5a0fcc8a56d46eceb4ada84c86f14d34cf16e5ca..ca00c01be41f74f7ebe6fee0c8175eb63320f8cb 100644 --- a/src/flask_covid19/blueprints/data_who/who_service_import.py +++ b/src/flask_covid19/blueprints/data_who/who_service_import.py @@ -2,6 +2,7 @@ import sys import csv import psycopg2 from database import db, app +from flask_covid19.blueprints.app_web.all_model_factory import BlueprintDateReportedFactory from flask_covid19.blueprints.app_all.all_config import BlueprintConfig from flask_covid19.blueprints.data_who.who_model import WhoDateReported from flask_covid19.blueprints.data_who.who_model_import import WhoImport, WhoFlat @@ -35,7 +36,7 @@ class WhoServiceImport: k = 0 for row in file_reader: date_reported = row[keyDate_reported] - d = WhoDateReported.create_new_object_factory(date_reported) + d = BlueprintDateReportedFactory.create_new_object_for_who(my_date_rep=date_reported) o = WhoImport( new_cases=row['New_cases'], cumulative_cases=row['Cumulative_cases'], diff --git a/src/flask_covid19/blueprints/data_who/who_service_update.py b/src/flask_covid19/blueprints/data_who/who_service_update.py index aa935f351f4b0364ac70e7c21ed3ff854bdee56e..0d0d5b2a05cbc508012c78e3ca084f8f525892b3 100644 --- a/src/flask_covid19/blueprints/data_who/who_service_update.py +++ b/src/flask_covid19/blueprints/data_who/who_service_update.py @@ -1,5 +1,6 @@ from database import db, app from flask_covid19.blueprints.app_all.all_config import BlueprintConfig +from flask_covid19.blueprints.app_web.all_model_factory import BlueprintDateReportedFactory from flask_covid19.blueprints.data_who.who_model import WhoCountryRegion, WhoDateReported, WhoCountry, WhoData from flask_covid19.blueprints.data_who.who_model_import import WhoImport @@ -35,7 +36,7 @@ class WhoServiceUpdateFull(WhoServiceUpdateBase): # app.logger.info(str(b)) for s_date_reported in WhoImport.get_dates_reported_as_string_array(): i += 1 - o = WhoDateReported.create_new_object_factory(my_date_rep=s_date_reported) + o = BlueprintDateReportedFactory.create_new_object_for_who(my_date_rep=s_date_reported) db.session.add(o) a = str(o) b = str(i)