Coverage for src/paperap/models/ui_settings/queryset.py: 88%
8 statements
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-18 12:26 -0400
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-18 12:26 -0400
1"""
2----------------------------------------------------------------------------
4 METADATA:
6 File: queryset.py
7 Project: paperap
8 Created: 2025-03-04
9 Version: 0.0.5
10 Author: Jess Mann
11 Email: jess@jmann.me
12 Copyright (c) 2025 Jess Mann
14----------------------------------------------------------------------------
16 LAST MODIFIED:
18 2025-03-04 By Jess Mann
20"""
22from __future__ import annotations
24import logging
25from typing import TYPE_CHECKING, Any, Self
27from paperap.models.abstract.queryset import BaseQuerySet, StandardQuerySet
29if TYPE_CHECKING:
30 from paperap.models.ui_settings.model import UISettings
32logger = logging.getLogger(__name__)
35class UISettingsQuerySet(StandardQuerySet["UISettings"]):
36 """
37 A lazy-loaded, chainable query interface for Paperless NGX resources.
39 BaseQuerySet provides pagination, filtering, and caching functionality similar to Django's BaseQuerySet.
40 It's designed to be lazy - only fetching data when it's actually needed.
41 """
43 def has_permission(self, value: str) -> Self:
44 """
45 Filter UI settings by permissions.
47 Args:
48 value (str): The permissions to filter by
50 Returns:
51 UISettingsQuerySet: The filtered queryset
53 """
54 return self.filter(permissions__contains=value)