A report editor plugin that is powered by django-template-lsp.
- Install the
inventree-report-lsp-pluginfrom the Admin Center > Plugins > Install plugin. (Make sure the user interface plugin integration is enabled.) - Now the LSP server needs to be started separately via the
inventree-report-lspcmd and the requests to/plugins/report-lsp/wsneed to be proxied to it. If you're using the official docker stack, follow the guide below:
Important
At least InvenTree v0.18.0 is required to use this plugin.
Add this extra container to the docker-compose.yml file:
inventree-report-lsp:
image: inventree/inventree:${INVENTREE_TAG:-stable}
container_name: inventree-report-lsp
command: /bin/bash -c "invoke plugins && inventree-report-lsp"
env_file:
- .env
volumes:
- ${INVENTREE_EXT_VOLUME}:/home/inventree/data:z
restart: unless-stoppedAdd this proxy_route to the Caddyfile:
forward_auth {$INVENTREE_SERVER:"http://inventree-server:8000"} {
uri /auth/
}
}
+ reverse_proxy /plugin/report-lsp/ws "http://inventree-report-lsp:8765"
# All other requests are proxied to the InvenTree server
reverse_proxy {$INVENTREE_SERVER:"http://inventree-server:8000"} {Goto the Admin Center > Label Templates or Report Templates. Click on any in the table and select the "Report Editor". For the first load, this can take some time (up to ~30s) until the data is collected. The status bar at the bottom should show LSP Running (Connected) when its ready.
For this plugin to work in development, the inventree source has to be patched temporary:
-
Add this to the InvenTree
vite.config.ts:proxy: { '/media': { target: 'http://localhost:8000', changeOrigin: true, secure: true }, + '/static/plugins/report-lsp/dist/': { + target: 'http://localhost:5212', + changeOrigin: true, + secure: true, + ws: true + }, + "/plugin/report-lsp/ws": { + target: "http://localhost:8765", + changeOrigin: true, + secure: true, + ws: true, + } }, -
Remove Strict Mode temporary from
src/frontend/src/main.tsx:ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( - <React.StrictMode> <MainView /> - </React.StrictMode> ); -
Set the
INVENTREE_REPORT_LSP_DEVtoTruebefore starting the dev server -
Install this package as editable pip package into your venv via
pip install -e path/to/the/inventree-report-lsp-plugin
-
Install frontend dependencies via
cd frontend && npm ci -
Run the LSP in the background by invoking the
inventree-report-lspcommand in a terminal where the venv is activated. (If you want to use a custom djlsp instance because you want to do changes there, you need to specify theINVENTREE_DJANGO_LSP_SERVER_CMDenv variable. E.g./path/to/django-template-lsp/env/bin/djlsp) -
Run the Frontend dev server via
cd frontend && npm run dev
