Skip to content

Commit d402eb6

Browse files
committed
feat(surveys): upgrade linked_insight from IntegerField to ForeignKey
1 parent be5690d commit d402eb6

File tree

3 files changed

+13
-3
lines changed

3 files changed

+13
-3
lines changed

posthog/api/survey.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -833,7 +833,9 @@ def _create_or_update_targeting_flag(
833833

834834
class SurveyViewSet(TeamAndOrgViewSetMixin, AccessControlViewSetMixin, viewsets.ModelViewSet):
835835
scope_object = "survey"
836-
queryset = Survey.objects.select_related("linked_flag", "targeting_flag", "internal_targeting_flag").all()
836+
queryset = Survey.objects.select_related(
837+
"linked_flag", "linked_insight", "targeting_flag", "internal_targeting_flag"
838+
).all()
837839
filter_backends = [filters.SearchFilter]
838840
search_fields = ["name", "description"]
839841

posthog/models/surveys/survey.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,15 @@ class Meta:
7171
related_name="surveys_targeting_flag",
7272
related_query_name="survey_targeting_flag",
7373
)
74-
linked_insight_id = models.IntegerField(null=True, blank=True)
74+
linked_insight = models.ForeignKey(
75+
"posthog.Insight",
76+
null=True,
77+
blank=True,
78+
on_delete=models.SET_NULL,
79+
related_name="surveys_linked_insight",
80+
related_query_name="survey_linked_insight",
81+
db_index=False,
82+
)
7583
internal_targeting_flag = models.ForeignKey(
7684
"posthog.FeatureFlag",
7785
null=True,

products/surveys/backend/test_max_tools.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@ async def test_create_survey_with_linked_insight(self, mock_create_survey):
381381
assert "successfully" in content
382382

383383
# Verify survey was created with linked insight
384-
survey = await sync_to_async(Survey.objects.get)(id=artifact["survey_id"])
384+
survey = await sync_to_async(Survey.objects.select_related("linked_insight").get)(id=artifact["survey_id"])
385385
assert survey.name == "Funnel Survey"
386386
assert survey.linked_insight_id == insight.id
387387

0 commit comments

Comments
 (0)