mistercrunch closed pull request #5544: Improve URLs for Chart and Dashboard 
ModelViews
URL: https://github.com/apache/incubator-superset/pull/5544
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/superset/assets/spec/javascripts/components/AsyncSelect_spec.jsx 
b/superset/assets/spec/javascripts/components/AsyncSelect_spec.jsx
index a672716bfe..bde4610258 100644
--- a/superset/assets/spec/javascripts/components/AsyncSelect_spec.jsx
+++ b/superset/assets/spec/javascripts/components/AsyncSelect_spec.jsx
@@ -9,7 +9,7 @@ import AsyncSelect from '../../../src/components/AsyncSelect';
 
 describe('AsyncSelect', () => {
   const mockedProps = {
-    dataEndpoint: '/slicemodelview/api/read',
+    dataEndpoint: '/chart/api/read',
     onChange: sinon.spy(),
     placeholder: 'Select...',
     mutator: () => [
diff --git 
a/superset/assets/spec/javascripts/dashboard/fixtures/mockSliceEntities.js 
b/superset/assets/spec/javascripts/dashboard/fixtures/mockSliceEntities.js
index 3644c100a2..03d8e30571 100644
--- a/superset/assets/spec/javascripts/dashboard/fixtures/mockSliceEntities.js
+++ b/superset/assets/spec/javascripts/dashboard/fixtures/mockSliceEntities.js
@@ -26,7 +26,7 @@ export const sliceEntitiesForChart = {
         compare_suffix: 'o10Y',
         datasource: datasourceId,
       },
-      edit_url: `/slicemodelview/edit/${sliceId}`,
+      edit_url: `/chart/edit/${sliceId}`,
       viz_type: 'pie',
       datasource: datasourceId,
       description: null,
@@ -45,7 +45,7 @@ export const sliceEntitiesForDashboard = {
       slice_url: '/superset/explore/?form_data=%7B%22slice_id%22%3A%20127%7D',
       slice_name: 'Region Filter',
       form_data: {},
-      edit_url: '/slicemodelview/edit/127',
+      edit_url: '/chart/edit/127',
       viz_type: 'filter_box',
       datasource: '2__table',
       description: null,
@@ -58,7 +58,7 @@ export const sliceEntitiesForDashboard = {
       slice_url: '/superset/explore/?form_data=%7B%22slice_id%22%3A%20128%7D',
       slice_name: "World's Population",
       form_data: {},
-      edit_url: '/slicemodelview/edit/128',
+      edit_url: '/chart/edit/128',
       viz_type: 'big_number',
       datasource: '2__table',
       description: null,
@@ -71,7 +71,7 @@ export const sliceEntitiesForDashboard = {
       slice_url: '/superset/explore/?form_data=%7B%22slice_id%22%3A%20129%7D',
       slice_name: 'Most Populated Countries',
       form_data: {},
-      edit_url: '/slicemodelview/edit/129',
+      edit_url: '/chart/edit/129',
       viz_type: 'table',
       datasource: '2__table',
       description: null,
@@ -84,7 +84,7 @@ export const sliceEntitiesForDashboard = {
       slice_url: '/superset/explore/?form_data=%7B%22slice_id%22%3A%20130%7D',
       slice_name: 'Growth Rate',
       form_data: {},
-      edit_url: '/slicemodelview/edit/130',
+      edit_url: '/chart/edit/130',
       viz_type: 'line',
       datasource: '2__table',
       description: null,
@@ -97,7 +97,7 @@ export const sliceEntitiesForDashboard = {
       slice_url: '/superset/explore/?form_data=%7B%22slice_id%22%3A%20131%7D',
       slice_name: '% Rural',
       form_data: {},
-      edit_url: '/slicemodelview/edit/131',
+      edit_url: '/chart/edit/131',
       viz_type: 'world_map',
       datasource: '2__table',
       description: null,
@@ -110,7 +110,7 @@ export const sliceEntitiesForDashboard = {
       slice_url: '/superset/explore/?form_data=%7B%22slice_id%22%3A%20132%7D',
       slice_name: 'Life Expectancy VS Rural %',
       form_data: {},
-      edit_url: '/slicemodelview/edit/132',
+      edit_url: '/chart/edit/132',
       viz_type: 'bubble',
       datasource: '2__table',
       description: null,
@@ -123,7 +123,7 @@ export const sliceEntitiesForDashboard = {
       slice_url: '/superset/explore/?form_data=%7B%22slice_id%22%3A%20133%7D',
       slice_name: 'Rural Breakdown',
       form_data: {},
-      edit_url: '/slicemodelview/edit/133',
+      edit_url: '/chart/edit/133',
       viz_type: 'sunburst',
       datasource: '2__table',
       description: null,
@@ -136,7 +136,7 @@ export const sliceEntitiesForDashboard = {
       slice_url: '/superset/explore/?form_data=%7B%22slice_id%22%3A%20134%7D',
       slice_name: "World's Pop Growth",
       form_data: {},
-      edit_url: '/slicemodelview/edit/134',
+      edit_url: '/chart/edit/134',
       viz_type: 'area',
       datasource: '2__table',
       description: null,
@@ -149,7 +149,7 @@ export const sliceEntitiesForDashboard = {
       slice_url: '/superset/explore/?form_data=%7B%22slice_id%22%3A%20135%7D',
       slice_name: 'Box plot',
       form_data: {},
-      edit_url: '/slicemodelview/edit/135',
+      edit_url: '/chart/edit/135',
       viz_type: 'box_plot',
       datasource: '2__table',
       description: null,
@@ -162,7 +162,7 @@ export const sliceEntitiesForDashboard = {
       slice_url: '/superset/explore/?form_data=%7B%22slice_id%22%3A%20136%7D',
       slice_name: 'Treemap',
       form_data: {},
-      edit_url: '/slicemodelview/edit/136',
+      edit_url: '/chart/edit/136',
       viz_type: 'treemap',
       datasource: '2__table',
       description: null,
diff --git 
a/superset/assets/spec/javascripts/explore/components/SaveModal_spec.jsx 
b/superset/assets/spec/javascripts/explore/components/SaveModal_spec.jsx
index 6f452b3a22..5e1e4b8cd5 100644
--- a/superset/assets/spec/javascripts/explore/components/SaveModal_spec.jsx
+++ b/superset/assets/spec/javascripts/explore/components/SaveModal_spec.jsx
@@ -192,7 +192,7 @@ describe('SaveModal', () => {
     });
 
     it('calls correct url', () => {
-      const url = '/dashboardmodelviewasync/api/read?_flt_0_owners=' + userID;
+      const url = '/dashboardasync/api/read?_flt_0_owners=' + userID;
       makeRequest();
       expect(ajaxStub.getCall(0).args[0].url).to.be.equal(url);
     });
diff --git a/superset/assets/src/dashboard/components/HeaderActionsDropdown.jsx 
b/superset/assets/src/dashboard/components/HeaderActionsDropdown.jsx
index dab11c382f..1258b9c64c 100644
--- a/superset/assets/src/dashboard/components/HeaderActionsDropdown.jsx
+++ b/superset/assets/src/dashboard/components/HeaderActionsDropdown.jsx
@@ -131,10 +131,7 @@ class HeaderActionsDropdown extends React.PureComponent {
           triggerNode={<span>{t('Set auto-refresh interval')}</span>}
         />
         {editMode && (
-          <MenuItem
-            target="_blank"
-            href={`/dashboardmodelview/edit/${dashboardId}`}
-          >
+          <MenuItem target="_blank" href={`/dashboard/edit/${dashboardId}`}>
             {t('Edit dashboard metadata')}
           </MenuItem>
         )}
diff --git a/superset/assets/src/explore/actions/saveModalActions.js 
b/superset/assets/src/explore/actions/saveModalActions.js
index 096ff3bf1b..fab5f492c5 100644
--- a/superset/assets/src/explore/actions/saveModalActions.js
+++ b/superset/assets/src/explore/actions/saveModalActions.js
@@ -14,7 +14,7 @@ export function fetchDashboardsFailed(userId) {
 
 export function fetchDashboards(userId) {
   return function (dispatch) {
-    const url = '/dashboardmodelviewasync/api/read?_flt_0_owners=' + userId;
+    const url = '/dashboardasync/api/read?_flt_0_owners=' + userId;
     return $.ajax({
       type: 'GET',
       url,
diff --git a/superset/assets/src/explore/components/ExploreChartHeader.jsx 
b/superset/assets/src/explore/components/ExploreChartHeader.jsx
index e211ca9d91..8c9ea91f2a 100644
--- a/superset/assets/src/explore/components/ExploreChartHeader.jsx
+++ b/superset/assets/src/explore/components/ExploreChartHeader.jsx
@@ -101,7 +101,7 @@ class ExploreChartHeader extends React.PureComponent {
           >
             <a
               className="edit-desc-icon"
-              href={`/slicemodelview/edit/${this.props.slice.slice_id}`}
+              href={`/chart/edit/${this.props.slice.slice_id}`}
             >
               <i className="fa fa-edit" />
             </a>
diff --git a/superset/assets/src/welcome/DashboardTable.jsx 
b/superset/assets/src/welcome/DashboardTable.jsx
index f7f3007ecc..6b6b71029f 100644
--- a/superset/assets/src/welcome/DashboardTable.jsx
+++ b/superset/assets/src/welcome/DashboardTable.jsx
@@ -22,7 +22,7 @@ export default class DashboardTable extends 
React.PureComponent {
   }
   componentDidMount() {
     const url = (
-      '/dashboardmodelviewasync/api/read' +
+      '/dashboardasync/api/read' +
       '?_oc_DashboardModelViewAsync=changed_on' +
       '&_od_DashboardModelViewAsync=desc');
     $.getJSON(url, (data) => {
diff --git a/superset/models/core.py b/superset/models/core.py
index 9264fcfe36..2aeea22cdb 100644
--- a/superset/models/core.py
+++ b/superset/models/core.py
@@ -237,7 +237,7 @@ def explore_json_url(self):
 
     @property
     def edit_url(self):
-        return '/slicemodelview/edit/{}'.format(self.id)
+        return '/chart/edit/{}'.format(self.id)
 
     @property
     def slice_link(self):
diff --git a/superset/templates/index.html b/superset/templates/index.html
deleted file mode 100644
index 8e4ca7c0cd..0000000000
--- a/superset/templates/index.html
+++ /dev/null
@@ -1,116 +0,0 @@
-{% extends "appbuilder/base.html" %}
-
-{% block uncontained %}
-<div class="index">
-<div id="carousel" class="carousel slide" data-ride="carousel">
-  <!-- Indicators -->
-  <ol class="carousel-indicators">
-    <li data-target="#carousel" data-slide-to="0" class="active"></li>
-    <li data-target="#carousel" data-slide-to="1"></li>
-    <li data-target="#carousel" data-slide-to="2"></li>
-    <li data-target="#carousel" data-slide-to="3"></li>
-    <li data-target="#carousel" data-slide-to="4"></li>
-  </ol>
-
-  <!-- Wrapper for slides -->
-  <div class="carousel-inner" role="listbox">
-    <div class="item active text-center">
-      <img src="{{ url_for("static", filename="img/dash.png") }}">
-      <div class="carousel-caption">
-        <div>
-          <h1>Superset</h1>
-          <p>
-            an open source data visualization platform
-          </p>
-        </div>
-      </div>
-    </div>
-    <div class="item">
-      <img src="{{ url_for("static", filename="img/bubble.png") }}">
-      <div class="carousel-caption">
-        <h2>Explore your data
-        </h2>
-        <p>
-          Intuitively navigate your data while slicing, dicing, and
-          visualizing through a rich set of widgets
-        </p>
-      </div>
-    </div>
-    <div class="item">
-      <img src="{{ url_for("static", filename="img/dash.png") }}">
-      <div class="carousel-caption">
-        <h2>Create and share dashboards</h2>
-        <p>Assemble many data visualization "slices" into a rich collection</p>
-      </div>
-    </div>
-    <div class="item">
-      <img src="{{ url_for("static", filename="img/cloud.png") }}">
-      <div class="carousel-caption">
-        <h2>Extend</h2>
-        <p>Join the community and take part in extending the widget library</p>
-      </div>
-    </div>
-    <div class="item">
-      <img src="{{ url_for("static", filename="img/servers.jpg") }}">
-      <div class="carousel-caption">
-        <h2>Connect</h2>
-        <p>
-          Access data from MySql, Presto.db, Postgres, RedShift, Oracle, MsSql,
-          SQLite, and more through the SqlAlchemy integration. You can also
-          query realtime data blazingly fast out of Druid.io
-        </p>
-      </div>
-    </div>
-  </div>
-  <!-- Controls -->
-  <div>
-    <a class="left carousel-control" href="#carousel" role="button" 
data-slide="prev">
-      <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
-      <span class="sr-only">Previous</span>
-    </a>
-    <a class="right carousel-control" href="#carousel" role="button" 
data-slide="next">
-      <span class="glyphicon glyphicon-chevron-right" 
aria-hidden="true"></span>
-      <span class="sr-only">Next</span>
-    </a>
-  </div>
-</div>
-<hr/>
-<div class="container">
-  <div class="row text-center">
-    <div class="col-lg-4">
-      <img class="img-circle" src="{{ url_for('static', 
filename='img/cardash.jpg') }}" width="140" height="140">
-      <h2>Dashboards</h2>
-      <p>Browse the dashboards list</p>
-      <p><a class="btn btn-default" href="/dashboardmodelview/list/" 
role="button">
-        <i class="fa fa-dashboard"></i>
-      </a></p>
-    </div><!-- /.col-lg-4 -->
-    <div class="col-lg-4">
-      <img class="img-circle" src="{{ url_for('static', 
filename='img/slice.jpg') }}" width="140" height="140">
-      <h2>Slices</h2>
-      <p>"Slices" are individual views into a single dataset</p>
-      <p><a class="btn btn-default" href="/slicemodelview/list/" role="button">
-        <i class="fa fa-line-chart"></i>
-      </a></p>
-    </div><!-- /.col-lg-4 -->
-    <div class="col-lg-4">
-      <img class="img-circle" src="{{ url_for('static', 
filename='img/gallery.jpg') }}" alt="Generic placeholder image" width="140" 
height="140">
-      <h2>Gallery</h2>
-      <p>Navigate through the growing set of visualizations</p>
-      <p><a class="btn btn-default" href="#" onclick="alert('Not ready 
yet!');" role="button">
-        <i class="fa fa-picture-o"></i>
-      </a></p>
-    </div><!-- /.col-lg-4 -->
-  </div>
-</div>
-</div>
-{% endblock %}
-
-{% block tail_js %}
-{{ super() }}
-<script>
-$(document).ready(function() {
-  $('#carousel').carousel();
-});
-</script>
-{% endblock %}
diff --git a/superset/templates/superset/partials/_explore_title.html 
b/superset/templates/superset/partials/_explore_title.html
deleted file mode 100644
index 88d9e6d9bf..0000000000
--- a/superset/templates/superset/partials/_explore_title.html
+++ /dev/null
@@ -1,30 +0,0 @@
-{% if slice %}
-  {% if slice.slice_name %}
-    <h2>
-      {{ slice.slice_name }}
-      <small class="star-edit-icons">
-        <span class="favstar" class_name="Slice" obj_id="{{ slice.id 
}}"></span>
-        <span>
-          <a
-            href="/slicemodelview/edit/{{ slice.id }}"
-            data-toggle="tooltip"
-            title="Edit Description"
-            class="edit-slice-description-icon"
-          >
-            {% if slice.description %}
-              <i
-                class="fa fa-question-circle-o"
-                data-toggle="tooltip"
-                data-placement="bottom"
-                title="{{ slice.description }}">
-              </i>
-            {% endif %}
-            <i class="fa fa-edit"></i>
-          </a>
-        </span>
-      </small>
-    </h2>
-  {% endif %}
-{% else %}
-  <h3>[{{ viz.datasource.table_name }}] - untitled</h3>
-{% endif %}
diff --git a/superset/templates/superset/request_access.html 
b/superset/templates/superset/request_access.html
index 6c42eb06e4..21ce744555 100644
--- a/superset/templates/superset/request_access.html
+++ b/superset/templates/superset/request_access.html
@@ -12,7 +12,7 @@ <h4>
       <button  onclick="window.location += '&action=go';">
         {{ _("Request Permissions") }}
       </button>
-      <button onclick="window.location.href = '/slicemodelview/list/';">
+      <button onclick="window.location.href = '/chart/list/';">
         {{ _("Cancel") }}
       </button>
     </div>
diff --git a/superset/views/core.py b/superset/views/core.py
index 17eb34ba87..ddd78b9f23 100755
--- a/superset/views/core.py
+++ b/superset/views/core.py
@@ -414,6 +414,7 @@ class AccessRequestsModelView(SupersetModelView, 
DeleteMixin):
 
 
 class SliceModelView(SupersetModelView, DeleteMixin):  # noqa
+    route_base = '/chart'
     datamodel = SQLAInterface(models.Slice)
 
     list_title = _('List Charts')
@@ -503,6 +504,7 @@ def add(self):
 
 
 class SliceAsync(SliceModelView):  # noqa
+    route_base = '/sliceasync'
     list_columns = [
         'id', 'slice_link', 'viz_type', 'slice_name',
         'creator', 'modified', 'icons']
@@ -516,6 +518,7 @@ class SliceAsync(SliceModelView):  # noqa
 
 
 class SliceAddView(SliceModelView):  # noqa
+    route_base = '/sliceaddview'
     list_columns = [
         'id', 'slice_name', 'slice_url', 'edit_url', 'viz_type', 'params',
         'description', 'description_markeddown', 'datasource_id', 
'datasource_type',
@@ -527,6 +530,7 @@ class SliceAddView(SliceModelView):  # noqa
 
 
 class DashboardModelView(SupersetModelView, DeleteMixin):  # noqa
+    route_base = '/dashboard'
     datamodel = SQLAInterface(models.Dashboard)
 
     list_title = _('List Dashboards')
@@ -602,7 +606,7 @@ def mulexport(self, items):
             items = [items]
         ids = ''.join('&id={}'.format(d.id) for d in items)
         return redirect(
-            '/dashboardmodelview/export_dashboards_form?{}'.format(ids[1:]))
+            '/dashboard/export_dashboards_form?{}'.format(ids[1:]))
 
     @expose('/export_dashboards_form')
     def download_dashboards(self):
@@ -614,7 +618,7 @@ def download_dashboards(self):
                 mimetype='application/text')
         return self.render_template(
             'superset/export_dashboards.html',
-            dashboards_url='/dashboardmodelview/list',
+            dashboards_url='/dashboard/list',
         )
 
 
@@ -628,6 +632,7 @@ def download_dashboards(self):
 
 
 class DashboardModelViewAsync(DashboardModelView):  # noqa
+    route_base = '/dashboardasync'
     list_columns = [
         'id', 'dashboard_link', 'creator', 'modified', 'dashboard_title',
         'changed_on', 'url', 'changed_by_name',
@@ -644,6 +649,7 @@ class DashboardModelViewAsync(DashboardModelView):  # noqa
 
 
 class DashboardAddView(DashboardModelView):  # noqa
+    route_base = '/dashboardaddview'
     list_columns = [
         'id', 'dashboard_link', 'creator', 'modified', 'dashboard_title',
         'changed_on', 'url', 'changed_by_name',
@@ -1205,7 +1211,7 @@ def import_dashboards(self):
                 models.Dashboard.import_obj(
                     dashboard, import_time=current_tt)
             db.session.commit()
-            return redirect('/dashboardmodelview/list/')
+            return redirect('/dashboard/list/')
         return self.render_template('superset/import_dashboards.html')
 
     @log_this
@@ -1249,7 +1255,7 @@ def explore(self, datasource_type=None, 
datasource_id=None):
         datasource_id, datasource_type = self.datasource_info(
             datasource_id, datasource_type, form_data)
 
-        error_redirect = '/slicemodelview/list/'
+        error_redirect = '/chart/list/'
         datasource = ConnectorRegistry.get_datasource(
             datasource_type, datasource_id, db.session)
         if not datasource:
diff --git a/tests/core_tests.py b/tests/core_tests.py
index eb95f1f142..ed66af70f2 100644
--- a/tests/core_tests.py
+++ b/tests/core_tests.py
@@ -263,8 +263,8 @@ def test_tablemodelview_list(self):
 
     def test_add_slice(self):
         self.login(username='admin')
-        # assert that /slicemodelview/add responds with 200
-        url = '/slicemodelview/add'
+        # assert that /chart/add responds with 200
+        url = '/chart/add'
         resp = self.client.get(url)
         self.assertEqual(resp.status_code, 200)
 
@@ -418,8 +418,8 @@ def test_kv(self):
 
     def test_gamma(self):
         self.login(username='gamma')
-        assert 'List Charts' in self.get_resp('/slicemodelview/list/')
-        assert 'List Dashboard' in self.get_resp('/dashboardmodelview/list/')
+        assert 'List Charts' in self.get_resp('/chart/list/')
+        assert 'List Dashboard' in self.get_resp('/dashboard/list/')
 
     def test_csv_endpoint(self):
         self.login('admin')
diff --git a/tests/dashboard_tests.py b/tests/dashboard_tests.py
index 1ab3727b1e..bc6c61f5b2 100644
--- a/tests/dashboard_tests.py
+++ b/tests/dashboard_tests.py
@@ -279,27 +279,27 @@ def test_public_user_dashboard_access(self):
         self.revoke_public_access_to_table(table)
         self.logout()
 
-        resp = self.get_resp('/slicemodelview/list/')
+        resp = self.get_resp('/chart/list/')
         self.assertNotIn('birth_names</a>', resp)
 
-        resp = self.get_resp('/dashboardmodelview/list/')
+        resp = self.get_resp('/dashboard/list/')
         self.assertNotIn('/superset/dashboard/births/', resp)
 
         self.grant_public_access_to_table(table)
 
         # Try access after adding appropriate permissions.
-        self.assertIn('birth_names', self.get_resp('/slicemodelview/list/'))
+        self.assertIn('birth_names', self.get_resp('/chart/list/'))
 
-        resp = self.get_resp('/dashboardmodelview/list/')
+        resp = self.get_resp('/dashboard/list/')
         self.assertIn('/superset/dashboard/births/', resp)
 
         self.assertIn('Births', self.get_resp('/superset/dashboard/births/'))
 
         # Confirm that public doesn't have access to other datasets.
-        resp = self.get_resp('/slicemodelview/list/')
+        resp = self.get_resp('/chart/list/')
         self.assertNotIn('wb_health_population</a>', resp)
 
-        resp = self.get_resp('/dashboardmodelview/list/')
+        resp = self.get_resp('/dashboard/list/')
         self.assertNotIn('/superset/dashboard/world_health/', resp)
 
     def test_dashboard_with_created_by_can_be_accessed_by_public_users(self):
@@ -370,7 +370,7 @@ def test_owners_can_view_empty_dashboard(self):
         gamma_user = security_manager.find_user('gamma')
         self.login(gamma_user.username)
 
-        resp = self.get_resp('/dashboardmodelview/list/')
+        resp = self.get_resp('/dashboard/list/')
         self.assertNotIn('/superset/dashboard/empty_dashboard/', resp)
 
         dash = (
@@ -383,7 +383,7 @@ def test_owners_can_view_empty_dashboard(self):
         db.session.merge(dash)
         db.session.commit()
 
-        resp = self.get_resp('/dashboardmodelview/list/')
+        resp = self.get_resp('/dashboard/list/')
         self.assertIn('/superset/dashboard/empty_dashboard/', resp)
 
 
diff --git a/tests/import_export_tests.py b/tests/import_export_tests.py
index 4b2ba74d73..3a3d5f93ae 100644
--- a/tests/import_export_tests.py
+++ b/tests/import_export_tests.py
@@ -206,7 +206,7 @@ def assert_slice_equals(self, expected_slc, actual_slc):
     def test_export_1_dashboard(self):
         birth_dash = self.get_dash_by_slug('births')
         export_dash_url = (
-            '/dashboardmodelview/export_dashboards_form?id={}&action=go'
+            '/dashboard/export_dashboards_form?id={}&action=go'
             .format(birth_dash.id)
         )
         resp = self.client.get(export_dash_url)
@@ -235,7 +235,7 @@ def test_export_2_dashboards(self):
         birth_dash = self.get_dash_by_slug('births')
         world_health_dash = self.get_dash_by_slug('world_health')
         export_dash_url = (
-            '/dashboardmodelview/export_dashboards_form?id={}&id={}&action=go'
+            '/dashboard/export_dashboards_form?id={}&id={}&action=go'
             .format(birth_dash.id, world_health_dash.id))
         resp = self.client.get(export_dash_url)
         exported_dashboards = sorted(


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to