def _reindex_endpoints(self, relation): trs = TicketRelationsSpecifics(self.env) ticket_indexer = TicketIndexer(self.env) for resource in map(ResourceIdSerializer.get_resource_by_id, (relation.source, relation.destination)): if resource.realm == 'ticket': ticket = trs._create_ticket_by_full_id(resource) ticket_indexer._index_ticket(ticket)
def get_ticket_relations(self, ticket): grouped_relations = {} relsys = RelationsSystem(self.env) reltypes = relsys.get_relation_types() trs = TicketRelationsSpecifics(self.env) for r in relsys.get_relations(ticket): r['desthref'] = get_resource_url(self.env, r['destination'], self.env.href) r['destticket'] = trs._create_ticket_by_full_id(r['destination']) grouped_relations.setdefault(reltypes[r['type']], []).append(r) return grouped_relations
def notify(self, relation, deleted=False): self.relation = relation source = ResourceIdSerializer.get_resource_by_id(relation.source) if source.realm == 'ticket': self.imitate_ticket_notification = True helper = TicketRelationsSpecifics(self.env) t = helper._create_ticket_by_full_id(source) self.template = Chrome(self.env).load_template( TicketNotifyEmail.template_name, method='text') if deleted: modtime = deleted else: modtime = from_utimestamp(relation.time) TicketNotifyEmail.notify(self, t, newticket=False, modtime=modtime) else: self._generic_notify(relation, deleted)