diff --git a/docs/docs/assets/images/admin/export.png b/docs/docs/assets/images/admin/export.png
index e8c30e33f5..76b5325ac4 100644
Binary files a/docs/docs/assets/images/admin/export.png and b/docs/docs/assets/images/admin/export.png differ
diff --git a/docs/docs/assets/images/admin/export_options.png b/docs/docs/assets/images/admin/export_options.png
new file mode 100644
index 0000000000..7c00e21cc8
Binary files /dev/null and b/docs/docs/assets/images/admin/export_options.png differ
diff --git a/docs/docs/assets/images/order/assign_project_code.png b/docs/docs/assets/images/purchasing/assign_project_code.png
similarity index 100%
rename from docs/docs/assets/images/order/assign_project_code.png
rename to docs/docs/assets/images/purchasing/assign_project_code.png
diff --git a/docs/docs/assets/images/order/company_disable.png b/docs/docs/assets/images/purchasing/company_disable.png
similarity index 100%
rename from docs/docs/assets/images/order/company_disable.png
rename to docs/docs/assets/images/purchasing/company_disable.png
diff --git a/docs/docs/assets/images/order/contact_list.png b/docs/docs/assets/images/purchasing/contact_list.png
similarity index 100%
rename from docs/docs/assets/images/order/contact_list.png
rename to docs/docs/assets/images/purchasing/contact_list.png
diff --git a/docs/docs/assets/images/order/disable_supplier_part.png b/docs/docs/assets/images/purchasing/disable_supplier_part.png
similarity index 100%
rename from docs/docs/assets/images/order/disable_supplier_part.png
rename to docs/docs/assets/images/purchasing/disable_supplier_part.png
diff --git a/docs/docs/assets/images/order/disable_supplier_part_edit.png b/docs/docs/assets/images/purchasing/disable_supplier_part_edit.png
similarity index 100%
rename from docs/docs/assets/images/order/disable_supplier_part_edit.png
rename to docs/docs/assets/images/purchasing/disable_supplier_part_edit.png
diff --git a/docs/docs/assets/images/order/filter_by_project.png b/docs/docs/assets/images/purchasing/filter_by_project.png
similarity index 100%
rename from docs/docs/assets/images/order/filter_by_project.png
rename to docs/docs/assets/images/purchasing/filter_by_project.png
diff --git a/docs/docs/assets/images/order/manufacturer_list.png b/docs/docs/assets/images/purchasing/manufacturer_list.png
similarity index 100%
rename from docs/docs/assets/images/order/manufacturer_list.png
rename to docs/docs/assets/images/purchasing/manufacturer_list.png
diff --git a/docs/docs/assets/images/order/po_calendar.png b/docs/docs/assets/images/purchasing/po_calendar.png
similarity index 100%
rename from docs/docs/assets/images/order/po_calendar.png
rename to docs/docs/assets/images/purchasing/po_calendar.png
diff --git a/docs/docs/assets/images/order/po_display.png b/docs/docs/assets/images/purchasing/po_display.png
similarity index 100%
rename from docs/docs/assets/images/order/po_display.png
rename to docs/docs/assets/images/purchasing/po_display.png
diff --git a/docs/docs/assets/images/order/po_duplicate.png b/docs/docs/assets/images/purchasing/po_duplicate.png
similarity index 100%
rename from docs/docs/assets/images/order/po_duplicate.png
rename to docs/docs/assets/images/purchasing/po_duplicate.png
diff --git a/docs/docs/assets/images/order/po_duplicate_2.png b/docs/docs/assets/images/purchasing/po_duplicate_2.png
similarity index 100%
rename from docs/docs/assets/images/order/po_duplicate_2.png
rename to docs/docs/assets/images/purchasing/po_duplicate_2.png
diff --git a/docs/docs/assets/images/order/po_duplicate_3.png b/docs/docs/assets/images/purchasing/po_duplicate_3.png
similarity index 100%
rename from docs/docs/assets/images/order/po_duplicate_3.png
rename to docs/docs/assets/images/purchasing/po_duplicate_3.png
diff --git a/docs/docs/assets/images/order/po_list.png b/docs/docs/assets/images/purchasing/po_list.png
similarity index 100%
rename from docs/docs/assets/images/order/po_list.png
rename to docs/docs/assets/images/purchasing/po_list.png
diff --git a/docs/docs/assets/images/order/supplier_list.png b/docs/docs/assets/images/purchasing/supplier_list.png
similarity index 100%
rename from docs/docs/assets/images/order/supplier_list.png
rename to docs/docs/assets/images/purchasing/supplier_list.png
diff --git a/docs/docs/assets/images/order/supplier_part_availability.png b/docs/docs/assets/images/purchasing/supplier_part_availability.png
similarity index 100%
rename from docs/docs/assets/images/order/supplier_part_availability.png
rename to docs/docs/assets/images/purchasing/supplier_part_availability.png
diff --git a/docs/docs/assets/images/order/update_availability.png b/docs/docs/assets/images/purchasing/update_availability.png
similarity index 100%
rename from docs/docs/assets/images/order/update_availability.png
rename to docs/docs/assets/images/purchasing/update_availability.png
diff --git a/docs/docs/assets/images/order/complete_shipment.png b/docs/docs/assets/images/sales/complete_shipment.png
similarity index 100%
rename from docs/docs/assets/images/order/complete_shipment.png
rename to docs/docs/assets/images/sales/complete_shipment.png
diff --git a/docs/docs/assets/images/order/completed_shipments.png b/docs/docs/assets/images/sales/completed_shipments.png
similarity index 100%
rename from docs/docs/assets/images/order/completed_shipments.png
rename to docs/docs/assets/images/sales/completed_shipments.png
diff --git a/docs/docs/assets/images/sales/customers.png b/docs/docs/assets/images/sales/customers.png
new file mode 100644
index 0000000000..13cccd7f34
Binary files /dev/null and b/docs/docs/assets/images/sales/customers.png differ
diff --git a/docs/docs/assets/images/order/edit_shipment.png b/docs/docs/assets/images/sales/edit_shipment.png
similarity index 100%
rename from docs/docs/assets/images/order/edit_shipment.png
rename to docs/docs/assets/images/sales/edit_shipment.png
diff --git a/docs/docs/assets/images/order/pending_shipments.png b/docs/docs/assets/images/sales/pending_shipments.png
similarity index 100%
rename from docs/docs/assets/images/order/pending_shipments.png
rename to docs/docs/assets/images/sales/pending_shipments.png
diff --git a/docs/docs/assets/images/order/return_order_create.png b/docs/docs/assets/images/sales/return_order_create.png
similarity index 100%
rename from docs/docs/assets/images/order/return_order_create.png
rename to docs/docs/assets/images/sales/return_order_create.png
diff --git a/docs/docs/assets/images/order/return_order_detail.png b/docs/docs/assets/images/sales/return_order_detail.png
similarity index 100%
rename from docs/docs/assets/images/order/return_order_detail.png
rename to docs/docs/assets/images/sales/return_order_detail.png
diff --git a/docs/docs/assets/images/order/return_order_enable.png b/docs/docs/assets/images/sales/return_order_enable.png
similarity index 100%
rename from docs/docs/assets/images/order/return_order_enable.png
rename to docs/docs/assets/images/sales/return_order_enable.png
diff --git a/docs/docs/assets/images/order/return_order_index.png b/docs/docs/assets/images/sales/return_order_index.png
similarity index 100%
rename from docs/docs/assets/images/order/return_order_index.png
rename to docs/docs/assets/images/sales/return_order_index.png
diff --git a/docs/docs/assets/images/order/return_order_navbar.png b/docs/docs/assets/images/sales/return_order_navbar.png
similarity index 100%
rename from docs/docs/assets/images/order/return_order_navbar.png
rename to docs/docs/assets/images/sales/return_order_navbar.png
diff --git a/docs/docs/assets/images/order/ro_calendar.png b/docs/docs/assets/images/sales/ro_calendar.png
similarity index 100%
rename from docs/docs/assets/images/order/ro_calendar.png
rename to docs/docs/assets/images/sales/ro_calendar.png
diff --git a/docs/docs/assets/images/order/ro_display.png b/docs/docs/assets/images/sales/ro_display.png
similarity index 100%
rename from docs/docs/assets/images/order/ro_display.png
rename to docs/docs/assets/images/sales/ro_display.png
diff --git a/docs/docs/assets/images/order/ro_list.png b/docs/docs/assets/images/sales/ro_list.png
similarity index 100%
rename from docs/docs/assets/images/order/ro_list.png
rename to docs/docs/assets/images/sales/ro_list.png
diff --git a/docs/docs/assets/images/order/so_calendar.png b/docs/docs/assets/images/sales/so_calendar.png
similarity index 100%
rename from docs/docs/assets/images/order/so_calendar.png
rename to docs/docs/assets/images/sales/so_calendar.png
diff --git a/docs/docs/assets/images/order/so_display.png b/docs/docs/assets/images/sales/so_display.png
similarity index 100%
rename from docs/docs/assets/images/order/so_display.png
rename to docs/docs/assets/images/sales/so_display.png
diff --git a/docs/docs/assets/images/order/so_list.png b/docs/docs/assets/images/sales/so_list.png
similarity index 100%
rename from docs/docs/assets/images/order/so_list.png
rename to docs/docs/assets/images/sales/so_list.png
diff --git a/docs/docs/assets/images/order/so_shipment_check.png b/docs/docs/assets/images/sales/so_shipment_check.png
similarity index 100%
rename from docs/docs/assets/images/order/so_shipment_check.png
rename to docs/docs/assets/images/sales/so_shipment_check.png
diff --git a/docs/docs/assets/images/settings/project_codes.png b/docs/docs/assets/images/settings/project_codes.png
index 01546019e0..e45f6cde9c 100644
Binary files a/docs/docs/assets/images/settings/project_codes.png and b/docs/docs/assets/images/settings/project_codes.png differ
diff --git a/docs/docs/concepts/company.md b/docs/docs/concepts/company.md
index b89252aa1d..44a9dfbe77 100644
--- a/docs/docs/concepts/company.md
+++ b/docs/docs/concepts/company.md
@@ -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 {{ icon("users") }} Contacts 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)).
diff --git a/docs/docs/concepts/project_codes.md b/docs/docs/concepts/project_codes.md
index 2925defdb9..3febe3a00d 100644
--- a/docs/docs/concepts/project_codes.md
+++ b/docs/docs/concepts/project_codes.md
@@ -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") }}
diff --git a/docs/docs/concepts/threat_model.md b/docs/docs/concepts/threat_model.md
index 57d73b992e..5a0274b259 100644
--- a/docs/docs/concepts/threat_model.md
+++ b/docs/docs/concepts/threat_model.md
@@ -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.
diff --git a/docs/docs/faq.md b/docs/docs/faq.md
index 6c9954cbb7..47617dadc6 100644
--- a/docs/docs/faq.md
+++ b/docs/docs/faq.md
@@ -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.
diff --git a/docs/docs/part/trackable.md b/docs/docs/part/trackable.md
index 834a60d407..5eccdb355d 100644
--- a/docs/docs/part/trackable.md
+++ b/docs/docs/part/trackable.md
@@ -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):
diff --git a/docs/docs/purchasing/manufacturer.md b/docs/docs/purchasing/manufacturer.md
index 616fbbbc6f..94543f9960 100644
--- a/docs/docs/purchasing/manufacturer.md
+++ b/docs/docs/purchasing/manufacturer.md
@@ -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 {{ icon("shopping-cart") }} Buy navigation tab and click on {{ icon("building-factory-2") }} Manufacturers 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 {{ icon("building") }} Suppliers tab
-* or navigate to a Manufacturer detail page then click on the {{ icon("building-factory-2") }} Manufactured Parts tab.
+* Navigate to a Part detail page then click on the {{ icon("building") }} Suppliers tab
+* Navigate to a Manufacturer detail page then click on the {{ icon("building-factory-2") }} Manufactured Parts tab.
Whichever you pick, click on the {{ icon("plus-circle") }} New Manufacturer Part button to load the "Create New Manufacturer Part" form. Fill out the form with the manufacturer part information then click on Submit
@@ -41,8 +41,8 @@ Whichever you pick, click on the {{ 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 {{ icon("building") }} Suppliers tab then, in the Part Manufacturers table, click on the _MPN_ link
-* or navigate to a Manufacturer detail page, click on the {{ icon("building-factory-2") }} Manufactured Parts tab then click on the _MPN_ link.
+* Navigate to a Part detail page, click on the {{ icon("building") }} Suppliers tab then, in the Part Manufacturers table, click on the _MPN_ link
+* Navigate to a Manufacturer detail page, click on the {{ icon("building-factory-2") }} Manufactured Parts 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 Submit
diff --git a/docs/docs/purchasing/purchase_order.md b/docs/docs/purchasing/purchase_order.md
index a3d21fbc15..89d6a9194c 100644
--- a/docs/docs/purchasing/purchase_order.md
+++ b/docs/docs/purchasing/purchase_order.md
@@ -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
diff --git a/docs/docs/purchasing/supplier.md b/docs/docs/purchasing/supplier.md
index fac5ae239d..14808d492d 100644
--- a/docs/docs/purchasing/supplier.md
+++ b/docs/docs/purchasing/supplier.md
@@ -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 {{ icon("shopping-cart") }} Buy navigation tab and click on {{ icon("building") }} Suppliers 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
diff --git a/docs/docs/sales/customer.md b/docs/docs/sales/customer.md
index 481e503c61..48f15b1438 100644
--- a/docs/docs/sales/customer.md
+++ b/docs/docs/sales/customer.md
@@ -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 {{ icon("truck-delivery") }} Sales navigation tab and click on {{ icon("building-store") }} Customers 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 {{ icon("plus-circle") }} New Customer button: the "Create new Customer" form opens. Fill-in the manufacturer information (`Company name` and `Company description` are required) then click on Submit
diff --git a/docs/docs/sales/return_order.md b/docs/docs/sales/return_order.md
index 37389a0b4c..d57dcc562a 100644
--- a/docs/docs/sales/return_order.md
+++ b/docs/docs/sales/return_order.md
@@ -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 Submit 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:
diff --git a/docs/docs/sales/sales_order.md b/docs/docs/sales/sales_order.md
index 859ef78bba..ebdf3d2e69 100644
--- a/docs/docs/sales/sales_order.md
+++ b/docs/docs/sales/sales_order.md
@@ -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
diff --git a/docs/docs/settings/admin.md b/docs/docs/settings/admin.md
index 53c088b792..8b5fa57ea7 100644
--- a/docs/docs/settings/admin.md
+++ b/docs/docs/settings/admin.md
@@ -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)
diff --git a/docs/docs/settings/export.md b/docs/docs/settings/export.md
index 9661157889..4ab560454a 100644
--- a/docs/docs/settings/export.md
+++ b/docs/docs/settings/export.md
@@ -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.
diff --git a/docs/docs/settings/global.md b/docs/docs/settings/global.md
index 2efc2482e3..d60d02a367 100644
--- a/docs/docs/settings/global.md
+++ b/docs/docs/settings/global.md
@@ -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 {{ icon("plus-circle") }} New Parameter button on the top right
-3. fill out the "Create Category Parameter Template" form
-4. click the Submit button.
+1. Select the category in the dropdown list
+2. Click the {{ icon("plus-circle") }} New Parameter button on the top right
+3. Fill out the "Create Category Parameter Template" form
+4. Click the Submit 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.
diff --git a/docs/docs/settings/permissions.md b/docs/docs/settings/permissions.md
index 1fb24289d7..e98fb3aaff 100644
--- a/docs/docs/settings/permissions.md
+++ b/docs/docs/settings/permissions.md
@@ -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
diff --git a/docs/docs/stock/index.md b/docs/docs/stock/index.md
index 97f1200d6a..beb9525280 100644
--- a/docs/docs/stock/index.md
+++ b/docs/docs/stock/index.md
@@ -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: `::`. 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: `::`. 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.
diff --git a/docs/docs/stock/owner.md b/docs/docs/stock/owner.md
index 0e6d116176..d4a6e4d613 100644
--- a/docs/docs/stock/owner.md
+++ b/docs/docs/stock/owner.md
@@ -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
diff --git a/docs/docs/troubleshooting.md b/docs/docs/troubleshooting.md
new file mode 100644
index 0000000000..c2b5b7f71e
--- /dev/null
+++ b/docs/docs/troubleshooting.md
@@ -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.
diff --git a/docs/main.py b/docs/main.py
index 138e22f010..c3d8cba512 100644
--- a/docs/main.py
+++ b/docs/main.py
@@ -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'| {name}
| {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):
diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml
index 29e7c93da6..417badcbb8 100644
--- a/docs/mkdocs.yml
+++ b/docs/mkdocs.yml
@@ -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: