From 6dfe0ddc3debd22631563d557b099355fac3f3de Mon Sep 17 00:00:00 2001 From: Tim Macdonald <tim@metabase.com> Date: Tue, 10 Jan 2023 14:42:58 +0000 Subject: [PATCH] Remove unnecessary ParameterCard function (#27493) We were explicitly keeping ParameterCards and dashboard.parameters in sync, but that's not necessary --- src/metabase/models/dashboard.clj | 24 ++------------------- test/metabase/api/dashboard_test.clj | 2 +- test/metabase/events/activity_feed_test.clj | 2 -- test/metabase/events/revision_test.clj | 1 - 4 files changed, 3 insertions(+), 26 deletions(-) diff --git a/src/metabase/models/dashboard.clj b/src/metabase/models/dashboard.clj index a3d25db93fe..0475c47bf21 100644 --- a/src/metabase/models/dashboard.clj +++ b/src/metabase/models/dashboard.clj @@ -5,7 +5,6 @@ [clojure.set :as set] [clojure.string :as str] [clojure.tools.logging :as log] - [medley.core :as m] [metabase.automagic-dashboards.populate :as populate] [metabase.events :as events] [metabase.models.card :as card :refer [Card]] @@ -15,9 +14,7 @@ :refer [DashboardCard]] [metabase.models.field-values :as field-values] [metabase.models.interface :as mi] - [metabase.models.parameter-card - :as parameter-card - :refer [ParameterCard]] + [metabase.models.parameter-card :as parameter-card] [metabase.models.params :as params] [metabase.models.permissions :as perms] [metabase.models.pulse :as pulse :refer [Pulse]] @@ -147,23 +144,6 @@ [dashboard] (update-dashboard-subscription-pulses! dashboard)) -(defn- card-ids-by-param-id - "Returns a map from parameter IDs to card IDs for the given dashboard (for parameters whose filter values come from a - card via a ParameterCard)." - [dashboard-id] - (->> (db/select ParameterCard :parameterized_object_id dashboard-id :parameterized_object_type "dashboard") - (group-by :parameter_id) - (m/map-vals (comp :card_id first)))) - -(defn- populate-card-id-for-parameters - [{dashboard-id :id parameters :parameters :as dashboard}] - (assoc dashboard :parameters - (let [param-id->card-id (card-ids-by-param-id dashboard-id)] - (for [{:keys [id values_source_type values_source_config] :as param} parameters] - (if (= values_source_type "card") - (assoc-in param [:values_source_config :card_id] (get param-id->card-id id (:card_id values_source_config))) - param))))) - (mi/define-methods Dashboard {:properties (constantly {::mi/timestamped? true @@ -174,7 +154,7 @@ :post-insert post-insert :pre-update pre-update :post-update post-update - :post-select (comp populate-card-id-for-parameters public-settings/remove-public-uuid-if-public-sharing-is-disabled)}) + :post-select public-settings/remove-public-uuid-if-public-sharing-is-disabled}) (defmethod serdes.hash/identity-hash-fields Dashboard [_dashboard] diff --git a/test/metabase/api/dashboard_test.clj b/test/metabase/api/dashboard_test.clj index b2b2ab3a443..2a7b7245fcc 100644 --- a/test/metabase/api/dashboard_test.clj +++ b/test/metabase/api/dashboard_test.clj @@ -197,7 +197,7 @@ (mt/user-http-request :rasta :post 200 "dashboard" {:name dashboard-name :collection_id (u/the-id collection) :collection_position 1000}) - (is (= #metabase.models.dashboard.DashboardInstance{:collection_id true, :collection_position 1000, :parameters []} + (is (= #metabase.models.dashboard.DashboardInstance{:collection_id true, :collection_position 1000} (some-> (db/select-one [Dashboard :collection_id :collection_position] :name dashboard-name) (update :collection_id (partial = (u/the-id collection)))))) (finally diff --git a/test/metabase/events/activity_feed_test.clj b/test/metabase/events/activity_feed_test.clj index 2ee7acd0906..6db6687394c 100644 --- a/test/metabase/events/activity_feed_test.clj +++ b/test/metabase/events/activity_feed_test.clj @@ -134,7 +134,6 @@ :table_id nil :details {:name "My Cool Dashboard" :description nil - :parameters [] :dashcards [{:description (:description card) :name (:name card) :id (:id dashcard) @@ -159,7 +158,6 @@ :table_id nil :details {:name "My Cool Dashboard" :description nil - :parameters [] :dashcards [{:description (:description card) :name (:name card) :id (:id dashcard) diff --git a/test/metabase/events/revision_test.clj b/test/metabase/events/revision_test.clj index bc6a78c85f3..4ba85eb5b3b 100644 --- a/test/metabase/events/revision_test.clj +++ b/test/metabase/events/revision_test.clj @@ -46,7 +46,6 @@ (defn- dashboard->revision-object [dashboard] {:description nil :cache_ttl nil - :parameters [] :name (:name dashboard)}) (deftest card-create-test -- GitLab