[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Orgmode] Re: Handling phone calls
From: |
Bernt Hansen |
Subject: |
[Orgmode] Re: Handling phone calls |
Date: |
Fri, 13 Nov 2009 14:28:50 -0500 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.2 (gnu/linux) |
address@hidden (Gregory J. Grubbs) writes:
> Bernt, I have been happily using your phone call templates and the BBDB
> integration. The one thing that was bugging me was when someone calls
> who is not in my BBDB database (quite a high percentage, since I don't
> make much use of BBDB). I wanted the prompt to let me quickly enter any
> name, and fill in the BBDB content if it was there.
>
> My revamped template looks like this:
> --8<---------------cut here---------------start------------->8---
> (setq my-phone-remember-templates
> (quote (
> ;; ... client templates deleted ...
> ("phone call" ?p "* Phone Call - %(gjg/bbdb-name) -
> %(gjg/bbdb-company) %T\n :CLOCK-IN:+ %?%&" "~/projects/notes.org" "Phone
> Calls"))))
> --8<---------------cut here---------------end--------------->8---
>
> Rather than using the variables for BBDB, I am using custom functions to
> return name and company; those will return values from the BBDB record
> if it was found, otherwise the name function returns what I entered
> at the prompt, and the company function returns the empty string.
>
> --8<---------------cut here---------------start------------->8---
> (defvar gjg/remember-phone-record nil
> "Either BBDB record vector, or person's name as a string, or nil")
>
> (defun my-phone-call ()
> (interactive)
> (let* ((org-remember-templates my-phone-remember-templates)
> (myname (completing-read "Who is calling: " (bbdb-hashtable)
> 'bbdb-completion-predicate 'confirm))
> (my-bbdb-name (if (> (length myname) 0) myname nil)))
> (setq gjg/remember-phone-record
> (or (first (bbdb-search (bbdb-records) my-bbdb-name nil nil))
> myname))
> (other-window 1)
> (org-remember)))
>
> (defun gjg/bbdb-name ()
> "Return full name of saved bbdb record, or empty string - for use in
> Remember templates"
> (if (and gjg/remember-phone-record (vectorp gjg/remember-phone-record))
> (bbdb-record-name gjg/remember-phone-record)
> (or gjg/remember-phone-record "")))
>
> (defun gjg/bbdb-company ()
> "Return company of saved bbdb record, or empty string - for use in Remember
> templates"
> (if (and gjg/remember-phone-record (vectorp gjg/remember-phone-record))
> (bbdb-record-company gjg/remember-phone-record)
> ""))
> --8<---------------cut here---------------end--------------->8---
Hi Gregory,
Thanks very much for sharing this. This looks like a nice improvement
to me.
Thanks for sharing your setup!
Regards,
Bernt