diff --git a/src/metabase/events/activity_feed.clj b/src/metabase/events/activity_feed.clj index c93fdca03654615e58a9dbd9a2fb9e16d2ef6ef4..0387c9ac84dc3a5bbe095d5664d92590c924ab11 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 1289c95b53439c619c85f4dc0d99dd52fb198b24..d1ea45e7636e78b0b6db223140bf65cf2b52869a 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)))