mirror of
https://github.com/inventree/InvenTree.git
synced 2025-12-14 08:19:54 +00:00
[WIP] Generic parameters (#10699)
* Add ParameterTemplate model - Data structure duplicated from PartParameterTemplate * Apply data migration for templates * Admin integration * API endpoints for ParameterTemplate * Scaffolding * Add validator for ParameterTemplate model type - Update migrations - Make Parameter class abstract (for now) - Validators * API updates - Fix options for model_type - Add API filters * Add definition for Parameter model * Add django admin site integration * Update InvenTreeParameterMixin class - Fetch queryset of all linked Parameter instances - Ensure deletion of linked instances * API endpoints for Parameter instances * Refactor UI table for parameter templates * Add comment for later * Add "enabled" field to ParameterTemplate model * Add new field to serializer * Rough-in new table * Implement generic "parameter" table * Enable parameters for Company model * Change migration for part parameter - Make it "universal" * Remove code for ManufacturerPartParameter * Fix for filters * Add data import for parameter table * Add verbose name to ParameterTemplate model * Removed dead API code * Update global setting * Fix typos * Check global setting for unit validation * Use GenericForeignKey * Add generic relationship to allow reverse lookups * Fixes for table structure * Add custom serializer field for ContentType with choices * Adds ContentTypeField - Handles representation of content type - Provides human-readable options * Refactor API filtering for endpoints - Specify ContentType by ID, model or app label * Revert change to parameters property * Define GenericRelationship for linking model * Refactoring some code * Add a generic way to back-annotate and prefetch parameters for any model type * Change panel position * Directly annotate parameters against different model serializers * remove defunct admin classes * Run plugin validation against parameter * Fix prefetching for PartSerializer * Implement generic "filtering" against queryset * Implement generic "ordering" by parameter * Make parametric table generic * Refactor segmented panels * Consolidate part table views * Fix for parametric part table - Only display parameters for which we know there is a value * Add parametric tables for company views * Fix typo in file name * Prefetch to reduce hits * Add generic API mixin for filtering and ordering by parameter * Fix hook for rebuilding template parameters * Remove serializer * Remove old models * Fix code for copying parameters from category * Implement more parametric tables: - ManufacturerPart - SupplierPart - Fixes and enhancements * Add parameter support for orders * Add UI support for parameters against orders * Update API version * Update CHANGELOG.md * Add parameter support for build orders * Tweak frontend * Add renderer * Remove defunct endpoints * Add migration requirement * Require contenttypes to be updated * Update migration * Try using ID val * Adjust migration dependencies * fix params fixture * fix schema export * fix modelset * Fixes for data migration * tweak table * Fix for Category Parameters * Use branch of demo dataset for testing * Add parameteric build order table * disable broken imports * remove old model from ruleset * correct test * Table tweaks * fix test * Remove old model type * fix test * fix test * Refactor mixin to avoid specifying model type manually * fix test * fix resolve name * remove unneeded import * Tweak unit testing * Fix unit test * Enable bulk-create * More fixes * More unit test tweaks * Enhancements * Unit test fixes * Add some migration tests * Fix admin tests * Fix part tests * adapt expectation * fix remaining typecheck * Docs updates * Rearrange models * fix paramater caching * fix doc links * adjust assumption * Adjust data migration unit tests * docs fixes * Fix docs link * Fixes * Tweak formatting * Add doc for setting * Add metadata view for parameters * Add metadata view for ParamterTemplate * Update CHANGELOG file * Deconflict model_type fields * Invert key:value * Revert "Invert key:value" This reverts commitd555658db2. * fix assert * Update API rev notes * Initial unit tests for API * Test parameter create / edit / delete via the API * Add some more unit tests for the API * Validate queryset annotation - Add unit test with large dataset - Ensure number of queries is fixed - Fix for prefetching check * Add breaking change info to CHANGELOG.md * Ensure that parameters are removed when deleting the linked object * Enhance type hinting * Refactor part parameter exporter plugin - Any model which supports parameters can use this now - Update documentation * Improve serializer field * Adjust unit test * Reimplement checks for locked parts * Fix unit test for data migration * Fix for unit test * Allow disable edit for ParameterTable * Fix supplier part import wizard * Add unit tests for template API filtering * Add playwright tests for purchasing index * Add tests for manufacturing index page * ui tests for sales index * Add data migration tests for ManufacturerPartParameter * Pull specific branch for python binding tests * Specify target migration * Remove debug statement * Tweak migration unit tests * Add options for spectacular * Add explicit choice options * Ensure empty string values are converted to None * Don't use custom branch for python checks * Fix for migration test * Fix migration test * Fix reference target * Remove duplicate enum in spectactular.py * Add null choice to custom serializer class * [UI] Edit shipment details - Pass "pending" status through to the form * New migration strategy: part.0144: - Add new "enabled" field to PartParameterTemplate model - Add new ContentType fields to the "PartParameterTemplate" and "PartParameter" models - Data migration for existing "PartParameter" records part.0145: - Set NOT NULL constraints on new fields - Remove the obsolete "part" field from the "PartParameter" model * More migration updates: - Create new "models" (without moving the existing tables) - Data migration for PartCataegoryParameterTemplate model - Remove PartParameterTemplate and PartParameter models * Overhaul of migration strategy - New models simply point to the old database tables - Perform schema and data migrations on the old models first (in the part app) - Swap model references in correct order * Improve checks for data migrations * Bug fix for data migration * Add migration unit test to ensure that primary keys are maintained * Add playwright test for company parameters * Rename underlying database tables * Fixes for migration unit tests * Revert "Rename underlying database tables" This reverts commit477c692076. * Fix for migration sequencing * Simplify new playwright test * Remove spectacular collision * Monkey patch the drf-spectacular warn function * Do not use custom branch for playwright testing --------- Co-authored-by: Matthias Mair <code@mjmair.com>
This commit is contained in:
@@ -67,7 +67,7 @@ print("Minimum stock:", part.minimum_stock)
|
||||
|
||||
### Adding Parameters
|
||||
|
||||
Each [part](../../part/index.md) can have multiple [parameters](../../part/parameter.md). For the example of the sofa (above) *length* and *weight* make sense. Each parameter has a parameter template that combines the parameter name with a unit. So we first have to create the parameter templates and afterwards add the parameter values to the sofa.
|
||||
Each [part](../../part/index.md) can have multiple [parameters](../../concepts/parameters.md). For the example of the sofa (above) *length* and *weight* make sense. Each parameter has a parameter template that combines the parameter name with a unit. So we first have to create the parameter templates and afterwards add the parameter values to the sofa.
|
||||
|
||||
```python
|
||||
from inventree.part import Parameter
|
||||
|
||||
@@ -73,7 +73,7 @@ the *Scan Items Into Location* action allows you to scan items into the selected
|
||||
|
||||
### Stock Item Actions
|
||||
|
||||
From the [Stock Item detail page](./stock.md#stock-item-detail-view), the following barcode actions may be available:
|
||||
From the [Stock Item detail page](./stock.md#details-tab), the following barcode actions may be available:
|
||||
|
||||
{{ image("app/barcode_stock_item_actions.png", "Stock item barcode actions") }}
|
||||
|
||||
|
||||
BIN
docs/docs/assets/images/concepts/attachments-tab.png
Normal file
BIN
docs/docs/assets/images/concepts/attachments-tab.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 35 KiB |
BIN
docs/docs/assets/images/concepts/parameter-tab.png
Normal file
BIN
docs/docs/assets/images/concepts/parameter-tab.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 49 KiB |
BIN
docs/docs/assets/images/concepts/parameter-template.png
Normal file
BIN
docs/docs/assets/images/concepts/parameter-template.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 23 KiB |
BIN
docs/docs/assets/images/concepts/parametric-parts.png
Normal file
BIN
docs/docs/assets/images/concepts/parametric-parts.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 44 KiB |
18
docs/docs/concepts/attachments.md
Normal file
18
docs/docs/concepts/attachments.md
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
title: Attachments
|
||||
---
|
||||
|
||||
## Attachments
|
||||
|
||||
An *attachment* is a file which has been uploaded and linked to a specific object within InvenTree. Attachments can be used to store additional documentation, images, or other relevant files associated with various InvenTree models.
|
||||
|
||||
!!! note "Business Logic"
|
||||
Attachments are not used for any core business logic within InvenTree. They are intended to provide additional metadata for objects, which can be useful for documentation, reference, or reporting purposes.
|
||||
|
||||
Parameters can be associated with various InvenTree models.
|
||||
|
||||
### Attachments Tab
|
||||
|
||||
Any model which supports attachments will have an "Attachments" tab on its detail page. This tab displays all attachments associated with that object:
|
||||
|
||||
{{ image("concepts/attachments-tab.png", "Order Attachments Example") }}
|
||||
@@ -1,17 +1,21 @@
|
||||
---
|
||||
title: Part Parameters
|
||||
title: Parameters
|
||||
---
|
||||
|
||||
## Part Parameters
|
||||
## Parameters
|
||||
|
||||
A part *parameter* describes a particular "attribute" or "property" of a specific part.
|
||||
A *parameter* describes a particular "attribute" or "property" of a specific object in InvenTree. Parameters allow for flexible and customizable data to be stored against various InvenTree models.
|
||||
|
||||
Part parameters are located in the "Parameters" tab, on each part detail page.
|
||||
There is no limit for the number of part parameters and they are fully customizable through the use of [parameter templates](#parameter-templates).
|
||||
!!! note "Business Logic"
|
||||
Parameters are not used for any core business logic within InvenTree. They are intended to provide additional metadata for objects, which can be useful for documentation, filtering, or reporting purposes.
|
||||
|
||||
Here is an example of parameters for a capacitor:
|
||||
Parameters can be associated with various InvenTree models.
|
||||
|
||||
{{ image("part/part_parameters_example.png", "Part Parameters Example") }}
|
||||
### Parameter Tab
|
||||
|
||||
Any model which supports parameters will have a "Parameters" tab on its detail page. This tab displays all parameters associated with that object:
|
||||
|
||||
{{ image("concepts/parameter-tab.png", "Part Parameters Example") }}
|
||||
|
||||
## Parameter Templates
|
||||
|
||||
@@ -22,13 +26,16 @@ Parameter templates are used to define the different types of parameters which a
|
||||
| Name | The name of the parameter template (*must be unique*) |
|
||||
| Description | Optional description for the template |
|
||||
| Units | Optional units field (*must be a valid [physical unit](#parameter-units)*) |
|
||||
| Model Type | The InvenTree model to which this parameter template applies (e.g. Part, Company, etc). If this is left blank, the template can be used for any model type. |
|
||||
| Choices | A comma-separated list of valid choices for parameter values linked to this template. |
|
||||
| Checkbox | If set, parameters linked to this template can only be assigned values *true* or *false* |
|
||||
| Selection List | If set, parameters linked to this template can only be assigned values from the linked [selection list](#selection-lists) |
|
||||
|
||||
{{ image("concepts/parameter-template.png", "Parameters Template") }}
|
||||
|
||||
### Create Template
|
||||
|
||||
Parameter templates are created and edited via the [settings interface](../settings/global.md).
|
||||
Parameter templates are created and edited via the [admin interface](../settings/admin.md).
|
||||
|
||||
To create a template:
|
||||
|
||||
@@ -54,11 +61,11 @@ Select the parameter `Template` you would like to use for this parameter, fill-o
|
||||
|
||||
## Parametric Tables
|
||||
|
||||
Parametric tables gather all parameters from all parts inside a particular [part category](./index.md#part-category) to be sorted and filtered.
|
||||
Parametric tables gather all parameters from all objects of a particular type, to be sorted and filtered.
|
||||
|
||||
To access a category's parametric table, click on the "Parameters" tab within the category view:
|
||||
Tables views which support parametric filtering and sorting will have a "Parametric View" button above the table:
|
||||
|
||||
{{ image("part/parametric_table_tab.png", "Parametric Table Tab") }}
|
||||
{{ image("concepts/parametric-parts.png", "Parametric Parts Table") }}
|
||||
|
||||
### Sorting by Parameter Value
|
||||
|
||||
@@ -139,7 +146,7 @@ Parameter sorting takes unit conversion into account, meaning that values provid
|
||||
|
||||
### Selection Lists
|
||||
|
||||
Selection Lists can be used to add a large number of predefined values to a parameter template. This can be useful for parameters which must be selected from a large predefined list of values (e.g. a list of standardised colo codes). Choices on templates are limited to 5000 characters, selection lists can be used to overcome this limitation.
|
||||
Selection Lists can be used to add a large number of predefined values to a parameter template. This can be useful for parameters which must be selected from a large predefined list of values (e.g. a list of standardized color codes). Choices on templates are limited to 5000 characters, selection lists can be used to overcome this limitation.
|
||||
|
||||
It is possible that plugins lock selection lists to ensure a known state.
|
||||
|
||||
@@ -59,9 +59,9 @@ The [unit of measure](../part/index.md#units-of-measure) field for the [Part](..
|
||||
|
||||
The [supplier part](../part/index.md/#supplier-parts) model uses real-world units to convert between supplier part quantities and internal stock quantities. Unit conversion rules ensure that only compatible unit types can be supplied
|
||||
|
||||
### Part Parameter
|
||||
### Parameter
|
||||
|
||||
The [part parameter template](../part/parameter.md#parameter-templates) model can specify units of measure, and part parameters can be specified against these templates with compatible units
|
||||
The [parameter template](../concepts/parameters.md#parameter-templates) model can specify units of measure, and part parameters can be specified against these templates with compatible units
|
||||
|
||||
## Custom Units
|
||||
|
||||
|
||||
@@ -39,12 +39,6 @@ A Part is defined in the system by the following parameters:
|
||||
|
||||
The Part view page organizes part data into sections, displayed as tabs. Each tab has its own function, which is described in this section.
|
||||
|
||||
### Parameters
|
||||
|
||||
Parts can have multiple defined parameters.
|
||||
|
||||
[Read about Part parameters](./parameter.md)
|
||||
|
||||
### Variants
|
||||
|
||||
If a part is a *Template Part* then the *Variants* tab will be visible.
|
||||
@@ -125,10 +119,18 @@ Related parts can be added and are shown under a table of the same name in the "
|
||||
|
||||
This feature can be enabled or disabled in the global part settings.
|
||||
|
||||
### Parameters
|
||||
|
||||
Parts can have multiple defined parameters.
|
||||
|
||||
[Read about parameters](../concepts/parameters.md).
|
||||
|
||||
### Attachments
|
||||
|
||||
The *Part Attachments* tab displays file attachments associated with the selected *Part*. Multiple file attachments (such as datasheets) can be uploaded for each *Part*.
|
||||
|
||||
[Read about attachments](../concepts/attachments.md).
|
||||
|
||||
### Notes
|
||||
|
||||
A part may have notes attached, which support markdown formatting.
|
||||
|
||||
@@ -21,7 +21,7 @@ The following builtin plugins are available in InvenTree:
|
||||
| Barcodes | [TME](./barcode_tme.md) | TME barcode support | No |
|
||||
| Data Export | [BOM Exporter](./bom_exporter.md) | Custom [exporter](../mixins/export.md) for BOM data | Yes |
|
||||
| Data Export | [InvenTree Exporter](./inventree_exporter.md) | Custom [exporter](../mixins/export.md) for InvenTree data | Yes |
|
||||
| Data Export | [Parameter Exporter](./part_parameter_exporter.md) | Custom [exporter](../mixins/export.md) for part parameter data | Yes |
|
||||
| Data Export | [Parameter Exporter](./parameter_exporter.md) | Custom [exporter](../mixins/export.md) for parameter data | Yes |
|
||||
| Data Export | [Stocktake Exporter](./stocktake_exporter.md) | Custom [exporter](../mixins/export.md) for stocktake data | No |
|
||||
| Events | [Auto Create Child Builds](./auto_create_builds.md) | Automatically create child build orders for sub-assemblies | No |
|
||||
| Events | [Auto Issue Orders](./auto_issue.md) | Automatically issue pending orders when target date is reached | No |
|
||||
|
||||
27
docs/docs/plugins/builtin/parameter_exporter.md
Normal file
27
docs/docs/plugins/builtin/parameter_exporter.md
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
title: Parameter Exporter
|
||||
---
|
||||
|
||||
## Parameter Exporter
|
||||
|
||||
The **Parameter Exporter** plugin provides custom export functionality for models which support custom [Parameter](../../concepts/parameters.md) data.
|
||||
|
||||
It utilizes the [ExporterMixin](../mixins/export.md) mixin to provide a custom export format for part parameter data.
|
||||
|
||||
In addition to the standard exported fields, this plugin also exports all associated parameter data for each row of the export.
|
||||
|
||||
### Activation
|
||||
|
||||
This plugin is a *mandatory* plugin, and is always enabled.
|
||||
|
||||
### Plugin Settings
|
||||
|
||||
This plugin has no configurable settings.
|
||||
|
||||
## Usage
|
||||
|
||||
This plugin is used in the same way as the [InvenTree Exporter Plugin](./inventree_exporter.md), but provides a custom export format for part parameter data.
|
||||
|
||||
When exporting parameter data, the *Parameter Exporter* plugin is available for selection in the export dialog. When selected, the plugin provides some additional export options to control the data export process.
|
||||
|
||||
{{ image("parameter_export_options.png", base="plugin/builtin", title="Parameter Export Options") }}
|
||||
@@ -1,25 +0,0 @@
|
||||
---
|
||||
title: Part Parameter Exporter
|
||||
---
|
||||
|
||||
## Part Parameter Exporter
|
||||
|
||||
The **Part Parameter Exporter** plugin provides custom export functionality for [Part Parameter](../../part/parameter.md) data.
|
||||
|
||||
It utilizes the [ExporterMixin](../mixins/export.md) mixin to provide a custom export format for part parameter data.
|
||||
|
||||
### Activation
|
||||
|
||||
This plugin is a *mandatory* plugin, and is always enabled.
|
||||
|
||||
### Plugin Settings
|
||||
|
||||
This plugin has no configurable settings.
|
||||
|
||||
## Usage
|
||||
|
||||
This plugin is used in the same way as the [InvenTree Exporter Plugin](./inventree_exporter.md), but provides a custom export format for part parameter data.
|
||||
|
||||
When exporting part parameter data, the *Part Parameter Exporter* plugin is available for selection in the export dialog. When selected, the plugin provides some additional export options to control the data export process.
|
||||
|
||||
{{ image("parameter_export_options.png", base="plugin/builtin", title="Part Parameter Export Options") }}
|
||||
@@ -134,11 +134,11 @@ Validation of the Part IPN (Internal Part Number) field is exposed to custom plu
|
||||
summary: False
|
||||
members: []
|
||||
|
||||
### Part Parameter Values
|
||||
### Parameter Values
|
||||
|
||||
[Part parameters](../../part/parameter.md) can also have custom validation rules applied, by implementing the `validate_part_parameter` method. A plugin which implements this method should raise a `ValidationError` with an appropriate message if the part parameter value does not match a required convention.
|
||||
[Parameters](../../concepts/parameters.md) can also have custom validation rules applied, by implementing the `validate_parameter` method. A plugin which implements this method should raise a `ValidationError` with an appropriate message if the parameter value does not match a required convention.
|
||||
|
||||
::: plugin.base.integration.ValidationMixin.ValidationMixin.validate_part_parameter
|
||||
::: plugin.base.integration.ValidationMixin.ValidationMixin.validate_parameter
|
||||
options:
|
||||
show_bases: False
|
||||
show_root_heading: False
|
||||
|
||||
@@ -545,11 +545,11 @@ You can add asset images to the reports and labels by using the `{% raw %}{% ass
|
||||
{% endraw %}
|
||||
```
|
||||
|
||||
## Part Parameters
|
||||
## Parameters
|
||||
|
||||
If you need to load a part parameter for a particular Part, within the context of your template, you can use the `part_parameter` template tag:
|
||||
If you need to load a parameter value for a particular model instance, within the context of your template, you can use the `parameter` template tag:
|
||||
|
||||
::: report.templatetags.report.part_parameter
|
||||
::: report.templatetags.report.parameter
|
||||
options:
|
||||
show_docstring_description: false
|
||||
show_source: False
|
||||
@@ -562,7 +562,7 @@ The following example assumes that you have a report or label which contains a v
|
||||
{% raw %}
|
||||
{% load report %}
|
||||
|
||||
{% part_parameter part "length" as length %}
|
||||
{% parameter part "length" as length %}
|
||||
|
||||
Part: {{ part.name }}<br>
|
||||
Length: {{ length.data }} [{{ length.units }}]
|
||||
@@ -570,7 +570,7 @@ Length: {{ length.data }} [{{ length.units }}]
|
||||
{% endraw %}
|
||||
```
|
||||
|
||||
A [Part Parameter](../part/parameter.md) has the following available attributes:
|
||||
A [Parameter](../concepts/parameters.md) has the following available attributes:
|
||||
|
||||
| Attribute | Description |
|
||||
| --- | --- |
|
||||
@@ -578,7 +578,7 @@ A [Part Parameter](../part/parameter.md) has the following available attributes:
|
||||
| Description | The *description* of the parameter |
|
||||
| Data | The *value* of the parameter (e.g. "123.4") |
|
||||
| Units | The *units* of the parameter (e.g. "km") |
|
||||
| Template | A reference to a [PartParameterTemplate](../part/parameter.md#parameter-templates) |
|
||||
| Template | A reference to a [ParameterTemplate](../concepts/parameters.md#parameter-templates) |
|
||||
|
||||
## Rendering Markdown
|
||||
|
||||
|
||||
@@ -174,11 +174,14 @@ Configuration of label printing:
|
||||
{{ globalsetting("PART_COPY_TESTS") }}
|
||||
{{ globalsetting("PART_CATEGORY_PARAMETERS") }}
|
||||
{{ globalsetting("PART_CATEGORY_DEFAULT_ICON") }}
|
||||
{{ globalsetting("PART_PARAMETER_ENFORCE_UNITS") }}
|
||||
|
||||
#### Part Parameter Templates
|
||||
#### Parameter Templates
|
||||
|
||||
Refer to the section describing [how to create part parameter templates](../part/parameter.md#create-template).
|
||||
| Name | Description | Default | Units |
|
||||
| ---- | ----------- | ------- | ----- |
|
||||
{{ globalsetting("PARAMETER_ENFORCE_UNITS") }}
|
||||
|
||||
For more information on parameters, refer to the [parameter documentation](../concepts/parameters.md).
|
||||
|
||||
### Categories
|
||||
|
||||
|
||||
@@ -245,9 +245,10 @@ This can be adjusted using the following environment variables:
|
||||
| INVENTREE_WEB_ADDR | 0.0.0.0 |
|
||||
| INVENTREE_WEB_PORT | 8000 |
|
||||
|
||||
These variables are combined in the [Dockerfile](../../../contrib/container/Dockerfile) to build the bind string passed to the InvenTree server on startup.
|
||||
These variables are combined in the [Dockerfile]({{ sourcefile("contrib/container/Dockerfile") }}) to build the bind string passed to the InvenTree server on startup.
|
||||
|
||||
To enable IPv6/Dual Stack support, set `INVENTREE_WEB_ADDR` to `[::]` when you create/start the container.
|
||||
!!! tip "IPv6 Support"
|
||||
To enable IPv6/Dual Stack support, set `INVENTREE_WEB_ADDR` to `[::]` when you create/start the container.
|
||||
|
||||
### Demo Dataset
|
||||
|
||||
|
||||
@@ -96,6 +96,8 @@ nav:
|
||||
- Custom States: concepts/custom_states.md
|
||||
- Pricing: concepts/pricing.md
|
||||
- Project Codes: concepts/project_codes.md
|
||||
- Attachments: concepts/attachments.md
|
||||
- Parameters: concepts/parameters.md
|
||||
- Barcodes:
|
||||
- Barcode Support: barcodes/index.md
|
||||
- Internal Barcodes: barcodes/internal.md
|
||||
@@ -125,7 +127,6 @@ nav:
|
||||
- Virtual Parts: part/virtual.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
|
||||
@@ -238,7 +239,7 @@ nav:
|
||||
- Export Plugins:
|
||||
- BOM Exporter: plugins/builtin/bom_exporter.md
|
||||
- InvenTree Exporter: plugins/builtin/inventree_exporter.md
|
||||
- Parameter Exporter: plugins/builtin/part_parameter_exporter.md
|
||||
- Parameter Exporter: plugins/builtin/parameter_exporter.md
|
||||
- Stocktake Exporter: plugins/builtin/stocktake_exporter.md
|
||||
- Label Printing:
|
||||
- Label Printer: plugins/builtin/inventree_label.md
|
||||
|
||||
Reference in New Issue
Block a user