mirror of
https://github.com/eitchtee/WYGIWYH.git
synced 2026-02-23 07:54:52 +01:00
49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
from django.db import models
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
|
|
class TransactionRule(models.Model):
|
|
active = models.BooleanField(default=True)
|
|
on_update = models.BooleanField(default=False)
|
|
on_create = models.BooleanField(default=True)
|
|
name = models.CharField(max_length=100, verbose_name=_("Name"))
|
|
description = models.TextField(blank=True, null=True, verbose_name=_("Description"))
|
|
trigger = models.TextField(verbose_name=_("Trigger"))
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
|
|
class TransactionRuleAction(models.Model):
|
|
class Field(models.TextChoices):
|
|
account = "account", _("Account")
|
|
type = "type", _("Type")
|
|
is_paid = "is_paid", _("Paid")
|
|
date = "date", _("Date")
|
|
reference_date = "reference_date", _("Reference Date")
|
|
amount = "amount", _("Amount")
|
|
description = "description", _("Description")
|
|
notes = "notes", _("Notes")
|
|
category = "category", _("Category")
|
|
tags = "tags", _("Tags")
|
|
entities = "entities", _("Entities")
|
|
|
|
rule = models.ForeignKey(
|
|
TransactionRule,
|
|
on_delete=models.CASCADE,
|
|
related_name="transaction_actions",
|
|
verbose_name=_("Rule"),
|
|
)
|
|
field = models.CharField(
|
|
max_length=50,
|
|
choices=Field,
|
|
verbose_name=_("Field"),
|
|
)
|
|
value = models.TextField(verbose_name=_("Value"))
|
|
|
|
def __str__(self):
|
|
return f"{self.rule} - {self.field} - {self.value}"
|
|
|
|
class Meta:
|
|
unique_together = (("rule", "field"),)
|