def relations(self): """ Relations """ if self._relations: return self._relations self._relations = queryForwardRelations(self.context) return self._relations
def no_relations_entered(self): """ """ obj = self.context ctypes = list(queryForwardRelations(obj)) relations = [] forward_backward_auto_relations = self.forward_backward_auto() tab_titles = [i[0] for i in forward_backward_auto_relations] if \ forward_backward_auto_relations else [] for ctype in ctypes: if getattr(ctype, 'no_relation_label', False): if ctype.forward_label not in tab_titles: relations.append(ctype) return relations
def required_for(self, state): """ Lookup possible context relations """ relations = queryForwardRelations(self.context) for relation in relations: field = relation.getField('required_for') if not field: continue value = field.getAccessor(relation)() if not value: continue if state in value: return True return False
def relations(self, state): """ Relations """ relations = queryForwardRelations(self.context) for relation in relations: field = relation.getField('required_for') if not field: continue value = field.getAccessor(relation)() if not value: continue if state not in value: continue to = relation.getField('to') if not to: continue yield to.getAccessor(relation)()
def relations(self, instance): """ Possible relations """ rtool = getToolByName(instance, 'portal_relations') relations = queryForwardRelations(instance) for relation in relations: field = relation.getField('required') if not field: continue value = field.getAccessor(relation)() if not value: continue to = relation.getField('to').getAccessor(relation)() if to not in rtool.objectIds(): continue yield to