2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-06-18 21:15:41 +00:00

Merge remote-tracking branch 'inventree/master'

This commit is contained in:
Oliver Walters
2020-08-21 22:11:02 +10:00
7 changed files with 274 additions and 152 deletions

View File

@ -51,7 +51,8 @@ class PartResource(ModelResource):
report_skipped = False
clean_model_instances = True
exclude = [
'bom_checksum', 'bom_checked_by', 'bom_checked_date'
'bom_checksum', 'bom_checked_by', 'bom_checked_date',
'lft', 'rght', 'tree_id', 'level',
]
def get_queryset(self):

View File

@ -1,68 +0,0 @@
"""
Performs initial setup functions.
- Generates a Django SECRET_KEY file to be used by manage.py
- Copies config template file (if a config file does not already exist)
"""
import random
import string
import os
import sys
import argparse
from shutil import copyfile
OUTPUT_DIR = os.path.dirname(os.path.realpath(__file__))
KEY_FN = 'secret_key.txt'
CONFIG_FN = 'config.yaml'
CONFIG_TEMPLATE_FN = 'config_template.yaml'
def generate_key(length=50):
""" Generate a random string
Args:
length: Number of characters in returned string (default = 50)
Returns:
Randomized secret key string
"""
options = string.digits + string.ascii_letters + string.punctuation
key = ''.join([random.choice(options) for i in range(length)])
return key
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Generate Django SECRET_KEY file')
parser.add_argument('--force', '-f', help='Override existing files', action='store_true')
parser.add_argument('--dummy', '-d', help='Dummy run (do not create any files)', action='store_true')
args = parser.parse_args()
# Places to store files
key_filename = os.path.join(OUTPUT_DIR, KEY_FN)
conf_template = os.path.join(OUTPUT_DIR, CONFIG_TEMPLATE_FN)
conf_filename = os.path.join(OUTPUT_DIR, CONFIG_FN)
# Generate secret key data
key_data = generate_key()
if args.dummy:
print('SECRET_KEY: {k}'.format(k=key_data))
sys.exit(0)
if not args.force and os.path.exists(key_filename):
print("Key file already exists - '{f}'".format(f=key_filename))
else:
with open(key_filename, 'w') as key_file:
print("Generating SECRET_KEY file - '{f}'".format(f=key_filename))
key_file.write(key_data)
if not args.force and os.path.exists(conf_filename):
print("Config file already exists (skipping)")
else:
print("Copying config template to 'config.yaml'")
copyfile(conf_template, conf_filename)

View File

@ -13,7 +13,7 @@ from .models import StockItemTracking
from .models import StockItemTestResult
from build.models import Build
from company.models import SupplierPart
from company.models import Company, SupplierPart
from order.models import PurchaseOrder, SalesOrder
from part.models import Part
@ -59,12 +59,14 @@ class StockItemResource(ModelResource):
# Custom manaegrs for ForeignKey fields
part = Field(attribute='part', widget=widgets.ForeignKeyWidget(Part))
part_name = Field(attribute='part__full_ame', readonly=True)
part_name = Field(attribute='part__full_name', readonly=True)
supplier_part = Field(attribute='supplier_part', widget=widgets.ForeignKeyWidget(SupplierPart))
supplier = Field(attribute='supplier_part__supplier__id', readonly=True)
customer = Field(attribute='customer', widget=widgets.ForeignKeyWidget(Company))
supplier_name = Field(attribute='supplier_part__supplier__name', readonly=True)
status_label = Field(attribute='status_label', readonly=True)
@ -77,6 +79,8 @@ class StockItemResource(ModelResource):
build = Field(attribute='build', widget=widgets.ForeignKeyWidget(Build))
parent = Field(attribute='parent', widget=widgets.ForeignKeyWidget(StockItem))
sales_order = Field(attribute='sales_order', widget=widgets.ForeignKeyWidget(SalesOrder))
build_order = Field(attribute='build_order', widget=widgets.ForeignKeyWidget(Build))
@ -101,6 +105,11 @@ class StockItemResource(ModelResource):
report_skipped = False
clean_model_instance = True
exclude = [
# Exclude MPTT internal model fields
'lft', 'rght', 'tree_id', 'level',
]
class StockItemAdmin(ImportExportModelAdmin):