# HG changeset patch # User pierre-yves # Date 1371209989 -7200 # Node ID a1cee6915ea395d69b4ffa6390a57a073871d0a7 # Parent d8806996ac0166c2598da51c38ed5b50e33488d7 [req] drop from_controller on non WebRequest object (Closes #2901079) The `controller` concept is purely a web things. It does not belong to generic `req` object. The `build_url` code is slightly changed to handle that. This probably requires extended cleanup later. This is a barely used and very internal API. No deprecation period diff -r d8806996ac01 -r a1cee6915ea3 dbapi.py --- a/dbapi.py Tue May 14 00:36:43 2013 +0200 +++ b/dbapi.py Fri Jun 14 13:39:49 2013 +0200 @@ -331,9 +331,6 @@ self.cnx = self.user = _NeedAuthAccessMock() self.set_default_language(vreg) - def from_controller(self): - return 'view' - def get_option_value(self, option, foreid=None): return self.cnx.get_option_value(option, foreid) diff -r d8806996ac01 -r a1cee6915ea3 req.py --- a/req.py Tue May 14 00:36:43 2013 +0200 +++ b/req.py Fri Jun 14 13:39:49 2013 +0200 @@ -221,24 +221,20 @@ """ # use *args since we don't want first argument to be "anonymous" to # avoid potential clash with kwargs + method = None if args: assert len(args) == 1, 'only 0 or 1 non-named-argument expected' method = args[0] - else: - method = None + if method is None: + method = 'view' # XXX I (adim) think that if method is passed explicitly, we should # not try to process it and directly call req.build_url() - if method is None: - if self.from_controller() == 'view' and not '_restpath' in kwargs: - method = self.relative_path(includeparams=False) or 'view' - else: - method = 'view' base_url = kwargs.pop('base_url', None) if base_url is None: secure = kwargs.pop('__secure__', None) base_url = self.base_url(secure=secure) if '_restpath' in kwargs: - assert method == 'view', method + assert method == 'view', repr(method) path = kwargs.pop('_restpath') else: path = method diff -r d8806996ac01 -r a1cee6915ea3 server/session.py --- a/server/session.py Tue May 14 00:36:43 2013 +0200 +++ b/server/session.py Fri Jun 14 13:39:49 2013 +0200 @@ -1150,12 +1150,6 @@ cache_entities = cnx_meth('cached_entities') drop_entity_cache = cnx_meth('drop_entity_cache') - def from_controller(self): - """return the id (string) of the controller issuing the request (no - sense here, always return 'view') - """ - return 'view' - source_defs = cnx_meth('source_defs') describe = cnx_meth('describe') source_from_eid = cnx_meth('source_from_eid') diff -r d8806996ac01 -r a1cee6915ea3 web/request.py --- a/web/request.py Tue May 14 00:36:43 2013 +0200 +++ b/web/request.py Fri Jun 14 13:39:49 2013 +0200 @@ -731,6 +731,12 @@ if '__message' in kwargs: msg = kwargs.pop('__message') kwargs['_cwmsgid'] = self.set_redirect_message(msg) + if not args: + method = 'view' + if (self.from_controller() == 'view' + and not '_restpath' in kwargs): + method = self.relative_path(includeparams=False) or 'view' + args = (method,) return super(CubicWebRequestBase, self).build_url(*args, **kwargs) def url(self, includeparams=True):