26 lines
663 B
Python
26 lines
663 B
Python
"""
|
|
Miscellaneous utility functions.
|
|
"""
|
|
|
|
|
|
from functools import partial
|
|
|
|
|
|
def get_extended_due_date(node):
|
|
"""
|
|
Gets the actual due date for the logged in student for this node, returning
|
|
the extendeded due date if one has been granted and it is later than the
|
|
global due date, otherwise returning the global due date for the unit.
|
|
"""
|
|
if isinstance(node, dict):
|
|
get = node.get
|
|
else:
|
|
get = partial(getattr, node)
|
|
due_date = get('due', None)
|
|
if not due_date:
|
|
return due_date
|
|
extended = get('extended_due', None)
|
|
if not extended or extended < due_date:
|
|
return due_date
|
|
return extended
|