[UPDT] HORILLA BREADCRUMBS: Replaced user based breadcrumbs to session based breadcrumbs
This commit is contained in:
@@ -132,11 +132,17 @@ sidebar_urls = [
|
||||
"view-time-sheet",
|
||||
"templates",
|
||||
"sidebar.html",
|
||||
"objective-detailed-view",
|
||||
"mail-automations",
|
||||
"faq-view",
|
||||
]
|
||||
remove_urls = [
|
||||
"feedback-detailed-view",
|
||||
"question-template-detailed-view",
|
||||
"employee-view-new",
|
||||
"objective-detailed-view",
|
||||
"ticket-detail",
|
||||
"faq-view",
|
||||
]
|
||||
|
||||
user_breadcrumbs = {}
|
||||
@@ -144,15 +150,15 @@ user_breadcrumbs = {}
|
||||
|
||||
def breadcrumbs(request):
|
||||
base_url = request.build_absolute_uri("/")
|
||||
user_id = str(request.user)
|
||||
|
||||
if user_id not in user_breadcrumbs:
|
||||
user_breadcrumbs[user_id] = [
|
||||
# Initialize breadcrumbs in the session if not already present
|
||||
if "breadcrumbs" not in request.session:
|
||||
request.session["breadcrumbs"] = [
|
||||
{"url": base_url, "name": "Horilla", "found": True}
|
||||
]
|
||||
|
||||
try:
|
||||
user_breadcrumb = user_breadcrumbs[user_id]
|
||||
breadcrumbs = request.session["breadcrumbs"]
|
||||
|
||||
qs = request.META.get("QUERY_STRING", "")
|
||||
pairs = qs.split("&")
|
||||
@@ -160,7 +166,7 @@ def breadcrumbs(request):
|
||||
filtered_query_string = "&".join(filtered_pairs)
|
||||
emp_query_string = None
|
||||
|
||||
for item in user_breadcrumb:
|
||||
for item in breadcrumbs:
|
||||
if item["name"] in ["employee-view", "candidate-view"]:
|
||||
items = item["url"].split("?", 1)
|
||||
if len(items) > 1:
|
||||
@@ -210,8 +216,8 @@ def breadcrumbs(request):
|
||||
]
|
||||
|
||||
if len(parts) == 0:
|
||||
user_breadcrumbs[user_id].clear()
|
||||
user_breadcrumb.append({"url": base_url, "name": "Horilla", "found": True})
|
||||
request.session["breadcrumbs"].clear()
|
||||
breadcrumbs.append({"url": base_url, "name": "Horilla", "found": True})
|
||||
|
||||
if len(parts) > 1:
|
||||
last_path = parts[-1]
|
||||
@@ -221,10 +227,9 @@ def breadcrumbs(request):
|
||||
or parts[-2] == "candidate-view"
|
||||
or parts[-2] == "view-payslip"
|
||||
):
|
||||
breadcrumbs = user_breadcrumbs[user_id]
|
||||
first_path = breadcrumbs[0]
|
||||
user_breadcrumbs[user_id].clear()
|
||||
user_breadcrumbs[user_id].append(first_path)
|
||||
request.session["breadcrumbs"].clear()
|
||||
request.session["breadcrumbs"].append(first_path)
|
||||
for i, item in enumerate(parts):
|
||||
path = path + item + "/"
|
||||
parsed_url = urlparse(path)
|
||||
@@ -232,7 +237,7 @@ def breadcrumbs(request):
|
||||
try:
|
||||
resolver_match = resolve(check_path)
|
||||
found = True
|
||||
except Resolver404 as e:
|
||||
except Resolver404:
|
||||
found = False
|
||||
|
||||
new_dict = {"url": path, "name": item, "found": found}
|
||||
@@ -245,15 +250,15 @@ def breadcrumbs(request):
|
||||
|
||||
if model_value:
|
||||
try:
|
||||
object = model_value.objects.get(id=item)
|
||||
new_dict["name"] = str(object)
|
||||
obj = model_value.objects.get(id=item) # completed
|
||||
new_dict["name"] = str(obj)
|
||||
except:
|
||||
pass
|
||||
|
||||
key = "HTTP_HX_REQUEST"
|
||||
names = [d["name"] for d in user_breadcrumb]
|
||||
names = [d["name"] for d in breadcrumbs]
|
||||
if (
|
||||
new_dict not in user_breadcrumb
|
||||
new_dict not in breadcrumbs
|
||||
and new_dict["name"] not in remove_urls + names
|
||||
and key not in request.META.keys()
|
||||
and not new_dict["name"].isdigit()
|
||||
@@ -261,10 +266,10 @@ def breadcrumbs(request):
|
||||
if new_dict["name"] in ["employee-view", "candidate-view"]:
|
||||
new_dict["url"] = f'{new_dict["url"]}?{emp_query_string}'
|
||||
|
||||
user_breadcrumb.append(new_dict)
|
||||
breadcrumbs.append(new_dict)
|
||||
|
||||
try:
|
||||
prev_url = user_breadcrumb[-1]
|
||||
prev_url = breadcrumbs[-1]
|
||||
prev_url["url"] = prev_url["url"].split("?")[0]
|
||||
if filtered_query_string:
|
||||
prev_url["url"] = f'{prev_url["url"]}?{filtered_query_string}'
|
||||
@@ -273,14 +278,13 @@ def breadcrumbs(request):
|
||||
except:
|
||||
pass
|
||||
|
||||
user_breadcrumbs[user_id] = user_breadcrumb
|
||||
request.session["breadcrumbs"] = breadcrumbs
|
||||
|
||||
except Exception as e:
|
||||
user_breadcrumb[user_id].clear()
|
||||
user_breadcrumbs[user_id] = [
|
||||
request.session["breadcrumbs"] = [
|
||||
{"url": base_url, "name": "Horilla", "found": True}
|
||||
]
|
||||
return {"breadcrumbs": user_breadcrumbs[user_id]}
|
||||
return {"breadcrumbs": request.session["breadcrumbs"]}
|
||||
|
||||
|
||||
urlpatterns.append(
|
||||
|
||||
Reference in New Issue
Block a user