This is an automated email from the ASF dual-hosted git repository.

hugh pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git


The following commit(s) were added to refs/heads/master by this push:
     new 60e1526f6a fix: remove `update_charts_owners` (#25843)
60e1526f6a is described below

commit 60e1526f6acc5cbfd126a29ac7d6af9420f8a648
Author: Beto Dealmeida <[email protected]>
AuthorDate: Fri Nov 3 13:06:31 2023 -0400

    fix: remove `update_charts_owners` (#25843)
---
 superset/daos/dashboard.py                      |  9 -----
 superset/dashboards/commands/create.py          |  3 +-
 superset/dashboards/commands/update.py          |  1 -
 tests/integration_tests/dashboards/api_tests.py | 49 -------------------------
 4 files changed, 1 insertion(+), 61 deletions(-)

diff --git a/superset/daos/dashboard.py b/superset/daos/dashboard.py
index cec9e43bea..77f2dd9f34 100644
--- a/superset/daos/dashboard.py
+++ b/superset/daos/dashboard.py
@@ -178,15 +178,6 @@ class DashboardDAO(BaseDAO[Dashboard]):
             return not db.session.query(dashboard_query.exists()).scalar()
         return True
 
-    @staticmethod
-    def update_charts_owners(model: Dashboard, commit: bool = True) -> 
Dashboard:
-        owners = list(model.owners)
-        for slc in model.slices:
-            slc.owners = list(set(owners) | set(slc.owners))
-        if commit:
-            db.session.commit()
-        return model
-
     @staticmethod
     def set_dash_metadata(  # pylint: disable=too-many-locals
         dashboard: Dashboard,
diff --git a/superset/dashboards/commands/create.py 
b/superset/dashboards/commands/create.py
index be7468c2ef..4b5cd5fb04 100644
--- a/superset/dashboards/commands/create.py
+++ b/superset/dashboards/commands/create.py
@@ -40,8 +40,7 @@ class CreateDashboardCommand(CreateMixin, BaseCommand):
     def run(self) -> Model:
         self.validate()
         try:
-            dashboard = DashboardDAO.create(attributes=self._properties, 
commit=False)
-            dashboard = DashboardDAO.update_charts_owners(dashboard, 
commit=True)
+            dashboard = DashboardDAO.create(attributes=self._properties, 
commit=True)
         except DAOCreateFailedError as ex:
             logger.exception(ex.exception)
             raise DashboardCreateFailedError() from ex
diff --git a/superset/dashboards/commands/update.py 
b/superset/dashboards/commands/update.py
index c880eebe89..f9975c0dd2 100644
--- a/superset/dashboards/commands/update.py
+++ b/superset/dashboards/commands/update.py
@@ -58,7 +58,6 @@ class UpdateDashboardCommand(UpdateMixin, BaseCommand):
                     data=json.loads(self._properties.get("json_metadata", 
"{}")),
                     commit=False,
                 )
-            dashboard = DashboardDAO.update_charts_owners(dashboard, 
commit=False)
             db.session.commit()
         except DAOUpdateFailedError as ex:
             logger.exception(ex.exception)
diff --git a/tests/integration_tests/dashboards/api_tests.py 
b/tests/integration_tests/dashboards/api_tests.py
index f676e873b7..cc7bc109b4 100644
--- a/tests/integration_tests/dashboards/api_tests.py
+++ b/tests/integration_tests/dashboards/api_tests.py
@@ -1378,55 +1378,6 @@ class TestDashboardApi(SupersetTestCase, 
ApiOwnersTestCaseMixin, InsertChartMixi
         db.session.delete(model)
         db.session.commit()
 
-    @pytest.mark.usefixtures("load_birth_names_dashboard_with_slices")
-    def test_update_dashboard_chart_owners(self):
-        """
-        Dashboard API: Test update chart owners
-        """
-        user_alpha1 = self.create_user(
-            "alpha1", "password", "Alpha", email="[email protected]"
-        )
-        user_alpha2 = self.create_user(
-            "alpha2", "password", "Alpha", email="[email protected]"
-        )
-        admin = self.get_user("admin")
-        slices = []
-        slices.append(
-            db.session.query(Slice).filter_by(slice_name="Girl Name 
Cloud").first()
-        )
-        
slices.append(db.session.query(Slice).filter_by(slice_name="Trends").first())
-        
slices.append(db.session.query(Slice).filter_by(slice_name="Boys").first())
-
-        dashboard = self.insert_dashboard(
-            "title1",
-            "slug1",
-            [admin.id],
-            slices=slices,
-        )
-        self.login(username="admin")
-        uri = f"api/v1/dashboard/{dashboard.id}"
-        dashboard_data = {"owners": [user_alpha1.id, user_alpha2.id]}
-        rv = self.client.put(uri, json=dashboard_data)
-        self.assertEqual(rv.status_code, 200)
-
-        # verify slices owners include alpha1 and alpha2 users
-        slices_ids = [slice.id for slice in slices]
-        # Refetch Slices
-        slices = db.session.query(Slice).filter(Slice.id.in_(slices_ids)).all()
-        for slice in slices:
-            self.assertIn(user_alpha1, slice.owners)
-            self.assertIn(user_alpha2, slice.owners)
-            self.assertNotIn(admin, slice.owners)
-            # Revert owners on slice
-            slice.owners = []
-            db.session.commit()
-
-        # Rollback changes
-        db.session.delete(dashboard)
-        db.session.delete(user_alpha1)
-        db.session.delete(user_alpha2)
-        db.session.commit()
-
     @pytest.mark.usefixtures("load_birth_names_dashboard_with_slices")
     def test_update_dashboard_chart_owners_propagation(self):
         """

Reply via email to