# HG changeset patch # User Sylvain Thénault # Date 1265367417 -3600 # Node ID 0e73d299730a18240efd5f294d1acacf51ee074e # Parent 8b0ca7904820bc066cea279d1bee104c033ce624 fix long-waiting symetric typo: should be spelled symmetric. Add auto database migration on schema deserialization diff -r 8b0ca7904820 -r 0e73d299730a devtools/devctl.py --- a/devtools/devctl.py Fri Feb 05 11:54:23 2010 +0100 +++ b/devtools/devctl.py Fri Feb 05 11:56:57 2010 +0100 @@ -185,7 +185,7 @@ # XXX also generate "creating ...' messages for actions in the # addrelated submenu w('# subject and object forms for each relation type\n') - w('# (no object form for final or symetric relation types)\n') + w('# (no object form for final or symmetric relation types)\n') w('\n') for rschema in sorted(schema.relations()): rtype = rschema.type @@ -205,7 +205,7 @@ for subjschema in rschema.subjects(): if not subjschema in libsubjects: add_msg(w, rtype, subjschema.type) - if not (schema.rschema(rtype).final or rschema.symetric): + if not (schema.rschema(rtype).final or rschema.symmetric): if rschema not in no_context_rtypes: libobjects = librschema and librschema.objects() or () for objschema in rschema.objects(): diff -r 8b0ca7904820 -r 0e73d299730a devtools/fill.py --- a/devtools/fill.py Fri Feb 05 11:54:23 2010 +0100 +++ b/devtools/fill.py Fri Feb 05 11:56:57 2010 +0100 @@ -394,7 +394,7 @@ # for each couple (subjschema, objschema), insert relations for subj, obj in rschema.rdefs: sym.add( (subj, obj) ) - if rschema.symetric and (obj, subj) in sym: + if rschema.symmetric and (obj, subj) in sym: continue subjcard, objcard = rschema.rdef(subj, obj).cardinality # process mandatory relations first diff -r 8b0ca7904820 -r 0e73d299730a devtools/test/data/schema.py --- a/devtools/test/data/schema.py Fri Feb 05 11:54:23 2010 +0100 +++ b/devtools/test/data/schema.py Fri Feb 05 11:56:57 2010 +0100 @@ -16,5 +16,5 @@ severity = String(vocabulary=('important', 'normal', 'minor'), default='normal') cost = Int() description = String(maxsize=4096, fulltextindexed=True) - identical_to = SubjectRelation('Bug', symetric=True) + identical_to = SubjectRelation('Bug', symmetric=True) diff -r 8b0ca7904820 -r 0e73d299730a doc/book/fr/04-02-schema-definition.fr.txt --- a/doc/book/fr/04-02-schema-definition.fr.txt Fri Feb 05 11:54:23 2010 +0100 +++ b/doc/book/fr/04-02-schema-definition.fr.txt Fri Feb 05 11:56:57 2010 +0100 @@ -177,7 +177,7 @@ à la relation. Cela se limite donc aux relations dont la cardinalité sujet->relation->objet vaut 0..1 ('?') ou 1..1 ('1') -* `symetric` : booléen indiquant que la relation est symétrique. i.e. +* `symmetric` : booléen indiquant que la relation est symétrique. i.e. `X relation Y` implique `Y relation X` Dans le cas de définitions de relations simultanée, `sujet` et `object` peuvent diff -r 8b0ca7904820 -r 0e73d299730a entities/schemaobjs.py --- a/entities/schemaobjs.py Fri Feb 05 11:54:23 2010 +0100 +++ b/entities/schemaobjs.py Fri Feb 05 11:56:57 2010 +0100 @@ -46,8 +46,8 @@ def dc_long_title(self): stereotypes = [] _ = self._cw._ - if self.symetric: - stereotypes.append(_('symetric')) + if self.symmetric: + stereotypes.append(_('symmetric')) if self.inlined: stereotypes.append(_('inlined')) if self.final: diff -r 8b0ca7904820 -r 0e73d299730a goa/doc/devmanual_fr/sect_definition_schema.txt --- a/goa/doc/devmanual_fr/sect_definition_schema.txt Fri Feb 05 11:54:23 2010 +0100 +++ b/goa/doc/devmanual_fr/sect_definition_schema.txt Fri Feb 05 11:56:57 2010 +0100 @@ -168,7 +168,7 @@ à la relation. Cela se limite donc aux relations dont la cardinalité sujet->relation->objet vaut 0..1 ('?') ou 1..1 ('1') -* `symetric` : booléen indiquant que la relation est symétrique, i.e. "X relation +* `symmetric` : booléen indiquant que la relation est symétrique, i.e. "X relation Y" implique "Y relation X" Dans le cas de définitions de relations simultanée, `sujet` et `object` peuvent diff -r 8b0ca7904820 -r 0e73d299730a goa/test/unittest_schema.py --- a/goa/test/unittest_schema.py Fri Feb 05 11:54:23 2010 +0100 +++ b/goa/test/unittest_schema.py Fri Feb 05 11:56:57 2010 +0100 @@ -44,7 +44,7 @@ 'inlined', 'inlined_relation', 'is', 'is_instance_of', 'label', 'last_login_time', 'login', 'mainvars', 'meta', 'modification_date', 'name', 'owned_by', 'pkey', 'primary_email', - 'read_permission', 'require_group', 'state_of', 'surname', 'symetric', + 'read_permission', 'require_group', 'state_of', 'surname', 'symmetric', 'synopsis', 'talks_about', 'title', 'to_state', 'transition_of', 'update_permission', 'use_email', 'value'))) diff -r 8b0ca7904820 -r 0e73d299730a hooks/syncschema.py --- a/hooks/syncschema.py Fri Feb 05 11:54:23 2010 +0100 +++ b/hooks/syncschema.py Fri Feb 05 11:56:57 2010 +0100 @@ -897,7 +897,7 @@ description=entity.get('description'), meta=entity.get('meta', False), inlined=entity.get('inlined', False), - symetric=entity.get('symetric', False), + symmetric=entity.get('symmetric', False), eid=entity.eid) MemSchemaCWRTypeAdd(self._cw, rtype) @@ -919,7 +919,7 @@ entity = self.entity rschema = self._cw.vreg.schema.rschema(entity.name) newvalues = {} - for prop in ('meta', 'symetric', 'inlined'): + for prop in ('meta', 'symmetric', 'inlined'): if prop in entity: newvalues[prop] = entity[prop] if newvalues: diff -r 8b0ca7904820 -r 0e73d299730a hooks/test/unittest_hooks.py --- a/hooks/test/unittest_hooks.py Fri Feb 05 11:54:23 2010 +0100 +++ b/hooks/test/unittest_hooks.py Fri Feb 05 11:56:57 2010 +0100 @@ -302,7 +302,7 @@ # schema should be update on insertion (after commit) eeid = self.execute('INSERT CWEType X: X name "Societe2", X description "", X final FALSE')[0][0] self._set_perms(eeid) - self.execute('INSERT CWRType X: X name "concerne2", X description "", X final FALSE, X symetric FALSE') + self.execute('INSERT CWRType X: X name "concerne2", X description "", X final FALSE, X symmetric FALSE') self.failIf(schema.has_entity('Societe2')) self.failIf(schema.has_entity('concerne2')) # have to commit before adding definition relations diff -r 8b0ca7904820 -r 0e73d299730a i18n/en.po --- a/i18n/en.po Fri Feb 05 11:54:23 2010 +0100 +++ b/i18n/en.po Fri Feb 05 11:56:57 2010 +0100 @@ -3486,11 +3486,11 @@ msgid "surname" msgstr "" -msgid "symetric" +msgid "symmetric" msgstr "" msgctxt "CWRType" -msgid "symetric" +msgid "symmetric" msgstr "" msgid "system entities" diff -r 8b0ca7904820 -r 0e73d299730a i18n/es.po --- a/i18n/es.po Fri Feb 05 11:54:23 2010 +0100 +++ b/i18n/es.po Fri Feb 05 11:56:57 2010 +0100 @@ -3585,11 +3585,11 @@ msgid "surname" msgstr "" -msgid "symetric" +msgid "symmetric" msgstr "simetrico" msgctxt "CWRType" -msgid "symetric" +msgid "symmetric" msgstr "" msgid "system entities" diff -r 8b0ca7904820 -r 0e73d299730a i18n/fr.po --- a/i18n/fr.po Fri Feb 05 11:54:23 2010 +0100 +++ b/i18n/fr.po Fri Feb 05 11:56:57 2010 +0100 @@ -3609,11 +3609,11 @@ msgid "surname" msgstr "nom de famille" -msgid "symetric" +msgid "symmetric" msgstr "symétrique" msgctxt "CWRType" -msgid "symetric" +msgid "symmetric" msgstr "symétrique" msgid "system entities" diff -r 8b0ca7904820 -r 0e73d299730a schemas/base.py --- a/schemas/base.py Fri Feb 05 11:54:23 2010 +0100 +++ b/schemas/base.py Fri Feb 05 11:56:57 2010 +0100 @@ -204,7 +204,7 @@ 'delete': ('managers', 'owners'), } cardinality = '*1' - symetric = True + symmetric = True # NOTE: the 'object = ExternalUri' declaration will still be mandatory # in the cube's schema. object = 'ExternalUri' @@ -234,7 +234,7 @@ class identical_to(RelationType): """identical to""" - symetric = True + symmetric = True __permissions__ = { 'read': ('managers', 'users', 'guests',), # XXX should have update __permissions__ on both subject and object, @@ -249,7 +249,7 @@ class see_also(RelationType): """generic relation to link one entity to another""" - symetric = True + symmetric = True __permissions__ = { 'read': ('managers', 'users', 'guests',), 'add': ('managers', RRQLExpression('U has_update_permission S'),), diff -r 8b0ca7904820 -r 0e73d299730a schemas/bootstrap.py --- a/schemas/bootstrap.py Fri Feb 05 11:54:23 2010 +0100 +++ b/schemas/bootstrap.py Fri Feb 05 11:56:57 2010 +0100 @@ -33,7 +33,7 @@ unique=True, maxsize=64) description = RichString(internationalizable=True, description=_('semantic description of this relation type')) - symetric = Boolean(description=_('is this relation equivalent in both direction ?')) + symmetric = Boolean(description=_('is this relation equivalent in both direction ?')) inlined = Boolean(description=_('is this relation physically inlined? you should know what you\'re doing if you are changing this!')) fulltext_container = String(description=_('if full text content of subject/object entity ' 'should be added to other side entity (the container).'), diff -r 8b0ca7904820 -r 0e73d299730a schemaviewer.py --- a/schemaviewer.py Fri Feb 05 11:54:23 2010 +0100 +++ b/schemaviewer.py Fri Feb 05 11:56:57 2010 +0100 @@ -172,8 +172,8 @@ stereotypes = [] if rschema.meta: stereotypes.append('meta') - if rschema.symetric: - stereotypes.append('symetric') + if rschema.symmetric: + stereotypes.append('symmetric') if rschema.inlined: stereotypes.append('inlined') title = Section(children=(title, ' (%s)'%rschema.display_name(self.req)), klass='title') @@ -199,7 +199,7 @@ if (subjtype, objtype) in done: continue done.add((subjtype, objtype)) - if rschema.symetric: + if rschema.symmetric: done.add((objtype, subjtype)) data.append(Link(self.eschema_link_url(schema[subjtype]), subjtype)) data.append(Link(self.eschema_link_url(schema[objtype]), objtype)) diff -r 8b0ca7904820 -r 0e73d299730a server/migractions.py --- a/server/migractions.py Fri Feb 05 11:54:23 2010 +0100 +++ b/server/migractions.py Fri Feb 05 11:56:57 2010 +0100 @@ -395,7 +395,7 @@ current definition: * description - * symetric, meta + * symmetric, meta * inlined * relation definitions if `syncrdefs` * permissions if `syncperms` @@ -482,7 +482,7 @@ if (subjtype, rschema, objtype) in self._synchronized: return self._synchronized.add((subjtype, rschema, objtype)) - if rschema.symetric: + if rschema.symmetric: self._synchronized.add((objtype, rschema, subjtype)) confirm = self.verbosity >= 2 if syncprops: @@ -764,7 +764,7 @@ self.cmd_add_relation_type(rschema.type, False, commit=True) rtypeadded = True # register relation definition - # remember this two avoid adding twice non symetric relation + # remember this two avoid adding twice non symmetric relation # such as "Emailthread forked_from Emailthread" added.append((etype, rschema.type, targettype)) self.rqlexecall(ss.rdef2rql(rschema, etype, targettype, diff -r 8b0ca7904820 -r 0e73d299730a server/repository.py --- a/server/repository.py Fri Feb 05 11:54:23 2010 +0100 +++ b/server/repository.py Fri Feb 05 11:56:57 2010 +0100 @@ -1129,7 +1129,7 @@ eidfrom=subject, rtype=rtype, eidto=object) source.add_relation(session, subject, rtype, object) rschema = self.schema.rschema(rtype) - session.update_rel_cache_add(subject, rtype, object, rschema.symetric) + session.update_rel_cache_add(subject, rtype, object, rschema.symmetric) if source.should_call_hooks: self.hm.call_hooks('after_add_relation', session, eidfrom=subject, rtype=rtype, eidto=object) @@ -1144,9 +1144,9 @@ eidfrom=subject, rtype=rtype, eidto=object) source.delete_relation(session, subject, rtype, object) rschema = self.schema.rschema(rtype) - session.update_rel_cache_del(subject, rtype, object, rschema.symetric) - if rschema.symetric: - # on symetric relation, we can't now in which sense it's + session.update_rel_cache_del(subject, rtype, object, rschema.symmetric) + if rschema.symmetric: + # on symmetric relation, we can't now in which sense it's # stored so try to delete both source.delete_relation(session, object, rtype, subject) if source.should_call_hooks: diff -r 8b0ca7904820 -r 0e73d299730a server/rqlannotation.py --- a/server/rqlannotation.py Fri Feb 05 11:54:23 2010 +0100 +++ b/server/rqlannotation.py Fri Feb 05 11:56:57 2010 +0100 @@ -23,7 +23,7 @@ has_text_query = False need_distinct = rqlst.distinct for rel in rqlst.iget_nodes(Relation): - if getrschema(rel.r_type).symetric and not rel.neged(strict=True): + if getrschema(rel.r_type).symmetric and not rel.neged(strict=True): for vref in rel.iget_nodes(VariableRef): stinfo = vref.variable.stinfo if not stinfo['constnode'] and stinfo['selected']: @@ -105,7 +105,7 @@ # can use N.ecrit_par as principal if (stinfo['selected'] or len(stinfo['relations']) > 1): break - elif rschema.symetric and stinfo['selected']: + elif rschema.symmetric and stinfo['selected']: break joins.add(rel) else: diff -r 8b0ca7904820 -r 0e73d299730a server/schemaserial.py --- a/server/schemaserial.py Fri Feb 05 11:54:23 2010 +0100 +++ b/server/schemaserial.py Fri Feb 05 11:56:57 2010 +0100 @@ -113,6 +113,13 @@ print sql sqlcu.execute(sql) # other table renaming done once schema has been read + # 3.6 migration + sqlcu.execute("SELECT * FROM cw_CWRType WHERE cw_name='symetric'") + if sqlcu.fetchall(): + sql = dbhelper.sql_rename_col('cw_CWRType', 'cw_symetric', 'cw_symmetric', + dbhelper.TYPE_MAPPING['Boolean'], True) + sqlcu.execute(sql) + sqlcu.execute("UPDATE cw_CWRType SET cw_name='symmetric' WHERE cw_name='symetric'") sidx = {} permsdict = deserialize_ertype_permissions(session) schema.reading_from_database = True @@ -163,9 +170,9 @@ schema.eschema(stype)._specialized_by.append(etype) for eid, rtype, desc, sym, il, ftc in session.execute( 'Any X,N,D,S,I,FTC WHERE X is CWRType, X name N, X description D, ' - 'X symetric S, X inlined I, X fulltext_container FTC', build_descr=False): + 'X symmetric S, X inlined I, X fulltext_container FTC', build_descr=False): rtype = ybo.RelationType(name=rtype, description=desc, - symetric=bool(sym), inlined=bool(il), + symmetric=bool(sym), inlined=bool(il), fulltext_container=ftc, eid=eid) rschema = schema.add_relation_type(rtype) sidx[eid] = rschema @@ -185,7 +192,7 @@ internationalizable=i18n, default=default, eid=rdefeid) rdefs = schema.add_relation_def(rdef) - # rdefs can be None on duplicated relation definitions (e.g. symetrics) + # rdefs can be None on duplicated relation definitions (e.g. symmetrics) if rdefs is not None: set_perms(rdefs, permsdict) for values in session.execute( @@ -198,7 +205,7 @@ cardinality=card, order=ord, description=desc, composite=c, eid=rdefeid) rdefs = schema.add_relation_def(rdef) - # rdefs can be None on duplicated relation definitions (e.g. symetrics) + # rdefs can be None on duplicated relation definitions (e.g. symmetrics) if rdefs is not None: set_perms(rdefs, permsdict) schema.infer_specialization_rules() @@ -331,7 +338,7 @@ def rschema_relations_values(rschema): values = _ervalues(rschema) values['final'] = rschema.final - values['symetric'] = rschema.symetric + values['symmetric'] = rschema.symmetric values['inlined'] = rschema.inlined if HAS_FULLTEXT_CONTAINER: if isinstance(rschema.fulltext_container, str): diff -r 8b0ca7904820 -r 0e73d299730a server/session.py --- a/server/session.py Fri Feb 05 11:54:23 2010 +0100 +++ b/server/session.py Fri Feb 05 11:56:57 2010 +0100 @@ -133,16 +133,16 @@ # relations cache handling ################################################# - def update_rel_cache_add(self, subject, rtype, object, symetric=False): + def update_rel_cache_add(self, subject, rtype, object, symmetric=False): self._update_entity_rel_cache_add(subject, rtype, 'subject', object) - if symetric: + if symmetric: self._update_entity_rel_cache_add(object, rtype, 'subject', subject) else: self._update_entity_rel_cache_add(object, rtype, 'object', subject) - def update_rel_cache_del(self, subject, rtype, object, symetric=False): + def update_rel_cache_del(self, subject, rtype, object, symmetric=False): self._update_entity_rel_cache_del(subject, rtype, 'subject', object) - if symetric: + if symmetric: self._update_entity_rel_cache_del(object, rtype, 'object', object) else: self._update_entity_rel_cache_del(object, rtype, 'object', subject) diff -r 8b0ca7904820 -r 0e73d299730a server/sources/rql2sql.py --- a/server/sources/rql2sql.py Fri Feb 05 11:54:23 2010 +0100 +++ b/server/sources/rql2sql.py Fri Feb 05 11:56:57 2010 +0100 @@ -742,7 +742,7 @@ sqls += self._process_relation_term(relation, rid, lhsvar, lhsconst, 'eid_from') sqls += self._process_relation_term(relation, rid, rhsvar, rhsconst, 'eid_to') sql = ' AND '.join(sqls) - if rschema.symetric: + if rschema.symmetric: sql = '(%s OR %s)' % (sql, switch_relation_field(sql)) return sql diff -r 8b0ca7904820 -r 0e73d299730a server/test/data/migratedapp/schema.py --- a/server/test/data/migratedapp/schema.py Fri Feb 05 11:54:23 2010 +0100 +++ b/server/test/data/migratedapp/schema.py Fri Feb 05 11:56:57 2010 +0100 @@ -102,7 +102,7 @@ travaille = SubjectRelation('Societe') concerne = SubjectRelation('Affaire') concerne2 = SubjectRelation(('Affaire', 'Note'), cardinality='1*') - connait = SubjectRelation('Personne', symetric=True) + connait = SubjectRelation('Personne', symmetric=True) class Societe(WorkflowableEntityType): __permissions__ = { diff -r 8b0ca7904820 -r 0e73d299730a server/test/data/schema.py --- a/server/test/data/schema.py Fri Feb 05 11:54:23 2010 +0100 +++ b/server/test/data/schema.py Fri Feb 05 11:56:57 2010 +0100 @@ -118,7 +118,7 @@ inlined = True class connait(RelationType): - symetric = True + symmetric = True class concerne(RelationType): __permissions__ = { diff -r 8b0ca7904820 -r 0e73d299730a server/test/unittest_querier.py --- a/server/test/unittest_querier.py Fri Feb 05 11:54:23 2010 +0100 +++ b/server/test/unittest_querier.py Fri Feb 05 11:56:57 2010 +0100 @@ -559,7 +559,7 @@ rset = self.execute('CWGroup X ORDERBY N LIMIT 2 OFFSET 2 WHERE X name N') self.assertEquals(tuplify(rset.rows), [(3,), (4,)]) - def test_select_symetric(self): + def test_select_symmetric(self): self.execute("INSERT Personne X: X nom 'machin'") self.execute("INSERT Personne X: X nom 'bidule'") self.execute("INSERT Personne X: X nom 'chouette'") @@ -938,7 +938,7 @@ rset = self.execute('Personne P WHERE P travaille S') self.assertEqual(len(rset.rows), 0) - def test_delete_symetric(self): + def test_delete_symmetric(self): teid1 = self.execute("INSERT Folder T: T name 'toto'")[0][0] teid2 = self.execute("INSERT Folder T: T name 'tutu'")[0][0] self.execute('SET X see_also Y WHERE X eid %s, Y eid %s' % (teid1, teid2)) diff -r 8b0ca7904820 -r 0e73d299730a server/test/unittest_rql2sql.py --- a/server/test/unittest_rql2sql.py Fri Feb 05 11:54:23 2010 +0100 +++ b/server/test/unittest_rql2sql.py Fri Feb 05 11:56:57 2010 +0100 @@ -1325,7 +1325,7 @@ rqlst = self._prepare(rql) self.assertRaises(BadRQLQuery, self.o.generate, rqlst) - def test_symetric(self): + def test_symmetric(self): for t in self._parse(SYMETRIC): yield t diff -r 8b0ca7904820 -r 0e73d299730a server/test/unittest_schemaserial.py --- a/server/test/unittest_schemaserial.py Fri Feb 05 11:54:23 2010 +0100 +++ b/server/test/unittest_schemaserial.py Fri Feb 05 11:56:57 2010 +0100 @@ -49,8 +49,8 @@ def test_rschema2rql1(self): self.assertListEquals(list(rschema2rql(schema.rschema('relation_type'))), [ - ('INSERT CWRType X: X description %(description)s,X final %(final)s,X fulltext_container %(fulltext_container)s,X inlined %(inlined)s,X name %(name)s,X symetric %(symetric)s', - {'description': u'link a relation definition to its relation type', 'symetric': False, 'name': u'relation_type', 'final' : False, 'fulltext_container': None, 'inlined': True}), + ('INSERT CWRType X: X description %(description)s,X final %(final)s,X fulltext_container %(fulltext_container)s,X inlined %(inlined)s,X name %(name)s,X symmetric %(symmetric)s', + {'description': u'link a relation definition to its relation type', 'symmetric': False, 'name': u'relation_type', 'final' : False, 'fulltext_container': None, 'inlined': True}), ('INSERT CWRelation X: X cardinality %(cardinality)s,X composite %(composite)s,X description %(description)s,X ordernum %(ordernum)s,X relation_type ER,X from_entity SE,X to_entity OE WHERE SE name %(se)s,ER name %(rt)s,OE name %(oe)s', {'rt': 'relation_type', 'description': u'', 'composite': u'object', 'oe': 'CWRType', @@ -68,7 +68,7 @@ def test_rschema2rql2(self): self.assertListEquals(list(rschema2rql(schema.rschema('add_permission'))), [ - ('INSERT CWRType X: X description %(description)s,X final %(final)s,X fulltext_container %(fulltext_container)s,X inlined %(inlined)s,X name %(name)s,X symetric %(symetric)s', {'description': u'core relation giving to a group the permission to add an entity or relation type', 'symetric': False, 'name': u'add_permission', 'final': False, 'fulltext_container': None, 'inlined': False}), + ('INSERT CWRType X: X description %(description)s,X final %(final)s,X fulltext_container %(fulltext_container)s,X inlined %(inlined)s,X name %(name)s,X symmetric %(symmetric)s', {'description': u'core relation giving to a group the permission to add an entity or relation type', 'symmetric': False, 'name': u'add_permission', 'final': False, 'fulltext_container': None, 'inlined': False}), ('INSERT CWRelation X: X cardinality %(cardinality)s,X composite %(composite)s,X description %(description)s,X ordernum %(ordernum)s,X relation_type ER,X from_entity SE,X to_entity OE WHERE SE name %(se)s,ER name %(rt)s,OE name %(oe)s', {'rt': 'add_permission', 'description': u'groups allowed to add entities/relations of this type', 'composite': None, 'oe': 'CWGroup', 'ordernum': 3, 'cardinality': u'**', 'se': 'CWAttribute'}), @@ -89,8 +89,8 @@ def test_rschema2rql3(self): self.assertListEquals(list(rschema2rql(schema.rschema('cardinality'))), [ - ('INSERT CWRType X: X description %(description)s,X final %(final)s,X fulltext_container %(fulltext_container)s,X inlined %(inlined)s,X name %(name)s,X symetric %(symetric)s', - {'description': u'', 'symetric': False, 'name': u'cardinality', 'final': True, 'fulltext_container': None, 'inlined': False}), + ('INSERT CWRType X: X description %(description)s,X final %(final)s,X fulltext_container %(fulltext_container)s,X inlined %(inlined)s,X name %(name)s,X symmetric %(symmetric)s', + {'description': u'', 'symmetric': False, 'name': u'cardinality', 'final': True, 'fulltext_container': None, 'inlined': False}), ('INSERT CWAttribute X: X cardinality %(cardinality)s,X defaultval %(defaultval)s,X description %(description)s,X fulltextindexed %(fulltextindexed)s,X indexed %(indexed)s,X internationalizable %(internationalizable)s,X ordernum %(ordernum)s,X relation_type ER,X from_entity SE,X to_entity OE WHERE SE name %(se)s,ER name %(rt)s,OE name %(oe)s', {'rt': 'cardinality', 'description': u'subject/object cardinality', 'internationalizable': True, 'fulltextindexed': False, 'ordernum': 5, 'defaultval': None, 'indexed': False, 'cardinality': u'?1', 'oe': 'String', 'se': 'CWAttribute'}), @@ -123,16 +123,16 @@ def test_updaterschema2rql1(self): self.assertListEquals(list(updaterschema2rql(schema.rschema('relation_type'))), [ - ('SET X description %(description)s,X final %(final)s,X fulltext_container %(fulltext_container)s,X inlined %(inlined)s,X name %(name)s,X symetric %(symetric)s WHERE X is CWRType, X name %(rt)s', - {'rt': 'relation_type', 'symetric': False, + ('SET X description %(description)s,X final %(final)s,X fulltext_container %(fulltext_container)s,X inlined %(inlined)s,X name %(name)s,X symmetric %(symmetric)s WHERE X is CWRType, X name %(rt)s', + {'rt': 'relation_type', 'symmetric': False, 'description': u'link a relation definition to its relation type', 'final': False, 'fulltext_container': None, 'inlined': True, 'name': u'relation_type'}) ]) def test_updaterschema2rql2(self): expected = [ - ('SET X description %(description)s,X final %(final)s,X fulltext_container %(fulltext_container)s,X inlined %(inlined)s,X name %(name)s,X symetric %(symetric)s WHERE X is CWRType, X name %(rt)s', - {'rt': 'add_permission', 'symetric': False, + ('SET X description %(description)s,X final %(final)s,X fulltext_container %(fulltext_container)s,X inlined %(inlined)s,X name %(name)s,X symmetric %(symmetric)s WHERE X is CWRType, X name %(rt)s', + {'rt': 'add_permission', 'symmetric': False, 'description': u'core relation giving to a group the permission to add an entity or relation type', 'final': False, 'fulltext_container': None, 'inlined': False, 'name': u'add_permission'}) ] diff -r 8b0ca7904820 -r 0e73d299730a test/data/schema.py --- a/test/data/schema.py Fri Feb 05 11:54:23 2010 +0100 +++ b/test/data/schema.py Fri Feb 05 11:56:57 2010 +0100 @@ -14,7 +14,7 @@ type = String() travaille = SubjectRelation('Societe') evaluee = SubjectRelation(('Note', 'Personne')) - connait = SubjectRelation('Personne', symetric=True) + connait = SubjectRelation('Personne', symmetric=True) class Societe(EntityType): nom = String() diff -r 8b0ca7904820 -r 0e73d299730a test/unittest_entity.py --- a/test/unittest_entity.py Fri Feb 05 11:54:23 2010 +0100 +++ b/test/unittest_entity.py Fri Feb 05 11:56:57 2010 +0100 @@ -156,7 +156,7 @@ 'WHERE X is Personne, X nom AA, X prenom AB, X travaille AC?, AC nom AD, ' 'AC evaluee AE?, AE modification_date AF' ) - # testing symetric relation + # testing symmetric relation Personne.fetch_attrs = ('nom', 'connait') self.assertEquals(Personne.fetch_rql(user), 'Any X,AA,AB ORDERBY AA ASC ' 'WHERE X is Personne, X nom AA, X connait AB?') diff -r 8b0ca7904820 -r 0e73d299730a test/unittest_schema.py --- a/test/unittest_schema.py Fri Feb 05 11:54:23 2010 +0100 +++ b/test/unittest_schema.py Fri Feb 05 11:56:57 2010 +0100 @@ -203,7 +203,7 @@ 'read_permission', 'relation_type', 'require_group', - 'specializes', 'state_of', 'subworkflow', 'subworkflow_exit', 'subworkflow_state', 'surname', 'symetric', 'synopsis', + 'specializes', 'state_of', 'subworkflow', 'subworkflow_exit', 'subworkflow_state', 'surname', 'symmetric', 'synopsis', 'tags', 'timestamp', 'title', 'to_entity', 'to_state', 'transition_of', 'travaille', 'type', diff -r 8b0ca7904820 -r 0e73d299730a web/views/autoform.py --- a/web/views/autoform.py Fri Feb 05 11:54:23 2010 +0100 +++ b/web/views/autoform.py Fri Feb 05 11:56:57 2010 +0100 @@ -449,7 +449,7 @@ options = [] divid = 'div%s_%s_%s' % (rschema.type, role, entity.eid) selectid = 'select%s_%s_%s' % (rschema.type, role, entity.eid) - if rschema.symetric or role == 'subject': + if rschema.symmetric or role == 'subject': targettypes = rschema.objects(entity.e_schema) etypes = '/'.join(sorted(etype.display_name(self._cw) for etype in targettypes)) else: diff -r 8b0ca7904820 -r 0e73d299730a web/views/primary.py --- a/web/views/primary.py Fri Feb 05 11:54:23 2010 +0100 +++ b/web/views/primary.py Fri Feb 05 11:56:57 2010 +0100 @@ -309,5 +309,5 @@ for attr in ('name', 'final'): _pvs.tag_attribute(('CWEType', attr), 'hidden') -for attr in ('name', 'final', 'symetric', 'inlined'): +for attr in ('name', 'final', 'symmetric', 'inlined'): _pvs.tag_attribute(('CWRType', attr), 'hidden')