[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Orgmode] Re: Feature request: skip blocked lines in agenda view grid
From: |
Michael Ekstrand |
Subject: |
[Orgmode] Re: Feature request: skip blocked lines in agenda view grid |
Date: |
Tue, 21 Oct 2008 08:21:40 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux) |
Carsten Dominik <address@hidden> writes:
> you have just catapulted yourself onto the list of possible successors
> when I will quit as maintainer of Org... :-)
>
> Good work - I don't think it works completely yet, though.
Thanks :)
> When I have
>
> * new one
> <2008-10-21 Tue 08:01-11:55>
>
> * new two
> <2008-10-21 Tue 13:59-14:55>
>
> Then I get this agenda:
>
> Day-agenda (W43):
> Tuesday 21 October 2008
> 8:00...... ----------------
> past: 8:01-11:55 new one
> 11:00...... ----------------
> 12:00...... ----------------
> 13:00...... ----------------
> past: 13:59-14:55 new two
> 15:00...... ----------------
> 16:00...... ----------------
> 17:00...... ----------------
> 18:00...... ----------------
> 20:00...... ----------------
>
> The line at 11:00 should be gone as well.
I think I've found the problem. I was computing the end time by adding
minutes to start time, which doesn't quite work for obvious reasons.
I've fixed it in the following code.
(defadvice org-agenda-add-time-grid-maybe (around mde-org-agenda-grid-tweakify
(list ndays todayp))
(if (member 'remove-match (car org-agenda-time-grid))
(flet ((extract-window
(line)
(let ((start (get-text-property 1 'time-of-day line))
(dur (get-text-property 1 'duration line)))
(cond
((and start dur) (cons start dur))
(start start)
(t nil))))
(duration-add
(time duration)
(+ time (* 100 (/ duration 60)) (% duration 60))))
(let* ((windows (delq nil (mapcar 'extract-window list)))
(org-agenda-time-grid
(list (car org-agenda-time-grid)
(cadr org-agenda-time-grid)
(remove-if
(lambda (time)
(find-if (lambda (w)
(if (numberp w)
(equal w time)
(and (>= time (car w))
(< time (duration-add
(car w) (cdr w))))))
windows))
(caddr org-agenda-time-grid)))))
ad-do-it))
ad-do-it))
(ad-activate 'org-agenda-add-time-grid-maybe)
- Michael
--
mouse, n: A device for pointing at the xterm in which you want to type.
Confused by the strange files? I cryptographically sign my messages.
For more information see <http://www.elehack.net/resources/gpg>.
pgpKkCyb1r8fo.pgp
Description: PGP signature