SupplierPart manufacturer data is not serializing

This commit is contained in:
eeintech 2021-03-30 13:55:20 -04:00
parent a4d098194b
commit 811f9333e8
4 changed files with 22 additions and 19 deletions

View File

@ -193,7 +193,7 @@ class SupplierPartList(generics.ListCreateAPIView):
queryset = SupplierPart.objects.all().prefetch_related(
'part',
'supplier',
'manufacturer'
'manufacturer_part',
)
def get_queryset(self):

View File

@ -67,10 +67,10 @@ class Migration(migrations.Migration):
name='ManufacturerPart',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('MPN', models.CharField(blank=True, help_text='Manufacturer Part Number', max_length=100, null=True, verbose_name='MPN')),
('MPN', models.CharField(help_text='Manufacturer Part Number', max_length=100, null=True, verbose_name='MPN')),
('link', InvenTree.fields.InvenTreeURLField(blank=True, help_text='URL for external manufacturer part link', null=True, verbose_name='Link')),
('description', models.CharField(blank=True, help_text='Manufacturer part description', max_length=250, null=True, verbose_name='Description')),
('manufacturer', models.ForeignKey(blank=True, help_text='Select manufacturer', limit_choices_to={'is_manufacturer': True}, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='manufacturer_parts', to='company.Company', verbose_name='Manufacturer')),
('manufacturer', models.ForeignKey(help_text='Select manufacturer', limit_choices_to={'is_manufacturer': True}, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='manufacturer_parts', to='company.Company', verbose_name='Manufacturer')),
('part', models.ForeignKey(help_text='Select part', limit_choices_to={'purchaseable': True}, on_delete=django.db.models.deletion.CASCADE, related_name='manufacturer_parts', to='part.Part', verbose_name='Base Part')),
],
options={
@ -85,17 +85,6 @@ class Migration(migrations.Migration):
# Make new ManufacturerPart with SupplierPart "manufacturer" and "MPN"
# fields, then link it to the new SupplierPart "manufacturer_part" field
migrations.RunPython(supplierpart_make_manufacturer_parts),
# Make ManufacturerPart "manufacturer" and "MPN" field mandatory
migrations.AlterField(
model_name='ManufacturerPart',
name='manufacturer',
field=models.ForeignKey(help_text='Select manufacturer', limit_choices_to={'is_manufacturer': True}, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='manufacturer_parts', to='company.Company', verbose_name='Manufacturer'),
),
migrations.AlterField(
model_name='ManufacturerPart',
name='MPN',
field=models.CharField(help_text='Manufacturer Part Number', max_length=100, null=True, verbose_name='MPN'),
),
migrations.RemoveField(
model_name='supplierpart',
name='MPN',

View File

@ -335,6 +335,17 @@ class ManufacturerPart(models.Model):
help_text=_('Manufacturer part description')
)
def __str__(self):
s = ''
if self.manufacturer:
s += f'{self.manufacturer.name}'
s += ' | '
s += f'{self.MPN}'
return s
class SupplierPart(models.Model):
""" Represents a unique part as provided by a Supplier

View File

@ -110,7 +110,7 @@ class ManufacturerPartSerializer(InvenTreeModelSerializer):
manufacturer = serializers.PrimaryKeyRelatedField(queryset=Company.objects.filter(is_manufacturer=True))
class Meta:
model = SupplierPart
model = ManufacturerPart
fields = [
'pk',
'part',
@ -131,7 +131,7 @@ class SupplierPartSerializer(InvenTreeModelSerializer):
supplier_detail = CompanyBriefSerializer(source='supplier', many=False, read_only=True)
manufacturer_detail = CompanyBriefSerializer(source='manufacturer', many=False, read_only=True)
manufacturer_detail = ManufacturerPartSerializer(source='manufacturer_part', many=False, read_only=True)
pretty_name = serializers.CharField(read_only=True)
@ -157,8 +157,10 @@ class SupplierPartSerializer(InvenTreeModelSerializer):
self.fields.pop('pretty_name')
supplier = serializers.PrimaryKeyRelatedField(queryset=Company.objects.filter(is_supplier=True))
manufacturer_part = serializers.PrimaryKeyRelatedField(queryset=ManufacturerPart.objects.all())
manufacturer = ManufacturerPartSerializer(many=False, read_only=True)
MPN = ManufacturerPartSerializer(many=False, read_only=True)
class Meta:
model = SupplierPart
@ -170,7 +172,8 @@ class SupplierPartSerializer(InvenTreeModelSerializer):
'supplier',
'supplier_detail',
'SKU',
'manufacturer_part',
'manufacturer',
'MPN',
'manufacturer_detail',
'description',
'link',