[UPDT] BASE: Added history for models using django audit log

This commit is contained in:
Horilla
2024-08-02 14:27:23 +05:30
parent 830a8471ba
commit 974f6f6805
5 changed files with 190 additions and 6 deletions

View File

@@ -5,7 +5,11 @@ This module is used to write methods related to the history
"""
from django.contrib.auth.models import User
from django.core.paginator import Paginator
from django.db import models
from django.shortcuts import render
from horilla.decorators import apply_decorators
class Bot:
@@ -146,3 +150,27 @@ def get_diff(instance):
if track_fields:
delta_changes = filter_history(delta_changes, track_fields)
return delta_changes
def history_tracking(request, obj_id, **kwargs):
model = kwargs.get("model")
decorator_strings = kwargs.get("decorators", [])
@apply_decorators(decorator_strings)
def _history_tracking(request, obj_id, model):
instance = model.objects.get(pk=obj_id)
histories = instance.horilla_history.all()
page_number = request.GET.get("page", 1)
paginator = Paginator(histories, 4)
page_obj = paginator.get_page(page_number)
context = {
"histories": page_obj,
"model_name": model,
}
return render(
request,
"horilla_audit/history_tracking.html",
context,
)
return _history_tracking(request, obj_id, model)