From 1023efbfb0ef9096b76214fc79720e09eed1827a Mon Sep 17 00:00:00 2001 From: thomaswoehlke <thomas.woehlke@gmail.com> Date: Sun, 25 Apr 2021 13:46:46 +0200 Subject: [PATCH] work --- .../application/application_views.py | 3 + .../owid/navigation/owid_navtabs.html | 6 ++ src/covid19/blueprints/owid_test/__init__.py | 0 .../blueprints/owid_test/owid_test_views.py | 67 +++++++++++++++++++ .../owid_test/templates/__init__.py | 0 .../templates/owid_test/owid_tests.html | 41 ++++++++++++ .../templates/who/navigation/who_navtabs.html | 6 ++ .../who/templates/who/who_tasks.html | 6 +- src/covid19/blueprints/who/who_model.py | 6 +- .../blueprints/who_test/templates/__init__.py | 0 .../templates/who_test/who_tests.html | 50 ++++++++++++++ .../blueprints/who_test/who_test_views.py | 14 +++- 12 files changed, 190 insertions(+), 9 deletions(-) create mode 100644 src/covid19/blueprints/owid_test/__init__.py create mode 100644 src/covid19/blueprints/owid_test/owid_test_views.py create mode 100644 src/covid19/blueprints/owid_test/templates/__init__.py create mode 100644 src/covid19/blueprints/owid_test/templates/owid_test/owid_tests.html create mode 100644 src/covid19/blueprints/who_test/templates/__init__.py create mode 100644 src/covid19/blueprints/who_test/templates/who_test/who_tests.html diff --git a/src/covid19/blueprints/application/application_views.py b/src/covid19/blueprints/application/application_views.py index 7133a95a..a3e7886c 100644 --- a/src/covid19/blueprints/application/application_views.py +++ b/src/covid19/blueprints/application/application_views.py @@ -12,6 +12,8 @@ from covid19.blueprints.who.who_views import app_who from covid19.blueprints.owid.owid_views import app_owid from covid19.blueprints.user.user_views import app_user + +from covid19.blueprints.owid_test.owid_test_views import app_owid_test from covid19.blueprints.who_test.who_test_views import app_who_test app_application = Blueprint('application', __name__, template_folder='templates', url_prefix='/') @@ -26,6 +28,7 @@ app.register_blueprint(app_who, url_prefix='/who') app.register_blueprint(app_owid, url_prefix='/owid') app.register_blueprint(app_user, url_prefix='/usr') +app.register_blueprint(app_owid_test, url_prefix='/owid/test') app.register_blueprint(app_who_test, url_prefix='/who/test') ############################################################################################ diff --git a/src/covid19/blueprints/owid/templates/owid/navigation/owid_navtabs.html b/src/covid19/blueprints/owid/templates/owid/navigation/owid_navtabs.html index 00cf32bb..f63c40ca 100644 --- a/src/covid19/blueprints/owid/templates/owid/navigation/owid_navtabs.html +++ b/src/covid19/blueprints/owid/templates/owid/navigation/owid_navtabs.html @@ -14,6 +14,12 @@ href="{{ url_for( 'owid.url_owid_tasks') }}">OWID tasks</a> </li> {% endif %} + {% if current_user.is_authenticated %} + <li class="nav-item"> + <a class="nav-link" + href="{{ url_for( 'owid_test.url_owid_test_tests') }}">OWID Tests</a> + </li> + {% endif %} <li class="nav-item"> <a class="nav-link" href="{{ url_for( 'owid.url_owid_date_reported_all') }}">OWID Date Reported</a> diff --git a/src/covid19/blueprints/owid_test/__init__.py b/src/covid19/blueprints/owid_test/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/covid19/blueprints/owid_test/owid_test_views.py b/src/covid19/blueprints/owid_test/owid_test_views.py new file mode 100644 index 00000000..7917de66 --- /dev/null +++ b/src/covid19/blueprints/owid_test/owid_test_views.py @@ -0,0 +1,67 @@ +from flask import render_template, redirect, url_for, flash, Blueprint +from sqlalchemy.exc import OperationalError +from celery import states +from celery.utils.log import get_task_logger +from flask_admin.contrib.sqla import ModelView +from flask_login import login_required + +from database import app, admin, db +from covid19.blueprints.application.application_services import owid_service +from covid19.blueprints.application.application_workers import celery +from covid19.blueprints.owid.owid_model import OwidDateReported, OwidData, OwidContinent, OwidCountry +from covid19.blueprints.owid.owid_model_import import OwidImport +from covid19.blueprints.application.application_model_transient import ApplicationPage + + +app_owid_test = Blueprint('owid_test', __name__, template_folder='templates', url_prefix='/owid/test') + +# --------------------------------------------------------------------------------------------------------------- +# Url Routes Frontend +# --------------------------------------------------------------------------------------------------------------- + +@app_owid_test.route('/tests') +@login_required +def url_owid_test_tests(): + page_info = ApplicationPage('OWID', "Tests") + return render_template( + 'owid_test/owid_tests.html', + page_info=page_info) + +@app_owid_test.route('/update_dimension_tables_only') +@login_required +def url_owid_test_update_dimension_tables_only(): + app.logger.info("test_update_dimension_tables_only - START") + flash("test_update_dimension_tables_only - START") + return redirect(url_for('owid_test.url_owid_test_tests')) + +@app_owid_test.route('/update_fact_table_incremental_only') +@login_required +def url_owid_test_update_fact_table_incremental_only(): + app.logger.info("update_fact_table_incremental_only - START") + flash("update_fact_table_incremental_only - START") + return redirect(url_for('owid_test.url_owid_test_tests')) + +@app_owid_test.route('/update_fact_table_initial_only') +@login_required +def url_owid_test_update_fact_table_initial_only(): + app.logger.info("update_fact_table_initial_only - START") + flash("update_fact_table_initial_only - START") + return redirect(url_for('owid_test.url_owid_test_tests')) + +@app_owid_test.route('/update_star_schema_incremental') +@login_required +def url_owid_test_update_star_schema_incremental(): + app.logger.info("update_star_schema_incremental - START") + flash("update_star_schema_incremental - START") + return redirect(url_for('owid_test.url_owid_test_tests')) + +@app_owid_test.route('/update_star_schema_initial') +@login_required +def url_owid_test_update_star_schema_initial(): + app.logger.info("update_star_schema_initial - START") + flash("update_star_schema_initial - START") + return redirect(url_for('owid_test.url_owid_test_tests')) + + + + diff --git a/src/covid19/blueprints/owid_test/templates/__init__.py b/src/covid19/blueprints/owid_test/templates/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/covid19/blueprints/owid_test/templates/owid_test/owid_tests.html b/src/covid19/blueprints/owid_test/templates/owid_test/owid_tests.html new file mode 100644 index 00000000..3034516a --- /dev/null +++ b/src/covid19/blueprints/owid_test/templates/owid_test/owid_tests.html @@ -0,0 +1,41 @@ +{% extends 'application/page_layout.html' %} + +{% block content %} + {{super()}} + {% include 'owid/navigation/owid_navtabs.html' %} + + <div class="container"> + <div class="row"> + <div class="col"> + <div class="btn-group-vertical" role="group" aria-label="Views"> + <a class="btn btn-danger btn-lg btn-block text-left" + href="{{ url_for( 'owid_test.url_owid_test_update_dimension_tables_only') }}" + role="button">test_update_dimension_tables_only</a> + <a class="btn btn-secondary btn-lg btn-block text-left" + href="{{ url_for( 'owid_test.url_owid_test_update_fact_table_incremental_only') }}" + role="button">test_update_fact_table_incremental_only</a> + <a class="btn btn-danger btn-lg btn-block text-left" + href="{{ url_for( 'owid_test.url_owid_test_update_fact_table_initial_only') }}" + role="button">test_update_fact_table_initial_only</a> + <a class="btn btn-secondary btn-lg btn-block text-left" + href="{{ url_for( 'owid_test.url_owid_test_update_star_schema_incremental') }}" + role="button">test_update_star_schema_incremental</a> + <a class="btn btn-danger btn-lg btn-block text-left" + href="{{ url_for( 'owid_test.url_owid_test_update_star_schema_initial') }}" + role="button">test_update_star_schema_initial</a> + </div> + </div> + <div class="col"> + </div> + </div> + </div> +{% endblock %} + + + +{% block footer_container %} + +{% endblock %} + + + diff --git a/src/covid19/blueprints/who/templates/who/navigation/who_navtabs.html b/src/covid19/blueprints/who/templates/who/navigation/who_navtabs.html index d0392ab5..032b51dc 100644 --- a/src/covid19/blueprints/who/templates/who/navigation/who_navtabs.html +++ b/src/covid19/blueprints/who/templates/who/navigation/who_navtabs.html @@ -14,6 +14,12 @@ href="{{ url_for( 'who.url_who_tasks') }}">WHO tasks</a> </li> {% endif %} + {% if current_user.is_authenticated %} + <li class="nav-item"> + <a class="nav-link" + href="{{ url_for( 'who_test.url_who_test_tests') }}">WHO Tests</a> + </li> + {% endif %} <li class="nav-item"> <a class="nav-link" href="{{ url_for( 'who.url_who_date_reported_all') }}">WHO Date Reported</a> diff --git a/src/covid19/blueprints/who/templates/who/who_tasks.html b/src/covid19/blueprints/who/templates/who/who_tasks.html index e8110fb7..b2b020dc 100644 --- a/src/covid19/blueprints/who/templates/who/who_tasks.html +++ b/src/covid19/blueprints/who/templates/who/who_tasks.html @@ -39,12 +39,12 @@ <div class="row"> <div class="col"> <div class="btn-group-vertical" role="group" aria-label="Views"> - <a class="btn btn-danger 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-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" + 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> </div> </div> <div class="col"> diff --git a/src/covid19/blueprints/who/who_model.py b/src/covid19/blueprints/who/who_model.py index 158e1ca0..2abc2964 100644 --- a/src/covid19/blueprints/who/who_model.py +++ b/src/covid19/blueprints/who/who_model.py @@ -68,7 +68,7 @@ class WhoCountry(db.Model): region = db.relationship( 'WhoRegion', lazy='joined', - cascade='all', + cascade='save-update', order_by='WhoRegion.region') def __str__(self): @@ -173,14 +173,14 @@ class WhoData(db.Model): date_reported = db.relationship( 'WhoDateReported', lazy='joined', - cascade='all', + cascade='save-update', order_by='desc(WhoDateReported.date_reported)') country_id = db.Column(db.Integer, db.ForeignKey('who_country.id'), nullable=False) country = db.relationship( 'WhoCountry', lazy='joined', - cascade='all', + cascade='save-update', order_by='asc(WhoCountry.country)') @classmethod diff --git a/src/covid19/blueprints/who_test/templates/__init__.py b/src/covid19/blueprints/who_test/templates/__init__.py new file mode 100644 index 00000000..e69de29b 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 new file mode 100644 index 00000000..3be40b56 --- /dev/null +++ b/src/covid19/blueprints/who_test/templates/who_test/who_tests.html @@ -0,0 +1,50 @@ +{% extends 'application/page_layout.html' %} + +{% block content %} + {{super()}} + {% include 'who/navigation/who_navtabs.html' %} + + <div class="container"> + <div class="row"> + <div class="col"> + <div class="btn-group-vertical" role="group" aria-label="Views"> + <a class="btn btn-primary btn-lg btn-block text-left" + href="{{ url_for( 'who.url_who_tasks') }}" + role="button">WHO :: Tasks</a> + </div> + </div> + </div> + <p></p> + <div class="row"> + <div class="col"> + <div class="btn-group-vertical" role="group" aria-label="Views"> + <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" + 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> + </div> + </div> + <div class="col"> + <div class="btn-group-vertical" role="group" aria-label="Views"> + <a class="btn btn-primary btn-lg btn-block text-left" + href="{{ url_for( 'who.url_task_who_update_star_schema_initial') }}" + role="button">WHO :: Task :: update :: star_schema :: initial</a> + <a class="btn btn-primary btn-lg btn-block text-left" + href="{{ url_for( 'who.url_task_who_update_star_schema_incremental') }}" + role="button">WHO :: Task :: update :: star_schema :: incremental</a> + </div> + </div> + </div> + </div> +{% endblock %} + + + +{% block footer_container %} + +{% endblock %} + + + diff --git a/src/covid19/blueprints/who_test/who_test_views.py b/src/covid19/blueprints/who_test/who_test_views.py index 609a680d..732ad7d2 100644 --- a/src/covid19/blueprints/who_test/who_test_views.py +++ b/src/covid19/blueprints/who_test/who_test_views.py @@ -26,6 +26,14 @@ app_who_test = Blueprint('who_test', __name__, template_folder='templates', url_ # --------------------------------------------------------------------------------------------------------------- +@app_who_test.route('/tests') +@login_required +def url_who_test_tests(): + page_info = ApplicationPage('WHO', "Tests") + return render_template( + 'who_test/who_tests.html', + page_info=page_info) + @app_who_test.route('/who_import/countries') @login_required def url_who_test_who_import_countries(): @@ -37,10 +45,10 @@ def url_who_test_who_import_countries(): line = " | " + str(i) + " | " + c.countries.country_code + " | " + c.countries.country + " | " + c.countries.who_region + " | " app.logger.info(line) flash("url_who_mytest - DONE: WhoImport.countries()") - return redirect(url_for('who.url_who_tasks')) + return redirect(url_for('who_test.url_who_test_tests')) -@app_who_test.route('/mytest') +@app_who_test.route('/who_import/get_new_dates_as_array') @login_required def url_who_test_who_import_get_new_dates_as_array(): app.logger.info("url_who_mytest - DONE: WhoImport.countries()") @@ -71,4 +79,4 @@ def url_who_test_who_import_get_new_dates_as_array(): app.logger.info(line) flash("url_who_mytest - DONE: WhoImport.get_new_dates_as_array()") app.logger.info("url_who_mytest - DONE: WhoImport.get_new_dates_as_array()") - return redirect(url_for('who.url_who_tasks')) + return redirect(url_for('who_test.url_who_test_tests')) -- GitLab