[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[mhc:01837] Re: 終了 (done) した Todo のまとめて移動
大賀きゆきです。
> > Todo <==> Done を簡単に切り替える設定は、以前からみなさん追求さ
> > れていまして、ぼくは、みなさんの設定をかき集めて、
> 作るのは楽しいんですが、結局使わずに解決できるようですね…
> ひとまず手作業で done&todo => done にします。ありがとうございました。
結局こんなのを作りました。以下のように運用します。
(1) 表示対象は todo&done … 終わってるんだけどちょっと残しておきたい
!done … 普通の項目や終了していないtodo
(2) 期限から1週間過ぎてから mhc-todo-set-done/todo-as-done すると、
todo&done は done に変更
→ 表示されなくなる/intersectionから移動
(3) todo -> todo&done は直接編集? toggleするものも作ってあるが…
;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;;
(setq mhc-default-category "(todo && done) || !done")
(defun mhc-draft-get-x-sc-day-last ()
(let ((str (mhc-header-get-value "x-sc-day"))
(date 0)
(i 0))
(while (string-match "[ \t]*\\([0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\\)[ \t]*" str i)
(let ((cur (mhc-date-new-from-string
(substring str
(match-beginning 1)
(match-end 1)))))
(if (< date cur)
(setq date cur)))
(setq i (match-end 0)))
date))
(defvar mhc-done/todo-as-done-interval 7)
(defun mhc-todo-set-done/todo-as-done ()
(interactive)
(mhc-modify-file (mhc-summary-filename))
(if (and (mhc-draft-in-category-p "done")
(mhc-draft-in-category-p "todo")
(let* ((now (mhc-date-now))
(date (mhc-draft-get-x-sc-day-last)))
(< (+ date mhc-done/todo-as-done-interval) now)))
(let ((subject (mhc-header-get-value "x-sc-subject")))
(mhc-draft-delete-category "todo")
(mhc-draft-delete-category "wait")
(mhc-draft-append-category "done")
(mhc-draft-finish)
(message "Completed: %s" subject))
(kill-buffer (current-buffer))
(beep)))
;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;; ;;;
--
sakura@xxxxxxxxxxxx
http://www.tennodai.com/~sakura/