cubicweb/test/data_schemareader/schema.py
author Denis Laxalde <denis.laxalde@logilab.fr>
Wed, 22 Aug 2018 16:02:30 +0200
branch3.26
changeset 12347 cb05926a99d0
parent 11911 37726f66ff82
permissions -rw-r--r--
[autoform] Use fieldclass from kwargs in guess_field for non-final relations This follows up on af969080e7e6 in which a "fieldclass" kwarg has been added in EntityFieldsForm.field_by_name() before calling guess_field(). In this changeset, this value was only used for final relation but the way non-final relation actually also changed since we also use guess_field from these relation (previously, the field class specified through uicfg was instantiated directly in EntityFieldsForm.field_by_name()). So in the non-final case in guess_field() we simply try to retrieve "fieldclass" from kwargs and fall back to RelationField.

from yams.buildobjs import EntityType, SubjectRelation
from cubicweb.schemas.base import in_group, RELATION_MANAGERS_PERMISSIONS

# copy __permissions__ to avoid modifying a shared dictionary
in_group.__permissions__ = in_group.__permissions__.copy()
in_group.__permissions__['read'] = ('managers',)


class CWSourceSchemaConfig(EntityType):
    cw_for_source = SubjectRelation(
        'CWSource', inlined=True, cardinality='1*', composite='object',
        __permissions__=RELATION_MANAGERS_PERMISSIONS)


cw_for_source = CWSourceSchemaConfig.get_relation('cw_for_source')
cw_for_source.__permissions__ = {'read': ('managers', 'users'),
                                 'add': ('managers',),
                                 'delete': ('managers',)}