Ejemplo n.º 1
0
def send_group_detail(group, user=None):
    qs = ChannelSubscription.objects.recent().distinct()
    if user:
        qs = qs.filter(user=user)
    else:
        qs = qs.filter(user__in=group.members.all())

    for subscription in qs:
        payload = GroupDetailSerializer(group, context={'request': MockRequest(user=subscription.user)}).data
        send_in_channel(subscription.reply_channel, topic='groups:group_detail', payload=payload)
Ejemplo n.º 2
0
 def test_detail(self):
     serializer = GroupDetailSerializer(self.group)
     self.assertEqual(len(serializer.data.keys()), 23)
     self.assertEqual(serializer.data['id'], self.group.id)
     self.assertEqual(serializer.data['name'], self.group.name)
     self.assertEqual(serializer.data['description'], self.group.description)
     self.assertEqual(sorted(serializer.data['members']), sorted([_.id for _ in self.group.members.all()]))
     self.assertEqual(
         sorted(list(serializer.data['memberships'].keys())), sorted([_.id for _ in self.group.members.all()])
     )
Ejemplo n.º 3
0
 def test_detail(self):
     serializer = GroupDetailSerializer(
         self.group, context={'request': MockRequest(user=self.members[0])})
     self.assertEqual(len(serializer.data.keys()), 25)
     self.assertEqual(serializer.data['id'], self.group.id)
     self.assertEqual(serializer.data['name'], self.group.name)
     self.assertEqual(serializer.data['description'],
                      self.group.description)
     self.assertEqual(sorted(serializer.data['members']),
                      sorted([_.id for _ in self.group.members.all()]))
     self.assertEqual(sorted(list(serializer.data['memberships'].keys())),
                      sorted([_.id for _ in self.group.members.all()]))
Ejemplo n.º 4
0
def send_group_updates(sender, instance, **kwargs):
    group = instance
    detail_payload = GroupDetailSerializer(group).data
    for subscription in ChannelSubscription.objects.recent().filter(
            user__in=group.members.all()).distinct():
        send_in_channel(subscription.reply_channel,
                        topic='groups:group_detail',
                        payload=detail_payload)

    preview_payload = GroupPreviewSerializer(group).data
    for subscription in ChannelSubscription.objects.recent():
        send_in_channel(subscription.reply_channel,
                        topic='groups:group_preview',
                        payload=preview_payload)