cubicweb/server/test/data-migractions/schema.py
author Philippe Pepiot <ph@itsalwaysdns.eu>
Tue, 31 Mar 2020 18:12:20 +0200
changeset 12965 a6d19bc7fed3
parent 12841 fceae84a22dd
permissions -rw-r--r--
[server] Enhance connections-pooler-enabled documentation
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
     1
# copyright 2003-2014 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
     2
# contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
     3
#
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
     4
# This file is part of CubicWeb.
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
     5
#
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
     6
# CubicWeb is free software: you can redistribute it and/or modify it under the
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
     7
# terms of the GNU Lesser General Public License as published by the Free
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
     8
# Software Foundation, either version 2.1 of the License, or (at your option)
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
     9
# any later version.
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    10
#
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    11
# CubicWeb is distributed in the hope that it will be useful, but WITHOUT
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    12
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    13
# FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    14
# details.
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    15
#
12841
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
    16
# You should have received a copy of the GNU Lesser General Public License
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
    17
# along with CubicWeb.  If not, see <http://www.gnu.org/licenses/>.
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    18
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    19
from yams.buildobjs import (EntityType, RelationType, RelationDefinition, ComputedRelation,
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    20
                            SubjectRelation, RichString, String, Int, Float,
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    21
                            Boolean, Datetime, TZDatetime, Bytes)
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    22
from yams.constraints import SizeConstraint
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    23
from cubicweb.schema import (WorkflowableEntityType,
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    24
                             RQLConstraint, RQLUniqueConstraint,
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    25
                             RQLVocabularyConstraint,
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    26
                             ERQLExpression, RRQLExpression)
10817
7b154e0fa194 Use cubicweb._
Julien Cristau <julien.cristau@logilab.fr>
parents: 10815
diff changeset
    27
from cubicweb import _
7b154e0fa194 Use cubicweb._
Julien Cristau <julien.cristau@logilab.fr>
parents: 10815
diff changeset
    28
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    29
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    30
class Affaire(WorkflowableEntityType):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    31
    __permissions__ = {
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    32
        'read':   ('managers',
12841
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
    33
                   ERQLExpression('X owned_by U'),
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
    34
                   ERQLExpression('X concerne S?, S owned_by U')),
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    35
        'add':    ('managers', ERQLExpression('X concerne S, S owned_by U')),
12841
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
    36
        'update': ('managers', 'owners',
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
    37
                   ERQLExpression('X in_state S, '
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
    38
                                  'S name in ("pitetre", "en cours")')),
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
    39
        'delete': ('managers', 'owners',
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
    40
                   ERQLExpression('X concerne S, S owned_by U')),
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    41
        }
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    42
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    43
    ref = String(fulltextindexed=True, indexed=True,
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    44
                 constraints=[SizeConstraint(16)])
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    45
    sujet = String(fulltextindexed=True,
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    46
                   constraints=[SizeConstraint(256)])
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    47
    descr = RichString(fulltextindexed=True,
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    48
                       description=_('more detailed description'))
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    49
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    50
    duration = Int()
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    51
    invoiced = Float()
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    52
    opt_attr = Bytes()
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    53
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    54
    depends_on = SubjectRelation('Affaire')
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    55
    require_permission = SubjectRelation('CWPermission')
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    56
    concerne = SubjectRelation(('Societe', 'Note'))
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    57
    todo_by = SubjectRelation('Personne', cardinality='?*')
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    58
    documented_by = SubjectRelation('Card')
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    59
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    60
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    61
class Societe(EntityType):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    62
    __unique_together__ = [('nom', 'type', 'cp')]
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    63
    __permissions__ = {
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    64
        'read': ('managers', 'users', 'guests'),
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    65
        'update': ('managers', 'owners', ERQLExpression('U login L, X nom L')),
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    66
        'delete': ('managers', 'owners', ERQLExpression('U login L, X nom L')),
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    67
        'add': ('managers', 'users',)
12841
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
    68
    }
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    69
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    70
    nom  = String(maxsize=64, fulltextindexed=True)
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    71
    web  = String(maxsize=128)
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    72
    type  = String(maxsize=128) # attribute in common with Note
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    73
    tel  = Int()
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    74
    fax  = Int()
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    75
    rncs = String(maxsize=128)
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    76
    ad1  = String(maxsize=128)
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    77
    ad2  = String(maxsize=128)
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    78
    ad3  = String(maxsize=128)
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    79
    cp   = String(maxsize=12)
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    80
    ville= String(maxsize=32)
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    81
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    82
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    83
class Division(Societe):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    84
    __specializes_schema__ = True
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    85
12841
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
    86
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    87
class SubDivision(Division):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    88
    __specializes_schema__ = True
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    89
12841
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
    90
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    91
class travaille_subdivision(RelationDefinition):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    92
    subject = 'Personne'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    93
    object = 'SubDivision'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    94
12841
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
    95
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    96
from cubicweb.schemas.base import CWUser
10815
bc679f7e96d8 [server/test] use next() builtin instead of next() method
Julien Cristau <julien.cristau@logilab.fr>
parents: 10487
diff changeset
    97
next(CWUser.get_relations('login')).fulltextindexed = True
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    98
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
    99
class Note(WorkflowableEntityType):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   100
    date = String(maxsize=10)
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   101
    type = String(vocabulary=[u'todo', u'a', u'b', u'T', u'lalala'])
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   102
    para = String(maxsize=512,
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   103
                  __permissions__ = {
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   104
                      'add': ('managers', ERQLExpression('X in_state S, S name "todo"')),
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   105
                      'read':   ('managers', 'users', 'guests'),
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   106
                      'update': ('managers', ERQLExpression('X in_state S, S name "todo"')),
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   107
                      })
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   108
    something = String(maxsize=1,
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   109
                      __permissions__ = {
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   110
                          'read': ('managers', 'users', 'guests'),
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   111
                          'add': (ERQLExpression('NOT X para NULL'),),
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   112
                          'update': ('managers', 'owners')
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   113
                      })
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   114
    migrated_from = SubjectRelation('Note')
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   115
    attachment = SubjectRelation('File')
12841
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
   116
    inline1 = SubjectRelation(
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
   117
        'Affaire', inlined=True, cardinality='?*',
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
   118
        constraints=[
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
   119
            RQLUniqueConstraint('S type T, S inline1 A1, A1 todo_by C, '
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
   120
                                'Y type T, Y inline1 A2, A2 todo_by C',
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
   121
                                'S,Y')])
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   122
    todo_by = SubjectRelation('CWUser')
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   123
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   124
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   125
class Frozable(EntityType):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   126
    __permissions__ = {
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   127
        'read':   ('managers', 'users'),
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   128
        'add':    ('managers', 'users'),
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   129
        'update': ('managers', ERQLExpression('X frozen False'),),
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   130
        'delete': ('managers', ERQLExpression('X frozen False'),)
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   131
    }
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   132
    name = String()
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   133
    frozen = Boolean(default=False,
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   134
                     __permissions__ = {
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   135
                         'read':   ('managers', 'users'),
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   136
                         'add':    ('managers', 'users'),
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   137
                         'update': ('managers', 'owners')
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   138
                         })
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   139
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   140
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   141
class Personne(EntityType):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   142
    __unique_together__ = [('nom', 'prenom', 'inline2')]
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   143
    nom    = String(fulltextindexed=True, required=True, maxsize=64)
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   144
    prenom = String(fulltextindexed=True, maxsize=64)
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   145
    sexe   = String(maxsize=1, default='M', fulltextindexed=True)
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   146
    promo  = String(vocabulary=('bon','pasbon'))
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   147
    titre  = String(fulltextindexed=True, maxsize=128)
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   148
    adel   = String(maxsize=128)
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   149
    ass    = String(maxsize=128)
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   150
    web    = String(maxsize=128)
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   151
    tel    = Int()
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   152
    fax    = Int()
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   153
    datenaiss = Datetime()
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   154
    tzdatenaiss = TZDatetime()
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   155
    test   = Boolean(__permissions__={
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   156
        'read': ('managers', 'users', 'guests'),
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   157
        'add': ('managers',),
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   158
        'update': ('managers',),
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   159
        })
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   160
    description = String()
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   161
    firstname = String(fulltextindexed=True, maxsize=64)
11273
c655e19cbc35 [server,bfss] fix storage migration when Bytes attributes is None (closes #13519541)
Alexandre Richardson <alexandre.richardson@logilab.fr>
parents: 11057
diff changeset
   162
    photo = Bytes()
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   163
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   164
    concerne = SubjectRelation('Affaire')
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   165
    connait = SubjectRelation('Personne')
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   166
    inline2 = SubjectRelation('Affaire', inlined=True, cardinality='?*')
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   167
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   168
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   169
class Old(EntityType):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   170
    name = String(__permissions__ = {
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   171
        'read'   : ('managers', 'users', 'guests'),
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   172
        'add'    : ('managers', 'users', 'guests'),
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   173
        'update' : ()
11362
ebe75d73acdd [schema sync] Rename index when an entity type is renamed
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11273
diff changeset
   174
    }, indexed=True, unique=True)
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   175
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   176
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   177
class connait(RelationType):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   178
    symmetric = True
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   179
12841
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
   180
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   181
class concerne(RelationType):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   182
    __permissions__ = {
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   183
        'read':   ('managers', 'users', 'guests'),
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   184
        'add':    ('managers', RRQLExpression('U has_update_permission S')),
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   185
        'delete': ('managers', RRQLExpression('O owned_by U')),
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   186
        }
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   187
12841
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
   188
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   189
class travaille(RelationDefinition):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   190
    __permissions__ = {
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   191
        'read':   ('managers', 'users', 'guests'),
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   192
        'add':    ('managers', RRQLExpression('U has_update_permission S')),
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   193
        'delete': ('managers', RRQLExpression('O owned_by U')),
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   194
        }
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   195
    subject = 'Personne'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   196
    object = 'Societe'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   197
    constraints = [RQLVocabularyConstraint('S owned_by U'),
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   198
                   RQLVocabularyConstraint('S created_by U')]
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   199
12841
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
   200
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   201
class comments(RelationDefinition):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   202
    subject = 'Comment'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   203
    object = 'Personne'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   204
12841
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
   205
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   206
class fiche(RelationDefinition):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   207
    inlined = True
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   208
    subject = 'Personne'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   209
    object = 'Card'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   210
    cardinality = '??'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   211
12841
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
   212
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   213
class multisource_inlined_rel(RelationDefinition):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   214
    inlined = True
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   215
    cardinality = '?*'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   216
    subject = ('Card', 'Note')
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   217
    object = ('Affaire', 'Note')
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   218
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   219
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   220
class see_also_1(RelationDefinition):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   221
    name = 'see_also'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   222
    subject = object = 'Folder'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   223
12841
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
   224
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   225
class see_also_2(RelationDefinition):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   226
    name = 'see_also'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   227
    subject = ('Bookmark', 'Note')
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   228
    object = ('Bookmark', 'Note')
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   229
12841
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
   230
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   231
class evaluee(RelationDefinition):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   232
    subject = ('Personne', 'CWUser', 'Societe')
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   233
    object = ('Note')
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   234
    constraints = [
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   235
        RQLVocabularyConstraint('S created_by U'),
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   236
        RQLVocabularyConstraint('S owned_by U'),
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   237
    ]
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   238
12841
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
   239
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   240
class ecrit_par(RelationType):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   241
    inlined = True
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   242
12841
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
   243
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   244
class ecrit_par_1(RelationDefinition):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   245
    name = 'ecrit_par'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   246
    subject = 'Note'
10918
6b1445cfccdf [server/test] cosmetic whitespace fix
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 10817
diff changeset
   247
    object = 'Personne'
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   248
    cardinality = '?*'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   249
12841
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
   250
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   251
class ecrit_par_2(RelationDefinition):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   252
    name = 'ecrit_par'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   253
    subject = 'Note'
10918
6b1445cfccdf [server/test] cosmetic whitespace fix
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 10817
diff changeset
   254
    object = 'CWUser'
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   255
    cardinality='?*'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   256
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   257
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   258
class copain(RelationDefinition):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   259
    subject = object = 'CWUser'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   260
12841
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
   261
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   262
class tags(RelationDefinition):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   263
    subject = 'Tag'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   264
    object = ('CWUser', 'CWGroup', 'State', 'Note', 'Card', 'Affaire')
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   265
12841
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
   266
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   267
class Folder(EntityType):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   268
    """folders are used to classify entities. They may be defined as a tree.
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   269
    """
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   270
    name = String(required=True, indexed=True, internationalizable=True,
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   271
                  maxsize=64)
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   272
    description = RichString(fulltextindexed=True)
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   273
    filed_under = SubjectRelation('Folder', description=_('parent folder'))
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   274
12841
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
   275
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   276
class filed_under(RelationDefinition):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   277
    subject = ('Note', 'Affaire')
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   278
    object = 'Folder'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   279
12841
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
   280
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   281
class require_permission(RelationDefinition):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   282
    subject = ('Card', 'Note', 'Personne')
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   283
    object = 'CWPermission'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   284
12841
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
   285
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   286
class require_state(RelationDefinition):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   287
    subject = 'CWPermission'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   288
    object = 'State'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   289
12841
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
   290
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   291
class personne_composite(RelationDefinition):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   292
    subject='Personne'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   293
    object='Personne'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   294
    composite='subject'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   295
12841
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
   296
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   297
class personne_inlined(RelationDefinition):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   298
    subject='Personne'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   299
    object='Personne'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   300
    cardinality='?*'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   301
    inlined=True
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   302
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   303
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   304
class login_user(RelationDefinition):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   305
    subject = 'Personne'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   306
    object = 'CWUser'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   307
    cardinality = '??'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   308
12841
fceae84a22dd [py] Make flake8 less angry with cubicweb/server/test/
Nicola Spanti <nicola.spanti@logilab.fr>
parents: 11362
diff changeset
   309
10487
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   310
class ambiguous_inlined(RelationDefinition):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   311
    subject = ('Affaire', 'Note')
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   312
    object = 'CWUser'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   313
    inlined = True
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   314
    cardinality = '?*'
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   315
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   316
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   317
class user_login(ComputedRelation):
49a5c38de1de [server/test] stop using email cube
Julien Cristau <julien.cristau@logilab.fr>
parents:
diff changeset
   318
    rule = 'O login_user S'