Skip to content

Instantly share code, notes, and snippets.

@jodyheavener
Created March 30, 2021 21:20
Show Gist options
  • Save jodyheavener/9c3608cddad0af2f22d0bbb07646d8f4 to your computer and use it in GitHub Desktop.
Save jodyheavener/9c3608cddad0af2f22d0bbb07646d8f4 to your computer and use it in GitHub Desktop.
diff --git a/app/experimenter/experiments/api/v5/types.py b/app/experimenter/experiments/api/v5/types.py
index be949b79..5a14a7bf 100644
--- a/app/experimenter/experiments/api/v5/types.py
+++ b/app/experimenter/experiments/api/v5/types.py
@@ -143,6 +143,7 @@ class NimbusExperimentType(DjangoObjectType):
is_enrollment_paused = graphene.Boolean()
enrollment_end_date = graphene.DateTime()
can_review = graphene.Boolean()
+ is_editable = graphene.Boolean()
rejection = graphene.Field(NimbusChangeLogType)
timeout = graphene.Field(NimbusChangeLogType)
diff --git a/app/experimenter/experiments/models/nimbus.py b/app/experimenter/experiments/models/nimbus.py
index 805f2011..2dfeee1d 100644
--- a/app/experimenter/experiments/models/nimbus.py
+++ b/app/experimenter/experiments/models/nimbus.py
@@ -273,6 +273,12 @@ class NimbusExperiment(NimbusConstants, models.Model):
return review_request and review_request.changed_by != reviewer
return False
+ def is_editable(self):
+ return (
+ self.status == NimbusExperiment.Status.DRAFT
+ and self.publish_status == NimbusExperiment.PublishStatus.IDLE
+ )
+
class NimbusBranch(models.Model):
experiment = models.ForeignKey(
diff --git a/app/experimenter/nimbus-ui/schema.graphql b/app/experimenter/nimbus-ui/schema.graphql
index 4592fc64..456e10cf 100644
--- a/app/experimenter/nimbus-ui/schema.graphql
+++ b/app/experimenter/nimbus-ui/schema.graphql
@@ -238,6 +238,7 @@ type NimbusExperimentType {
isEnrollmentPaused: Boolean
enrollmentEndDate: DateTime
canReview: Boolean
+ isEditable: Boolean
rejection: NimbusChangeLogType
timeout: NimbusChangeLogType
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment