rudimentary alert report page
This commit is contained in:
@@ -93,6 +93,7 @@ def alert_get_stats(alert,nperiod=0):
|
||||
ids = [w.id for w in workouts]
|
||||
|
||||
df = getsmallrowdata_db(columns,ids=ids,doclean=True,workstrokesonly=workstrokesonly)
|
||||
|
||||
if df.empty:
|
||||
return {
|
||||
'workouts':len(workouts),
|
||||
@@ -102,25 +103,37 @@ def alert_get_stats(alert,nperiod=0):
|
||||
'nr_strokes_qualifying':0,
|
||||
}
|
||||
|
||||
# check if filters are in columns list
|
||||
pdcolumns = set(df.columns)
|
||||
|
||||
# drop strokes through filter
|
||||
for condition in alert.filter.all():
|
||||
if condition.condition == '>':
|
||||
mask = df[condition.metric] > condition.value1
|
||||
df.loc[mask,alert.measured.metric] = np.nan
|
||||
elif condition.condition == '<':
|
||||
mask = df[condition.metric] < condition.value1
|
||||
df.loc[mask,alert.measured.metric] = np.nan
|
||||
elif condition.condition == 'between':
|
||||
mask = df[condition.metric] > condition.value1
|
||||
mask2 = df[condition.metric] < condition.value2
|
||||
df.loc[mask & mask2,alert.measured.metric] = np.nan
|
||||
elif condition.condition == '=':
|
||||
mask = df[condition.metric] == condition.value1
|
||||
df.loc[mask,alert.measured.metric] = np.nan
|
||||
if set(columns) <= pdcolumns:
|
||||
for condition in alert.filter.all():
|
||||
if condition.condition == '>':
|
||||
mask = df[condition.metric] > condition.value1
|
||||
df.loc[mask,alert.measured.metric] = np.nan
|
||||
elif condition.condition == '<':
|
||||
mask = df[condition.metric] < condition.value1
|
||||
df.loc[mask,alert.measured.metric] = np.nan
|
||||
elif condition.condition == 'between':
|
||||
mask = df[condition.metric] > condition.value1
|
||||
mask2 = df[condition.metric] < condition.value2
|
||||
df.loc[mask & mask2,alert.measured.metric] = np.nan
|
||||
elif condition.condition == '=':
|
||||
mask = df[condition.metric] == condition.value1
|
||||
df.loc[mask,alert.measured.metric] = np.nan
|
||||
|
||||
df.dropna(inplace=True,axis=0)
|
||||
|
||||
else:
|
||||
return {
|
||||
'workouts':len(workouts),
|
||||
'startdate':startdate,
|
||||
'enddate':enddate,
|
||||
'nr_strokes':0,
|
||||
'nr_strokes_qualifying':0,
|
||||
}
|
||||
|
||||
|
||||
# count strokes
|
||||
nr_strokes = len(df)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user