@ -14,6 +14,7 @@ database:
|
||||
|
||||
# --- Available options: ---
|
||||
# ENGINE: Database engine. Selection from:
|
||||
# - sqlite3
|
||||
# - mysql
|
||||
# - postgresql
|
||||
# NAME: Database name
|
||||
@ -22,6 +23,10 @@ database:
|
||||
# HOST: Database host address (if required)
|
||||
# PORT: Database host port (if required)
|
||||
|
||||
# --- Example Configuration - sqlite3 ---
|
||||
# ENGINE: sqlite3
|
||||
# NAME: '/home/inventree/database.sqlite3'
|
||||
|
||||
# --- Example Configuration - MySQL ---
|
||||
#ENGINE: mysql
|
||||
#NAME: inventree
|
||||
@ -63,6 +68,19 @@ currencies:
|
||||
|
||||
# Email backend configuration
|
||||
# Ref: https://docs.djangoproject.com/en/dev/topics/email/
|
||||
# Available options:
|
||||
# host: Email server host address
|
||||
# port: Email port
|
||||
# username: Account username
|
||||
# password: Account password
|
||||
# prefix: Email subject prefix
|
||||
# tls: Enable TLS support
|
||||
# ssl: Enable SSL support
|
||||
|
||||
# Alternatively, these options can all be set using environment variables,
|
||||
# with the INVENTREE_EMAIL_ prefix:
|
||||
# e.g. INVENTREE_EMAIL_HOST / INVENTREE_EMAIL_PORT / INVENTREE_EMAIL_USERNAME
|
||||
# Refer to the InvenTree documentation for more information
|
||||
|
||||
email:
|
||||
# backend: 'django.core.mail.backends.smtp.EmailBackend'
|
||||
@ -78,11 +96,33 @@ email:
|
||||
# Use the environment variable INVENTREE_DEBUG
|
||||
debug: True
|
||||
|
||||
# Set debug_toolbar to True to enable a debugging toolbar for InvenTree
|
||||
# Note: This will only be displayed if DEBUG mode is enabled,
|
||||
# and only if InvenTree is accessed from a local IP (127.0.0.1)
|
||||
debug_toolbar: False
|
||||
|
||||
# Configure the system logging level
|
||||
# Use environment variable INVENTREE_LOG_LEVEL
|
||||
# Options: DEBUG / INFO / WARNING / ERROR / CRITICAL
|
||||
log_level: WARNING
|
||||
|
||||
# Allowed hosts (see ALLOWED_HOSTS in Django settings documentation)
|
||||
# A list of strings representing the host/domain names that this Django site can serve.
|
||||
# Default behaviour is to allow all hosts (THIS IS NOT SECURE!)
|
||||
allowed_hosts:
|
||||
- '*'
|
||||
|
||||
# Cross Origin Resource Sharing (CORS) settings (see https://github.com/ottoyiu/django-cors-headers)
|
||||
# Following parameters are
|
||||
cors:
|
||||
# CORS_ORIGIN_ALLOW_ALL - If True, the whitelist will not be used and all origins will be accepted.
|
||||
allow_all: True
|
||||
|
||||
# CORS_ORIGIN_WHITELIST - A list of origins that are authorized to make cross-site HTTP requests. Defaults to []
|
||||
# whitelist:
|
||||
# - https://example.com
|
||||
# - https://sub.example.com
|
||||
|
||||
# MEDIA_ROOT is the local filesystem location for storing uploaded files
|
||||
# By default, it is stored under /home/inventree/data/media
|
||||
# Use environment variable INVENTREE_MEDIA_ROOT
|
||||
@ -92,3 +132,47 @@ media_root: '/home/inventree/data/media'
|
||||
# By default, it is stored under /home/inventree/data/static
|
||||
# Use environment variable INVENTREE_STATIC_ROOT
|
||||
static_root: '/home/inventree/data/static'
|
||||
|
||||
# Optional URL schemes to allow in URL fields
|
||||
# By default, only the following schemes are allowed: ['http', 'https', 'ftp', 'ftps']
|
||||
# Uncomment the lines below to allow extra schemes
|
||||
#extra_url_schemes:
|
||||
# - mailto
|
||||
# - git
|
||||
# - ssh
|
||||
|
||||
# Login configuration
|
||||
# How long do confirmation mail last?
|
||||
# Use environment variable INVENTREE_LOGIN_CONFIRM_DAYS
|
||||
#login_confirm_days: 3
|
||||
# How many wrong login attempts are permitted?
|
||||
# Use environment variable INVENTREE_LOGIN_ATTEMPTS
|
||||
#login_attempts: 5
|
||||
|
||||
# Permit custom authentication backends
|
||||
#authentication_backends:
|
||||
# - 'django.contrib.auth.backends.ModelBackend'
|
||||
|
||||
# Custom middleware, sometimes needed alongside an authentication backend change.
|
||||
#middleware:
|
||||
# - 'django.middleware.security.SecurityMiddleware'
|
||||
# - 'django.contrib.sessions.middleware.SessionMiddleware'
|
||||
# - 'django.middleware.locale.LocaleMiddleware'
|
||||
# - 'django.middleware.common.CommonMiddleware'
|
||||
# - 'django.middleware.csrf.CsrfViewMiddleware'
|
||||
# - 'corsheaders.middleware.CorsMiddleware'
|
||||
# - 'django.contrib.auth.middleware.AuthenticationMiddleware'
|
||||
# - 'django.contrib.messages.middleware.MessageMiddleware'
|
||||
# - 'django.middleware.clickjacking.XFrameOptionsMiddleware'
|
||||
# - 'InvenTree.middleware.AuthRequiredMiddleware'
|
||||
|
||||
# Add SSO login-backends
|
||||
# social_backends:
|
||||
# - 'allauth.socialaccount.providers.keycloak'
|
||||
|
||||
# Add specific settings
|
||||
# social_providers:
|
||||
# keycloak:
|
||||
# KEYCLOAK_URL: 'https://keycloak.custom/auth'
|
||||
# KEYCLOAK_REALM: 'master'
|
||||
|
||||
|
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 108 KiB After Width: | Height: | Size: 65 KiB |
Before Width: | Height: | Size: 139 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 61 KiB |
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 111 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 86 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 89 KiB |
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 113 KiB |
Before Width: | Height: | Size: 105 KiB After Width: | Height: | Size: 90 KiB |
Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 73 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 82 KiB |
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 84 KiB |
Before Width: | Height: | Size: 126 KiB After Width: | Height: | Size: 98 KiB |
Before Width: | Height: | Size: 105 KiB After Width: | Height: | Size: 111 KiB |
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 89 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 40 KiB |
BIN
docs/assets/images/indexgallery/manufacturers.png
Normal file
After Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 73 KiB |
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 82 KiB |
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 67 KiB |
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 49 KiB |
BIN
docs/assets/images/indexgallery/stock_item_2.png
Normal file
After Width: | Height: | Size: 69 KiB |
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 41 KiB |
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 85 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 74 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 72 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 68 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 64 KiB |
Before Width: | Height: | Size: 110 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 50 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 6.3 KiB |
Before Width: | Height: | Size: 189 KiB After Width: | Height: | Size: 124 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 47 KiB |
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 20 KiB |
@ -8,7 +8,8 @@ You can customize the look of InvenTree via the color themes feature.
|
||||
|
||||
### Select Color Theme
|
||||
|
||||
Navigate to the "Settings" page and click on the "Theme" tab, you should see the following:
|
||||
Navigate to the "Settings" page and click on the "Display" tab, you should see the following:
|
||||
|
||||
{% with id="theme_default", url="settings/theme_default.png", description="Default InvenTree color theme" %}
|
||||
{% include 'img.html' %}
|
||||
{% endwith %}
|
||||
@ -19,6 +20,7 @@ The drop-down list let's you select any other color theme found in your static f
|
||||
Color themes are "user specific" which means that changing the color theme in your own settings won't affect other users.
|
||||
|
||||
Here is an example what the "Dark Reader" theme looks like:
|
||||
|
||||
{% with id="theme_dark", url="settings/theme_dark.png", description="Dark Reader InvenTree color theme" %}
|
||||
{% include 'img.html' %}
|
||||
{% endwith %}
|
||||
|
@ -47,5 +47,4 @@ invoke worker
|
||||
```
|
||||
|
||||
!!! info "Supervisor"
|
||||
|
||||
A better option is to manage the background worker process using a process manager such as supervisor. Refer to the [production server guide](./start/production.md).
|
||||
A better option is to manage the background worker process using a process manager such as supervisor. Refer to the [production server guide](./start/production.md).
|
||||
|
@ -80,8 +80,3 @@ PR [#2436](https://github.com/inventree/InvenTree/pull/2436) refactors the proce
|
||||
### Merging Stock Items
|
||||
|
||||
PR [#2468](https://github.com/inventree/InvenTree/pull/2468) adds the ability to merge multiple stock items together.
|
||||
|
||||
## Major Bug Fixes
|
||||
|
||||
| Pull Request | Description |
|
||||
| --- | --- |
|
||||
|
@ -10,7 +10,8 @@ As TOTP is an [open standard](https://datatracker.ietf.org/doc/html/rfc6238) the
|
||||
|
||||
### Configuration
|
||||
|
||||
To make MFA mandatory for all users
|
||||
To make MFA mandatory for all users:
|
||||
|
||||
1. Enable it in the [global settings](../settings/global.md).
|
||||
|
||||
### Security Consideration
|
||||
|
@ -17,7 +17,15 @@ Global settings are arranged in the following categories:
|
||||
|
||||
### Server Settings
|
||||
|
||||
Configuration of basic server settings
|
||||
Configuration of basic server settings.
|
||||
|
||||
| Setting | Type | Description | Default |
|
||||
| --- | --- | --- | --- |
|
||||
| InvenTree Instance Name | String | String descriptor for the InvenTree server instance | InvenTree Server |
|
||||
| Use Instance Name | Boolean | Use instance name in title bars | False |
|
||||
| Base URL | String | Base URL for server instance | *blank* |
|
||||
| Company Name | String | Company name | My compant name |
|
||||
| Download from URL | Boolean | Allow downloading of images from remote URLs | False |
|
||||
|
||||
### Login Settings
|
||||
|
||||
@ -38,14 +46,29 @@ Change how logins, password-forgot, signups are handled.
|
||||
|
||||
Configuration of barcode functionality
|
||||
|
||||
| Setting | Type | Description | Default |
|
||||
| --- | --- | --- | --- |
|
||||
| Barcode Support | Boolean | Enable barcode functionality in web interface | True |
|
||||
|
||||
### Currencies
|
||||
|
||||
Configuration of currency support
|
||||
|
||||
| Setting | Type | Description | Default |
|
||||
| --- | --- | --- | --- |
|
||||
| Default Currency | Currency | Default currency | USD |
|
||||
|
||||
### Reporting
|
||||
|
||||
Configuration of report generation
|
||||
|
||||
| Setting | Type | Description | Default |
|
||||
| --- | --- | --- | --- |
|
||||
| Enable Reports | Boolean | Enable report generation | False |
|
||||
| Page Size | String | Default page size | A4 |
|
||||
| Debug Mode | Boolean | Generate reports in debug mode (HTML output) | False |
|
||||
| Test Reports | Boolean | Enable generation of test reports | False |
|
||||
|
||||
### Parts
|
||||
|
||||
Configuration of Part options
|
||||
@ -58,14 +81,36 @@ Configuration of Part Category options
|
||||
|
||||
Configuration of Stock Item options
|
||||
|
||||
| Setting | Type | Description | Default |
|
||||
| --- | --- | --- | --- |
|
||||
| Stock Expiry | Boolean | Enable stock expiry functionality | False |
|
||||
| Stock Stale Time | Days | Number of days stock items are considered stale before expiring | 90 |
|
||||
| Sell Expired Stock | Boolean | Allow sale of expired stock | False |
|
||||
| Build Expired Stock | Boolean | Allow building with expired stock | False |
|
||||
| Stock Ownership Control | Boolean | Enable ownership control functionality | False |
|
||||
|
||||
### Build Orders
|
||||
|
||||
Options for build orders
|
||||
|
||||
| Setting | Type | Description | Default |
|
||||
| --- | --- | --- | --- |
|
||||
| Reference Prefix | String | Prefix for build order reference | BO |
|
||||
| Reference Regex | String | Regular expression pattern for build order reference | *blank* |
|
||||
|
||||
### Purchase Orders
|
||||
|
||||
Options for purchase orders
|
||||
|
||||
| Setting | Type | Description | Default |
|
||||
| --- | --- | --- | --- |
|
||||
| Reference Prefix | String | Prefix for purchase order reference | PO |
|
||||
|
||||
|
||||
### Sales orders
|
||||
|
||||
Options for sales orders
|
||||
Options for sales orders
|
||||
|
||||
| Setting | Type | Description | Default |
|
||||
| --- | --- | --- | --- |
|
||||
| Reference Prefix | String | Prefix for sales order reference | SO |
|
||||
|
@ -10,24 +10,41 @@ User settings are arranged in the following categories:
|
||||
|
||||
### Account
|
||||
|
||||
User account configuration
|
||||
User account configuration, including:
|
||||
|
||||
- Account management
|
||||
- Session management
|
||||
- Authentication options
|
||||
- Theme selection
|
||||
- Language selection
|
||||
|
||||
### Home Page
|
||||
|
||||
Customize display of items on the InvenTree home page
|
||||
|
||||
|
||||
### Search
|
||||
|
||||
Customize settings for search results
|
||||
|
||||
| Setting | Type | Description | Default |
|
||||
| --- | --- | --- | --- |
|
||||
| Search Preview Results | Integer | Number of results to show in search preview window | 10 |
|
||||
| Search Show Stock | Boolean | Display stock levels in part search results | True |
|
||||
| Hide Inactive Parts | Boolean | Hide inactive parts in search preview | False |
|
||||
|
||||
### Labels
|
||||
|
||||
Settings for label printing
|
||||
|
||||
| Setting | Type | Description | Default |
|
||||
| --- | --- | --- | --- |
|
||||
| Inline Label Display | Boolean | Display PDF labels in the browser | True |
|
||||
|
||||
### Reports
|
||||
|
||||
Settings for report generation
|
||||
|
||||
### Forms
|
||||
|
||||
Customize behavior of modal forms
|
||||
| Setting | Type | Description | Default |
|
||||
| --- | --- | --- | --- |
|
||||
| Inline Report Display | Boolean | Display PDF reports in the browser | False |
|
||||
|
@ -28,22 +28,6 @@ The stock status is displayed as a label in the header of each stock item detail
|
||||
|
||||
## Update Status
|
||||
|
||||
### Single Item
|
||||
|
||||
To change the status of an individual stock item, click on the status label displayed in the stock item view, then select the new status:
|
||||
|
||||
{% with id="stock_status_change", url="stock/stock_status_change.png", description="Stock Status Change" %}
|
||||
{% include 'img.html' %}
|
||||
{% endwith %}
|
||||
|
||||
Submit the form then the label will be updated:
|
||||
|
||||
{% with id="stock_status_label_updated", url="stock/stock_status_label_updated.png", description="Stock Status Label Updated" %}
|
||||
{% include 'img.html' %}
|
||||
{% endwith %}
|
||||
|
||||
### Multiple Items
|
||||
|
||||
In the "Stock" tab of the part view, select all stock items which stock status needs to be updated:
|
||||
|
||||
{% with id="stock_status_change_multiple", url="stock/stock_status_change_multiple.png", description="Stock Status Status Multiple" %}
|
||||
|
16
main.py
@ -1,8 +1,24 @@
|
||||
import os
|
||||
from posixpath import dirname
|
||||
|
||||
from urllib import request
|
||||
|
||||
|
||||
def define_env(env):
|
||||
|
||||
# Ensure that the config template is always up to date
|
||||
CFG_URL = "https://raw.githubusercontent.com/inventree/InvenTree/master/InvenTree/config_template.yaml"
|
||||
|
||||
response = request.urlopen(CFG_URL)
|
||||
print(f"Reading config template from GitHub: Response {response.status}")
|
||||
|
||||
if response.status == 200:
|
||||
data = response.read()
|
||||
|
||||
if len(data) > 0:
|
||||
with open("_includes/config.yaml", "w") as f:
|
||||
f.write(str(data.decode()))
|
||||
|
||||
@env.macro
|
||||
def listimages(subdir):
|
||||
"""
|
||||
|
@ -95,7 +95,7 @@ nav:
|
||||
- Order: report/order.md
|
||||
- Barcodes: report/barcodes.md
|
||||
- Context Variables: report/context_variables.md
|
||||
- Settings:
|
||||
- Admin:
|
||||
- Global Settings: settings/global.md
|
||||
- User Settings: settings/user.md
|
||||
- Admin Interface: settings/admin.md
|
||||
|