Ejemplo n.º 1
0
 def get_activity(self, membership):
     return Activity(verb=GroupJoinVerb,
                     actor=membership.user,
                     target=membership.abakus_group,
                     object=membership,
                     time=membership.created_at,
                     extra_context={})
Ejemplo n.º 2
0
 def get_activity(self, registration):
     return Activity(verb=EventRegisterVerb,
                     actor=registration.user,
                     target=registration.event,
                     object=registration,
                     time=registration.created_at,
                     extra_context={})
Ejemplo n.º 3
0
 def get_activity(self, event):
     return Activity(
         actor=event.company,
         verb=EventCreateVerb,
         object=event,
         time=event.created_at,
         extra_context={"title": event.title},
     )
Ejemplo n.º 4
0
 def get_activity(self, meeting_invitation):
     return Activity(
         actor=meeting_invitation.created_by,
         verb=MeetingInvitationVerb,
         object=meeting_invitation,
         target=meeting_invitation.user,
         time=meeting_invitation.created_at,
     )
Ejemplo n.º 5
0
 def get_activity(self, comment, reply=False):
     return Activity(
         actor=comment.created_by,
         verb=CommentReplyVerb if reply else CommentVerb,
         object=comment,
         target=comment.content_object,
         time=comment.created_at,
         extra_context={"content": comment.text},
     )
Ejemplo n.º 6
0
 def get_activity(self, penalty):
     return Activity(actor=penalty.source_event,
                     verb=PenaltyVerb,
                     object=penalty,
                     target=penalty.user,
                     time=penalty.created_at,
                     extra_context={
                         'reason': penalty.reason,
                         'weight': penalty.weight,
                     })
Ejemplo n.º 7
0
    def handle_bump(self, registration):
        activity = Activity(actor=registration.event,
                            verb=RegistrationBumpVerb,
                            object=registration,
                            target=registration.user)
        self.manager.add_activity(activity, [registration.user_id],
                                  [NotificationFeed])

        # Send Notification
        notification = EventBumpNotification(registration.user,
                                             event=registration.event)
        notification.notify()
Ejemplo n.º 8
0
    def handle_admin_registration(self, registration):
        activity = Activity(actor=registration.event,
                            verb=AdminRegistrationVerb,
                            object=registration,
                            target=registration.user)
        self.manager.add_activity(activity, [registration.user_id],
                                  [NotificationFeed])

        # Send Notification
        notification = EventAdminRegistrationNotification(
            registration.user,
            event=registration.event,
            reason=registration.admin_registration_reason)
        notification.notify()
Ejemplo n.º 9
0
    def test_meeting_invitation_activity(self):
        meeting = Meeting.objects.get(id=1)
        meeting2 = Meeting.objects.get(id=2)
        user = User.objects.get(id=1)
        meeting_invitation, _ = meeting.invite_user(user)
        meeting_invitation2, _ = meeting2.invite_user(user)

        # Add first activity
        activity = Activity(
            actor=user,
            verb=MeetingInvitationVerb,
            object=meeting_invitation,
            target=meeting_invitation.user,
            time=meeting_invitation.created_at,
        )
        self.manager.add_activity(activity, [user.id], [NotificationFeed])
        self.assertEqual(1, NotificationFeed.objects.count())

        # Add second activity in the same group
        activity1 = Activity(
            actor=user,
            verb=MeetingInvitationVerb,
            object=meeting_invitation2,
            target=meeting_invitation.user,
            time=meeting_invitation.created_at,
        )
        self.manager.add_activity(activity1, [user.id], [NotificationFeed])
        self.assertEqual(1, NotificationFeed.objects.count())

        # Remove fist activity
        self.manager.remove_activity(activity, [], [NotificationFeed])
        self.assertEqual(1, NotificationFeed.objects.count())

        # Remove the second activity and mage sure the aggregated activity is removed
        self.manager.remove_activity(activity1, [], [NotificationFeed])
        self.assertEqual(0, NotificationFeed.objects.count())
Ejemplo n.º 10
0
    def handle_sent(self, instance):
        """
        A restricted mail is successfully processed by the system.
        """
        if not instance.created_by:
            return

        activity = Activity(
            actor=instance.created_by, verb=RestrictedMailSent, object=instance, time=instance.used,
            extra_context={}
        )
        self.manager.add_activity(activity, [instance.created_by.pk], [NotificationFeed])

        # Send notification
        notification = RestrictedMailSentNotification(instance.created_by)
        notification.notify()
Ejemplo n.º 11
0
    def handle_payment_overdue(self, registration):
        """
        Notify about payment overdue, called from a celery task run by beat.
        """
        activity = Activity(
            actor=registration.event,
            verb=PaymentOverdueVerb,
            object=registration,
            target=registration.user,
        )
        self.manager.add_activity(activity, [registration.user_id],
                                  [NotificationFeed])

        # Send notification
        notification = EventPaymentOverdueNotification(
            registration.user, event=registration.event)
        notification.notify()
Ejemplo n.º 12
0
    def handle_send(self, announcement):
        if not announcement.created_by:
            return

        activity = Activity(actor=announcement.created_by,
                            verb=AnnouncementVerb,
                            object=announcement,
                            time=announcement.created_at,
                            extra_context={})
        recipients = announcement.lookup_recipients()
        self.manager.add_activity(activity,
                                  [recipient.pk for recipient in recipients],
                                  [NotificationFeed, PersonalFeed])

        # Send notifications
        for recipient in recipients:
            notification = AnnouncementNotification(recipient,
                                                    announcement=announcement)
            notification.notify()