From cb90e7640586fb5ce172205a4ecf18428e15580f Mon Sep 17 00:00:00 2001 From: Erwan Rouchet <rouchet@teklia.com> Date: Tue, 23 Jun 2020 10:57:01 +0000 Subject: [PATCH] Include authorized_users in all corpora endpoints --- arkindex/documents/serializers/elements.py | 8 +++++++- arkindex/documents/tests/test_corpus.py | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/arkindex/documents/serializers/elements.py b/arkindex/documents/serializers/elements.py index 970d48e7d6..784075ff14 100644 --- a/arkindex/documents/serializers/elements.py +++ b/arkindex/documents/serializers/elements.py @@ -53,7 +53,7 @@ class CorpusSerializer(serializers.ModelSerializer): """ rights = serializers.SerializerMethodField(read_only=True) types = ElementTypeSerializer(many=True, read_only=True) - authorized_users = serializers.IntegerField(read_only=True) + authorized_users = serializers.SerializerMethodField(read_only=True) class Meta: model = Corpus @@ -71,6 +71,12 @@ class CorpusSerializer(serializers.ModelSerializer): def get_rights(self, corpus): return map(lambda x: x.value, corpus.get_acl_rights(self.context['request'].user)) + def get_authorized_users(self, corpus): + count = getattr(corpus, 'authorized_users', None) + if count is None: + count = corpus.corpus_right.count() + return count + def create(self, validated_data): corpus = Corpus.objects.create(**validated_data) corpus.corpus_right.create( diff --git a/arkindex/documents/tests/test_corpus.py b/arkindex/documents/tests/test_corpus.py index a0a1bd8412..6824e3c33d 100644 --- a/arkindex/documents/tests/test_corpus.py +++ b/arkindex/documents/tests/test_corpus.py @@ -354,6 +354,7 @@ class TestCorpus(FixtureAPITestCase): 'public': True, 'rights': ['read'], 'created': DB_CREATED, + 'authorized_users': 1, }) def test_retrieve(self): @@ -368,6 +369,7 @@ class TestCorpus(FixtureAPITestCase): 'rights': ['read', 'write'], 'types': [], 'created': str(FAKE_NOW).replace(' ', 'T') + 'Z', + 'authorized_users': 1, }) def test_retrieve_requires_login(self): -- GitLab