|
@@ -330,6 +330,7 @@ the daily/weekly agenda, see `org-agenda-skip-function'.")
|
|
|
(const org-agenda-span)
|
|
|
(choice (const :tag "Day" 'day)
|
|
|
(const :tag "Week" 'week)
|
|
|
+ (const :tag "Fortnight" 'fortnight)
|
|
|
(const :tag "Month" 'month)
|
|
|
(const :tag "Year" 'year)
|
|
|
(integer :tag "Custom")))
|
|
@@ -1138,6 +1139,7 @@ Custom commands can set this variable in the options section."
|
|
|
:group 'org-agenda-daily/weekly
|
|
|
:type '(choice (const :tag "Day" day)
|
|
|
(const :tag "Week" week)
|
|
|
+ (const :tag "Fortnight" fortnight)
|
|
|
(const :tag "Month" month)
|
|
|
(const :tag "Year" year)
|
|
|
(integer :tag "Custom")))
|
|
@@ -2335,7 +2337,11 @@ The following commands are available:
|
|
|
["Week View" org-agenda-week-view
|
|
|
:active (org-agenda-check-type nil 'agenda)
|
|
|
:style radio :selected (eq org-agenda-current-span 'week)
|
|
|
- :keys "v w (or just w)"]
|
|
|
+ :keys "v w"]
|
|
|
+ ["Fortnight View" org-agenda-fortnight-view
|
|
|
+ :active (org-agenda-check-type nil 'agenda)
|
|
|
+ :style radio :selected (eq org-agenda-current-span 'fortnight)
|
|
|
+ :keys "v f"]
|
|
|
["Month View" org-agenda-month-view
|
|
|
:active (org-agenda-check-type nil 'agenda)
|
|
|
:style radio :selected (eq org-agenda-current-span 'month)
|
|
@@ -4172,7 +4178,7 @@ items if they have an hour specification like [h]h:mm."
|
|
|
(sd (or start-day today))
|
|
|
(ndays (org-agenda-span-to-ndays span sd))
|
|
|
(org-agenda-start-on-weekday
|
|
|
- (if (eq ndays 7)
|
|
|
+ (if (or (eq ndays 7) (eq ndays 14))
|
|
|
org-agenda-start-on-weekday))
|
|
|
(thefiles (org-agenda-files nil 'ifmode))
|
|
|
(files thefiles)
|
|
@@ -4341,6 +4347,7 @@ items if they have an hour specification like [h]h:mm."
|
|
|
(cond ((symbolp n) n)
|
|
|
((= n 1) 'day)
|
|
|
((= n 7) 'week)
|
|
|
+ ((= n 14) 'fortnight)
|
|
|
(t n)))
|
|
|
|
|
|
(defun org-agenda-span-to-ndays (span &optional start-day)
|
|
@@ -4349,6 +4356,7 @@ START-DAY is an absolute time value."
|
|
|
(cond ((numberp span) span)
|
|
|
((eq span 'day) 1)
|
|
|
((eq span 'week) 7)
|
|
|
+ ((eq span 'fortnight) 14)
|
|
|
((eq span 'month)
|
|
|
(let ((date (calendar-gregorian-from-absolute start-day)))
|
|
|
(calendar-last-day-of-month (car date) (caddr date))))
|
|
@@ -7830,6 +7838,8 @@ With prefix ARG, go forward that many times the current span."
|
|
|
(setq sd (+ arg sd)))
|
|
|
((eq span 'week)
|
|
|
(setq sd (+ (* 7 arg) sd)))
|
|
|
+ ((eq span 'fortnight)
|
|
|
+ (setq sd (+ (* 14 arg) sd)))
|
|
|
((eq span 'month)
|
|
|
(setq greg2 (list (+ (car greg) arg) (nth 1 greg) (nth 2 greg))
|
|
|
sd (calendar-absolute-from-gregorian greg2))
|
|
@@ -7859,7 +7869,7 @@ With prefix ARG, go backward that many times the current span."
|
|
|
(defun org-agenda-view-mode-dispatch ()
|
|
|
"Call one of the view mode commands."
|
|
|
(interactive)
|
|
|
- (message "View: [d]ay [w]eek [m]onth [y]ear [SPC]reset [q]uit/abort
|
|
|
+ (message "View: [d]ay [w]eek for[t]night [m]onth [y]ear [SPC]reset [q]uit/abort
|
|
|
time[G]rid [[]inactive [f]ollow [l]og [L]og-all [c]lockcheck
|
|
|
[a]rch-trees [A]rch-files clock[R]eport include[D]iary [E]ntryText")
|
|
|
(let ((a (read-char-exclusive)))
|
|
@@ -7867,6 +7877,7 @@ With prefix ARG, go backward that many times the current span."
|
|
|
(?\ (call-interactively 'org-agenda-reset-view))
|
|
|
(?d (call-interactively 'org-agenda-day-view))
|
|
|
(?w (call-interactively 'org-agenda-week-view))
|
|
|
+ (?t (call-interactively 'org-agenda-fortnight-view))
|
|
|
(?m (call-interactively 'org-agenda-month-view))
|
|
|
(?y (call-interactively 'org-agenda-year-view))
|
|
|
(?l (call-interactively 'org-agenda-log-mode))
|
|
@@ -7905,6 +7916,15 @@ week 12 of year 2007. Years in the range 1938-2037 can also be
|
|
|
written as 2-digit years."
|
|
|
(interactive "P")
|
|
|
(org-agenda-change-time-span 'week iso-week))
|
|
|
+(defun org-agenda-fortnight-view (&optional iso-week)
|
|
|
+ "Switch to daily view for agenda.
|
|
|
+With argument ISO-WEEK, switch to the corresponding ISO week.
|
|
|
+If ISO-WEEK has more then 2 digits, only the last two encode the
|
|
|
+week. Any digits before this encode a year. So 200712 means
|
|
|
+week 12 of year 2007. Years in the range 1938-2037 can also be
|
|
|
+written as 2-digit years."
|
|
|
+ (interactive "P")
|
|
|
+ (org-agenda-change-time-span 'fortnight iso-week))
|
|
|
(defun org-agenda-month-view (&optional month)
|
|
|
"Switch to monthly view for agenda.
|
|
|
With argument MONTH, switch to that month."
|
|
@@ -7926,7 +7946,7 @@ written as 2-digit years."
|
|
|
|
|
|
(defun org-agenda-change-time-span (span &optional n)
|
|
|
"Change the agenda view to SPAN.
|
|
|
-SPAN may be `day', `week', `month', `year'."
|
|
|
+SPAN may be `day', `week', `fortnight', `month', `year'."
|
|
|
(org-agenda-check-type t 'agenda)
|
|
|
(let* ((args (get-text-property (min (1- (point-max)) (point)) 'org-last-args))
|
|
|
(curspan (nth 2 args)))
|
|
@@ -7947,7 +7967,7 @@ SPAN may be `day', `week', `month', `year'."
|
|
|
|
|
|
(defun org-agenda-compute-starting-span (sd span &optional n)
|
|
|
"Compute starting date for agenda.
|
|
|
-SPAN may be `day', `week', `month', `year'. The return value
|
|
|
+SPAN may be `day', `week', `fortnight', `month', `year'. The return value
|
|
|
is a cons cell with the starting date and the number of days,
|
|
|
so that the date SD will be in that range."
|
|
|
(let* ((greg (calendar-gregorian-from-absolute sd))
|
|
@@ -7960,7 +7980,7 @@ so that the date SD will be in that range."
|
|
|
(setq sd (+ (calendar-absolute-from-gregorian
|
|
|
(list mg 1 yg))
|
|
|
n -1))))
|
|
|
- ((eq span 'week)
|
|
|
+ ((or (eq span 'week) (eq span 'fortnight))
|
|
|
(let* ((nt (calendar-day-of-week
|
|
|
(calendar-gregorian-from-absolute sd)))
|
|
|
(d (if org-agenda-start-on-weekday
|