 (defn ^:private make-page-cache [state columns]
   (into {}
         ;; Transducerpower
-        (comp (mapcat #(column-pages % state))
+        (comp (mapcat #(when (satisfies? ColumnSource %) (column-pages % state)))
               (map om/value)
               (map (juxt :id identity)))
         columns))

        target  (first (filter #(= (:id %) target) columns))
        source  (first (filter #(= (:id %) source) columns))
        ;; Remove page-ids already in `target'
        existing-pages (mapv :id (column-pages target state))
        pages (into []
                    (comp (remove (set existing-pages))
                          (map page-cache)


(declare new-document-ui)

(defrecord NewDocumentColumn [id]
  SpecialColumn
  (special-column-ui [_] new-document-ui)
  ColumnDropTarget
  (accept-drop! [_ state new-pages _]
    (go
