add sessions stats
This commit is contained in:
@@ -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'),
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user