""" 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