Я разветвил проект метабазы и хочу добавить некоторые функции «экспорта в pdf» в отчеты, где вы в настоящее время можете экспортировать в csv, excel и json.
Я пытался найти его и потратил много времени на поиск существующей ветки метабазы, которая могла бы иметь эту функциональность, но ничего не смог найти.
В src/metabase/util есть файл, содержащий некоторую логику для экспорта в csv, json и т.д. Он называется export.clj
до сих пор я написал несколько правок, но у меня нет опыта работы с Clojure, поэтому я просто пытаюсь дойти до этого момента, а затем, надеюсь, получить некоторые рекомендации от сообщества SO.
(def export-formats
"Map of export types to their relevant metadata"
{
"pdf" {:export-fn export-to-pdf
:content-type "application/pdf"
:ext "pdf"
:context :pdf-download},
"csv" {:export-fn export-to-csv
:content-type "text/csv"
:ext "csv"
:context :csv-download},
"xlsx" {:export-fn export-to-xlsx
:content-type "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
:ext "xlsx"
:context :xlsx-download},
"json" {:export-fn export-to-json
:content-type "applicaton/json"
:ext "json"
:context :json-download}})
Далее на той же странице приведены определения некоторых из упомянутых функций. Поэтому я добавил один для pdf, который представляет собой просто дублированную функцию csv, потому что я просто хочу попробовать увидеть, что новая опция отображается первой.
(defn- export-to-pdf [column-names rows]
(with-out-str
;; turn keywords into strings, otherwise we get colons in our output
(csv/write-csv *out* (into [(mapv name column-names)] rows))))
Мой клон метабазы установлен на Heroku. Я попытался внести вышеуказанные изменения и не увидел результата в опции загрузки. Я попытался удалить другие методы загрузки из этого файла и также не увидел изменений.
Я надеюсь, что кто-то может указать мне правильное направление, чтобы изменить это.