[UPDT] GENERIC: Moved hidden tab configuration in profile view from init to get_context

This commit is contained in:
Horilla
2025-12-09 14:57:46 +05:30
parent b0124a8b3a
commit 69c0d39ad7

View File

@@ -2324,30 +2324,6 @@ class HorillaProfileView(DetailView):
)
tab["url"] = "/" + url + "/{pk}/"
# hidden columns configuration
existing_instance = models.ToggleColumn.objects.filter(
user_id=request.user, path=request.path_info
).first()
self.visible_tabs = self.tabs.copy()
self.tabs_list = [(tab["title"], tab["title"]) for tab in self.visible_tabs]
hidden_tabs = (
[] if not existing_instance else existing_instance.excluded_columns
)
self.toggle_form = ToggleColumnForm(
self.tabs_list,
hidden_tabs,
hidden_fields=[],
)
for column in self.tabs_list:
if column[1] in hidden_tabs:
for tab in self.visible_tabs:
if tab["title"] == column[1]:
self.visible_tabs.remove(tab)
@classmethod
def add_tab(cls, tab: dict = None, index: int = None, tabs: list = None) -> None:
"""
@@ -2388,8 +2364,6 @@ class HorillaProfileView(DetailView):
context = super().get_context_data(**kwargs)
context["instance"] = context["object"]
context["tabs"] = self.tabs
context["visible_tabs"] = self.visible_tabs
context["toggle_form"] = self.toggle_form
context["view_id"] = self.view_id
active_tab = models.ActiveTab.objects.filter(
created_by=self.request.user, path=self.request.path
@@ -2422,6 +2396,30 @@ class HorillaProfileView(DetailView):
url = resolve(self.request.path)
key = list(url.kwargs.keys())[0]
# hidden columns configuration
existing_instance = models.ToggleColumn.objects.filter(
user_id=self.request.user, path=self.request.path_info
).first()
self.visible_tabs = self.tabs.copy()
self.tabs_list = [(tab["title"], tab["title"]) for tab in self.visible_tabs]
hidden_tabs = (
[] if not existing_instance else existing_instance.excluded_columns
)
self.toggle_form = ToggleColumnForm(
self.tabs_list,
hidden_tabs,
hidden_fields=[],
)
for column in self.tabs_list:
if column[1] in hidden_tabs:
for tab in self.visible_tabs:
if tab["title"] == column[1]:
self.visible_tabs.remove(tab)
url_name = url.url_name
next_url = reverse(url_name, kwargs={key: next_id})
previous_url = reverse(url_name, kwargs={key: previous_id})
@@ -2438,6 +2436,8 @@ class HorillaProfileView(DetailView):
context["display_count"] = display_count
context["actions"] = self.actions
context["filter_class"] = self.filter_class
context["visible_tabs"] = self.visible_tabs
context["toggle_form"] = self.toggle_form
cache = {
"instances": context["instances"],
"instance_ids": context["instance_ids"],