From 83ea387caf245694255b680dd0d1cac394b45af2 Mon Sep 17 00:00:00 2001 From: thomaswoehlke <thomas.woehlke@gmail.com> Date: Tue, 19 Jan 2021 17:44:42 +0100 Subject: [PATCH] ### 0.0.9 Release * Fixed #18 /europe/update: Download * Fixed #19 /europe/update: Import File to DB * Issue #20 /europe/update: Update DB * Issue #21 update_date_reported * Issue #22 update_continent * Issue #23 update_country * Issue #24 update_data * Issue #3 ORM: 3NF for ecdc_europa_data_import * Issue #4 data update for 3NF ecdc_europa_data_import --- README.md | 4 +++ app.py | 27 ++++++++++++++ org/woehlke/covid19/admin/__init__.py | 0 org/woehlke/covid19/admin/admin_service.py | 41 ++++++++++++++++++++++ 4 files changed, 72 insertions(+) create mode 100644 org/woehlke/covid19/admin/__init__.py create mode 100644 org/woehlke/covid19/admin/admin_service.py diff --git a/README.md b/README.md index a90bb5c7..ec518e2f 100644 --- a/README.md +++ b/README.md @@ -198,6 +198,10 @@ class WhoGlobalDataImportTable(db.Model): * Issue #22 update_continent * Issue #23 update_country * Issue #24 update_data +* Issue #25 /who/update/initial update_data_initial +* Issue #26 /admin/database/dump +* Issue #27 /admin/database/drop +* Issue #28 /admin/database/import * Issue #3 ORM: 3NF for ecdc_europa_data_import * Issue #4 data update for 3NF ecdc_europa_data_import diff --git a/app.py b/app.py index 54193018..79d87f02 100644 --- a/app.py +++ b/app.py @@ -309,6 +309,33 @@ def url_alive_message_start(): return redirect(url_for('home')) +@app.route('/admin/database/dump') +def url_admin_database_dump(): + app.logger.info("url_admin_database_dump [start]") + alive_message_task.apply_async() + flash("alive_message_task started") + app.logger.info("url_admin_database_dump [done]") + return redirect(url_for('home')) + + +@app.route('/admin/database/import') +def url_admin_database_import(): + app.logger.info("url_admin_database_import [start]") + alive_message_task.apply_async() + flash("alive_message_task started") + app.logger.info("url_admin_database_import [done]") + return redirect(url_for('home')) + + +@app.route('/admin/database/drop') +def url_admin_database_drop(): + app.logger.info("url_admin_database_drop [start]") + alive_message_task.apply_async() + flash("alive_message_task started") + app.logger.info("url_admin_database_drop [done]") + return redirect(url_for('home')) + + if __name__ == '__main__': dictConfig(my_logging_comfig) db.create_all() diff --git a/org/woehlke/covid19/admin/__init__.py b/org/woehlke/covid19/admin/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/org/woehlke/covid19/admin/admin_service.py b/org/woehlke/covid19/admin/admin_service.py new file mode 100644 index 00000000..969bd8f8 --- /dev/null +++ b/org/woehlke/covid19/admin/admin_service.py @@ -0,0 +1,41 @@ +import os +from database import app + +admin_service = None + + +class AdminService: + def __init__(self, database): + app.logger.info("------------------------------------------------------------") + app.logger.info(" Admin Service [init]") + app.logger.info("------------------------------------------------------------") + self.__database = database + self.limit_nr = 20 + app.logger.info("------------------------------------------------------------") + app.logger.info(" Admin Service [ready]") + + def run_admin_database_dump(self): + app.logger.info(" run update countries [begin]") + app.logger.info("------------------------------------------------------------") + app.logger.info("... TBD") + app.logger.info(" run update countries [done]") + app.logger.info("------------------------------------------------------------") + return self + + def run_admin_database_import(self): + app.logger.info(" run update countries [begin]") + app.logger.info("------------------------------------------------------------") + app.logger.info("... TBD") + app.logger.info(" run update countries [done]") + app.logger.info("------------------------------------------------------------") + return self + + def run_admin_database_drop(self): + app.logger.info(" run update countries [begin]") + app.logger.info("------------------------------------------------------------") + self.__database.drop_all() + self.__database.create_all() + app.logger.info("") + app.logger.info(" run update countries [done]") + app.logger.info("------------------------------------------------------------") + return self -- GitLab