mirror of
https://github.com/inventree/demo-dataset.git
synced 2025-04-27 21:16:50 +00:00
97 lines
2.5 KiB
Python
97 lines
2.5 KiB
Python
|
|
from random import randint
|
|
|
|
from inventree.api import InvenTreeAPI
|
|
|
|
from inventree.part import Part, Parameter, ParameterTemplate
|
|
from inventree.stock import StockItem
|
|
|
|
api = InvenTreeAPI("http://localhost:8000", username="admin", password="inventree")
|
|
|
|
# Pin headers category
|
|
cat_id = 21
|
|
|
|
# Storage location
|
|
loc_id = 10
|
|
|
|
rows = [1, 2]
|
|
pitch = [1.27, 2.0, 2.54]
|
|
ways = range(2, 11)
|
|
|
|
# Parameter templates
|
|
templates = {}
|
|
|
|
for tmp in ParameterTemplate.list(api):
|
|
templates[tmp.name] = tmp.pk
|
|
|
|
for r in rows:
|
|
for p in pitch:
|
|
for w in ways:
|
|
|
|
n = r * w
|
|
|
|
name = f"PinHeader_{r}x{w:02d}x{p}mm"
|
|
description = f"Male pin header connector, {r} rows, {n} positions, {p}mm pitch, vertical"
|
|
keywords = "pin header connector"
|
|
|
|
# Check if this part already exists
|
|
results = Part.list(api, search=name)
|
|
|
|
if len(results) > 0:
|
|
part = results[0]
|
|
else:
|
|
part = Part.create(
|
|
api,
|
|
{
|
|
'name': name,
|
|
'description': description,
|
|
'keywords': keywords,
|
|
'category': cat_id,
|
|
'purchaseable': True,
|
|
'component': True,
|
|
}
|
|
)
|
|
|
|
# Create stock item for this item
|
|
items = StockItem.list(api, part=part.pk)
|
|
|
|
if len(items) == 0:
|
|
q = randint(0, 25)
|
|
|
|
if q > 0:
|
|
StockItem.create(
|
|
api,
|
|
{
|
|
'part': part.pk,
|
|
'quantity': q,
|
|
'location': loc_id,
|
|
}
|
|
)
|
|
|
|
# Generate parameters for each item
|
|
Parameter.create(
|
|
api,
|
|
{
|
|
'part': part.pk,
|
|
'template': templates['Pitch'],
|
|
'data': p
|
|
}
|
|
)
|
|
|
|
Parameter.create(
|
|
api,
|
|
{
|
|
'part': part.pk,
|
|
'template': templates['Positions'],
|
|
'data': n
|
|
}
|
|
)
|
|
|
|
Parameter.create(
|
|
api,
|
|
{
|
|
'part': part.pk,
|
|
'template': templates['Rows'],
|
|
'data': r
|
|
}
|
|
) |