All pastes #334989 Raw Edit

Mine

public text v1 · immutable
·published 2007-02-01 01:23 UTC
rendered paste body
class PIMTranslator(eim.Translator):

    URI = "cid:pim-translator@osaf.us"
    version = 1
    description = u"Translator for Chandler PIM items"
    handled_fields = ('displayName', 'triageStatus',
                      'triageStatusChanged', 'createdOn')


    # ItemRecord -------------

    # TODO: lastModifiedBy

    @model.ItemRecord.importer
    def import_item(self, record):

        if COSMO_MODE:
            self.loadItemByUUID(
                record.uuid,
                pim.ContentItem,
                displayName=record.title,
            ) # incomplete
            return
        else:
            kwds = import_fields(record, self.handled_fields)
            self.loadItemByUUID(record.uuid, pim.ContentItem, **kwds)# incomplete

    @import_mapper('createdOn')
    def import_createdOn(val):
        # createdOn is a Decimal we need to change to datetime
        naive = datetime.utcfromtimestamp(float(val))
        inUTC = naive.replace(tzinfo=utc)
        # Convert to user's tz:
        return inUTC.astimezone(ICUtzinfo.default)

    @import_mapper('triageStatus')
    def import_triageStatus(val):
        return getattr(pim.TriageEnum, val)

    @import_mapper('triageStatusChanged')
    def import_triageStatusChanged(val):
        return float(val)
    
    @import_mapper('displayName', False)
    def import_displayName(record):
        return record.title


    @eim.exporter(pim.ContentItem)
    def export_item(self, item):
        utc = ICUtzinfo.getInstance('UTC')
        yield model.ItemRecord(
            item.itsUUID,                               # uuid
            item.displayName,                           # title
            str(item.triageStatus),                     # triageStatus
            Decimal("%.2f" % item.triageStatusChanged), # t_s_changed
            None,                                       # lastModifiedBy
            Decimal(int(time.mktime(item.createdOn.timetuple()))) # createdOn
        )