diff --git a/compensation/filters.py b/compensation/filters.py index 9d0f3b32..ab7a5fe7 100644 --- a/compensation/filters.py +++ b/compensation/filters.py @@ -18,6 +18,24 @@ class CompensationTableFilter(InterventionTableFilter): """ + def _filter_show_all(self, queryset, name, value) -> QuerySet: + """ Filters queryset depending on value of 'show_all' setting + + Args: + queryset (): + name (): + value (): + + Returns: + + """ + if not value: + return queryset.filter( + intervention__users__in=[self.user], # requesting user has access + ) + else: + return queryset + def _filter_show_recorded(self, queryset, name, value) -> QuerySet: """ Filters queryset depending on value of 'show_recorded' setting diff --git a/compensation/models.py b/compensation/models.py index d7625d1e..f83e598e 100644 --- a/compensation/models.py +++ b/compensation/models.py @@ -100,9 +100,6 @@ class Compensation(BaseObject): related_name='compensations' ) - # Users having access on this object - users = models.ManyToManyField(User) - @staticmethod def _generate_new_identifier() -> str: """ Generates a new identifier for the intervention object @@ -153,3 +150,6 @@ class EcoAccount(Compensation): with some kind of currency. From this account one is able to 'withdraw' currency for current projects. """ handler = models.CharField(max_length=500, null=True, blank=True, help_text="Who is responsible for handling the actions") + + # Users having access on this object + users = models.ManyToManyField(User)