From cc36bfb8e45230b628d42b05c9ab17cc9dc81d87 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sun, 14 Jun 2026 00:48:05 +0000 Subject: [PATCH] Render Note instance in forms --- src/frontend/lib/enums/ModelInformation.tsx | 7 +++++++ src/frontend/lib/enums/ModelType.tsx | 3 ++- src/frontend/src/components/render/Instance.tsx | 4 +++- src/frontend/src/components/render/Note.tsx | 13 +++++++++++++ src/frontend/src/forms/CommonForms.tsx | 2 +- 5 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 src/frontend/src/components/render/Note.tsx diff --git a/src/frontend/lib/enums/ModelInformation.tsx b/src/frontend/lib/enums/ModelInformation.tsx index 5989e0acf9..bc78575259 100644 --- a/src/frontend/lib/enums/ModelInformation.tsx +++ b/src/frontend/lib/enums/ModelInformation.tsx @@ -325,5 +325,12 @@ export const ModelInformationDict: ModelDict = { label_multiple: () => t`Tags`, api_endpoint: ApiEndpoints.tag_list, icon: 'tag' + }, + notetemplate: { + label: () => t`Note Template`, + label_multiple: () => t`Note Templates`, + url_overview: '/settings/admin/notes', + api_endpoint: ApiEndpoints.note_list, + icon: 'notes' } }; diff --git a/src/frontend/lib/enums/ModelType.tsx b/src/frontend/lib/enums/ModelType.tsx index 76642756e2..e3bddd7d2d 100644 --- a/src/frontend/lib/enums/ModelType.tsx +++ b/src/frontend/lib/enums/ModelType.tsx @@ -39,7 +39,8 @@ export enum ModelType { selectionlist = 'selectionlist', selectionentry = 'selectionentry', error = 'error', - tag = 'tag' + tag = 'tag', + notetemplate = 'notetemplate' } export enum PluginPanelKey { diff --git a/src/frontend/src/components/render/Instance.tsx b/src/frontend/src/components/render/Instance.tsx index 8e8353781e..0bedf5d3c2 100644 --- a/src/frontend/src/components/render/Instance.tsx +++ b/src/frontend/src/components/render/Instance.tsx @@ -58,6 +58,7 @@ import { RenderSelectionList, RenderTag } from './Generic'; +import { RenderNoteTemplate } from './Note'; import { RenderPurchaseOrder, RenderReturnOrder, @@ -118,7 +119,8 @@ export const RendererLookup: ModelRendererDict = { [ModelType.selectionlist]: RenderSelectionList, [ModelType.selectionentry]: RenderSelectionEntry, [ModelType.error]: RenderError, - [ModelType.tag]: RenderTag + [ModelType.tag]: RenderTag, + [ModelType.notetemplate]: RenderNoteTemplate }; /** diff --git a/src/frontend/src/components/render/Note.tsx b/src/frontend/src/components/render/Note.tsx new file mode 100644 index 0000000000..6aaf1b92d3 --- /dev/null +++ b/src/frontend/src/components/render/Note.tsx @@ -0,0 +1,13 @@ +import type { ReactNode } from 'react'; + +import { RenderInlineModel } from './Instance'; + +export function RenderNoteTemplate({ + instance +}: Readonly<{ + instance: any; +}>): ReactNode { + return ( + + ); +} diff --git a/src/frontend/src/forms/CommonForms.tsx b/src/frontend/src/forms/CommonForms.tsx index 0378bdb0d4..95f549f60e 100644 --- a/src/frontend/src/forms/CommonForms.tsx +++ b/src/frontend/src/forms/CommonForms.tsx @@ -345,13 +345,13 @@ export function useNoteFields({ field_type: 'related field', label: t`From Template`, description: t`Optionally pre-fill this note from an existing template`, + model: ModelType.notetemplate, api_url: apiUrl(ApiEndpoints.note_list), filters: { template: true, model_type: modelType }, pk_field: 'pk', - render_description_field: 'description', required: false, onValueChange: (value: any) => fetchTemplate(value), value: null