Private
Public Access
1
0

ignore duplicates for rolling wps

This commit is contained in:
2025-01-09 15:30:47 +01:00
parent e191ab4fc3
commit 26a5f7acfc
6 changed files with 39 additions and 14 deletions

View File

@@ -1453,9 +1453,10 @@ def save_workout_database(f2, r, dosmooth=True, workouttype='rower',
_ = update_wps(r, mytypes.otetypes)
# set user running wps
if workouttype in otetypes:
if not duplicate and workouttype in otetypes:
cntr = Workout.objects.filter(user=r, workouttype__in=otetypes,
startdatetime__gt=tz.now()-tz.timedelta(days=42)).count()
startdatetime__gt=tz.now()-tz.timedelta(days=42),
duplicate=False).count()
new_value = (cntr*r.running_wps_erg + row.df['driveenergy'].mean())/(cntr+1.0)
# if new_value is not zero or infinite or -inf, r.running_wps can be set to value
if not (math.isnan(new_value) or math.isinf(new_value) or new_value == 0):
@@ -1466,9 +1467,10 @@ def save_workout_database(f2, r, dosmooth=True, workouttype='rower',
r.running_wps_erg = 600.
r.save()
if workouttype in otwtypes:
if not duplicate and workouttype in otwtypes:
cntr = Workout.objects.filter(user=r, workouttype__in=otwtypes,
startdatetime__gt=tz.now()-tz.timedelta(days=42)).count()
startdatetime__gt=tz.now()-tz.timedelta(days=42),
duplicate=False).count()
new_value = (cntr*r.running_wps_erg + row.df['driveenergy'].mean())/(cntr+1.0)
if not (math.isnan(new_value) or math.isinf(new_value) or new_value == 0):
r.running_wps = new_value

View File

@@ -1226,6 +1226,10 @@ bulkactions = (
('remove','remove'),
('export','export'),
('rower assign','rower assign'),
('set commute','set commute'),
('set private','set private'),
('set public','set public'),
('unset commute','unset commute'),
)
destinations = (
('c2','c2'),

View File

@@ -110,6 +110,9 @@
<input type="checkbox" id="workoutid" value={{ workout.id|encode }} name="workoutid" />
{% endif %}
{{ workout.date|date:"Y-m-d" }} {{ workout.starttime|date:"H:i" }}
{% if workout.privacy == 'hidden' %}
<span style="font-size: smaller"><i class="fa-solid fa-eye-slash"></i></span>
{% endif %}
{% if workout.duplicate %}
<span style="font-size: smaller"><i class="fal fa-angle-double-up"></i></span>
{% endif %}

View File

@@ -62,36 +62,36 @@
<td>2</td><td>{{ user.rower.powerzones.1 }}</td>
<td>{{ user.rower.pw_ut2 }}</td>
<td>{{ user.rower.pw_ut2|otwslack:user }}</td>
<td>{{ user.rower.pw_ut2|target_spm_erg:user }}</td>
<td>{{ user.rower.pw_ut2|target_spm_otw:user }}</td>
<td>&lt;{{ user.rower.pw_ut1|target_spm_erg:user }}</td>
<td>&lt;{{ user.rower.pw_ut1|target_spm_otw:user }}</td>
</tr>
<tr>
<td>3</td><td>{{ user.rower.powerzones.2 }}</td>
<td>{{ user.rower.pw_ut1 }}</td>
<td>{{ user.rower.pw_ut1|otwslack:user }}</td>
<td>{{ user.rower.pw_ut1|target_spm_erg:user }}</td>
<td>{{ user.rower.pw_ut1|target_spm_otw:user }}</td>
<td>{{ user.rower.pw_ut1|target_spm_erg:user }}-{{ user.rower.pw_at|target_spm_erg:user }}</td>
<td>{{ user.rower.pw_ut1|target_spm_otw:user }}-{{ user.rower.pw_at|target_spm_otw:user }}</td>
</tr>
<tr>
<td>4</td><td>{{ user.rower.powerzones.3 }}</td>
<td>{{ user.rower.pw_at }}</td>
<td>{{ user.rower.pw_at|otwslack:user }}</td>
<td>{{ user.rower.pw_at|target_spm_erg:user }}</td>
<td>{{ user.rower.pw_at|target_spm_otw:user }}</td>
<td>{{ user.rower.pw_at|target_spm_erg:user }}-{{ user.rower.pw_tr|target_spm_erg:user }}</td>
<td>{{ user.rower.pw_at|target_spm_otw:user }}-{{ user.rower.pw_tr|target_spm_otw:user }}</td>
</tr>
<tr>
<td>5</td><td>{{ user.rower.powerzones.4 }}</td>
<td>{{ user.rower.pw_tr }}</td>
<td>{{ user.rower.pw_tr|otwslack:user }}</td>
<td>{{ user.rower.pw_tr|target_spm_erg:user }}</td>
<td>{{ user.rower.pw_tr|target_spm_otw:user }}</td>
<td>{{ user.rower.pw_tr|target_spm_erg:user }}-{{ user.rower.pw_an|target_spm_erg:user }}</td>
<td>{{ user.rower.pw_tr|target_spm_otw:user }}-{{ user.rower.pw_an|target_spm_otw:user }}</td>
</tr>
<tr>
<td>6</td><td>{{ user.rower.powerzones.5 }}</td>
<td>{{ user.rower.pw_an }}</td>
<td>{{ user.rower.pw_an|otwslack:user }}</td>
<td>{{ user.rower.pw_an|target_spm_erg:user }}</td>
<td>{{ user.rower.pw_an|target_spm_otw:user }}</td>
<td>&gt;{{ user.rower.pw_an|target_spm_erg:user }}</td>
<td>&gt;{{ user.rower.pw_an|target_spm_otw:user }}</td>
</tr>
</tbody>
</table>

Binary file not shown.

View File

@@ -2067,6 +2067,22 @@ def workouts_bulk_actions(request):
for w in workouts:
messages.info(request,'Removed workout '+str(encoder.encode_hex(w.id)))
w.delete()
elif action == 'set private':
for w in workouts:
w.privacy = 'private'
w.save()
elif action == 'set commute':
for w in workouts:
w.is_commute = True
w.save()
elif action == 'unset commute':
for w in workouts:
w.is_commute = False
w.save()
elif action == 'set public':
for w in workouts:
w.privacy = 'public'
w.save()
elif action == 'export':
exportchoice = ExportChoices(request.POST)
if exportchoice.is_valid():