396 return args |
396 return args |
397 |
397 |
398 @property |
398 @property |
399 def domid(self): |
399 def domid(self): |
400 return domid(self.__regid__) + unicode(self.entity.eid) |
400 return domid(self.__regid__) + unicode(self.entity.eid) |
|
401 |
|
402 def lazy_view_holder(self, w, entity, oid, registry='views'): |
|
403 """add a holder and return an url that may be used to replace this |
|
404 holder by the html generate by the view specified by registry and |
|
405 identifier. Registry defaults to 'views'. |
|
406 """ |
|
407 holderid = '%sHolder' % self.domid |
|
408 w(u'<div id="%s"></div>' % holderid) |
|
409 params = self.cw_extra_kwargs.copy() |
|
410 params.pop('view', None) |
|
411 params.pop('entity', None) |
|
412 form = params.pop('formparams', {}) |
|
413 form['pageid'] = self._cw.pageid |
|
414 if entity.has_eid(): |
|
415 eid = entity.eid |
|
416 else: |
|
417 eid = None |
|
418 form['etype'] = entity.__regid__ |
|
419 form['tempEid'] = entity.eid |
|
420 args = [json_dumps(x) for x in (registry, oid, eid, params)] |
|
421 return self._cw.ajax_replace_url( |
|
422 holderid, fname='render', arg=args, **form) |
401 |
423 |
402 |
424 |
403 # high level abstract classes ################################################## |
425 # high level abstract classes ################################################## |
404 |
426 |
405 class RQLCtxComponent(CtxComponent): |
427 class RQLCtxComponent(CtxComponent): |