From f0cf85f3fa07e1b6b1f7820057f302df6044834a Mon Sep 17 00:00:00 2001 From: agp8x Date: Sun, 8 Dec 2019 13:27:22 +0100 Subject: [PATCH] move deprecation from product to sketches, add option names for sketches --- partdoc/parts/models.py | 54 ++++++++++++++++++++--------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/partdoc/parts/models.py b/partdoc/parts/models.py index aa1a2b4..fd51915 100644 --- a/partdoc/parts/models.py +++ b/partdoc/parts/models.py @@ -23,30 +23,6 @@ class Product(PartModel): def __str__(self): return self.name + " (" + self.brand.name + ")" - -class Sketch(PartModel): - class Meta: - verbose_name_plural = "sketches" - - name = models.CharField(max_length=256) - brand = models.ForeignKey(Brand, blank=True, null=True, on_delete=models.CASCADE, db_index=True) - product = models.ForeignKey(Product, blank=True, null=True, on_delete=models.CASCADE) - image = models.FileField(upload_to="sketches/", blank=True, null=True) - - def __str__(self): - return "Sketch: " + self.name + " (" + str(self.product) + ")" - - def get_product(self): - if self.product: - return [self.product] + list(self.usage_set.values('productusage__product').distinct()) - return self.usage_set.values('productusage__product').distinct() - - def get_brand(self): - if self.brand: - return [self.brand] + list(self.usage_set.values('productusage__product__brand').distinct()) - return self.usage_set.values('productusage__product__brand').distinct() - - class Version(PartModel): product = models.ForeignKey(Product, on_delete=models.CASCADE) name = models.CharField(max_length=256) @@ -54,9 +30,6 @@ class Version(PartModel): start = models.DateField(blank=True, null=True) end = models.DateField(blank=True, null=True) - additional_sketch = models.ManyToManyField(Sketch, blank=True, related_name='added') - unused_sketch = models.ManyToManyField(Sketch, blank=True, related_name='replaced') - def __str__(self): return "Version: " + self.name + " (" + str(self.product) + ")" @@ -78,6 +51,33 @@ class Version(PartModel): other.delete() +class Sketch(PartModel): + class Meta: + verbose_name_plural = "sketches" + + name = models.CharField(max_length=256) + brand = models.ForeignKey(Brand, blank=True, null=True, on_delete=models.CASCADE, db_index=True) + product = models.ForeignKey(Product, blank=True, null=True, on_delete=models.CASCADE) + image = models.FileField(upload_to="sketches/", blank=True, null=True) + used_until = models.ForeignKey(Version, null=True, blank=True, related_name='dismisses_sketch', on_delete=models.SET_NULL) + used_since = models.ForeignKey(Version, null=True, blank=True, related_name='introduces_sketch', on_delete=models.SET_NULL) + option = models.CharField(max_length=1024, null=True, blank=True) + + def __str__(self): + return "Sketch: " + self.name + " (" + str(self.product) + ")" + + def get_product(self): + if self.product: + return [self.product] + list(self.usage_set.values('productusage__product').distinct()) + return self.usage_set.values('productusage__product').distinct() + + def get_brand(self): + if self.brand: + return [self.brand] + list(self.usage_set.values('productusage__product__brand').distinct()) + return self.usage_set.values('productusage__product__brand').distinct() + + + class Part(PartModel): name = models.CharField(max_length=256, db_index=True)