ZSTasks
=======
- mapped to OGo Jobs
- child of
  - group-folder
  - home-folder
- disallow as child of account/person-folder !

This code is (still) special, because the SxTask objects are used as value
containers.

Job Creation (ZideLook / Outlook):
  cdoAction           [1280]
  cdoIsRecurring      [eg 0]
  cdoItemIsComplete   [eg 0]
  date
  davUid
  isTeamTask
  locationURL
  outlookMessageClass [IPM.Task]
  ownerName           [eg "Helge Hess"]
  sideeffects         [272]
  taskCompletion      [eg 0.00]
  taskStatus          [eg 0]
  threadTopic         [eg tst5]

Sourcefiles
===========

SxTask           controller for an individual task, also used for delivery
                 of task sets (as a wrapper for the EO)

SxTaskFolder     controller for a set of tasks mapped as a folder

SxDavTaskAction  a common superclass for TaskChange and TaskCreate, filters out
                 unnecessary attributes, detects states etc

SxDavTaskChange  used to change a task (moving the task between states etc)

SxDavTaskCreate  used to create a task

SxTaskRenderer   used to render a task in the iCalendar format

SxTaskStatus     a small helper class to abstract the Outlook task status and
                 to calculate skyrix representations


iCalendar
=========

Outlook Sensitivity:
  0: public
  1: confidential
  2: private

Evo 2.2:
---snip---
UID:20050526T000711Z-19409-204-19344-0@move
DTSTAMP:20050526T000711Z
SUMMARY:testtask
PRIORITY:5
CREATED:20050526T000711
LAST-MODIFIED:20050526T000711
STATUS:COMPLETED
DESCRIPTION:test description\nblah\n
DUE;VALUE=DATE:20050529
DTSTART;VALUE=DATE:20050525
CLASS:CONFIDENTIAL
CATEGORIES:Ideas\,Status
PERCENT-COMPLETE:100
COMPLETED:20050525T220000Z
URL:http://www.webpage.de/
SEQUENCE:1
---snap---

Kontact 3.4
---snip--
DTSTAMP:20050526T001732Z
ORGANIZER;CN=Anonymous:MAILTO:nobody@nowhere
ATTENDEE;CN=UU oo;RSVP=FALSE;PARTSTAT=ACCEPTED;ROLE=REQ-PARTICIPANT:mailto:ddd@ooo.com
ATTENDEE;CN=blah blah;RSVP=TRUE;PARTSTAT=DELEGATED;ROLE=NON-PARTICIPANT:mailto:bb@bbb.com
CREATED:20050526T001530Z
UID:KOrganizer-904973760.578
SEQUENCE:13
LAST-MODIFIED:20050526T001635Z
DESCRIPTION:test\nnote\n
SUMMARY:testtodo
LOCATION:testlocation
CLASS:CONFIDENTIAL
PRIORITY:3
CATEGORIES:Education
CATEGORIES:Holiday
CATEGORIES:Meeting
RRULE:FREQ=WEEKLY;COUNT=8;INTERVAL=1;BYDAY=TH
ATTACH:http://www.web.de/
DUE;VALUE=DATE:20050602
DTSTART;VALUE=DATE:20050526
PERCENT-COMPLETE:80
RECURRENCE-ID:20050622T220000Z
BEGIN:VALARM
ATTACH:/usr/share/apps/korganizer/sounds/icemag.wav
ACTION:PROCEDURE
TRIGGER;VALUE=DURATION:-PT1M
END:VALARM
---snap---

Possible mapping:
 Evo 2.2 attrs:
  uid              => sourceUrl
  summary          => name
  priority         => 5=normal, 3=high, 7=low, 0=undefined (Evo 2.2) (kde:0-9)
  created          => ?
  last-modified    => lastModified
  status           => jobStatus? (IN-PROCESS, COMPLETED, ???)
  description      => comment
  due              => endDate
  dtstart          => startDate
  class            => sensitivity?  (CONFIDENTIAL, PUBLIC, PRIVATE)
  categories       => category
  percent-complete => percentComplete
  completed        => completionDate
  url              => ?
  sequence         => check against object_version? (nope=>etag!)

 Missing, Kontact:
  organizer
  attendee
  location
  rrule
  attach (url?!)
  recurrence-id
  valarm (attach, action, trigger)

Dont touch:
  projectId

OGo model (EO Job):
  Job
    jobId
    parentJobId
    projectId
    creatorId		=> TODO: organizer?
    executantId		=> TODO: attendee?
    name		=> title
    startDate		=> dtstart
    endDate		=> due
    notify
    isControlJob
    isTeamJob
    jobStatus		=> status?
    category		=> categories
    kind		???
    priority		=> priority
    keywords		[basically the same like categories]
    sourceUrl		=> uid
    sensitivity		=> class
    comment		=> comment
    completionDate	=> completed
    percentComplete	=> percent-complete
    actualWork		
    totalWork		
    lastModified	=> last-modified
    accountingInfo	
    kilometers		
    associatedCompanies	
    associatedContacts	
    timerDate		
    dbStatus
    objectVersion
