Skip to content

Commit df75b8b

Browse files
authored
feat(nimbus): add clear visual indication of future states while organizing experiment (#13486)
Because - Users found it unclear about the current state while managing experiments This commit - Adds visual indication for future states Fixes #13135
1 parent ccd994d commit df75b8b

File tree

3 files changed

+22
-1
lines changed

3 files changed

+22
-1
lines changed

experimenter/experimenter/experiments/models.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1135,34 +1135,39 @@ def sidebar_links(self, current_path):
11351135
def timeline(self):
11361136
timeline_entries = [
11371137
{
1138+
"step": NimbusUIConstants.EXPERIMENT_ORDERING["Draft"],
11381139
"label": self.Status.DRAFT,
11391140
"date": self.draft_date,
11401141
"is_active": self.is_draft,
11411142
"days": self.computed_draft_days,
11421143
"tooltip": NimbusUIConstants.TIMELINE_TOOLTIPS["Draft"],
11431144
},
11441145
{
1146+
"step": NimbusUIConstants.EXPERIMENT_ORDERING["Preview"],
11451147
"label": self.Status.PREVIEW,
11461148
"date": self.preview_date,
11471149
"is_active": self.is_preview,
11481150
"days": self.computed_preview_days,
11491151
"tooltip": NimbusUIConstants.TIMELINE_TOOLTIPS["Preview"],
11501152
},
11511153
{
1154+
"step": NimbusUIConstants.EXPERIMENT_ORDERING["Review"],
11521155
"label": self.PublishStatus.REVIEW,
11531156
"date": self.review_date,
11541157
"is_active": self.is_review_timeline,
11551158
"days": self.computed_review_days,
11561159
"tooltip": NimbusUIConstants.TIMELINE_TOOLTIPS["Review"],
11571160
},
11581161
{
1162+
"step": NimbusUIConstants.EXPERIMENT_ORDERING["Enrollment"],
11591163
"label": NimbusConstants.ENROLLMENT,
11601164
"date": self.start_date,
11611165
"is_active": self.is_enrolling,
11621166
"days": self.computed_enrollment_days,
11631167
"tooltip": NimbusUIConstants.TIMELINE_TOOLTIPS["Enrollment"],
11641168
},
11651169
{
1170+
"step": NimbusUIConstants.EXPERIMENT_ORDERING["Complete"],
11661171
"label": self.Status.COMPLETE,
11671172
"date": self.computed_end_date,
11681173
"is_active": self.is_complete,
@@ -1174,6 +1179,7 @@ def timeline(self):
11741179
timeline_entries.insert(
11751180
4,
11761181
{
1182+
"step": NimbusUIConstants.EXPERIMENT_ORDERING["Observation"],
11771183
"label": NimbusConstants.OBSERVATION,
11781184
"date": self._enrollment_end_date,
11791185
"is_active": self.is_observation,
@@ -1184,6 +1190,13 @@ def timeline(self):
11841190

11851191
return timeline_entries
11861192

1193+
@property
1194+
def experiment_active_status(self):
1195+
timeline = self.timeline()
1196+
for item in timeline:
1197+
if item["is_active"]:
1198+
return item["step"]
1199+
11871200
@property
11881201
def should_end(self):
11891202
if self.proposed_end_date:

experimenter/experimenter/nimbus_ui/constants.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,14 @@ class NimbusUIConstants:
6666
"period ended."
6767
),
6868
}
69+
EXPERIMENT_ORDERING = {
70+
"Draft": 1,
71+
"Preview": 2,
72+
"Review": 3,
73+
"Enrollment": 4,
74+
"Observation": 5,
75+
"Complete": 6,
76+
}
6977
HOME_PAGE_LINKS = {
7078
"welcome_learn_more_url": "https://experimenter.info/workflow/overview/"
7179
}

experimenter/experimenter/nimbus_ui/templates/nimbus_experiments/timeline.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<ul class="list-group list-group-horizontal justify-content-between mb-3">
22
{% for status in experiment.timeline %}
3-
<li class="list-group-item flex-fill text-center d-flex flex-column justify-content-center {% if status.is_active %}bg-primary text-white{% endif %}">
3+
<li class="list-group-item flex-fill text-center d-flex flex-column justify-content-center {% if status.is_active %}bg-primary text-white{% endif %} {% if status.step > experiment.experiment_active_status %}bg-secondary text-muted{% endif %}">
44
<strong>{{ status.label }}</strong>
55
<small>{{ status.date|default:'---' }}</small>
66
{% if status.days is not None %}

0 commit comments

Comments
 (0)