コード例 #1
0
 def test_assignment(self):
     issue_assigned.send(project=self.project,
                         group=self.group,
                         sender=type(self.project))
     feature_complete = FeatureAdoption.objects.get_by_slug(
         organization=self.organization, slug="assignment")
     assert feature_complete
コード例 #2
0
    def assign(self, group, assigned_to, acting_user=None):
        now = timezone.now()
        assignee, created = GroupAssignee.objects.get_or_create(
            group=group,
            defaults={
                'project': group.project,
                'user': assigned_to,
                'date_added': now,
            })

        if not created:
            affected = GroupAssignee.objects.filter(group=group, ).exclude(
                user=assigned_to, ).update(user=assigned_to, date_added=now)
        else:
            affected = True
            issue_assigned.send(project=group.project,
                                group=group,
                                sender=acting_user)

        if affected:
            activity = Activity.objects.create(project=group.project,
                                               group=group,
                                               type=Activity.ASSIGNED,
                                               user=acting_user,
                                               data={
                                                   'assignee':
                                                   six.text_type(
                                                       assigned_to.id),
                                                   'assigneeEmail':
                                                   assigned_to.email,
                                               })
            activity.send_notification()
コード例 #3
0
    def assign(self, group, assigned_to, acting_user=None):
        from sentry import features
        from sentry.models import User, Team, GroupSubscription, GroupSubscriptionReason

        GroupSubscription.objects.subscribe_actor(
            group=group,
            actor=assigned_to,
            reason=GroupSubscriptionReason.assigned,
        )

        if isinstance(assigned_to, User):
            assignee_type = 'user'
            other_type = 'team'
        elif isinstance(assigned_to, Team):
            assignee_type = 'team'
            other_type = 'user'
        else:
            raise AssertionError('Invalid type to assign to: %r' % type(assigned_to))

        now = timezone.now()
        assignee, created = GroupAssignee.objects.get_or_create(
            group=group,
            defaults={
                'project': group.project,
                assignee_type: assigned_to,
                'date_added': now,
            }
        )

        if not created:
            affected = GroupAssignee.objects.filter(
                group=group,
            ).exclude(**{
                assignee_type: assigned_to,
            }).update(**{
                assignee_type: assigned_to,
                other_type: None,
                'date_added': now,
            })
        else:
            affected = True
            issue_assigned.send(project=group.project, group=group, sender=acting_user)

        if affected:
            activity = Activity.objects.create(
                project=group.project,
                group=group,
                type=Activity.ASSIGNED,
                user=acting_user,
                data={
                    'assignee': six.text_type(assigned_to.id),
                    'assigneeEmail': getattr(assigned_to, 'email', None),
                    'assigneeType': assignee_type,
                },
            )
            activity.send_notification()
            # sync Sentry assignee to external issues
            if assignee_type == 'user' and features.has(
                    'organizations:internal-catchall', group.organization, actor=acting_user):
                sync_group_assignee_outbound(group, assigned_to.id, assign=True)
コード例 #4
0
    def assign(self, group, assigned_to, acting_user=None):
        now = timezone.now()
        assignee, created = GroupAssignee.objects.get_or_create(
            group=group,
            defaults={
                'project': group.project,
                'user': assigned_to,
                'date_added': now,
            }
        )

        if not created:
            affected = GroupAssignee.objects.filter(
                group=group,
            ).exclude(
                user=assigned_to,
            ).update(
                user=assigned_to, date_added=now
            )
        else:
            affected = True
            issue_assigned.send(project=group.project, group=group, sender=acting_user)

        if affected:
            activity = Activity.objects.create(
                project=group.project,
                group=group,
                type=Activity.ASSIGNED,
                user=acting_user,
                data={
                    'assignee': six.text_type(assigned_to.id),
                    'assigneeEmail': assigned_to.email,
                }
            )
            activity.send_notification()
コード例 #5
0
 def test_assignment(self):
     issue_assigned.send(
         project=self.project,
         group=self.group,
         user=self.user,
         sender='something')
     feature_complete = FeatureAdoption.objects.get_by_slug(
         organization=self.organization, slug="assignment"
     )
     assert feature_complete
コード例 #6
0
ファイル: groupassignee.py プロジェクト: hosmelq/sentry
    def assign(self, group, assigned_to, acting_user=None):
        from sentry.models import User, Team, GroupSubscription, GroupSubscriptionReason

        GroupSubscription.objects.subscribe_actor(
            group=group,
            actor=assigned_to,
            reason=GroupSubscriptionReason.assigned,
        )

        if isinstance(assigned_to, User):
            assignee_type = 'user'
            other_type = 'team'
        elif isinstance(assigned_to, Team):
            assignee_type = 'team'
            other_type = 'user'
        else:
            raise AssertionError('Invalid type to assign to: %r' % type(assigned_to))

        now = timezone.now()
        assignee, created = GroupAssignee.objects.get_or_create(
            group=group,
            defaults={
                'project': group.project,
                assignee_type: assigned_to,
                'date_added': now,
            }
        )

        if not created:
            affected = GroupAssignee.objects.filter(
                group=group,
            ).exclude(**{
                assignee_type: assigned_to,
            }).update(**{
                assignee_type: assigned_to,
                other_type: None,
                'date_added': now,
            })
        else:
            affected = True
            issue_assigned.send(project=group.project, group=group, sender=acting_user)

        if affected:
            activity = Activity.objects.create(
                project=group.project,
                group=group,
                type=Activity.ASSIGNED,
                user=acting_user,
                data={
                    'assignee': six.text_type(assigned_to.id),
                    'assigneeEmail': getattr(assigned_to, 'email', None),
                    'assigneeType': assignee_type,
                },
            )
            activity.send_notification()
コード例 #7
0
    def test_assignment(self):
        GroupAssignee.objects.create(group_id=self.group.id,
                                     user_id=self.user.id,
                                     project_id=self.project.id)

        issue_assigned.send(project=self.project,
                            group=self.group,
                            user=self.user,
                            sender="something")
        feature_complete = FeatureAdoption.objects.get_by_slug(
            organization=self.organization, slug="assignment")
        assert feature_complete
コード例 #8
0
    def assign(self, group, assigned_to, acting_user=None):
        from sentry.models import User, Team

        if isinstance(assigned_to, User):
            assignee_type = 'user'
            other_type = 'team'
        elif isinstance(assigned_to, Team):
            assignee_type = 'team'
            other_type = 'user'
        else:
            raise AssertionError('Invalid type to assign to: %r' %
                                 type(assigned_to))

        now = timezone.now()
        assignee, created = GroupAssignee.objects.get_or_create(
            group=group,
            defaults={
                'project': group.project,
                assignee_type: assigned_to,
                'date_added': now,
            })

        if not created:
            affected = GroupAssignee.objects.filter(
                group=group, ).exclude(**{
                    assignee_type: assigned_to,
                }).update(**{
                    assignee_type: assigned_to,
                    other_type: None,
                    'date_added': now,
                })
        else:
            affected = True
            issue_assigned.send(project=group.project,
                                group=group,
                                sender=acting_user)

        if affected:
            activity = Activity.objects.create(
                project=group.project,
                group=group,
                type=Activity.ASSIGNED,
                user=acting_user,
                data={
                    'assignee': six.text_type(assigned_to.id),
                    'assigneeEmail': getattr(assigned_to, 'email', None),
                    'assigneeType': assignee_type,
                },
            )
            activity.send_notification()
コード例 #9
0
ファイル: test_featureadoption.py プロジェクト: yaoqi/sentry
    def test_assignment(self):
        GroupAssignee.objects.create(
            group_id=self.group.id,
            user_id=self.user.id,
            project_id=self.project.id,
        )

        issue_assigned.send(
            project=self.project,
            group=self.group,
            user=self.user,
            sender='something')
        feature_complete = FeatureAdoption.objects.get_by_slug(
            organization=self.organization, slug="assignment"
        )
        assert feature_complete