@@ 135,7 135,7 @@ def load_match(session, key, correlate_shooters, name_generator):
scores_data = scores_response.json()
- load_stage_scores(session, stages, match_entries, match_data["match_penalties"], scores_data)
+ load_stage_scores(session, match, stages, match_entries, match_data["match_penalties"], scores_data)
return match
@@ 165,7 165,9 @@ def load_match_entries(session, match, shooters_data, correlate_shooters, name_g
return match_entries
-def load_stage_scores(session, stages, match_entries, match_penalties, scores_data):
+def load_stage_scores(session, match, stages, match_entries, match_penalties, scores_data):
+ match_year = match.date.year
+
for stage_scores in scores_data["match_scores"]:
stage = stages[stage_scores["stage_uuid"]]
@@ 176,11 178,19 @@ def load_stage_scores(session, stages, match_entries, match_penalties, scores_da
time = sum([string_time for string_time in score["str"]])
points_down = sum([target_points_down for target_points_down in score["tpts"]])
penalties = sum([count * match_penalties[index]["pen_val"] for (index, count) in enumerate(score["pens"])])
+
+ total_time = calculate_total_time(time, points_down, penalties, match_year)
- stage_score = StageScore(stage, match_entry, time, points_down, penalties)
+ stage_score = StageScore(stage, match_entry, time, points_down, penalties, total_time)
session.add(stage_score)
+def calculate_total_time(time, points_down, penalties, year):
+ if year < 2017:
+ return time + (points_down * 0.5) + penalties
+ else:
+ return time + points_down + penalties
+
def remove_empty_match_entries(session, match):
session.execute(select([func.remove_empty_match_entries(match.id)]))
@@ 101,14 101,13 @@ class StageScore(Base):
stage = relationship("Stage", innerjoin=True)
match_entry = relationship("MatchEntry", innerjoin=True)
- def __init__(self, stage, match_entry, time, points_down, penalties):
+ def __init__(self, stage, match_entry, time, points_down, penalties, total_time):
self.stage = stage
self.match_entry = match_entry
self.time = time
self.points_down = points_down
self.penalties = penalties
-
- self.total_time = self.time + (self.points_down * 0.5) + self.penalties
+ self.total_time = total_time
class MatchScore(Base):
__tablename__ = "match_scores"