Example #1
0
    def save(self, *args, **kwargs):
        if get_username():

            before_value = {}
            object_class = type(self)

            # populate created_by and modified_by fields on instance
            if not getattr(self, "created_by", None):
                self.created_by = get_username()
            if hasattr(self, "modified_by"):
                self.modified_by = get_username()

            # capture object properties before edit
            if self.pk:
                before_value = object_class.objects.get(pk=self.id)

            if not self.pk:
                AuditLog.audit_object_add(
                    get_username(),
                    object_class.__name__.lower(),
                    object_class.serialize(self),
                    self.__str__(),
                    debug_info=get_debug_info(),
                )
            else:
                AuditLog.audit_object_changed(
                    get_username(),
                    object_class.__name__.lower(),
                    object_class.serialize(before_value),
                    object_class.serialize(self),
                    self.__str__(),
                    debug_info=get_debug_info(),
                )

        return super(BaseAuditModel, self).save(*args, **kwargs)
Example #2
0
    def delete(self, *args, **kwargs):

        if get_username():
            object_class = type(self)
            AuditLog.audit_object_delete(
                get_username(),
                object_class.__name__.lower(),
                object_class.serialize(self),
                self.__str__(),
                debug_info=get_debug_info(),
            )

        return super(BaseAuditModel, self).delete(*args, **kwargs)