emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Daniel Martins <danielemc@gmail.com>
To: Carsten Dominik <carsten.dominik@gmail.com>
Cc: Matt Lundin <mdl@imapmail.org>, Emacs-orgmode@gnu.org
Subject: Re: Re: Organizing a students live
Date: Wed, 10 Feb 2010 17:02:11 -0200	[thread overview]
Message-ID: <6ac505ad1002101102i290108a6wf17a3dbf935e5790@mail.gmail.com> (raw)
In-Reply-To: <A79EECAB-AD61-4A9E-A02C-BAF5731C2BA0@gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 8010 bytes --]

Someone could send me an example of the use of the org-diary-class ??

Daniel

2010/1/3 Carsten Dominik <carsten.dominik@gmail.com>

>
> On Dec 28, 2009, at 10:09 PM, Daniel Martins wrote:
>
>  > Interesting.  But too complex for now - and I actually do prefer local
>> control.
>>
>> I know it is complex.
>>
>> I thought about the first steps
>>
>> I was thinking about a variable (list?) with predefined holidays
>>
>> or better omit-holidays
>>
>> such as org-omit-holidays
>>
>> we could add the omit dates in any place
>>  (add-to-list 'org-omit-holidays "25 Dec")
>>  (add-to-list 'org-omit-holidays "1 Jan")
>>  (add-to-list 'org-omit-holidays "1 May")
>> etc.
>>
>>
> Hmm, this is a possibility - but I don't have the time now to implement it.
> And then the question remains: What exactly should be omitted on these
> days?
> Everything? - probably not.  So I don't see how this leads to useful
> control, unless
> we have a really fine-grained control for each entry.
>
>
>
>> Then we could change (adapt) the
>>
>> function calendar-check-holydays from holidays.el
>>
>>
>> I did a search-replace to something like this:
>>
>> (defun org-check-calendar-omit-holidays (date)
>>  "Check the list of org-omit-holidays for any that occur on DATE.
>> The value returned is a list of strings of relevant org-omit-holiday
>> descriptions.
>> The org-omit-holidays are those in the list `org-omit-holidays'."
>>  (let ((displayed-month (extract-calendar-month date))
>>        (displayed-year (extract-calendar-year date))
>>        (org-omit-holiday-list))
>>    (dolist (h (calendar-org-omit-holiday-list))
>>      (if (calendar-date-equal date (car h))
>>          (setq org-omit-holiday-list (append org-omit-holiday-list (cdr
>> h)))))
>>    org-omit-holiday-list))
>>
>> with these adaptation we could use a slighly changed  version of the
>> "diary-schedule" function  I sent before.
>>
>> I did not go further nor tested it.
>>
>> Thinking again now: I think it is better to avoid holidays than week
>> numbers. The problem is that we have to decide which holidays are "really"
>> holidays and not rely on the holidays variables that come with Emacs.
>>
>
>
> I do not agree.  Lectures are not only skipped on holidays, but also on
> other
> days, so a more general approach is needed.
>
>
>
>>
>> Daniel
>>
>> 2009/12/28 Carsten Dominik <carsten.dominik@gmail.com>
>> Hi Daniel,
>>
>>
>> On Dec 27, 2009, at 1:51 AM, Daniel Martins wrote:
>>
>> I liked the idea of org-diary-class!
>>
>> I have added the function now to org-agenda.el
>>
>>
>>
>> About avoiding holidays and certain weeks:
>>
>> I used remind and wyrd for a while  and they are a quite good software
>> for dealing with such appts.
>>
>> There we have the OMIT function where we determine holidays and other
>> non-working days including Sat and Sundays
>>
>>
>> Normally we have an OMIT list at the beginning of file
>>
>> Some functions simply omit those dates
>>
>> Other expressions use another keyword AFTER (or BEFORE)  to change
>> OMIT behaviour
>>
>> like
>> 23 Mar AFTER OMIT "Bank payment"
>>
>> eg If 23 Mar is in Saturday it will appear in Monday
>>
>> This preamble is just to say 2 things:
>>
>> 1) remind/wyrd could be used as a benchmark for some of the calendar
>> isuues we have
>>
>> 2) I do not know if the week number in a year is a practical way of
>> setting exceptions to org-diary-class
>>
>> Daniel
>>
>> PS Wyrd page is
>>
>> http://pessimization.com/software/wyrd/
>>
>> Interesting.  But too complex for now - and I actually do prefer local
>> control.
>>
>> - Carsten
>>
>>
>>
>>
>>
>>
>>
>> 2009/12/26 Carsten Dominik <carsten.dominik@gmail.com>:
>> Hi Daniel,
>>
>> I think it is a good idea to add such a function to org-mode.  But I
>> am not sure if skipping holidays is the best, because Universities
>> also have lecture-free weeks etc.
>>
>> So I am more thinking about a function like this (untested)
>>
>> (defun org-diary-class (m1 d1 y1 m2 d2 y2 dayname &rest skip-weeks)
>>  "Entry applies if date is between dates on DAYNAME, but skips SKIP-WEEKS.
>> Order of the parameters is M1, D1, Y1, M2, D2, Y2 if
>> `european-calendar-style' is nil, and D1, M1, Y1, D2, M2, Y2 if
>> `european-calendar-style' is t.  The weeks are ISO week numbers where
>> the item should not apply."
>>  (let* ((date1 (calendar-absolute-from-gregorian
>>               (if european-calendar-style
>>                   (list d1 m1 y1)
>>                 (list m1 d1 y1))))
>>       (date2 (calendar-absolute-from-gregorian
>>               (if european-calendar-style
>>                   (list d2 m2 y2)
>>                 (list m2 d2 y2))))
>>       (d (calendar-absolute-from-gregorian date)))
>>  (and
>>   (<= date1 d)
>>   (<= d date2)
>>   (= (calendar-day-of-week date) dayname)
>>   (or (not skip-weeks)
>>       (progn
>>         (require 'cal-iso)
>>         (not (member (car (calendar-iso-from-absolute d)) skip-weeks))))
>>   entry)))
>>
>>
>> What do you think?
>>
>> - Carsten
>>
>> On Dec 21, 2009, at 4:54 PM, Daniel Martins wrote:
>>
>> In fact, it helps! Thanks
>>
>> However a sentence like this:
>>
>>
>> +# a class that meets every Monday evening between February 16 and
>> April 20, 2009
>> ** Class 7:00pm-9:00pm
>> <%%(and (= 1 (calendar-day-of-week date)) (diary-block 2 16 2009 4 20
>> 2009))>
>>
>> is not an example of simplicity and visibility for a quite common feature!
>>
>> Maybe as a suggestion we could encapsulate such a huge expression in a
>> simpler org-mode function ?
>>
>> Daniel
>>
>>
>> PS In
>>
>> http://www.emacswiki.org/cgi-bin/wiki/DiaryMode#toc12
>>
>> I found another suggestion which I do not know how to include in org-mode
>>
>>
>> ------------------------------------
>> Schedule
>>
>> If you want to write a schedule for school or university, you need to
>> define a block (it’s derived from diary-block) between two dates and a
>> weekday. The following function also recognizes holidays and won’t
>> send you to school on those days… :)
>>
>>  (defun diary-schedule (m1 d1 y1 m2 d2 y2 dayname)
>>   "Entry applies if date is between dates on DAYNAME.
>>  Order of the parameters is M1, D1, Y1, M2, D2, Y2 if
>>  `european-calendar-style' is nil, and D1, M1, Y1, D2, M2, Y2 if
>>  `european-calendar-style' is t. Entry does not apply on a history."
>>   (let ((date1 (calendar-absolute-from-gregorian
>>                 (if european-calendar-style
>>                     (list d1 m1 y1)
>>                   (list m1 d1 y1))))
>>         (date2 (calendar-absolute-from-gregorian
>>                 (if european-calendar-style
>>                     (list d2 m2 y2)
>>                   (list m2 d2 y2))))
>>         (d (calendar-absolute-from-gregorian date)))
>>     (if (and
>>          (<= date1 d)
>>          (<= d date2)
>>          (= (calendar-day-of-week date) dayname)
>>          (not (check-calendar-holidays date))
>>          )
>>          entry)))
>>
>> Then: "&%%(diary-schedule 22 4 2003 1 8 2003 2) 18:00 History"
>>
>>
>> ------------------------------------
>>
>>
>>
>> 2009/12/20 Matt Lundin <mdl@imapmail.org>:
>>
>> Daniel Martins <danielemc@gmail.com> writes:
>>
>> All academics here present (including of course Carsten) suffer from
>> the same problem, I think
>>
>>
>> *** Math classes
>> <2009-12-10 Thu 11:00-14:00 +1w>
>>
>>
>> will repeat forever and ever...
>>
>> We need to create a schedule for a period.
>>
>> The package "remind" (and its simple interface "wyrd") do this job
>> wonderfully but I do not know how to deal with this problem in Org
>> mode
>>
>> The following FAQ should help:
>>
>> http://orgmode.org/worg/org-faq.php#diary-sexp-in-org-files
>>
>> - Matt
>>
>>
>>
>>
>>
>> - Carsten
>>
>>
>>
>>
>>
> - Carsten
>
>
>
>

[-- Attachment #1.2: Type: text/html, Size: 9920 bytes --]

[-- Attachment #2: Type: text/plain, Size: 201 bytes --]

_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

  reply	other threads:[~2010-02-10 19:02 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-18 10:48 Organizing a students live Thomas Bach
2009-12-18 13:31 ` Giovanni Ridolfi
2009-12-18 14:41 ` Darlan Cavalcante Moreira
2009-12-19  9:16 ` Jan Böcker
2009-12-19 11:20   ` Thomas Bach
2009-12-20 22:54     ` Daniel Martins
2009-12-20 23:52       ` Matt Lundin
2009-12-21 15:54         ` Daniel Martins
2009-12-22 15:30           ` Matthew Lundin
2009-12-26 11:33           ` Carsten Dominik
2009-12-27  0:51             ` Daniel Martins
2009-12-28 18:47               ` Carsten Dominik
2009-12-28 21:09                 ` Daniel Martins
2010-01-03 13:17                   ` Carsten Dominik
2010-02-10 19:02                     ` Daniel Martins [this message]
     [not found]                       ` <m3pr4chpee.fsf@buster.johnrakestraw.com>
2010-02-10 19:23                         ` Daniel Martins
2010-02-10 19:45                           ` Stephan Schmitt
2010-02-10 21:57                             ` Daniel Martins
2010-02-10 22:20                           ` Nick Dokos
2010-02-10 22:31                             ` Carsten Dominik
2010-02-10 22:48                               ` Daniel Martins
2009-12-21 17:23     ` Jan Böcker

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6ac505ad1002101102i290108a6wf17a3dbf935e5790@mail.gmail.com \
    --to=danielemc@gmail.com \
    --cc=Emacs-orgmode@gnu.org \
    --cc=carsten.dominik@gmail.com \
    --cc=mdl@imapmail.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).