mirror of
https://gitlab.science.ru.nl/technicie/MarietjeDjango.git
synced 2025-12-09 21:52:21 +01:00
45 lines
1.4 KiB
Python
45 lines
1.4 KiB
Python
from datetime import datetime, timedelta
|
|
|
|
from django.core.cache import caches
|
|
from django.shortcuts import render
|
|
|
|
|
|
def stats(request):
|
|
stats_data = caches['default'].get('stats')
|
|
status = 503
|
|
current_age = None
|
|
current_age_text = None
|
|
|
|
if stats_data:
|
|
status = 200
|
|
current_age_text = age_text(stats_data['last_updated'])
|
|
|
|
data = {'stats': stats_data, 'current_age': current_age, 'current_age_text': current_age_text}
|
|
return render(request, 'stats/stats.html', data, status=status)
|
|
|
|
def user_stats(request):
|
|
|
|
stats_data = caches['default'].get('userstats_{}'.format(request.user.id))
|
|
status = 503
|
|
current_age = None
|
|
current_age_text = None
|
|
|
|
if stats_data:
|
|
status = 200
|
|
current_age_text = age_text(stats_data['last_updated'])
|
|
|
|
data = {'stats': stats_data, 'current_age': current_age, 'current_age_text': current_age_text}
|
|
return render(request, 'stats/user.html', data, status=status)
|
|
|
|
def age_text(last_updated):
|
|
current_age = datetime.now() - last_updated
|
|
minutes = (current_age.seconds % 3600) / 60
|
|
hours = current_age.seconds / 3600
|
|
minutestr = "minute" if minutes == 1 else "minutes"
|
|
hourstr = "hour" if hours == 1 else "hours"
|
|
if current_age < timedelta(hours=1):
|
|
return 'Stats were updated {:.0f} {} ago.'.format(minutes, minutestr)
|
|
|
|
return 'Stats were updated {:.0f} {} and {:.0f} {} ago.'.format(
|
|
hours, hourstr, minutes, minutestr)
|