From 24733188288fcf8244f21660e8628566f549e1c2 Mon Sep 17 00:00:00 2001 From: Oliver Date: Sun, 20 Jun 2021 17:50:07 +1000 Subject: [PATCH] Add ManufacturerPartParameter model --- .../0038_manufacturerpartparameter.py | 27 ++++++++++++ InvenTree/company/models.py | 41 +++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 InvenTree/company/migrations/0038_manufacturerpartparameter.py diff --git a/InvenTree/company/migrations/0038_manufacturerpartparameter.py b/InvenTree/company/migrations/0038_manufacturerpartparameter.py new file mode 100644 index 0000000000..dccfa715e8 --- /dev/null +++ b/InvenTree/company/migrations/0038_manufacturerpartparameter.py @@ -0,0 +1,27 @@ +# Generated by Django 3.2.4 on 2021-06-20 07:48 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('company', '0037_supplierpart_update_3'), + ] + + operations = [ + migrations.CreateModel( + name='ManufacturerPartParameter', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(help_text='Parameter name', max_length=500, verbose_name='Name')), + ('value', models.CharField(help_text='Parameter value', max_length=500, verbose_name='Value')), + ('units', models.CharField(blank=True, help_text='Parameter units', max_length=64, null=True, verbose_name='Units')), + ('manufacturer_part', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='parameters', to='company.manufacturerpart', verbose_name='Manufacturer Part')), + ], + options={ + 'unique_together': {('manufacturer_part', 'name')}, + }, + ), + ] diff --git a/InvenTree/company/models.py b/InvenTree/company/models.py index a5fac00e7d..093d545f78 100644 --- a/InvenTree/company/models.py +++ b/InvenTree/company/models.py @@ -371,6 +371,47 @@ class ManufacturerPart(models.Model): return s +class ManufacturerPartParameter(models.Model): + """ + A ManufacturerPartParameter represents a key:value parameter for a MnaufacturerPart. + + This is used to represent parmeters / properties for a particular manufacturer part. + + Each parameter is a simple string (text) value. + """ + + class Meta: + unique_together = ('manufacturer_part', 'name') + + manufacturer_part = models.ForeignKey( + ManufacturerPart, + on_delete=models.CASCADE, + related_name='parameters', + verbose_name=_('Manufacturer Part'), + ) + + name = models.CharField( + max_length=500, + blank=False, + verbose_name=_('Name'), + help_text=_('Parameter name') + ) + + value = models.CharField( + max_length=500, + blank=False, + verbose_name=_('Value'), + help_text=_('Parameter value') + ) + + units = models.CharField( + max_length=64, + blank=True, null=True, + verbose_name=_('Units'), + help_text=_('Parameter units') + ) + + class SupplierPart(models.Model): """ Represents a unique part as provided by a Supplier Each SupplierPart is identified by a SKU (Supplier Part Number)