routes.py 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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. from apps.home.modules.mountainbikel_table import *
  13. @blueprint.route('/index')
  14. #@login_required
  15. def index():
  16. # return render_template('home/index.html', segment='index')
  17. csv_file = get_correct_csv_file()
  18. return render_template(
  19. 'home/mountainbikel_index.html',
  20. segment='index',
  21. **homepage_data(csv_file),
  22. mosum=json.dumps(
  23. monthly_sum_barchart_concurrent2(csv_file, 'elevationGain', 1,
  24. 'Höhenmeter pro Monat', '(m)', 'Jahr', 'Jahr'),
  25. cls=plotly.utils.PlotlyJSONEncoder), # ** überführt die dict-Werte in named arguments
  26. distsum=json.dumps(
  27. monthly_sum_barchart_concurrent2(csv_file, 'distance', 1,
  28. 'Entfernung pro Monat', '(km)', 'Jahr', 'Jahr'),
  29. cls=plotly.utils.PlotlyJSONEncoder), # ** überführt die dict-Werte in named arguments
  30. timesum=json.dumps(
  31. monthly_sum_barchart_concurrent2(csv_file, 'movingDuration', 1,
  32. 'Stunden pro Monat', '(h)', 'Jahr', 'Jahr'),
  33. cls=plotly.utils.PlotlyJSONEncoder), # ** überführt die dict-Werte in named arguments
  34. )
  35. @blueprint.route('/table')
  36. #@login_required
  37. def table():
  38. csv_file = get_correct_csv_file()
  39. df = read_data(csv_file)
  40. df = mtb_table(df)
  41. # df = df.reset_index().drop('index', axis=1, errors='ignore')
  42. return render_template('home/table.html',
  43. tables=[df.to_html(classes='data')],
  44. titles=df.columns.values)
  45. @blueprint.route('/<template>')
  46. @login_required
  47. def route_template(template):
  48. try:
  49. if not template.endswith('.html'):
  50. template += '.html'
  51. # Detect the current page
  52. segment = get_segment(request)
  53. # Serve the file (if exists) from app/templates/home/FILE.html
  54. return render_template("home/" + template, segment=segment)
  55. except TemplateNotFound:
  56. return render_template('home/page-404.html'), 404
  57. except:
  58. return render_template('home/page-500.html'), 500
  59. # Helper - Extract current page name from request
  60. def get_segment(request):
  61. try:
  62. segment = request.path.split('/')[-1]
  63. if segment == '':
  64. segment = 'index'
  65. return segment
  66. except:
  67. return None