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