From 4db2e2db1b6f1682728c454da34a1122aa4b83de Mon Sep 17 00:00:00 2001 From: thomaswoehlke <thomas.woehlke@gmail.com> Date: Sun, 24 Jan 2021 19:25:36 +0100 Subject: [PATCH] work --- covid19python.py | 0 covid19python/__init__.py | 577 +++++++++++++++++- covid19python/blueprints/__init__.py | 0 covid19python/views.py | 559 ----------------- .../__init__.py | 2 - run.sh | 2 +- run_mq.sh | 5 + setup.cfg | 2 +- setup.py | 2 +- start_server_mq.sh | 0 10 files changed, 584 insertions(+), 565 deletions(-) delete mode 100644 covid19python.py delete mode 100644 covid19python/blueprints/__init__.py rename covid19python_mq.py => covid19python_mq/__init__.py (99%) mode change 100644 => 100755 run.sh create mode 100755 run_mq.sh mode change 100644 => 100755 start_server_mq.sh diff --git a/covid19python.py b/covid19python.py deleted file mode 100644 index e69de29b..00000000 diff --git a/covid19python/__init__.py b/covid19python/__init__.py index 3638a0a5..a79557bc 100644 --- a/covid19python/__init__.py +++ b/covid19python/__init__.py @@ -1,9 +1,23 @@ from logging.config import dictConfig +from flask import render_template, redirect, url_for, flash +from sqlalchemy.exc import OperationalError from database import db, app, my_logging_config, run_run_with_debug +from org.woehlke.covid19.who.who_model import WhoGlobalDataImportTable +from org.woehlke.covid19.who.who_model import WhoRegion, WhoCountry, WhoDateReported, WhoGlobalData +from org.woehlke.covid19.europe.europe_model import EuropeDataImportTable, EuropeDateReported, EuropeContinent +from org.woehlke.covid19.europe.europe_model import EuropeCountry, EuropeData from org.woehlke.covid19.who.who_service import WhoService from org.woehlke.covid19.europe.europe_service import EuropeService from org.woehlke.covid19.vaccination.vaccination_service import VaccinationService from org.woehlke.covid19.admin.admin_service import AdminService +from org.woehlke.covid19.vaccination.vaccination_model import VaccinationDataImportTable + +from covid19python_mq import who_run_update_task, who_update_short_task, who_update_initial_task +from covid19python_mq import alive_message_task +from covid19python_mq import europe_update_initial_task +from covid19python_mq import vaccination_update_initial_task +from covid19python_mq import admin_database_drop_create_task + drop_and_create_data_again = True @@ -12,6 +26,567 @@ europe_service = None vaccination_service = None admin_service = None + +class ApplicationPage: + + def __init__(self, default_title, default_subtitle=None, default_subtitle_info=None): + self.title = default_title + self.subtitle = default_subtitle + self.subtitle_info = default_subtitle_info + if self.subtitle is None: + self.subtitle = """This is a simple hero unit, a simple jumbotron-style component + for calling extra attention to featured content or information.""" + if self.subtitle_info is None: + self.subtitle_info = """It uses utility classes for typography and spacing + to space content out within the larger container.""" + + +@app.route('/home') +def home(): + page_info = ApplicationPage('Home', "Covid19 Data") + return render_template( + 'page_home.html', + page_info=page_info) + + +@app.route('/') +def url_root(): + return redirect(url_for('home')) + + +################################################################################################################## +# +# WHO +# +################################################################################################################## +@app.route('/who/info') +def url_who_info(): + page_info = ApplicationPage('WHO', "Info") + return render_template( + 'who/who_info.html', + page_info=page_info) + + +@app.route('/who/tasks') +def url_who_tasks(): + page_info = ApplicationPage('WHO', "Tasks") + return render_template( + 'who/who_tasks.html', + page_info=page_info) + + +@app.route('/who/imported/page/<int:page>') +@app.route('/who/imported') +def url_who_imported(page=1): + page_info = ApplicationPage('WHO', "Last Import") + try: + page_data = WhoGlobalDataImportTable.get_all_as_page(page) + except OperationalError: + flash("No data in the database.") + page_data = None + return render_template( + 'who/who_imported.html', + page_data=page_data, + page_info=page_info) + + +@app.route('/who/date_reported/all/page/<int:page>') +@app.route('/who/date_reported/all') +def url_who_date_reported_all(page=1): + page_info = ApplicationPage('WHO', "Date Reported", "All") + try: + page_data = WhoDateReported.get_all_as_page(page) + except OperationalError: + flash("No regions in the database.") + page_data = None + return render_template( + 'who/who_date_reported_all.html', + page_data=page_data, + page_info=page_info) + + +@app.route('/who/date_reported/<int:date_reported_id>/page/<int:page>') +@app.route('/who/date_reported/<int:date_reported_id>') +def url_who_date_reported(date_reported_id, page=1): + date_reported = WhoDateReported.get_by_id(date_reported_id) + page_info = ApplicationPage( + "Date Reported: " + date_reported.date_reported, + 'WHO', + "data of all reported countries for WHO date reported " + date_reported.date_reported + " " + ) + try: + page_data = WhoGlobalData.get_data_for_day(date_reported, page) + except OperationalError: + flash("No data in the database.") + page_data = None + return render_template( + 'who/who_date_reported_one.html', + who_date_reported=date_reported, + page_data=page_data, + page_info=page_info) + + +@app.route('/who/region/all/page/<int:page>') +@app.route('/who/region/all') +def url_who_region_all(page=1): + page_info = ApplicationPage('WHO', "Region", "All") + try: + page_data = WhoRegion.get_all_as_page(page) + except OperationalError: + flash("No regions in the database.") + page_data = None + return render_template( + 'who/who_region_all.html', + page_data=page_data, + page_info=page_info) + + +@app.route('/who/region/<int:region_id>/page/<int:page>') +@app.route('/who/region/<int:region_id>') +def url_who_region(region_id, page=1): + who_region = None + page_info = ApplicationPage("Countries", "WHO Region") + try: + who_region = WhoRegion.get_by_id(region_id) + page_data = WhoCountry.get_who_countries_for_region(who_region, page) + page_info.title = who_region.region + page_info.subtitle = "WHO Region" + page_info.subtitle_info = "Countries of WHO Region " + who_region.region + except OperationalError: + flash("No countries of that region in the database.") + page_data = None + return render_template( + 'who/who_region_one.html', + who_region=who_region, + page_data=page_data, + page_info=page_info) + + +@app.route('/who/country/all/page/<int:page>') +@app.route('/who/country/all') +def url_who_country_all(page=1): + page_info = ApplicationPage('WHO', "Countries", "All") + try: + page_data = WhoCountry.get_all_as_page(page) + except OperationalError: + flash("No regions in the database.") + page_data = None + return render_template( + 'who/who_country_all.html', + page_data=page_data, + page_info=page_info) + + +@app.route('/who/country/<int:country_id>/page/<int:page>') +@app.route('/who/country/<int:country_id>') +def url_who_country(country_id, page=1): + who_country = WhoCountry.get_by_id(country_id) + page_data = WhoGlobalData.get_data_for_country(who_country, page) + page_info = ApplicationPage(who_country.country, + "Country "+who_country.country_code, + "Data per Day in Country "+who_country.country+" of WHO Region "+who_country.region.region) + return render_template( + 'who/who_country_one.html', + who_country=who_country, + page_data=page_data, + page_info=page_info) + + +@app.route('/who/germany/page/<int:page>') +@app.route('/who/germany') +def url_who_germany(page=1): + page_info = ApplicationPage('WHO', "Germany") + who_country_germany = WhoCountry.get_germany() + page_data = WhoGlobalData.get_data_for_country(who_country_germany, page) + return render_template( + 'who/who_country_germany.html', + who_country=who_country_germany, + page_data=page_data, + page_info=page_info) + + +@app.route('/who/update') +def url_who_update_run(): + app.logger.info("url_who_update_run [start]") + who_service.who_service_download.download_file() + who_run_update_task.apply_async() + flash("who_service.run_update started") + flash(message="long running background task started", category="warning") + app.logger.info("url_who_update_run [done]") + return redirect(url_for('home')) + + +@app.route('/who/update/short') +def url_who_update_short_run(): + who_service.who_service_download.download_file() + who_update_short_task.apply_async() + flash("who_service.run_update_short started") + flash(message="long running background task started", category="warning") + return redirect(url_for('home')) + + +@app.route('/who/update/initial') +def url_who_update_initial_run(): + who_service.who_service_download.download_file() + who_update_initial_task.apply_async() + flash("who_service.run_update_short started") + flash(message="long running background task started", category="warning") + return redirect(url_for('home')) + + +@app.route('/test/who/update/countries') +def url_update_data_countries(): + who_service.run_update_countries() + flash("who_service.run_update_countries started") + return redirect(url_for('home')) + + +################################################################################################################## +# +# Europe +# +################################################################################################################## +@app.route('/europe/info') +def url_europe_info(): + page_info = ApplicationPage('Europe', "Info") + return render_template( + 'europe/europe_info.html', + title='Europe', + page_info=page_info) + + +@app.route('/europe/tasks') +def url_europe_tasks(): + page_info = ApplicationPage('Europe', "Tasks") + return render_template( + 'europe/europe_tasks.html', + title='Europe Tasks', + page_info=page_info) + + +@app.route('/europe/update/initial') +def europe_update_data(): + europe_service.download() + europe_update_initial_task.apply_async() + flash("europe_service.run_update started") + return redirect(url_for('home')) + + +@app.route('/europe/imported/page/<int:page>') +@app.route('/europe/imported') +def url_europe_data_imported(page=1): + page_info = ApplicationPage('Europe', "Last Import") + page_data = EuropeDataImportTable.get_all_as_page(page) + return render_template( + 'europe/europe_imported.html', + page_data=page_data, + page_info=page_info) + + +@app.route('/europe/date_reported/all/page/<int:page>') +@app.route('/europe/date_reported/all') +def url_europe_date_reported_all(page=1): + page_info = ApplicationPage('Europe', "date_reported") + page_data = EuropeDateReported.get_all_as_page(page) + return render_template( + 'europe/europe_date_reported_all.html', + page_data=page_data, + page_info=page_info) + + +@app.route('/europe/date_reported/<int:europe_date_reported_id>/page/<int:page>') +@app.route('/europe/date_reported/<int:europe_date_reported_id>') +@app.route('/europe/date_reported/notification_rate/<int:europe_date_reported_id>/page/<int:page>') +@app.route('/europe/date_reported/notification_rate/<int:europe_date_reported_id>') +def url_europe_date_reported_one_notification_rate(europe_date_reported_id, page=1): + page_info = ApplicationPage('Europe', "date_reported") + europe_date_reported = EuropeDateReported.get_by_id(europe_date_reported_id) + page_data = EuropeData.find_by_date_reported_notification_rate(europe_date_reported, page) + return render_template( + 'europe/europe_date_reported_one_notification_rate.html', + europe_date_reported=europe_date_reported, + page_data=page_data, + page_info=page_info) + + +@app.route('/europe/date_reported/deaths_weekly/<int:europe_date_reported_id>/page/<int:page>') +@app.route('/europe/date_reported/deaths_weekly/<int:europe_date_reported_id>') +def url_europe_date_reported_one_deaths_weekly(europe_date_reported_id, page=1): + page_info = ApplicationPage('Europe', "date_reported") + europe_date_reported = EuropeDateReported.get_by_id(europe_date_reported_id) + page_data = EuropeData.find_by_date_reported_deaths_weekly(europe_date_reported, page) + return render_template( + 'europe/europe_date_reported_one_deaths_weekly.html', + europe_date_reported=europe_date_reported, + page_data=page_data, + page_info=page_info) + + +@app.route('/europe/date_reported/cases_weekly/<int:europe_date_reported_id>/page/<int:page>') +@app.route('/europe/date_reported/cases_weekly/<int:europe_date_reported_id>') +def url_europe_date_reported_one_cases_weekly(europe_date_reported_id, page=1): + page_info = ApplicationPage('Europe', "date_reported") + europe_date_reported = EuropeDateReported.get_by_id(europe_date_reported_id) + page_data = EuropeData.find_by_date_reported_cases_weekly(europe_date_reported, page) + return render_template( + 'europe/europe_date_reported_one_cases_weekly.html', + europe_date_reported=europe_date_reported, + page_data=page_data, + page_info=page_info) + + +@app.route('/europe/continent/all/page/<int:page>') +@app.route('/europe/continent/all') +def url_europe_continent_all(page=1): + page_info = ApplicationPage('Europe', "continent") + page_data = EuropeContinent.get_all_as_page(page) + return render_template( + 'europe/europe_continent_all.html', + page_data=page_data, + page_info=page_info) + + +@app.route('/europe/continent/<int:continent_id>/page/<int:page>') +@app.route('/europe/continent/<int:continent_id>') +def url_europe_continent_one(continent_id, page=1): + page_info = ApplicationPage('Europe', "continent") + continent = EuropeContinent.get_by_id(continent_id) + page_data = EuropeCountry.find_by_continent(continent, page) + return render_template( + 'europe/europe_continent_one.html', + continent=continent, + page_data=page_data, + page_info=page_info) + + +@app.route('/europe/country/all/page/<int:page>') +@app.route('/europe/country/all') +def url_europe_country_all(page=1): + page_info = ApplicationPage('Europe', "country") + page_data = EuropeCountry.get_all_as_page(page) + return render_template( + 'europe/europe_country_all.html', + page_data=page_data, + page_info=page_info) + + +@app.route('/europe/country/<int:country_id>/page/<int:page>') +@app.route('/europe/country/<int:country_id>') +def url_europe_country_one(country_id, page=1): + page_info = ApplicationPage('Europe', "country") + europe_country = EuropeCountry.get_by_id(country_id) + page_data = EuropeData.find_by_country(europe_country, page) + return render_template( + 'europe/europe_country_one.html', + europe_country=europe_country, + page_data=page_data, + page_info=page_info) + + +@app.route('/europe/country/germany/page/<int:page>') +@app.route('/europe/country/germany') +def url_europe_country_germany(page=1): + page_info = ApplicationPage('Europe', "country: Germany") + europe_country = EuropeCountry.get_germany() + page_data = EuropeData.find_by_country(europe_country, page) + return render_template( + 'europe/europe_country_germany.html', + europe_country=europe_country, + page_data=page_data, + page_info=page_info) + + +################################################################################################################## +# +# Vaccination +# +################################################################################################################## +@app.route('/vaccination/info') +def url_vaccination_info(): + page_info = ApplicationPage('Vaccination', "Info") + return render_template( + 'vaccination/vaccination_info.html', + page_info=page_info) + + +@app.route('/vaccination/tasks') +def url_vaccination_tasks(): + page_info = ApplicationPage('Vaccination', "Tasks") + return render_template( + 'vaccination/vaccination_tasks.html', + page_info=page_info) + + +@app.route('/vaccination/update/initial') +def url_vaccination_update_data(): + vaccination_service.run_download() + vaccination_update_initial_task.apply_async() + flash("vaccination_service.run_update started") + return redirect(url_for('url_vaccination_tasks')) + + +@app.route('/vaccination/imported/page/<int:page>') +@app.route('/vaccination/imported') +def url_vaccination_data_imported(page=1): + page_info = ApplicationPage('Vaccination', "Last Import") + page_data = VaccinationDataImportTable.get_all_as_page(page) + return render_template( + 'vaccination/vaccination_imported.html', + page_data=page_data, + page_info=page_info) + + +################################################################################################################## +# +# RKI +# +################################################################################################################## +@app.route('/rki/info') +def url_rki_info(): + page_info = ApplicationPage('RKI', "Info") + return render_template( + 'rki/rki_info.html', + page_info=page_info) + + +@app.route('/rki/tasks') +def url_rki_tasks(): + page_info = ApplicationPage('RKI', "Tasks") + return render_template( + 'rki/rki_tasks.html', + page_info=page_info) + + +@app.route('/rki/imported/page/<int:page>') +@app.route('/rki/imported') +def url_rki_imported(page=1): + page_info = ApplicationPage('RKI', "Last Import") + try: + page_data = WhoGlobalDataImportTable.get_all_as_page(page) + except OperationalError: + flash("No data in the database.") + page_data = None + return render_template( + 'rki/rki_imported.html', + page_data=page_data, + page_info=page_info) + + +################################################################################################################## +# +# NRW +# +################################################################################################################## +@app.route('/nrw/info') +def url_nrw_info(): + page_info = ApplicationPage('NRW', "Info") + return render_template( + 'nrw/nrw_info.html', + page_info=page_info) + + +@app.route('/nrw/tasks') +def url_nrw_tasks(): + page_info = ApplicationPage('NRW', "Tasks") + return render_template( + 'nrw/nrw_tasks.html', + page_info=page_info) + + +@app.route('/nrw/imported/<int:page>') +@app.route('/nrw/imported') +def url_nrw_imported(page=1): + page_info = ApplicationPage('NRW', "Last Import") + try: + who_imported_all = WhoGlobalDataImportTable.get_all_as_page(page) + except OperationalError: + flash("No data in the database.") + who_imported_all = None + return render_template( + 'nrw/nrw_imported.html', + page_data=who_imported_all, + page_info=page_info) + + +@app.route('/nrw/bochum/<int:page>') +@app.route('/nrw/bochum') +def url_nrw_bochum(page=1): + page_info = ApplicationPage('NRW', "Bochum") + who_country = WhoCountry.get_germany() + list_who_global_data = WhoGlobalData.get_data_for_country(who_country, page) + return render_template( + 'nrw/nrw_stadt.html', + who_country=who_country, + page_data=list_who_global_data, + page_info=page_info) + + +################################################################################################################# +# +# Admin +# +################################################################################################################# +@app.route('/admin/tasks') +def url_admin_tasks(): + page_info = ApplicationPage('Admin', "Tasks") + return render_template( + 'admin/admin_tasks.html', + page_info=page_info) + + +@app.route('/admin/info') +def url_admin_info(): + page_info = ApplicationPage('Admin', "Info") + return render_template( + 'admin/admin_info.html', + page_info=page_info) + + +@app.route('/admin/alive_message') +def url_alive_message_start(): + app.logger.info("url_alive_message_start [start]") + alive_message_task.apply_async() + flash("alive_message_task started") + app.logger.info("url_alive_message_start [done]") + return redirect(url_for('url_admin_tasks')) + + +@app.route('/admin/database/dump') +def url_admin_database_dump(): + app.logger.info("url_admin_database_dump [start]") + admin_service.run_admin_database_dump() + flash("admin_service.run_admin_database_dump started") + app.logger.info("url_admin_database_dump [done]") + return redirect(url_for('url_admin_tasks')) + + +@app.route('/admin/database/import') +def url_admin_database_import(): + app.logger.info("url_admin_database_import [start]") + admin_service.run_admin_database_import() + flash("admin_service.run_admin_database_import started") + app.logger.info("url_admin_database_import [done]") + return redirect(url_for('url_admin_tasks')) + + +@app.route('/admin/database/drop') +def url_admin_database_drop(): + app.logger.info("url_admin_database_drop [start]") + flash("admin_service.run_admin_database_drop started") + admin_service.run_admin_database_drop() + if drop_and_create_data_again: + flash("europe_service.download started") + europe_service.download() + flash("who_service.run_download started") + who_service.run_download() + flash("vaccination_service.run_download started") + vaccination_service.run_download() + flash("admin_database_drop_create_task async started") + admin_database_drop_create_task.apply_async() + app.logger.info("url_admin_database_drop [done]") + return redirect(url_for('url_admin_tasks')) + + ################################################################################################################# # # MAIN @@ -24,4 +599,4 @@ if __name__ == '__main__': europe_service = EuropeService(db) vaccination_service = VaccinationService(db) admin_service = AdminService(db) - app.run(debug=run_run_with_debug) + app.run(debug=run_run_with_debug, port=5001) diff --git a/covid19python/blueprints/__init__.py b/covid19python/blueprints/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/covid19python/views.py b/covid19python/views.py index 8258396b..2534d4fd 100644 --- a/covid19python/views.py +++ b/covid19python/views.py @@ -21,562 +21,3 @@ from covid19python_mq import europe_update_initial_task from covid19python_mq import vaccination_update_initial_task from covid19python_mq import admin_database_drop_create_task - -class ApplicationPage: - - def __init__(self, default_title, default_subtitle=None, default_subtitle_info=None): - self.title = default_title - self.subtitle = default_subtitle - self.subtitle_info = default_subtitle_info - if self.subtitle is None: - self.subtitle = """This is a simple hero unit, a simple jumbotron-style component - for calling extra attention to featured content or information.""" - if self.subtitle_info is None: - self.subtitle_info = """It uses utility classes for typography and spacing - to space content out within the larger container.""" - - -@app.route('/home') -def home(): - page_info = ApplicationPage('Home', "Covid19 Data") - return render_template( - 'page_home.html', - page_info=page_info) - - -@app.route('/') -def url_root(): - return redirect(url_for('home')) - - -################################################################################################################## -# -# WHO -# -################################################################################################################## -@app.route('/who/info') -def url_who_info(): - page_info = ApplicationPage('WHO', "Info") - return render_template( - 'who/who_info.html', - page_info=page_info) - - -@app.route('/who/tasks') -def url_who_tasks(): - page_info = ApplicationPage('WHO', "Tasks") - return render_template( - 'who/who_tasks.html', - page_info=page_info) - - -@app.route('/who/imported/page/<int:page>') -@app.route('/who/imported') -def url_who_imported(page=1): - page_info = ApplicationPage('WHO', "Last Import") - try: - page_data = WhoGlobalDataImportTable.get_all_as_page(page) - except OperationalError: - flash("No data in the database.") - page_data = None - return render_template( - 'who/who_imported.html', - page_data=page_data, - page_info=page_info) - - -@app.route('/who/date_reported/all/page/<int:page>') -@app.route('/who/date_reported/all') -def url_who_date_reported_all(page=1): - page_info = ApplicationPage('WHO', "Date Reported", "All") - try: - page_data = WhoDateReported.get_all_as_page(page) - except OperationalError: - flash("No regions in the database.") - page_data = None - return render_template( - 'who/who_date_reported_all.html', - page_data=page_data, - page_info=page_info) - - -@app.route('/who/date_reported/<int:date_reported_id>/page/<int:page>') -@app.route('/who/date_reported/<int:date_reported_id>') -def url_who_date_reported(date_reported_id, page=1): - date_reported = WhoDateReported.get_by_id(date_reported_id) - page_info = ApplicationPage( - "Date Reported: " + date_reported.date_reported, - 'WHO', - "data of all reported countries for WHO date reported " + date_reported.date_reported + " " - ) - try: - page_data = WhoGlobalData.get_data_for_day(date_reported, page) - except OperationalError: - flash("No data in the database.") - page_data = None - return render_template( - 'who/who_date_reported_one.html', - who_date_reported=date_reported, - page_data=page_data, - page_info=page_info) - - -@app.route('/who/region/all/page/<int:page>') -@app.route('/who/region/all') -def url_who_region_all(page=1): - page_info = ApplicationPage('WHO', "Region", "All") - try: - page_data = WhoRegion.get_all_as_page(page) - except OperationalError: - flash("No regions in the database.") - page_data = None - return render_template( - 'who/who_region_all.html', - page_data=page_data, - page_info=page_info) - - -@app.route('/who/region/<int:region_id>/page/<int:page>') -@app.route('/who/region/<int:region_id>') -def url_who_region(region_id, page=1): - who_region = None - page_info = ApplicationPage("Countries", "WHO Region") - try: - who_region = WhoRegion.get_by_id(region_id) - page_data = WhoCountry.get_who_countries_for_region(who_region, page) - page_info.title = who_region.region - page_info.subtitle = "WHO Region" - page_info.subtitle_info = "Countries of WHO Region " + who_region.region - except OperationalError: - flash("No countries of that region in the database.") - page_data = None - return render_template( - 'who/who_region_one.html', - who_region=who_region, - page_data=page_data, - page_info=page_info) - - -@app.route('/who/country/all/page/<int:page>') -@app.route('/who/country/all') -def url_who_country_all(page=1): - page_info = ApplicationPage('WHO', "Countries", "All") - try: - page_data = WhoCountry.get_all_as_page(page) - except OperationalError: - flash("No regions in the database.") - page_data = None - return render_template( - 'who/who_country_all.html', - page_data=page_data, - page_info=page_info) - - -@app.route('/who/country/<int:country_id>/page/<int:page>') -@app.route('/who/country/<int:country_id>') -def url_who_country(country_id, page=1): - who_country = WhoCountry.get_by_id(country_id) - page_data = WhoGlobalData.get_data_for_country(who_country, page) - page_info = ApplicationPage(who_country.country, - "Country "+who_country.country_code, - "Data per Day in Country "+who_country.country+" of WHO Region "+who_country.region.region) - return render_template( - 'who/who_country_one.html', - who_country=who_country, - page_data=page_data, - page_info=page_info) - - -@app.route('/who/germany/page/<int:page>') -@app.route('/who/germany') -def url_who_germany(page=1): - page_info = ApplicationPage('WHO', "Germany") - who_country_germany = WhoCountry.get_germany() - page_data = WhoGlobalData.get_data_for_country(who_country_germany, page) - return render_template( - 'who/who_country_germany.html', - who_country=who_country_germany, - page_data=page_data, - page_info=page_info) - - -@app.route('/who/update') -def url_who_update_run(): - app.logger.info("url_who_update_run [start]") - who_service.who_service_download.download_file() - who_run_update_task.apply_async() - flash("who_service.run_update started") - flash(message="long running background task started", category="warning") - app.logger.info("url_who_update_run [done]") - return redirect(url_for('home')) - - -@app.route('/who/update/short') -def url_who_update_short_run(): - who_service.who_service_download.download_file() - who_update_short_task.apply_async() - flash("who_service.run_update_short started") - flash(message="long running background task started", category="warning") - return redirect(url_for('home')) - - -@app.route('/who/update/initial') -def url_who_update_initial_run(): - who_service.who_service_download.download_file() - who_update_initial_task.apply_async() - flash("who_service.run_update_short started") - flash(message="long running background task started", category="warning") - return redirect(url_for('home')) - - -@app.route('/test/who/update/countries') -def url_update_data_countries(): - who_service.run_update_countries() - flash("who_service.run_update_countries started") - return redirect(url_for('home')) - - -################################################################################################################## -# -# Europe -# -################################################################################################################## -@app.route('/europe/info') -def url_europe_info(): - page_info = ApplicationPage('Europe', "Info") - return render_template( - 'europe/europe_info.html', - title='Europe', - page_info=page_info) - - -@app.route('/europe/tasks') -def url_europe_tasks(): - page_info = ApplicationPage('Europe', "Tasks") - return render_template( - 'europe/europe_tasks.html', - title='Europe Tasks', - page_info=page_info) - - -@app.route('/europe/update/initial') -def europe_update_data(): - europe_service.download() - europe_update_initial_task.apply_async() - flash("europe_service.run_update started") - return redirect(url_for('home')) - - -@app.route('/europe/imported/page/<int:page>') -@app.route('/europe/imported') -def url_europe_data_imported(page=1): - page_info = ApplicationPage('Europe', "Last Import") - page_data = EuropeDataImportTable.get_all_as_page(page) - return render_template( - 'europe/europe_imported.html', - page_data=page_data, - page_info=page_info) - - -@app.route('/europe/date_reported/all/page/<int:page>') -@app.route('/europe/date_reported/all') -def url_europe_date_reported_all(page=1): - page_info = ApplicationPage('Europe', "date_reported") - page_data = EuropeDateReported.get_all_as_page(page) - return render_template( - 'europe/europe_date_reported_all.html', - page_data=page_data, - page_info=page_info) - - -@app.route('/europe/date_reported/<int:europe_date_reported_id>/page/<int:page>') -@app.route('/europe/date_reported/<int:europe_date_reported_id>') -@app.route('/europe/date_reported/notification_rate/<int:europe_date_reported_id>/page/<int:page>') -@app.route('/europe/date_reported/notification_rate/<int:europe_date_reported_id>') -def url_europe_date_reported_one_notification_rate(europe_date_reported_id, page=1): - page_info = ApplicationPage('Europe', "date_reported") - europe_date_reported = EuropeDateReported.get_by_id(europe_date_reported_id) - page_data = EuropeData.find_by_date_reported_notification_rate(europe_date_reported, page) - return render_template( - 'europe/europe_date_reported_one_notification_rate.html', - europe_date_reported=europe_date_reported, - page_data=page_data, - page_info=page_info) - - -@app.route('/europe/date_reported/deaths_weekly/<int:europe_date_reported_id>/page/<int:page>') -@app.route('/europe/date_reported/deaths_weekly/<int:europe_date_reported_id>') -def url_europe_date_reported_one_deaths_weekly(europe_date_reported_id, page=1): - page_info = ApplicationPage('Europe', "date_reported") - europe_date_reported = EuropeDateReported.get_by_id(europe_date_reported_id) - page_data = EuropeData.find_by_date_reported_deaths_weekly(europe_date_reported, page) - return render_template( - 'europe/europe_date_reported_one_deaths_weekly.html', - europe_date_reported=europe_date_reported, - page_data=page_data, - page_info=page_info) - - -@app.route('/europe/date_reported/cases_weekly/<int:europe_date_reported_id>/page/<int:page>') -@app.route('/europe/date_reported/cases_weekly/<int:europe_date_reported_id>') -def url_europe_date_reported_one_cases_weekly(europe_date_reported_id, page=1): - page_info = ApplicationPage('Europe', "date_reported") - europe_date_reported = EuropeDateReported.get_by_id(europe_date_reported_id) - page_data = EuropeData.find_by_date_reported_cases_weekly(europe_date_reported, page) - return render_template( - 'europe/europe_date_reported_one_cases_weekly.html', - europe_date_reported=europe_date_reported, - page_data=page_data, - page_info=page_info) - - -@app.route('/europe/continent/all/page/<int:page>') -@app.route('/europe/continent/all') -def url_europe_continent_all(page=1): - page_info = ApplicationPage('Europe', "continent") - page_data = EuropeContinent.get_all_as_page(page) - return render_template( - 'europe/europe_continent_all.html', - page_data=page_data, - page_info=page_info) - - -@app.route('/europe/continent/<int:continent_id>/page/<int:page>') -@app.route('/europe/continent/<int:continent_id>') -def url_europe_continent_one(continent_id, page=1): - page_info = ApplicationPage('Europe', "continent") - continent = EuropeContinent.get_by_id(continent_id) - page_data = EuropeCountry.find_by_continent(continent, page) - return render_template( - 'europe/europe_continent_one.html', - continent=continent, - page_data=page_data, - page_info=page_info) - - -@app.route('/europe/country/all/page/<int:page>') -@app.route('/europe/country/all') -def url_europe_country_all(page=1): - page_info = ApplicationPage('Europe', "country") - page_data = EuropeCountry.get_all_as_page(page) - return render_template( - 'europe/europe_country_all.html', - page_data=page_data, - page_info=page_info) - - -@app.route('/europe/country/<int:country_id>/page/<int:page>') -@app.route('/europe/country/<int:country_id>') -def url_europe_country_one(country_id, page=1): - page_info = ApplicationPage('Europe', "country") - europe_country = EuropeCountry.get_by_id(country_id) - page_data = EuropeData.find_by_country(europe_country, page) - return render_template( - 'europe/europe_country_one.html', - europe_country=europe_country, - page_data=page_data, - page_info=page_info) - - -@app.route('/europe/country/germany/page/<int:page>') -@app.route('/europe/country/germany') -def url_europe_country_germany(page=1): - page_info = ApplicationPage('Europe', "country: Germany") - europe_country = EuropeCountry.get_germany() - page_data = EuropeData.find_by_country(europe_country, page) - return render_template( - 'europe/europe_country_germany.html', - europe_country=europe_country, - page_data=page_data, - page_info=page_info) - - -################################################################################################################## -# -# Vaccination -# -################################################################################################################## -@app.route('/vaccination/info') -def url_vaccination_info(): - page_info = ApplicationPage('Vaccination', "Info") - return render_template( - 'vaccination/vaccination_info.html', - page_info=page_info) - - -@app.route('/vaccination/tasks') -def url_vaccination_tasks(): - page_info = ApplicationPage('Vaccination', "Tasks") - return render_template( - 'vaccination/vaccination_tasks.html', - page_info=page_info) - - -@app.route('/vaccination/update/initial') -def url_vaccination_update_data(): - vaccination_service.run_download() - vaccination_update_initial_task.apply_async() - flash("vaccination_service.run_update started") - return redirect(url_for('url_vaccination_tasks')) - - -@app.route('/vaccination/imported/page/<int:page>') -@app.route('/vaccination/imported') -def url_vaccination_data_imported(page=1): - page_info = ApplicationPage('Vaccination', "Last Import") - page_data = VaccinationDataImportTable.get_all_as_page(page) - return render_template( - 'vaccination/vaccination_imported.html', - page_data=page_data, - page_info=page_info) - - -################################################################################################################## -# -# RKI -# -################################################################################################################## -@app.route('/rki/info') -def url_rki_info(): - page_info = ApplicationPage('RKI', "Info") - return render_template( - 'rki/rki_info.html', - page_info=page_info) - - -@app.route('/rki/tasks') -def url_rki_tasks(): - page_info = ApplicationPage('RKI', "Tasks") - return render_template( - 'rki/rki_tasks.html', - page_info=page_info) - - -@app.route('/rki/imported/page/<int:page>') -@app.route('/rki/imported') -def url_rki_imported(page=1): - page_info = ApplicationPage('RKI', "Last Import") - try: - page_data = WhoGlobalDataImportTable.get_all_as_page(page) - except OperationalError: - flash("No data in the database.") - page_data = None - return render_template( - 'rki/rki_imported.html', - page_data=page_data, - page_info=page_info) - - -################################################################################################################## -# -# NRW -# -################################################################################################################## -@app.route('/nrw/info') -def url_nrw_info(): - page_info = ApplicationPage('NRW', "Info") - return render_template( - 'nrw/nrw_info.html', - page_info=page_info) - - -@app.route('/nrw/tasks') -def url_nrw_tasks(): - page_info = ApplicationPage('NRW', "Tasks") - return render_template( - 'nrw/nrw_tasks.html', - page_info=page_info) - - -@app.route('/nrw/imported/<int:page>') -@app.route('/nrw/imported') -def url_nrw_imported(page=1): - page_info = ApplicationPage('NRW', "Last Import") - try: - who_imported_all = WhoGlobalDataImportTable.get_all_as_page(page) - except OperationalError: - flash("No data in the database.") - who_imported_all = None - return render_template( - 'nrw/nrw_imported.html', - page_data=who_imported_all, - page_info=page_info) - - -@app.route('/nrw/bochum/<int:page>') -@app.route('/nrw/bochum') -def url_nrw_bochum(page=1): - page_info = ApplicationPage('NRW', "Bochum") - who_country = WhoCountry.get_germany() - list_who_global_data = WhoGlobalData.get_data_for_country(who_country, page) - return render_template( - 'nrw/nrw_stadt.html', - who_country=who_country, - page_data=list_who_global_data, - page_info=page_info) - - -################################################################################################################# -# -# Admin -# -################################################################################################################# -@app.route('/admin/tasks') -def url_admin_tasks(): - page_info = ApplicationPage('Admin', "Tasks") - return render_template( - 'admin/admin_tasks.html', - page_info=page_info) - - -@app.route('/admin/info') -def url_admin_info(): - page_info = ApplicationPage('Admin', "Info") - return render_template( - 'admin/admin_info.html', - page_info=page_info) - - -@app.route('/admin/alive_message') -def url_alive_message_start(): - app.logger.info("url_alive_message_start [start]") - alive_message_task.apply_async() - flash("alive_message_task started") - app.logger.info("url_alive_message_start [done]") - return redirect(url_for('url_admin_tasks')) - - -@app.route('/admin/database/dump') -def url_admin_database_dump(): - app.logger.info("url_admin_database_dump [start]") - admin_service.run_admin_database_dump() - flash("admin_service.run_admin_database_dump started") - app.logger.info("url_admin_database_dump [done]") - return redirect(url_for('url_admin_tasks')) - - -@app.route('/admin/database/import') -def url_admin_database_import(): - app.logger.info("url_admin_database_import [start]") - admin_service.run_admin_database_import() - flash("admin_service.run_admin_database_import started") - app.logger.info("url_admin_database_import [done]") - return redirect(url_for('url_admin_tasks')) - - -@app.route('/admin/database/drop') -def url_admin_database_drop(): - app.logger.info("url_admin_database_drop [start]") - flash("admin_service.run_admin_database_drop started") - admin_service.run_admin_database_drop() - if drop_and_create_data_again: - flash("europe_service.download started") - europe_service.download() - flash("who_service.run_download started") - who_service.run_download() - flash("vaccination_service.run_download started") - vaccination_service.run_download() - flash("admin_database_drop_create_task async started") - admin_database_drop_create_task.apply_async() - app.logger.info("url_admin_database_drop [done]") - return redirect(url_for('url_admin_tasks')) diff --git a/covid19python_mq.py b/covid19python_mq/__init__.py similarity index 99% rename from covid19python_mq.py rename to covid19python_mq/__init__.py index 0c4bf02d..fbfcddaf 100644 --- a/covid19python_mq.py +++ b/covid19python_mq/__init__.py @@ -118,5 +118,3 @@ if __name__ == '__main__': admin_service = AdminService(db) args = ['worker', '-l', 'INFO'] celery.start(args) - - diff --git a/run.sh b/run.sh old mode 100644 new mode 100755 index 342669ce..05f98ceb --- a/run.sh +++ b/run.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash export FLASK_ENV=development -export FLASK_APP=yourapplication +export FLASK_APP=covid19python pip install -e . flask run diff --git a/run_mq.sh b/run_mq.sh new file mode 100755 index 00000000..13d3e2fc --- /dev/null +++ b/run_mq.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +export FLASK_ENV=development +export FLASK_APP=covid19python_mq +pip install -e . +flask run diff --git a/setup.cfg b/setup.cfg index 8d5dd6c2..eac3523a 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = covid19python -version = 0.0.11 +version = 0.0.12 [options] packages = diff --git a/setup.py b/setup.py index f43623da..b9ccabfd 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from setuptools import setup, find_packages setup( name='covid19python', - version='0.0.11', + version='0.0.12', packages=find_packages(), url='https://github.com/thomaswoehlke/covid19python', license='GNU General Public License v3.0', diff --git a/start_server_mq.sh b/start_server_mq.sh old mode 100644 new mode 100755 -- GitLab