Source code for beaver_manager.logic

"""
This module contains any logic that does not belong in any other module
"""

from beaver_manager import app, db


[docs]def update_criterion(attendance): """ Check whether a beaver was present for a given attendance and if so sets the corrosponding ``criterion.completed`` to True Args: attendance (Attendance): The attendance for which criterion need updating """ for beaver_attendance in attendance.beaver_attendances: for badge in beaver_attendance.beaver.badges: for criterion in badge.criteria: if criterion.criterion_id == attendance.criterion_id: if beaver_attendance.present: criterion.completed = True db.session.commit() else: criterion.completed = False db.session.commit()
[docs]def update_beaver_badge(beaver_badge): """ Checks to see if all the criteria are completed for ``beaver_badge`` and if so sets ``beaver_badge.completed`` to True Args: beaver_badge (BeaverBadge): The beaver badge which need checking """ completed = 0 for criterion in beaver_badge.criteria: if criterion.completed: completed += 1 if completed == len(beaver_badge.criteria): beaver_badge.completed = True db.session.commit() else: beaver_badge.completed = False db.session.commit()
[docs]def to_percent(value, total): """ Works out the percentage of a value from a total. Args: value (int): The value to be converted total (int): The total to be used in conversion Returns: (int): Number between 0.0 and 100.0 """ return value / total * 100