def computed_enrollment_days()

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