InvenTree/docs/mkdocs.yml
Oliver aa39582d89
Report printing refactor (#7074)
* Adds a new "generic" ReportTemplate model

* expose API endpoints

* Update model / migrations / serializer

* Add new mixin class to existing database models

* - Add detail view for report template
- Revert filters field behaviour

* Filter report list by provided item IDs

- Greatly simplify filtering logic compared to existing implemetation
- Expose to API schema

* Create data migration for converting *old* report templates

* Ignore internal reports for data migration

* Add report mixin to StockLocation model

* Provide model choices in admin interface

* Offload context data generation to the model classes

* Remove old report template models

* Refactor JS code in CUI

* Fix for API filtering

* Add data migration to delete old models

* Remove dead URL

* Updates

* Construct sample report templates on app start

* Bump API version

* Typo fix

* Fix incorrect context calls

* Add new LabelTemplate model

- ReportTemplate and LabelTemplate share common base
- Refactor previous migration

* Expose to admin interface

* Add in extra context from existing label models

* Add migration to create LabelTemplate instances from existing labels

* Add API endpoints for listing and updating LabelTemplate objects

* Adjust 'upload_to' path

* Refactor label printing

* Move default label templates

* Update API endpoints

* Update migrations

* Handle LookupError in migration

* Redirect the "label" API endpoint

* Add new model for handling result of template printing

* Refactor LabelPrinting mixin

* Unlink "labels" app entirely

* Fix typo

* Record 'plugin' used to generate a particular output

* Fix imports

* Generate label print response

- Still not good yet

* Refactoring label printing in CUI

* add "items" count to TemplateOutput model

* Fix for InvenTreeLabelSheetPlugin

* Remove old "label" app

* Make request object optional

* Fix filename generation

* Add help text for "model_type"

* Simplify TemplateTable

* Tweak TemplateTable

* Get template editor to display template data again

* Stringify template name

- Important, otherwise you get a TypeError instead of TemplateDoesNotExist

* Add hooks to reset plugin state

* fix context for StockLocation model

* Tweak log messages

* Fix incorrect serializer

* Cleanup TemplateTable

* Fix broken import

* Filter by target model type

* Remove manual file operations

* Update old migrations

- Remove references to functions that no longer exist

* Refactor asset / snippet uploading

* Update comments

* Retain original filename when editing templatese

* Cleanup

* Refactor model type filter to use new hook

* Add placeholder actions for printing labels and reports

* Improve hookiness

* Add new ReportOutput class

* Report printing works from PUI now!

* More inspired filename pattern for generated reports

* Fix template preview window

- Use new "output" response field across the board

* Remove outdated task

* Update data migration to use raw SQL

- If the 'labels' app is no longer available, this will fail
- So, use raw SQL instead

* Add more API endpoint defs

* Adds placeholder API endpoint for label printing

* Expose plugin field to the printing endpoint

* Adds plugin model type

* Hook to print labels

* Refactor action dropdown items

* Refactor report printing for CUI

* Refactor label print for CUI

- Still needs to handle custom printing options for plugin

* Fix migration

* Update ModelType dict

* playwright test fix

* Unit test fixes

* Fix model ruleset associations

* Fix for report.js

* Add support for "dynamic" fields in metadata.py

* Add in custom fields based on plugin

* Refactoring

* Reset plugin on form close

* Set custom timeout values

* Update migration

- Not atomic

* Cleanup

* Implement more printing actions

* Reduce timeout

* Unit test updates

* Fix part serializers

* Label printing works in CUI again

* js linting

* Update <ActionDropdown>

* Fix for label printing API endpoint

* Fix filterselectdrawer

* Improve button rendering

* Allow printing from StockLocationTable

* Add aria-labels to modal form fields

* Add test for printing stock item labels from table

* Add test for report printing

* Add unit testing for report template editing / preview

* Message refactor

* Refactor InvenTreeReportMixin class

* Update playwright test

* Update 'verbose_name' for a number of models

* Additional admin filtering

* Playwright test updates

* Run checks against new python lib branch

(temporary, will be reverted)

* remove old app reference

* fix testing ref

* fix app init

* remove old tests

* Revert custom target branch

* Expose label and report output objects to API

* refactor

* fix a few tests

* factor plugin_ref out

* fix options testing

* Update table field header

* re-enable full options testing

* fix missing plugin matching

* disable call assert

* Add custom related field for PluginConfig

- Uses 'key' rather than 'pk'
- Revert label print plugin to use slug

* Add support for custom pk field in metadata

* switch to labels for testing

* re-align report testing code

* disable version check

* fix url

* Implement lazy loading

* Allow blank plugin for printing

- Uses the builtin label printer if not specified

* Add printing actions for StockItem

* Fix for metadata helper

* Use key instead of pk in printing actions

* Support non-standard pk values in RelatedModelField

* pass context data to report serializers

* disable template / item discovery

* fix call

* Tweak unit test

* Run python checks against specific branch

* Add task for running docs server

- Option to compile schema as part of task

* Custom branch no longer needed

* Starting on documentation updates

* fix tests for reports

* fix label testing

* Update template context variables

* Refactor report context documentation

* Documentation cleanup

* Docs cleanup

* Include sample report files

* Fix links

* Link cleanup

* Integrate plugin example code into docs

* Code cleanup

* Fix type annotation

* Revert deleted variable

* remove templatetype

* remove unused imports

* extend context testing

* test if plg can print

* re-enable version check

* Update unit tests

* Fix test

* Adjust unit test

* Add debug statement to test

* Fix unit test

- Labels get printed against LabelTemplate items, duh

* Unit test update

* Unit test updates

* Test update

* Patch fix for <PartColumn> component

* Fix ReportSerialierBase class

- Re-initialize field options if not already set

* Fix unit test for sqlite

* Fix kwargs for non-blocking label printing

* Update playwright tests

* Tweak unit test

---------

Co-authored-by: Matthias Mair <code@mjmair.com>
2024-05-22 10:17:01 +10:00

302 lines
9.0 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
- 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
- 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
- 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
- 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