mirror of
https://github.com/apache/superset.git
synced 2026-04-08 19:05:46 +00:00
225 lines
5.6 KiB
Python
225 lines
5.6 KiB
Python
# 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.
|
|
import json
|
|
import textwrap
|
|
|
|
from superset import db
|
|
from superset.models.dashboard import Dashboard
|
|
from superset.models.slice import Slice
|
|
|
|
from .helpers import misc_dash_slices, update_slice_ids
|
|
|
|
DASH_SLUG = "misc_charts"
|
|
|
|
|
|
def load_misc_dashboard() -> None:
|
|
"""Loading a dashboard featuring misc charts"""
|
|
|
|
print("Creating the dashboard")
|
|
db.session.expunge_all()
|
|
dash = db.session.query(Dashboard).filter_by(slug=DASH_SLUG).first()
|
|
|
|
if not dash:
|
|
dash = Dashboard()
|
|
js = textwrap.dedent(
|
|
"""\
|
|
{
|
|
"CHART-BkeVbh8ANQ": {
|
|
"children": [],
|
|
"id": "CHART-BkeVbh8ANQ",
|
|
"meta": {
|
|
"chartId": 4004,
|
|
"height": 34,
|
|
"sliceName": "Multi Line",
|
|
"width": 8
|
|
},
|
|
"type": "CHART"
|
|
},
|
|
"CHART-H1HYNzEANX": {
|
|
"children": [],
|
|
"id": "CHART-H1HYNzEANX",
|
|
"meta": {
|
|
"chartId": 3940,
|
|
"height": 50,
|
|
"sliceName": "Energy Sankey",
|
|
"width": 6
|
|
},
|
|
"type": "CHART"
|
|
},
|
|
"CHART-HJOYVMV0E7": {
|
|
"children": [],
|
|
"id": "CHART-HJOYVMV0E7",
|
|
"meta": {
|
|
"chartId": 3969,
|
|
"height": 63,
|
|
"sliceName": "Mapbox Long/Lat",
|
|
"width": 6
|
|
},
|
|
"type": "CHART"
|
|
},
|
|
"CHART-S1WYNz4AVX": {
|
|
"children": [],
|
|
"id": "CHART-S1WYNz4AVX",
|
|
"meta": {
|
|
"chartId": 3989,
|
|
"height": 25,
|
|
"sliceName": "Parallel Coordinates",
|
|
"width": 4
|
|
},
|
|
"type": "CHART"
|
|
},
|
|
"CHART-r19KVMNCE7": {
|
|
"children": [],
|
|
"id": "CHART-r19KVMNCE7",
|
|
"meta": {
|
|
"chartId": 3971,
|
|
"height": 34,
|
|
"sliceName": "Calendar Heatmap multiformat 0",
|
|
"width": 4
|
|
},
|
|
"type": "CHART"
|
|
},
|
|
"CHART-rJ4K4GV04Q": {
|
|
"children": [],
|
|
"id": "CHART-rJ4K4GV04Q",
|
|
"meta": {
|
|
"chartId": 3941,
|
|
"height": 63,
|
|
"sliceName": "Energy Force Layout",
|
|
"width": 6
|
|
},
|
|
"type": "CHART"
|
|
},
|
|
"CHART-rkgF4G4A4X": {
|
|
"children": [],
|
|
"id": "CHART-rkgF4G4A4X",
|
|
"meta": {
|
|
"chartId": 3970,
|
|
"height": 25,
|
|
"sliceName": "Birth in France by department in 2016",
|
|
"width": 8
|
|
},
|
|
"type": "CHART"
|
|
},
|
|
"CHART-rywK4GVR4X": {
|
|
"children": [],
|
|
"id": "CHART-rywK4GVR4X",
|
|
"meta": {
|
|
"chartId": 3942,
|
|
"height": 50,
|
|
"sliceName": "Heatmap",
|
|
"width": 6
|
|
},
|
|
"type": "CHART"
|
|
},
|
|
"COLUMN-ByUFVf40EQ": {
|
|
"children": [
|
|
"CHART-rywK4GVR4X",
|
|
"CHART-HJOYVMV0E7"
|
|
],
|
|
"id": "COLUMN-ByUFVf40EQ",
|
|
"meta": {
|
|
"background": "BACKGROUND_TRANSPARENT",
|
|
"width": 6
|
|
},
|
|
"type": "COLUMN"
|
|
},
|
|
"COLUMN-rkmYVGN04Q": {
|
|
"children": [
|
|
"CHART-rJ4K4GV04Q",
|
|
"CHART-H1HYNzEANX"
|
|
],
|
|
"id": "COLUMN-rkmYVGN04Q",
|
|
"meta": {
|
|
"background": "BACKGROUND_TRANSPARENT",
|
|
"width": 6
|
|
},
|
|
"type": "COLUMN"
|
|
},
|
|
"GRID_ID": {
|
|
"children": [
|
|
"ROW-SytNzNA4X",
|
|
"ROW-S1MK4M4A4X",
|
|
"ROW-HkFFEzVRVm"
|
|
],
|
|
"id": "GRID_ID",
|
|
"type": "GRID"
|
|
},
|
|
"HEADER_ID": {
|
|
"id": "HEADER_ID",
|
|
"meta": {
|
|
"text": "Misc Charts"
|
|
},
|
|
"type": "HEADER"
|
|
},
|
|
"ROOT_ID": {
|
|
"children": [
|
|
"GRID_ID"
|
|
],
|
|
"id": "ROOT_ID",
|
|
"type": "ROOT"
|
|
},
|
|
"ROW-HkFFEzVRVm": {
|
|
"children": [
|
|
"CHART-r19KVMNCE7",
|
|
"CHART-BkeVbh8ANQ"
|
|
],
|
|
"id": "ROW-HkFFEzVRVm",
|
|
"meta": {
|
|
"background": "BACKGROUND_TRANSPARENT"
|
|
},
|
|
"type": "ROW"
|
|
},
|
|
"ROW-S1MK4M4A4X": {
|
|
"children": [
|
|
"COLUMN-rkmYVGN04Q",
|
|
"COLUMN-ByUFVf40EQ"
|
|
],
|
|
"id": "ROW-S1MK4M4A4X",
|
|
"meta": {
|
|
"background": "BACKGROUND_TRANSPARENT"
|
|
},
|
|
"type": "ROW"
|
|
},
|
|
"ROW-SytNzNA4X": {
|
|
"children": [
|
|
"CHART-rkgF4G4A4X",
|
|
"CHART-S1WYNz4AVX"
|
|
],
|
|
"id": "ROW-SytNzNA4X",
|
|
"meta": {
|
|
"background": "BACKGROUND_TRANSPARENT"
|
|
},
|
|
"type": "ROW"
|
|
},
|
|
"DASHBOARD_VERSION_KEY": "v2"
|
|
}
|
|
"""
|
|
)
|
|
pos = json.loads(js)
|
|
slices = (
|
|
db.session.query(Slice).filter(Slice.slice_name.in_(misc_dash_slices)).all()
|
|
)
|
|
slices = sorted(slices, key=lambda x: x.id)
|
|
update_slice_ids(pos, slices)
|
|
dash.dashboard_title = "Misc Charts"
|
|
dash.position_json = json.dumps(pos, indent=4)
|
|
dash.slug = DASH_SLUG
|
|
dash.slices = slices
|
|
db.session.merge(dash)
|
|
db.session.commit()
|