Skip to content

mixins

django_spire.history.mixins

HistoryModelMixin

Bases: Model

is_active = models.BooleanField(default=True, editable=False) class-attribute instance-attribute

is_deleted = models.BooleanField(default=False, editable=False) class-attribute instance-attribute

history_events = GenericRelation(HistoryEvent, related_query_name='history_event', editable=False) class-attribute instance-attribute

created_datetime = models.DateTimeField(default=localtime, editable=False) class-attribute instance-attribute

Meta

abstract = True class-attribute instance-attribute

save

Source code in django_spire/history/mixins.py
def save(self, *args, **kwargs) -> None:
    super().save(*args, **kwargs)

    if self.pk:
        self.history_events.create(event=HistoryEventChoices.UPDATED)
    else:
        self.history_events.create(event=HistoryEventChoices.CREATED)

set_active

Source code in django_spire/history/mixins.py
def set_active(self) -> None:
    self.is_active = True
    self.save()
    self.history_events.create(event=HistoryEventChoices.ACTIVE)

set_deleted

Source code in django_spire/history/mixins.py
def set_deleted(self) -> None:
    self.is_deleted = True
    self.save()
    self.history_events.create(event=HistoryEventChoices.DELETED)

set_inactive

Source code in django_spire/history/mixins.py
def set_inactive(self) -> None:
    self.is_active = False
    self.save()
    self.history_events.create(event=HistoryEventChoices.INACTIVE)

un_set_deleted

Source code in django_spire/history/mixins.py
def un_set_deleted(self) -> None:
    self.is_deleted = False
    self.save()
    self.history_events.create(event=HistoryEventChoices.UNDELETED)