in experimenter/experimenter/experiments/models.py [0:0]
def computed_enrollment_days(self):
enrollment_start = self.enrollment_start_date
if self._enrollment_end_date is not None and enrollment_start is not None:
return (self._enrollment_end_date - enrollment_start).days
if self.is_paused:
if paused_changelogs := [
c
for c in self.changes.all().filter(
old_status=self.Status.LIVE,
new_status=self.Status.LIVE,
new_status_next=None,
new_publish_status=self.PublishStatus.IDLE,
)
if c.experiment_data is not None
and "is_paused" in c.experiment_data
and c.experiment_data["is_paused"]
]:
paused_change = sorted(paused_changelogs, key=lambda c: c.changed_on)[-1]
self._enrollment_end_date = paused_change.changed_on.date()
self.save()
return (paused_change.changed_on.date() - enrollment_start).days
if self.end_date:
return self.computed_duration_days
return self.proposed_enrollment