# HG changeset patch # User Sylvain Thénault # Date 1260372812 -3600 # Node ID 2b8bc4cfd6ee1342f5dc723eaf22db5ae91ee830 # Parent 9b96126e0b148a06d7086abb8d2039d055f554bf api update diff -r 9b96126e0b14 -r 2b8bc4cfd6ee schemaviewer.py --- a/schemaviewer.py Wed Dec 09 16:07:07 2009 +0100 +++ b/schemaviewer.py Wed Dec 09 16:33:32 2009 +0100 @@ -9,7 +9,9 @@ _ = unicode from logilab.common.ureports import Section, Title, Table, Link, Span, Text + from yams.schema2dot import CARD_MAP +from yams.schema import RelationDefinitionSchema I18NSTRINGS = [_('read'), _('add'), _('delete'), _('update'), _('order')] @@ -185,7 +187,7 @@ rschema_objects = rschema.objects() if rschema_objects: # might be empty - properties = [p for p in rschema.rproperty_defs(rschema_objects[0]) + properties = [p for p in RelationDefinitionSchema.rproperty_defs(rschema_objects[0]) if not p in ('cardinality', 'composite', 'eid')] else: properties = [] @@ -201,8 +203,9 @@ done.add((objtype, subjtype)) data.append(Link(self.eschema_link_url(schema[subjtype]), subjtype)) data.append(Link(self.eschema_link_url(schema[objtype]), objtype)) + rdef = rschema.rdef(subjtype, objtypep) for prop in properties: - val = rschema.rproperty(subjtype, objtype, prop) + val = getattr(rdef, prop) if val is None: val = '' elif isinstance(val, (list, tuple)): diff -r 9b96126e0b14 -r 2b8bc4cfd6ee web/facet.py --- a/web/facet.py Wed Dec 09 16:07:07 2009 +0100 +++ b/web/facet.py Wed Dec 09 16:33:32 2009 +0100 @@ -411,20 +411,16 @@ @cached def support_and(self): rschema = self._cw.vreg.schema.rschema(self.rtype) - if self.role == 'subject': - cardidx = 0 - else: - cardidx = 1 # XXX when called via ajax, no rset to compute possible types possibletypes = self.cw_rset and self.cw_rset.column_types(0) - for subjtype, objtype in rschema.iter_rdefs(): + for rdef in rschema.rdefs.itervalues(): if possibletypes is not None: if self.role == 'subject': - if not subjtype in possibletypes: + if not rdef.subject in possibletypes: continue - elif not objtype in possibletypes: + elif not rdef.object in possibletypes: continue - if rschema.rproperty(subjtype, objtype, 'cardinality')[cardidx] in '+*': + if rdef.role_cardinality(role) in '+*': return True return False diff -r 9b96126e0b14 -r 2b8bc4cfd6ee web/test/test_views.py --- a/web/test/test_views.py Wed Dec 09 16:07:07 2009 +0100 +++ b/web/test/test_views.py Wed Dec 09 16:33:32 2009 +0100 @@ -63,7 +63,7 @@ def test_unrelateddivs(self): rset = self.execute('Any X WHERE X is CWUser, X login "admin"') - group = self.add_entity('CWGroup', name=u'R&D') + group = self.request().create_entity('CWGroup', name=u'R&D') req = self.request(relation='in_group_subject') self.view('unrelateddivs', rset, req) diff -r 9b96126e0b14 -r 2b8bc4cfd6ee web/views/actions.py --- a/web/views/actions.py Wed Dec 09 16:07:07 2009 +0100 +++ b/web/views/actions.py Wed Dec 09 16:33:32 2009 +0100 @@ -65,7 +65,7 @@ select = rqlst.children[0] if len(select.defined_vars) == 1 and len(select.solutions) == 1: rset._searched_etype = select.solutions[0].itervalues().next() - eschema = req.schema.eschema(rset._searched_etype) + eschema = req.vreg.schema.eschema(rset._searched_etype) if not (eschema.final or eschema.is_subobject(strict=True)) \ and eschema.has_perm(req, 'add'): return 1 diff -r 9b96126e0b14 -r 2b8bc4cfd6ee web/views/wdoc.py --- a/web/views/wdoc.py Wed Dec 09 16:07:07 2009 +0100 +++ b/web/views/wdoc.py Wed Dec 09 16:33:32 2009 +0100 @@ -172,9 +172,9 @@ def call(self): fid = self._cw.form['fid'] for lang in chain((self._cw.lang, self._cw.vreg.property_value('ui.language')), - self._cw.config.available_languages()): + self._cw.vreg.config.available_languages()): rid = join('images', '%s_%s.png' % (fid, lang)) - resourcedir = self._cw.config.locate_doc_file(rid) + resourcedir = self._cw.vreg.config.locate_doc_file(rid) if resourcedir: break else: diff -r 9b96126e0b14 -r 2b8bc4cfd6ee web/views/workflow.py --- a/web/views/workflow.py Wed Dec 09 16:07:07 2009 +0100 +++ b/web/views/workflow.py Wed Dec 09 16:33:32 2009 +0100 @@ -195,7 +195,7 @@ self.w(entity.view('reledit', rtype='description')) self.w(u'%s' % ( xml_escape(entity.absolute_url(vid='wfgraph')), - xml_escape(self.req._('graphical workflow for %s') % entity.name))) + xml_escape(self._cw._('graphical workflow for %s') % entity.name))) class CellView(view.EntityView): @@ -238,7 +238,7 @@ def workflow_states_for_relation(self, targetrelation): eids = self.edited_entity.linked_to('transition_of', 'subject') if eids: - return workflow_items_for_relation(self.req, eids[0], 'state_of', + return workflow_items_for_relation(self._cw, eids[0], 'state_of', targetrelation) return [] @@ -260,7 +260,7 @@ if not self.edited_entity.has_eid(): eids = self.edited_entity.linked_to('state_of', 'subject') if eids: - return workflow_items_for_relation(self.req, eids[0], 'transition_of', + return workflow_items_for_relation(self._cw, eids[0], 'transition_of', 'allowed_transition') return []