mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-22 12:06:53 -06:00
Fixes #14703: Catch exceptions when rendering dashboard and revert to default
This commit is contained in:
parent
481d16de08
commit
487f1ccfde
@ -53,13 +53,13 @@ def get_dashboard(user):
|
|||||||
return dashboard
|
return dashboard
|
||||||
|
|
||||||
|
|
||||||
def get_default_dashboard():
|
def get_default_dashboard(config=None):
|
||||||
from extras.models import Dashboard
|
from extras.models import Dashboard
|
||||||
|
|
||||||
dashboard = Dashboard()
|
dashboard = Dashboard()
|
||||||
default_config = settings.DEFAULT_DASHBOARD or DEFAULT_DASHBOARD
|
config = config or settings.DEFAULT_DASHBOARD or DEFAULT_DASHBOARD
|
||||||
|
|
||||||
for widget in default_config:
|
for widget in config:
|
||||||
id = str(uuid.uuid4())
|
id = str(uuid.uuid4())
|
||||||
dashboard.layout.append({
|
dashboard.layout.append({
|
||||||
'id': id,
|
'id': id,
|
||||||
|
@ -2,14 +2,17 @@ import re
|
|||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
from django.contrib import messages
|
||||||
from django.contrib.contenttypes.models import ContentType
|
from django.contrib.contenttypes.models import ContentType
|
||||||
from django.core.cache import cache
|
from django.core.cache import cache
|
||||||
from django.shortcuts import redirect, render
|
from django.shortcuts import redirect, render
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
from django.views.generic import View
|
from django.views.generic import View
|
||||||
from django_tables2 import RequestConfig
|
from django_tables2 import RequestConfig
|
||||||
from packaging import version
|
from packaging import version
|
||||||
|
|
||||||
from extras.dashboard.utils import get_dashboard
|
from extras.constants import DEFAULT_DASHBOARD
|
||||||
|
from extras.dashboard.utils import get_dashboard, get_default_dashboard
|
||||||
from netbox.forms import SearchForm
|
from netbox.forms import SearchForm
|
||||||
from netbox.search import LookupTypes
|
from netbox.search import LookupTypes
|
||||||
from netbox.search.backends import search_backend
|
from netbox.search.backends import search_backend
|
||||||
@ -33,7 +36,13 @@ class HomeView(View):
|
|||||||
return redirect('login')
|
return redirect('login')
|
||||||
|
|
||||||
# Construct the user's custom dashboard layout
|
# Construct the user's custom dashboard layout
|
||||||
dashboard = get_dashboard(request.user).get_layout()
|
try:
|
||||||
|
dashboard = get_dashboard(request.user).get_layout()
|
||||||
|
except Exception:
|
||||||
|
messages.error(request, _(
|
||||||
|
"There was an error loading the dashboard configuration. A default dashboard is in use."
|
||||||
|
))
|
||||||
|
dashboard = get_default_dashboard(config=DEFAULT_DASHBOARD).get_layout()
|
||||||
|
|
||||||
# Check whether a new release is available. (Only for staff/superusers.)
|
# Check whether a new release is available. (Only for staff/superusers.)
|
||||||
new_release = None
|
new_release = None
|
||||||
|
Loading…
Reference in New Issue
Block a user