Private
Public Access
1
0

add sessions stats

This commit is contained in:
2024-07-26 13:50:45 +02:00
parent 1baa0db7d3
commit c27bed6692
2 changed files with 43 additions and 0 deletions

View File

@@ -275,6 +275,7 @@ urlpatterns = [
views.instroke_data, name='instroke_data'),
re_path(r'^exportallworkouts/?/$', views.workouts_summaries_email_view,
name='workouts_summaries_email_view'),
path('sessionstats/', views.sessions_stats, name='sessions_stats'),
path('failedjobs/', views.failed_queue_view, name='failed_queue_view'),
path('sleep/', views.sleep_view, name='sleep_view'),
path('filmdeaths/', views.filmdeaths_view, name='filmdeaths_view'),

View File

@@ -1,6 +1,7 @@
from rowers.views.statements import *
from rowers.interactiveplots import sleep
from rowers.plannedsessions import is_session_complete
from rq import Queue
from redis import Redis
@@ -55,6 +56,47 @@ def download_fit(request, filename=''):
return response # pragma: no cover
@login_required()
def sessions_stats(request):
if not request.user.is_staff: # pragma: no cover
raise PermissionDenied("Not Allowed")
ws = Workout.objects.filter(plannedsession__isnull=False)
results = []
for w in ws:
ps = w.plannedsession
r = w.user
ratio, status, cdate = is_session_complete(r, ps)
d = {
'date':w.date,
'session_id':ps.id,
'session_name':ps.name,
'complete': ratio,
'status': status,
'rscore': w.rscore,
'duration': w.duration,
}
results.append(d)
df = pd.DataFrame(results)
code = str(uuid4())
filename = code+'.csv'
df.to_csv(filename)
with open(filename,'r') as f:
response = HttpResponse(f)
response['Content-Disposition'] = 'attachment; filename="%s"' % filename
response['Content-Type'] = 'application/octet-stream'
os.remove(filename)
return response
@login_required()
def failed_queue_view(request):