From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bernt Hansen Subject: Re: Handling phone calls Date: Fri, 13 Nov 2009 14:28:50 -0500 Message-ID: <87skci1ax9.fsf@gollum.intra.norang.ca> References: <87tzkhoi45.fsf@gollum.intra.norang.ca> <87ocn6p7e2.fsf@dynapse.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1N91pO-0007z1-4w for emacs-orgmode@gnu.org; Fri, 13 Nov 2009 14:29:02 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1N91pJ-0007yZ-L3 for emacs-orgmode@gnu.org; Fri, 13 Nov 2009 14:29:00 -0500 Received: from [199.232.76.173] (port=47563 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1N91pJ-0007yW-Er for emacs-orgmode@gnu.org; Fri, 13 Nov 2009 14:28:57 -0500 Received: from mho-02-ewr.mailhop.org ([204.13.248.72]:52888) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1N91pJ-00015y-6O for emacs-orgmode@gnu.org; Fri, 13 Nov 2009 14:28:57 -0500 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: "Gregory J. Grubbs" Cc: emacs-orgmode@gnu.org gregory@dynapse.com (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