ソースを参照

mitigated NaN-Error. Added locally hosted css/hss

Markus Spring 1 年間 前
コミット
0d588518c2

+ 51 - 43
apps/home/modules/mountainbikel.py

@@ -2,6 +2,7 @@ import pandas as pd
 import numpy as np
 import datetime
 import json
+import math
 import os
 import plotly
 import plotly.graph_objs as go
@@ -17,8 +18,14 @@ def round_float(s):
         r = round(float(m.groups(0)[0]),0)
     except:
         r = s
+#        r = 0
     return r
 
+def safe_round(number, ndigits=None):
+    if math.isnan(number):
+        return number
+    return round(number, ndigits)
+
 # https://stackoverflow.com/questions/775049/how-do-i-convert-seconds-to-hours-minutes-and-seconds
 def sec2time(sec, n_msec=3):
     ''' Convert seconds to 'D days, HH:MM:SS.FFF' '''
@@ -204,49 +211,50 @@ def homepage_data (csv_file):
         'movingDuration': sum,
         'intensityMinutes': sum 
     })
-    d = { 'elevationtotal'  : df['elevationGain'].sum(),
-          'elevation0y'    : yf['elevationGain'].take([-1])[0],
-          'elevation1y'    : yf['elevationGain'].take([-2])[0],
-          'elevation1m'     : mf['elevationGain'].take([-2])[0],
-          'elevation0m'     : mf['elevationGain'].take([-1])[0],
-          'elevation1w'     : wf['elevationGain'].take([-2])[0],
-          'elevation0w'     : wf['elevationGain'].take([-1])[0],
-          # '0w'              : wf.take([-1]).keys,
-          'distancetotal'   : round(df['distance'].sum(), 1),
-          'distance0y'     : round(yf['distance'].take([-1])[0], 1),
-          'distance1y'     : round(yf['distance'].take([-2])[0], 1),
-          'distance1m'      : round(mf['distance'].take([-2])[0], 1),
-          'distance0m'      : round(mf['distance'].take([-1])[0], 1),
-          'distance1w'      : round(wf['distance'].take([-2])[0], 1),
-          'distance0w'      : round(wf['distance'].take([-1])[0], 1),
-          'durationtotal'   : sec2time(df['movingDuration'].sum(), 0),
-          'duration0y'     : sec2time(yf['movingDuration'].take([-1])[0], 0),
-          'duration1y'     : sec2time(yf['movingDuration'].take([-2])[0], 0),
-          'duration1m'      : sec2time(mf['movingDuration'].take([-2])[0], 0),
-          'duration0m'      : sec2time(mf['movingDuration'].take([-1])[0], 0),
-          'duration1w'      : sec2time(wf['movingDuration'].take([-2])[0], 0),
-          'duration0w'      : sec2time(wf['movingDuration'].take([-1])[0], 0),
-          'averageHRtotal'  : round(df['averageHR'].mean()),
-          'averageHR0y'    : round(df['averageHR'].take([-1])[0]),
-          'averageHR1y'    : round(df['averageHR'].take([-2])[0]),
-          'averageHR1m'     : round(mf['averageHR'].take([-2])[0]),
-          'averageHR0m'     : round(mf['averageHR'].take([-1])[0]),
-          'averageHR1w'     : round_float(wf['averageHR'].take([-2])[0]),
-          'averageHR0w'     : round_float(wf['averageHR'].take([-1])[0]),
-          'maxHRtotal'      : round(df['maxHR'].max()),
-          'maxHR0y'        : round(df['maxHR'].take([-1])[0]),
-          'maxHR1y'        : round(df['maxHR'].take([-2])[0]),
-          'maxHR1m'         : round(mf['maxHR'].take([-2])[0]),
-          'maxHR0m'         : round(mf['maxHR'].take([-1])[0]),
-          'maxHR1w'         : round_float(wf['maxHR'].take([-2])[0]),
-          'maxHR0w'         : round_float(wf['maxHR'].take([-1])[0]),
-          'intensityMinutestotal'      : round(df['intensityMinutes'].sum()),
-          'intensityMinutes0y'        : round(yf['intensityMinutes'].take([-1])[0]),
-          'intensityMinutes1y'        : round(yf['intensityMinutes'].take([-2])[0]),
-          'intensityMinutes1m'         : round(mf['intensityMinutes'].take([-2])[0]),
-          'intensityMinutes0m'         : round(mf['intensityMinutes'].take([-1])[0]),
-          'intensityMinutes1w'         : round(wf['intensityMinutes'].take([-2])[0]),
-          'intensityMinutes0w'         : round(wf['intensityMinutes'].take([-1])[0]),
+    
+    d = { 'elevationtotal'        : df['elevationGain'].sum(),
+          'elevation0y'           : yf['elevationGain'].take([-1])[0],
+          'elevation1y'           : yf['elevationGain'].take([-2])[0],
+          'elevation1m'           : mf['elevationGain'].take([-2])[0],
+          'elevation0m'           : mf['elevationGain'].take([-1])[0],
+          'elevation1w'           : wf['elevationGain'].take([-2])[0],
+          'elevation0w'           : wf['elevationGain'].take([-1])[0],
+          # '0w'                  : wf.take([-1]).keys,
+          'distancetotal'         : round(df['distance'].sum(), 1),
+          'distance0y'            : round(yf['distance'].take([-1])[0], 1),
+          'distance1y'            : round(yf['distance'].take([-2])[0], 1),
+          'distance1m'            : round(mf['distance'].take([-2])[0], 1),
+          'distance0m'            : round(mf['distance'].take([-1])[0], 1),
+          'distance1w'            : round(wf['distance'].take([-2])[0], 1),
+          'distance0w'            : round(wf['distance'].take([-1])[0], 1),
+          'durationtotal'         : sec2time(df['movingDuration'].sum(), 0),
+          'duration0y'            : sec2time(yf['movingDuration'].take([-1])[0], 0),
+          'duration1y'            : sec2time(yf['movingDuration'].take([-2])[0], 0),
+          'duration1m'            : sec2time(mf['movingDuration'].take([-2])[0], 0),
+          'duration0m'            : sec2time(mf['movingDuration'].take([-1])[0], 0),
+          'duration1w'            : sec2time(wf['movingDuration'].take([-2])[0], 0),
+          'duration0w'            : sec2time(wf['movingDuration'].take([-1])[0], 0),
+          'averageHRtotal'        : round(df['averageHR'].mean()),
+          'averageHR0y'           : safe_round(df['averageHR'].take([-1])[0]),
+          'averageHR1y'           : safe_round(df['averageHR'].take([-2])[0]),
+          'averageHR1m'           : safe_round(mf['averageHR'].take([-2])[0]),
+          'averageHR0m'           : safe_round(mf['averageHR'].take([-1])[0]),
+          'averageHR1w'           : round_float(wf['averageHR'].take([-2])[0]),
+          'averageHR0w'           : round_float(wf['averageHR'].take([-1])[0]),
+          'maxHRtotal'            : round(df['maxHR'].max()),
+          'maxHR0y'               : safe_round(df['maxHR'].take([-1])[0]),
+          'maxHR1y'               : safe_round(df['maxHR'].take([-2])[0]),
+          'maxHR1m'               : safe_round(mf['maxHR'].take([-2])[0]),
+          'maxHR0m'               : safe_round(mf['maxHR'].take([-1])[0]),
+          'maxHR1w'               : round_float(wf['maxHR'].take([-2])[0]),
+          'maxHR0w'               : round_float(wf['maxHR'].take([-1])[0]),
+          'intensityMinutestotal' : round(df['intensityMinutes'].sum()),
+          'intensityMinutes0y'    : round(yf['intensityMinutes'].take([-1])[0]),
+          'intensityMinutes1y'    : round(yf['intensityMinutes'].take([-2])[0]),
+          'intensityMinutes1m'    : round(mf['intensityMinutes'].take([-2])[0]),
+          'intensityMinutes0m'    : round(mf['intensityMinutes'].take([-1])[0]),
+          'intensityMinutes1w'    : round(wf['intensityMinutes'].take([-2])[0]),
+          'intensityMinutes0w'    : round(wf['intensityMinutes'].take([-1])[0]),
         }
     return(d)
     

+ 2 - 1
apps/templates/home/mountainbikel_index.html

@@ -162,7 +162,8 @@
     });
 </script>
 
-<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
+<!-- <script src="https://cdn.plot.ly/plotly-latest.min.js"></script> -->
+<script src="{{ config.ASSETS_ROOT }}/js/plotly-latest.min.js"></script>
 <script type="text/javascript">
   $(document).ready(function () {
       var graphs = {{mosum|safe}};

+ 1 - 1
apps/templates/includes/scripts.html

@@ -15,4 +15,4 @@
 <!-- Black Dashboard DEMO methods, don't include it in your project! -->
 <!-- <script src="{{ config.ASSETS_ROOT }}/demo/demo.js"></script> -->
 <script src="{{ config.ASSETS_ROOT }}/js/themeSettings.js"></script>
-<script src="{{ config.ASSETS_ROOT }}/js/plotly-latest.min.js.js"></script>
+<script src="{{ config.ASSETS_ROOT }}/js/plotly-latest.min.js"></script>

+ 2 - 3
apps/templates/layouts/base-fullscreen.html

@@ -28,14 +28,13 @@
     
     <!--     Fonts and icons     -->
     <link href="https://fonts.googleapis.com/css?family=Poppins:200,300,400,600,700,800" rel="stylesheet"/>
-    <link href="https://use.fontawesome.com/releases/v5.0.6/css/all.css" rel="stylesheet">
-    <!-- Nucleo Icons -->
+    <!-- <link href="https://use.fontawesome.com/releases/v5.0.6/css/all.css" rel="stylesheet"> -->
     <link href="{{ config.ASSETS_ROOT }}/css/nucleo-icons.css" rel="stylesheet"/>
     <!-- CSS Files -->
     <link href="{{ config.ASSETS_ROOT }}/css/black-dashboard.css?v=1.0.0" rel="stylesheet"/>
     <link href="{{ config.ASSETS_ROOT }}/css/theme-switcher.css" rel="stylesheet"/>
     <!-- CSS Just for demo purpose, don't include it in your project -->
-    <link href="{{ config.ASSETS_ROOT }}/demo/demo.css" rel="stylesheet"/>
+    <!-- <link href="{{ config.ASSETS_ROOT }}/demo/demo.css" rel="stylesheet"/> -->
 
     <!-- Specific Page CSS goes HERE  -->
     {% block stylesheets %}{% endblock stylesheets %}

+ 4 - 2
apps/templates/layouts/base.html

@@ -28,14 +28,16 @@
 
     <!--     Fonts and icons     -->
     <link href="https://fonts.googleapis.com/css?family=Poppins:200,300,400,600,700,800" rel="stylesheet"/>
-    <link href="https://use.fontawesome.com/releases/v5.0.6/css/all.css" rel="stylesheet">
+    <!-- <link href="https://use.fontawesome.com/releases/v5.0.6/css/all.css" rel="stylesheet"> -->
+    <link href="{{ config.ASSETS_ROOT }}/css/nucleo-icons.css" rel="stylesheet"/>
     <!-- Nucleo Icons -->
     <link href="{{ config.ASSETS_ROOT }}/css/nucleo-icons.css" rel="stylesheet"/>
     <!-- CSS Files -->
     <link href="{{ config.ASSETS_ROOT }}/css/black-dashboard.css?v=1.0.0" rel="stylesheet"/>
     <link href="{{ config.ASSETS_ROOT }}/css/theme-switcher.css" rel="stylesheet"/>
     <!-- CSS Just for demo purpose, don't include it in your project -->
-    <link href="{{ config.ASSETS_ROOT }}/demo/demo.css" rel="stylesheet"/>
+    <!-- <link href="{{ config.ASSETS_ROOT }}/demo/demo.css" rel="stylesheet"/> -->
+    <link href="{{ config.ASSETS_ROOT }}/test.css" rel="stylesheet"/>
 
     <!-- Specific Page CSS goes HERE  -->
     {% block stylesheets %}{% endblock stylesheets %}