Skip to content

Commit 8c9fcd9

Browse files
committed
Deviation template tags
This commit includes new template tags for calculating values displayed in tables in the deviation override update. Fixes apluslms#896 Fixes apluslms#902
1 parent 5a2c942 commit 8c9fcd9

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

deviations/templatetags/__init__.py

Whitespace-only changes.

deviations/templatetags/deviations.py

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import datetime
2+
from typing import Optional
3+
4+
from django import template
5+
6+
from ..models import DeadlineRuleDeviation
7+
8+
9+
register = template.Library()
10+
11+
12+
@register.simple_tag
13+
def new_deviation_minutes(
14+
deviation: DeadlineRuleDeviation,
15+
minutes: Optional[int],
16+
date: Optional[datetime.datetime]
17+
) -> int:
18+
"""
19+
Get the extra minutes for a deadline deviation after being overridden.
20+
"""
21+
if date:
22+
return deviation.exercise.delta_in_minutes_from_closing_to_date(date)
23+
return minutes
24+
25+
26+
@register.simple_tag
27+
def new_deviation_date(
28+
deviation: DeadlineRuleDeviation,
29+
minutes: Optional[int],
30+
date: Optional[datetime.datetime]
31+
) -> datetime.datetime:
32+
"""
33+
Get the new deadline for a deadline deviation after being overridden.
34+
"""
35+
if date:
36+
return date
37+
return deviation.exercise.course_module.closing_time + datetime.timedelta(minutes=minutes)

0 commit comments

Comments
 (0)