def build_element(link_type, label): # find item which is desired link_text = None if label.find(':') != -1: link_text = label[label.find(':') + 1:] label = label[:label.find(':')] result = Globals.get_url_by_name(label, link_type) item = result[0] item_field = result[1] a = etree.Element('a') a.set('data-href', 'Alink') if item_field: a.text = link_text or item_field.href_name a.set('href', '#{item_field.href_id}'.format(item_field=item_field)) elif item: a.text = link_text or item.href_name a.set('href', '#{item.href_id}'.format(item=item)) else: Logger.instance().warning('Link not found %s %s' % (link_type, label)) return '' a.set('text', a.text) return a
def parse(self, json_data={}): for field in self.__fields__: value = field.parse(json_data) if field.link_to_parent: if getattr(value, '__iter__', None): for v in value: if v: v.set_parent(self) else: if value: value.set_parent(self) if field.index: if value: unique_name = Globals.save(value, self) if value != unique_name: self.unique_name = unique_name self.__setattr__(field.save_as, value) return self
def build_element (self, type, label): if type.lower () == 'attribute': p = etree.Element ('p') p.text = 'attribute value here' return p if type.lower () in ('record', 'abstractrecord', 'selection', 'r', 'a', 's', 'ar'): # find item which is desired (name, type, link) = Globals.get_url_by_name (label) if not link: return None a = etree.Element ('a') a.text = '{name} ({type})'.format (name=name, type=type) a.set ('data-href', 'Alink') a.set ('href', link) a.set ('data-ns', 'IT::') return a print 'unknown type' return None