Changeset 2f8a48f in OpenWorkouts-current for ow/utilities.py


Ignore:
Timestamp:
Jan 25, 2019, 12:38:55 AM (5 years ago)
Author:
borja <borja@…>
Branches:
current, feature/docs, master
Children:
421f05f
Parents:
6d1b54b
Message:

(#7) Added several methods to the User model to gather some stats (yearly,

monthly, weekly).

Added two new utilities:

  • timedelta_to_hms (so we can print timedelta objects properly in template code)
  • get_week_days (returns a list of datetime objects for the days in the same week as a given day)

Added a template_helpers module, containing code that affects template
rendering.

Added timedelta_to_hms as a global to the default template rendering context

Refactored some code in the Workout model so it uses timedelta_to_hms instead
of running the same code twice.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ow/utilities.py

    r6d1b54b r2f8a48f  
    33import logging
    44import subprocess
    5 from datetime import datetime
     5from datetime import datetime, timedelta
    66from decimal import Decimal
    77from shutil import copyfileobj
     
    212212
    213213    return False
     214
     215
     216def timedelta_to_hms(value):
     217    """
     218    Return hours, minutes, seconds from a timedelta object
     219    """
     220    hours, remainder = divmod(int(value.total_seconds()), 3600)
     221    minutes, seconds = divmod(remainder, 60)
     222    return hours, minutes, seconds
     223
     224
     225def get_week_days(day, start_day=1):
     226    """
     227    Return a list of datetime objects for the days of the week "day" is in.
     228
     229    day is a datetime object (like in datetime.now() for "today")
     230
     231    start_day can be used to set if week starts on monday (1) or sunday (0)
     232    """
     233    first_day = day - timedelta(days=day.isoweekday() - start_day)
     234    week_days = [first_day + timedelta(days=i) for i in range(7)]
     235    return week_days
Note: See TracChangeset for help on using the changeset viewer.