Commit d58a3608 authored by Tim van Deurzen's avatar Tim van Deurzen

Got project finding and capturing working as intended.

parent dac8005c
...@@ -112,37 +112,31 @@ ...@@ -112,37 +112,31 @@
(setq org-roam-directory "~/org/roam/" (setq org-roam-directory "~/org/roam/"
org-roam-v2-ack t) org-roam-v2-ack t)
;; (setq org-roam-dailies-capture-templates)
(setq deft-directory "~/org/roam") (setq deft-directory "~/org/roam")
(setq deft-extensions '("org")) (setq deft-extensions '("org"))
(org-roam-db-autosync-mode)) (org-roam-db-autosync-mode))
(defun tim/capture-project ()
"Select or capture project within a particular workspace." (require 'vulpea-select)
(defun tim/find-project ()
"Select or capture project within a particular."
(interactive) (interactive)
(let* ((workspace (completing-read "workspace: " (tim/org-roam-workspaces)))
(workspace-path (expand-file-name workspace org-roam-directory))
(template-path (format "%s/templates/" workspace-path))
(node-path-format (concat workspace-path "/%<%Y%m%d%H%M%S>-${slug}.org")))
(org-roam-capture- :node (org-roam-node-read nil (tim/org-roam-filter-by-tag workspace))
:templates
`(
("p" "project" plain (file ,(concat template-path "project.org"))
:if-new (file+head
,node-path-format
"#+title: ${title}")
:unnarrowed t)
("m" "monthly report" plain (file ,(concat template-path "monthly-report.org")) (let* ((workspace (completing-read "workspace: " (tim/org-roam-workspaces)))
:if-new (file+head (org-roam-directory (expand-file-name workspace org-roam-directory))
,(concat workspace-path "/%<%Y-%m>-report.org") (node (vulpea-select-from "project: " (vulpea-db-query-by-tags-every (list workspace "project")))))
"#+title: %<%B %Y> report")
:unnarrowed t)
)))) (if (vulpea-note-id node)
(org-roam-node-visit (org-roam-node-from-id (vulpea-note-id node)))
(org-roam-capture- :node (org-roam-node-create :title (vulpea-note-title node))
:props '(:finalize find-file)
:templates
`(("p" "project" plain (file ,(concat org-roam-directory "/templates/project.org"))
:target (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}")
:unnarrowed t))))))
;; TODO Create something similar to vulpea-find by first querying for the node and running org-roam-capture- if nothing is found. ;; TODO Create something similar to vulpea-find by first querying for the node and running org-roam-capture- if nothing is found.
(defun tim/capture-report () (defun tim/capture-report ()
...@@ -164,9 +158,8 @@ ...@@ -164,9 +158,8 @@
;; TODO Use vulpea-select-from to find the right node, extended with the workspace, and open it if the filter matches. ;; TODO Use vulpea-select-from to find the right node, extended with the workspace, and open it if the filter matches.
(require 'vulpea-select) ;; (vulpea-select-from "report" (vulpea-db-query-by-tags-every (list "report")))
(vulpea-select-from "report" (vulpea-db-query-by-tags-every (list "report"))) ;; (vulpea-db-qu)
(vulpea-db-qu)
(defun tim/org-roam-filter-by-tag (tag) (defun tim/org-roam-filter-by-tag (tag)
"Return a lambda to select nodes with a particular tag TAG." "Return a lambda to select nodes with a particular tag TAG."
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment