Merge pull request #1932 from SchrodingersGat/supplier-part-bug-fix

Supplier part bug fix
This commit is contained in:
Oliver 2021-08-10 11:18:02 +10:00 committed by GitHub
commit 0e0f490f8d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 33 additions and 2 deletions

View File

@ -9,6 +9,8 @@ import os
from django.utils.translation import ugettext_lazy as _
from django.core.validators import MinValueValidator
from django.core.exceptions import ValidationError
from django.db import models
from django.db.models import Sum, Q, UniqueConstraint
@ -473,12 +475,32 @@ class SupplierPart(models.Model):
def get_absolute_url(self):
return reverse('supplier-part-detail', kwargs={'pk': self.id})
def api_instance_filters(self):
return {
'manufacturer_part': {
'part': self.part.pk
}
}
class Meta:
unique_together = ('part', 'supplier', 'SKU')
# This model was moved from the 'Part' app
db_table = 'part_supplierpart'
def clean(self):
super().clean()
# Ensure that the linked manufacturer_part points to the same part!
if self.manufacturer_part and self.part:
if not self.manufacturer_part.part == self.part:
raise ValidationError({
'manufacturer_part': _("Linked manufacturer part must reference the same base part"),
})
part = models.ForeignKey('part.Part', on_delete=models.CASCADE,
related_name='supplier_parts',
verbose_name=_('Base Part'),

View File

@ -54,8 +54,12 @@ function editManufacturerPart(part, options={}) {
var url = `/api/company/part/manufacturer/${part}/`;
var fields = manufacturerPartFields();
fields.part.hidden = true;
constructForm(url, {
fields: manufacturerPartFields(),
fields: fields,
title: '{% trans "Edit Manufacturer Part" %}',
onSuccess: options.onSuccess
});
@ -157,8 +161,13 @@ function createSupplierPart(options={}) {
function editSupplierPart(part, options={}) {
var fields = supplierPartFields();
// Hide the "part" field
fields.part.hidden = true;
constructForm(`/api/company/part/${part}/`, {
fields: supplierPartFields(),
fields: fields,
title: '{% trans "Edit Supplier Part" %}',
onSuccess: options.onSuccess
});