From 5a75c6cddcc033311e19ac6aac6b39ef0e6d3daf Mon Sep 17 00:00:00 2001
From: thomaswoehlke <thomas.woehlke@gmail.com>
Date: Tue, 9 Feb 2021 13:22:01 +0100
Subject: [PATCH] ### 0.0.15 Release * ------------------------------------- *
 Fixed #88 rename VaccinationImport to VaccinationImport * Fixed #89 change
 tablename from vaccination_germany_timeline_import to vaccination_import *
 Fixed #86 rename VaccinationData to VaccinationData * Fixed #162 rename table
 vaccination_germany_timeline into vaccination_data *
 ------------------------------------- * Fixed #170 implement
 url_vaccination_task_update_star_schema_initial in vaccination_views.py *
 Fixed #171 implement url_vaccination_task_update_starschema_incremental in
 vaccination_views.py * Fixed #172 implement url_vaccination_task_import_only
 in vaccination_views.py * Fixed #173 implement
 url_vaccination_task_import_only in vaccination_views.py * Fixed #174
 implement url_vaccination_task_update_dimensiontables_only in
 vaccination_views.py * Fixed #175 implement
 url_vaccination_task_update_facttable_incremental_only in
 vaccination_views.py * Fixed #176 implement
 url_vaccination_task_update_facttable_initial_only in vaccination_views.py *
 ------------------------------------- * Fixed #91 implement
 VaccinationService.run_download_only * Fixed #92 implement
 VaccinationService.run_import_only * Fixed #93 implement
 VaccinationService.run_update_dimension_tables_only * Fixed #94 implement
 VaccinationService.run_update_fact_table_incremental_only * Fixed #95
 implement VaccinationService.run_update_fact_table_initial_only * Fixed #96
 implement VaccinationService.run_update_star_schema_incremental * Fixed #97
 implement VaccinationService.run_update_star_schema_initial * Fixed #101
 implement VaccinationServiceUpdate.update_dimension_tables_only * Fixed #102
 implement VaccinationServiceUpdate.update_fact_table_incremental_only * Fixed
 #103 implement VaccinationServiceUpdate.update_fact_table_initial_only *
 Fixed #104 implement VaccinationServiceUpdate.update_star_schema_incremental
 * Fixed #105 implement VaccinationServiceUpdate.update_star_schema_initial *
 ------------------------------------- * Fixed #90 refactor VaccinationService
 to new method scheme introduced 07.02.2021 * Fixed #98 refactor
 VaccinationServiceDownload to new method scheme introduced 07.02.2021 * Fixed
 #99 refactor VaccinationServiceImport to new method scheme introduced
 07.02.2021 * Fixed #100 refactor VaccinationServiceUpdate to new method
 scheme introduced 07.02.2021 * ------------------------------------- * Fixed
 #87 change to: Vaccination.datum many to one VaccinationDateReported * Fixed
 #106 add Tasks and URLs for starting Tasks to vaccination_views *
 ------------------------------------- * Issue #39 SQLalchemy instead of SQL:
 AllModelClasses.remove_all() * Issue #40 SQLalchemy instead of SQL:
 EuropeImport.get_date_rep() * Issue #41 SQLalchemy instead of SQL:
 EuropeImport.get_countries_of_continent() * Issue #42 SQLalchemy instead of
 SQL: WhoImport.get_new_dates_as_array() * Issue #83 SQLalchemy instead of SQL
 in WhoImport.get_new_dates_as_array * Issue #107 SQLalchemy instead of SQL
 in: EuropeImport.get_countries_of_continent * Issue #109 SQLalchemy instead
 of SQL in: EuropeImport.get_date_rep * Issue #110 SQLalchemy instead of SQL
 in: EuropeImport.get_continent * ------------------------------------- *
 Issue #82 change to ORM ClassHierarchy * Issue #108 change to ORM
 ClassHierarchy in: EuropeImport.get_countries_of_continent * Issue #129
 change to ORM ClassHierarchy in: RkiLandkreiseImport.get_new_dates_as_array *
 Issue #131 change to ORM ClassHierarchy in:
 RkiGermanyDataImportTable.get_new_dates_as_array *
 ------------------------------------- * Issue #111 refactor to new method
 scheme itroduced 07.02.2021 * Issue #117 refactor EuropeServiceUpdate to new
 method scheme introduced 07.02.2021 * Issue #112 implement
 EuropeService.run_update_dimension_tables_only * Issue #113 implement
 EuropeService.run_update_fact_table_incremental_only * Issue #114 implement
 EuropeService.run_update_fact_table_initial_only * Issue #115 implement
 EuropeService.run_update_star_schema_incremental * Issue #116 implement
 EuropeService.run_update_star_schema_initial * Issue #118 implement
 EuropeServiceUpdate.update_dimension_tables_only * Issue #119 implement
 EuropeServiceUpdate.update_fact_table_incremental_only * Issue #120 implement
 EuropeServiceUpdate.update_fact_table_initial_only * Issue #121 implement
 EuropeServiceUpdate.update_star_schema_incremental * Issue #122 implement
 EuropeServiceUpdate.update_star_schema_initial *
 ------------------------------------- * Issue #163 implement
 url_europe_task_update_star_schema_initial in europe_views.py * Issue #164
 implement url_europe_task_update_starschema_incremental in europe_views.py *
 Issue #165 implement url_europe_task_download_only in europe_views.py * Issue
 #166 implement url_europe_task_import_only in europe_views.py * Issue #167
 implement url_europe_task_update_dimensiontables_only in europe_views.py *
 Issue #168 implement url_europe_task_update_facttable_incremental_only in
 europe_views.py * Issue #169 implement
 url_europe_task_update_facttable_initial_only in europe_views.py *
 ------------------------------------- * Issue #146 add Tasks and URLs for
 starting Tasks to rki_views * Issue #140 move WhoImport to RKI in:
 rk_service_import.py * Issue #139 refactor RkiBundeslaenderServiceDownload to
 new method scheme introduced 07.02.2021 * Issue #123 split
 RkiBundeslaenderService into two Services, one for bundeslaender and one for
 landkreise * Issue #125 implement RkiLandkreise * Issue #126 implement
 RkiBundeslaenderImport * Issue #127 implement
 RkiBundeslaenderImport.get_dates_reported * Issue #128 add fields from csv to
 RkiLandkreiseImport * Issue #132 refactor RkiBundeslaenderService to new
 method scheme introduced 07.02.2021 * Issue #133 implement
 RkiBundeslaenderService.task_database_drop_create * Issue #134 implement
 RkiBundeslaenderService.run_update_dimension_tables_only * Issue #135
 implement RkiBundeslaenderService.run_update_fact_table_incremental_only *
 Issue #136 implement
 RkiBundeslaenderService.run_update_fact_table_initial_only * Issue #137
 implement RkiBundeslaenderService.run_update_star_schema_incremental * Issue
 #138 implement RkiBundeslaenderService.run_update_star_schema_initial * Issue
 #141 implement RkiBundeslaenderServiceUpdate.update_dimension_tables_only *
 Issue #142 implement
 RkiBundeslaenderServiceUpdate.update_fact_table_incremental_only * Issue #143
 implement RkiBundeslaenderServiceUpdate.update_fact_table_initial_only *
 Issue #144 implement
 RkiBundeslaenderServiceUpdate.update_star_schema_incremental * Issue #145
 implement RkiBundeslaenderServiceUpdate.update_star_schema_initial * Issue
 #147 refactor RkiBundeslaenderServiceUpdate.__update_who_date_reported *
 Issue #148 refactor RkiBundeslaenderServiceUpdate.__update_who_region * Issue
 #149 refactor RkiBundeslaenderServiceUpdate.__update_who_country * Issue #150
 refactor RkiBundeslaenderServiceUpdate.__update_who_global_data * Issue #151
 refactor RkiBundeslaenderServiceUpdate.__update_who_global_data_short * Issue
 #152 refactor RkiBundeslaenderServiceUpdate.__update_who_global_data_initial
 * Issue #153 refactor RkiBundeslaenderServiceUpdate.update_db * Issue #154
 refactor RkiBundeslaenderServiceUpdate.update_db_short * Issue #155 refactor
 RkiBundeslaenderServiceUpdate.update_db_initial *
 ------------------------------------- * Issue #156 run_web.sh * Issue #157
 run_worker.sh

---
 BACKLOG.md                                    |  5 ++
 src/covid19/blueprints/admin/admin_views.py   |  4 +-
 src/covid19/blueprints/common/common_model.py | 25 +++++--
 .../blueprints/europe/europe_service.py       | 31 ++++----
 src/covid19/blueprints/europe/europe_views.py | 52 +++++++-------
 src/covid19/blueprints/rki/rki_service.py     |  4 +-
 ...ine_germany.html => vaccination_data.html} |  0
 .../vaccination/vaccination_import.html       | 62 ++++++++++++++++
 .../vaccination/vaccination_model.py          |  2 -
 .../vaccination/vaccination_model_import.py   |  6 --
 .../vaccination/vaccination_service.py        | 49 +++++--------
 .../vaccination_service_download.py           |  1 -
 .../vaccination/vaccination_service_import.py |  1 -
 .../vaccination/vaccination_service_update.py | 70 +++++++------------
 .../vaccination/vaccination_views.py          | 56 ++++++---------
 src/covid19/services.py                       |  2 +-
 16 files changed, 204 insertions(+), 166 deletions(-)
 rename src/covid19/blueprints/vaccination/templates/vaccination/{vaccination_timeline_germany.html => vaccination_data.html} (100%)
 create mode 100644 src/covid19/blueprints/vaccination/templates/vaccination/vaccination_import.html

diff --git a/BACKLOG.md b/BACKLOG.md
index b2579c7b..8a922ba4 100644
--- a/BACKLOG.md
+++ b/BACKLOG.md
@@ -125,6 +125,11 @@
 
 ### 0.0.15 Release
 * -------------------------------------
+* Fixed #88 rename VaccinationImport to VaccinationImport
+* Fixed #89 change tablename from vaccination_germany_timeline_import to vaccination_import
+* Fixed #86 rename VaccinationData to VaccinationData
+* Fixed #162 rename table vaccination_germany_timeline into vaccination_data
+* -------------------------------------
 * Fixed #170 implement url_vaccination_task_update_star_schema_initial in vaccination_views.py
 * Fixed #171 implement url_vaccination_task_update_starschema_incremental in vaccination_views.py
 * Fixed #172 implement url_vaccination_task_import_only in vaccination_views.py
diff --git a/src/covid19/blueprints/admin/admin_views.py b/src/covid19/blueprints/admin/admin_views.py
index 240186e6..ea72ffa4 100644
--- a/src/covid19/blueprints/admin/admin_views.py
+++ b/src/covid19/blueprints/admin/admin_views.py
@@ -3,7 +3,7 @@ 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, europe_service, vaccination_service, admin_service, rki_service_bundeslaender
 from covid19.workers import celery
 
 from covid19.blueprints.common.common_model_transient import ApplicationPage
@@ -109,7 +109,7 @@ def url_admin_database_drop():
         who_service.pretask_database_drop_create()
         europe_service.pretask_database_drop_create()
         vaccination_service.pretask_database_drop_create()
-        rki_service.pretask_database_drop_create()
+        rki_service_bundeslaender.pretask_database_drop_create()
         flash("task_admin_database_drop_create async started")
         task_admin_database_drop_create.apply_async()
     app.logger.info("url_admin_database_drop [done]")
diff --git a/src/covid19/blueprints/common/common_model.py b/src/covid19/blueprints/common/common_model.py
index 44c6bc7d..99a8dc7d 100644
--- a/src/covid19/blueprints/common/common_model.py
+++ b/src/covid19/blueprints/common/common_model.py
@@ -95,9 +95,9 @@ class CommonDateReported(db.Model):
             .one()
 
     @classmethod
-    def find_by_date_reported(cls, i_date_reported):
+    def find_by_id(cls, other_id):
         return db.session.query(cls)\
-            .filter(cls.date_reported == i_date_reported)\
+            .filter(cls.id == other_id)\
             .one_or_none()
 
     @classmethod
@@ -107,9 +107,9 @@ class CommonDateReported(db.Model):
             .one()
 
     @classmethod
-    def find_by_year_week(cls, year_week):
+    def find_by_date_reported(cls, i_date_reported):
         return db.session.query(cls)\
-            .filter(cls.year_week == year_week)\
+            .filter(cls.date_reported == i_date_reported)\
             .one_or_none()
 
     @classmethod
@@ -118,6 +118,11 @@ class CommonDateReported(db.Model):
             .filter(cls.year_week == year_week)\
             .one()
 
+    @classmethod
+    def find_by_year_week(cls, year_week):
+        return db.session.query(cls)\
+            .filter(cls.year_week == year_week)\
+            .one_or_none()
 
 class CommonRegion(db.Model):
     __tablename__ = 'common_region'
@@ -161,6 +166,18 @@ class CommonRegion(db.Model):
             .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 get_by_region(cls, i_who_region):
+        return db.session.query(cls)\
+            .filter(cls.region == i_who_region)\
+            .one()
+
     @classmethod
     def find_by_region(cls, i_who_region):
         return db.session.query(cls)\
diff --git a/src/covid19/blueprints/europe/europe_service.py b/src/covid19/blueprints/europe/europe_service.py
index 8692f4e7..bf1fc231 100644
--- a/src/covid19/blueprints/europe/europe_service.py
+++ b/src/covid19/blueprints/europe/europe_service.py
@@ -37,33 +37,36 @@ class EuropeService:
         self.europe_service_import.import_datafile_to_db()
         return self
 
+    # TODO: #112 implement EuropeService.run_update_dimension_tables_only
+    # TODO: #111 refactor to new method scheme itroduced 07.02.2021
     def run_update_dimension_tables_only(self):
-        # TODO: #112 implement EuropeService.run_update_dimension_tables_only
-        # TODO: #111 refactor to new method scheme itroduced 07.02.2021
         return self
 
+    # TODO: #113 implement EuropeService.run_update_fact_table_incremental_only
+    # TODO: #111 refactor to new method scheme itroduced 07.02.2021
     def run_update_fact_table_incremental_only(self):
-        # TODO: #113 implement EuropeService.run_update_fact_table_incremental_only
-        # TODO: #111 refactor to new method scheme itroduced 07.02.2021
         return self
 
+
+    # TODO: #114 implement EuropeService.run_update_fact_table_initial_only
+    # TODO: #111 refactor to new method scheme itroduced 07.02.2021
     def run_update_fact_table_initial_only(self):
-        # TODO: #114 implement EuropeService.run_update_fact_table_initial_only
-        # TODO: #111 refactor to new method scheme itroduced 07.02.2021
         return self
 
+    # TODO: #115 implement EuropeService.run_update_star_schema_incremental
+    # TODO: #111 refactor to new method scheme itroduced 07.02.2021
     def run_update_star_schema_incremental(self):
-        # TODO: #115 implement EuropeService.run_update_star_schema_incremental
-        # TODO: #111 refactor to new method scheme itroduced 07.02.2021
         return self
 
+
+    # TODO: #116 implement EuropeService.run_update_star_schema_initial
+    # TODO: #111 refactor to new method scheme itroduced 07.02.2021
     def run_update_star_schema_initial(self):
-        # TODO: #116 implement EuropeService.run_update_star_schema_initial
-        # TODO: #111 refactor to new method scheme itroduced 07.02.2021
         return self
 
+    # TODO remove DEPRECATED
     # TODO: #111 refactor to new method scheme itroduced 07.02.2021
-    def download(self):
+    def download_DEPRECATED(self):
         app.logger.info(" download [begin]")
         app.logger.info("------------------------------------------------------------")
         self.europe_service_download.download()
@@ -71,8 +74,9 @@ class EuropeService:
         app.logger.info("------------------------------------------------------------")
         return self
 
+    # TODO remove DEPRECATED
     # TODO: #111 refactor to new method scheme itroduced 07.02.2021
-    def run_update_initial(self):
+    def run_update_initial_DEPRECATED(self):
         app.logger.info(" run update [begin]")
         app.logger.info("------------------------------------------------------------")
         self.europe_service_import.import_datafile_to_db()
@@ -81,8 +85,9 @@ class EuropeService:
         app.logger.info("------------------------------------------------------------")
         return self
 
+    # TODO remove DEPRECATED
     # TODO: #111 refactor to new method scheme itroduced 07.02.2021
-    def run_update_short(self):
+    def run_update_short_DEPRECATED(self):
         app.logger.info(" run update short [begin]")
         app.logger.info("------------------------------------------------------------")
         self.europe_service_import.import_datafile_to_db()
diff --git a/src/covid19/blueprints/europe/europe_views.py b/src/covid19/blueprints/europe/europe_views.py
index bb853656..1856163a 100644
--- a/src/covid19/blueprints/europe/europe_views.py
+++ b/src/covid19/blueprints/europe/europe_views.py
@@ -21,8 +21,9 @@ app_europe = Blueprint('europe', __name__, template_folder='templates')
 ##################################################################################################################
 
 
+# TODO remove DEPRECATED
 @celery.task(bind=True)
-def task_europe_update_initial(self):
+def task_europe_update_initial_DEPRECATED(self):
     logger = get_task_logger(__name__)
     self.update_state(state=states.STARTED)
     logger.info("------------------------------------------------------------")
@@ -34,14 +35,15 @@ def task_europe_update_initial(self):
     return result
 
 
+# TODO remove DEPRECATED
 @celery.task(bind=True)
-def task_europe_update_short(self):
+def task_europe_update_short_DEPRECATED(self):
     logger = get_task_logger(__name__)
     self.update_state(state=states.STARTED)
     logger.info("------------------------------------------------------------")
     logger.info(" Received: task_europe_update_short [OK] ")
     logger.info("------------------------------------------------------------")
-    europe_service.run_update_short()
+    europe_service.run_update_short_DEPRECATED()
     self.update_state(state=states.SUCCESS)
     result = "OK (task_europe_update_short)"
     return result
@@ -54,7 +56,7 @@ def task_europe_download_only(self):
     logger.info("------------------------------------------------------------")
     logger.info(" Received: task_europe_download_only [OK] ")
     logger.info("------------------------------------------------------------")
-    europe_service.task_europe_download_only() # TODO
+    europe_service.task_download_only() # TODO
     self.update_state(state=states.SUCCESS)
     result = "OK (task_europe_download_only)"
     return result
@@ -67,7 +69,7 @@ def task_europe_import_only(self):
     logger.info("------------------------------------------------------------")
     logger.info(" Received: task_europe_import_only [OK] ")
     logger.info("------------------------------------------------------------")
-    europe_service.task_europe_import_only() # TODO
+    europe_service.task_import_only() # TODO
     self.update_state(state=states.SUCCESS)
     result = "OK (task_europe_import_only)"
     return result
@@ -80,7 +82,7 @@ def task_europe_update_dimension_tables_only(self):
     logger.info("------------------------------------------------------------")
     logger.info(" Received: task_europe_update_dimension_tables_only [OK] ")
     logger.info("------------------------------------------------------------")
-    europe_service.task_europe_update_dimension_tables_only() # TODO
+    europe_service.task_update_dimension_tables_only() # TODO
     self.update_state(state=states.SUCCESS)
     result = "OK (task_europe_update_dimension_tables_only)"
     return result
@@ -93,7 +95,7 @@ def task_europe_update_fact_table_incremental_only(self):
     logger.info("------------------------------------------------------------")
     logger.info(" Received: task_europe_update_fact_table_incremental_only [OK] ")
     logger.info("------------------------------------------------------------")
-    europe_service.task_europe_update_fact_table_incremental_only() # TODO
+    europe_service.task_update_fact_table_incremental_only() # TODO
     self.update_state(state=states.SUCCESS)
     result = "OK (task_europe_update_fact_table_incremental_only)"
     return result
@@ -106,7 +108,7 @@ def task_europe_update_fact_table_initial_only(self):
     logger.info("------------------------------------------------------------")
     logger.info(" Received: task_europe_update_fact_table_initial_only [OK] ")
     logger.info("------------------------------------------------------------")
-    europe_service.task_europe_update_fact_table_initial_only() # TODO
+    europe_service.task_update_fact_table_initial_only() # TODO
     self.update_state(state=states.SUCCESS)
     result = "OK (task_europe_update_fact_table_initial_only)"
     return result
@@ -119,7 +121,7 @@ def task_europe_update_fact_table_initial_only(self):
     logger.info("------------------------------------------------------------")
     logger.info(" Received: task_europe_update_fact_table_initial_only [OK] ")
     logger.info("------------------------------------------------------------")
-    europe_service.task_europe_update_fact_table_initial_only() # TODO
+    europe_service.task_update_fact_table_initial_only() # TODO
     self.update_state(state=states.SUCCESS)
     result = "OK (task_europe_update_fact_table_initial_only)"
     return result
@@ -132,7 +134,7 @@ def task_europe_update_star_schema_incremental(self):
     logger.info("------------------------------------------------------------")
     logger.info(" Received: task_europe_update_star_schema_incremental [OK] ")
     logger.info("------------------------------------------------------------")
-    europe_service.task_europe_update_star_schema_incremental() # TODO
+    europe_service.task_update_star_schema_incremental() # TODO
     self.update_state(state=states.SUCCESS)
     result = "OK (task_europe_update_star_schema_incremental)"
     return result
@@ -145,7 +147,7 @@ def task_europe_update_star_schema_initial(self):
     logger.info("------------------------------------------------------------")
     logger.info(" Received: task_europe_update_star_schema_initial [OK] ")
     logger.info("------------------------------------------------------------")
-    europe_service.task_europe_update_star_schema_initial()  # TODO
+    europe_service.task_update_star_schema_initial()  # TODO
     self.update_state(state=states.SUCCESS)
     result = "OK (task_europe_update_star_schema_initial)"
     return result
@@ -296,66 +298,68 @@ def url_europe_country_germany(page=1):
         page_info=page_info)
 
 
+# TODO remove DEPRECATED
 @app_europe.route('/update/initial')
-def url_europe_task_europe_update_data():
-    europe_service.download()
-    task_europe_update_initial.apply_async()
+def url_europe_task_update_data_DEPRECATED():
+    europe_service.download_DEPRECATED()
+    task_europe_update_initial_DEPRECATED.apply_async()
     flash("task_europe_update_initial started")
     return redirect(url_for('url_europe_tasks'))
 
 
+# TODO remove DEPRECATED
 @app_europe.route('/update/short')
-def url_europe_task_europe_update_data_short():
-    europe_service.download()
-    task_europe_update_short.apply_async()
+def url_europe_task_update_data_short_DEPRECATED():
+    europe_service.download_DEPRECATED()
+    task_europe_update_short_DEPRECATED.apply_async()
     flash("task_europe_update_short started")
     return redirect(url_for('url_europe_tasks'))
 
 
+# TODO: #163 implement url_europe_task_update_star_schema_initial in europe_views.py
 @app_europe.route('/task/update/star_schema/initial')
 def url_europe_task_update_star_schema_initial():
     flash("url_europe_task_update_star_schema_initial started")
-    # TODO: #163 implement url_europe_task_update_star_schema_initial in europe_views.py
     return redirect(url_for('url_europe_tasks'))
 
 
+# TODO: #164 implement url_europe_task_update_starschema_incremental in europe_views.py
 @app_europe.route('/task/update/star_schema/incremental')
 def url_europe_task_update_starschema_incremental():
     flash("url_europe_task_update_starschema_incremental started")
-    # TODO: #164 implement url_europe_task_update_starschema_incremental in europe_views.py
     return redirect(url_for('url_europe_tasks'))
 
 
+# TODO: #165 implement url_europe_task_download_only in europe_views.py
 @app_europe.route('/task/download/only')
 def url_europe_task_download_only():
     flash("url_europe_task_download_only started")
-    # TODO: #165 implement url_europe_task_download_only in europe_views.py
     return redirect(url_for('url_europe_tasks'))
 
 
+# TODO: #166 implement url_europe_task_import_only in europe_views.py
 @app_europe.route('/task/import/only')
 def url_europe_task_import_only():
     flash("url_europe_task_import_only started")
-    # TODO: #166 implement url_europe_task_import_only in europe_views.py
     return redirect(url_for('url_europe_tasks'))
 
 
+# TODO: #167 implement url_europe_task_update_dimensiontables_only in europe_views.py
 @app_europe.route('/task/update/dimension-tables/only')
 def url_europe_task_update_dimensiontables_only():
     flash("url_europe_task_update_dimensiontables_only started")
-    # TODO: #167 implement url_europe_task_update_dimensiontables_only in europe_views.py
     return redirect(url_for('url_europe_tasks'))
 
 
+# TODO: #168 implement url_europe_task_update_facttable_incremental_only in europe_views.py
 @app_europe.route('/task/update/fact-table/incremental/only')
 def url_europe_task_update_facttable_incremental_only():
     flash("url_europe_task_update_facttable_incremental_only started")
-    # TODO: #168 implement url_europe_task_update_facttable_incremental_only in europe_views.py
     return redirect(url_for('url_europe_tasks'))
 
 
+# TODO: #169 implement url_europe_task_update_facttable_initial_only in europe_views.py
 @app_europe.route('/task/update/fact-table/initial/only')
 def url_europe_task_update_facttable_initial_only():
     flash("url_europe_task_update_facttable_initial_only started")
-    # TODO: #169 implement url_europe_task_update_facttable_initial_only in europe_views.py
     return redirect(url_for('url_europe_tasks'))
diff --git a/src/covid19/blueprints/rki/rki_service.py b/src/covid19/blueprints/rki/rki_service.py
index 182fbda1..8ad5c2da 100644
--- a/src/covid19/blueprints/rki/rki_service.py
+++ b/src/covid19/blueprints/rki/rki_service.py
@@ -22,7 +22,7 @@ class RkiBundeslaenderService:
         app.logger.info(" RKI Service [ready]")
 
     def pretask_database_drop_create(self):
-        flash("rki_service.run_download started")
+        flash("rki_service_bundeslaender.run_download started")
         self.service_download.download_file()
         return self
 
@@ -127,7 +127,7 @@ class RkiLandkreiseService:
         app.logger.info(" RKI Service [ready]")
 
     def pretask_database_drop_create(self):
-        flash("rki_service.run_download started")
+        flash("rki_service_bundeslaender.run_download started")
         self.service_download.download_file()
         return self
 
diff --git a/src/covid19/blueprints/vaccination/templates/vaccination/vaccination_timeline_germany.html b/src/covid19/blueprints/vaccination/templates/vaccination/vaccination_data.html
similarity index 100%
rename from src/covid19/blueprints/vaccination/templates/vaccination/vaccination_timeline_germany.html
rename to src/covid19/blueprints/vaccination/templates/vaccination/vaccination_data.html
diff --git a/src/covid19/blueprints/vaccination/templates/vaccination/vaccination_import.html b/src/covid19/blueprints/vaccination/templates/vaccination/vaccination_import.html
new file mode 100644
index 00000000..8d827f8b
--- /dev/null
+++ b/src/covid19/blueprints/vaccination/templates/vaccination/vaccination_import.html
@@ -0,0 +1,62 @@
+{% extends 'common/page_layout.html' %}
+
+{% include 'common/fragment_pagination.html' %}
+
+{% block navigation_breadcrumb %}
+
+{% endblock %}
+
+
+{% block navigation_navtabs %}
+  {% include 'vaccination/fragments/fragment_vaccination_navtabs.html' %}
+{% endblock %}
+
+
+{% block main_container_fluid %}
+
+    {% if page_data.pages > 1 %}
+    <!-- previous page -->
+        <ul class="pagination">
+        {% if page_data.has_prev %}
+        <li class="page-item">
+            <a class="page-link" href="{{ url_for('vaccination.url_vaccination_timeline_germany', page=page_data.prev_num) }}">Previous</a>
+        </li>
+        {% endif %}
+        <!-- all page numbers -->
+        {% for page_num in page_data.iter_pages() %}
+            {% if page_num %}
+                {% if page_num != page_data.page %}
+                    <li class="page-item">
+                        <a class="page-link" href="{{ url_for('vaccination.url_vaccination_timeline_germany', page=page_num) }}">{{ page_num }}</a>
+                    </li>
+                {% else %}
+                    <li class="page-item active">
+                        <a class="page-link" href="#">{{ page_num }}</a>
+                    </li>
+                {% endif %}
+           {% else %}
+               <li class="page-item">
+                   <span class="ellipsis page-link my-page-item-ellipsis-page-link">…</span>
+               </li>
+           {% endif %}
+        {% endfor %}
+        <!-- next page -->
+        {% if page_data.has_next %}
+        <li class="page-item">
+            <a class="page-link" href="{{ url_for('vaccination.url_vaccination_timeline_germany', page=page_data.next_num) }}">Next</a>
+        </li>
+        {% endif %}
+        </ul>
+    {% endif %}
+
+    {% include 'vaccination/fragments/fragment_vaccination_timeline_germany_table.html' %}
+
+{% endblock %}
+
+
+{% block footer_container %}
+
+{% endblock %}
+
+
+
diff --git a/src/covid19/blueprints/vaccination/vaccination_model.py b/src/covid19/blueprints/vaccination/vaccination_model.py
index 9c9322d5..f1e40c07 100644
--- a/src/covid19/blueprints/vaccination/vaccination_model.py
+++ b/src/covid19/blueprints/vaccination/vaccination_model.py
@@ -45,8 +45,6 @@ class VaccinationDateReported(CommonDateReported):
         )
 
 
-# TODO: #86 rename VaccinationData to VaccinationData
-# TODO: #162 rename table vaccination_germany_timeline into vaccination_data
 class VaccinationData(db.Model):
     __tablename__ = 'vaccination_data'
 
diff --git a/src/covid19/blueprints/vaccination/vaccination_model_import.py b/src/covid19/blueprints/vaccination/vaccination_model_import.py
index d22bb379..26690727 100644
--- a/src/covid19/blueprints/vaccination/vaccination_model_import.py
+++ b/src/covid19/blueprints/vaccination/vaccination_model_import.py
@@ -1,11 +1,6 @@
-from sqlalchemy.orm import defer
-from sqlalchemy.orm import undefer
-
 from database import db, ITEMS_PER_PAGE
 
 
-# TODO: #88 rename VaccinationImport to VaccinationImport
-# TODO: #89 change tablename from vaccination_germany_timeline_import to vaccination_import
 class VaccinationImport(db.Model):
     __tablename__ = 'vaccination_import'
 
@@ -122,5 +117,4 @@ class VaccinationImport(db.Model):
         new_dates = []
         for item, in db.session.execute(sql_query):
             new_dates.append(item)
-            #new_dates.append(item['date_reported'])
         return new_dates
\ No newline at end of file
diff --git a/src/covid19/blueprints/vaccination/vaccination_service.py b/src/covid19/blueprints/vaccination/vaccination_service.py
index 2b032342..72ce5b4a 100644
--- a/src/covid19/blueprints/vaccination/vaccination_service.py
+++ b/src/covid19/blueprints/vaccination/vaccination_service.py
@@ -7,7 +7,6 @@ from covid19.blueprints.vaccination.vaccination_service_config import Vaccinatio
 from covid19.blueprints.vaccination.vaccination_service_update import VaccinationServiceUpdate
 
 
-# TODO: #90 refactor VaccinationService to new method scheme introduced 07.02.2021
 class VaccinationService:
     def __init__(self, database):
         app.logger.debug("------------------------------------------------------------")
@@ -31,67 +30,51 @@ class VaccinationService:
         self.vaccination_service_udpate.update_star_schema_initial()
         return self
 
-    # TODO: #90 refactor VaccinationService to new method scheme introduced 07.02.2021
-    # TODO: #91 implement VaccinationService.run_download_only
     def run_download_only(self):
         self.vaccination_service_download.download_file()
         return self
 
-    # TODO: #90 refactor VaccinationService to new method scheme introduced 07.02.2021
-    # TODO: #92 implement VaccinationService.run_import_only
     def run_import_only(self):
         self.vaccination_service_import.import_file()
         return self
 
-    # TODO: #90 refactor VaccinationService to new method scheme introduced 07.02.2021
-    # TODO: #93 implement VaccinationService.run_update_dimension_tables_only
     def run_update_dimension_tables_only(self):
         self.vaccination_service_udpate.update_dimension_tables_only()
         return self
 
-    # TODO: #90 refactor VaccinationService to new method scheme introduced 07.02.2021
-    # TODO: #94 implement VaccinationService.run_update_fact_table_incremental_only
     def run_update_fact_table_incremental_only(self):
         self.vaccination_service_udpate.update_fact_table_incremental_only()
         return self
 
-    # TODO: #90 refactor VaccinationService to new method scheme introduced 07.02.2021
-    # TODO: #95 implement VaccinationService.run_update_fact_table_initial_only
     def run_update_fact_table_initial_only(self):
         self.vaccination_service_udpate.update_fact_table_initial_only()
         return self
 
-    # TODO: #90 refactor VaccinationService to new method scheme introduced 07.02.2021
-    # TODO: #96 implement VaccinationService.run_update_star_schema_incremental
     def run_update_star_schema_incremental(self):
         self.vaccination_service_udpate.update_star_schema_incremental()
         return self
 
-    # TODO: #90 refactor VaccinationService to new method scheme introduced 07.02.2021
-    # TODO: #97 implement VaccinationService.run_update_star_schema_initial
     def run_update_star_schema_initial(self):
         self.run_import_only()
         self.vaccination_service_udpate.update_star_schema_initial()
         return self
 
     # TODO remove DEPRECATED
-    # TODO: #90 refactor VaccinationService to new method scheme introduced 07.02.2021
-    def run_download_DEPRECATED(self):
-        app.logger.info(" run update [begin]")
-        app.logger.info("------------------------------------------------------------")
-        success = self.vaccination_service_download.download_file()
-        app.logger.info("")
-        app.logger.info(" run update [done]")
-        app.logger.info("------------------------------------------------------------")
-        return success
+    #def run_download_DEPRECATED(self):
+    #    app.logger.info(" run update [begin]")
+    #    app.logger.info("------------------------------------------------------------")
+    #    success = self.vaccination_service_download.download_file()
+    #    app.logger.info("")
+    #    app.logger.info(" run update [done]")
+    #    app.logger.info("------------------------------------------------------------")
+    #    return success
 
     # TODO remove DEPRECATED
-    # TODO: #90 refactor VaccinationService to new method scheme introduced 07.02.2021
-    def run_update_initial_DEPRECATED(self):
-        app.logger.info(" run update initial [begin]")
-        app.logger.info("------------------------------------------------------------")
-        self.vaccination_service_import.import_file()
-        app.logger.info("")
-        app.logger.info(" run update initial [done]")
-        app.logger.info("------------------------------------------------------------")
-        return self
+    #def run_update_initial_DEPRECATED(self):
+    #    app.logger.info(" run update initial [begin]")
+    #    app.logger.info("------------------------------------------------------------")
+    #    self.vaccination_service_import.import_file()
+    #    app.logger.info("")
+    #    app.logger.info(" run update initial [done]")
+    #    app.logger.info("------------------------------------------------------------")
+    #    return self
diff --git a/src/covid19/blueprints/vaccination/vaccination_service_download.py b/src/covid19/blueprints/vaccination/vaccination_service_download.py
index 56aef73a..71cd8f10 100644
--- a/src/covid19/blueprints/vaccination/vaccination_service_download.py
+++ b/src/covid19/blueprints/vaccination/vaccination_service_download.py
@@ -5,7 +5,6 @@ from database import app
 from covid19.blueprints.vaccination.vaccination_service_config import VaccinationServiceConfig
 
 
-# TODO: #98 refactor VaccinationServiceDownload to new method scheme introduced 07.02.2021
 class VaccinationServiceDownload:
     def __init__(self, database):
         app.logger.debug("------------------------------------------------------------")
diff --git a/src/covid19/blueprints/vaccination/vaccination_service_import.py b/src/covid19/blueprints/vaccination/vaccination_service_import.py
index e246b061..2138c177 100644
--- a/src/covid19/blueprints/vaccination/vaccination_service_import.py
+++ b/src/covid19/blueprints/vaccination/vaccination_service_import.py
@@ -7,7 +7,6 @@ from covid19.blueprints.vaccination.vaccination_model_import import VaccinationI
 from covid19.blueprints.vaccination.vaccination_service_config import VaccinationServiceConfig
 
 
-# TODO: #99 refactor VaccinationServiceImport to new method scheme introduced 07.02.2021
 class VaccinationServiceImport:
     def __init__(self, database):
         app.logger.debug("------------------------------------------------------------")
diff --git a/src/covid19/blueprints/vaccination/vaccination_service_update.py b/src/covid19/blueprints/vaccination/vaccination_service_update.py
index 7403e3c5..c52ac751 100644
--- a/src/covid19/blueprints/vaccination/vaccination_service_update.py
+++ b/src/covid19/blueprints/vaccination/vaccination_service_update.py
@@ -5,7 +5,6 @@ from covid19.blueprints.vaccination.vaccination_model_import import VaccinationI
 from covid19.blueprints.vaccination.vaccination_model import VaccinationDateReported, VaccinationData
 
 
-# TODO: #100 refactor VaccinationServiceUpdate to new method scheme introduced 07.02.2021
 class VaccinationServiceUpdate:
     def __init__(self, database):
         app.logger.debug("------------------------------------------------------------")
@@ -16,7 +15,6 @@ class VaccinationServiceUpdate:
         app.logger.debug("------------------------------------------------------------")
         app.logger.debug(" Europe Service Update [ready] ")
 
-    # TODO: #100 refactor VaccinationServiceUpdate to new method scheme introduced 07.02.2021
     def __update_date_reported(self):
         app.logger.info(" __update_date_reported [begin]")
         app.logger.info("------------------------------------------------------------")
@@ -35,7 +33,6 @@ class VaccinationServiceUpdate:
         app.logger.info("------------------------------------------------------------")
         return self
 
-    # TODO: #100 refactor VaccinationServiceUpdate to new method scheme introduced 07.02.2021
     def __update_data_initial(self):
         app.logger.info(" __update_data_initial [begin]")
         app.logger.info("------------------------------------------------------------")
@@ -134,73 +131,60 @@ class VaccinationServiceUpdate:
         return self
 
     # TODO: remove DEPRECATED
-    # TODO: #100 refactor VaccinationServiceUpdate to new method scheme introduced 07.02.2021
-    def __update_data_short_DEPRECATED(self):
-        app.logger.info(" __update_data_initial [begin]")
-        app.logger.info("------------------------------------------------------------")
-        app.logger.info(" ... ")
-        app.logger.info(" __update_data_initial [done]")
-        app.logger.info("------------------------------------------------------------")
-        return self
+    #def __update_data_short_DEPRECATED(self):
+    #    app.logger.info(" __update_data_initial [begin]")
+    #    app.logger.info("------------------------------------------------------------")
+    #    app.logger.info(" ... ")
+    #    app.logger.info(" __update_data_initial [done]")
+    #    app.logger.info("------------------------------------------------------------")
+    #    return self
 
     # TODO: remove DEPRECATED
-    # TODO: #100 refactor VaccinationServiceUpdate to new method scheme introduced 07.02.2021
-    def update_db_initial_DEPRECATED(self):
-        app.logger.info(" update_db_initial [begin]")
-        app.logger.info("------------------------------------------------------------")
-        VaccinationDateReported.remove_all()
-        VaccinationData.remove_all()
-        self.__update_date_reported()
-        self.__update_data_initial()
-        app.logger.info(" update_db_initial [done]")
-        app.logger.info("------------------------------------------------------------")
-        return self
+    #def update_db_initial_DEPRECATED(self):
+    #    app.logger.info(" update_db_initial [begin]")
+    #    app.logger.info("------------------------------------------------------------")
+    #    VaccinationDateReported.remove_all()
+    #    VaccinationData.remove_all()
+    #    self.__update_date_reported()
+    #    self.__update_data_initial()
+    #    app.logger.info(" update_db_initial [done]")
+    #    app.logger.info("------------------------------------------------------------")
+    #    return self
 
     # TODO: remove DEPRECATED
-    # TODO: #100 refactor VaccinationServiceUpdate to new method scheme introduced 07.02.2021
-    def update_db_short_DEPRECATED(self):
-        app.logger.info(" update_db_short [begin]")
-        app.logger.info("------------------------------------------------------------")
-        VaccinationDateReported.remove_all()
-        VaccinationData.remove_all()
-        self.__update_date_reported()
-        self.__update_data_short_DEPRECATED()
-        app.logger.info(" update_db_short [done]")
-        app.logger.info("------------------------------------------------------------")
-        return self
+    #def update_db_short_DEPRECATED(self):
+    #    app.logger.info(" update_db_short [begin]")
+    #    app.logger.info("------------------------------------------------------------")
+    #    VaccinationDateReported.remove_all()
+    #    VaccinationData.remove_all()
+    #    self.__update_date_reported()
+    #    self.__update_data_short_DEPRECATED()
+    #    app.logger.info(" update_db_short [done]")
+    #    app.logger.info("------------------------------------------------------------")
+    #    return self
 
     # Delegate
     def __update_dimension_table_date_reported(self):
         self.__update_date_reported()
         return self
 
-    # TODO: #101 implement VaccinationServiceUpdate.update_dimension_tables_only
-    # TODO: #100 refactor VaccinationServiceUpdate to new method scheme introduced 07.02.2021s
     def update_dimension_tables_only(self):
         self.__update_dimension_table_date_reported()
         return self
 
-    # TODO: #102 implement VaccinationServiceUpdate.update_fact_table_incremental_only
-    # TODO: #100 refactor VaccinationServiceUpdate to new method scheme introduced 07.02.2021
     def update_fact_table_incremental_only(self):
         self.__update_data_incremental()
         return self
 
-    # TODO: #103 implement VaccinationServiceUpdate.update_fact_table_initial_only
-    # TODO: #100 refactor VaccinationServiceUpdate to new method scheme introduced 07.02.2021
     def update_fact_table_initial_only(self):
         self.__update_data_initial()
         return self
 
-    # TODO: #104 implement VaccinationServiceUpdate.update_star_schema_incremental
-    # TODO: #100 refactor VaccinationServiceUpdate to new method scheme introduced 07.02.2021
     def update_star_schema_incremental(self):
         self.__update_dimension_table_date_reported()
         self.__update_data_incremental()
         return self
 
-    # TODO: #105 implement VaccinationServiceUpdate.update_star_schema_initial
-    # TODO: #100 refactor VaccinationServiceUpdate to new method scheme introduced 07.02.2021
     def update_star_schema_initial(self):
         VaccinationData.remove_all()
         VaccinationDateReported.remove_all()
diff --git a/src/covid19/blueprints/vaccination/vaccination_views.py b/src/covid19/blueprints/vaccination/vaccination_views.py
index 16e20fb5..f5aa26c6 100644
--- a/src/covid19/blueprints/vaccination/vaccination_views.py
+++ b/src/covid19/blueprints/vaccination/vaccination_views.py
@@ -6,7 +6,7 @@ from database import app
 from covid19.services import vaccination_service
 from covid19.workers import celery
 
-from covid19.blueprints.vaccination.vaccination_model import VaccinationData
+from covid19.blueprints.vaccination.vaccination_model import VaccinationData, VaccinationDateReported
 from covid19.blueprints.vaccination.vaccination_model_import import VaccinationImport
 from covid19.blueprints.common.common_model_transient import ApplicationPage
 
@@ -128,27 +128,25 @@ def url_vaccination_tasks():
         page_info=page_info)
 
 
-@app_vaccination.route('/tmp/timeline/germany/page/<int:page>')
-@app_vaccination.route('/tmp/timeline/germany')
-def url_vaccination_timeline_germany_tmp(page=1):
-    page_info = ApplicationPage('Vaccination', "Germany Timeline")
+@app_vaccination.route('/imported/page/<int:page>')
+@app_vaccination.route('/imported')
+def url_vaccination_imported(page=1):
+    page_info = ApplicationPage('Vaccination', "Data: Germany Timeline imported")
     page_data = VaccinationImport.get_all_as_page(page)
-    #page_data_tmp = VaccinationData.get_all_as_page(page)
     return render_template(
-        'vaccination/vaccination_timeline_germany.html',
+        'vaccination/vaccination_imported.html',
         page_data=page_data,
         page_info=page_info)
 
 
-@app_vaccination.route('/timeline/germany/page/<int:page>')
-@app_vaccination.route('/timeline/germany')
-def url_vaccination_timeline_germany(page=1):
-    page_info = ApplicationPage('Vaccination', "Germany Timeline")
-    #page_data = VaccinationImport.get_all_as_page(page)
-    page_data_tmp = VaccinationData.get_all_as_page(page)
+@app_vaccination.route('/data/page/<int:page>')
+@app_vaccination.route('/data')
+def url_vaccination_data(page=1):
+    page_info = ApplicationPage('Vaccination', "Data: Germany Timeline")
+    page_data = VaccinationData.get_all_as_page(page)
     return render_template(
-        'vaccination/vaccination_timeline_germany.html',
-        page_data=page_data_tmp,
+        'vaccination/vaccination_data.html',
+        page_data=page_data,
         page_info=page_info)
 
 
@@ -156,30 +154,26 @@ def url_vaccination_timeline_germany(page=1):
 @app_vaccination.route('/date-reported/all')
 def url_vaccination_datereported_all(page=1):
     page_info = ApplicationPage('Vaccination', "Germany Timeline")
-    #page_data = VaccinationImport.get_all_as_page(page)
-    page_data_tmp = VaccinationData.get_all_as_page(page)
+    page_data = VaccinationDateReported.get_all_as_page(page)
     return render_template(
         'vaccination/vaccination_timeline_germany.html',
-        page_data=page_data_tmp,
+        page_data=page_data,
         page_info=page_info)
 
 
-@app_vaccination.route('/date-reported/<int:vaccination_data_id>/page/<int:page>')
-@app_vaccination.route('/date-reported/<int:vaccination_data_id>')
-def url_vaccination_datereported_one(page=1, vaccination_data_id=0):
+@app_vaccination.route('/date-reported/<int:vaccination_date_reported_id>/page/<int:page>')
+@app_vaccination.route('/date-reported/<int:vaccination_date_reported_id>')
+def url_vaccination_datereported_one(page=1, vaccination_date_reported_id=0):
     page_info = ApplicationPage('Vaccination', "Germany Timeline")
-    #page_data = VaccinationImport.get_all_as_page(page)
-    page_data_tmp = VaccinationData.get_all_as_page(page)
+    datereported = VaccinationDateReported.find_by_id(vaccination_date_reported_id)
+    page_data = VaccinationData.find_by_datum(page, datereported)
     return render_template(
         'vaccination/vaccination_timeline_germany.html',
-        page_data=page_data_tmp,
+        datereported=datereported,
+        page_data=page_data,
         page_info=page_info)
 
 
-# TODO: #106 add Tasks and URLs for starting Tasks to vaccination_views
-
-
-# TODO: #172 implement url_vaccination_task_import_only in vaccination_views.py
 @app_vaccination.route('/task/download/only')
 def url_vaccination_task_download_only():
     flash("url_vaccination_task_download_only started")
@@ -187,7 +181,6 @@ def url_vaccination_task_download_only():
     return redirect(url_for('vaccination.url_vaccination_tasks'))
 
 
-# TODO: #173 implement url_vaccination_task_import_only in vaccination_views.py
 @app_vaccination.route('/task/import/only')
 def url_vaccination_task_import_only():
     flash("url_vaccination_task_import_only started")
@@ -195,7 +188,6 @@ def url_vaccination_task_import_only():
     return redirect(url_for('vaccination.url_vaccination_tasks'))
 
 
-# TODO: #174 implement url_vaccination_task_update_dimensiontables_only in vaccination_views.py
 @app_vaccination.route('/task/update/dimension-tables/only')
 def url_vaccination_task_update_dimensiontables_only():
     flash("url_vaccination_task_update_dimensiontables_only started")
@@ -203,7 +195,6 @@ def url_vaccination_task_update_dimensiontables_only():
     return redirect(url_for('vaccination.url_vaccination_tasks'))
 
 
-# TODO: #175 implement url_vaccination_task_update_facttable_incremental_only in vaccination_views.py
 @app_vaccination.route('/task/update/fact-table/incremental/only')
 def url_vaccination_task_update_facttable_incremental_only():
     flash("url_vaccination_task_update_facttable_incremental_only started")
@@ -211,7 +202,6 @@ def url_vaccination_task_update_facttable_incremental_only():
     return redirect(url_for('vaccination.url_vaccination_tasks'))
 
 
-# TODO: #176 implement url_vaccination_task_update_facttable_initial_only in vaccination_views.py
 @app_vaccination.route('/task/update/fact-table/initial/only')
 def url_vaccination_task_update_facttable_initial_only():
     flash("url_vaccination_task_update_facttable_initial_only started")
@@ -219,7 +209,6 @@ def url_vaccination_task_update_facttable_initial_only():
     return redirect(url_for('vaccination.url_vaccination_tasks'))
 
 
-# TODO: #170 implement url_vaccination_task_update_starschema_initial in vaccination_views.py
 @app_vaccination.route('/task/update/star_schema/initial')
 def url_vaccination_task_update_starschema_initial():
     flash("url_vaccination_task_update_star_schemainitial started")
@@ -228,7 +217,6 @@ def url_vaccination_task_update_starschema_initial():
     return redirect(url_for('vaccination.url_vaccination_tasks'))
 
 
-# TODO: #171 implement url_vaccination_task_update_starschema_incremental in vaccination_views.py
 @app_vaccination.route('/task/update/star_schema/incremental')
 def url_vaccination_task_update_starschema_incremental():
     flash("url_vaccination_task_update_starschema_incremental started")
diff --git a/src/covid19/services.py b/src/covid19/services.py
index 9a31532d..c8877b03 100644
--- a/src/covid19/services.py
+++ b/src/covid19/services.py
@@ -14,7 +14,7 @@ from covid19.blueprints.admin.admin_service import AdminService
 common_service = CommonService(db)
 who_service = WhoService(db)
 europe_service = EuropeService(db)
-rki_service = RkiBundeslaenderService(db)
+rki_service_bundeslaender = RkiBundeslaenderService(db)
 vaccination_service = VaccinationService(db)
 admin_service = AdminService(db)
 db.create_all()
-- 
GitLab