Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
algorithms.py 913 B
"""
    File name: algorithms.py
    Author: Nico Vermaas - Astron
    Date created: 2019-04-04
    Description:  Business logic for ATDB. These functions are called from the views (views.py).
"""

from django.db.models import Sum
import logging
from .common import timeit
from ..models import Task

DATE_FORMAT = "%Y-%m-%d"
TIME_FORMAT = "%Y-%m-%d %H:%M:%SZ"
DJANGO_TIME_FORMAT = "%Y-%m-%dT%H:%M:%SZ"

logger = logging.getLogger(__name__)

@timeit
def get_size(status_list):
    """
    aggregate the sizes of all task with a status in the list
    :param status_list: list of statuses to consider for the aggregation
    :return: summed sizes
    """

    logger.info("get_size("+status_list+")")
    #todo: implement

    query = field + '__sum'
    sum_value = Task.objects.filter(status__in=status_list).aggregate(Sum(field))[query]
    if sum_value == None:
        sum_value = 0.0
    return sum_value