web/component.py
changeset 10702 f94c812c3669
parent 10688 fa29f3628a1b
child 10713 ec0f96cd7a18
equal deleted inserted replaced
10701:ca3efd72e854 10702:f94c812c3669
   425         args['entity'] = self.entity
   425         args['entity'] = self.entity
   426         return args
   426         return args
   427 
   427 
   428     @property
   428     @property
   429     def domid(self):
   429     def domid(self):
   430         return domid(self.__regid__) + unicode(self.entity.eid)
   430         return domid(self.__regid__) + text_type(self.entity.eid)
   431 
   431 
   432     def lazy_view_holder(self, w, entity, oid, registry='views'):
   432     def lazy_view_holder(self, w, entity, oid, registry='views'):
   433         """add a holder and return a URL that may be used to replace this
   433         """add a holder and return a URL that may be used to replace this
   434         holder by the html generate by the view specified by registry and
   434         holder by the html generate by the view specified by registry and
   435         identifier. Registry defaults to 'views'.
   435         identifier. Registry defaults to 'views'.
   498         jscall = js.cw.utils.callAjaxFuncThenReload(fname,
   498         jscall = js.cw.utils.callAjaxFuncThenReload(fname,
   499                                                     self.rtype,
   499                                                     self.rtype,
   500                                                     args['subject'],
   500                                                     args['subject'],
   501                                                     args['object'])
   501                                                     args['object'])
   502         return u'[<a href="javascript: %s" class="action">%s</a>] %s' % (
   502         return u'[<a href="javascript: %s" class="action">%s</a>] %s' % (
   503             xml_escape(unicode(jscall)), label, etarget.view('incontext'))
   503             xml_escape(text_type(jscall)), label, etarget.view('incontext'))
   504 
   504 
   505     def related_boxitems(self, entity):
   505     def related_boxitems(self, entity):
   506         return [self.box_item(entity, etarget, 'delete_relation', u'-')
   506         return [self.box_item(entity, etarget, 'delete_relation', u'-')
   507                 for etarget in self.related_entities(entity)]
   507                 for etarget in self.related_entities(entity)]
   508 
   508 
   515 
   515 
   516     def unrelated_entities(self, entity):
   516     def unrelated_entities(self, entity):
   517         """returns the list of unrelated entities, using the entity's
   517         """returns the list of unrelated entities, using the entity's
   518         appropriate vocabulary function
   518         appropriate vocabulary function
   519         """
   519         """
   520         skip = set(unicode(e.eid) for e in entity.related(self.rtype, role(self),
   520         skip = set(text_type(e.eid) for e in entity.related(self.rtype, role(self),
   521                                                           entities=True))
   521                                                           entities=True))
   522         skip.add(None)
   522         skip.add(None)
   523         skip.add(INTERNAL_FIELD_VALUE)
   523         skip.add(INTERNAL_FIELD_VALUE)
   524         filteretype = getattr(self, 'etype', None)
   524         filteretype = getattr(self, 'etype', None)
   525         entities = []
   525         entities = []
   633                 # for each related entity, provide a link to remove the relation
   633                 # for each related entity, provide a link to remove the relation
   634                 subview = rentity.view(self.item_vid)
   634                 subview = rentity.view(self.item_vid)
   635                 if maydel:
   635                 if maydel:
   636                     if not js_css_added:
   636                     if not js_css_added:
   637                         js_css_added = self.add_js_css()
   637                         js_css_added = self.add_js_css()
   638                     jscall = unicode(js.ajaxBoxRemoveLinkedEntity(
   638                     jscall = text_type(js.ajaxBoxRemoveLinkedEntity(
   639                         self.__regid__, entity.eid, rentity.eid,
   639                         self.__regid__, entity.eid, rentity.eid,
   640                         self.fname_remove,
   640                         self.fname_remove,
   641                         self.removed_msg and _(self.removed_msg)))
   641                         self.removed_msg and _(self.removed_msg)))
   642                     w(u'<tr><td class="dellink">[<a href="javascript: %s">-</a>]</td>'
   642                     w(u'<tr><td class="dellink">[<a href="javascript: %s">-</a>]</td>'
   643                       '<td class="entity"> %s</td></tr>' % (xml_escape(jscall),
   643                       '<td class="entity"> %s</td></tr>' % (xml_escape(jscall),
   648         else:
   648         else:
   649             w(_('no related entity'))
   649             w(_('no related entity'))
   650         if mayadd:
   650         if mayadd:
   651             multiple = self.rdef.role_cardinality(self.role) in '*+'
   651             multiple = self.rdef.role_cardinality(self.role) in '*+'
   652             w(u'<table><tr><td>')
   652             w(u'<table><tr><td>')
   653             jscall = unicode(js.ajaxBoxShowSelector(
   653             jscall = text_type(js.ajaxBoxShowSelector(
   654                 self.__regid__, entity.eid, self.fname_vocabulary,
   654                 self.__regid__, entity.eid, self.fname_vocabulary,
   655                 self.fname_validate, self.added_msg and _(self.added_msg),
   655                 self.fname_validate, self.added_msg and _(self.added_msg),
   656                 _(stdmsgs.BUTTON_OK[0]), _(stdmsgs.BUTTON_CANCEL[0]),
   656                 _(stdmsgs.BUTTON_OK[0]), _(stdmsgs.BUTTON_CANCEL[0]),
   657                 multiple and self.separator))
   657                 multiple and self.separator))
   658             w('<a class="button sglink" href="javascript: %s">%s</a>' % (
   658             w('<a class="button sglink" href="javascript: %s">%s</a>' % (