Coverage for src / mesh / views / model_proxy / review_proxy.py: 62%

21 statements  

« prev     ^ index     » next       coverage.py v7.13.1, created at 2026-03-10 09:11 +0000

1from __future__ import annotations 

2 

3from ...models.review_models import Review 

4from ...views import model_proxy 

5from .model_proxy import RoleModelProxy 

6 

7 

8class ReviewProxy(RoleModelProxy): 

9 """ 

10 Proxy for the `Review` model with restricted data according to the user role. 

11 """ 

12 

13 model = Review 

14 _instance: Review 

15 

16 @property 

17 def reviewer(self): 

18 if self._role_handler.check_rights("can_access_review_author", self._instance): 

19 return str(self._instance.reviewer) 

20 

21 return "**** ****" 

22 

23 @property 

24 def version(self): 

25 if not self._role_handler.check_rights("can_access_version", self._instance.version): 

26 return None 

27 

28 return model_proxy.submission_version_proxy.SubmissionVersionProxy( 

29 self._instance.version, self._role_handler 

30 ) 

31 

32 @property 

33 def additional_files(self): 

34 files = self._instance.additional_files.all() 

35 return [f for f in files if self._role_handler.check_rights("can_access_review_file", f)]