From 0e4f8b284bb1a7987b0ee04cbffbbbd98907d7c7 Mon Sep 17 00:00:00 2001 From: thomaswoehlke <thomas.woehlke@gmail.com> Date: Sun, 25 Apr 2021 19:04:30 +0200 Subject: [PATCH] work --- src/covid19/blueprints/who/who_model.py | 8 ---- .../blueprints/who/who_model_import.py | 10 ++++ .../blueprints/who/who_service_update.py | 10 +++- src/covid19/blueprints/who/who_views.py | 7 --- .../templates/who_test/who_tests.html | 13 ++++- .../blueprints/who_test/who_test_service.py | 14 +++++- .../blueprints/who_test/who_test_views.py | 48 ++++++++++++------- 7 files changed, 74 insertions(+), 36 deletions(-) diff --git a/src/covid19/blueprints/who/who_model.py b/src/covid19/blueprints/who/who_model.py index 6ed9b066..80e4c94e 100644 --- a/src/covid19/blueprints/who/who_model.py +++ b/src/covid19/blueprints/who/who_model.py @@ -352,11 +352,3 @@ class WhoData(db.Model): datum_of_all_who_data.append(datum) datum_of_all_who_data.sort() return datum_of_all_who_data - - @classmethod - def get_datum_of_all_who_data2(cls): - stmt = ( - select(WhoData,WhoDateReported).join(WhoData.date_reported).filter(WhoData.date_reported_id == WhoDateReported.id)\ - .options(defaultload("someattr").defer("some_column")) - ) - return db.session.query() \ No newline at end of file diff --git a/src/covid19/blueprints/who/who_model_import.py b/src/covid19/blueprints/who/who_model_import.py index 41739210..fb5e3da5 100644 --- a/src/covid19/blueprints/who/who_model_import.py +++ b/src/covid19/blueprints/who/who_model_import.py @@ -156,3 +156,13 @@ class WhoImport(db.Model): def countries(cls): bu = Bundle('countries', cls.country_code, cls.country, cls.who_region) return db.session.query(bu).distinct() + + @classmethod + def get_datum_of_all_who_import(cls): + dates_reported = [] + bu = Bundle('dates_reported', cls.date_reported) + for date_reported in db.session.query(bu).distinct().order_by(cls.date_reported): + item = date_reported[0][0] + if not item in dates_reported: + dates_reported.append(item) + return dates_reported diff --git a/src/covid19/blueprints/who/who_service_update.py b/src/covid19/blueprints/who/who_service_update.py index 29d100e8..0229b345 100644 --- a/src/covid19/blueprints/who/who_service_update.py +++ b/src/covid19/blueprints/who/who_service_update.py @@ -89,10 +89,18 @@ class WhoServiceUpdate: app.logger.info("------------------------------------------------------------") return self + def who_import_get_new_dates_as_array(self): + new_dates_reported_from_import = [] + list_datum_of_all_who_data = WhoData.get_datum_of_all_who_data() + for item in WhoImport.get_datum_of_all_who_import(): + if not item in list_datum_of_all_who_data: + new_dates_reported_from_import.append(item) + return new_dates_reported_from_import + def __update_data_incremental(self): app.logger.info(" WhoServiceUpdate.__update_fact_tables_incremental [begin]") app.logger.info("------------------------------------------------------------") - new_dates_reported_from_import = WhoImport.get_new_dates_as_array() + new_dates_reported_from_import = self.who_import_get_new_dates_as_array() i = 0 for my_date_reported in new_dates_reported_from_import: my_date = WhoDateReported.find_by_date_reported(my_date_reported) diff --git a/src/covid19/blueprints/who/who_views.py b/src/covid19/blueprints/who/who_views.py index bc30cef1..5842d149 100644 --- a/src/covid19/blueprints/who/who_views.py +++ b/src/covid19/blueprints/who/who_views.py @@ -367,7 +367,6 @@ def task_who_download_only(self): who_service.run_download_only() self.update_state(state=states.SUCCESS) result = "OK (task_who_download_only)" - flash(message="Finished: task_who_download_only [OK]", category="warning") return result @@ -381,7 +380,6 @@ def task_who_import_only(self): who_service.run_import_only() self.update_state(state=states.SUCCESS) result = "OK (task_who_import_only)" - flash(message="Finished: task_who_import_only [OK]", category="warning") return result @@ -395,7 +393,6 @@ def task_who_update_dimension_tables_only(self): who_service.run_update_dimension_tables_only() self.update_state(state=states.SUCCESS) result = "OK (task_who_update_dimension_tables_only)" - flash(message="Finished: task_who_update_dimension_tables_only [OK]", category="warning") return result @@ -409,7 +406,6 @@ def task_who_update_fact_table_incremental_only(self): who_service.run_update_fact_table_incremental_only() self.update_state(state=states.SUCCESS) result = "OK (task_who_update_dimension_tables_only)" - flash(message="Finished: task_who_update_fact_table_incremental_only [OK]", category="warning") return result @@ -423,7 +419,6 @@ def task_who_update_fact_table_initial_only(self): who_service.run_update_fact_table_initial_only() self.update_state(state=states.SUCCESS) result = "OK (task_who_update_fact_table_initial_only)" - flash(message="Finished: task_who_update_fact_table_initial_only [OK]", category="warning") return result @@ -437,7 +432,6 @@ def task_who_update_star_schema_incremental(self): who_service.run_update_star_schema_incremental() self.update_state(state=states.SUCCESS) result = "OK (task_who_update_star_schema_incremental)" - flash(message="Finished: task_who_update_star_schema_incremental [OK]", category="warning") return result @@ -451,7 +445,6 @@ def task_who_update_star_schema_initial(self): who_service.run_update_star_schema_initial() self.update_state(state=states.SUCCESS) result = "OK (task_who_update_star_schema_incremental)" - flash(message="Finished: task_who_update_star_schema_initial [OK]", category="warning") return result # ---------------------------------------------------------------------------------------------------------------- diff --git a/src/covid19/blueprints/who_test/templates/who_test/who_tests.html b/src/covid19/blueprints/who_test/templates/who_test/who_tests.html index 2ec99305..96ca99f9 100644 --- a/src/covid19/blueprints/who_test/templates/who_test/who_tests.html +++ b/src/covid19/blueprints/who_test/templates/who_test/who_tests.html @@ -21,12 +21,21 @@ <a class="btn btn-danger btn-lg btn-block text-left" href="{{ url_for( 'who_test.url_who_test_who_import_countries') }}" role="button">url_who_test_who_import_countries</a> - <a class="btn btn-danger btn-lg btn-block text-left" + <a class="btn btn-primary btn-lg btn-block text-left" href="{{ url_for( 'who_test.url_who_test_who_import_get_new_dates_as_array') }}" role="button">url_who_test_who_import_get_new_dates_as_array</a> - <a class="btn btn-primary btn-lg btn-block text-left" + <a class="btn btn-danger btn-lg btn-block text-left" href="{{ url_for( 'who_test.url_who_test_who_data_get_datum_of_all_who_data') }}" role="button">url_who_test_who_data_get_datum_of_all_who_data</a> + <a class="btn btn-primary btn-lg btn-block text-left" + href="{{ url_for( 'who_test.url_who_test_who_data_get_datum_of_all_who_import') }}" + role="button">url_who_test_who_data_get_datum_of_all_who_import</a> + <a class="btn btn-danger btn-lg btn-block text-left" + href="{{ url_for( 'who_test.url_who_test_who_service_who_import_get_new_dates_as_array') }}" + role="button">url_who_test_who_service_who_import_get_new_dates_as_array</a> + <a class="btn btn-primary btn-lg btn-block text-left" + href="{{ url_for( 'who_test.url_who_test_who_test_service_delete_last_days_data') }}" + role="button">url_who_test_who_test_service_delete_last_days_data</a> </div> </div> <div class="col"> diff --git a/src/covid19/blueprints/who_test/who_test_service.py b/src/covid19/blueprints/who_test/who_test_service.py index a406f658..3fdf6274 100644 --- a/src/covid19/blueprints/who_test/who_test_service.py +++ b/src/covid19/blueprints/who_test/who_test_service.py @@ -2,6 +2,7 @@ from flask import flash from database import app from covid19.blueprints.application.application_service_config import ApplicationServiceConfig +from covid19.blueprints.who.who_model import WhoDateReported, WhoData class WhoTestService: def __init__(self, database): @@ -13,4 +14,15 @@ class WhoTestService: app.logger.debug("------------------------------------------------------------") app.logger.info(" WHO Test Service [ready]") - + def delete_last_day(self): + joungest_datum = WhoDateReported.get_joungest_datum() + app.logger.info("joungest_datum:") + app.logger.info(joungest_datum) + app.logger.info("WhoData.get_data_for_one_day(joungest_datum):") + i = 0 + for who_data in WhoData.get_data_for_one_day(joungest_datum): + i += 1 + line = " | " + str(i) + " | " + str(who_data.date_reported) + " | " + who_data.country.country + " | to be deleted" + app.logger.info(line) + app.logger.info("WhoData.delete_data_for_one_day(joungest_datum)") + WhoData.delete_data_for_one_day(joungest_datum) diff --git a/src/covid19/blueprints/who_test/who_test_views.py b/src/covid19/blueprints/who_test/who_test_views.py index 38fe69d3..44b05ae9 100644 --- a/src/covid19/blueprints/who_test/who_test_views.py +++ b/src/covid19/blueprints/who_test/who_test_views.py @@ -56,23 +56,6 @@ def url_who_test_who_import_get_new_dates_as_array(): app.logger.info("url_who_mytest - START: WhoImport.get_new_dates_as_array()") app.logger.info("WhoImport.get_new_dates_as_array():") i = 0 - for date_reported in WhoImport.get_new_dates_as_array(): - i += 1 - line = " | " + str(i) + " | " + date_reported + " | " - app.logger.info(line) - joungest_datum = WhoDateReported.get_joungest_datum() - app.logger.info("joungest_datum:") - app.logger.info(joungest_datum) - app.logger.info("WhoData.get_data_for_one_day(joungest_datum):") - i = 0 - for who_data in WhoData.get_data_for_one_day(joungest_datum): - i += 1 - line = " | " + str(i) + " | " + str(who_data.date_reported) + " | " + who_data.country.country + " | " - app.logger.info(line) - app.logger.info("WhoData.delete_data_for_one_day(joungest_datum)") - WhoData.delete_data_for_one_day(joungest_datum) - app.logger.info("WhoImport.get_new_dates_as_array():") - i = 0 for date_reported in WhoImport.get_new_dates_as_array(): i += 1 line = " | " + str(i) + " | " + date_reported + " | " @@ -92,4 +75,35 @@ def url_who_test_who_data_get_datum_of_all_who_data(): app.logger.info("url_who_test_who_data_get_datum_of_all_who_data - DONE: WhoData.get_datum_of_all_who_data()") return redirect(url_for('who_test.url_who_test_tests')) +@app_who_test.route('/who_data/get_datum_of_all_who_import') +@login_required +def url_who_test_who_data_get_datum_of_all_who_import(): + app.logger.info("url_who_test_who_data_get_datum_of_all_who_import - START: WhoImport.get_datum_of_all_who_import()") + flash("url_who_test_who_data_get_datum_of_all_who_import - START: WhoImport.get_datum_of_all_who_import()") + for datum in WhoImport.get_datum_of_all_who_import(): + app.logger.info(str(datum)) + flash("url_who_test_who_data_get_datum_of_all_who_import - DONE: WhoImport.get_datum_of_all_who_import()") + app.logger.info("url_who_test_who_data_get_datum_of_all_who_import - DONE: WhoImport.get_datum_of_all_who_import()") + return redirect(url_for('who_test.url_who_test_tests')) + +@app_who_test.route('/who_service/service_update/who_import_get_new_dates_as_array') +@login_required +def url_who_test_who_service_who_import_get_new_dates_as_array(): + app.logger.info("url_who_test_who_import_get_new_dates_as_array - START: WhoService.who_import_get_new_dates_as_array()") + flash("url_who_test_who_import_get_new_dates_as_array - START: WhoService.who_import_get_new_dates_as_array()") + for datum in who_service.service_update.who_import_get_new_dates_as_array(): + app.logger.info(str(datum)) + flash("url_who_test_who_import_get_new_dates_as_array - DONE: WhoService.who_import_get_new_dates_as_array()") + app.logger.info("url_who_test_who_import_get_new_dates_as_array - DONE: WhoService.who_import_get_new_dates_as_array()") + return redirect(url_for('who_test.url_who_test_tests')) + +@app_who_test.route('/who_test_service/delete_last_day') +@login_required +def url_who_test_who_test_service_delete_last_days_data(): + app.logger.info("url_who_test_who_test_service_delete_last_days_data - START: WhoService.who_import_get_new_dates_as_array()") + flash("url_who_test_who_test_service_delete_last_days_data - START: WhoService.who_import_get_new_dates_as_array()") + who_test_service.delete_last_day() + flash("url_who_test_who_test_service_delete_last_days_data - DONE: WhoService.who_import_get_new_dates_as_array()") + app.logger.info("url_who_test_who_test_service_delete_last_days_data - DONE: WhoService.who_import_get_new_dates_as_array()") + return redirect(url_for('who_test.url_who_test_tests')) -- GitLab