Remove category tree

This commit is contained in:
Edgar P. Burkhart 2022-05-20 21:33:06 +02:00
parent f85c67bb49
commit 25482790dc
Signed by: edpibu
GPG key ID: 9833D3C5A25BD227
5 changed files with 89 additions and 33 deletions

View file

@ -7,35 +7,21 @@ from django.core.validators import validate_unicode_slug, FileExtensionValidator
class Category(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
name = models.CharField(max_length=64, validators=[validate_unicode_slug], default="New Category")
full_name = models.CharField(max_length=512, editable=False, default="")
parent = models.ForeignKey("self", on_delete=models.SET_NULL, blank=True, null=True)
name = models.CharField(
max_length=64, validators=[validate_unicode_slug], default="New Category"
)
def __str__(self):
if self.parent is None or self.parent == self:
return self.name
return f"{self.parent}>{self.name}"
def save(self, *args, **kwargs):
self.full_name = str(self)
super().save(*args, **kwargs)
for child in self.__class__.objects.filter(parent=self):
child.save()
@property
def tree(self):
if self.parent is None or self.parent == self:
return [self.name]
return self.parent.tree + [self.name]
return self.name
class Meta:
ordering = ["full_name"]
ordering = ["name"]
class CategoryForm(ModelForm):
class Meta:
model = Category
fields = ["name", "parent"]
fields = ["name"]
class Transaction(models.Model):