equal
deleted
inserted
replaced
310 called. |
310 called. |
311 """ |
311 """ |
312 try: |
312 try: |
313 return super(EntityFieldsForm, cls_or_self).field_by_name(name, role) |
313 return super(EntityFieldsForm, cls_or_self).field_by_name(name, role) |
314 except form.FieldNotFound: |
314 except form.FieldNotFound: |
315 if eschema is None or role is None or not name in eschema.schema: |
315 if eschema is None or role is None or name not in eschema.schema: |
316 raise |
316 raise |
317 rschema = eschema.schema.rschema(name) |
317 rschema = eschema.schema.rschema(name) |
318 # XXX use a sample target type. Document this. |
318 # XXX use a sample target type. Document this. |
319 tschemas = rschema.targets(eschema, role) |
319 tschemas = rschema.targets(eschema, role) |
320 fieldcls = cls_or_self.uicfg_aff.etype_get( |
320 fieldcls = cls_or_self.uicfg_aff.etype_get( |
323 eschema, rschema, role, tschemas[0]) |
323 eschema, rschema, role, tschemas[0]) |
324 if kwargs is None: |
324 if kwargs is None: |
325 kwargs = {} |
325 kwargs = {} |
326 if fieldcls: |
326 if fieldcls: |
327 if not isinstance(fieldcls, type): |
327 if not isinstance(fieldcls, type): |
328 return fieldcls # already and instance |
328 return fieldcls # already and instance |
329 return fieldcls(name=name, role=role, eidparam=True, **kwargs) |
329 return fieldcls(name=name, role=role, eidparam=True, **kwargs) |
330 if isinstance(cls_or_self, type): |
330 if isinstance(cls_or_self, type): |
331 req = None |
331 req = None |
332 else: |
332 else: |
333 req = cls_or_self._cw |
333 req = cls_or_self._cw |