# 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 import Markup from flask_babel import lazy_gettext as _ from superset.views.chart.filters import SliceFilter from superset.views.dashboard.filters import DashboardFilter class SliceMixin: # pylint: disable=too-few-public-methods list_title = _("Charts") show_title = _("Show Chart") add_title = _("Add Chart") edit_title = _("Edit Chart") can_add = False search_columns = ( "slice_name", "description", "viz_type", "datasource_name", "owners", ) list_columns = ["slice_link", "viz_type", "datasource_link", "creator", "modified"] order_columns = [ "slice_name", "viz_type", "datasource_link", "modified", "changed_on", ] edit_columns = [ "slice_name", "description", "viz_type", "owners", "dashboards", "params", "cache_timeout", ] base_order = ("changed_on", "desc") description_columns = { "description": Markup( "The content here can be displayed as widget headers in the " "dashboard view. Supports " '' "markdown" ), "params": _( "These parameters are generated dynamically when clicking " "the save or overwrite button in the explore view. This JSON " "object is exposed here for reference and for power users who may " "want to alter specific parameters." ), "cache_timeout": _( "Duration (in seconds) of the caching timeout for this chart. " "Note this defaults to the datasource/table timeout if undefined." ), } base_filters = [["id", SliceFilter, lambda: []]] label_columns = { "cache_timeout": _("Cache Timeout"), "creator": _("Creator"), "dashboards": _("Dashboards"), "datasource_link": _("Datasource"), "description": _("Description"), "modified": _("Last Modified"), "owners": _("Owners"), "params": _("Parameters"), "slice_link": _("Chart"), "slice_name": _("Name"), "table": _("Table"), "viz_type": _("Visualization Type"), } add_form_query_rel_fields = {"dashboards": [["name", DashboardFilter, None]]} edit_form_query_rel_fields = add_form_query_rel_fields