diff --git a/InvenTree/company/forms.py b/InvenTree/company/forms.py index b9e8b607cf..b7d4eb0360 100644 --- a/InvenTree/company/forms.py +++ b/InvenTree/company/forms.py @@ -128,6 +128,8 @@ class EditSupplierPartForm(HelperForm): 'part', 'supplier', 'SKU', + 'manufacturer', + 'MPN', 'description', 'link', 'note', diff --git a/InvenTree/company/migrations/0032_manufacturerpart.py b/InvenTree/company/migrations/0032_manufacturerpart.py index 5547aec36d..0e8ea6d7d4 100644 --- a/InvenTree/company/migrations/0032_manufacturerpart.py +++ b/InvenTree/company/migrations/0032_manufacturerpart.py @@ -1,4 +1,4 @@ -# Generated by Django 3.0.7 on 2021-03-24 14:18 +# Generated by Django 3.0.7 on 2021-03-29 18:53 import InvenTree.fields from django.db import migrations, models @@ -9,10 +9,24 @@ class Migration(migrations.Migration): dependencies = [ ('part', '0063_bomitem_inherited'), + ('contenttypes', '0002_remove_content_type_name'), ('company', '0031_auto_20210103_2215'), ] operations = [ + migrations.CreateModel( + name='SourceItem', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('part_id', models.PositiveIntegerField()), + ('part_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.ContentType')), + ], + ), + migrations.AddField( + model_name='supplierpart', + name='source_item', + field=models.ForeignKey(blank=True, help_text='Select part', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='supplier_parts', to='company.SourceItem', verbose_name='Part'), + ), migrations.CreateModel( name='ManufacturerPart', fields=[ diff --git a/InvenTree/company/migrations/0033_auto_20210329_1700.py b/InvenTree/company/migrations/0033_auto_20210329_1700.py deleted file mode 100644 index 341ac95999..0000000000 --- a/InvenTree/company/migrations/0033_auto_20210329_1700.py +++ /dev/null @@ -1,33 +0,0 @@ -# Generated by Django 3.0.7 on 2021-03-29 17:00 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('contenttypes', '0002_remove_content_type_name'), - ('company', '0032_manufacturerpart'), - ] - - operations = [ - migrations.CreateModel( - name='SourceItem', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('part_id', models.PositiveIntegerField()), - ('part_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.ContentType')), - ], - ), - migrations.AddField( - model_name='manufacturerpart', - name='source_item', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='manufacturer_parts', to='company.SourceItem', verbose_name='Sourcing Item'), - ), - migrations.AddField( - model_name='supplierpart', - name='source_item', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='supplier_parts', to='company.SourceItem', verbose_name='Sourcing Item'), - ), - ] diff --git a/InvenTree/company/models.py b/InvenTree/company/models.py index bd628c64d4..447b55b6b2 100644 --- a/InvenTree/company/models.py +++ b/InvenTree/company/models.py @@ -302,7 +302,6 @@ class ManufacturerPart(models.Model): Attributes: part: Link to the master Part - source_item: The sourcing item linked to this ManufacturerPart instance manufacturer: Company that manufactures the ManufacturerPart MPN: Manufacture part number link: Link to external website for this manufacturer part @@ -311,7 +310,7 @@ class ManufacturerPart(models.Model): class Meta: unique_together = ('part', 'manufacturer', 'MPN') - + part = models.ForeignKey('part.Part', on_delete=models.CASCADE, related_name='manufacturer_parts', verbose_name=_('Base Part'), @@ -321,12 +320,6 @@ class ManufacturerPart(models.Model): help_text=_('Select part'), ) - source_item = models.ForeignKey(SourceItem, on_delete=models.CASCADE, - blank=True, null=True, - related_name='manufacturer_parts', - verbose_name=_('Sourcing Item'), - ) - manufacturer = models.ForeignKey( Company, on_delete=models.CASCADE, @@ -364,7 +357,7 @@ class SupplierPart(models.Model): A Part may be available from multiple suppliers Attributes: - part: Link to the master Part + part: Link to the master Part (Obsolete) source_item: The sourcing item linked to this SupplierPart instance supplier: Company that supplies this SupplierPart object SKU: Stock keeping unit (supplier part number) @@ -398,7 +391,8 @@ class SupplierPart(models.Model): source_item = models.ForeignKey(SourceItem, on_delete=models.CASCADE, blank=True, null=True, related_name='supplier_parts', - verbose_name=_('Sourcing Item'), + verbose_name=_('Part'), + help_text=_('Select part'), ) supplier = models.ForeignKey(Company, on_delete=models.CASCADE, diff --git a/InvenTree/company/templates/company/detail_part.html b/InvenTree/company/templates/company/detail_manufacturer_part.html similarity index 67% rename from InvenTree/company/templates/company/detail_part.html rename to InvenTree/company/templates/company/detail_manufacturer_part.html index 9829213103..8499512b4c 100644 --- a/InvenTree/company/templates/company/detail_part.html +++ b/InvenTree/company/templates/company/detail_manufacturer_part.html @@ -4,31 +4,26 @@ {% load inventree_extras %} {% block menubar %} -{% include 'company/navbar.html' with tab='parts' %} +{% include 'company/navbar.html' with tab='manufacturer_parts' %} {% endblock %} {% block heading %} -{% trans "Supplier Parts" %} +{% trans "Manufacturer Parts" %} {% endblock %} {% block details %} {% setting_object 'PART_ENABLE_MANUFACTURER_PARTS' as manufacturer_parts %} +{% if manufacturer_parts.value == "True" %} {% if roles.purchase_order.change %}