From 7ade9154a81962fc9a008ce9d4fd7499c3a8cc49 Mon Sep 17 00:00:00 2001
From: thomaswoehlke <thomas.woehlke@gmail.com>
Date: Sun, 25 Apr 2021 22:21:43 +0200
Subject: [PATCH] working on 0.0.31 Release *
 ------------------------------------- * Fixed #211 ECDC-templates: change URL
 to for_url() * Fixed #213 WHO-template: change URL to for_url() *
 ------------------------------------- * Issue #195
 RkiVaccinationImport.get_daterep_missing_in_vaccination_data(): native SQL to
 SQLalechemy Query * Fixed #83  WhoImport.get_new_dates_as_array() SQLalchemy
 instead of SQL * Fixed #219 WhoImport.countries() SQLalchemy instead of SQL *
 ------------------------------------- * Issue #207 remove deprecated:
 database.port * Issue #208 remove deprecated: database.run_run_with_debug *
 Issue #209 remove deprecated: database.ITEMS_PER_PAGE *
 ------------------------------------- * Issue #210 database.py: logging for
 Celery on Windows * ------------------------------------- * Fixed #196
 OwidImport.get_new_dates_reported_as_array() needs implementation *
 ------------------------------------- * Issue #212 implement
 OwidService.task_database_drop_create() *
 ------------------------------------- * Issue #214 implement
 OwidServiceUpdate.update_dimension_tables_only() * Issue #215 implement
 OwidServiceUpdate.update_fact_table_incremental_only() * Issue #216 implement
 OwidServiceUpdate.update_fact_table_initial_only() * Issue #217 implement
 OwidServiceUpdate.update_star_schema_incremental() * Issue #218 implement
 OwidServiceUpdate.update_star_schema_initial() *
 -------------------------------------

---
 src/covid19/blueprints/owid/owid_model.py     | 24 +++++++----
 .../blueprints/owid/owid_model_import.py      |  4 ++
 .../blueprints/owid/owid_service_update.py    |  8 ++++
 .../blueprints/owid_test/owid_test_views.py   | 42 ++++++++++++++-----
 src/covid19/blueprints/who/who_model.py       |  2 +-
 .../blueprints/who_test/who_test_views.py     |  2 +-
 6 files changed, 63 insertions(+), 19 deletions(-)

diff --git a/src/covid19/blueprints/owid/owid_model.py b/src/covid19/blueprints/owid/owid_model.py
index 605f24d5..bdd53640 100644
--- a/src/covid19/blueprints/owid/owid_model.py
+++ b/src/covid19/blueprints/owid/owid_model.py
@@ -249,11 +249,6 @@ class OwidData(db.Model):
         # TODO
         pass
 
-    @classmethod
-    def get_joungest_datum(cls):
-        # TODO
-        pass
-
     @classmethod
     def get_data_for_one_day(cls, date_reported):
         return db.session.query(cls).filter(
@@ -268,7 +263,22 @@ class OwidData(db.Model):
             cls.new_cases_per_million.desc()
         ).all()
 
+    @classmethod
+    def get_datum_of_all_data(cls):
+        datum_of_all_who_data = []
+        for data in db.session.query(cls).options(subqueryload("date_reported").load_only("date_reported_import_str")):
+            datum = data.date_reported.date_reported_import_str
+            if not datum in datum_of_all_who_data:
+                datum_of_all_who_data.append(datum)
+        datum_of_all_who_data.sort()
+        return datum_of_all_who_data
+
+    @classmethod
+    def get_joungest_datum(cls):
+        return cls.get_datum_of_all_data().pop()
+
     @classmethod
     def delete_data_for_one_day(cls, date_reported):
-        # TODO
-        pass
+        for data in cls.get_data_for_one_day():
+            db.session.remove(data)
+        db.session.commit()
diff --git a/src/covid19/blueprints/owid/owid_model_import.py b/src/covid19/blueprints/owid/owid_model_import.py
index b1cbc52d..d3b47020 100644
--- a/src/covid19/blueprints/owid/owid_model_import.py
+++ b/src/covid19/blueprints/owid/owid_model_import.py
@@ -128,6 +128,10 @@ class OwidImport(db.Model):
     def get_new_dates_reported_as_array(cls):
         return cls.get_dates_reported_as_array()
 
+    @classmethod
+    def get_datum_of_all_import(cls):
+        return cls.get_dates_reported_as_array()
+
     @classmethod
     def get_continents(cls, page):
         return db.session.query(cls.continent)\
diff --git a/src/covid19/blueprints/owid/owid_service_update.py b/src/covid19/blueprints/owid/owid_service_update.py
index 2848fd3d..549d5aa8 100644
--- a/src/covid19/blueprints/owid/owid_service_update.py
+++ b/src/covid19/blueprints/owid/owid_service_update.py
@@ -14,6 +14,14 @@ class OwidServiceUpdate:
         app.logger.debug("------------------------------------------------------------")
         app.logger.debug(" OWID Service Update [ready]")
 
+    def who_import_get_new_dates_as_array(self):
+        new_dates_reported_from_import = []
+        list_datum_of_all_data = OwidData.get_datum_of_all_data()
+        for item in OwidImport.get_datum_of_all_import():
+            if not item in list_datum_of_all_data:
+                new_dates_reported_from_import.append(item)
+        return new_dates_reported_from_import
+
     def __update_date_reported(self):
         app.logger.info(" __update_date_reported [begin]")
         app.logger.info("------------------------------------------------------------")
diff --git a/src/covid19/blueprints/owid_test/owid_test_views.py b/src/covid19/blueprints/owid_test/owid_test_views.py
index 6e4b4e4a..07c31f39 100644
--- a/src/covid19/blueprints/owid_test/owid_test_views.py
+++ b/src/covid19/blueprints/owid_test/owid_test_views.py
@@ -84,40 +84,62 @@ def url_owid_test_owid_import_countries():
 @app_owid_test.route('/owid_import/get_new_dates_as_array')
 @login_required
 def url_owid_test_owid_import_get_new_dates_as_array():
-    app.logger.info("update_star_schema_initial - START")
-    flash("update_star_schema_initial - START")
+    app.logger.info("url_owid_test_owid_import_get_new_dates_as_array - START")
+    flash("url_owid_test_owid_import_get_new_dates_as_array - START")
+    i = 0
+    for date_reported in OwidImport.get_new_dates_reported_as_array():
+        i += 1
+        line = " | " + str(i) + " | " + date_reported + " | "
+        app.logger.info(line)
+    app.logger.info("url_owid_test_owid_import_get_new_dates_as_array - DONE")
+    flash("url_owid_test_owid_import_get_new_dates_as_array - DONE")
     return redirect(url_for('owid_test.url_owid_test_tests'))
 
 
 @app_owid_test.route('/owid_data/get_datum_of_all_owid_data')
 @login_required
 def url_owid_test_owid_data_get_datum_of_all_owid_data():
-    app.logger.info("update_star_schema_initial - START")
-    flash("update_star_schema_initial - START")
+    app.logger.info("url_owid_test_owid_data_get_datum_of_all_owid_data - START")
+    flash("url_owid_test_owid_data_get_datum_of_all_owid_data - START")
+    for datum in OwidData.get_datum_of_all_data():
+        app.logger.info(str(datum))
+    app.logger.info("url_owid_test_owid_data_get_datum_of_all_owid_data - DONE")
+    flash("url_owid_test_owid_data_get_datum_of_all_owid_data - DONE")
     return redirect(url_for('owid_test.url_owid_test_tests'))
 
 
 @app_owid_test.route('/owid_data/update_star_schema_initial')
 @login_required
 def url_owid_test_owid_data_get_datum_of_all_owid_import():
-    app.logger.info("update_star_schema_initial - START")
-    flash("update_star_schema_initial - START")
+    app.logger.info("url_owid_test_owid_data_get_datum_of_all_owid_import - START")
+    flash("url_owid_test_owid_data_get_datum_of_all_owid_import - START")
+    for datum in OwidImport.get_datum_of_all_import():
+        app.logger.info(str(datum))
+    app.logger.info("url_owid_test_owid_data_get_datum_of_all_owid_import - DONE")
+    flash("url_owid_test_owid_data_get_datum_of_all_owid_import - DONE")
     return redirect(url_for('owid_test.url_owid_test_tests'))
 
 
 @app_owid_test.route('/owid_service/owid_import/get_new_dates_as_array')
 @login_required
 def url_owid_test_owid_service_owid_import_get_new_dates_as_array():
-    app.logger.info("update_star_schema_initial - START")
-    flash("update_star_schema_initial - START")
+    app.logger.info("url_owid_test_owid_service_owid_import_get_new_dates_as_array - START")
+    flash("url_owid_test_owid_service_owid_import_get_new_dates_as_array - START")
+    for datum in owid_service.service_update.who_import_get_new_dates_as_array():
+        app.logger.info(str(datum))
+    app.logger.info("url_owid_test_owid_service_owid_import_get_new_dates_as_array - DONE")
+    flash("url_owid_test_owid_service_owid_import_get_new_dates_as_array - DONE")
     return redirect(url_for('owid_test.url_owid_test_tests'))
 
 
 @app_owid_test.route('/owid_test_service/delete_last_days_data')
 @login_required
 def url_owid_test_owid_test_service_delete_last_days_data():
-    app.logger.info("update_star_schema_initial - START")
-    flash("update_star_schema_initial - START")
+    app.logger.info("url_owid_test_owid_test_service_delete_last_days_data - START")
+    flash("url_owid_test_owid_test_service_delete_last_days_data - START")
+    owid_test_service.delete_last_day()
+    app.logger.info("url_owid_test_owid_test_service_delete_last_days_data - DONE")
+    flash("url_owid_test_owid_test_service_delete_last_days_data - DONE")
     return redirect(url_for('owid_test.url_owid_test_tests'))
 
 
diff --git a/src/covid19/blueprints/who/who_model.py b/src/covid19/blueprints/who/who_model.py
index 0a8e3c64..12e0817b 100644
--- a/src/covid19/blueprints/who/who_model.py
+++ b/src/covid19/blueprints/who/who_model.py
@@ -344,7 +344,7 @@ class WhoData(db.Model):
         ).paginate(page, per_page=ITEMS_PER_PAGE)
 
     @classmethod
-    def get_datum_of_all_who_data(cls):
+    def get_datum_of_all_data(cls):
         datum_of_all_who_data = []
         for data in db.session.query(cls).options(subqueryload("date_reported").load_only("date_reported_import_str")):
             datum = data.date_reported.date_reported_import_str
diff --git a/src/covid19/blueprints/who_test/who_test_views.py b/src/covid19/blueprints/who_test/who_test_views.py
index 592ae773..48d487fc 100644
--- a/src/covid19/blueprints/who_test/who_test_views.py
+++ b/src/covid19/blueprints/who_test/who_test_views.py
@@ -69,7 +69,7 @@ def url_who_test_who_import_get_new_dates_as_array():
 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()")
     flash("url_who_test_who_data_get_datum_of_all_who_data - START: WhoData.get_datum_of_all_who_data()")
-    for datum in WhoData.get_datum_of_all_who_data():
+    for datum in WhoData.get_datum_of_all_data():
         app.logger.info(str(datum))
     flash("url_who_test_who_data_get_datum_of_all_who_data - DONE: WhoData.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()")
-- 
GitLab