[UPDT] HORILLA VIEWS: Custom empty page configuration
This commit is contained in:
@@ -23,13 +23,12 @@ from horilla.filters import FilterSet
|
||||
from horilla.group_by import group_by_queryset
|
||||
from horilla.horilla_middlewares import _thread_locals
|
||||
from horilla_views import models
|
||||
from horilla_views.cbv_methods import (
|
||||
from horilla_views.cbv_methods import ( # update_initial_cache,
|
||||
get_short_uuid,
|
||||
hx_request_required,
|
||||
paginator_qry,
|
||||
sortby,
|
||||
structured,
|
||||
update_initial_cache,
|
||||
update_saved_filter_cache,
|
||||
)
|
||||
from horilla_views.forms import DynamicBulkUpdateForm, ToggleColumnForm
|
||||
@@ -54,6 +53,11 @@ class HorillaListView(ListView):
|
||||
columns: list = []
|
||||
search_url: str = ""
|
||||
bulk_select_option: bool = True
|
||||
filter_selected: bool = True
|
||||
quick_export: bool = True
|
||||
bulk_update: bool = True
|
||||
|
||||
custom_empty_template: str = ""
|
||||
|
||||
action_method: str = """"""
|
||||
"""
|
||||
@@ -112,7 +116,7 @@ class HorillaListView(ListView):
|
||||
|
||||
request = getattr(_thread_locals, "request", None)
|
||||
self.request = request
|
||||
update_initial_cache(request, CACHE, HorillaListView)
|
||||
# # update_initial_cache(request, CACHE, HorillaListView)
|
||||
|
||||
# hidden columns configuration
|
||||
existing_instance = models.ToggleColumn.objects.filter(
|
||||
@@ -203,9 +207,9 @@ class HorillaListView(ListView):
|
||||
root_model=self.model, bulk_update_fields=self.bulk_update_fields
|
||||
)
|
||||
|
||||
def get_queryset(self):
|
||||
def get_queryset(self, queryset=None, filtered=False, *args, **kwargs):
|
||||
if not self.queryset:
|
||||
self.queryset = super().get_queryset()
|
||||
self.queryset = super().get_queryset() if not queryset else queryset
|
||||
self._saved_filters = QueryDict("", mutable=True)
|
||||
if self.filter_class:
|
||||
query_dict = self.request.GET
|
||||
@@ -252,10 +256,12 @@ class HorillaListView(ListView):
|
||||
query_dict._mutable = False
|
||||
self._saved_filters = query_dict
|
||||
self.request.exclude_filter_form = True
|
||||
self.queryset = self.filter_class(
|
||||
data=query_dict, queryset=self.queryset, request=self.request
|
||||
).qs
|
||||
|
||||
if not filtered:
|
||||
self.queryset = self.filter_class(
|
||||
data=query_dict, queryset=self.queryset, request=self.request
|
||||
).qs
|
||||
else:
|
||||
self.queryset = queryset
|
||||
if self.request.GET.get(
|
||||
"show_all"
|
||||
) == "true" and self.request.session.get("hlv_selected_ids"):
|
||||
@@ -295,10 +301,14 @@ class HorillaListView(ListView):
|
||||
context["selected_instances_key_id"] = self.selected_instances_key_id
|
||||
context["row_status_indications"] = self.row_status_indications
|
||||
context["saved_filters"] = self._saved_filters
|
||||
context["quick_export"] = self.quick_export
|
||||
context["filter_selected"] = self.filter_selected
|
||||
context["bulk_update"] = self.bulk_update
|
||||
if not self.verbose_name:
|
||||
self.verbose_name = self.model.__class__
|
||||
context["model_name"] = self.verbose_name
|
||||
context["export_fields"] = self.export_fields
|
||||
context["custom_empty_template"] = self.custom_empty_template
|
||||
referrer = self.request.GET.get("referrer", "")
|
||||
if referrer:
|
||||
# Remove the protocol and domain part
|
||||
@@ -388,7 +398,7 @@ class HorillaListView(ListView):
|
||||
# instance.ordered_ids = ordered_ids
|
||||
# ordered_ids.append(instance.pk)
|
||||
|
||||
CACHE.get(self.request.session.session_key + "cbv")[HorillaListView] = context
|
||||
# CACHE.get(self.request.session.session_key + "cbv")[HorillaListView] = context
|
||||
from horilla.urls import path, urlpatterns
|
||||
|
||||
self.export_path = f"export-list-view-{get_short_uuid(4)}/"
|
||||
@@ -506,7 +516,7 @@ class HorillaSectionView(TemplateView):
|
||||
super().__init__(**kwargs)
|
||||
request = getattr(_thread_locals, "request", None)
|
||||
self.request = request
|
||||
update_initial_cache(request, CACHE, HorillaListView)
|
||||
# update_initial_cache(request, CACHE, HorillaListView)
|
||||
|
||||
nav_url: str = ""
|
||||
view_url: str = ""
|
||||
@@ -554,7 +564,7 @@ class HorillaDetailedView(DetailView):
|
||||
super().__init__(**kwargs)
|
||||
request = getattr(_thread_locals, "request", None)
|
||||
self.request = request
|
||||
update_initial_cache(request, CACHE, HorillaDetailedView)
|
||||
# update_initial_cache(request, CACHE, HorillaDetailedView)
|
||||
|
||||
def get_context_data(self, **kwargs: Any):
|
||||
context = super().get_context_data(**kwargs)
|
||||
@@ -590,9 +600,9 @@ class HorillaDetailedView(DetailView):
|
||||
context["action_method"] = self.action_method
|
||||
context["cols"] = self.cols
|
||||
|
||||
CACHE.get(self.request.session.session_key + "cbv")[
|
||||
HorillaDetailedView
|
||||
] = context
|
||||
# CACHE.get(self.request.session.session_key + "cbv")[
|
||||
# HorillaDetailedView
|
||||
# ] = context
|
||||
|
||||
return context
|
||||
|
||||
@@ -612,7 +622,7 @@ class HorillaTabView(TemplateView):
|
||||
super().__init__(**kwargs)
|
||||
request = getattr(_thread_locals, "request", None)
|
||||
self.request = request
|
||||
update_initial_cache(request, CACHE, HorillaTabView)
|
||||
# update_initial_cache(request, CACHE, HorillaTabView)
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
@@ -625,7 +635,7 @@ class HorillaTabView(TemplateView):
|
||||
context["tabs"] = self.tabs
|
||||
context["view_id"] = self.view_id
|
||||
|
||||
CACHE.get(self.request.session.session_key + "cbv")[HorillaTabView] = context
|
||||
# CACHE.get(self.request.session.session_key + "cbv")[HorillaTabView] = context
|
||||
|
||||
return context
|
||||
|
||||
@@ -678,7 +688,7 @@ class HorillaCardView(ListView):
|
||||
super().__init__(**kwargs)
|
||||
request = getattr(_thread_locals, "request", None)
|
||||
self.request = request
|
||||
update_initial_cache(request, CACHE, HorillaCardView)
|
||||
# update_initial_cache(request, CACHE, HorillaCardView)
|
||||
self._saved_filters = QueryDict()
|
||||
|
||||
def get_queryset(self):
|
||||
@@ -755,7 +765,7 @@ class HorillaCardView(ListView):
|
||||
ordered_ids.append(instance.pk)
|
||||
self.request.session[f"ordered_ids_{self.model.__name__.lower()}"] = ordered_ids
|
||||
|
||||
CACHE.get(self.request.session.session_key + "cbv")[HorillaCardView] = context
|
||||
# CACHE.get(self.request.session.session_key + "cbv")[HorillaCardView] = context
|
||||
referrer = self.request.GET.get("referrer", "")
|
||||
if referrer:
|
||||
# Remove the protocol and domain part
|
||||
@@ -871,7 +881,7 @@ class HorillaFormView(FormView):
|
||||
self.request = request
|
||||
if not self.success_url:
|
||||
self.success_url = self.request.path
|
||||
update_initial_cache(request, CACHE, HorillaFormView)
|
||||
# update_initial_cache(request, CACHE, HorillaFormView)
|
||||
|
||||
if self.form_class:
|
||||
setattr(self.form_class, "structured", structured)
|
||||
@@ -1063,7 +1073,7 @@ class HorillaFormView(FormView):
|
||||
self.form_class.verbose_name = self.new_display_title
|
||||
form.close_button_attrs = self.close_button_attrs
|
||||
form.submit_button_attrs = self.submit_button_attrs
|
||||
CACHE.get(self.request.session.session_key + "cbv")[HorillaFormView] = form
|
||||
# CACHE.get(self.request.session.session_key + "cbv")[HorillaFormView] = form
|
||||
self.form = form
|
||||
return self.form
|
||||
|
||||
@@ -1092,12 +1102,13 @@ class HorillaNavView(TemplateView):
|
||||
empty_inputs: list = []
|
||||
view_types: list = []
|
||||
create_attrs: str = """"""
|
||||
apply_first_filter = True
|
||||
|
||||
def __init__(self, **kwargs: Any) -> None:
|
||||
super().__init__(**kwargs)
|
||||
request = getattr(_thread_locals, "request", None)
|
||||
self.request = request
|
||||
update_initial_cache(request, CACHE, HorillaNavView)
|
||||
# update_initial_cache(request, CACHE, HorillaNavView)
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
@@ -1111,6 +1122,7 @@ class HorillaNavView(TemplateView):
|
||||
context["view_types"] = self.view_types
|
||||
context["create_attrs"] = self.create_attrs
|
||||
context["search_in"] = self.search_in
|
||||
context["apply_first_filter"] = self.apply_first_filter
|
||||
context["filter_instance_context_name"] = self.filter_instance
|
||||
last_filter = CACHE.get(
|
||||
self.request.session.session_key
|
||||
@@ -1125,7 +1137,7 @@ class HorillaNavView(TemplateView):
|
||||
context["active_view"] = models.ActiveView.objects.filter(
|
||||
path=self.request.path
|
||||
).first()
|
||||
CACHE.get(self.request.session.session_key + "cbv")[HorillaNavView] = context
|
||||
# CACHE.get(self.request.session.session_key + "cbv")[HorillaNavView] = context
|
||||
return context
|
||||
|
||||
|
||||
@@ -1157,7 +1169,7 @@ class HorillaProfileView(DetailView):
|
||||
|
||||
request = getattr(_thread_locals, "request", None)
|
||||
self.request = request
|
||||
update_initial_cache(request, CACHE, HorillaProfileView)
|
||||
# update_initial_cache(request, CACHE, HorillaProfileView)
|
||||
|
||||
from horilla.urls import path, urlpatterns
|
||||
|
||||
|
||||
@@ -353,6 +353,7 @@
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if not custom_empty_template %}
|
||||
<div class="oh-wrapper" align="center" style="margin-top: 7vh; margin-bottom:7vh;">
|
||||
<div align="center">
|
||||
<img src="{% static "images/ui/search.svg" %}" class="oh-404__image" alt="Page not found. 404.">
|
||||
@@ -362,6 +363,10 @@
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
{% include custom_empty_template %}
|
||||
{% endif %}
|
||||
|
||||
{% endif %}
|
||||
<script>
|
||||
setTimeout(() => {
|
||||
|
||||
Reference in New Issue
Block a user