diff --git a/src-ui/src/app/data/saved-view-icons.ts b/src-ui/src/app/data/saved-view-icons.ts index f700e8907..b1c1307c1 100644 --- a/src-ui/src/app/data/saved-view-icons.ts +++ b/src-ui/src/app/data/saved-view-icons.ts @@ -2,18 +2,27 @@ export const DEFAULT_SAVED_VIEW_ICON = 'funnel' export const SAVED_VIEW_ICONS = [ { id: 'archive', name: $localize`Archive`, icon: 'archive' }, + { id: 'bank', name: $localize`Bank`, icon: 'bank' }, + { id: 'basket', name: $localize`Basket`, icon: 'basket' }, { id: 'bell', name: $localize`Bell`, icon: 'bell' }, + { id: 'bookmark', name: $localize`Bookmark`, icon: 'bookmark' }, { id: 'boxes', name: $localize`Boxes`, icon: 'boxes' }, + { id: 'briefcase', name: $localize`Briefcase`, icon: 'briefcase' }, + { id: 'building', name: $localize`Building`, icon: 'building' }, + { id: 'calculator', name: $localize`Calculator`, icon: 'calculator' }, { id: 'calendar', name: $localize`Calendar`, icon: 'calendar' }, + { id: 'camera', name: $localize`Camera`, icon: 'camera' }, { id: 'card-checklist', name: $localize`Checklist`, icon: 'card-checklist', }, + { id: 'cash', name: $localize`Cash`, icon: 'cash' }, { id: 'chat-left-text', name: $localize`Chat`, icon: 'chat-left-text' }, { id: 'check-circle', name: $localize`Check`, icon: 'check-circle' }, { id: 'clipboard', name: $localize`Clipboard`, icon: 'clipboard' }, { id: 'clock-history', name: $localize`Clock`, icon: 'clock-history' }, + { id: 'credit-card', name: $localize`Credit card`, icon: 'credit-card' }, { id: 'download', name: $localize`Download`, icon: 'download' }, { id: 'envelope', name: $localize`Envelope`, icon: 'envelope' }, { @@ -32,23 +41,49 @@ export const SAVED_VIEW_ICONS = [ name: $localize`Locked file`, icon: 'file-earmark-lock', }, + { + id: 'file-earmark-medical', + name: $localize`Medical file`, + icon: 'file-earmark-medical', + }, + { + id: 'file-earmark-person', + name: $localize`Person file`, + icon: 'file-earmark-person', + }, + { + id: 'file-earmark-spreadsheet', + name: $localize`Spreadsheet`, + icon: 'file-earmark-spreadsheet', + }, { id: 'file-text', name: $localize`Text file`, icon: 'file-text' }, { id: 'files', name: $localize`Files`, icon: 'files' }, { id: 'folder', name: $localize`Folder`, icon: 'folder' }, { id: 'funnel', name: $localize`Filter`, icon: 'funnel' }, { id: 'gear', name: $localize`Gear`, icon: 'gear' }, + { id: 'globe2', name: $localize`Globe`, icon: 'globe2' }, { id: 'hash', name: $localize`Hash`, icon: 'hash' }, + { id: 'heart', name: $localize`Heart`, icon: 'heart' }, { id: 'house', name: $localize`House`, icon: 'house' }, + { id: 'inbox', name: $localize`Inbox`, icon: 'inbox' }, { id: 'journals', name: $localize`Journals`, icon: 'journals' }, { id: 'list-task', name: $localize`Task list`, icon: 'list-task' }, + { id: 'newspaper', name: $localize`Newspaper`, icon: 'newspaper' }, + { id: 'paperclip', name: $localize`Attachment`, icon: 'paperclip' }, { id: 'people', name: $localize`People`, icon: 'people' }, { id: 'person', name: $localize`Person`, icon: 'person' }, { id: 'printer', name: $localize`Printer`, icon: 'printer' }, + { id: 'receipt', name: $localize`Receipt`, icon: 'receipt' }, + { id: 'safe', name: $localize`Safe`, icon: 'safe' }, { id: 'search', name: $localize`Search`, icon: 'search' }, { id: 'send', name: $localize`Send`, icon: 'send' }, + { id: 'shop', name: $localize`Shop`, icon: 'shop' }, { id: 'stack', name: $localize`Stack`, icon: 'stack' }, { id: 'stars', name: $localize`Stars`, icon: 'stars' }, { id: 'tag', name: $localize`Tag`, icon: 'tag' }, { id: 'tags', name: $localize`Tags`, icon: 'tags' }, + { id: 'telephone', name: $localize`Telephone`, icon: 'telephone' }, + { id: 'truck', name: $localize`Truck`, icon: 'truck' }, { id: 'upc-scan', name: $localize`Barcode`, icon: 'upc-scan' }, + { id: 'wallet2', name: $localize`Wallet`, icon: 'wallet2' }, ] diff --git a/src-ui/src/main.ts b/src-ui/src/main.ts index 60c23ed59..886516e5e 100644 --- a/src-ui/src/main.ts +++ b/src-ui/src/main.ts @@ -35,19 +35,27 @@ import { arrowRightShort, arrowUpRight, asterisk, + bank, + basket, bell, bodyText, + bookmark, boxArrowUp, boxArrowUpRight, boxes, braces, + briefcase, + building, + calculator, calendar, calendarEvent, calendarEventFill, + camera, cardChecklist, cardHeading, caretDown, caretUp, + cash, chatLeftText, chatSquareDots, check, @@ -65,6 +73,7 @@ import { clipboardCheckFill, clipboardFill, clockHistory, + creditCard, dash, dashCircle, diagram3, @@ -83,9 +92,12 @@ import { fileEarmarkDiff, fileEarmarkFill, fileEarmarkLock, + fileEarmarkMedical, fileEarmarkMinus, + fileEarmarkPerson, fileEarmarkPlus, fileEarmarkRichtext, + fileEarmarkSpreadsheet, fileText, files, filter, @@ -93,12 +105,15 @@ import { folderFill, funnel, gear, + globe2, google, grid, gripVertical, hash, hddStack, + heart, house, + inbox, infoCircle, journals, link, @@ -106,7 +121,9 @@ import { listTask, listUl, microsoft, + newspaper, nodePlus, + paperclip, pencil, people, peopleFill, @@ -121,9 +138,12 @@ import { plusCircle, printer, questionCircle, + receipt, + safe, scissors, search, send, + shop, slashCircle, sliders2Vertical, sortAlphaDown, @@ -133,14 +153,17 @@ import { tag, tagFill, tags, + telephone, textIndentLeft, textLeft, threeDots, threeDotsVertical, trash, + truck, uiRadios, unlock, upcScan, + wallet2, windowStack, x, xCircle, @@ -258,15 +281,22 @@ const icons = { arrowRightShort, arrowUpRight, asterisk, + bank, + basket, bell, braces, bodyText, + bookmark, boxArrowUp, boxArrowUpRight, boxes, + briefcase, + building, + calculator, calendar, calendarEvent, calendarEventFill, + camera, cardChecklist, cardHeading, caretDown, @@ -288,6 +318,8 @@ const icons = { clipboardCheckFill, clipboardFill, clockHistory, + cash, + creditCard, dash, dashCircle, diagram3, @@ -306,9 +338,12 @@ const icons = { fileEarmarkDiff, fileEarmarkFill, fileEarmarkLock, + fileEarmarkMedical, fileEarmarkMinus, + fileEarmarkPerson, fileEarmarkPlus, fileEarmarkRichtext, + fileEarmarkSpreadsheet, files, fileText, filter, @@ -316,12 +351,15 @@ const icons = { folderFill, funnel, gear, + globe2, google, grid, gripVertical, hash, hddStack, + heart, house, + inbox, infoCircle, journals, link, @@ -329,8 +367,10 @@ const icons = { listTask, listUl, microsoft, + newspaper, nodePlus, pencil, + paperclip, people, peopleFill, person, @@ -344,10 +384,13 @@ const icons = { plusCircle, printer, questionCircle, + receipt, + safe, scissors, search, send, slashCircle, + shop, sliders2Vertical, sortAlphaDown, sortAlphaUpAlt, @@ -358,12 +401,15 @@ const icons = { tags, textIndentLeft, textLeft, + telephone, threeDots, threeDotsVertical, trash, + truck, uiRadios, unlock, upcScan, + wallet2, windowStack, x, xCircle, diff --git a/src/documents/migrations/0023_savedview_icon.py b/src/documents/migrations/0023_savedview_icon.py index 6d32d2e5f..0c055d388 100644 --- a/src/documents/migrations/0023_savedview_icon.py +++ b/src/documents/migrations/0023_savedview_icon.py @@ -14,39 +14,62 @@ class Migration(migrations.Migration): field=models.CharField( choices=[ ("archive", "Archive"), + ("bank", "Bank"), + ("basket", "Basket"), ("bell", "Bell"), + ("bookmark", "Bookmark"), ("boxes", "Boxes"), + ("briefcase", "Briefcase"), + ("building", "Building"), + ("calculator", "Calculator"), ("calendar", "Calendar"), + ("camera", "Camera"), ("card-checklist", "Checklist"), + ("cash", "Cash"), ("chat-left-text", "Chat"), ("check-circle", "Check"), ("clipboard", "Clipboard"), ("clock-history", "Clock"), + ("credit-card", "Credit card"), ("download", "Download"), ("envelope", "Envelope"), ("exclamation-triangle", "Warning"), ("file-earmark", "File"), ("file-earmark-check", "Checked file"), ("file-earmark-lock", "Locked file"), + ("file-earmark-medical", "Medical file"), + ("file-earmark-person", "Person file"), + ("file-earmark-spreadsheet", "Spreadsheet"), ("file-text", "Text file"), ("files", "Files"), ("folder", "Folder"), ("funnel", "Filter"), ("gear", "Gear"), + ("globe2", "Globe"), ("hash", "Hash"), + ("heart", "Heart"), ("house", "House"), + ("inbox", "Inbox"), ("journals", "Journals"), ("list-task", "Task list"), + ("newspaper", "Newspaper"), + ("paperclip", "Attachment"), ("people", "People"), ("person", "Person"), ("printer", "Printer"), + ("receipt", "Receipt"), + ("safe", "Safe"), ("search", "Search"), ("send", "Send"), + ("shop", "Shop"), ("stack", "Stack"), ("stars", "Stars"), ("tag", "Tag"), ("tags", "Tags"), + ("telephone", "Telephone"), + ("truck", "Truck"), ("upc-scan", "Barcode"), + ("wallet2", "Wallet"), ], default="funnel", max_length=64, diff --git a/src/documents/models.py b/src/documents/models.py index 7de60e8fa..e11a64d0f 100644 --- a/src/documents/models.py +++ b/src/documents/models.py @@ -521,39 +521,65 @@ class Document(SoftDeleteModel, ModelWithOwner): # type: ignore[django-manager- class SavedView(ModelWithOwner): class Icon(models.TextChoices): ARCHIVE = ("archive", _("Archive")) + BANK = ("bank", _("Bank")) + BASKET = ("basket", _("Basket")) BELL = ("bell", _("Bell")) + BOOKMARK = ("bookmark", _("Bookmark")) BOXES = ("boxes", _("Boxes")) + BRIEFCASE = ("briefcase", _("Briefcase")) + BUILDING = ("building", _("Building")) + CALCULATOR = ("calculator", _("Calculator")) CALENDAR = ("calendar", _("Calendar")) + CAMERA = ("camera", _("Camera")) CARD_CHECKLIST = ("card-checklist", _("Checklist")) + CASH = ("cash", _("Cash")) CHAT_LEFT_TEXT = ("chat-left-text", _("Chat")) CHECK_CIRCLE = ("check-circle", _("Check")) CLIPBOARD = ("clipboard", _("Clipboard")) CLOCK_HISTORY = ("clock-history", _("Clock")) + CREDIT_CARD = ("credit-card", _("Credit card")) DOWNLOAD = ("download", _("Download")) ENVELOPE = ("envelope", _("Envelope")) EXCLAMATION_TRIANGLE = ("exclamation-triangle", _("Warning")) FILE_EARMARK = ("file-earmark", _("File")) FILE_EARMARK_CHECK = ("file-earmark-check", _("Checked file")) FILE_EARMARK_LOCK = ("file-earmark-lock", _("Locked file")) + FILE_EARMARK_MEDICAL = ("file-earmark-medical", _("Medical file")) + FILE_EARMARK_PERSON = ("file-earmark-person", _("Person file")) + FILE_EARMARK_SPREADSHEET = ( + "file-earmark-spreadsheet", + _("Spreadsheet"), + ) FILE_TEXT = ("file-text", _("Text file")) FILES = ("files", _("Files")) FOLDER = ("folder", _("Folder")) FUNNEL = ("funnel", _("Filter")) GEAR = ("gear", _("Gear")) + GLOBE = ("globe2", _("Globe")) HASH = ("hash", _("Hash")) + HEART = ("heart", _("Heart")) HOUSE = ("house", _("House")) + INBOX = ("inbox", _("Inbox")) JOURNALS = ("journals", _("Journals")) LIST_TASK = ("list-task", _("Task list")) + NEWSPAPER = ("newspaper", _("Newspaper")) + PAPERCLIP = ("paperclip", _("Attachment")) PEOPLE = ("people", _("People")) PERSON = ("person", _("Person")) PRINTER = ("printer", _("Printer")) + RECEIPT = ("receipt", _("Receipt")) + SAFE = ("safe", _("Safe")) SEARCH = ("search", _("Search")) SEND = ("send", _("Send")) + SHOP = ("shop", _("Shop")) STACK = ("stack", _("Stack")) STARS = ("stars", _("Stars")) TAG = ("tag", _("Tag")) TAGS = ("tags", _("Tags")) + TELEPHONE = ("telephone", _("Telephone")) + TRUCK = ("truck", _("Truck")) UPC_SCAN = ("upc-scan", _("Barcode")) + WALLET = ("wallet2", _("Wallet")) class DisplayMode(models.TextChoices): TABLE = ("table", _("Table")) diff --git a/src/documents/tests/test_api_documents.py b/src/documents/tests/test_api_documents.py index e4226b28e..e77a0fa8f 100644 --- a/src/documents/tests/test_api_documents.py +++ b/src/documents/tests/test_api_documents.py @@ -2886,14 +2886,14 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): response = self.client.patch( f"/api/saved_views/{v1.id}/", - {"sort_reverse": True, "icon": SavedView.Icon.ARCHIVE}, + {"sort_reverse": True, "icon": SavedView.Icon.RECEIPT}, format="json", ) v1 = SavedView.objects.get(id=v1.id) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertTrue(v1.sort_reverse) - self.assertEqual(v1.icon, SavedView.Icon.ARCHIVE) + self.assertEqual(v1.icon, SavedView.Icon.RECEIPT) self.assertEqual(v1.filter_rules.count(), 1) view["filter_rules"] = [{"rule_type": 12, "value": "secret"}]