Skip to content
Snippets Groups Projects
Unverified Commit 6dfe0ddc authored by Tim Macdonald's avatar Tim Macdonald Committed by GitHub
Browse files

Remove unnecessary ParameterCard function (#27493)

We were explicitly keeping ParameterCards and dashboard.parameters in
sync, but that's not necessary
parent c6fda28b
No related branches found
No related tags found
No related merge requests found
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
[clojure.set :as set] [clojure.set :as set]
[clojure.string :as str] [clojure.string :as str]
[clojure.tools.logging :as log] [clojure.tools.logging :as log]
[medley.core :as m]
[metabase.automagic-dashboards.populate :as populate] [metabase.automagic-dashboards.populate :as populate]
[metabase.events :as events] [metabase.events :as events]
[metabase.models.card :as card :refer [Card]] [metabase.models.card :as card :refer [Card]]
...@@ -15,9 +14,7 @@ ...@@ -15,9 +14,7 @@
:refer [DashboardCard]] :refer [DashboardCard]]
[metabase.models.field-values :as field-values] [metabase.models.field-values :as field-values]
[metabase.models.interface :as mi] [metabase.models.interface :as mi]
[metabase.models.parameter-card [metabase.models.parameter-card :as parameter-card]
:as parameter-card
:refer [ParameterCard]]
[metabase.models.params :as params] [metabase.models.params :as params]
[metabase.models.permissions :as perms] [metabase.models.permissions :as perms]
[metabase.models.pulse :as pulse :refer [Pulse]] [metabase.models.pulse :as pulse :refer [Pulse]]
...@@ -147,23 +144,6 @@ ...@@ -147,23 +144,6 @@
[dashboard] [dashboard]
(update-dashboard-subscription-pulses! 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 (mi/define-methods
Dashboard Dashboard
{:properties (constantly {::mi/timestamped? true {:properties (constantly {::mi/timestamped? true
...@@ -174,7 +154,7 @@ ...@@ -174,7 +154,7 @@
:post-insert post-insert :post-insert post-insert
:pre-update pre-update :pre-update pre-update
:post-update post-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 (defmethod serdes.hash/identity-hash-fields Dashboard
[_dashboard] [_dashboard]
......
...@@ -197,7 +197,7 @@ ...@@ -197,7 +197,7 @@
(mt/user-http-request :rasta :post 200 "dashboard" {:name dashboard-name (mt/user-http-request :rasta :post 200 "dashboard" {:name dashboard-name
:collection_id (u/the-id collection) :collection_id (u/the-id collection)
:collection_position 1000}) :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) (some-> (db/select-one [Dashboard :collection_id :collection_position] :name dashboard-name)
(update :collection_id (partial = (u/the-id collection)))))) (update :collection_id (partial = (u/the-id collection))))))
(finally (finally
......
...@@ -134,7 +134,6 @@ ...@@ -134,7 +134,6 @@
:table_id nil :table_id nil
:details {:name "My Cool Dashboard" :details {:name "My Cool Dashboard"
:description nil :description nil
:parameters []
:dashcards [{:description (:description card) :dashcards [{:description (:description card)
:name (:name card) :name (:name card)
:id (:id dashcard) :id (:id dashcard)
...@@ -159,7 +158,6 @@ ...@@ -159,7 +158,6 @@
:table_id nil :table_id nil
:details {:name "My Cool Dashboard" :details {:name "My Cool Dashboard"
:description nil :description nil
:parameters []
:dashcards [{:description (:description card) :dashcards [{:description (:description card)
:name (:name card) :name (:name card)
:id (:id dashcard) :id (:id dashcard)
......
...@@ -46,7 +46,6 @@ ...@@ -46,7 +46,6 @@
(defn- dashboard->revision-object [dashboard] (defn- dashboard->revision-object [dashboard]
{:description nil {:description nil
:cache_ttl nil :cache_ttl nil
:parameters []
:name (:name dashboard)}) :name (:name dashboard)})
(deftest card-create-test (deftest card-create-test
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment