feat(core): history model for saving model history

!9 #5
This commit is contained in:
2024-05-23 12:40:14 +09:30
parent 41621c6a64
commit 9b2abecac3
11 changed files with 424 additions and 2 deletions

View File

@ -0,0 +1,96 @@
from django.contrib.auth.models import User
from django.db import models
from access.fields import *
from access.models import TenancyObject
class NotesCommonFields(models.Model):
class Meta:
abstract = True
id = models.AutoField(
primary_key=True,
unique=True,
blank=False
)
created = AutoCreatedField()
class History(TenancyObject, NotesCommonFields):
class Meta:
ordering = [
'-created'
]
class Actions(models.TextChoices):
ADD = '1', 'Create'
UPDATE = '2', 'Update'
DELETE = '3', 'Delete'
before = models.TextField(
help_text = 'JSON Object before Change',
blank = True,
default = None,
null = True
)
after = models.TextField(
help_text = 'JSON Object After Change',
blank = True,
default = None,
null = True
)
action = models.IntegerField(
choices=Actions,
default=None,
null=True,
blank = False,
)
user = models.ForeignKey(
User,
on_delete=models.DO_NOTHING,
blank= False,
)
item_pk = models.IntegerField(
default=None,
null = True,
blank = False,
)
item_class = models.CharField(
blank = False,
default=None,
null = True,
max_length = 50,
unique = False,
)
item_parent_pk = models.IntegerField(
default=None,
null = True,
blank = False,
)
item_parent_class = models.CharField(
blank = False,
default=None,
null = True,
max_length = 50,
unique = False,
)

View File

@ -44,7 +44,7 @@ class Notes(NotesCommonFields):
note = models.TextField(
verbose_name = 'Note',
blank = False,
blank = True,
default = None,
null = True
)