diff --git a/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-breakdown-edit--dark.png b/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-breakdown-edit--dark.png index c97834c6d7fb1..4b405550412a0 100644 Binary files a/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-breakdown-edit--dark.png and b/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-breakdown-edit--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-edit--dark.png b/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-edit--dark.png index f7c582680bca6..248d1f34b318a 100644 Binary files a/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-edit--dark.png and b/frontend/__snapshots__/scenes-app-insights--funnel-top-to-bottom-edit--dark.png differ diff --git a/frontend/src/lib/constants.tsx b/frontend/src/lib/constants.tsx index d41a232518b18..5f3c9d6d5d878 100644 --- a/frontend/src/lib/constants.tsx +++ b/frontend/src/lib/constants.tsx @@ -194,7 +194,6 @@ export const FEATURE_FLAGS = { PERSONLESS_EVENTS_NOT_SUPPORTED: 'personless-events-not-supported', // owner: @raquelmsmith ALERTS: 'alerts', // owner: @anirudhpillai #team-product-analytics ERROR_TRACKING: 'error-tracking', // owner: #team-error-tracking - ERROR_TRACKING_GROUP_ACTIONS: 'error-tracking-group-actions', // owner: #team-error-tracking SETTINGS_BOUNCE_RATE_PAGE_VIEW_MODE: 'settings-bounce-rate-page-view-mode', // owner: @robbie-c ONBOARDING_DASHBOARD_TEMPLATES: 'onboarding-dashboard-templates', // owner: @raquelmsmith MULTIPLE_BREAKDOWNS: 'multiple-breakdowns', // owner: @skoob13 #team-product-analytics diff --git a/frontend/src/scenes/error-tracking/ErrorTrackingFilters.tsx b/frontend/src/scenes/error-tracking/ErrorTrackingFilters.tsx index b34977a9357be..62c3ee10fa4be 100644 --- a/frontend/src/scenes/error-tracking/ErrorTrackingFilters.tsx +++ b/frontend/src/scenes/error-tracking/ErrorTrackingFilters.tsx @@ -86,8 +86,8 @@ const RecordingsUniversalFilterGroup = (): JSX.Element => { ) } -export const Options = ({ isGroup = false }: { isGroup?: boolean }): JSX.Element => { - const { dateRange, assignee, hasGroupActions } = useValues(errorTrackingLogic) +export const Options = ({ isIssue = false }: { isIssue?: boolean }): JSX.Element => { + const { dateRange, assignee } = useValues(errorTrackingLogic) const { setDateRange, setAssignee } = useActions(errorTrackingLogic) const { orderBy } = useValues(errorTrackingSceneLogic) const { setOrderBy } = useActions(errorTrackingSceneLogic) @@ -106,7 +106,7 @@ export const Options = ({ isGroup = false }: { isGroup?: boolean }): JSX.Element size="small" /> - {!isGroup && ( + {!isIssue && (
Sort by:
- {hasGroupActions && !isGroup && ( + {!isIssue && ( <> Assigned to: = { } export function ErrorTrackingIssueScene(): JSX.Element { - const { issue, issueLoading, hasGroupActions } = useValues(errorTrackingIssueSceneLogic) + const { issue, issueLoading } = useValues(errorTrackingIssueSceneLogic) const { updateIssue, loadIssue } = useActions(errorTrackingIssueSceneLogic) useEffect(() => { @@ -45,7 +45,7 @@ export function ErrorTrackingIssueScene(): JSX.Element { <> - + diff --git a/frontend/src/scenes/error-tracking/ErrorTrackingScene.tsx b/frontend/src/scenes/error-tracking/ErrorTrackingScene.tsx index d2fb4ffc8ebb7..81bd16fbafa2b 100644 --- a/frontend/src/scenes/error-tracking/ErrorTrackingScene.tsx +++ b/frontend/src/scenes/error-tracking/ErrorTrackingScene.tsx @@ -114,7 +114,6 @@ const CustomVolumeColumnHeader: QueryContextColumnTitleComponent = ({ columnName } const CustomGroupTitleColumn: QueryContextColumnComponent = (props) => { - const { hasGroupActions } = useValues(errorTrackingLogic) const { selectedIssueIds } = useValues(errorTrackingSceneLogic) const { setSelectedIssueIds } = useActions(errorTrackingSceneLogic) @@ -124,19 +123,17 @@ const CustomGroupTitleColumn: QueryContextColumnComponent = (props) => { return (
- {hasGroupActions && ( - { - setSelectedIssueIds( - newValue - ? [...new Set([...selectedIssueIds, record.id])] - : selectedIssueIds.filter((id) => id != record.id) - ) - }} - /> - )} + { + setSelectedIssueIds( + newValue + ? [...new Set([...selectedIssueIds, record.id])] + : selectedIssueIds.filter((id) => id != record.id) + ) + }} + /> ([ ...values.response, results: results // remove merged issues - .filter(({ id }) => !ids.includes(id)) + .filter(({ id }) => !mergingIds.includes(id)) .map((issue) => // replace primary issue mergedIssue.id === issue.id ? mergedIssue : issue diff --git a/frontend/src/scenes/error-tracking/errorTrackingIssueSceneLogic.ts b/frontend/src/scenes/error-tracking/errorTrackingIssueSceneLogic.ts index 08f2de773227b..01ec5e7aecfce 100644 --- a/frontend/src/scenes/error-tracking/errorTrackingIssueSceneLogic.ts +++ b/frontend/src/scenes/error-tracking/errorTrackingIssueSceneLogic.ts @@ -40,7 +40,7 @@ export const errorTrackingIssueSceneLogic = kea props.id), connect({ - values: [errorTrackingLogic, ['dateRange', 'filterTestAccounts', 'filterGroup', 'hasGroupActions']], + values: [errorTrackingLogic, ['dateRange', 'filterTestAccounts', 'filterGroup']], }), actions({ diff --git a/frontend/src/scenes/error-tracking/errorTrackingLogic.ts b/frontend/src/scenes/error-tracking/errorTrackingLogic.ts index 260e4e4d08ccb..5563539cddcbf 100644 --- a/frontend/src/scenes/error-tracking/errorTrackingLogic.ts +++ b/frontend/src/scenes/error-tracking/errorTrackingLogic.ts @@ -1,6 +1,5 @@ import type { LemonSegmentedButtonOption } from '@posthog/lemon-ui' -import { actions, connect, kea, listeners, path, reducers, selectors } from 'kea' -import { FEATURE_FLAGS } from 'lib/constants' +import { actions, connect, kea, listeners, path, reducers } from 'kea' import { featureFlagLogic } from 'lib/logic/featureFlagLogic' import { DateRange } from '~/queries/schema' @@ -100,12 +99,6 @@ export const errorTrackingLogic = kea([ }, ], }), - selectors({ - hasGroupActions: [ - (s) => [s.featureFlags], - (featureFlags): boolean => !!featureFlags[FEATURE_FLAGS.ERROR_TRACKING_GROUP_ACTIONS], - ], - }), listeners(({ values, actions }) => ({ setDateRange: ({ dateRange: { date_from } }) => { if (date_from) { diff --git a/frontend/src/scenes/error-tracking/errorTrackingSceneLogic.ts b/frontend/src/scenes/error-tracking/errorTrackingSceneLogic.ts index 92dbd6d61dcac..6e8f5f2a3f4f3 100644 --- a/frontend/src/scenes/error-tracking/errorTrackingSceneLogic.ts +++ b/frontend/src/scenes/error-tracking/errorTrackingSceneLogic.ts @@ -21,15 +21,7 @@ export const errorTrackingSceneLogic = kea([ connect({ values: [ errorTrackingLogic, - [ - 'dateRange', - 'assignee', - 'filterTestAccounts', - 'filterGroup', - 'sparklineSelectedPeriod', - 'searchQuery', - 'hasGroupActions', - ], + ['dateRange', 'assignee', 'filterTestAccounts', 'filterGroup', 'sparklineSelectedPeriod', 'searchQuery'], ], actions: [ errorTrackingLogic, @@ -68,7 +60,6 @@ export const errorTrackingSceneLogic = kea([ s.filterGroup, s.sparklineSelectedPeriod, s.searchQuery, - s.hasGroupActions, ], ( orderBy, @@ -77,8 +68,7 @@ export const errorTrackingSceneLogic = kea([ filterTestAccounts, filterGroup, sparklineSelectedPeriod, - searchQuery, - hasGroupActions + searchQuery ): DataTableNode => errorTrackingQuery({ orderBy, @@ -88,9 +78,7 @@ export const errorTrackingSceneLogic = kea([ filterGroup, sparklineSelectedPeriod, searchQuery, - columns: hasGroupActions - ? ['error', 'occurrences', 'sessions', 'users', 'assignee'] - : ['error', 'occurrences', 'sessions', 'users'], + columns: ['error', 'occurrences', 'sessions', 'users', 'assignee'], }), ], }), diff --git a/posthog/api/__init__.py b/posthog/api/__init__.py index 72342189f2764..9cea2d4defc6f 100644 --- a/posthog/api/__init__.py +++ b/posthog/api/__init__.py @@ -515,12 +515,12 @@ def register_grandfathered_environment_nested_viewset( ["team_id"], ) -# projects_router.register( -# r"error_tracking", -# error_tracking.ErrorTrackingGroupViewSet, -# "project_error_tracking", -# ["team_id"], -# ) +projects_router.register( + r"error_tracking/issue", + error_tracking.ErrorTrackingIssueViewSet, + "project_error_tracking_issue", + ["team_id"], +) projects_router.register( r"error_tracking/stack_frames", diff --git a/posthog/api/error_tracking.py b/posthog/api/error_tracking.py index 7f554880ff2cf..8519685ee2a3c 100644 --- a/posthog/api/error_tracking.py +++ b/posthog/api/error_tracking.py @@ -34,7 +34,7 @@ class Meta: fields = ["assignee", "status"] -class ErrorTrackingGroupViewSet(TeamAndOrgViewSetMixin, ForbidDestroyModel, viewsets.ModelViewSet): +class ErrorTrackingIssueViewSet(TeamAndOrgViewSetMixin, ForbidDestroyModel, viewsets.ModelViewSet): scope_object = "INTERNAL" queryset = ErrorTrackingIssue.objects.all() serializer_class = ErrorTrackingIssueSerializer