Re: [O] org-contacts: how to manage contacts; structure of meta data (was: No completion in Gnus)

2011-10-05 Thread Thorsten
Karl Voit  writes:

>> One further org-contacts related question: there is a predefined
>> property ADDRESS, without any inner structure. Am I supposed to write my own
>> org-capture template for that property? How would that look like - just
>> one single string? If I want something more structured (street, city,
>> zip-code etc), I have to define one property for each info-piece, or is
>> there something like a compound property? 
>
> I moved all of my approx. 1000 contacts from jPilot contacts to
> org-contacts a few months ago. I faced the same questions you are
> mentioning since org-contacts[1] does only mention the :EMAIL:
> property.
>
> A short research with my favourite search engine did not result in
> any (ISO?) standard that relates to «how to define/describe contact
> meta data».
>
> Without describing further attempts, I ended up with following
> yasnippet[2] template for a new contact:

Do you think that yasnippet is superior to org-capture or is it just a
casuality that you prefered it to org-capture?


> ,
> | # name : Org-contacts template for a person or a company
> | # --
> | ** $1 $2  :$1$2:
> | :PROPERTIES:
> | :TYPE: ${3:$$(yas/choose-value '("person" "company"))}
> | :TITLE:
> | :EMAIL: $4
> | :URL:
> | :MOBILE: 0043/
> | :HOMEPHONE:
> | :WORKPHONE:
> | :PHONE:
> | :COMPANY:
> | :STREET:
> | :POSTALCODE:
> | :CITY:
> | :COUNTRY: Österreich
> | :END:
> |
> | first contact: $0
> `

Thats what I thought, that a single :ADDRESS: property is not very
usefull or practical. So there is not something like a nested property,
each piece of information needs its own property. I think your list is
pretty complete and usable. 


> My current tags for contacts are defined in the header of my
> contacts.org:
>
> ,[ first line of my contacts.org ]
> | #+TAGS: job(j) friends(f) health(e) hotels(o) restaurants_bars(r) \
> | sport(s) students_TU(t) relatives(r) company(c)
> `

[how do you produce this nice insertions in your email?]

> A very handy bonus feature is referencing my contacts. In my .emacs
> I do have following:
>
> ,[ .emacs (excerpt) ]
> | (setq org-link-abbrev-alist
> |   '(
> | ("contact" . "~/org/contacts.org::/\*.*%s/")
> | ))
> `

> Combined with following yasnippet template it results in very comfty
> contact handling:
>
> ,[ contact yasnippet ]
> | # name : expand link to contact
> | # --
> | [[contact:$1][${2:$$(unless yas/modified-p
> |  (let ((field (nth 0 (yas/snippet-fields (first (yas/snippets-at-point))
> |(concat (buffer-substring (yas/field-start field) (yas/field-end 
> field)}]] $0
> `
>
> Basically, you have to enter the name of the snippet, press «TAB»
> and then you type in the name (or anything of the heading line of a
> contact). Then it results in [[contact:foo bar][foo bar]] which is a
> clickable link to any contact which relates to «foo bar».

Great, I'll give that a try too.

Thanks for your help
Cheers

-- 
Thorsten




[O] org-contacts: how to manage contacts; structure of meta data (was: No completion in Gnus)

2011-10-05 Thread Karl Voit
* Thorsten  wrote:
>
> I have a org-contacts file with a few contacts with EMAIL property,
> taken from gnus using org-capture as described in the org-contacts
> manual. The contacts are tagged with some tags. 

[...]

> PS
> One further org-contacts related question: there is a predefined
> property ADDRESS, without any inner structure. Am I supposed to write my own
> org-capture template for that property? How would that look like - just
> one single string? If I want something more structured (street, city,
> zip-code etc), I have to define one property for each info-piece, or is
> there something like a compound property? 

I moved all of my approx. 1000 contacts from jPilot contacts to
org-contacts a few months ago. I faced the same questions you are
mentioning since org-contacts[1] does only mention the :EMAIL:
property.

A short research with my favourite search engine did not result in
any (ISO?) standard that relates to «how to define/describe contact
meta data».

Without describing further attempts, I ended up with following
yasnippet[2] template for a new contact:

,
| # name : Org-contacts template for a person or a company
| # --
| ** $1 $2  :$1$2:
| :PROPERTIES:
| :TYPE: ${3:$$(yas/choose-value '("person" "company"))}
| :TITLE:
| :EMAIL: $4
| :URL:
| :MOBILE: 0043/
| :HOMEPHONE:
| :WORKPHONE:
| :PHONE:
| :COMPANY:
| :STREET:
| :POSTALCODE:
| :CITY:
| :COUNTRY: Österreich
| :END:
|
| first contact: $0
`

My current tags for contacts are defined in the header of my
contacts.org:

,[ first line of my contacts.org ]
| #+TAGS: job(j) friends(f) health(e) hotels(o) restaurants_bars(r) \
| sport(s) students_TU(t) relatives(r) company(c)
`

... but this is pretty much related to my previous system
(jPilot/datebk6/PalmOS) which offered only one single category for
each contact. I might re-think these tags in future.


A very handy bonus feature is referencing my contacts. In my .emacs
I do have following:

,[ .emacs (excerpt) ]
| (setq org-link-abbrev-alist
|   '(
| ("contact" . "~/org/contacts.org::/\*.*%s/")
| ))
`

Combined with following yasnippet template it results in very comfty
contact handling:

,[ contact yasnippet ]
| # name : expand link to contact
| # --
| [[contact:$1][${2:$$(unless yas/modified-p
|  (let ((field (nth 0 (yas/snippet-fields (first (yas/snippets-at-point))
|(concat (buffer-substring (yas/field-start field) (yas/field-end 
field)}]] $0
`

Basically, you have to enter the name of the snippet, press «TAB»
and then you type in the name (or anything of the heading line of a
contact). Then it results in [[contact:foo bar][foo bar]] which is a
clickable link to any contact which relates to «foo bar».

Whenever I rename my contacts.org or put it in another folder, I
just have to modify the line in my .emacs and not each link.

I like this system.

HTH

  1. http://julien.danjou.info/org-contacts.html
  2. http://code.google.com/p/yasnippet/
-- 
Karl Voit