2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-10-29 12:27:41 +00:00

[docs] Docs updates (#10678)

* Display PendingShipments panel

- Overview of all outstanding shipments

* Update UI tests

* add separate page for troubleshooting

* Restructure menus a bit

* Fix top-level page for mobile app

* Add option to override default value in docs

* Update global.md

* Formatting updates

* Update sales pages

* Move order images to "purchasing"

* Small tweaks

* Make "Concepts" a top-level documentation item

* Update image
This commit is contained in:
Oliver
2025-10-26 17:16:59 +11:00
committed by GitHub
parent c54f3f4a30
commit 1f438bb734
56 changed files with 272 additions and 217 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 114 KiB

View File

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

Before

Width:  |  Height:  |  Size: 89 KiB

After

Width:  |  Height:  |  Size: 89 KiB

View File

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 56 KiB

View File

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

Before

Width:  |  Height:  |  Size: 225 KiB

After

Width:  |  Height:  |  Size: 225 KiB

View File

Before

Width:  |  Height:  |  Size: 169 KiB

After

Width:  |  Height:  |  Size: 169 KiB

View File

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 106 KiB

View File

Before

Width:  |  Height:  |  Size: 138 KiB

After

Width:  |  Height:  |  Size: 138 KiB

View File

Before

Width:  |  Height:  |  Size: 286 KiB

After

Width:  |  Height:  |  Size: 286 KiB

View File

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 114 KiB

View File

Before

Width:  |  Height:  |  Size: 317 KiB

After

Width:  |  Height:  |  Size: 317 KiB

View File

Before

Width:  |  Height:  |  Size: 263 KiB

After

Width:  |  Height:  |  Size: 263 KiB

View File

Before

Width:  |  Height:  |  Size: 176 KiB

After

Width:  |  Height:  |  Size: 176 KiB

View File

Before

Width:  |  Height:  |  Size: 125 KiB

After

Width:  |  Height:  |  Size: 125 KiB

View File

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

View File

Before

Width:  |  Height:  |  Size: 140 KiB

After

Width:  |  Height:  |  Size: 140 KiB

View File

Before

Width:  |  Height:  |  Size: 118 KiB

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

View File

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 72 KiB

View File

Before

Width:  |  Height:  |  Size: 125 KiB

After

Width:  |  Height:  |  Size: 125 KiB

View File

Before

Width:  |  Height:  |  Size: 123 KiB

After

Width:  |  Height:  |  Size: 123 KiB

View File

Before

Width:  |  Height:  |  Size: 173 KiB

After

Width:  |  Height:  |  Size: 173 KiB

View File

Before

Width:  |  Height:  |  Size: 156 KiB

After

Width:  |  Height:  |  Size: 156 KiB

View File

Before

Width:  |  Height:  |  Size: 200 KiB

After

Width:  |  Height:  |  Size: 200 KiB

View File

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 76 KiB

View File

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 80 KiB

View File

Before

Width:  |  Height:  |  Size: 136 KiB

After

Width:  |  Height:  |  Size: 136 KiB

View File

Before

Width:  |  Height:  |  Size: 192 KiB

After

Width:  |  Height:  |  Size: 192 KiB

View File

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 87 KiB

View File

Before

Width:  |  Height:  |  Size: 177 KiB

After

Width:  |  Height:  |  Size: 177 KiB

View File

Before

Width:  |  Height:  |  Size: 263 KiB

After

Width:  |  Height:  |  Size: 263 KiB

View File

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

After

Width:  |  Height:  |  Size: 113 KiB

View File

@@ -29,7 +29,7 @@ It is recommended to disable a company rather than deleting it, as this will pre
To disable a company, simply edit the company details and set the `active` attribute to `False`:
{{ image("order/company_disable.png", "Disable Company") }}
{{ image("purchasing/company_disable.png", "Disable Company") }}
To re-enable a company, simply follow the same process and set the `active` attribute to `True`.
@@ -49,7 +49,7 @@ Each company can have multiple assigned *Contacts*. A contact identifies an indi
The list of contacts associated with a particular company is available in the <span class='badge inventree nav main'>{{ icon("users") }} Contacts</span> navigation tab:
{{ image("order/contact_list.png", "Company Contacts") }}
{{ image("purchasing/contact_list.png", "Company Contacts") }}
A *contact* can be assigned to orders, (such as [purchase orders](../purchasing/purchase_order.md) or [sales orders](../sales/sales_order.md)).

View File

@@ -37,10 +37,10 @@ By default, project code support is disabled. Select the *Enable Project Codes*
Project codes can be assigned to an order when the order is created, or at any later stage by simply editing the order. If project code support is enabled, a *Project Code* field is available in the order details form:
{{ image("order/assign_project_code.png", "Assign Project Code") }}
{{ image("purchasing/assign_project_code.png", "Assign Project Code") }}
## Filtering by Project Codes
The order tables can be easily filtered or sorted by project code:
{{ image("order/filter_by_project.png", "Filter by Project Code") }}
{{ image("purchasing/filter_by_project.png", "Filter by Project Code") }}

View File

@@ -2,7 +2,7 @@
title: Threat Model
---
## Thread Model
## Threat Model
Deploying InvenTree to production requires to knowledge of the security assumptions and threat model of the underlying system. This document outlines the security assumptions and threat model of InvenTree as a software. It is assumed that the system that InvenTree is deployed on top of is configured following best practices and is trusted.

View File

@@ -8,7 +8,7 @@ Below is a list of frequently asked questions. If you are having issues with Inv
Also, you can refer to our [GitHub page](https://github.com/inventree/inventree/issues) for known issues and bug reports - perhaps your issue has already been reported!
If you cannot resolve the issue, please refer to the [troubleshooting guide](#troubleshooting-guide).
If you cannot resolve the issue, please refer to the [troubleshooting guide](./troubleshooting.md) for further assistance.
## Installation Issues
@@ -195,76 +195,3 @@ This means that either:
- The docker user does not have write permission to the specified directory
In either case, ensure that the directory is available *on your local machine* and the user account has the required permissions.
## Troubleshooting Guide
If you are struggling with an issue which is not covered in the FAQ above, please refer to the following troubleshooting steps.
Even if you cannot immediately resolve the issue, the information below will be very useful when reporting the issue on GitHub.
### Run Update Step
If you have recently installed or updated your InvenTree instance, make sure that you have run the `invoke update` command, which will perform any required database migrations and other update tasks. This is a *critical step* after any system update.
#### Docker
If you are have installed InvenTree via Docker:
```bash
docker-compose exec inventree-server invoke update
```
#### Installer
If you have installed InvenTree via the installer script:
```bash
inventree run invoke update
```
### Logged Errors
Look at the logged error reports in the admin section - you will need to be an administrator to access this section. If a critical error has occurred, it may be logged here.
### GitHub Issues
Before raising a new issue, please check the [GitHub issues page](https://github.com/inventree/inventree) for reported issues. If your issue is a common one, it may already have been reported - and perhaps even resolved!
### Web Browser Console
If you are experiencing issues with the web interface, you can open the developer console in your web browser to check for error messages. This may vary slightly between web browsers, but there is a wealth of information available online if you need help.
Once the developer console is open, there are two places to check for error messages:
#### Console Tab
Navigate to the *Console* tab in the developer tools. Any error messages will be highlighted in red. They may indicate either a rendering issue, or a problem with a network request.
#### Network Tab
Navigate to the *Network* tab in the developer tools. Check for any requests which have a status code of 400 or greater (indicating an error). Click on the request to see more information about the error.
### Server Logs
Finally, you can check the server logs for error messages. The location of the server logs will depend on how you have installed InvenTree.
#### Docker
If you are using Docker, you can view the server logs with the following command:
To display logs for all running containers:
```bash
docker compose logs
```
Refer to the [docker documentation](./start/docker_install.md#viewing-logs) for more information.
#### Installer
If you are using the installer script, you can view the server logs with the following command:
```bash
inventree logs
```
Refer to the [installer documentation](./start/installer.md#viewing-logs) for more information.

View File

@@ -2,18 +2,17 @@
title: Trackable Parts
---
Denoting a part as *Trackble* changes the way that [stock items](../stock/index.md) associated with the particular part are handled in the database. A trackable part also has more restrictions imposed by the database scheme.
## Stock Tracking
Denoting a part as *Trackble* changes the way that [stock items](../stock/index.md) associated with the particular part are handled in the database. A trackable part also has more restrictions imposed by the database scheme.
For many parts in an InvenTree database, simply tracking current stock levels (and locations) is sufficient. However, some parts require more extensive tracking than simple stock level knowledge.
Any stock item associated with a trackable part *must* have either a batch number or a serial number. This includes stock created manually or via an internal process (such as a [Purchase Order](../purchasing/purchase_order.md) or a [Build Order](../manufacturing/build.md)).
## Assign Serial Numbers
Serial numbers (if activate for a part) are used in multiple forms and processes in InvenTree.
Serial numbers (for parts which are marked as trackable) are used in multiple forms and processes in InvenTree.
For faster input there are several ways to define the wanted serial numbers(SN):

View File

@@ -4,14 +4,14 @@ title: Manufacturers
## Manufacturers
A manufacturer is an external **producer** of parts and raw materials.
A manufacturer is a [company](../concepts/company.md) which acts as an external producer of parts and raw materials. A manufacturer may or may not also be a [supplier](./supplier.md) of those parts.
!!! info
**Viewing**, **adding**, **editing** and **deleting** manufacturers require the corresponding [Purchase Orders user permissions](../settings/permissions.md)
To access the list of manufacturers , click on the <span class="badge inventree nav main">{{ icon("shopping-cart") }} Buy</span> navigation tab and click on <span class="badge inventree nav main">{{ icon("building-factory-2") }} Manufacturers</span> option in the dropdown list.
{{ image("order/manufacturer_list.png", "Manufacturer List") }}
{{ image("purchasing/manufacturer_list.png", "Manufacturer List") }}
### Add Manufacturer
@@ -32,8 +32,8 @@ Manufacturer parts are linked to a manufacturer and defined as manufacturable it
To create a manufacturer part, you have the following options:
* either navigate to a Part detail page then click on the <span class="badge inventree nav side">{{ icon("building") }} Suppliers</span> tab
* or navigate to a Manufacturer detail page then click on the <span class="badge inventree nav side">{{ icon("building-factory-2") }} Manufactured Parts</span> tab.
* Navigate to a Part detail page then click on the <span class="badge inventree nav side">{{ icon("building") }} Suppliers</span> tab
* Navigate to a Manufacturer detail page then click on the <span class="badge inventree nav side">{{ icon("building-factory-2") }} Manufactured Parts</span> tab.
Whichever you pick, click on the <span class="badge inventree add">{{ icon("plus-circle") }} New Manufacturer Part</span> button to load the "Create New Manufacturer Part" form. Fill out the form with the manufacturer part information then click on <span class="badge inventree confirm">Submit</span>
@@ -41,8 +41,8 @@ Whichever you pick, click on the <span class="badge inventree add">{{ icon("plus
To edit a manufacturer part, first access the manufacturer part detail page with one of the following options:
* either navigate to a Part detail page, click on the <span class="badge inventree nav side">{{ icon("building") }} Suppliers</span> tab then, in the <span class="badge inventree nav main">Part Manufacturers</span> table, click on the _MPN_ link
* or navigate to a Manufacturer detail page, click on the <span class="badge inventree nav side">{{ icon("building-factory-2") }} Manufactured Parts</span> tab then click on the _MPN_ link.
* Navigate to a Part detail page, click on the <span class="badge inventree nav side">{{ icon("building") }} Suppliers</span> tab then, in the <span class="badge inventree nav main">Part Manufacturers</span> table, click on the _MPN_ link
* Navigate to a Manufacturer detail page, click on the <span class="badge inventree nav side">{{ icon("building-factory-2") }} Manufactured Parts</span> tab then click on the _MPN_ link.
After the manufacturer part details are loaded, click on the {{ icon("edit", color="blue", title="Edit") }} icon next to the manufacturer part image. Edit the manufacturer part information then click on <span class="badge inventree confirm">Submit</span>

View File

@@ -10,7 +10,7 @@ Purchase orders allow to track which parts are bought from suppliers and manufac
To navigate to the Purchase Order display, select *Purchasing* from the main navigation menu, and *Build Orders* from the sidebar:
{{ image("order/po_display.png", "Purchase Order Display") }}
{{ image("purchasing/po_display.png", "Purchase Order Display") }}
The following view modes are available:
@@ -18,13 +18,13 @@ The following view modes are available:
*Table View* provides a list of Purchase Orders, which can be filtered to display a subset of orders according to user supplied parameters.
{{ image("order/po_list.png", "Purchase Order List") }}
{{ image("purchasing/po_list.png", "Purchase Order List") }}
#### Calendar View
*Calendar View* shows a calendar display with outstanding purchase orders, based on the various dates specified for each order.
{{ image("order/po_calendar.png", "Purchase Order Calendar") }}
{{ image("purchasing/po_calendar.png", "Purchase Order Calendar") }}
### Purchase Order Status Codes
@@ -153,15 +153,15 @@ Duplicating a Purchase Order allows the user to quickly create a new *copy* of a
To duplicate an existing order, select the *Duplicate Order* action from the menu in the top-right of the screen (as shown below):
{{ image("order/po_duplicate.png", "Duplicate Purchase Order") }}
{{ image("purchasing/po_duplicate.png", "Duplicate Purchase Order") }}
This opens the following dialog, where you can adjust the parameters of the new order before proceeding to actually create the new order. You can see in the screenshot below that some extra options are provided in this form, to control duplication of individual line items.
{{ image("order/po_duplicate_2.png", "Duplicate Purchase Order") }}
{{ image("purchasing/po_duplicate_2.png", "Duplicate Purchase Order") }}
A new purchase order is then created based on the currently selected order:
{{ image("order/po_duplicate_3.png", "Duplicate Purchase Order") }}
{{ image("purchasing/po_duplicate_3.png", "Duplicate Purchase Order") }}
## Order Scheduling

View File

@@ -5,11 +5,11 @@ title: Suppliers
## Suppliers
A supplier is an external **vendor** of parts and raw materials.
A supplier is a [company](../concepts/company.md) which acts as an external vendor of parts and raw materials.
To access the supplier page, click on the <span class="badge inventree nav main">{{ icon("shopping-cart") }} Buy</span> navigation tab and click on <span class="badge inventree nav main">{{ icon("building") }} Suppliers</span> option in the dropdown list.
{{ image("order/supplier_list.png", "Supplier List") }}
{{ image("purchasing/supplier_list.png", "Supplier List") }}
!!! info
**Viewing**, **adding**, **editing** and **deleting** suppliers require the corresponding [Purchase Orders user permissions](../settings/permissions.md)
@@ -54,11 +54,11 @@ Supplier parts can be individually disabled - for example, if a supplier part is
The "active" status of a supplier part is clearly visible within the user interface:
{{ image("order/disable_supplier_part.png", "Disable Supplier Part") }}
{{ image("purchasing/disable_supplier_part.png", "Disable Supplier Part") }}
To change the "active" status of a supplier part, simply edit the supplier part details and set the `active` attribute:
{{ image("order/disable_supplier_part_edit.png", "Disable Supplier Part Edit") }}
{{ image("purchasing/disable_supplier_part_edit.png", "Disable Supplier Part Edit") }}
It is recommended to disable a supplier part rather than deleting it, as this will preserve the integrity of historical data.
@@ -76,11 +76,11 @@ A custom can periodically request availability information (via a supplier API),
If provided, availability information is displayed on the Supplier Part detail page.
{{ image("order/supplier_part_availability.png", "Supplier Part Availability") }}
{{ image("purchasing/supplier_part_availability.png", "Supplier Part Availability") }}
Availability information can be manually updated via the user interface:
{{ image("order/update_availability.png", "Update Availability") }}
{{ image("purchasing/update_availability.png", "Update Availability") }}
## Supplier Part Pack Size

View File

@@ -4,13 +4,15 @@ title: Customers
## Customers
A *customer* is an external client to whom parts or services are sold.
A *customer* is an external [company](../concepts/company.md) to which parts or services are sold.
To access the customer page, click on the <span class="badge inventree nav main">{{ icon("truck-delivery") }} Sales</span> navigation tab and click on <span class="badge inventree nav main">{{ icon("building-store") }} Customers</span> option in the dropdown list.
!!! warning
**Viewing**, **adding**, **editing** and **deleting** customers require the corresponding [Sales Orders user permissions](../settings/permissions.md)
{{ image("sales/customers.png", "Customers list") }}
### Add Customer
Once the customer page is loaded, click on the <span class="badge inventree add">{{ icon("plus-circle") }} New Customer</span> button: the "Create new Customer" form opens. Fill-in the manufacturer information (`Company name` and `Company description` are required) then click on <span class="badge inventree confirm">Submit</span>

View File

@@ -4,7 +4,7 @@ title: Return Order
## Return Orders
Return Orders allow stock items (which have been sold or allocated to a customer) to be to be returned into stock, typically for the purpose of repair or refund.
Return Orders allow stock items (which have been sold or allocated to a [customer](./customer.md)) to be to be returned into stock, typically for the purpose of repair or refund.
!!! tip "An Order By Any Other Name"
A Return Order may also be known as an [RMA](https://en.wikipedia.org/wiki/Return_merchandise_authorization)
@@ -13,7 +13,7 @@ Return Orders allow stock items (which have been sold or allocated to a customer
To navigate to the Return Order display, select *Sales* from the main navigation menu, and *Return Orders* from the sidebar:
{{ image("order/ro_display.png", "Return Order Display") }}
{{ image("sales/ro_display.png", "Return Order Display") }}
The following view modes are available:
@@ -21,23 +21,23 @@ The following view modes are available:
*Table View* provides a list of Return Orders, which can be filtered to display a subset of orders according to user supplied parameters.
{{ image("order/ro_list.png", "Return Order List") }}
{{ image("sales/ro_list.png", "Return Order List") }}
#### Calendar View
*Calendar View* shows a calendar display with outstanding return orders, based on the various dates specified for each order.
{{ image("order/ro_calendar.png", "Return Order Calendar") }}
{{ image("sales/ro_calendar.png", "Return Order Calendar") }}
### Enable Return Order Functionality
By default, Return Order functionality is not enabled - it must be enabled by a *staff* user from the settings page:
{{ image("order/return_order_enable.png", "Enable Return Orders") }}
{{ image("sales/return_order_enable.png", "Enable Return Orders") }}
Once this setting is enabled, you can access the "Return Orders" page from the main navigation bar:
{{ image("order/return_order_navbar.png", "Access return orders") }}
{{ image("sales/return_order_navbar.png", "Access return orders") }}
### Return Order Permissions
@@ -47,7 +47,7 @@ Once this setting is enabled, you can access the "Return Orders" page from the m
A list of Return Orders is displayed on the *Return Order* index page:
{{ image("order/return_order_index.png", "Return Order Index") }}
{{ image("sales/return_order_index.png", "Return Order Index") }}
Various filters are available to configure which orders are displayed, and how they are arranged.
@@ -86,7 +86,7 @@ A Return Order is linked to a specific customer, which can be selected from the
!!! warning "Customers Only"
Only companies with the "Customer" attribute enabled will be shown and can be selected
{{ image("order/return_order_create.png", "Create Return Order") }}
{{ image("sales/return_order_create.png", "Create Return Order") }}
Fill in the rest of the form with the return order information, and then click on <span class='badge inventree confirm'>Submit</span> to create the order.
@@ -102,7 +102,7 @@ The order can be assigned to a responsible *owner*, which is either a user or gr
Individual Return Orders can be viewed via the Return Order detail page:
{{ image("order/return_order_detail.png", "Return Order Detail") }}
{{ image("sales/return_order_detail.png", "Return Order Detail") }}
Here the details of the return order are available, and specific actions can be performed:

View File

@@ -5,13 +5,13 @@ title: Sales Orders
## Sales Orders
Sales orders allow tracking of which stock items are sold to customers, therefore converting stock items / inventory into externally sold items.
Sales orders allow tracking of which stock items are sold to [customers](./customer.md), therefore converting stock items / inventory into externally sold items.
### View Sales Orders
To navigate to the Sales Order display, select *Sales* from the main navigation menu, and *Sales Orders* from the sidebar:
{{ image("order/so_display.png", "Sales Order display") }}
{{ image("sales/so_display.png", "Sales Order display") }}
The following view modes are available:
@@ -19,13 +19,13 @@ The following view modes are available:
*Table View* provides a list of Sales Orders, which can be filtered to display a subset of orders according to user supplied parameters.
{{ image("order/so_list.png", "Sales Order list") }}
{{ image("sales/so_list.png", "Sales Order list") }}
#### Calendar View
*Calendar View* shows a calendar display with outstanding sales orders.
{{ image("order/so_calendar.png", "Sales Order calendar") }}
{{ image("sales/so_calendar.png", "Sales Order calendar") }}
### Sales Order Status Codes
@@ -114,7 +114,7 @@ During the allocation process, user is required to select the desired shipment t
Shipments can be marked as "checked" to indicate that the items in the shipment has been verified. To mark a shipment as "checked", open the shipment actions menu, and select the "Check" action:
{{ image("order/so_shipment_check.png", "Check shipment") }}
{{ image("sales/so_shipment_check.png", "Check shipment") }}
The shipment will be marked as checked by the current user.
@@ -177,7 +177,7 @@ The *Pending Shipments* panel displays the shipments which have not yet been sen
- Pending sales order items can be allocated to these shipments
- New shipments can be created if the order is still open
{{ image("order/pending_shipments.png", "Pending shipments") }}
{{ image("sales/pending_shipments.png", "Pending shipments") }}
#### Creating a new Shipment
@@ -187,11 +187,11 @@ To create a new shipment for a sales order, press the *New Shipment* button abov
To complete a shipment, press the *Complete Shipment* button associated with the particular shipment:
{{ image("order/complete_shipment.png", "Complete shipment") }}
{{ image("sales/complete_shipment.png", "Complete shipment") }}
### Completed Shipments
{{ image("order/completed_shipments.png", "Completed shipments") }}
{{ image("sales/completed_shipments.png", "Completed shipments") }}
### Shipment Data
@@ -220,7 +220,7 @@ An optional URL field which can be used to provide a link to an external URL.
All these fields can be edited by the user:
{{ image("order/edit_shipment.png", "Edit shipment") }}
{{ image("sales/edit_shipment.png", "Edit shipment") }}
## Sales Order Settings

View File

@@ -2,15 +2,31 @@
title: InvenTree Admin Interfaces
---
## InvenTree Admin Interfaces
There are multiple administration interfaces available in InvenTree, which provide different levels of access to the underlying resources and different operational safety.
- Admin Center - Main interface for managing InvenTree - Robust verification and safety checks
- System Settings - Access to all settings - Robust verification, requires reading the documentation
- Backend Admin Interface - Low level access to the database - Few verification or safety checks
[**Admin Center**](#admin-center):
- Main interface for managing InvenTree
- Robust verification and safety checks
[**System Settings**](#system-settings):
- Access to all settings
- Robust verification, requires reading the documentation
[**Backend Admin Interface**](#backend-admin-interface):
- Low level access to the database
- Few verification or safety checks
- Requires knowledge of InvenTree internals
- Recommended for advanced users only
### Admin Center
The Admin Center is the main interface for managing InvenTree. It provides a user-friendly interface for managing all aspects of the system, including:
- Users / Groups
- Data import / export
- Customisation (e.g. project codes, custom states, parameters and units)

View File

@@ -4,8 +4,22 @@ title: Exporting Data
## Exporting Data
InvenTree provides data export functionality for a variety of data types. Most data tables provide an "Export Data" button, which allows the user to export the data in a variety of formats.
InvenTree provides data export functionality for a variety of data types. Most data tables provide an "Download" button, which allows the user to export the data in a variety of formats.
In the top right corner of the table, click the "Export Data" button to export the data in the table.
In the top right corner of the table, click the "Download" button to export the data in the table.
{{ image("admin/export.png", "Export data") }}
{{ image("admin/export.png", "Download") }}
This will present a dialog box with the available export options:
{{ image("admin/export_options.png", "Export Dialog") }}
## Plugin Support
InvenTree plugins can also provide custom export functionality for specific data types. If a plugin provides export functionality, it will be listed in the export options.
Refer to the [export plugin mixin documentation](../plugins/mixins/export.md) for more information on how to create export plugins.
## API Export
Data can also be exported via the InvenTree REST API, by appending the appropriate format suffix (and other export options) to the API endpoint URL.

View File

@@ -25,7 +25,7 @@ Configuration of basic server settings:
{{ globalsetting("INVENTREE_COMPANY_NAME") }}
{{ globalsetting("INVENTREE_INSTANCE") }}
{{ globalsetting("INVENTREE_INSTANCE_TITLE") }}
{{ globalsetting("INVENTREE_INSTANCE_ID") }}
{{ globalsetting("INVENTREE_INSTANCE_ID", default="Randomly generated value") }}
{{ globalsetting("INVENTREE_ANNOUNCE_ID") }}
{{ globalsetting("INVENTREE_RESTRICT_ABOUT") }}
{{ globalsetting("DISPLAY_FULL_NAMES") }}
@@ -186,10 +186,10 @@ In this section of the settings, staff users can set a list of parameters associ
To add a parameter to a part category:
1. select the category in the dropdown list
2. click the <span class="badge inventree add">{{ icon("plus-circle") }} New Parameter</span> button on the top right
3. fill out the "Create Category Parameter Template" form
4. click the <span class="badge inventree confirm">Submit</span> button.
1. Select the category in the dropdown list
2. Click the <span class="badge inventree add">{{ icon("plus-circle") }} New Parameter</span> button on the top right
3. Fill out the "Create Category Parameter Template" form
4. Click the <span class="badge inventree confirm">Submit</span> button.
After a list of parameters is added to a part category and upon creation of a new part in this category, this list of parameters will be added by default to the new part.

View File

@@ -25,15 +25,17 @@ A *role* is a set of distinct permissions linked to a given subset of InvenTree
InvenTree functionality is split into a number of distinct roles. A group will have a set of permissions assigned to each of the following roles:
- **Admin** - The *admin* role is related to assigning user permissions.
- **Part Category** - The *part category* role is related to accessing Part Category data
- **Part** - The *part* role is related to accessing Part data
- **Stock Location** - The *stock location* role is related to accessing Stock Location data
- **Stock Item** - The *stock item* role is related to accessing Stock Item data
- **Build** - The *build* role is related to accessing Build Order and Bill of Materials data
- **Purchase Order** - The *purchase* role is related to accessing Purchase Order data
- **Sales Order** - The *sales* role is related to accessing Sales Order data
- **Return Order** - The *return* role is related to accessing Return Order data
| Role | Description |
| ---- | ----------- |
| **Admin** | The *admin* role is related to assigning user permissions. |
| **Build** | The *build* role is related to accessing Build Order and Bill of Materials data |
| **Part** | The *part* role is related to accessing Part data |
| **Part Category** | The *part category* role is related to accessing Part Category data |
| **Purchase Order** | The *purchase* role is related to accessing Purchase Order data |
| **Return Order** | The *return* role is related to accessing Return Order data |
| **Sales Order** | The *sales* role is related to accessing Sales Order data |
| **Stock Item** | The *stock item* role is related to accessing Stock Item data |
| **Stock Location** | The *stock location* role is related to accessing Stock Location data |
{{ image("admin/roles.png", "Roles") }}
@@ -41,10 +43,12 @@ InvenTree functionality is split into a number of distinct roles. A group will h
Within each role, there are four levels of available permissions:
- **View** - The *view* permission allows viewing of content related to the particular role
- **Change** - The *change* permission allows the user to edit / alter / change data associated with the particular role
- **Add** - The *add* permission allows the user to add / create database records associated with the particular role
- **Delete** - The *delete* permission allows the user to delete / remove database records associated with the particular role
| Permission | Description |
| ---------- | ----------- |
| **View** | The *view* permission allows viewing of content related to the particular role |
| **Change** | The *change* permission allows the user to edit / alter / change data associated with the particular role |
| **Add** | The *add* permission allows the user to add / create database records associated with the particular role |
| **Delete** | The *delete* permission allows the user to delete / remove database records associated with the particular role |
## Admin Interface Permissions

View File

@@ -2,34 +2,7 @@
title: Stock
---
## Stock Location
A stock location represents a physical real-world location where *Stock Items* are stored. Locations are arranged in a cascading manner and each location may contain multiple sub-locations, or stock, or both.
### Icons
Stock locations can be assigned custom icons (either directly or through [Stock Location Types](#stock-location-type)). In the web interface there is a custom icon picker component available that can help to select the right icon. However in CUI the icon needs to be entered manually.
By default, the tabler icons package (with prefix: `ti`) is available. To manually select an item, search on the [tabler icons](https://tabler.io/icons) page for an icon and copy its name e.g. `bookmark`. Some icons have a filled and an outline version (if no variants are specified, it's an outline variant). Now these values can be put into the format: `<package-prefix>:<icon-name>:<variant>`. E.g. `ti:bookmark:outline` or `ti:bookmark:filled`.
If there are some icons missing in the tabler icons package, users can even install their own custom icon packs through a plugin. See [`IconPackMixin`](../plugins/mixins/icon.md).
## Stock Location Type
A stock location type represents a specific type of location (e.g. one specific size of drawer, shelf, ... or box) which can be assigned to multiple stock locations. In the first place, it is used to specify an icon and having the icon in sync for all locations that use this location type, but it also serves as a data field to quickly see what type of location this is. It is planned to add e.g. drawer dimension information to the location type to add a "find a matching, empty stock location" tool.
## External Stock Location
An external stock location can be used to indicate that items in there might not be available
for immediate usage. Stock items in an external location are marked with an additional icon
in the build order line items view where the material is allocated.
{{ image("stock/stock_external_icon.png", title="External stock indication") }}
Anyhow there is no limitation on the stock item. It can be allocated as usual.
The external flag does not get inherited to sublocations.
## Stock Item
## Stock Items
A *Stock Item* is an actual instance of a [*Part*](../part/index.md) item. It represents a physical quantity of the *Part* in a specific location.
@@ -58,3 +31,30 @@ The *Stock Item* detail view shows information regarding the particular stock it
Every time a *Stock Item* is adjusted, a *Stock Tracking* entry is automatically created. This ensures a complete history of the *Stock Item* is maintained as long as the item is in the system.
Each stock tracking historical item records the user who performed the action.
## Stock Location
A stock location represents a physical real-world location where *Stock Items* are stored. Locations are arranged in a cascading manner and each location may contain multiple sub-locations, or stock, or both.
### Icons
Stock locations can be assigned custom icons (either directly or through [Stock Location Types](#stock-location-type)). In the web interface there is a custom icon picker component available that can help to select the right icon. However in CUI the icon needs to be entered manually.
By default, the tabler icons package (with prefix: `ti`) is available. To manually select an item, search on the [tabler icons](https://tabler.io/icons) page for an icon and copy its name e.g. `bookmark`. Some icons have a filled and an outline version (if no variants are specified, it's an outline variant). Now these values can be put into the format: `<package-prefix>:<icon-name>:<variant>`. E.g. `ti:bookmark:outline` or `ti:bookmark:filled`.
If there are some icons missing in the tabler icons package, users can even install their own custom icon packs through a plugin. See [`IconPackMixin`](../plugins/mixins/icon.md).
## Stock Location Type
A stock location type represents a specific type of location (e.g. one specific size of drawer, shelf, ... or box) which can be assigned to multiple stock locations. In the first place, it is used to specify an icon and having the icon in sync for all locations that use this location type, but it also serves as a data field to quickly see what type of location this is. It is planned to add e.g. drawer dimension information to the location type to add a "find a matching, empty stock location" tool.
## External Stock Location
An external stock location can be used to indicate that items in there might not be available
for immediate usage. Stock items in an external location are marked with an additional icon
in the build order line items view where the material is allocated.
{{ image("stock/stock_external_icon.png", title="External stock indication") }}
Anyhow there is no limitation on the stock item. It can be allocated as usual.
The external flag does not get inherited to sublocations.

View File

@@ -16,7 +16,7 @@ in admin panel. It just hides buttons for edit, add and delete actions. This mea
should have access by ownership needs to have stock item write access set in the admin panel. By
this he also gets write access to all other items, except the item has a different owner.
Example
#### Example
* Stock item 1111 has an owner called Daniel
* Stock item 2222 has an owner called Peter

View File

@@ -0,0 +1,87 @@
---
title: Troubleshooting
---
## Troubleshooting Guide
If you are struggling with an issue which is not covered in the FAQ above, please refer to the following troubleshooting steps.
Even if you cannot immediately resolve the issue, the information below will be very useful when reporting the issue on GitHub.
## Recent Update
If you have recently updated your InvenTree instance, please ensure that you have followed all update instructions carefully. In particular, make sure that you have run any required database migrations using the `invoke update` command.
### Breaking Changes
Some updates may include breaking changes which require additional steps to resolve. Please refer to (and carefully read) the relevant release notes for more information. Breaking changes may require user intervention to resolve. In such instances, the release notes will clearly indicate the required steps.
## Common Troubleshooting Steps
### Run Update Step
If you have recently installed or updated your InvenTree instance, make sure that you have run the `invoke update` command, which will perform any required database migrations and other update tasks. This is a *critical step* after any system update.
#### Docker
If you are have installed InvenTree via Docker:
```bash
docker-compose exec inventree-server invoke update
```
#### Installer
If you have installed InvenTree via the installer script:
```bash
inventree run invoke update
```
### Logged Errors
Look at the logged error reports in the admin section - you will need to be an administrator to access this section. If a critical error has occurred, it may be logged here.
### GitHub Issues
Before raising a new issue, please check the [GitHub issues page](https://github.com/inventree/inventree) for reported issues. If your issue is a common one, it may already have been reported - and perhaps even resolved!
### Web Browser Console
If you are experiencing issues with the web interface, you can open the developer console in your web browser to check for error messages. This may vary slightly between web browsers, but there is a wealth of information available online if you need help.
Once the developer console is open, there are two places to check for error messages:
#### Console Tab
Navigate to the *Console* tab in the developer tools. Any error messages will be highlighted in red. They may indicate either a rendering issue, or a problem with a network request.
#### Network Tab
Navigate to the *Network* tab in the developer tools. Check for any requests which have a status code of 400 or greater (indicating an error). Click on the request to see more information about the error.
### Server Logs
Finally, you can check the server logs for error messages. The location of the server logs will depend on how you have installed InvenTree.
#### Docker
If you are using Docker, you can view the server logs with the following command:
To display logs for all running containers:
```bash
docker compose logs
```
Refer to the [docker documentation](./start/docker_install.md#viewing-logs) for more information.
#### Installer
If you are using the installer script, you can view the server logs with the following command:
```bash
inventree logs
```
Refer to the [installer documentation](./start/installer.md#viewing-logs) for more information.

View File

@@ -318,17 +318,20 @@ def define_env(env):
json.dump(data, f, indent=4)
@env.macro
def rendersetting(key: str, setting: dict, short: bool = False):
def rendersetting(
key: str, setting: dict, short: bool = False, default: Optional[str] = None
):
"""Render a provided setting object into a table row.
Arguments:
key: The name of the setting to extract information for.
setting: The setting object to render.
short: If True, return a short version of the setting (default: False)
default: An optional default value to override the setting's default display value.
"""
name = setting['name']
description = setting['description']
default = setting.get('default')
default = default or setting.get('default')
units = setting.get('units')
default = f'`{default}`' if default else ''
@@ -340,12 +343,13 @@ def define_env(env):
return f'| <div title="{key}"><strong>{name}</strong></div> | {description} | {default} | {units} |'
@env.macro
def globalsetting(key: str, short: bool = False):
def globalsetting(key: str, short: bool = False, default: Optional[str] = None):
"""Extract information on a particular global setting.
Arguments:
key: The name of the global setting to extract information for.
short: If True, return a short version of the setting (default: False)
default: An optional default value to override the setting's default display value.
"""
global GLOBAL_SETTINGS
setting = GLOBAL_SETTINGS[key]
@@ -354,7 +358,7 @@ def define_env(env):
if not short:
observe_setting(key, 'global')
return rendersetting(key, setting, short=short)
return rendersetting(key, setting, short=short, default=default)
@env.macro
def usersetting(key: str, short: bool = False):

View File

@@ -74,57 +74,33 @@ nav:
- InvenTree:
- InvenTree: index.md
- FAQ: faq.md
- Troubleshooting: troubleshooting.md
- Demo: demo.md
- Release Notes: releases/release_notes.md
- Core Concepts:
- Terminology: concepts/terminology.md
- Threat Model: concepts/threat_model.md
- Physical Units: concepts/units.md
- Companies: concepts/company.md
- Custom States: concepts/custom_states.md
- Pricing: concepts/pricing.md
- Project Codes: concepts/project_codes.md
- Barcodes:
- Barcode Support: barcodes/index.md
- Internal Barcodes: barcodes/internal.md
- External Barcodes: barcodes/external.md
- Custom Barcodes: barcodes/custom.md
- Development:
- Contributing: develop/contributing.md
- Architecture: develop/architecture.md
- Roadmap: develop/roadmap.md
- Devcontainer: develop/devcontainer.md
- React Frontend: develop/react-frontend.md
- Mobile App:
- Mobile App: app/index.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
- InvenTree API:
- Overview: api/index.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/index.md
- Currency Support: api/python/currency.md
- Examples: api/python/examples.md
- Project Details:
- Governance: project/governance.md
- Project Security: security.md
- Resources: project/resources.md
- Privacy: privacy.md
- Concepts:
- Terminology: concepts/terminology.md
- Threat Model: concepts/threat_model.md
- Physical Units: concepts/units.md
- Companies: concepts/company.md
- Custom States: concepts/custom_states.md
- Pricing: concepts/pricing.md
- Project Codes: concepts/project_codes.md
- Barcodes:
- Barcode Support: barcodes/index.md
- Internal Barcodes: barcodes/internal.md
- External Barcodes: barcodes/external.md
- Custom Barcodes: barcodes/custom.md
- Setup:
- Introduction: start/index.md
- Processes: start/processes.md
@@ -201,7 +177,7 @@ nav:
- User Permissions: settings/permissions.md
- Single Sign on: settings/SSO.md
- Multi Factor Authentication: settings/MFA.md
- Email: settings/email.md
- Email Settings: settings/email.md
- Experimental Features: settings/experimental.md
- Export Data: settings/export.md
- Import Data: settings/import.md
@@ -245,7 +221,7 @@ nav:
- Machines:
- Overview: plugins/machines/overview.md
- Label Printer: plugins/machines/label_printer.md
- Builtin Plugins:
- Builtin:
- Builtin Plugins: plugins/builtin/index.md
- Barcode Plugins:
- Barcode Plugins: plugins/builtin/barcode_index.md
@@ -272,6 +248,32 @@ nav:
- Slack Notifications: plugins/builtin/slack_notification.md
- UI Notifications: plugins/builtin/ui_notification.md
- Currency Exchange: plugins/builtin/currency_exchange.md
- "Mobile App":
- Overview: app/index.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
- API:
- Overview: api/index.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/index.md
- Currency Support: api/python/currency.md
- Examples: api/python/examples.md
# Plugins
plugins: