# HG changeset patch # User Sylvain Thénault # Date 1253104376 -7200 # Node ID 7ef021ac8dec2bbb50bcc7c7363ed5218cd269f1 # Parent 1fc804b2c5ba15fc3d1b323c57fa1d15d0477304 cleanup diff -r 1fc804b2c5ba -r 7ef021ac8dec entity.py --- a/entity.py Wed Sep 16 14:32:13 2009 +0200 +++ b/entity.py Wed Sep 16 14:32:56 2009 +0200 @@ -84,6 +84,7 @@ except AttributeError: continue + class _metaentity(type): """this metaclass sets the relation tags on the entity class and deals with the `widgets` attribute @@ -721,20 +722,6 @@ # generic vocabulary methods ############################################## - @deprecated('see new form api') - def vocabulary(self, rtype, role='subject', limit=None): - """vocabulary functions must return a list of couples - (label, eid) that will typically be used to fill the - edition view's combobox. - - If `eid` is None in one of these couples, it should be - interpreted as a separator in case vocabulary results are grouped - """ - from logilab.common.testlib import mock_object - form = self.vreg.select('forms', 'edition', self.req, entity=self) - field = mock_object(name=rtype, role=role) - return form.form_field_vocabulary(field, limit) - def unrelated_rql(self, rtype, targettype, role, ordermethod=None, vocabconstraints=True): """build a rql to fetch `targettype` entities unrelated to this entity @@ -803,7 +790,7 @@ if limit is not None: before, after = rql.split(' WHERE ', 1) rql = '%s LIMIT %s WHERE %s' % (before, limit, after) - return self.req.execute(rql, args, tuple(args.keys())) + return self.req.execute(rql, args, tuple(args)) # relations cache handling ################################################ @@ -959,6 +946,20 @@ words += entity.get_words() return words + @deprecated('[3.2] see new form api') + def vocabulary(self, rtype, role='subject', limit=None): + """vocabulary functions must return a list of couples + (label, eid) that will typically be used to fill the + edition view's combobox. + + If `eid` is None in one of these couples, it should be + interpreted as a separator in case vocabulary results are grouped + """ + from logilab.common.testlib import mock_object + form = self.vreg.select('forms', 'edition', self.req, entity=self) + field = mock_object(name=rtype, role=role) + return form.form_field_vocabulary(field, limit) + # attribute and relation descriptors ########################################## diff -r 1fc804b2c5ba -r 7ef021ac8dec server/sources/ldapuser.py --- a/server/sources/ldapuser.py Wed Sep 16 14:32:13 2009 +0200 +++ b/server/sources/ldapuser.py Wed Sep 16 14:32:56 2009 +0200 @@ -336,7 +336,7 @@ if sol[varname] == 'CWUser': mainvars.append(varname) break - assert mainvars + assert mainvars, rqlst columns, globtransforms = self.prepare_columns(mainvars, rqlst) eidfilters = [] allresults = [] diff -r 1fc804b2c5ba -r 7ef021ac8dec server/sources/rql2sql.py --- a/server/sources/rql2sql.py Wed Sep 16 14:32:13 2009 +0200 +++ b/server/sources/rql2sql.py Wed Sep 16 14:32:56 2009 +0200 @@ -656,10 +656,6 @@ sql = self._visit_outer_join_relation(relation, rschema) elif rschema.inlined: sql = self._visit_inlined_relation(relation) -# elif isinstance(relation.parent, Not): -# self._state.done.add(relation.parent) -# # NOT relation -# sql = self._visit_not_relation(relation, rschema) else: # regular (non final) relation sql = self._visit_relation(relation, rschema) @@ -1104,7 +1100,8 @@ raise BadRQLQuery(var.stmt.root) table = var.name sql = '%s.%seid' % (table, SQL_PREFIX) - self.add_table('%s%s AS %s' % (SQL_PREFIX, etype, table), table, scope=scope) + self.add_table('%s%s AS %s' % (SQL_PREFIX, etype, table), table, + scope=scope) return sql, table def _inlined_var_sql(self, var, rtype): diff -r 1fc804b2c5ba -r 7ef021ac8dec server/test/unittest_rql2sql.py --- a/server/test/unittest_rql2sql.py Wed Sep 16 14:32:13 2009 +0200 +++ b/server/test/unittest_rql2sql.py Wed Sep 16 14:32:56 2009 +0200 @@ -163,7 +163,6 @@ ] ADVANCED= [ - ("Societe S WHERE S nom 'Logilab' OR S nom 'Caesium'", '''SELECT S.cw_eid FROM cw_Societe AS S diff -r 1fc804b2c5ba -r 7ef021ac8dec web/views/forms.py --- a/web/views/forms.py Wed Sep 16 14:32:13 2009 +0200 +++ b/web/views/forms.py Wed Sep 16 14:32:56 2009 +0200 @@ -486,6 +486,7 @@ # cases, it doesn't make sense to sort results afterwards. return vocabfunc(rtype, limit) + # XXX should be on the field, no? def subject_relation_vocabulary(self, rtype, limit=None): """defaut vocabulary method for the given relation, looking for relation's object entities (i.e. self is the subject) @@ -529,25 +530,6 @@ break return result - # def subject_in_state_vocabulary(self, rtype, limit=None): - # """vocabulary method for the in_state relation, looking for relation's - # object entities (i.e. self is the subject) according to initial_state, - # state_of and next_state relation - # """ - # entity = self.edited_entity - # if not entity.has_eid() or not entity.in_state: - # # get the initial state - # rql = 'Any S where S state_of ET, ET name %(etype)s, ET initial_state S' - # rset = self.req.execute(rql, {'etype': str(entity.e_schema)}) - # if rset: - # return [(rset.get_entity(0, 0).view('combobox'), rset[0][0])] - # return [] - # results = [] - # for tr in entity.in_state[0].transitions(entity): - # state = tr.destination_state[0] - # results.append((state.view('combobox'), state.eid)) - # return sorted(results) - def srelations_by_category(self, categories=None, permission=None): return ()