Changeset View
Changeset View
Standalone View
Standalone View
pykolab/xml/attendee.py
Show All 19 Lines | participant_status_labels = { | ||||
kolabformat.PartDeclined: N_("Declined"), | kolabformat.PartDeclined: N_("Declined"), | ||||
kolabformat.PartTentative: N_("Tentatively Accepted"), | kolabformat.PartTentative: N_("Tentatively Accepted"), | ||||
kolabformat.PartDelegated: N_("Delegated"), | kolabformat.PartDelegated: N_("Delegated"), | ||||
kolabformat.PartInProcess: N_("Started"), | kolabformat.PartInProcess: N_("Started"), | ||||
kolabformat.PartCompleted: N_("Completed"), | kolabformat.PartCompleted: N_("Completed"), | ||||
} | } | ||||
def participant_status_label(status): | def participant_status_label(status): | ||||
return _(participant_status_labels[status]) if participant_status_labels.has_key(status) else _(status) | return _(participant_status_labels[status]) if status in participant_status_labels else _(status) | ||||
class Attendee(kolabformat.Attendee): | class Attendee(kolabformat.Attendee): | ||||
cutype_map = { | cutype_map = { | ||||
"INDIVIDUAL": kolabformat.CutypeIndividual, | "INDIVIDUAL": kolabformat.CutypeIndividual, | ||||
"RESOURCE": kolabformat.CutypeResource, | "RESOURCE": kolabformat.CutypeResource, | ||||
"GROUP": kolabformat.CutypeGroup, | "GROUP": kolabformat.CutypeGroup, | ||||
"ROOM": kolabformat.CutypeRoom, | "ROOM": kolabformat.CutypeRoom, | ||||
▲ Show 20 Lines • Show All 50 Lines • ▼ Show 20 Lines | def __init__( | ||||
if not name == None: | if not name == None: | ||||
self.contactreference.set_name(name) | self.contactreference.set_name(name) | ||||
kolabformat.Attendee.__init__(self, self.contactreference) | kolabformat.Attendee.__init__(self, self.contactreference) | ||||
if isinstance(rsvp, bool): | if isinstance(rsvp, bool): | ||||
self.setRSVP(rsvp) | self.setRSVP(rsvp) | ||||
else: | else: | ||||
if self.rsvp_map.has_key(rsvp): | if rsvp in self.rsvp_map: | ||||
self.setRSVP(self.rsvp_map[rsvp]) | self.setRSVP(self.rsvp_map[rsvp]) | ||||
if not role == None: | if not role == None: | ||||
self.set_role(role) | self.set_role(role) | ||||
if not cutype == None: | if not cutype == None: | ||||
self.set_cutype(cutype) | self.set_cutype(cutype) | ||||
if ical_params and ical_params.has_key('DELEGATED-FROM'): | if ical_params and 'DELEGATED-FROM' in ical_params: | ||||
self.delegate_from(Attendee(str(ical_params['DELEGATED-FROM']), role=self.get_role(), cutype=self.get_cutype())) | self.delegate_from(Attendee(str(ical_params['DELEGATED-FROM']), role=self.get_role(), cutype=self.get_cutype())) | ||||
if ical_params and ical_params.has_key('DELEGATED-TO'): | if ical_params and 'DELEGATED-TO' in ical_params: | ||||
self.delegate_to(Attendee(str(ical_params['DELEGATED-TO']))) | self.delegate_to(Attendee(str(ical_params['DELEGATED-TO']))) | ||||
if not participant_status == None: | if not participant_status == None: | ||||
self.set_participant_status(participant_status) | self.set_participant_status(participant_status) | ||||
def copy_from(self, obj): | def copy_from(self, obj): | ||||
if isinstance(obj, kolabformat.Attendee): | if isinstance(obj, kolabformat.Attendee): | ||||
self.contactreference = ContactReference(obj.contact()) | self.contactreference = ContactReference(obj.contact()) | ||||
Show All 11 Lines | class Attendee(kolabformat.Attendee): | ||||
def delegate_from(self, delegators): | def delegate_from(self, delegators): | ||||
crefs = [] | crefs = [] | ||||
if not isinstance(delegators, list): | if not isinstance(delegators, list): | ||||
delegators = [delegators] | delegators = [delegators] | ||||
for delegator in delegators: | for delegator in delegators: | ||||
if not isinstance(delegator, Attendee): | if not isinstance(delegator, Attendee): | ||||
raise ValueError, _("Not a valid attendee") | raise ValueError(_("Not a valid attendee")) | ||||
else: | else: | ||||
self.set_role(delegator.get_role()) | self.set_role(delegator.get_role()) | ||||
self.set_cutype(delegator.get_cutype()) | self.set_cutype(delegator.get_cutype()) | ||||
crefs.append(delegator.contactreference) | crefs.append(delegator.contactreference) | ||||
if len(crefs) == 0: | if len(crefs) == 0: | ||||
raise ValueError, _("No valid delegator references found") | raise ValueError(_("No valid delegator references found")) | ||||
else: | else: | ||||
crefs += self.get_delegated_from() | crefs += self.get_delegated_from() | ||||
self.setDelegatedFrom(list(set(crefs))) | self.setDelegatedFrom(list(set(crefs))) | ||||
def delegate_to(self, delegatees): | def delegate_to(self, delegatees): | ||||
self.set_participant_status("DELEGATED") | self.set_participant_status("DELEGATED") | ||||
crefs = [] | crefs = [] | ||||
if not isinstance(delegatees, list): | if not isinstance(delegatees, list): | ||||
delegatees = [delegatees] | delegatees = [delegatees] | ||||
for delegatee in delegatees: | for delegatee in delegatees: | ||||
if not isinstance(delegatee, Attendee): | if not isinstance(delegatee, Attendee): | ||||
raise ValueError, _("Not a valid attendee") | raise ValueError(_("Not a valid attendee")) | ||||
else: | else: | ||||
crefs.append(delegatee.contactreference) | crefs.append(delegatee.contactreference) | ||||
if len(crefs) == 0: | if len(crefs) == 0: | ||||
raise ValueError, _("No valid delegatee references found") | raise ValueError(_("No valid delegatee references found")) | ||||
else: | else: | ||||
crefs += self.get_delegated_to() | crefs += self.get_delegated_to() | ||||
self.setDelegatedTo(list(set(crefs))) | self.setDelegatedTo(list(set(crefs))) | ||||
def get_cutype(self, translated=False): | def get_cutype(self, translated=False): | ||||
cutype = self.cutype() | cutype = self.cutype() | ||||
if translated: | if translated: | ||||
Show All 34 Lines | def get_role(self, translated=False): | ||||
if translated: | if translated: | ||||
return self._translate_value(role, self.role_map) | return self._translate_value(role, self.role_map) | ||||
return role | return role | ||||
def get_rsvp(self): | def get_rsvp(self): | ||||
return self.rsvp() | return self.rsvp() | ||||
def _translate_value(self, val, map): | def _translate_value(self, val, map): | ||||
name_map = dict([(v, k) for (k, v) in map.iteritems()]) | name_map = dict([(v, k) for (k, v) in map.items()]) | ||||
return name_map[val] if name_map.has_key(val) else 'UNKNOWN' | return name_map[val] if val in name_map else 'UNKNOWN' | ||||
def set_cutype(self, cutype): | def set_cutype(self, cutype): | ||||
if cutype in self.cutype_map.keys(): | if cutype in self.cutype_map: | ||||
self.setCutype(self.cutype_map[cutype]) | self.setCutype(self.cutype_map[cutype]) | ||||
elif cutype in self.cutype_map.values(): | elif cutype in self.cutype_map.values(): | ||||
self.setCutype(cutype) | self.setCutype(cutype) | ||||
else: | else: | ||||
raise InvalidAttendeeCutypeError, _("Invalid cutype %r") % (cutype) | raise InvalidAttendeeCutypeError(_("Invalid cutype %r") % (cutype)) | ||||
def set_name(self, name): | def set_name(self, name): | ||||
self.contactreference.set_name(name) | self.contactreference.set_name(name) | ||||
self.setContact(self.contactreference) | self.setContact(self.contactreference) | ||||
def set_participant_status(self, participant_status): | def set_participant_status(self, participant_status): | ||||
if participant_status in self.participant_status_map.keys(): | if participant_status in self.participant_status_map: | ||||
self.setPartStat(self.participant_status_map[participant_status]) | self.setPartStat(self.participant_status_map[participant_status]) | ||||
elif participant_status in self.participant_status_map.values(): | elif participant_status in self.participant_status_map.values(): | ||||
self.setPartStat(participant_status) | self.setPartStat(participant_status) | ||||
else: | else: | ||||
raise InvalidAttendeeParticipantStatusError, _("Invalid participant status %r") % (participant_status) | raise InvalidAttendeeParticipantStatusError(_("Invalid participant status %r") % (participant_status)) | ||||
def set_role(self, role): | def set_role(self, role): | ||||
if role in self.role_map.keys(): | if role in self.role_map: | ||||
self.setRole(self.role_map[role]) | self.setRole(self.role_map[role]) | ||||
elif role in self.role_map.values(): | elif role in self.role_map.values(): | ||||
self.setRole(role) | self.setRole(role) | ||||
else: | else: | ||||
raise InvalidAttendeeRoleError, _("Invalid role %r") % (role) | raise InvalidAttendeeRoleError(_("Invalid role %r") % (role)) | ||||
def set_rsvp(self, rsvp): | def set_rsvp(self, rsvp): | ||||
self.setRSVP(rsvp) | self.setRSVP(rsvp) | ||||
def to_dict(self): | def to_dict(self): | ||||
data = self.contactreference.to_dict() | data = self.contactreference.to_dict() | ||||
data.pop('type', None) | data.pop('type', None) | ||||
for p, getter in self.properties_map.iteritems(): | for p, getter in self.properties_map.items(): | ||||
val = None | val = None | ||||
args = {} | args = {} | ||||
if hasattr(self, getter): | if hasattr(self, getter): | ||||
if getter.startswith('get_'): | if getter.startswith('get_'): | ||||
args = dict(translated=True) | args = dict(translated=True) | ||||
val = getattr(self, getter)(**args) | val = getattr(self, getter)(**args) | ||||
if val is not None: | if val is not None: | ||||
data[p] = val | data[p] = val | ||||
Show All 21 Lines |