Added helper to filter queryset by privacy level

This commit is contained in:
Eliot Berriot 2018-03-18 21:30:53 +01:00
parent 2a3f43ecb1
commit 3e277aad4f
No known key found for this signature in database
GPG key ID: DD6965E2476E5C27
2 changed files with 30 additions and 0 deletions

View file

@ -12,3 +12,16 @@ PRIVACY_LEVEL_CHOICES = [
def get_privacy_field():
return models.CharField(
max_length=30, choices=PRIVACY_LEVEL_CHOICES, default='instance')
def privacy_level_query(user, lookup_field='privacy_level'):
if user.is_anonymous:
return models.Q(**{
lookup_field: 'everyone',
})
return models.Q(**{
'{}__in'.format(lookup_field): [
'me', 'followers', 'instance', 'everyone'
]
})