From aca99c171b7ba99505bcc9db207dd2bd7a29ee4d Mon Sep 17 00:00:00 2001
From: thomaswoehlke <thomas.woehlke@gmail.com>
Date: Mon, 25 Jan 2021 12:34:18 +0100
Subject: [PATCH] work

---
 .../covid19/vaccination/vaccination_model.py  | 209 +-----------------
 .../vaccination/vaccination_service_import.py |   6 +-
 2 files changed, 5 insertions(+), 210 deletions(-)

diff --git a/org/woehlke/covid19/vaccination/vaccination_model.py b/org/woehlke/covid19/vaccination/vaccination_model.py
index 8a6d334d..a64ddd2a 100644
--- a/org/woehlke/covid19/vaccination/vaccination_model.py
+++ b/org/woehlke/covid19/vaccination/vaccination_model.py
@@ -4,213 +4,8 @@ from database import db, ITEMS_PER_PAGE
 from sqlalchemy.orm import joinedload, raiseload
 
 
-class VaccinationDateReported(db.Model):
-    __tablename__ = 'vaccination_date_reported'
-
-    id = db.Column(db.Integer, primary_key=True)
-    date_reported = db.Column(db.String(255), nullable=False, unique=True)
-
-    @classmethod
-    def remove_all(cls):
-        db.session.execute("delete from " + cls.__tablename__)
-        db.session.commit()
-        return None
-
-    @classmethod
-    def get_all_as_page(cls, page):
-        return db.session.query(cls).order_by(cls.date_reported.desc()).paginate(page, per_page=ITEMS_PER_PAGE)
-
-    @classmethod
-    def get_all(cls):
-        return db.session.query(cls).all()
-
-    @classmethod
-    def get_all_as_dict(cls):
-        dates_reported = {}
-        for my_date_reported in cls.get_all():
-            dates_reported[my_date_reported.date_reported] = my_date_reported
-        return dates_reported
-
-    @classmethod
-    def get_by_id(cls, other_id):
-        return db.session.query(cls).filter(cls.id == other_id).one()
-
-    @classmethod
-    def find_by_date_reported(cls, i_date_reported):
-        return db.session.query(cls).filter(cls.date_reported == i_date_reported).one_or_none()
-
-
-class VaccinationRegion(db.Model):
-    __tablename__ = 'vaccination_region'
-
-    id = db.Column(db.Integer, primary_key=True)
-    region = db.Column(db.String(255), unique=True)
-
-    @classmethod
-    def remove_all(cls):
-        db.session.execute("delete from " + cls.__tablename__)
-        db.session.commit()
-        return None
-
-    @classmethod
-    def get_all(cls):
-        return db.session.query(cls).all()
-
-    @classmethod
-    def get_all_as_page(cls, page):
-        return db.session.query(cls).order_by(cls.region).paginate(page, per_page=ITEMS_PER_PAGE)
-
-    @classmethod
-    def get_all_as_dict(cls):
-        regions = {}
-        for my_region in cls.get_all():
-            regions[my_region.region] = my_region
-        return regions
-
-    @classmethod
-    def get_by_id(cls, other_id):
-        return db.session.query(cls).filter(cls.id == other_id).one()
-
-    @classmethod
-    def find_by_region(cls, i_who_region):
-        my_region = db.session.query(cls).filter(cls.region == i_who_region).one_or_none()
-        return my_region
-
-
-class VaccinationCountry(db.Model):
-    __tablename__ = 'vaccination_country'
-
-    id = db.Column(db.Integer, primary_key=True)
-    country_code = db.Column(db.String(255), unique=True, nullable=False)
-    country = db.Column(db.String(255), unique=True, nullable=False)
-    region_id = db.Column(db.Integer, db.ForeignKey('vaccination_region.id'), nullable=False)
-    region = db.relationship(
-        'VaccinationRegion',
-        lazy='subquery',
-        order_by='VaccinationRegion.region')
-
-    @classmethod
-    def remove_all(cls):
-        db.session.execute("delete from " + cls.__tablename__)
-        db.session.commit()
-        return None
-
-    @classmethod
-    def get_all_as_page(cls, page):
-        return db.session.query(cls).order_by(cls.country).paginate(page, per_page=ITEMS_PER_PAGE)
-
-    @classmethod
-    def get_all(cls):
-        return db.session.query(cls).order_by(cls.country).all()
-
-    @classmethod
-    def get_all_as_dict(cls):
-        countries = {}
-        for my_country in cls.get_all():
-            countries[my_country.country_code] = my_country
-        return countries
-
-    @classmethod
-    def get_by_id(cls, other_id):
-        return db.session.query(cls).filter(cls.id == other_id).one()
-
-    @classmethod
-    def get_germany(cls):
-        return db.session.query(cls).filter(cls.country_code == 'DE').one()
-
-    @classmethod
-    def find_by_country_code_and_country_and_who_region_id(cls, i_country_code, i_country, my_region):
-        return db.session.query(cls).filter(
-            and_(
-                cls.country_code == i_country_code,
-                cls.country == i_country,
-                cls.region_id == my_region.id
-            )
-        ).one_or_none()
-
-    @classmethod
-    def find_by_country_code(cls, i_country_code):
-        return db.session.query(cls).filter(
-                cls.country_code == i_country_code
-        ).one_or_none()
-
-    @classmethod
-    def get_who_countries_for_region(cls, region, page):
-        return db.session.query(cls).filter(
-            cls.region == region
-        ).order_by(cls.country).paginate(page, per_page=ITEMS_PER_PAGE)
-
-
-class VaccinationData(db.Model):
-    __tablename__ = 'vaccination_global_data'
-
-    id = db.Column(db.Integer, primary_key=True)
-    cases_new = db.Column(db.Integer, nullable=False)
-    cases_cumulative = db.Column(db.Integer, nullable=False)
-    deaths_new = db.Column(db.Integer, nullable=False)
-    deaths_cumulative = db.Column(db.Integer, nullable=False)
-    date_reported_id = db.Column(db.Integer,
-        db.ForeignKey('vaccination_date_reported.id'), nullable=False)
-    date_reported = db.relationship(
-        'VaccinationDateReported', lazy='joined', order_by='desc(VaccinationDateReported.date_reported)')
-    country_id = db.Column(db.Integer,
-        db.ForeignKey('vaccination_country.id'), nullable=False)
-    country = db.relationship(
-        'VaccinationCountry', lazy='joined', order_by='asc(VaccinationCountry.country)')
-
-    @classmethod
-    def remove_all(cls):
-        db.session.execute("delete from " + cls.__tablename__)
-        db.session.commit()
-        return None
-
-    @classmethod
-    def get_all_as_page(cls, page):
-        return db.session.query(cls).paginate(page, per_page=ITEMS_PER_PAGE)
-
-    @classmethod
-    def get_all(cls):
-        return db.session.query(cls).all()
-
-    @classmethod
-    def get_by_id(cls, other_id):
-        return db.session.query(cls).filter(cls.id == other_id).one()
-
-    @classmethod
-    def find_one_or_none_by_date_and_country(cls, my_date_reported, my_country):
-        return db.session.query(cls).filter(
-            and_(
-                cls.date_reported_id == my_date_reported.id,
-                cls.country_id == my_country.id
-            )
-        ).one_or_none()
-
-    @classmethod
-    def get_data_for_country(cls, who_country, page):
-        return db.session.query(cls).filter(
-            cls.country_id == who_country.id
-        ).populate_existing().options(
-            joinedload(cls.country).subqueryload(VaccinationCountry.region),
-            joinedload(cls.date_reported)
-        ).paginate(page, per_page=ITEMS_PER_PAGE)
-
-    @classmethod
-    def get_data_for_day(cls, date_reported, page):
-        return db.session.query(cls).filter(
-                cls.date_reported_id == date_reported.id
-            ).populate_existing().options(
-                joinedload(cls.country).subqueryload(VaccinationCountry.region),
-                joinedload(cls.date_reported)
-            ).order_by(
-                cls.deaths_new.desc(),
-                cls.cases_new.desc(),
-                cls.deaths_cumulative.desc(),
-                cls.cases_cumulative.desc()
-            ).paginate(page, per_page=ITEMS_PER_PAGE)
-
-
-class VaccinationDataImportTable(db.Model):
-    __tablename__ = 'vaccination_data_import'
+class VaccinationGermanyTimeline(db.Model):
+    __tablename__ = 'vaccination_germany_timeline'
 
     id = db.Column(db.Integer, primary_key=True)
     datum = db.Column(db.String(255), nullable=False)
diff --git a/org/woehlke/covid19/vaccination/vaccination_service_import.py b/org/woehlke/covid19/vaccination/vaccination_service_import.py
index 796857bd..1ec838a0 100644
--- a/org/woehlke/covid19/vaccination/vaccination_service_import.py
+++ b/org/woehlke/covid19/vaccination/vaccination_service_import.py
@@ -3,7 +3,7 @@ import sys
 import csv
 import psycopg2
 from database import db, app
-from org.woehlke.covid19.vaccination.vaccination_model import VaccinationDataImportTable
+from org.woehlke.covid19.vaccination.vaccination_model import VaccinationGermanyTimeline
 
 
 vaccination_service_import = None
@@ -35,12 +35,12 @@ class VaccinationServiceImport:
         else:
             keyDate_reported = 'Date_reported'
         try:
-            VaccinationDataImportTable.remove_all()
+            VaccinationGermanyTimeline.remove_all()
             k = 0
             with open(self.__src_cvsfile_name, newline='\n') as csv_file:
                 file_reader = csv.DictReader(csv_file, delimiter='\t', quotechar='"')
                 for row in file_reader:
-                    o = VaccinationDataImportTable(
+                    o = VaccinationGermanyTimeline(
                         datum=row['date'],
                         dosen_kumulativ=int(row['dosen_kumulativ']),
                         dosen_differenz_zum_vortag=int(row['dosen_differenz_zum_vortag']),
-- 
GitLab