2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-07-10 23:14:13 +00:00

Added related parts urls, views, form and templates

Adding related part relationships work but are still not shown in the part detail page
This commit is contained in:
eeintech
2020-10-15 16:58:39 -05:00
parent 3d9223c2ee
commit 8579abb9c2
7 changed files with 204 additions and 12 deletions

View File

@ -1264,11 +1264,11 @@ class Part(MPTTModel):
parts_2 = self.related_parts_2.filter(part_2__id=self.pk)
for part in parts_1:
# Append
# Append
related_parts.append(part.part_2)
for part in parts_2:
# Append
# Append
related_parts.append(part.part_1)
return related_parts
@ -1749,28 +1749,41 @@ class PartRelated(models.Model):
part_1 = models.ForeignKey(Part, related_name='related_parts_1', on_delete=models.DO_NOTHING)
part_2 = models.ForeignKey(Part, related_name='related_parts_2', on_delete=models.DO_NOTHING)
part_2 = models.ForeignKey(Part, related_name='related_parts_2', on_delete=models.DO_NOTHING,
help_text=_('Choose Related Part'))
def __str__(self):
return f'{self.part_1} <-> {self.part_2}'
def create_relationship(self, part_1, part_2):
''' Create relationship between two parts '''
validate = True
parts = Part.objects.all()
related_parts = PartRelated.objects.all()
# Check if part exist
# Check if part exist and there are not the same part
if (part_1 in parts and part_2 in parts) and (part_1 is not part_2):
# Check if relation exists already
for relation in related_parts:
if (part_1 == relation.part_1 and part_2 == relation.part_2) \
or (part_1 == relation.part_2 and part_2 == relation.part_1):
validate = False
else:
validate = False
if validate:
# Add relationship
self.part_1 = part_1
self.part_2 = part_2
self.save()
return True
else:
return False
return validate
@classmethod
def create(cls, part_1, part_2):
''' Create PartRelated object '''
related_part = cls()
related_part.create_relationship(part_1, part_2)
return related_part
def __str__(self):
return f'{part_1} <-> {part_2}'