diff --git a/djangoldp_circle/models.py b/djangoldp_circle/models.py index 777b28a9bdd447b58ef01d9a778d037894bc97ee..fa4351f18a3180cb4dbda75178e2842de831c8f4 100644 --- a/djangoldp_circle/models.py +++ b/djangoldp_circle/models.py @@ -2,7 +2,7 @@ import random import string from django.conf import settings from django.db import models -from django.db.models.signals import pre_save +from django.db.models.signals import pre_save, post_save from django.dispatch import receiver from djangoldp.models import Model @@ -51,6 +51,7 @@ class CircleMember(Model): owner_perms = ["view", "add", "delete"] auto_author = "user" owner_field = "user" + unique_together = ['user', 'circle'] @receiver(pre_save, sender=Circle) @@ -66,3 +67,8 @@ def set_jabberid(sender, instance, **kwargs): settings.JABBER_DEFAULT_HOST ) instance.jabberRoom = True + +@receiver(post_save, sender=Circle) +def set_ower_as_member(instance, created, **kwargs): + if(created): + CircleMember.objects.create(user=instance.owner, circle=instance) diff --git a/djangoldp_circle/views.py b/djangoldp_circle/views.py index 8a77f8374435583ed62350ba251820283a8d8071..1df5a46531e83e2b63775dcc3c118e9fa7f68479 100644 --- a/djangoldp_circle/views.py +++ b/djangoldp_circle/views.py @@ -7,4 +7,6 @@ class CirclesJoinableViewset(LDPViewSet): def get_queryset(self): return super().get_queryset() \ - .exclude(team__id=self.request.user.id) + .exclude(team__id=self.request.user.id) \ + .exclude(status="Private") \ + .exclude(status="Archived")