Coverage for src/paperap/models/saved_view/model.py: 100%

22 statements  

« prev     ^ index     » next       coverage.py v7.6.12, created at 2025-03-22 16:02 -0400

1""" 

2---------------------------------------------------------------------------- 

3 

4 METADATA: 

5 

6 File: saved_view.py 

7 Project: paperap 

8 Created: 2025-03-04 

9 Version: 0.0.9 

10 Author: Jess Mann 

11 Email: jess@jmann.me 

12 Copyright (c) 2025 Jess Mann 

13 

14---------------------------------------------------------------------------- 

15 

16 LAST MODIFIED: 

17 

18 2025-03-04 By Jess Mann 

19 

20""" 

21 

22from __future__ import annotations 

23 

24from typing import Any 

25 

26from pydantic import Field 

27 

28from paperap.const import SavedViewDisplayFieldType, SavedViewDisplayModeType, SavedViewFilterRuleType 

29from paperap.models.abstract.model import StandardModel 

30from paperap.models.saved_view.queryset import SavedViewQuerySet 

31 

32DEFAULT_DISPLAY_FIELDS = [ 

33 SavedViewDisplayFieldType.TITLE, 

34 SavedViewDisplayFieldType.CREATED, 

35 SavedViewDisplayFieldType.TAGS, 

36 SavedViewDisplayFieldType.CORRESPONDENT, 

37 SavedViewDisplayFieldType.DOCUMENT_TYPE, 

38 SavedViewDisplayFieldType.STORAGE_PATH, 

39 SavedViewDisplayFieldType.NOTES, 

40 SavedViewDisplayFieldType.OWNER, 

41 SavedViewDisplayFieldType.SHARED, 

42 SavedViewDisplayFieldType.PAGE_COUNT, 

43] 

44 

45 

46class SavedView(StandardModel): 

47 """ 

48 Represents a saved view in Paperless-NgX. 

49 """ 

50 

51 name: str 

52 show_on_dashboard: bool | None = None 

53 show_in_sidebar: bool | None = None 

54 sort_field: str | None = None 

55 sort_reverse: bool | None = None 

56 filter_rules: list[SavedViewFilterRuleType] = Field(default_factory=list) 

57 page_size: int | None = None 

58 display_mode: SavedViewDisplayModeType | None = None 

59 display_fields: list[SavedViewDisplayFieldType] = Field(default_factory=list) 

60 owner: int | None = None 

61 user_can_change: bool | None = None 

62 

63 class Meta(StandardModel.Meta): 

64 # Fields that should not be modified 

65 read_only_fields = {"owner", "user_can_change"} 

66 queryset = SavedViewQuerySet