diff --git a/README.md b/README.md index ee1ed77c0a8babca27745213da83e8e690f2ba9d..1ab85f8df53b2a66038b945c6f30d079f2f6d4b1 100644 --- a/README.md +++ b/README.md @@ -236,9 +236,11 @@ class WhoGlobalDataImportTable(db.Model): * Fixed #58 frontend: remove jumbotron from all pageheader, put jumbotron as main content on home page * Fixed #47 major refactoring: Routes from app.py to org...who,europe,... (Doublette von #65) * Fixed #48 major refactoring: Tasks from server_mq.py to org...who,europe,... (Doublette von #65) -* Fixed #64 major refactoring: create two packages: for web app and for celery worker +* Fixed #64 major refactoring: create two packages: for web app and for celery worker +* Issue #68 TODO: move Queries from Services to Model-Classes * Issue #65 major refactoring: add flask-blueprints for admin, common, europe, rki, vaccination, who + ### 0.0.14 Release * Issue #66 frontend: migrate to Bootstrap Theme sb-admin-angular * Issue #67 implement Flask-Login diff --git a/covid19/oodm/admin/admin_service.py b/covid19/oodm/admin/admin_service.py index 83b6e054b1807783e57f01d3344442747f1f0fcd..599d35e66c78b2142a6139a0b641a7854b9866ea 100644 --- a/covid19/oodm/admin/admin_service.py +++ b/covid19/oodm/admin/admin_service.py @@ -6,12 +6,12 @@ from database import app class AdminService: def __init__(self, database): - app.logger.info("------------------------------------------------------------") - app.logger.info(" Admin Service [init]") - app.logger.info("------------------------------------------------------------") + app.logger.debug("------------------------------------------------------------") + app.logger.debug(" Admin Service [init]") + app.logger.debug("------------------------------------------------------------") self.__database = database self.limit_nr = 20 - app.logger.info("------------------------------------------------------------") + app.logger.debug("------------------------------------------------------------") app.logger.info(" Admin Service [ready]") def run_admin_database_dump(self): diff --git a/covid19/oodm/common/common_model.py b/covid19/oodm/common/common_model.py index 97b724f13e9a32267c227b58a7c5b865fef6771a..66217d8c1b289466b94b3596a52083bbf819523d 100644 --- a/covid19/oodm/common/common_model.py +++ b/covid19/oodm/common/common_model.py @@ -1,4 +1,4 @@ -from dfdsfjshdbjhfds import db, ITEMS_PER_PAGE +from database import db, ITEMS_PER_PAGE class CommonDatum(db.Model): diff --git a/covid19/oodm/common/common_service.py b/covid19/oodm/common/common_service.py index 8203d45a9b35f97435b514310f1f107c06f2f215..e2bc66a41d89420fe50503cd7e676c9c11b38f7c 100644 --- a/covid19/oodm/common/common_service.py +++ b/covid19/oodm/common/common_service.py @@ -3,10 +3,10 @@ from database import app class CommonService: def __init__(self, database): - app.logger.info("------------------------------------------------------------") - app.logger.info(" Common Service [init]") - app.logger.info("------------------------------------------------------------") + app.logger.debug("------------------------------------------------------------") + app.logger.debug(" Common Service [init]") + app.logger.debug("------------------------------------------------------------") self.__database = database self.limit_nr = 20 - app.logger.info("------------------------------------------------------------") + app.logger.debug("------------------------------------------------------------") app.logger.info(" Common Service [ready]") diff --git a/covid19/oodm/europe/europe_model.py b/covid19/oodm/europe/europe_model.py index 631db4d0ca3b1117798c67b46c77c89d62bce551..89e8bd339fa2333bf54a32547a61e02e0c6ac47a 100644 --- a/covid19/oodm/europe/europe_model.py +++ b/covid19/oodm/europe/europe_model.py @@ -3,86 +3,6 @@ from datetime import date from database import db, ITEMS_PER_PAGE -class EuropeDataImportTable(db.Model): - __tablename__ = 'europe_data_import' - - id = db.Column(db.Integer, primary_key=True) - date_rep = db.Column(db.String(255), nullable=False) - year_week = db.Column(db.String(255), nullable=False) - cases_weekly = db.Column(db.String(255), nullable=False) - deaths_weekly = db.Column(db.String(255), nullable=False) - pop_data_2019 = db.Column(db.String(255), nullable=False) - countries_and_territories = db.Column(db.String(255), nullable=False) - geo_id = db.Column(db.String(255), nullable=False) - country_territory_code = db.Column(db.String(255), nullable=False) - continent_exp = db.Column(db.String(255), nullable=False) - notification_rate_per_100000_population_14days = db.Column(db.String(255), nullable=False) - - @classmethod - def remove_all(cls): - # TODO: SQLalchemy instead of SQL - db.session.execute("delete from " + cls.__tablename__ + " cascade") - 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) - - @classmethod - def get_all(cls): - return db.session.query(cls).all() - - @classmethod - def get_by_id(cls, other_id): - return db.session.query(cls).filter(cls.id == other_id).one() - - @classmethod - def get_date_rep(cls): - #TODO: SQLalchemy instead of SQL - sql = "select distinct date_rep, year_week from europe_data_import order by year_week desc" - return db.session.execute(sql).fetchall() - - @classmethod - def get_continent(cls): - # TODO: SQLalchemy instead of SQL - sql = "select distinct continent_exp from europe_data_import order by continent_exp asc" - return db.session.execute(sql).fetchall() - - @classmethod - def get_countries_of_continent(cls, my_continent): - my_continent_exp = my_continent.continent_exp - my_params = {} - my_params['my_continent_param'] = my_continent_exp - # TODO: SQLalchemy instead of SQL - sql = """ - select distinct - countries_and_territories, - geo_id, - country_territory_code, - pop_data_2019, - continent_exp - from - europe_data_import - group by - countries_and_territories, - geo_id, - country_territory_code, - pop_data_2019, - continent_exp - having - continent_exp = :my_continent_param - order by - countries_and_territories - """ - return db.session.execute(sql, my_params).fetchall() - - @classmethod - def find_by_date_reported(cls, europe_date_reported): - return db.session.query(cls).filter(cls.year_week == europe_date_reported.year_week).all() - - class EuropeDateReported(db.Model): __tablename__ = 'europe_date_reported' diff --git a/covid19/oodm/europe/europe_model_import.py b/covid19/oodm/europe/europe_model_import.py new file mode 100644 index 0000000000000000000000000000000000000000..4570ba8dae203de7dfb0ac2d8b1770e4e7ca9bba --- /dev/null +++ b/covid19/oodm/europe/europe_model_import.py @@ -0,0 +1,81 @@ +from database import db, ITEMS_PER_PAGE + + +class EuropeDataImportTable(db.Model): + __tablename__ = 'europe_data_import' + + id = db.Column(db.Integer, primary_key=True) + date_rep = db.Column(db.String(255), nullable=False) + year_week = db.Column(db.String(255), nullable=False) + cases_weekly = db.Column(db.String(255), nullable=False) + deaths_weekly = db.Column(db.String(255), nullable=False) + pop_data_2019 = db.Column(db.String(255), nullable=False) + countries_and_territories = db.Column(db.String(255), nullable=False) + geo_id = db.Column(db.String(255), nullable=False) + country_territory_code = db.Column(db.String(255), nullable=False) + continent_exp = db.Column(db.String(255), nullable=False) + notification_rate_per_100000_population_14days = db.Column(db.String(255), nullable=False) + + @classmethod + def remove_all(cls): + # TODO: SQLalchemy instead of SQL + db.session.execute("delete from " + cls.__tablename__ + " cascade") + 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) + + @classmethod + def get_all(cls): + return db.session.query(cls).all() + + @classmethod + def get_by_id(cls, other_id): + return db.session.query(cls).filter(cls.id == other_id).one() + + @classmethod + def get_date_rep(cls): + #TODO: SQLalchemy instead of SQL + sql = "select distinct date_rep, year_week from europe_data_import order by year_week desc" + return db.session.execute(sql).fetchall() + + @classmethod + def get_continent(cls): + # TODO: SQLalchemy instead of SQL + sql = "select distinct continent_exp from europe_data_import order by continent_exp asc" + return db.session.execute(sql).fetchall() + + @classmethod + def get_countries_of_continent(cls, my_continent): + my_continent_exp = my_continent.continent_exp + my_params = {} + my_params['my_continent_param'] = my_continent_exp + # TODO: SQLalchemy instead of SQL + sql = """ + select distinct + countries_and_territories, + geo_id, + country_territory_code, + pop_data_2019, + continent_exp + from + europe_data_import + group by + countries_and_territories, + geo_id, + country_territory_code, + pop_data_2019, + continent_exp + having + continent_exp = :my_continent_param + order by + countries_and_territories + """ + return db.session.execute(sql, my_params).fetchall() + + @classmethod + def find_by_date_reported(cls, europe_date_reported): + return db.session.query(cls).filter(cls.year_week == europe_date_reported.year_week).all() diff --git a/covid19/oodm/europe/europe_service.py b/covid19/oodm/europe/europe_service.py index 854517321dbeaf40488ee60d51803137b312b65b..36a4f91b3231edfd85ac3e1d56f232612aea8bf5 100644 --- a/covid19/oodm/europe/europe_service.py +++ b/covid19/oodm/europe/europe_service.py @@ -1,5 +1,3 @@ -import os - from database import app from covid19.oodm.europe.europe_service_download import EuropeServiceDownload from covid19.oodm.europe.europe_service_import import EuropeServiceImport @@ -8,19 +6,14 @@ from covid19.oodm.europe.europe_service_update import EuropeServiceUpdate class EuropeService: def __init__(self, database): - app.logger.info("------------------------------------------------------------") - app.logger.info(" Europe Service [init]") - app.logger.info("------------------------------------------------------------") + app.logger.debug("------------------------------------------------------------") + app.logger.debug(" Europe Service [init]") + app.logger.debug("------------------------------------------------------------") self.__database = database - self.limit_nr = 20 - self.__europa_cvsfile_name = "ecdc_europa_data.csv" - self.__src_europa_cvsfile_name = "data"+os.sep+self.__europa_cvsfile_name - self.__src_europa_cvsfile_tmp_name = "data"+os.sep+"tmp_"+self.__europa_cvsfile_name - self.__url_src_data = "https://opendata.ecdc.europa.eu/covid19/casedistribution/csv/" self.europe_service_download = EuropeServiceDownload(database) self.europe_service_import = EuropeServiceImport(database) self.europe_service_update = EuropeServiceUpdate(database) - app.logger.info("------------------------------------------------------------") + app.logger.debug("------------------------------------------------------------") app.logger.info(" Europe Service [ready] ") def download(self): diff --git a/covid19/oodm/europe/europe_service_config.py b/covid19/oodm/europe/europe_service_config.py new file mode 100644 index 0000000000000000000000000000000000000000..bf152db3844a13dbca3421f7e4926eff5f183104 --- /dev/null +++ b/covid19/oodm/europe/europe_service_config.py @@ -0,0 +1,9 @@ +import os + + +class EuropeServiceDownloadConfig: + def __init__(self): + self.limit_nr = 20 + self.data_path = ".."+os.sep+"data" + self.cvsfile_name = "ecdc_europa_data.csv" + self.url_src_data = "https://opendata.ecdc.europa.eu/covid19/casedistribution/csv/" diff --git a/covid19/oodm/europe/europe_service_download.py b/covid19/oodm/europe/europe_service_download.py index fdf7107e2fcd1c16e97609e523f542974efd9aeb..39d880a01ab9f74a3e28d4acde2da913f11cac8b 100644 --- a/covid19/oodm/europe/europe_service_download.py +++ b/covid19/oodm/europe/europe_service_download.py @@ -2,25 +2,18 @@ import os import wget from flask import flash from database import app - - -class EuropeServiceDownloadConfig: - def __init__(self): - self.limit_nr = 20 - self.data_path = ".."+os.sep+"data" - self.cvsfile_name = "ecdc_europa_data.csv" - self.url_src_data = "https://opendata.ecdc.europa.eu/covid19/casedistribution/csv/" +from covid19.oodm.europe.europe_service_config import EuropeServiceDownloadConfig class EuropeServiceDownload: def __init__(self, database): - app.logger.info("------------------------------------------------------------") - app.logger.info(" Europe Service Download [init]") - app.logger.info("------------------------------------------------------------") + app.logger.debug("------------------------------------------------------------") + app.logger.debug(" Europe Service Download [init]") + app.logger.debug("------------------------------------------------------------") self.__database = database self.cfg = EuropeServiceDownloadConfig() - app.logger.info("------------------------------------------------------------") - app.logger.info(" Europe Service Download [ready] ") + app.logger.debug("------------------------------------------------------------") + app.logger.debug(" Europe Service Download [ready] ") def download(self): src_cvsfile_name = self.cfg.data_path+os.sep+self.cfg.cvsfile_name diff --git a/covid19/oodm/europe/europe_service_import.py b/covid19/oodm/europe/europe_service_import.py index 6e9eae7e5b01602c8a23ba8bb236a476c08e0992..bbc41fe2302c4db87d36e53e8f291ba12141c309 100644 --- a/covid19/oodm/europe/europe_service_import.py +++ b/covid19/oodm/europe/europe_service_import.py @@ -3,19 +3,19 @@ import csv import psycopg2 from database import db, app -from covid19.oodm.europe.europe_model import EuropeDataImportTable -from covid19.oodm.europe.europe_service_download import EuropeServiceDownloadConfig +from covid19.oodm.europe.europe_model_import import EuropeDataImportTable +from covid19.oodm.europe.europe_service_config import EuropeServiceDownloadConfig class EuropeServiceImport: def __init__(self, database): - app.logger.info("------------------------------------------------------------") - app.logger.info(" Europe Service Import [init]") - app.logger.info("------------------------------------------------------------") + app.logger.debug("------------------------------------------------------------") + app.logger.debug(" Europe Service Import [init]") + app.logger.debug("------------------------------------------------------------") self.__database = database self.cfg = EuropeServiceDownloadConfig() - app.logger.info("------------------------------------------------------------") - app.logger.info(" Europe Service Import [ready] ") + app.logger.debug("------------------------------------------------------------") + app.logger.debug(" Europe Service Import [ready] ") def import_datafile_to_db(self): src_cvsfile_name = self.cfg.data_path+os.sep+self.cfg.cvsfile_name diff --git a/covid19/oodm/europe/europe_service_update.py b/covid19/oodm/europe/europe_service_update.py index 8a15b190d2e4fb95d38681ef30f02e241fd8f041..b3f3474a30fe719e830d041c55e1adec03772e48 100644 --- a/covid19/oodm/europe/europe_service_update.py +++ b/covid19/oodm/europe/europe_service_update.py @@ -1,22 +1,19 @@ -import os from database import db, app -from covid19.oodm.europe.europe_model import EuropeDataImportTable, \ - EuropeDateReported, EuropeContinent, EuropeCountry, EuropeData +from covid19.oodm.europe.europe_service_config import EuropeServiceDownloadConfig +from covid19.oodm.europe.europe_model_import import EuropeDataImportTable +from covid19.oodm.europe.europe_model import EuropeDateReported, EuropeContinent, EuropeCountry, EuropeData class EuropeServiceUpdate: def __init__(self, database): - app.logger.info("------------------------------------------------------------") - app.logger.info(" Europe Service Update [init]") - app.logger.info("------------------------------------------------------------") + app.logger.debug("------------------------------------------------------------") + app.logger.debug(" Europe Service Update [init]") + app.logger.debug("------------------------------------------------------------") self.__database = database - self.limit_nr = 20 - self.__cvsfile_name = "ecdc_europa_data.csv" - self.__src_cvsfile_name = "data" + os.sep + self.__cvsfile_name - self.__src_cvsfile_tmp_name = "data" + os.sep + "tmp_" + self.__cvsfile_name + self.cfg = EuropeServiceDownloadConfig() self.__url_src_data = "https://opendata.ecdc.europa.eu/covid19/casedistribution/csv/" - app.logger.info("------------------------------------------------------------") - app.logger.info(" Europe Service Update [ready] ") + app.logger.debug("------------------------------------------------------------") + app.logger.debug(" Europe Service Update [ready] ") def __update_date_reported(self): app.logger.info(" __update_date_reported [begin]") diff --git a/covid19/oodm/nrw/__init__.py b/covid19/oodm/nrw/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/covid19/oodm/rki/rki_model_import.py b/covid19/oodm/rki/rki_model_import.py new file mode 100644 index 0000000000000000000000000000000000000000..00a9055d552e24cfdbec09328b5dbad2f756c331 --- /dev/null +++ b/covid19/oodm/rki/rki_model_import.py @@ -0,0 +1,74 @@ +from database import db, ITEMS_PER_PAGE + + +class RkiGermanyDataImportTable(db.Model): + __tablename__ = 'rki_global_data_import' + + id = db.Column(db.Integer, primary_key=True) + date_reported = db.Column(db.String(255), nullable=False) + country_code = db.Column(db.String(255), nullable=False) + country = db.Column(db.String(255), nullable=False) + who_region = db.Column(db.String(255), nullable=False) + new_cases = db.Column(db.String(255), nullable=False) + cumulative_cases = db.Column(db.String(255), nullable=False) + new_deaths = db.Column(db.String(255), nullable=False) + cumulative_deaths = db.Column(db.String(255), nullable=False) + + @classmethod + def remove_all(cls): + db.session.execute("delete from " + cls.__tablename__) + db.session.commit() + return None + + @classmethod + def get_all_as_page(cls, page): + return db.session.query(cls).paginate(page, per_page=ITEMS_PER_PAGE) + + @classmethod + def get_all(cls): + return db.session.query(cls).all() + + @classmethod + def get_by_id(cls, other_id): + return db.session.query(cls).filter(cls.id == other_id).one() + + @classmethod + def get_regions(cls): + return db.session.query(cls.who_region).distinct() + + @classmethod + def get_dates_reported(cls): + return db.session.query(cls.date_reported).distinct() + + @classmethod + def get_for_one_day(cls, day): + return db.session.query(cls).filter(cls.date_reported == day).all() + + @classmethod + def get_new_dates_as_array(cls): + sql_query = """ + select + date_reported + from + who_global_data_import + where + date_reported + not in ( + select + distinct + who_date_reported.date_reported + from + who_global_data + left join + who_date_reported + on + who_global_data.date_reported_id=who_date_reported.id + ) + group by + who_global_data_import.date_reported + order by date_reported desc + """ + new_dates = [] + for item in db.session.execute(sql_query): + new_dates.append(item['date_reported']) + return new_dates diff --git a/covid19/oodm/rki/rki_service.py b/covid19/oodm/rki/rki_service.py index 03dd935761a77b30d6ed80c0a9914a690ff09a9f..f8934da754587f1e080a4148d53433698e217e14 100644 --- a/covid19/oodm/rki/rki_service.py +++ b/covid19/oodm/rki/rki_service.py @@ -7,15 +7,15 @@ from covid19.oodm.rki.rki_service_update import RkiServiceUpdate class RkiService: def __init__(self, database): - app.logger.info("------------------------------------------------------------") - app.logger.info(" RKI Service [init]") - app.logger.info("------------------------------------------------------------") + app.logger.debug("------------------------------------------------------------") + app.logger.debug(" RKI Service [init]") + app.logger.debug("------------------------------------------------------------") self.__database = database self.limit_nr = 20 self.service_download = RkiServiceDownload(database) self.service_import = RkiServiceImport(database) self.service_update = RkiServiceUpdate(database) - app.logger.info("------------------------------------------------------------") + app.logger.debug("------------------------------------------------------------") app.logger.info(" RKI Service [ready]") def run_download(self): diff --git a/covid19/oodm/rki/rki_service_download.py b/covid19/oodm/rki/rki_service_download.py index 8c600fe9600d7bfc027fe259f08197e1f6dacb80..ed188bd764cca637413ee3202c69f41eb9188a50 100644 --- a/covid19/oodm/rki/rki_service_download.py +++ b/covid19/oodm/rki/rki_service_download.py @@ -8,9 +8,9 @@ from database import app class RkiServiceDownload: def __init__(self, database): - app.logger.info("------------------------------------------------------------") - app.logger.info(" RKI Service Download [init]") - app.logger.info("------------------------------------------------------------") + app.logger.debug("------------------------------------------------------------") + app.logger.debug(" RKI Service Download [init]") + app.logger.debug("------------------------------------------------------------") self.__database = database self.limit_nr = 20 datum_heute = date.today().isoformat() @@ -21,8 +21,8 @@ class RkiServiceDownload: self.__landkreise_cvsfile_name = "RKI_COVID19__"+datum_heute+"__landkreise.csv" self.__landkreise_url_src ="https://opendata.arcgis.com/datasets/917fc37a709542548cc3be077a786c17_0.csv" # - app.logger.info("------------------------------------------------------------") - app.logger.info(" RKI Service Download [ready]") + app.logger.debug("------------------------------------------------------------") + app.logger.debug(" RKI Service Download [ready]") def __download_file(self, datascope, cvsfile_name, url_src): src_cvsfile_path = ".." + os.sep + "data" + os.sep + cvsfile_name @@ -38,19 +38,19 @@ class RkiServiceDownload: data_file = wget.download(url_src, src_cvsfile_path) app.logger.info(" " + data_file + " ") except RuntimeError as error: - app.logger.info("############################################################") - app.logger.info(" " + error + " ") - app.logger.info("############################################################") + app.logger.error("############################################################") + app.logger.error(" " + error + " ") + app.logger.error("############################################################") flash(message="error while downloading: " + url_src, category='error') except Exception as error: - app.logger.info("############################################################") - app.logger.info(error) - app.logger.info("############################################################") + app.logger.error("############################################################") + app.logger.error(error) + app.logger.error("############################################################") flash(message="error after downloading: " + url_src, category='error') except AttributeError as aerror: - app.logger.info("############################################################") - app.logger.info(aerror) - app.logger.info("############################################################") + app.logger.error("############################################################") + app.logger.error(aerror) + app.logger.error("############################################################") finally: app.logger.info("------------------------------------------------------------") app.logger.info(" download - RKI "+datascope+" [done] ") diff --git a/covid19/oodm/rki/rki_service_import.py b/covid19/oodm/rki/rki_service_import.py index 69421d1aaa7c9ec12b2aaeccbe5571f8c9799cc6..acea710af3182edd836f1def906b8f55f714787d 100644 --- a/covid19/oodm/rki/rki_service_import.py +++ b/covid19/oodm/rki/rki_service_import.py @@ -10,17 +10,17 @@ from covid19.oodm.who.who_model import WhoGlobalDataImportTable class RkiServiceImport: def __init__(self, database): - app.logger.info("------------------------------------------------------------") - app.logger.info(" RKI Service Import [init]") - app.logger.info("------------------------------------------------------------") + app.logger.debug("------------------------------------------------------------") + app.logger.debug(" RKI Service Import [init]") + app.logger.debug("------------------------------------------------------------") self.__database = database self.limit_nr = 20 self.__who_cvsfile_name = "WHO-COVID-19-global-data.csv" self.__src_who_cvsfile_name = "data"+os.sep+self.__who_cvsfile_name self.__src_who_cvsfile_tmp_name = "data"+os.sep+"tmp_"+self.__who_cvsfile_name self.__url_src_data = "https://covid19.who.int/"+self.__who_cvsfile_name - app.logger.info("------------------------------------------------------------") - app.logger.info(" RKI Service Import [ready]") + app.logger.debug("------------------------------------------------------------") + app.logger.debug(" RKI Service Import [ready]") def import_file(self): app.logger.info(" import RKI [begin]") diff --git a/covid19/oodm/rki/rki_service_update.py b/covid19/oodm/rki/rki_service_update.py index 71328ab69cf47156059a831a44cb7e053194d8b2..cacd89ce41c5579cb43c53ea1b99d46fb54c8427 100644 --- a/covid19/oodm/rki/rki_service_update.py +++ b/covid19/oodm/rki/rki_service_update.py @@ -9,13 +9,13 @@ rki_service_update = None class RkiServiceUpdate: def __init__(self, database): - app.logger.info("------------------------------------------------------------") - app.logger.info(" RKI Service Update [init]") - app.logger.info("------------------------------------------------------------") + app.logger.debug("------------------------------------------------------------") + app.logger.debug(" RKI Service Update [init]") + app.logger.debug("------------------------------------------------------------") self.__database = database self.limit_nr = 20 - app.logger.info("------------------------------------------------------------") - app.logger.info(" RKI Service Update [ready]") + app.logger.debug("------------------------------------------------------------") + app.logger.debug(" RKI Service Update [ready]") def __update_who_date_reported(self): app.logger.info(" update who_date_reported [begin]") @@ -24,7 +24,7 @@ class RkiServiceUpdate: for i_date_reported, in RkiGermanyDataImportTable.get_dates_reported(): c = RkiDateReported.find_by_date_reported(i_date_reported) if c is None: - o = RkiDateReported.create_new_object_factor(my_date_rep=i_date_reported) + o = RkiDateReported.create_new_object_factory(my_date_rep=i_date_reported) db.session.add(o) app.logger.info(" update who_date_reported "+i_date_reported+" added NEW") if i % 10 == 0: diff --git a/covid19/oodm/vaccination/vaccination_model.py b/covid19/oodm/vaccination/vaccination_model.py index 9dfbbc38f6bc4f3594edc60223aba25eec88335d..517409ac8775e0b54ab0622cbf98afb0d31ba493 100644 --- a/covid19/oodm/vaccination/vaccination_model.py +++ b/covid19/oodm/vaccination/vaccination_model.py @@ -1,65 +1,2 @@ from database import db, ITEMS_PER_PAGE - -class VaccinationGermanyTimeline(db.Model): - __tablename__ = 'vaccination_germany_timeline' - - id = db.Column(db.Integer, primary_key=True) - datum = db.Column(db.String(255), nullable=False) - dosen_kumulativ = db.Column(db.Integer, nullable=False) - dosen_differenz_zum_vortag = db.Column(db.Integer, nullable=False) - dosen_biontech_kumulativ = db.Column(db.Integer, nullable=False) - dosen_moderna_kumulativ = db.Column(db.Integer, nullable=False) - personen_erst_kumulativ = db.Column(db.Integer, nullable=False) - personen_voll_kumulativ = db.Column(db.Integer, nullable=False) - impf_quote_erst = db.Column(db.Float, nullable=False) - impf_quote_voll = db.Column(db.Float, nullable=False) - indikation_alter_dosen = db.Column(db.Integer, nullable=False) - indikation_beruf_dosen = db.Column(db.Integer, nullable=False) - indikation_medizinisch_dosen = db.Column(db.Integer, nullable=False) - indikation_pflegeheim_dosen = db.Column(db.Integer, nullable=False) - indikation_alter_erst = db.Column(db.Integer, nullable=False) - indikation_beruf_erst = db.Column(db.Integer, nullable=False) - indikation_medizinisch_erst = db.Column(db.Integer, nullable=False) - indikation_pflegeheim_erst = db.Column(db.Integer, nullable=False) - indikation_alter_voll = db.Column(db.Integer, nullable=False) - indikation_beruf_voll = db.Column(db.Integer, nullable=False) - indikation_medizinisch_voll = db.Column(db.Integer, nullable=False) - indikation_pflegeheim_voll = db.Column(db.Integer, nullable=False) - - @classmethod - def remove_all(cls): - db.session.execute("delete from " + cls.__tablename__) - db.session.commit() - return None - - @classmethod - def get_all_as_page(cls, page): - return db.session.query(cls)\ - .order_by(cls.datum.desc())\ - .paginate(page, per_page=ITEMS_PER_PAGE) - - @classmethod - def get_all(cls): - return db.session.query(cls)\ - .order_by(cls.datum.desc())\ - .all() - - @classmethod - def get_by_id(cls, other_id): - return db.session.query(cls)\ - .filter(cls.id == other_id)\ - .one() - - @classmethod - def find_by_id(cls, other_id): - return db.session.query(cls) \ - .filter(cls.id == other_id) \ - .one_or_none() - - @classmethod - def find_by_datum(cls, other_datum): - return db.session.query(cls) \ - .filter(cls.datum == other_datum) \ - .one_or_none() - diff --git a/covid19/oodm/vaccination/vaccination_model_import.py b/covid19/oodm/vaccination/vaccination_model_import.py new file mode 100644 index 0000000000000000000000000000000000000000..9dfbbc38f6bc4f3594edc60223aba25eec88335d --- /dev/null +++ b/covid19/oodm/vaccination/vaccination_model_import.py @@ -0,0 +1,65 @@ +from database import db, ITEMS_PER_PAGE + + +class VaccinationGermanyTimeline(db.Model): + __tablename__ = 'vaccination_germany_timeline' + + id = db.Column(db.Integer, primary_key=True) + datum = db.Column(db.String(255), nullable=False) + dosen_kumulativ = db.Column(db.Integer, nullable=False) + dosen_differenz_zum_vortag = db.Column(db.Integer, nullable=False) + dosen_biontech_kumulativ = db.Column(db.Integer, nullable=False) + dosen_moderna_kumulativ = db.Column(db.Integer, nullable=False) + personen_erst_kumulativ = db.Column(db.Integer, nullable=False) + personen_voll_kumulativ = db.Column(db.Integer, nullable=False) + impf_quote_erst = db.Column(db.Float, nullable=False) + impf_quote_voll = db.Column(db.Float, nullable=False) + indikation_alter_dosen = db.Column(db.Integer, nullable=False) + indikation_beruf_dosen = db.Column(db.Integer, nullable=False) + indikation_medizinisch_dosen = db.Column(db.Integer, nullable=False) + indikation_pflegeheim_dosen = db.Column(db.Integer, nullable=False) + indikation_alter_erst = db.Column(db.Integer, nullable=False) + indikation_beruf_erst = db.Column(db.Integer, nullable=False) + indikation_medizinisch_erst = db.Column(db.Integer, nullable=False) + indikation_pflegeheim_erst = db.Column(db.Integer, nullable=False) + indikation_alter_voll = db.Column(db.Integer, nullable=False) + indikation_beruf_voll = db.Column(db.Integer, nullable=False) + indikation_medizinisch_voll = db.Column(db.Integer, nullable=False) + indikation_pflegeheim_voll = db.Column(db.Integer, nullable=False) + + @classmethod + def remove_all(cls): + db.session.execute("delete from " + cls.__tablename__) + db.session.commit() + return None + + @classmethod + def get_all_as_page(cls, page): + return db.session.query(cls)\ + .order_by(cls.datum.desc())\ + .paginate(page, per_page=ITEMS_PER_PAGE) + + @classmethod + def get_all(cls): + return db.session.query(cls)\ + .order_by(cls.datum.desc())\ + .all() + + @classmethod + def get_by_id(cls, other_id): + return db.session.query(cls)\ + .filter(cls.id == other_id)\ + .one() + + @classmethod + def find_by_id(cls, other_id): + return db.session.query(cls) \ + .filter(cls.id == other_id) \ + .one_or_none() + + @classmethod + def find_by_datum(cls, other_datum): + return db.session.query(cls) \ + .filter(cls.datum == other_datum) \ + .one_or_none() + diff --git a/covid19/oodm/vaccination/vaccination_service_config.py b/covid19/oodm/vaccination/vaccination_service_config.py new file mode 100644 index 0000000000000000000000000000000000000000..1b8267fea989bcada737bb29a3412834dd13df57 --- /dev/null +++ b/covid19/oodm/vaccination/vaccination_service_config.py @@ -0,0 +1,11 @@ +import os + + +class VaccinationServiceDownloadConfig: + def __init__(self): + self.limit_nr = 20 + self.data_path = ".." + os.sep + "data" + self.cvsfile_name = "germany_vaccinations_timeseries_v2.tsv" + self.cvsfile_path = self.data_path + os.sep + self.cvsfile_name + self.url_src_data = "https://impfdashboard.de/static/data/germany_vaccinations_timeseries_v2.tsv" + os.makedirs(self.data_path, exist_ok=True) diff --git a/covid19/oodm/vaccination/vaccination_service_download.py b/covid19/oodm/vaccination/vaccination_service_download.py index b853a942973afd8c99222d0a3f16e85ff6e5a6b8..0bd9145f854223a76985a5e5027fb9b5c5748c7b 100644 --- a/covid19/oodm/vaccination/vaccination_service_download.py +++ b/covid19/oodm/vaccination/vaccination_service_download.py @@ -2,16 +2,7 @@ import os import wget from flask import flash from database import app - - -class VaccinationServiceDownloadConfig: - def __init__(self): - self.limit_nr = 20 - self.data_path = ".."+os.sep+"data" - self.cvsfile_name = "germany_vaccinations_timeseries_v2.tsv" - self.cvsfile_path = self.data_path + os.sep + self.cvsfile_name - self.url_src_data = "https://impfdashboard.de/static/data/germany_vaccinations_timeseries_v2.tsv" - os.makedirs(self.data_path, exist_ok=True) +from covid19.oodm.vaccination.vaccination_service_config import VaccinationServiceDownloadConfig class VaccinationServiceDownload: diff --git a/covid19/oodm/vaccination/vaccination_service_import.py b/covid19/oodm/vaccination/vaccination_service_import.py index fe58b48fa563da50bea5317e11a8762354d39390..d185672a9c7c9bf4addb3a79a32b604ffaac3991 100644 --- a/covid19/oodm/vaccination/vaccination_service_import.py +++ b/covid19/oodm/vaccination/vaccination_service_import.py @@ -3,8 +3,8 @@ import csv import psycopg2 from database import db, app -from covid19.oodm.vaccination.vaccination_model import VaccinationGermanyTimeline -from covid19.oodm.vaccination.vaccination_service_download import VaccinationServiceDownloadConfig +from covid19.oodm.vaccination.vaccination_model_import import VaccinationGermanyTimeline +from covid19.oodm.vaccination.vaccination_service_config import VaccinationServiceDownloadConfig class VaccinationServiceImport: diff --git a/covid19/oodm/who/who_model.py b/covid19/oodm/who/who_model.py index 6b2da2573847837100003d11b1a95b41f0af96af..10cb003ea446ecfc4989c5c8aba0706c59e18c4a 100644 --- a/covid19/oodm/who/who_model.py +++ b/covid19/oodm/who/who_model.py @@ -4,85 +4,6 @@ from database import db, ITEMS_PER_PAGE from sqlalchemy.orm import joinedload -class WhoGlobalDataImportTable(db.Model): - __tablename__ = 'who_global_data_import' - - id = db.Column(db.Integer, primary_key=True) - date_reported = db.Column(db.String(255), nullable=False) - country_code = db.Column(db.String(255), nullable=False) - country = db.Column(db.String(255), nullable=False) - who_region = db.Column(db.String(255), nullable=False) - new_cases = db.Column(db.String(255), nullable=False) - cumulative_cases = db.Column(db.String(255), nullable=False) - new_deaths = db.Column(db.String(255), nullable=False) - cumulative_deaths = db.Column(db.String(255), nullable=False) - row_imported = db.Column(db.Boolean, nullable=False) - - @classmethod - def remove_all(cls): - # TODO: SQLalchemy instead of SQL - db.session.execute("delete from " + cls.__tablename__) - db.session.commit() - return None - - @classmethod - def get_all_as_page(cls, page): - return db.session.query(cls).order_by( - cls.date_reported.desc(), - cls.country.asc() - ).paginate(page, per_page=ITEMS_PER_PAGE) - - @classmethod - def get_all(cls): - return db.session.query(cls).all() - - @classmethod - def get_by_id(cls, other_id): - return db.session.query(cls).filter(cls.id == other_id).one() - - @classmethod - def get_regions(cls): - return db.session.query(cls.who_region).distinct() - - @classmethod - def get_dates_reported(cls): - return db.session.query(cls.date_reported).distinct() - - @classmethod - def get_for_one_day(cls, day): - return db.session.query(cls).filter(cls.date_reported == day).all() - - @classmethod - def get_new_dates_as_array(cls): - # TODO: SQLalchemy instead of SQL - sql_query = """ - select - date_reported - from - who_global_data_import - where - date_reported - not in ( - select - distinct - who_date_reported.date_reported - from - who_global_data - left join - who_date_reported - on - who_global_data.date_reported_id=who_date_reported.id - ) - group by - who_global_data_import.date_reported - order by date_reported desc - """ - new_dates = [] - for item in db.session.execute(sql_query): - new_dates.append(item['date_reported']) - return new_dates - - class WhoDateReported(db.Model): __tablename__ = 'who_date_reported' diff --git a/covid19/oodm/who/who_model_import.py b/covid19/oodm/who/who_model_import.py new file mode 100644 index 0000000000000000000000000000000000000000..625fc7a7663c69216a68a5b981f9991c3461ab85 --- /dev/null +++ b/covid19/oodm/who/who_model_import.py @@ -0,0 +1,80 @@ +from database import db, ITEMS_PER_PAGE + + +class WhoGlobalDataImportTable(db.Model): + __tablename__ = 'who_global_data_import' + + id = db.Column(db.Integer, primary_key=True) + date_reported = db.Column(db.String(255), nullable=False) + country_code = db.Column(db.String(255), nullable=False) + country = db.Column(db.String(255), nullable=False) + who_region = db.Column(db.String(255), nullable=False) + new_cases = db.Column(db.String(255), nullable=False) + cumulative_cases = db.Column(db.String(255), nullable=False) + new_deaths = db.Column(db.String(255), nullable=False) + cumulative_deaths = db.Column(db.String(255), nullable=False) + row_imported = db.Column(db.Boolean, nullable=False) + + @classmethod + def remove_all(cls): + # TODO: SQLalchemy instead of SQL + db.session.execute("delete from " + cls.__tablename__) + db.session.commit() + return None + + @classmethod + def get_all_as_page(cls, page): + return db.session.query(cls).order_by( + cls.date_reported.desc(), + cls.country.asc() + ).paginate(page, per_page=ITEMS_PER_PAGE) + + @classmethod + def get_all(cls): + return db.session.query(cls).all() + + @classmethod + def get_by_id(cls, other_id): + return db.session.query(cls).filter(cls.id == other_id).one() + + @classmethod + def get_regions(cls): + return db.session.query(cls.who_region).distinct() + + @classmethod + def get_dates_reported(cls): + return db.session.query(cls.date_reported).distinct() + + @classmethod + def get_for_one_day(cls, day): + return db.session.query(cls).filter(cls.date_reported == day).all() + + @classmethod + def get_new_dates_as_array(cls): + # TODO: SQLalchemy instead of SQL + sql_query = """ + select + date_reported + from + who_global_data_import + where + date_reported + not in ( + select + distinct + who_date_reported.date_reported + from + who_global_data + left join + who_date_reported + on + who_global_data.date_reported_id=who_date_reported.id + ) + group by + who_global_data_import.date_reported + order by date_reported desc + """ + new_dates = [] + for item in db.session.execute(sql_query): + new_dates.append(item['date_reported']) + return new_dates diff --git a/covid19/oodm/who/who_service.py b/covid19/oodm/who/who_service.py index a602ebbec938d0a502f6bc1818734e51f0999556..fbc323936b67abc4c11fa9c807ae26ea4b8b3303 100644 --- a/covid19/oodm/who/who_service.py +++ b/covid19/oodm/who/who_service.py @@ -1,5 +1,3 @@ -import os - from database import app from covid19.oodm.who.who_service_download import WhoServiceDownload from covid19.oodm.who.who_service_import import WhoServiceImport @@ -8,19 +6,14 @@ from covid19.oodm.who.who_service_update import WhoServiceUpdate class WhoService: def __init__(self, database): - app.logger.info("------------------------------------------------------------") - app.logger.info(" WHO Service [init]") - app.logger.info("------------------------------------------------------------") + app.logger.debug("------------------------------------------------------------") + app.logger.debug(" WHO Service [init]") + app.logger.debug("------------------------------------------------------------") self.__database = database - self.limit_nr = 20 - self.__who_cvsfile_name = "WHO-COVID-19-global-data.csv" - self.__src_who_cvsfile_name = "data"+os.sep+self.__who_cvsfile_name - self.__src_who_cvsfile_tmp_name = "data"+os.sep+"tmp_"+self.__who_cvsfile_name - self.__url_src_data = "https://covid19.who.int/"+self.__who_cvsfile_name self.who_service_download = WhoServiceDownload(database) self.who_service_import = WhoServiceImport(database) self.who_service_update = WhoServiceUpdate(database) - app.logger.info("------------------------------------------------------------") + app.logger.debug("------------------------------------------------------------") app.logger.info(" WHO Service [ready]") def run_download(self): diff --git a/covid19/oodm/who/who_service_config.py b/covid19/oodm/who/who_service_config.py new file mode 100644 index 0000000000000000000000000000000000000000..ad967c440f0b439533aa562f89601712485f7b74 --- /dev/null +++ b/covid19/oodm/who/who_service_config.py @@ -0,0 +1,9 @@ +import os + + +class WhoServiceDownloadConfig: + def __init__(self): + self.limit_nr = 20 + self.data_path = ".."+os.sep+"data" + self.cvsfile_name = "WHO-COVID-19-global-data.csv" + self.url_src_data = "https://covid19.who.int/" + self.cvsfile_name diff --git a/covid19/oodm/who/who_service_download.py b/covid19/oodm/who/who_service_download.py index 9b0221cf307e5307d67fd8f5b28774bb609e8128..1fab2a1a4b388821de0c932ba9f1980919650c11 100644 --- a/covid19/oodm/who/who_service_download.py +++ b/covid19/oodm/who/who_service_download.py @@ -2,25 +2,18 @@ import os import wget from flask import flash from database import app - - -class WhoServiceDownloadConfig: - def __init__(self): - self.limit_nr = 20 - self.data_path = ".."+os.sep+"data" - self.cvsfile_name = "WHO-COVID-19-global-data.csv" - self.url_src_data = "https://covid19.who.int/" + self.cvsfile_name +from covid19.oodm.who.who_service_config import WhoServiceDownloadConfig class WhoServiceDownload: def __init__(self, database): - app.logger.info("------------------------------------------------------------") - app.logger.info(" WHO Service Download [init]") - app.logger.info("------------------------------------------------------------") + app.logger.debug("------------------------------------------------------------") + app.logger.debug(" WHO Service Download [init]") + app.logger.debug("------------------------------------------------------------") self.__database = database self.cfg = WhoServiceDownloadConfig() - app.logger.info("------------------------------------------------------------") - app.logger.info(" WHO Service Download [ready]") + app.logger.debug("------------------------------------------------------------") + app.logger.debug(" WHO Service Download [ready]") def download_file(self): src_cvsfile_name = self.cfg.data_path+os.sep+self.cfg.cvsfile_name diff --git a/covid19/oodm/who/who_service_import.py b/covid19/oodm/who/who_service_import.py index b32b80f2e68465356fc6a66740a4e60b696db527..e1a717e055a68a754ce427de188805ec109b3eb4 100644 --- a/covid19/oodm/who/who_service_import.py +++ b/covid19/oodm/who/who_service_import.py @@ -3,21 +3,21 @@ import sys import csv import psycopg2 from database import db, app -from covid19.oodm.who.who_model import WhoGlobalDataImportTable +from covid19.oodm.who.who_model_import import WhoGlobalDataImportTable from covid19.oodm.who.who_service_download import WhoServiceDownloadConfig -who_service_import = None +#who_service_import = None class WhoServiceImport: def __init__(self, database): - app.logger.info("------------------------------------------------------------") - app.logger.info(" WHO Service Import [init]") - app.logger.info("------------------------------------------------------------") + app.logger.debug("------------------------------------------------------------") + app.logger.debug(" WHO Service Import [init]") + app.logger.debug("------------------------------------------------------------") self.__database = database self.cfg = WhoServiceDownloadConfig() - app.logger.info("------------------------------------------------------------") - app.logger.info(" WHO Service Import [ready]") + app.logger.debug("------------------------------------------------------------") + app.logger.debug(" WHO Service Import [ready]") def import_file(self): src_cvsfile_name = self.cfg.data_path + os.sep + self.cfg.cvsfile_name diff --git a/covid19/oodm/who/who_service_update.py b/covid19/oodm/who/who_service_update.py index ca564d6d5ee690701fdd7567ad405c72977ff5ec..d16c75e6d60bfab3b9be897f44483bac93e5d0e4 100644 --- a/covid19/oodm/who/who_service_update.py +++ b/covid19/oodm/who/who_service_update.py @@ -1,23 +1,18 @@ -import os - from database import db, app from covid19.oodm.who.who_model import WhoRegion, WhoDateReported, WhoCountry, WhoGlobalData -from covid19.oodm.who.who_model import WhoGlobalDataImportTable +from covid19.oodm.who.who_model_import import WhoGlobalDataImportTable +from covid19.oodm.who.who_service_download import WhoServiceDownloadConfig class WhoServiceUpdate: def __init__(self, database): - app.logger.info("------------------------------------------------------------") - app.logger.info(" WHO Service Update [init]") - app.logger.info("------------------------------------------------------------") + app.logger.debug("------------------------------------------------------------") + app.logger.debug(" WHO Service Update [init]") + app.logger.debug("------------------------------------------------------------") self.__database = database - self.limit_nr = 20 - self.__cvsfile_name = "WHO-COVID-19-global-data.csv" - self.__src_cvsfile_name = "data" + os.sep + self.__cvsfile_name - self.__src_cvsfile_tmp_name = "data" + os.sep + "tmp_" + self.__cvsfile_name - self.__url_src_data = "https://covid19.who.int/" + self.__cvsfile_name - app.logger.info("------------------------------------------------------------") - app.logger.info(" WHO Service Update [ready]") + self.cfg = WhoServiceDownloadConfig() + app.logger.debug("------------------------------------------------------------") + app.logger.debug(" WHO Service Update [ready]") def __update_who_date_reported(self): app.logger.info(" update who_date_reported [begin]") @@ -64,6 +59,7 @@ class WhoServiceUpdate: def __update_who_country(self): app.logger.info(" update who_country [begin]") app.logger.info("------------------------------------------------------------") + # TODO: Queries to Model-Classes sql_text = """ select distinct who_global_data_import.country_code, diff --git a/covid19/views.py b/covid19/views.py index 0e409327f6eade5990b834e682ab62fcca15be73..e16e53628cc62e29edd00c72ff18ee76f54593e2 100644 --- a/covid19/views.py +++ b/covid19/views.py @@ -6,7 +6,6 @@ import covid19.views_who import covid19.views_europe import covid19.views_vaccination import covid19.views_rki -import covid19.views_nrw import covid19.views_admin diff --git a/covid19/views_admin.py b/covid19/views_admin.py index 67a00036f69c3b1954052c251cd0081935636af7..404575d1cb9b9338b4309c9630c2157f69827003 100644 --- a/covid19/views_admin.py +++ b/covid19/views_admin.py @@ -1,5 +1,4 @@ from flask import render_template, redirect, url_for, flash -from sqlalchemy.exc import OperationalError from celery import states from celery.utils.log import get_task_logger @@ -7,12 +6,8 @@ from database import app from covid19.services import who_service, europe_service, vaccination_service, admin_service, rki_service from covid19.workers import celery -from covid19.oodm.who.who_model import WhoGlobalDataImportTable -from covid19.oodm.who.who_model import WhoRegion, WhoCountry, WhoDateReported, WhoGlobalData -from covid19.oodm.europe.europe_model import EuropeDataImportTable, EuropeDateReported, EuropeContinent -from covid19.oodm.europe.europe_model import EuropeCountry, EuropeData from covid19.oodm.common.common_model_transient import ApplicationPage -from covid19.oodm.vaccination.vaccination_model import VaccinationGermanyTimeline + drop_and_create_data_again = True diff --git a/covid19/views_europe.py b/covid19/views_europe.py index 55b4b155d138b80a9e629660f1ca976c90fa4c47..bf14483f4ec9e77afa5512e1f216f99321c9a4fa 100644 --- a/covid19/views_europe.py +++ b/covid19/views_europe.py @@ -6,8 +6,8 @@ from database import app from covid19.services import europe_service from covid19.workers import celery -from covid19.oodm.europe.europe_model import EuropeDataImportTable, EuropeDateReported, EuropeContinent -from covid19.oodm.europe.europe_model import EuropeCountry, EuropeData +from covid19.oodm.europe.europe_model_import import EuropeDataImportTable +from covid19.oodm.europe.europe_model import EuropeDateReported, EuropeContinent, EuropeCountry, EuropeData from covid19.oodm.common.common_model_transient import ApplicationPage diff --git a/covid19/views_nrw.py b/covid19/views_nrw.py deleted file mode 100644 index aa88480ba3965bd59a3f5d49b2646b8d86cc4acc..0000000000000000000000000000000000000000 --- a/covid19/views_nrw.py +++ /dev/null @@ -1,64 +0,0 @@ -from flask import render_template, redirect, url_for, flash -from sqlalchemy.exc import OperationalError -from celery import states -from celery.utils.log import get_task_logger - -from database import app -from covid19.services import who_service, europe_service, vaccination_service, admin_service, rki_service -from covid19.workers import celery - -from covid19.oodm.who.who_model import WhoGlobalDataImportTable -from covid19.oodm.who.who_model import WhoRegion, WhoCountry, WhoDateReported, WhoGlobalData -from covid19.oodm.europe.europe_model import EuropeDataImportTable, EuropeDateReported, EuropeContinent -from covid19.oodm.europe.europe_model import EuropeCountry, EuropeData -from covid19.oodm.common.common_model_transient import ApplicationPage -from covid19.oodm.vaccination.vaccination_model import VaccinationGermanyTimeline - - -################################################################################################################## -# -# NRW -# -################################################################################################################## -@app.route('/nrw/info') -def url_nrw_info(): - page_info = ApplicationPage('NRW', "Info") - return render_template( - 'nrw/nrw_info.html', - page_info=page_info) - - -@app.route('/nrw/tasks') -def url_nrw_tasks(): - page_info = ApplicationPage('NRW', "Tasks") - return render_template( - 'nrw/nrw_tasks.html', - page_info=page_info) - - -@app.route('/nrw/imported/<int:page>') -@app.route('/nrw/imported') -def url_nrw_imported(page=1): - page_info = ApplicationPage('NRW', "Last Import") - try: - who_imported_all = WhoGlobalDataImportTable.get_all_as_page(page) - except OperationalError: - flash("No data in the database.") - who_imported_all = None - return render_template( - 'nrw/nrw_imported.html', - page_data=who_imported_all, - page_info=page_info) - - -@app.route('/nrw/bochum/<int:page>') -@app.route('/nrw/bochum') -def url_nrw_bochum(page=1): - page_info = ApplicationPage('NRW', "Bochum") - who_country = WhoCountry.get_germany() - list_who_global_data = WhoGlobalData.get_data_for_country(who_country, page) - return render_template( - 'nrw/nrw_stadt.html', - who_country=who_country, - page_data=list_who_global_data, - page_info=page_info) diff --git a/covid19/views_rki.py b/covid19/views_rki.py index 0a6f8b5409b0f70751d7c0db28e76b9312f83e37..2355250ce9b38668321c7a7a0b501e482420bfac 100644 --- a/covid19/views_rki.py +++ b/covid19/views_rki.py @@ -3,7 +3,7 @@ from sqlalchemy.exc import OperationalError from database import app -from covid19.oodm.who.who_model import WhoGlobalDataImportTable +from covid19.oodm.who.who_model_import import WhoGlobalDataImportTable from covid19.oodm.common.common_model_transient import ApplicationPage drop_and_create_data_again = True diff --git a/covid19/views_vaccination.py b/covid19/views_vaccination.py index e0b088b8027416408c98164f0ea960ade854026b..f7000ca9da1938d31c995a81f0207aeb51b49230 100644 --- a/covid19/views_vaccination.py +++ b/covid19/views_vaccination.py @@ -1,18 +1,13 @@ from flask import render_template, redirect, url_for, flash -from sqlalchemy.exc import OperationalError from celery import states from celery.utils.log import get_task_logger from database import app -from covid19.services import who_service, europe_service, vaccination_service, admin_service, rki_service +from covid19.services import vaccination_service from covid19.workers import celery -from covid19.oodm.who.who_model import WhoGlobalDataImportTable -from covid19.oodm.who.who_model import WhoRegion, WhoCountry, WhoDateReported, WhoGlobalData -from covid19.oodm.europe.europe_model import EuropeDataImportTable, EuropeDateReported, EuropeContinent -from covid19.oodm.europe.europe_model import EuropeCountry, EuropeData +from covid19.oodm.vaccination.vaccination_model_import import VaccinationGermanyTimeline from covid19.oodm.common.common_model_transient import ApplicationPage -from covid19.oodm.vaccination.vaccination_model import VaccinationGermanyTimeline ################################################################################################################## diff --git a/covid19/views_who.py b/covid19/views_who.py index becdcde313b25cb754f23c67ea2dfdaa934aae54..3c2f1139514a00c136d6f6d749325595ab5c40ce 100644 --- a/covid19/views_who.py +++ b/covid19/views_who.py @@ -4,15 +4,12 @@ from celery import states from celery.utils.log import get_task_logger from database import app -from covid19.services import who_service, europe_service, vaccination_service, admin_service, rki_service +from covid19.services import who_service from covid19.workers import celery -from covid19.oodm.who.who_model import WhoGlobalDataImportTable +from covid19.oodm.who.who_model_import import WhoGlobalDataImportTable from covid19.oodm.who.who_model import WhoRegion, WhoCountry, WhoDateReported, WhoGlobalData -from covid19.oodm.europe.europe_model import EuropeDataImportTable, EuropeDateReported, EuropeContinent -from covid19.oodm.europe.europe_model import EuropeCountry, EuropeData from covid19.oodm.common.common_model_transient import ApplicationPage -from covid19.oodm.vaccination.vaccination_model import VaccinationGermanyTimeline ################################################################################################################## @@ -24,8 +21,8 @@ from covid19.oodm.vaccination.vaccination_model import VaccinationGermanyTimelin @celery.task(bind=True) def task_who_run_update(self, import_file=True): - logger = get_task_logger(__name__) self.update_state(state=states.STARTED) + logger = get_task_logger(__name__) logger.info("------------------------------------------------------------") logger.info(" Received: task_who_run_update [OK] ") logger.info("------------------------------------------------------------")