emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Russell Adams <RLAdams@AdamsInfoServ.Com>
To: emacs-orgmode@gnu.org
Subject: Re: Re: contact management in org-mode?
Date: Fri, 20 Nov 2009 08:32:35 -0600	[thread overview]
Message-ID: <20091120143235.GB3439@thinkpad.adamsinfoserv.com> (raw)
In-Reply-To: <20091031032607.GG23167@thinkpad.adamsinfoserv.com>

On Fri, Oct 30, 2009 at 10:26:07PM -0500, Russell Adams wrote:
> Looking into this some more, export is really easy. I can just use a
> dynamic block to store column view in whatever format I choose, and
> export then search & replace ',' for '|'. That is minimal effort!
> 
> Sparse searches in column view, hierarchy organization, etc. I'm
> trying to find a problem here.

I've just converted all my contacts into an Org file, and will
document below how it is organized.

First is Contacts.org:

--------------------------------------------------------
#+COLUMNS:  %20ITEM %15Company %10Title %WorkEmail %WorkPhone %WorkMobile %WorkFax %10WorkStreet %WorkCity %WorkState %WorkPostal %HomeEmail %HomePhone %HomeMobile %10HomeStreet %HomeCity %HomeState %HomePostal

* Contacts

** Adams, Russell
   :PROPERTIES:
   :Company:      Adams Information Services LLC
   :Title:        Principal Consultant
   :WorkEmail:    rladams@adamsinfoserv.com
   :WorkPhone:    
   :WorkMobile:   
   :WorkFax:      
   :WorkStreet:   
   :WorkCity:     
   :WorkState:    
   :WorkPostal:   
   :HomeEmail:    
   :HomePhone:    
   :HomeMobile:   
   :HomeStreet:   
   :HomeCity:     
   :HomeState:    
   :HomePostal:   
   :END:

What a super guy!
--------------------------------------------------------

I could have multiple top level headings for organization. Making a
contact a subheading also lets me use C-c / (spare tree searchs) to
limit the list of contacts.

With the column view modeline, I can edit contacts in long format, or
change fields in column view.

Next I needed a way to lookup addresses for Mutt. Lbdb is very
effective, but given I don't use BBDB anymore I required an
alternative.

I still like lbdb's inmail filter, so I continue to use that. I wrote
a quick lbdb module to find contacts in Contacts.org.

~/.lbdb/lbdbrc:
--------------------------------------------------------
MODULES_PATH="/usr/lib/lbdb /home/rladams/.lbdb/modules"
METHODS="m_inmail m_gpg m_orgcontact"
--------------------------------------------------------

~/.lbdb/modules/m_orgcontact:
--------------------------------------------------------
#! /bin/sh

m_orgcontact_query()
{

    /home/rladams/.lbdb/modules/orgcontact.pl $1

}
--------------------------------------------------------


~/.lbdb/modules/orgcontact.pl: (note the hardcoded Contacts.org file)
--------------------------------------------------------
#!/usr/bin/perl

use strict;
use warnings;

# Read org headers are records

$/="\n*";

open(MYFILE,"/home/rladams/doc/OrgFiles/Contacts.org");
my @rawcontacts = <MYFILE>;
close(MYFILE);

$/="\n";

foreach (@rawcontacts) {
  if ( $_ =~ m/$ARGV[0]/i ){

    my $name;

    foreach (split("\n",$_)) {

      # The first line is the name
      unless (defined $name) {
        $name = $_;
        $name =~ s/^\s*\**\s*//;
        $name =~ s/\s*$//;
      }

      if (m/^\s+:.*email.*:/i) {
        my $email = $_;
        $email =~ s/^\s+:\S+:\s+(\S+)/$1/g;
        $email =~ s/\s*$//;

        printf("%s\t%s\t((Org))\n", $email, $name);

      }

    }

  }

}
--------------------------------------------------------

Given I still use lbdbq in Mutt for address lookups, now it returns
one row per email property using the name from the headline.

Next, to make data entry faster, I've defined a yasnippet which
contains all the properties in a tab list.

~/.emacs/snippets/text-mode/org-mode/contact:
--------------------------------------------------------
#contact : Add a contact w/ PROPERTY drawer
# --
** $1
   :PROPERTIES:
   :Company:      $2
   :Title:        $3
   :WorkEmail:    $4
   :WorkPhone:    $5
   :WorkMobile:   $7
   :WorkFax:      $8
   :WorkStreet:   $9
   :WorkCity:     $10
   :WorkState:    $11
   :WorkPostal:   $12
   :HomeEmail:    $13
   :HomePhone:    $14
   :HomeMobile:   $15
   :HomeStreet:   $16
   :HomeCity:     $17
   :HomeState:    $18
   :HomePostal:   $19
   :END:

$0

--------------------------------------------------------

This also helps keep the property list consistent. 

I hope this helps someone else.

Thanks.

------------------------------------------------------------------
Russell Adams                            RLAdams@AdamsInfoServ.com

PGP Key ID:     0x1160DCB3           http://www.adamsinfoserv.com/

Fingerprint:    1723 D8CA 4280 1EC9 557F  66E8 1154 E018 1160 DCB3

  parent reply	other threads:[~2009-11-20 14:32 UTC|newest]

Thread overview: 104+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-07  0:17 contact management in org-mode? Lindsay Todd
2009-10-07  2:21 ` Maurizio Vitale
2009-10-07  4:16   ` Bernt Hansen
2009-10-25  2:34     ` Russell Adams
2009-10-25  6:04       ` Charles Philip Chan
2009-10-25 13:51         ` Darlan Cavalcante Moreira
2009-10-25 14:14           ` Charles Philip Chan
2009-10-25 14:18           ` Richard Riley
2009-10-25 14:22           ` Russell Adams
2009-10-29  7:58       ` Eric S Fraga, Eric S Fraga
2009-10-29 15:46         ` Gregory J. Grubbs
2009-10-29 16:00           ` Richard Riley
2009-10-29 17:36             ` Russell Adams
2009-10-29 20:00               ` Alan E. Davis
2009-10-29 22:25                 ` Eric S Fraga
2009-10-30  8:48                 ` Uwe Jochum
2009-10-31  3:10                   ` Russell Adams
2009-10-31  3:26                     ` Russell Adams
2009-10-31 16:38                       ` Gregory J. Grubbs
2009-11-20 14:32                       ` Russell Adams [this message]
2012-07-19 11:10                         ` [Orgmode] " Russell Adams
2012-07-20  0:57                           ` Karl Voit
2012-08-08 12:04                           ` Thomas Koch
2012-08-08 12:14                             ` Bastien
2012-08-09 11:31                             ` Jose E. Marchesi
2012-08-10  5:48                             ` Russell Adams
2012-08-13 22:24                               ` Semantics, Tagging, File systems, Tools, tagstore (was: [Orgmode] Re: contact management in org-mode?) Karl Voit
2012-08-09 12:04                           ` [Orgmode] Re: contact management in org-mode? Sriram Karra
2009-11-02 10:37                     ` Eric S Fraga, Eric S Fraga
2009-11-08  5:59                     ` Ben Finney
2009-11-08 14:52                       ` Matt Lundin
2009-11-08 22:22                         ` Sebastian Rose
2009-11-11 13:19                           ` Sebastian Rose
2009-11-09  6:41                         ` Gour
2009-11-15 20:50                         ` Sean Sieger
2009-10-31 21:54                   ` Shelagh Manton
2009-10-08 17:13 ` Sean Sieger
  -- strict thread matches above, loose matches on Subject: below --
2012-11-21 21:15 Babel source blocks Russell Adams
2012-03-19 15:01 table spreadsheet problem Martin Halder
2012-03-19 15:32 ` Russell Adams
2012-03-19 15:45   ` Martin Halder
2012-03-19 15:48     ` Russell Adams
2012-03-15 17:45 Latex Listings & Floats Russell Adams
2012-03-15 20:33 ` Sebastien Vauban
2011-07-24  8:00 Table formula to convert hex to dec Russell Adams
2011-07-24  9:52 ` Michael Brand
2011-07-24 16:39   ` Michael Brand
2011-02-27  1:36 Startup page Matthew Sauer
2011-02-27  2:57 ` Dan Davison
2011-02-28 20:35   ` Eric S Fraga
2011-02-27 10:15 ` Bastien
2011-02-27 14:03   ` Christian Mandel
2011-02-28 11:51 ` Konrad Hinsen
2011-03-11  5:59   ` Ido Magal
2011-03-11  7:56     ` Rainer M Krug
     [not found]       ` <improv.philosophy@gmail.com>
2011-03-06  2:49         ` Bug: Org-Contacts.el [7.4] U-SWEETSAUERPORT\Matthew Sauer
2011-03-06  4:47           ` Nick Dokos
2011-03-06 19:50             ` Matthew Sauer
2011-03-06 20:02               ` Matthew Sauer
2011-03-06 23:20                 ` Bastien
2011-03-07  1:26                   ` Matthew Sauer
2011-03-07 17:32                     ` Achim Gratz
2011-03-16 16:19       ` Re: [Orgmode] Startup page Matthew Sauer
2011-03-16 16:45         ` Nick Dokos
2011-03-17 10:34           ` Matthew Sauer
2011-03-17 10:52             ` Filippo A. Salustri
2011-03-17 22:17               ` Matthew Sauer
2011-03-17 22:48                 ` Nick Dokos
2011-03-18  0:03                   ` Filippo A. Salustri
2011-03-18  0:08                     ` Bastien
2011-03-18  0:22                       ` Matthew Sauer
2009-10-29 23:29 [OT] lisp func to write timestamp to buffer Marcelo de Moraes Serpa
2009-10-30  0:47 ` Russell Adams
2009-10-30  2:44 ` Nick Dokos
2009-10-30  2:53   ` Russell Adams
2009-09-08 20:41 Correct Way to Customize LaTeX Export? Peter Jones
2009-09-08 20:49 ` Russell Adams
     [not found]   ` <RLAdams@AdamsInfoServ.Com>
2009-09-08 21:11     ` Nick Dokos
2009-10-30  3:17     ` [OT] lisp func to write timestamp to buffer Nick Dokos
2011-07-24 15:58     ` Table formula to convert hex to dec Nick Dokos
2012-01-25 17:34     ` ICS import? Russell Adams
2012-01-25 17:50     ` Nick Dokos
     [not found]       ` <CALRk1sZc5JL_zY8Xnt+XDZfgqMmtQb4XXia4UmrP4f4sdOopCw@mail.gmail.com>
     [not found]         ` <3023.1327520270@alphaville>
     [not found]           ` <CALRk1sZ9YC9ftvB4wK84i4-68FF3kYPwhuYm9n=iwvsKerRMRQ@mail.gmail.com>
     [not found]             ` <4180.1327526628@alphaville>
2012-01-25 22:26               ` Matthew Sauer
2012-01-25 23:51                 ` Russell Adams
2012-01-26  0:03                   ` Arun Persaud
2012-01-26  0:21                   ` Nick Dokos
2012-01-26  0:58                     ` Russell Adams
2012-03-15 19:56     ` Latex Listings & Floats Nick Dokos
2012-03-19 15:56     ` table spreadsheet problem Nick Dokos
2012-03-19 16:05       ` Russell Adams
2012-03-19 16:25       ` Martin Halder
2012-03-19 17:42     ` Nick Dokos
2012-03-19 17:54       ` Russell Adams
2012-03-19 18:01         ` Nick Dokos
2012-03-19 18:21           ` Russell Adams
2012-05-15  2:57     ` ICS import? Nick Dokos
2012-05-15  3:03       ` Nick Dokos
2012-08-10  6:41     ` [Orgmode] Re: contact management in org-mode? Nick Dokos
2012-08-10 11:40       ` Sriram Karra
2012-08-10 14:03         ` Nick Dokos
2012-11-21 22:06     ` Babel source blocks Nick Dokos
2012-11-21 22:15       ` Russell Adams
2012-11-21 22:44     ` Nick Dokos
2012-11-21 22:53       ` Russell Adams

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=20091120143235.GB3439@thinkpad.adamsinfoserv.com \
    --to=rladams@adamsinfoserv.com \
    --cc=emacs-orgmode@gnu.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).