routes.py 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. # -*- encoding: utf-8 -*-
  2. """
  3. Copyright (c) 2019 - present AppSeed.us
  4. """
  5. import sys
  6. from apps.home import blueprint
  7. from flask import render_template, request
  8. from flask_login import login_required
  9. from jinja2 import TemplateNotFound
  10. from apps.home.modules.utils import *
  11. from apps.home.modules.mountainbikel import *
  12. @blueprint.route('/index')
  13. #@login_required
  14. def index():
  15. # return render_template('home/index.html', segment='index')
  16. if is_running_in_docker():
  17. sys.stderr.write("Running in a Docker container\n")
  18. csv_file = '/root/HealthData/garmin_bike.csv'
  19. else:
  20. sys.stderr.write("NOT Running in a Docker container\n" + os.getcwd() + "\n")
  21. csv_file = './HealthData/garmin_bike.csv'
  22. return render_template(
  23. 'home/mountainbikel_index.html',
  24. segment='index',
  25. **homepage_data(csv_file),
  26. mosum=json.dumps(
  27. monthly_sum_barchart_concurrent2(csv_file, 'elevationGain', 1,
  28. 'Höhenmeter pro Monat', '(m)', 'Jahr', 'Jahr'),
  29. cls=plotly.utils.PlotlyJSONEncoder), # ** überführt die dict-Werte in named arguments
  30. distsum=json.dumps(
  31. monthly_sum_barchart_concurrent2(csv_file, 'distance', 1,
  32. 'Entfernung pro Monat', '(km)', 'Jahr', 'Jahr'),
  33. cls=plotly.utils.PlotlyJSONEncoder), # ** überführt die dict-Werte in named arguments
  34. timesum=json.dumps(
  35. monthly_sum_barchart_concurrent2(csv_file, 'movingDuration', 1,
  36. 'Stunden pro Monat', '(h)', 'Jahr', 'Jahr'),
  37. cls=plotly.utils.PlotlyJSONEncoder), # ** überführt die dict-Werte in named arguments
  38. )
  39. @blueprint.route('/<template>')
  40. @login_required
  41. def route_template(template):
  42. try:
  43. if not template.endswith('.html'):
  44. template += '.html'
  45. # Detect the current page
  46. segment = get_segment(request)
  47. # Serve the file (if exists) from app/templates/home/FILE.html
  48. return render_template("home/" + template, segment=segment)
  49. except TemplateNotFound:
  50. return render_template('home/page-404.html'), 404
  51. except:
  52. return render_template('home/page-500.html'), 500
  53. # Helper - Extract current page name from request
  54. def get_segment(request):
  55. try:
  56. segment = request.path.split('/')[-1]
  57. if segment == '':
  58. segment = 'index'
  59. return segment
  60. except:
  61. return None