From 85ffb7a4b689f8148d3654179af29b3a56d44695 Mon Sep 17 00:00:00 2001 From: Allen Gilliland <agilliland@gmail.com> Date: Fri, 2 Oct 2015 14:16:43 -0700 Subject: [PATCH] simply sync the sample dataset on app startup, but explicitly skip any activity feed entries related to the sample dataset. --- src/metabase/events/activity_feed.clj | 22 +++++++++++++--------- src/metabase/sample_data.clj | 6 +++--- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/metabase/events/activity_feed.clj b/src/metabase/events/activity_feed.clj index c93fdca0365..0387c9ac84d 100644 --- a/src/metabase/events/activity_feed.clj +++ b/src/metabase/events/activity_feed.clj @@ -6,6 +6,7 @@ [metabase.events :as events] (metabase.models [activity :refer [Activity]] [dashboard :refer [Dashboard]] + [database :refer [Database]] [session :refer [Session]]))) @@ -79,17 +80,20 @@ :dashboard-remove-cards (record-activity topic object add-remove-card-details)))) (defn- process-database-activity [topic object] - (let [database-details-fn (fn [obj] (-> obj + (let [database (db/sel :one Database :id (events/object->model-id topic object)) + database-details-fn (fn [obj] (-> obj (assoc :status "started") (dissoc :database_id :custom_id))) - database-table-fn (fn [obj] {:database-id (events/object->model-id topic obj)})] - (case topic - :database-sync-begin (record-activity :database-sync object database-details-fn database-table-fn) - :database-sync-end (let [{activity-id :id} (db/sel :one Activity :custom_id (:custom_id object))] - (db/upd Activity activity-id - :details (-> object - (assoc :status "completed") - (dissoc :database_id :custom_id))))))) + database-table-fn (fn [obj] {:database-id (events/object->model-id topic obj)})] + ;; NOTE: we are skipping any handling of activity for sample databases + (when (= false (:is_sample database)) + (case topic + :database-sync-begin (record-activity :database-sync object database-details-fn database-table-fn) + :database-sync-end (let [{activity-id :id} (db/sel :one Activity :custom_id (:custom_id object))] + (db/upd Activity activity-id + :details (-> object + (assoc :status "completed") + (dissoc :database_id :custom_id)))))))) (defn- process-user-activity [topic object] ;; we only care about login activity when its the users first session (a.k.a. new user!) diff --git a/src/metabase/sample_data.clj b/src/metabase/sample_data.clj index 1289c95b534..d1ea45e7636 100644 --- a/src/metabase/sample_data.clj +++ b/src/metabase/sample_data.clj @@ -32,6 +32,6 @@ (log/error (format "Failed to load sample dataset: %s" (.getMessage e))))))) (defn update-sample-dataset-if-needed! [] - ;; TODO - fill this out - ;; NOTE: we don't want to sync the sample dataset unless it has actually changed - nil) + ;; TODO - it would be a bit nicer if we skipped this when the data hasn't changed + (when-let [db (db/sel :one Database :is_sample true)] + (driver/sync-database! db))) -- GitLab