2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-04-28 03:26:45 +00:00
InvenTree/docs/mkdocs.yml
Oliver 12d2865b59
PUI Plugin Panels (#7470)
* Adds basic API endpoint for requesting plugin panels

* Split PanelType out into own file

* Placeholder for a plugin panel loaded dynamically

* Add some dummy data for the plugin panels

* Example of plugin panel selection based on page

* Expose some global window attributes

* Add new setting

* Disable panel return if plugin integration is not enabled

* Update hook to auto-magically load plugin panels

* Allow custom panel integration for more panel  groups

* Remove debug call

* Tweak query return data

* async fn

* Adds <PluginPanel> component for handling panel render

* Cleanup

* Prevent API requests before instance ID is known

* Pass instance data through

* Framework for a sample plugin which implements custom panels

* offload custom panels to sample plugin

* Load raw HTML content

* Expand custom panel rendering demo

* Adjust API endpoints

* Add function to clear out static files which do not match installed plugin(s)

* Update static files when installing plugins from file

* Update static files when installing or uninstalling a plugin

* Update static files on config change

* Pass more information through to plugin panels

* Prepend hostname to plugin source

* Pass instance detail through

* Cleanup code for passing data through to plugin panels

- Define interface type
- Shorten variable names

* Update docs requirements

* Revert "Update docs requirements"

This reverts commit 63a06d97f58ae15d837babb799b9ed8b22c3802b.

* Add placeholder for documentation

* Fix imports

* Add a broken panel which tries to load a non-existent javascript file

* Render error message if plugin does not load correctly

* Only allow superuser to perform plugin actions

* Code cleanup

* Add "dynamic" contnt - javascript file - to example plugin

* Remove default values

* Cleanup unused code

* PanelGroup updates

* Cleanup hooks for changing panel state

* More work needed...

* Code cleanup

* More updates / refactoring

- Allow dynamic hiding of a particular panel
- Pass target ref as positional argument
- Better handling of async calls

* Documentation

* Bump API version

* Provide theme object to plugin context

* Adjust sample plugin

* Docs updates

* Fix includefile call in docs

* Improve type annotation

* Cleanup

* Enable plugin panels for "purchasing index" and "sales index" pages

* Fix for plugin query check

* Improvements to panel selection

- Code refactor / cleanup
- Ensure that a valid panel is always displayed
- Allow plugin panels to persist, even after reload

* Playwright test fixes

* Update src/frontend/src/hooks/UsePluginPanels.tsx

Co-authored-by: Lukas <76838159+wolflu05@users.noreply.github.com>

* Update src/frontend/src/components/plugins/PluginPanel.tsx

Co-authored-by: Lukas <76838159+wolflu05@users.noreply.github.com>

* Update src/frontend/src/components/plugins/PluginContext.tsx

Co-authored-by: Lukas <76838159+wolflu05@users.noreply.github.com>

* Fix context

* Add more context data

* Docs updates

* Reimplement local state

* Fix mkdocs.yml

* Expose 'colorScheme' to plugin context

* Define CustomPanel type definition

* Add unit testing for user interface plugins

* Add front-end tests for plugin panels

* Add new setting to plugin_settings_keys

* Adds helper function for annotating build line allocations

* Improve query efficiency

- Especially around unit testing
- Ensure all settings are generated
- Do not auto-create settings during registry load

* Improve query efficiency for build order operations

* Reduce max query count for specific test

* Revert query count limit

* playwright test updates

---------

Co-authored-by: Lukas <76838159+wolflu05@users.noreply.github.com>
2024-09-16 10:36:27 +10:00

306 lines
9.2 KiB
YAML

# Project
site_url: https://inventree.readthedocs.io
site_name: InvenTree Documentation
site_description: InvenTree - Open Source Inventory Management
site_author: InvenTree
# Repository
repo_url: https://github.com/inventree/inventree
repo_name: inventree/inventree
# Theme
theme:
name: material
font:
text: Roboto
custom_dir: _includes/overrides
palette:
- media: "(prefers-color-scheme: light)"
scheme: default
primary: blue
accent: light blue
toggle:
icon: material/toggle-switch
name: Switch to dark mode
- media: "(prefers-color-scheme: dark)"
scheme: slate
primary: blue
accent: light blue
toggle:
icon: material/toggle-switch-off-outline
name: Switch to light mode
logo: assets/logo.png
favicon: assets/favicon.ico
icon:
repo: fontawesome/brands/github
features:
- content.code.copy
- header.autohide
- navigation.expand
- navigation.footer
- navigation.indexes
- navigation.instant
# - navigation.sections
- navigation.tracking
- navigation.tabs
- navigation.tabs.sticky
- navigation.top
- search.highlight
- toc.autohide
- toc.follow
edit_uri: "" # Disable "Edit" button
extra_css:
- stylesheets/brands.css
- stylesheets/regular.css
- stylesheets/solid.css
- stylesheets/bootstrap.css
- stylesheets/splide.min.css
- stylesheets/extra.css
- stylesheets/neoteroi-mkdocs.css
extra_javascript:
- javascripts/extra.js
- javascripts/fontawesome.js
- javascripts/brands.js
- javascripts/regular.js
- javascripts/solid.js
- javascripts/splide.min.js
- https://code.jquery.com/jquery-3.6.0.js
- https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.js
# Navigation
nav:
- InvenTree:
- InvenTree: index.md
- Features: features.md
- FAQ: faq.md
- Core Concepts:
- Terminology: concepts/terminology.md
- Physical Units: concepts/units.md
- Custom States: concepts/custom_states.md
- Development:
- Contributing: develop/contributing.md
- Devcontainer: develop/devcontainer.md
- React Frontend: develop/react-frontend.md
- Credits: credits.md
- Privacy: privacy.md
- Release Notes: releases/release_notes.md
- Security: security.md
- Install:
- Introduction: start/intro.md
- Configuration: start/config.md
- Docker:
- Introduction: start/docker.md
- Installation: start/docker_install.md
- Bare Metal:
- Introduction: start/install.md
- Installer: start/installer.md
- Production: start/bare_prod.md
- Development: start/bare_dev.md
- Serving Files: start/serving_files.md
- Data Backup: start/backup.md
- Migrating Data: start/migrate.md
- Advanced Topics: start/advanced.md
- Parts:
- Parts: part/part.md
- Creating Parts: part/create.md
- Part Views: part/views.md
- Tracking: part/trackable.md
- Parameters: part/parameter.md
- Revisions: part/revision.md
- Templates: part/template.md
- Tests: part/test.md
- Pricing: part/pricing.md
- Scheduling: part/scheduling.md
- Stocktake: part/stocktake.md
- Notifications: part/notification.md
- Stock:
- Stock Items: stock/stock.md
- Stock Status: stock/status.md
- Stock Tracking: stock/tracking.md
- Adjusting Stock: stock/adjust.md
- Stock Expiry: stock/expiry.md
- Stock Ownership: stock/owner.md
- Test Results: stock/test.md
- Build:
- Build Orders: build/build.md
- Build Outputs: build/output.md
- Allocating Stock: build/allocate.md
- Example Build Order: build/example.md
- Bill of Materials: build/bom.md
- Importing BOM Data: build/bom_import.md
- Exporting BOM Data: build/bom_export.md
- Orders:
- Companies: order/company.md
- Purchase Orders: order/purchase_order.md
- Sales Orders: order/sales_order.md
- Return Orders: order/return_order.md
- Project Codes: order/project_codes.md
- Report:
- Templates: report/templates.md
- Template Rendering: report/weasyprint.md
- Template Editor: report/template_editor.md
- Reports: report/report.md
- Labels: report/labels.md
- Context Variables: report/context_variables.md
- Helper Functions: report/helpers.md
- Barcodes: report/barcodes.md
- Sample Templates: report/samples.md
- Admin:
- Global Settings: settings/global.md
- User Settings: settings/user.md
- Reference Patterns: settings/reference.md
- Admin Interface: settings/admin.md
- User Permissions: settings/permissions.md
- Single Sign on: settings/SSO.md
- Multi Factor Authentication: settings/MFA.md
- Export Data: settings/export.md
- Import Data: settings/import.md
- Error Logs: settings/logs.md
- Email: settings/email.md
- Background Tasks: settings/tasks.md
- Currency Support: settings/currency.md
- App:
- InvenTree App: app/app.md
- Connect: app/connect.md
- Navigation: app/navigation.md
- Search: app/search.md
- Barcodes: app/barcode.md
- Parts: app/part.md
- Stock: app/stock.md
- Purchase Orders: app/po.md
- Sales Orders: app/so.md
- Settings: app/settings.md
- Privacy: app/privacy.md
- Translation: app/translation.md
- Suggestions: app/issues.md
- Extend:
- InvenTree API:
- Overview: api/api.md
- API Schema: api/schema.md
- Model Metadata: api/metadata.md
- Download Data: api/download.md
- Bulk Delete: api/bulk_delete.md
- Interactive API: api/browse.md
- Python Interface:
- Overview: api/python/python.md
- Currency Support: api/python/currency.md
- Examples: api/python/examples.md
- Barcodes:
- Overview: barcodes/barcodes.md
- Internal Barcodes: barcodes/internal.md
- External Barcodes: barcodes/external.md
- Custom Barcodes: barcodes/custom.md
- Plugins:
- Overview: extend/plugins.md
- Installation: extend/plugins/install.md
- Developing a Plugin: extend/how_to_plugin.md
- Model Metadata: extend/plugins/metadata.md
- Tags: extend/plugins/tags.md
- Plugin Mixins:
- Action Mixin: extend/plugins/action.md
- API Mixin: extend/plugins/api.md
- App Mixin: extend/plugins/app.md
- Barcode Mixin: extend/plugins/barcode.md
- Currency Mixin: extend/plugins/currency.md
- Event Mixin: extend/plugins/event.md
- Icon Pack Mixin: extend/plugins/icon.md
- Label Printing Mixin: extend/plugins/label.md
- Locate Mixin: extend/plugins/locate.md
- Navigation Mixin: extend/plugins/navigation.md
- Panel Mixin: extend/plugins/panel.md
- Report Mixin: extend/plugins/report.md
- Schedule Mixin: extend/plugins/schedule.md
- Settings Mixin: extend/plugins/settings.md
- URL Mixin: extend/plugins/urls.md
- User Interface Mixin: extend/plugins/ui.md
- Validation Mixin: extend/plugins/validation.md
- Machines:
- Overview: extend/machines/overview.md
- Label Printer: extend/machines/label_printer.md
- Themes: extend/themes.md
- Third-Party: extend/integrate.md
# Plugins
plugins:
- neoteroi.mkdocsoad:
use_pymdownx: true
- include-markdown:
opening_tag: "{!"
closing_tag: "!}"
- search
- git-revision-date-localized
- mkdocs-simple-hooks:
hooks:
on_config: "docs.docs.hooks:on_config"
- macros:
include_dir: docs/_includes
module_name: main
- mkdocstrings:
default_handler: python
handlers:
python:
paths:
- ../src/backend/InvenTree
options:
show_symbol_type_heading: true
show_symbol_type_toc: true
show_root_heading: false
show_root_toc_entry: false
# Extensions
markdown_extensions:
- admonition
- attr_list
- meta
- pymdownx.details
- pymdownx.highlight
- pymdownx.tabbed:
alternate_style: true
- pymdownx.superfences:
custom_fences:
- name: mermaid
class: mermaid
# format: !!python/name:pymdownx.superfences.fence_code_format
# - pymdownx.emoji:
# emoji_index: !!python/name:materialx.emoji.twemoji
# emoji_generator: !!python/name:materialx.emoji.to_svg
- toc:
permalink: true
# Global Variables
extra:
static_folder_source: ./src/backend/InvenTree/InvenTree/static/
static_folder_local_default: ./inventree_static/
# Site Analytics
# See https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/
# analytics:
# provider: google
# property: UA-143467500-1
min_python_version: 3.9
min_invoke_version: 2.0.0
django_version: 4.2
version:
default: stable
provider: mike
social:
- icon: fontawesome/brands/github
link: https://github.com/inventree/inventree
name: InvenTree on GitHub
- icon: fontawesome/brands/twitter
link: https://twitter.com/inventreedb
name: InvenTree on Twitter
- icon: fontawesome/brands/docker
link: https://hub.docker.com/r/inventree/inventree
name: InvenTree on Docker
- icon: fontawesome/brands/reddit
name: InvenTree on Reddit
link: https://reddit.com/r/inventree
use_directory_urls: true
strict: true