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