예제 #1
0
파일: auditlog.py 프로젝트: mdanielo44/core
def log_delete(sender, instance, **kwargs):
    if instance.pk is not None:
        changes = model_instance_diff(instance, None)

        instance._last_log = LucteriosLogEntry.objects.log_create(
            instance,
            action=LucteriosLogEntry.Action.DELETE,
            changes=json.dumps(changes, default=six.text_type),
        )
예제 #2
0
파일: auditlog.py 프로젝트: mdanielo44/core
def log_create(sender, instance, created, **kwargs):
    if created:
        changes = model_instance_diff(None, instance)

        instance._last_log = LucteriosLogEntry.objects.log_create(
            instance,
            action=LucteriosLogEntry.Action.CREATE,
            changes=json.dumps(changes, default=six.text_type),
        )
예제 #3
0
파일: auditlog.py 프로젝트: mdanielo44/core
def lct_log_create(sender, instance, created, **kwargs):
    if LucteriosAuditlogModelRegistry.get_state(instance._meta.app_label):
        try:
            sub_obj = instance.get_auditlog_object()
        except ObjectDoesNotExist:
            return
        if sub_obj is None:
            log_create(sender, instance, created, **kwargs)
        elif created:
            changes = model_instance_diff(None, instance)
            if not hasattr(sub_obj, '_last_log'):
                sub_obj._last_log = LucteriosLogEntry.objects.log_create(sub_obj, action=LucteriosLogEntry.Action.UPDATE, changes='{}', additional_data='{}')
            sub_obj._last_log.change_additional_data(six.text_type(instance._meta.verbose_name),
                                                     LucteriosLogEntry.Action.ADD,
                                                     {'modelname': instance.__class__.get_long_name(), 'changes': changes})
예제 #4
0
def lct_log_update(sender, instance, **kwargs):
    if LucteriosAuditlogModelRegistry.get_state(instance._meta.app_label):
        try:
            sub_obj = instance.get_auditlog_object()
        except ObjectDoesNotExist:
            return
        if sub_obj is None:
            log_update(sender, instance, **kwargs)
        elif instance.pk is not None:
            try:
                old = sender.objects.get(pk=instance.pk)
            except sender.DoesNotExist:
                pass
            else:
                new = instance
                _log_change_additionnal(instance, sub_obj,
                                        model_instance_diff(old, new), kwargs)
예제 #5
0
파일: auditlog.py 프로젝트: mdanielo44/core
def log_update(sender, instance, **kwargs):
    if instance.pk is not None:
        try:
            old = sender.objects.get(pk=instance.pk)
        except sender.DoesNotExist:
            pass
        else:
            new = instance

            changes = model_instance_diff(old, new)

            # Log an entry only if there are changes
            if changes:
                instance._last_log = LucteriosLogEntry.objects.log_create(
                    instance,
                    action=LucteriosLogEntry.Action.UPDATE,
                    changes=json.dumps(changes, default=six.text_type),
                )
예제 #6
0
파일: auditlog.py 프로젝트: mdanielo44/core
def lct_log_update(sender, instance, **kwargs):
    if LucteriosAuditlogModelRegistry.get_state(instance._meta.app_label):
        try:
            sub_obj = instance.get_auditlog_object()
        except ObjectDoesNotExist:
            return
        if sub_obj is None:
            log_update(sender, instance, **kwargs)
        elif instance.pk is not None:
            try:
                old = sender.objects.get(pk=instance.pk)
            except sender.DoesNotExist:
                pass
            else:
                new = instance
                changes = model_instance_diff(old, new)
                if changes:
                    if not hasattr(sub_obj, '_last_log'):
                        log_update(sub_obj.__class__, sub_obj, **kwargs)
                        if not hasattr(sub_obj, '_last_log'):
                            sub_obj._last_log = LucteriosLogEntry.objects.log_create(sub_obj, action=LucteriosLogEntry.Action.UPDATE, changes='{}', additional_data='{}')
                    sub_obj._last_log.change_additional_data(six.text_type(instance._meta.verbose_name),
                                                             LucteriosLogEntry.Action.UPDATE,
                                                             {'modelname': instance.__class__.get_long_name(), 'changes': changes})