[Emacs] Refine completion log book settings

This commit is contained in:
Ivan Malison 2023-09-13 17:52:10 -06:00
parent 73c7777217
commit 3afb8b6f0a

View File

@ -33,6 +33,9 @@ We're going to use this to write separate parts of our config to different secti
(defvar imalison:shared-org-dir "~/katnivan") (defvar imalison:shared-org-dir "~/katnivan")
(defvar imalison:org-whoami "Ivan Malison") (defvar imalison:org-whoami "Ivan Malison")
(defvar imalison:org-people (list nil "Ivan Malison" "Kat Huang")) (defvar imalison:org-people (list nil "Ivan Malison" "Kat Huang"))
(defvar imalison:org-people-associated-states
'(("Ivan Malison" . ("IVANDONE"))
("Kat Huang" . ("KATDONE"))))
(defvar imalison:org-default-initial-state "TODO") (defvar imalison:org-default-initial-state "TODO")
(defvar imalison:org-gtd-file (defvar imalison:org-gtd-file
@ -281,7 +284,11 @@ We're going to use this to write separate parts of our config to different secti
(null person) (null person)
(string-equal assignee person) (string-equal assignee person)
(string-equal completer person) (string-equal completer person)
(null assignee)))) (and
(null (or assignee completer))
(or
(imalison:shared-org-file-p)
(equal person imalison:org-whoami))))))
(defmacro imalison:assigned-to-me () (defmacro imalison:assigned-to-me ()
`(let ((assignee (org-entry-get nil "ASSIGNEE"))) `(let ((assignee (org-entry-get nil "ASSIGNEE")))
@ -313,13 +320,26 @@ We're going to use this to write separate parts of our config to different secti
(when (eq major-mode 'org-agenda-mode) (when (eq major-mode 'org-agenda-mode)
(org-agenda-redo))) (org-agenda-redo)))
(defun imalison:state-belongs-to (state person)
(member
state (cdr (assoc person imalison:org-people-associated-states))))
(defun imalison:state-relevant-to (state person)
(not (member state
(mapcan 'cdr (--filter (not (equal (car it) person))
imalison:org-people-associated-states)))))
(defun org-agenda-states-filter (state &optional marker) (defun org-agenda-states-filter (state &optional marker)
(and (member state org-done-keywords-for-agenda) (and (member state org-done-keywords-for-agenda)
(or (null imalison:org-agenda-filter-to) (or (null imalison:org-agenda-filter-to)
(save-excursion (save-excursion
(set-buffer (marker-buffer marker)) (set-buffer (marker-buffer marker))
(goto-char (marker-position marker)) (goto-char (marker-position marker))
(imalison:relevant-to imalison:org-agenda-filter-to))))) (or
(imalison:state-belongs-to state imalison:org-agenda-filter-to)
(and
(imalison:relevant-to imalison:org-agenda-filter-to)
(imalison:state-relevant-to state imalison:org-agenda-filter-to)))))))
#+end_src #+end_src
** Agenda ** Agenda
#+begin_src emacs-lisp :tangle org-config-config.el #+begin_src emacs-lisp :tangle org-config-config.el