示例#1
0
class CollectionMembershipRecord(eim.Record):
    # A membership record for a collection that is not "out of the box"
    # i.e. created by the user
    URI = "http://osafoundation.org/eim/pim/collectionmembership/0"

    collectionID = eim.key(text256)  # "well-known" name or UUID string
    itemUUID = eim.key(aliasableUUID)
    index = eim.key(eim.IntType)
示例#2
0
class CollectionRecord(eim.Record):
    URI = "http://osafoundation.org/eim/pim/collection/0"

    uuid = eim.key(ItemRecord.uuid)
    mine = eim.field(eim.IntType)

    # We represent color as 4 values instead of 1 integer since eim.IntType is signed
    # and so far it doesn't seem worth adding a new type for color
    colorRed = eim.key(eim.IntType)
    colorGreen = eim.key(eim.IntType)
    colorBlue = eim.key(eim.IntType)
    colorAlpha = eim.key(eim.IntType)
    checked = eim.field(eim.IntType, default=0)
示例#3
0
class ModifiedByRecord(eim.Record):
    URI = "http://osafoundation.org/eim/modifiedBy/0"

    uuid = eim.key(ItemRecord.uuid)

    # ContentItem.lastModifiedBy
    userid = eim.key(text256, _(u"User ID"))

    # ContentItem.lastModified (time)
    timestamp = eim.key(eim.DecimalType(digits=12, decimal_places=2),
                        _(u"Last modified"))

    # ContentItem.lastModification (action)
    action = eim.key(eim.IntType, _(u"Action"))
示例#4
0
class EventRecord(eim.Record):
    URI = "http://osafoundation.org/eim/event/0"

    uuid = eim.key(NoteRecord.uuid)

    # EventStamp.[allDay, anyTime, duration, startTime]
    dtstart = eim.field(text20, _(u"Start time"))
    duration = eim.field(text20, _(u"Duration"))

    # EventStamp.location
    location = eim.field(text256, _(u"Location"))

    # EventStamp.[recurrenceID, rruleset, etc.]
    rrule = eim.field(rrule_field)
    exrule = eim.field(rrule_field, filters=[occurrenceDeletion])
    rdate = eim.field(rdate_field)
    exdate = eim.field(rdate_field, filters=[occurrenceDeletion])

    # EventStamp.transparency
    status = eim.field(text256,
                       _(u"Event status"),
                       filters=[eventStatusFilter])

    # timestamp of the most recent occurrence, for calculating triage status
    lastPastOccurrence = eim.field(text20, default=u"", filters=[triageFilter])
示例#5
0
class PasswordRecord(eim.Record):
    URI = "http://osafoundation.org/eim/password/0"

    uuid = eim.key(ItemRecord.uuid)
    ciphertext = eim.field(bytes1024)
    iv = eim.field(bytes32)
    salt = eim.field(bytes32)
示例#6
0
class ItemRecord(eim.Record):
    URI = "http://osafoundation.org/eim/item/0"

    uuid = eim.key(aliasableUUID)

    # ContentItem.displayName
    title = eim.field(text1024, _(u"Title"))

    # ContentItem.[triageStatus, triageStatusChanged, doAutoTriageOnDateChange]
    triage = eim.field(text256, _(u"Triage status"), filters=[triageFilter])

    # ContentItem.createdOn
    createdOn = eim.field(eim.DecimalType(digits=20, decimal_places=0),
                          _(u"Created on"),
                          filters=[createdOnFilter])

    # ContentItem.modifiedFlags
    hasBeenSent = eim.field(eim.IntType,
                            _(u"Has been sent"),
                            filters=[hasBeenSentFilter])

    # ContentItem.needsReply
    needsReply = eim.field(eim.IntType,
                           _(u"Needs reply"),
                           filters=[needsReplyFilter],
                           default=0)

    # ContentItem.read
    read = eim.field(eim.IntType,
                     _(u"Has been read"),
                     filters=[readFilter],
                     default=0)
示例#7
0
class ShareCosmoAccountRecord(eim.Record):
    URI = "http://osafoundation.org/eim/sharing/cosmoaccount/0"

    uuid = eim.key(ItemRecord.uuid)
    pimpath = eim.field(text1024)  # pim/collection
    morsecodepath = eim.field(text1024)  # mc/collection
    davpath = eim.field(text1024)  # dav/collection
示例#8
0
class SharePeerStateRecord(eim.Record):
    URI = "http://osafoundation.org/eim/sharing/peerstate/0"

    uuid = eim.key(ItemRecord.uuid)
    peer = eim.field(schema.UUID)
    item = eim.field(schema.UUID)
    peerrepo = eim.field(text1024)
    peerversion = eim.field(eim.IntType)
示例#9
0
class ShareRecordSetConduitRecord(eim.Record):
    URI = "http://osafoundation.org/eim/sharing/rsconduit/0"

    uuid = eim.key(ItemRecord.uuid)
    translator = eim.field(text1024)
    serializer = eim.field(text1024)
    filters = eim.field(text1024)
    syncToken = eim.field(text256)
示例#10
0
class ShareAccountRecord(eim.Record):
    URI = "http://osafoundation.org/eim/sharing/account/0"

    uuid = eim.key(ItemRecord.uuid)
    host = eim.field(text256)
    port = eim.field(eim.IntType)
    ssl = eim.field(eim.IntType)
    path = eim.field(text1024)
    username = eim.field(text256)
    password = eim.field(schema.UUID)
示例#11
0
class IMAPFolderRecord(eim.Record):
    URI = "http://osafoundation.org/eim/sharing/imapfolder/0"

    uuid = eim.key(ItemRecord.uuid)
    name = eim.field(text256)
    type = eim.field(eim.TextType(size=50))
    lastUID = eim.field(eim.IntType)
    delete = eim.field(eim.IntType)
    downloaded = eim.field(eim.IntType)
    downloadMax = eim.field(eim.IntType)
示例#12
0
class IMAPAccountRecord(eim.Record):
    URI = "http://osafoundation.org/eim/sharing/imapaccount/0"

    uuid = eim.key(ItemRecord.uuid)
    password = eim.field(schema.UUID)
    replyToAddress = eim.field(text256)
    port = eim.field(eim.IntType)

    # 1 = isDefault
    isDefault = eim.field(eim.IntType)
示例#13
0
class SMTPAccountRecord(eim.Record):
    URI = "http://osafoundation.org/eim/sharing/smtpccount/0"

    uuid = eim.key(ItemRecord.uuid)
    password = eim.field(schema.UUID)
    fromAddress = eim.field(text256)
    useAuth = eim.field(eim.IntType)
    port = eim.field(eim.IntType)

    # 1 = isDefault
    isDefault = eim.field(eim.IntType)
示例#14
0
class ShareStateRecord(eim.Record):
    URI = "http://osafoundation.org/eim/sharing/sharestate/0"

    uuid = eim.key(ItemRecord.uuid)
    share = eim.field(schema.UUID)
    alias = eim.field(text1024)
    conflict_item = eim.field(schema.UUID)
    conflict_share = eim.field(schema.UUID)
    agreed = eim.field(eim.BlobType)  # obsolete
    pending = eim.field(eim.BlobType)  # obsolete
    stateRecords = eim.field(eim.BlobType, default='')
    pendingRemoval = eim.field(eim.IntType, default=0)
示例#15
0
class ShareRecord(eim.Record):
    URI = "http://osafoundation.org/eim/sharing/share/0"

    uuid = eim.key(ItemRecord.uuid)
    contents = eim.field(schema.UUID)
    conduit = eim.field(schema.UUID)
    subscribed = eim.field(eim.IntType)
    error = eim.field(eim.ClobType)
    errorDetails = eim.field(eim.ClobType)
    mode = eim.field(text20)
    lastSuccess = eim.field(eim.DecimalType(digits=20, decimal_places=0))
    lastAttempt = eim.field(eim.DecimalType(digits=20, decimal_places=0))
示例#16
0
class MailMessageRecord(eim.Record):
    URI = "http://osafoundation.org/eim/mail/0"

    uuid = eim.key(NoteRecord.uuid)
    messageId = eim.field(text256, _(u"Message ID"), filters=[messageIdFilter])
    headers = eim.field(eim.ClobType,
                        _(u"Message headers"),
                        filters=[headersFilter])
    # Will contain the RFC 822 from address
    fromAddress = eim.field(text256, _(u"From"))
    toAddress = eim.field(text1024, _(u"To"))
    ccAddress = eim.field(text1024, _(u"CC"))
    bccAddress = eim.field(text1024, _(u"BCC"), filters=[bccFilter])

    # Can contain text or email addresses ie. from The Management Team
    originators = eim.field(text1024, _(u"Originators"))

    # date sent is populated by MailStamp.dateSentString
    dateSent = eim.field(text256, _(u"Date sent"), filters=[dateSentFilter])

    inReplyTo = eim.field(text256,
                          _(u"In-Reply-to"),
                          filters=[inReplyToFilter])

    #The list of message-id's a mail message references
    # can be quite long and can easily exceed 1024 characters
    references = eim.field(eim.ClobType,
                           _(u"References"),
                           filters=[referencesFilter])

    # Values required for Dump and Reload
    mimeContent = eim.field(eim.ClobType,
                            _(u"MIME content"),
                            filters=[mimeContentFilter])
    rfc2822Message = eim.field(eim.ClobType,
                               _(u"RFC2822 message"),
                               filters=[rfc2822MessageFilter])
    previousSender = eim.field(text256,
                               _(u"Previous sender"),
                               filters=[previousSenderFilter])
    replyToAddress = eim.field(text256,
                               _(u"Reply-to address"),
                               filters=[replyToAddressFilter])

    # Contains bit wise flags indicating state.
    # A state integer was chosen over individual
    # boolean fields as a means of decoupling
    # Chandler mail specific flag requirements from
    # EIM.

    messageState = eim.field(eim.IntType,
                             _(u"Message state"),
                             filters=[messageStateFilter])
示例#17
0
class ShareProxyRecord(eim.Record):
    URI = "http://osafoundation.org/eim/sharing/proxy/0"

    uuid = eim.key(ItemRecord.uuid)
    host = eim.field(text256)
    port = eim.field(eim.IntType)
    protocol = eim.field(text256)
    useAuth = eim.field(eim.IntType)
    username = eim.field(text256)
    password = eim.field(schema.UUID)
    active = eim.field(eim.IntType)
    bypass = eim.field(text256, default=u'')
示例#18
0
class ShareHTTPConduitRecord(eim.Record):
    URI = "http://osafoundation.org/eim/sharing/httpconduit/0"

    uuid = eim.key(ItemRecord.uuid)
    ticket = eim.field(text1024)
    ticket_rw = eim.field(text1024)
    ticket_ro = eim.field(text1024)

    account = eim.field(schema.UUID)  # if provided, the following are ignored
    host = eim.field(text256)
    port = eim.field(eim.IntType)
    ssl = eim.field(eim.IntType)
    username = eim.field(text256)
    password = eim.field(schema.UUID)
示例#19
0
class MailAccountRecord(eim.Record):
    URI = "http://osafoundation.org/eim/sharing/mailaccount/0"

    uuid = eim.key(ItemRecord.uuid)
    retries = eim.field(eim.IntType)
    username = eim.field(text256)
    host = eim.field(text256)

    # 0 = None, 1 = TLS, 2 = SSL
    connectionType = eim.field(eim.IntType)
    frequency = eim.field(eim.IntType)
    timeout = eim.field(eim.IntType)

    # 0 = Inactive 1 = Active
    active = eim.field(eim.IntType)
示例#20
0
class POPAccountRecord(eim.Record):
    URI = "http://osafoundation.org/eim/sharing/popaccount/0"

    uuid = eim.key(ItemRecord.uuid)
    password = eim.field(schema.UUID)
    replyToAddress = eim.field(text256)
    type = eim.field(eim.TextType(size=50))
    delete = eim.field(eim.IntType)
    downloaded = eim.field(eim.IntType)
    downloadMax = eim.field(eim.IntType)
    seenUIDS = eim.field(eim.ClobType)
    port = eim.field(eim.IntType)

    # 1 = isDefault
    isDefault = eim.field(eim.IntType)
示例#21
0
class DisplayAlarmRecord(eim.Record):
    URI = "http://osafoundation.org/eim/displayAlarm/0"

    uuid = eim.key(EventRecord.uuid)
    description = eim.field(text1024,
                            _(u"Alarm description"),
                            filters=[remindersFilter])
    trigger = eim.field(text1024,
                        _(u"Alarm trigger"),
                        filters=[remindersFilter])
    duration = eim.field(text1024,
                         _(u"Alarm duration"),
                         filters=[remindersFilter])
    repeat = eim.field(eim.IntType,
                       _(u"Alarm repeat"),
                       filters=[remindersFilter])
示例#22
0
class NoteRecord(eim.Record):
    URI = "http://osafoundation.org/eim/note/0"

    uuid = eim.key(ItemRecord.uuid)

    # ContentItem.body
    body = eim.field(eim.ClobType, _(u"Body"))

    # Note.icalUid
    icalUid = eim.field(text256, _(u"Icalendar UID"), filters=[icalUidFilter])

    # Note.icalendarProperties - legacy, never used
    icalProperties = eim.field(text1024, filters=[nonStandardICalendarFilter])

    # Note.icalendarParameters - legacy, never used
    icalParameters = eim.field(text1024, filters=[nonStandardICalendarFilter])

    # Note.icalendarExtra
    icalExtra = eim.field(eim.TextType(size=4096),
                          default=u"",
                          filters=[nonStandardICalendarFilter])
示例#23
0
class ShareHubAccountRecord(eim.Record):
    URI = "http://osafoundation.org/eim/sharing/hubaccount/0"

    uuid = eim.key(ItemRecord.uuid)
示例#24
0
class ShareWebDAVAccountRecord(eim.Record):
    URI = "http://osafoundation.org/eim/sharing/webdavaccount/0"

    uuid = eim.key(ItemRecord.uuid)
示例#25
0
class ShareConduitRecord(eim.Record):
    URI = "http://osafoundation.org/eim/sharing/conduit/0"

    uuid = eim.key(ItemRecord.uuid)
    path = eim.field(text1024)
    name = eim.field(text1024)
示例#26
0
class ShareSharedInRecord(eim.Record):
    URI = "http://osafoundation.org/eim/sharing/sharedin/0"

    item = eim.key(schema.UUID)
    share = eim.key(schema.UUID)
示例#27
0
class ShareResourceStateRecord(eim.Record):
    URI = "http://osafoundation.org/eim/sharing/resourcesharestate/0"

    uuid = eim.key(ItemRecord.uuid)
    path = eim.field(text1024)
    etag = eim.field(text1024)
示例#28
0
class ShareMonolithicRecordSetConduitRecord(eim.Record):
    URI = "http://osafoundation.org/eim/sharing/monorsconduit/0"

    uuid = eim.key(ItemRecord.uuid)
    etag = eim.field(text1024)
示例#29
0
class ShareCosmoConduitRecord(eim.Record):
    URI = "http://osafoundation.org/eim/sharing/cosmoconduit/0"

    uuid = eim.key(ItemRecord.uuid)
    morsecodepath = eim.field(text1024)  # only if account is None
示例#30
0
class ShareWebDAVMonolithicRecordSetConduitRecord(eim.Record):
    URI = "http://osafoundation.org/eim/sharing/webdavmonorsconduit/0"

    uuid = eim.key(ItemRecord.uuid)