def insert_actors_into_cohort_by_query(cohort: Cohort, query: str, params: Dict[str, Any]): try: sync_execute( INSERT_COHORT_ALL_PEOPLE_THROUGH_PERSON_ID.format( cohort_table=PERSON_STATIC_COHORT_TABLE, query=query), { "cohort_id": cohort.pk, "_timestamp": datetime.now(), "team_id": cohort.team.pk, **params }, ) cohort.is_calculating = False cohort.last_calculation = timezone.now() cohort.errors_calculating = 0 cohort.save() except Exception as err: if settings.DEBUG: raise err cohort.is_calculating = False cohort.errors_calculating = F("errors_calculating") + 1 cohort.save() capture_exception(err)
def update(self, cohort: Cohort, validated_data: Dict, *args: Any, **kwargs: Any) -> Cohort: # type: ignore request = self.context["request"] cohort.name = validated_data.get("name", cohort.name) cohort.groups = validated_data.get("groups", cohort.groups) deleted_state = validated_data.get("deleted", None) is_deletion_change = deleted_state is not None if is_deletion_change: cohort.deleted = deleted_state if not cohort.is_static and not is_deletion_change: cohort.is_calculating = True cohort.save() if not deleted_state: if cohort.is_static: self._handle_static(cohort, request) else: calculate_cohort.delay(cohort_id=cohort.pk) calculate_cohort_ch.delay(cohort_id=cohort.pk) posthoganalytics.capture( request.user.distinct_id, "cohort updated", { **cohort.get_analytics_metadata(), "updated_by_creator": request.user == cohort.created_by }, ) return cohort
def update(self, cohort: Cohort, validated_data: Dict, *args: Any, **kwargs: Any) -> Cohort: # type: ignore cohort.name = validated_data.get("name", cohort.name) cohort.groups = validated_data.get("groups", cohort.groups) cohort.deleted = validated_data.get("deleted", cohort.deleted) cohort.is_calculating = True cohort.save() calculate_cohort.delay(cohort_id=cohort.pk) return cohort
def update(self, cohort: Cohort, validated_data: Dict, *args: Any, **kwargs: Any) -> Cohort: # type: ignore request = self.context["request"] cohort.name = validated_data.get("name", cohort.name) cohort.groups = validated_data.get("groups", cohort.groups) cohort.deleted = validated_data.get("deleted", cohort.deleted) cohort.is_calculating = True cohort.save() posthoganalytics.capture( request.user.distinct_id, "cohort updated", { **cohort.get_analytics_metadata(), "updated_by_creator": request.user == cohort.created_by }, ) calculate_cohort.delay(cohort_id=cohort.pk) return cohort
def update(self, cohort: Cohort, validated_data: Dict, *args: Any, **kwargs: Any) -> Cohort: # type: ignore request = self.context["request"] cohort.name = validated_data.get("name", cohort.name) cohort.description = validated_data.get("description", cohort.description) cohort.groups = validated_data.get("groups", cohort.groups) cohort.is_static = validated_data.get("is_static", cohort.is_static) deleted_state = validated_data.get("deleted", None) is_deletion_change = deleted_state is not None and cohort.deleted != deleted_state if is_deletion_change: cohort.deleted = deleted_state if not cohort.is_static and not is_deletion_change: cohort.is_calculating = True cohort.save() if not deleted_state: if cohort.is_static: # You can't update a static cohort using the trend/stickiness thing if request.FILES.get("csv"): self._calculate_static_by_csv(request.FILES["csv"], cohort) else: # Increment based on pending versions pending_version = get_and_update_pending_version(cohort) calculate_cohort_ch.delay(cohort.id, pending_version) report_user_action( request.user, "cohort updated", { **cohort.get_analytics_metadata(), "updated_by_creator": request.user == cohort.created_by }, ) return cohort
def update(self, cohort: Cohort, validated_data: Dict, *args: Any, **kwargs: Any) -> Cohort: # type: ignore request = self.context["request"] cohort.name = validated_data.get("name", cohort.name) cohort.description = validated_data.get("description", cohort.description) cohort.groups = validated_data.get("groups", cohort.groups) cohort.is_static = validated_data.get("is_static", cohort.is_static) deleted_state = validated_data.get("deleted", None) is_deletion_change = deleted_state is not None and cohort.deleted != deleted_state if is_deletion_change: cohort.deleted = deleted_state if not cohort.is_static and not is_deletion_change: cohort.is_calculating = True cohort.save() if not deleted_state: if cohort.is_static: # You can't update a static cohort using the trend/stickiness thing if request.FILES.get("csv"): self._calculate_static_by_csv(request.FILES["csv"], cohort) else: if is_clickhouse_enabled(): calculate_cohort_ch.delay(cohort.id) else: calculate_cohort.delay(cohort.id) posthoganalytics.capture( request.user.distinct_id, "cohort updated", { **cohort.get_analytics_metadata(), "updated_by_creator": request.user == cohort.created_by }, ) return cohort