Пример #1
0
 def setUp(self):
     self.user = UserFactory()
     self.client = APIClient()
     self.client.force_authenticate(user=self.user)
     self.list_url = reverse('api:activity-list')
     # create a bunch of action objects of various types
     self.team = TeamFactory()
     self.team_member = TeamMemberFactory(user=self.user, team=self.team)
     self.video = VideoFactory()
     TeamVideoFactory(video=self.video, team=self.team)
     self.user2 = UserFactory()
     Action.create_video_handler(self.video, self.user)
     self.video.title = 'new-title'
     self.video.save()
     Action.change_title_handler(self.video, self.user)
     # creating comment will automatically create the action object
     Comment(content_object=self.video,
             user=self.user,
             content="Test Comment").save()
     v = pipeline.add_subtitles(self.video, 'en', None, author=self.user)
     Action.create_caption_handler(v, datetime.now())
     Action.create_approved_video_handler(v, self.user2)
     Action.create_rejected_video_handler(v, self.user2)
     Action.create_new_member_handler(self.team_member)
     Action.create_member_left_handler(self.team, self.user)
     self.action_qs = Action.objects.for_user(self.user)
Пример #2
0
def team_member_leave(team_pk, user_pk):
    if getattr(settings, "MESSAGES_DISABLED", False):
        return
    from messages.models import Message
    from teams.models import TeamMember, Team
    user = User.objects.get(pk=user_pk)
    team = Team.objects.get(pk=team_pk)
    if not team_sends_notification(team,'block_team_member_leave_message') or not user.is_active:
        return False
    from videos.models import Action
    # the feed item should appear on the timeline for all team members
    # as a team might have thousands of members, this one item has
    # to show up on all of them
    Action.create_member_left_handler(team, user)
    # notify  admins and owners through messages
    notifiable = TeamMember.objects.filter(team=team, user__is_active=True,
       role__in=[TeamMember.ROLE_ADMIN, TeamMember.ROLE_OWNER])
    subject = fmt(
        ugettext(u"%(user)s has left the %(team)s team"),
        user=user, team=team)
    for m in notifiable:
        context = {
            "parting_member": user,
            "team":team,
            "user":m.user,
            "url_base":get_url_base(),
        }
        body = render_to_string("messages/team-member-left.txt",context)
        if m.user.notify_by_message:
            msg = Message()
            msg.message_type = 'S'
            msg.subject = subject
            msg.content = body
            msg.user = m.user
            msg.object = team
            msg.save()
        send_templated_email(m.user, subject, "messages/email/team-member-left.html", context)


    context = {
        "team":team,
        "user":user,
        "url_base":get_url_base(),
    }
    subject = fmt(ugettext("You've left the %(team)s team!"), team=team)
    if user.notify_by_message:
        template_name = "messages/team-member-you-have-left.txt"
        msg = Message()
        msg.message_type = 'S'
        msg.subject = subject
        msg.content = render_to_string(template_name,context)
        msg.user = user
        msg.object = team
        msg.save()
    template_name = "messages/email/team-member-you-have-left.html"
    send_templated_email(user, subject, template_name, context)