mirror of
https://github.com/inventree/inventree-website.git
synced 2025-04-27 21:16:45 +00:00
[REPO] Add plugin inventree-ipn-generator
This commit is contained in:
parent
7899de4b3e
commit
14a6e24f47
7
_publishers/LavissaWoW.md
Normal file
7
_publishers/LavissaWoW.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
short_name: LavissaWoW
|
||||||
|
name: Nichlas W.
|
||||||
|
github: LavissaWoW
|
||||||
|
website: https://www.linkedin.com/in/nfnw/
|
||||||
|
---
|
||||||
|
Yes, WoW is for World of Warcraft
|
84
_repo/inventree-ipn-generator.md
Normal file
84
_repo/inventree-ipn-generator.md
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
---
|
||||||
|
name: inventree-ipn-generator
|
||||||
|
author: LavissaWoW
|
||||||
|
license: MIT
|
||||||
|
open_source: true
|
||||||
|
stable: true
|
||||||
|
maintained: true
|
||||||
|
pypi: true
|
||||||
|
package_name: inventree-ipn-generator
|
||||||
|
github: https://github.com/LavissaWoW/inventree-ipn-generator
|
||||||
|
issue_tracker: https://github.com/LavissaWoW/inventree-ipn-generator/issues
|
||||||
|
categories:
|
||||||
|
- Event
|
||||||
|
tags:
|
||||||
|
- Part
|
||||||
|
- IPN
|
||||||
|
- Generator
|
||||||
|
---
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
Installing this plugin enables the automatic generation if Internal Part Numbers (IPN) for parts.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
To automatically install the plugin when running `invoke install`:
|
||||||
|
Add `inventree-ipn-generator` to your plugins.txt file.
|
||||||
|
|
||||||
|
Or, install the plugin manually:
|
||||||
|
|
||||||
|
```
|
||||||
|
pip install inventree-ipn-generator
|
||||||
|
```
|
||||||
|
|
||||||
|
For the plugin to be listed as available, you need to enable "Event Integration" in your plugin settings.
|
||||||
|
This setting is located with the Plugin Settings on the settings page.
|
||||||
|
|
||||||
|
## Settings
|
||||||
|
|
||||||
|
- Active - Enables toggling of plugin without having to disable it
|
||||||
|
- On Create - If on, the plugin will assign IPNs to newly created parts
|
||||||
|
- On Change - If on, the plugin will assign IPNs to parts after a change has been made.
|
||||||
|
Enabling this setting will remove the ability to have parts without IPNs.
|
||||||
|
|
||||||
|
## Pattern
|
||||||
|
Part Number patterns follow three basic groups. Literals, Numerics, and characters.
|
||||||
|
When incrementing a part number, the rightmost group that is mutable will be incremented.
|
||||||
|
All groups can be combined in any order.
|
||||||
|
|
||||||
|
A pattern cannot consist of _only_ Literals.
|
||||||
|
|
||||||
|
For any pattern, only the rightmost non-literal group will be incremented.
|
||||||
|
When this group rolls over its max, the next non-literal group to the left will be incremented.
|
||||||
|
Example: Given the groups (named for demo): L1C1N1C2L2
|
||||||
|
Incrementing follows this order: C2, N1, C1.
|
||||||
|
|
||||||
|
> **_NOTE:_** When C1 in the above example rolls over, the plugin will loop back to the first IPN.
|
||||||
|
> This will cause duplicate IPNs if your InvenTree allows duplicate IPNs.
|
||||||
|
> If your InvenTree does not allow duplicate IPNs, this will cause an error at the moment!
|
||||||
|
> This will be addressed in an upcoming update.
|
||||||
|
|
||||||
|
### Literals (Immutable)
|
||||||
|
Anything encased in `()` will be rendered as-is. no change will be made to anything within.
|
||||||
|
|
||||||
|
Example: `(A6C)` will _always_ render as "A6C", regardless of other groups
|
||||||
|
|
||||||
|
### Numeric
|
||||||
|
Numbers that should change over time should be encased in `{}`
|
||||||
|
- `{5}` respresents a number with max 5 digits
|
||||||
|
- `{25+}` represents a number 25-99
|
||||||
|
|
||||||
|
Example: `{5+}{3}` will result in this range: 5000-9999
|
||||||
|
|
||||||
|
### Characters
|
||||||
|
Characters that change should be encased in `[]`
|
||||||
|
- `[abc]` represents looping through the letters `a`, `b`, `c` in order.
|
||||||
|
- `[a-f]` represents looping through the letters from `a` to `f` alphabetaically
|
||||||
|
|
||||||
|
These two directives can be combined.
|
||||||
|
- `[aQc-f]` represents:
|
||||||
|
- - `a`, `Q`, `c-f`
|
||||||
|
|
||||||
|
### Examples
|
||||||
|
1. `(AB){3}[ab]` -> AB001a, AB001b, AB002a, AB021b, AB032a, etc
|
||||||
|
2. `{2}[Aq](BD)` -> 01ABD, 01qBD, 02ABD, 02qBD, etc
|
||||||
|
3. `{1}[a-d]{8+}` -> 1a8, 1a9, 1b8, 1b9, 1c8, 1c9, 1d8, 1d9, 2a8, etc
|
Loading…
x
Reference in New Issue
Block a user