Changeset 421f05f in OpenWorkouts-current for ow/views


Ignore:
Timestamp:
Jan 25, 2019, 12:41:26 AM (5 years ago)
Author:
borja <borja@…>
Branches:
current, feature/docs, master
Children:
5bdfbfb
Parents:
2f8a48f
Message:

(#7) Added week_stats view, that returns a json-encoded stream of data

containing information about the current week status for the given user.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ow/views/user.py

    r2f8a48f r421f05f  
     1import json
    12from calendar import month_name
     3from datetime import datetime
    24
    35from pyramid.httpexceptions import HTTPFound
     
    1719from ..models.root import OpenWorkouts
    1820from ..views.renderers import OWFormRenderer
     21from ..utilities import timedelta_to_hms
    1922
    2023_ = TranslationStringFactory('OpenWorkouts')
     
    223226        return HTTPFound(location=request.resource_url(context, 'profile'))
    224227    return {'form': OWFormRenderer(form)}
     228
     229
     230@view_config(
     231    context=User,
     232    permission='view',
     233    name='week')
     234def week_stats(context, request):
     235    stats = context.week_stats
     236    json_stats = []
     237    for day in stats:
     238        hms = timedelta_to_hms(stats[day]['time'])
     239        day_stats = {
     240            'name': day.strftime('%a'),
     241            'time': str(hms[0]).zfill(2),
     242            'distance': int(round(stats[day]['distance'])),
     243            'elevation': int(stats[day]['elevation']),
     244            'workouts': stats[day]['workouts']
     245        }
     246        json_stats.append(day_stats)
     247    return Response(content_type='application/json',
     248                    charset='utf-8',
     249                    body=json.dumps(json_stats))
Note: See TracChangeset for help on using the changeset viewer.