123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- # Licensed to the Apache Software Foundation (ASF) under one
- # or more contributor license agreements. See the NOTICE file
- # distributed with this work for additional information
- # regarding copyright ownership. The ASF licenses this file
- # to you under the Apache License, Version 2.0 (the
- # "License"); you may not use this file except in compliance
- # with the License. You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing,
- # software distributed under the License is distributed on an
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- # KIND, either express or implied. See the License for the
- # specific language governing permissions and limitations
- # under the License.
- from flask_babel import lazy_gettext as _
- from ..base import check_ownership
- from .filters import DashboardFilter
- class DashboardMixin: # pylint: disable=too-few-public-methods
- list_title = _("Dashboards")
- show_title = _("Show Dashboard")
- add_title = _("Add Dashboard")
- edit_title = _("Edit Dashboard")
- list_columns = ["dashboard_link", "creator", "published", "modified"]
- order_columns = ["dashboard_link", "modified", "published"]
- edit_columns = [
- "dashboard_title",
- "slug",
- "owners",
- "position_json",
- "css",
- "json_metadata",
- "published",
- ]
- show_columns = edit_columns + ["table_names", "charts"]
- search_columns = ("dashboard_title", "slug", "owners", "published")
- add_columns = edit_columns
- base_order = ("changed_on", "desc")
- description_columns = {
- "position_json": _(
- "This json object describes the positioning of the widgets in "
- "the dashboard. It is dynamically generated when adjusting "
- "the widgets size and positions by using drag & drop in "
- "the dashboard view"
- ),
- "css": _(
- "The CSS for individual dashboards can be altered here, or "
- "in the dashboard view where changes are immediately "
- "visible"
- ),
- "slug": _("To get a readable URL for your dashboard"),
- "json_metadata": _(
- "This JSON object is generated dynamically when clicking "
- "the save or overwrite button in the dashboard view. It "
- "is exposed here for reference and for power users who may "
- "want to alter specific parameters."
- ),
- "owners": _("Owners is a list of users who can alter the dashboard."),
- "published": _(
- "Determines whether or not this dashboard is "
- "visible in the list of all dashboards"
- ),
- }
- base_filters = [["slice", DashboardFilter, lambda: []]]
- label_columns = {
- "dashboard_link": _("Dashboard"),
- "dashboard_title": _("Title"),
- "slug": _("Slug"),
- "charts": _("Charts"),
- "owners": _("Owners"),
- "creator": _("Creator"),
- "modified": _("Modified"),
- "position_json": _("Position JSON"),
- "css": _("CSS"),
- "json_metadata": _("JSON Metadata"),
- "table_names": _("Underlying Tables"),
- }
- def pre_delete(self, item): # pylint: disable=no-self-use
- check_ownership(item)
|