schema.py
changeset 7440 539de926ec9d
parent 7383 1719eab69551
child 7473 a164fdf3de5d
equal deleted inserted replaced
7439:8e1c58a212ad 7440:539de926ec9d
   526         rschema = self.add_relation_type(ybo.RelationType('has_text'))
   526         rschema = self.add_relation_type(ybo.RelationType('has_text'))
   527         rschema.final = True
   527         rschema.final = True
   528         rschema = self.add_relation_type(ybo.RelationType('identity'))
   528         rschema = self.add_relation_type(ybo.RelationType('identity'))
   529         rschema.final = False
   529         rschema.final = False
   530 
   530 
   531     etype_name_re = r'[A-Z][A-Za-z0-9]*[a-z]+[0-9]*$'
   531     etype_name_re = r'[A-Z][A-Za-z0-9]*[a-z]+[A-Za-z0-9]*$'
   532     def add_entity_type(self, edef):
   532     def add_entity_type(self, edef):
   533         edef.name = edef.name.encode()
   533         edef.name = edef.name.encode()
   534         edef.name = bw_normalize_etype(edef.name)
   534         edef.name = bw_normalize_etype(edef.name)
   535         if not re.match(self.etype_name_re, edef.name):
   535         if not re.match(self.etype_name_re, edef.name):
   536             raise BadSchemaDefinition(
   536             raise BadSchemaDefinition(
   537                 '%r is not a valid name for an entity type. It should match '
   537                 '%r is not a valid name for an entity type. It should start '
   538                 'the following regular expresion: %r' % (edef.name,
   538                 'with an upper cased letter and be followed by at least a '
   539                                                          self.etype_name_re))
   539                 'lower cased letter' % edef.name)
   540         eschema = super(CubicWebSchema, self).add_entity_type(edef)
   540         eschema = super(CubicWebSchema, self).add_entity_type(edef)
   541         if not eschema.final:
   541         if not eschema.final:
   542             # automatically add the eid relation to non final entity types
   542             # automatically add the eid relation to non final entity types
   543             rdef = ybo.RelationDefinition(eschema.type, 'eid', 'Int',
   543             rdef = ybo.RelationDefinition(eschema.type, 'eid', 'Int',
   544                                           cardinality='11', uid=True,
   544                                           cardinality='11', uid=True,