--- a/cwvreg.py Tue Sep 15 16:15:03 2015 +0200
+++ b/cwvreg.py Tue Oct 13 15:09:22 2015 +0200
@@ -492,7 +492,7 @@
"""
self.schema = schema
for registry, regcontent in self.items():
- for objects in regcontent.itervalues():
+ for objects in regcontent.values():
for obj in objects:
obj.schema = schema
@@ -543,7 +543,7 @@
self.unregister(obj)
super(CWRegistryStore, self).initialization_completed()
if 'uicfg' in self: # 'uicfg' is not loaded in a pure repository mode
- for rtags in self['uicfg'].itervalues():
+ for rtags in self['uicfg'].values():
for rtag in rtags:
# don't check rtags if we don't want to cleanup_unused_appobjects
rtag.init(self.schema, check=self.config.cleanup_unused_appobjects)
--- a/dataimport/deprecated.py Tue Sep 15 16:15:03 2015 +0200
+++ b/dataimport/deprecated.py Tue Oct 13 15:09:22 2015 +0200
@@ -424,7 +424,7 @@
self.tell(pformat(sorted(error[1])))
def _print_stats(self):
- nberrors = sum(len(err) for err in self.errors.itervalues())
+ nberrors = sum(len(err) for err in self.errors.values())
self.tell('\nImport statistics: %i entities, %i types, %i relations and %i errors'
% (self.store.nb_inserted_entities,
self.store.nb_inserted_types,
--- a/devtools/devctl.py Tue Sep 15 16:15:03 2015 +0200
+++ b/devtools/devctl.py Tue Oct 13 15:09:22 2015 +0200
@@ -251,7 +251,7 @@
# bw compat, necessary until all translation of relation are
# done properly...
add_msg(w, '%s_object' % rtype)
- for rdef in rschema.rdefs.itervalues():
+ for rdef in rschema.rdefs.values():
if not rdef.description or rdef.description in done:
continue
if (librschema is None or
@@ -268,7 +268,7 @@
for reg, objdict in vreg.items():
if reg in ('boxes', 'contentnavigation'):
continue
- for objects in objdict.itervalues():
+ for objects in objdict.values():
for obj in objects:
objid = '%s_%s' % (reg, obj.__regid__)
if objid in done:
--- a/devtools/repotest.py Tue Sep 15 16:15:03 2015 +0200
+++ b/devtools/repotest.py Tue Oct 13 15:09:22 2015 +0200
@@ -116,7 +116,7 @@
schema_eids[x] = x.eid
for x in schema.relations():
schema_eids[x] = x.eid
- for rdef in x.rdefs.itervalues():
+ for rdef in x.rdefs.values():
schema_eids[(rdef.subject, rdef.rtype, rdef.object)] = rdef.eid
return schema_eids
@@ -128,7 +128,7 @@
for x in schema.relations():
x.eid = schema_eids[x]
schema._eid_index[x.eid] = x
- for rdef in x.rdefs.itervalues():
+ for rdef in x.rdefs.values():
rdef.eid = schema_eids[(rdef.subject, rdef.rtype, rdef.object)]
schema._eid_index[rdef.eid] = rdef
--- a/devtools/testlib.py Tue Sep 15 16:15:03 2015 +0200
+++ b/devtools/testlib.py Tue Oct 13 15:09:22 2015 +0200
@@ -1294,7 +1294,7 @@
# # XXX broken
# from cubicweb.devtools.apptest import TestEnvironment
# env = testclass._env = TestEnvironment('data', configcls=testclass.configcls)
-# for reg in env.vreg.itervalues():
+# for reg in env.vreg.values():
# reg._selected = {}
# try:
# orig_select_best = reg.__class__.__orig_select_best
@@ -1317,7 +1317,7 @@
# for regname, reg in testclass._env.vreg.items():
# if regname in skipregs:
# continue
-# for appobjects in reg.itervalues():
+# for appobjects in reg.values():
# for appobject in appobjects:
# if not reg._selected.get(appobject):
# print 'not tested', regname, appobject
--- a/doc/tutorials/dataimport/diseasome_parser.py Tue Sep 15 16:15:03 2015 +0200
+++ b/doc/tutorials/dataimport/diseasome_parser.py Tue Oct 13 15:09:22 2015 +0200
@@ -97,4 +97,4 @@
entities[subj]['relations'].setdefault(MAPPING_RELS[rel], set())
entities[subj]['relations'][MAPPING_RELS[rel]].add(unicode(obj))
return ((ent.get('attributes'), ent.get('relations'))
- for ent in entities.itervalues())
+ for ent in entities.values())
--- a/entities/test/unittest_wfobjs.py Tue Sep 15 16:15:03 2015 +0200
+++ b/entities/test/unittest_wfobjs.py Tue Oct 13 15:09:22 2015 +0200
@@ -107,7 +107,7 @@
def setup_database(self):
rschema = self.schema['in_state']
- for rdef in rschema.rdefs.itervalues():
+ for rdef in rschema.rdefs.values():
self.assertEqual(rdef.cardinality, '1*')
with self.admin_access.client_cnx() as cnx:
self.member_eid = self.create_user(cnx, 'member').eid
--- a/hooks/syncschema.py Tue Sep 15 16:15:03 2015 +0200
+++ b/hooks/syncschema.py Tue Oct 13 15:09:22 2015 +0200
@@ -208,7 +208,7 @@
repo.set_schema(repo.schema)
# CWUser class might have changed, update current session users
cwuser_cls = self.cnx.vreg['etypes'].etype_class('CWUser')
- for session in repo._sessions.itervalues():
+ for session in repo._sessions.values():
session.user.__class__ = cwuser_cls
except Exception:
self.critical('error while setting schema', exc_info=True)
--- a/hooks/syncsession.py Tue Sep 15 16:15:03 2015 +0200
+++ b/hooks/syncsession.py Tue Oct 13 15:09:22 2015 +0200
@@ -26,7 +26,7 @@
def get_user_sessions(repo, ueid):
- for session in repo._sessions.itervalues():
+ for session in repo._sessions.values():
if ueid == session.user.eid:
yield session
--- a/misc/migration/bootstrapmigration_repository.py Tue Sep 15 16:15:03 2015 +0200
+++ b/misc/migration/bootstrapmigration_repository.py Tue Oct 13 15:09:22 2015 +0200
@@ -299,7 +299,7 @@
with hooks_control(session, session.HOOKS_ALLOW_ALL, 'integrity'):
for rschema in repo.schema.relations():
rpermsdict = permsdict.get(rschema.eid, {})
- for rdef in rschema.rdefs.itervalues():
+ for rdef in rschema.rdefs.values():
for action in rdef.ACTIONS:
actperms = []
for something in rpermsdict.get(action == 'update' and 'add' or action, ()):
--- a/misc/scripts/pyroforge2datafeed.py Tue Sep 15 16:15:03 2015 +0200
+++ b/misc/scripts/pyroforge2datafeed.py Tue Oct 13 15:09:22 2015 +0200
@@ -74,7 +74,7 @@
# only cleanup entities table, remaining stuff should be cleaned by a c-c
# db-check to be run after this script
-for entities in todelete.itervalues():
+for entities in todelete.values():
system_source.delete_info_multi(session, entities, source_name)
@@ -87,7 +87,7 @@
if schemaent.cw_etype != 'CWEType':
assert schemaent.cw_etype == 'CWRType'
sch = schema._eid_index[schemaent.eid]
- for rdef in sch.rdefs.itervalues():
+ for rdef in sch.rdefs.values():
if not source.support_entity(rdef.subject) \
or not source.support_entity(rdef.object):
continue
--- a/pylintext.py Tue Sep 15 16:15:03 2015 +0200
+++ b/pylintext.py Tue Oct 13 15:09:22 2015 +0200
@@ -17,7 +17,7 @@
def cubicweb_transform(module):
# handle objectify_predicate decorator (and its former name until bw compat
# is kept). Only look at module level functions, should be enough.
- for assnodes in module.locals.itervalues():
+ for assnodes in module.locals.values():
for node in assnodes:
if isinstance(node, scoped_nodes.Function) and node.decorators:
for decorator in node.decorators.nodes:
--- a/schema.py Tue Sep 15 16:15:03 2015 +0200
+++ b/schema.py Tue Oct 13 15:09:22 2015 +0200
@@ -281,7 +281,7 @@
def transform_has_permission(self):
found = None
rqlst = self.rqlst
- for var in rqlst.defined_vars.itervalues():
+ for var in rqlst.defined_vars.values():
for varref in var.references():
rel = varref.relation()
if rel is None:
@@ -532,7 +532,7 @@
if not deps:
eschemas.append(eschema)
del graph[eschema]
- for deps in graph.itervalues():
+ for deps in graph.values():
try:
deps.remove(eschema)
except KeyError:
@@ -773,7 +773,7 @@
def check_permission_definitions(self):
super(CubicWebEntitySchema, self).check_permission_definitions()
- for groups in self.permissions.itervalues():
+ for groups in self.permissions.values():
for group_or_rqlexpr in groups:
if isinstance(group_or_rqlexpr, RRQLExpression):
msg = "can't use RRQLExpression on %s, use an ERQLExpression"
@@ -916,7 +916,7 @@
if rdef.may_have_permission(action, req):
return True
else:
- for rdef in self.rdefs.itervalues():
+ for rdef in self.rdefs.values():
if rdef.may_have_permission(action, req):
return True
return False
@@ -958,7 +958,7 @@
if not rdef.has_perm(_cw, action, **kwargs):
return False
else:
- for rdef in self.rdefs.itervalues():
+ for rdef in self.rdefs.values():
if not rdef.has_perm(_cw, action, **kwargs):
return False
return True
@@ -1081,7 +1081,7 @@
def iter_computed_attributes(self):
for relation in self.relations():
- for rdef in relation.rdefs.itervalues():
+ for rdef in relation.rdefs.values():
if rdef.final and rdef.formula is not None:
yield rdef
--- a/server/checkintegrity.py Tue Sep 15 16:15:03 2015 +0200
+++ b/server/checkintegrity.py Tue Oct 13 15:09:22 2015 +0200
@@ -319,7 +319,7 @@
continue
smandatory = set()
omandatory = set()
- for rdef in rschema.rdefs.itervalues():
+ for rdef in rschema.rdefs.values():
if rdef.cardinality[0] in '1+':
smandatory.add(rdef.subject)
if rdef.cardinality[1] in '1+':
@@ -347,7 +347,7 @@
for rschema in schema.relations():
if not rschema.final or rschema in VIRTUAL_RTYPES:
continue
- for rdef in rschema.rdefs.itervalues():
+ for rdef in rschema.rdefs.values():
if rdef.cardinality[0] in '1+':
rql = 'Any X WHERE X %s NULL, X is %s, X cw_source S, S name "system"' % (
rschema, rdef.subject)
--- a/server/hook.py Tue Sep 15 16:15:03 2015 +0200
+++ b/server/hook.py Tue Oct 13 15:09:22 2015 +0200
@@ -391,7 +391,7 @@
def filtered_possible_objects(self, pruned, *args, **kwargs):
- for appobjects in self.itervalues():
+ for appobjects in self.values():
if pruned:
filtered_objects = [obj for obj in appobjects if obj not in pruned]
if not filtered_objects:
--- a/server/migractions.py Tue Sep 15 16:15:03 2015 +0200
+++ b/server/migractions.py Tue Oct 13 15:09:22 2015 +0200
@@ -420,7 +420,7 @@
{'x': expreid}, ask_confirm=False)
else:
newexprs.pop(expression)
- for expression in newexprs.itervalues():
+ for expression in newexprs.values():
expr = expression.expression
if not confirm or self.confirm('Add %s expression for %s permission of %s?'
% (expr, action, erschema)):
--- a/server/querier.py Tue Sep 15 16:15:03 2015 +0200
+++ b/server/querier.py Tue Oct 13 15:09:22 2015 +0200
@@ -270,7 +270,7 @@
# which have a known eid
varkwargs = {}
if not cnx.transaction_data.get('security-rqlst-cache'):
- for var in rqlst.defined_vars.itervalues():
+ for var in rqlst.defined_vars.values():
if var.stinfo['constnode'] is not None:
eid = var.stinfo['constnode'].eval(self.args)
varkwargs[var.name] = int(eid)
@@ -419,7 +419,7 @@
def relation_defs(self):
"""return the list for relation definitions to insert"""
- for rdefs in self._expanded_r_defs.itervalues():
+ for rdefs in self._expanded_r_defs.values():
for rdef in rdefs:
yield rdef
for rdef in self.r_defs:
@@ -473,7 +473,7 @@
else:
relations[rtype] = [(subj, obj)]
repo.glob_add_relations(cnx, relations)
- for edited in edited_entities.itervalues():
+ for edited in edited_entities.values():
repo.glob_update_entity(cnx, edited)
--- a/server/repository.py Tue Sep 15 16:15:03 2015 +0200
+++ b/server/repository.py Tue Oct 13 15:09:22 2015 +0200
@@ -193,7 +193,7 @@
# changed. So any existing user object have a different class than
# the new loaded one. We are hot fixing this.
usercls = self.vreg['etypes'].etype_class('CWUser')
- for session in self._sessions.itervalues():
+ for session in self._sessions.values():
if not isinstance(session.user, InternalManager):
session.user.__class__ = usercls
@@ -311,7 +311,7 @@
else:
self.vreg._set_schema(schema)
self.querier.set_schema(schema)
- for source in self.sources_by_uri.itervalues():
+ for source in self.sources_by_uri.values():
source.set_schema(schema)
self.schema = schema
@@ -437,7 +437,7 @@
"""
# iter on sources_by_uri then check enabled source since sources doesn't
# contain copy based sources
- for source in self.sources_by_uri.itervalues():
+ for source in self.sources_by_uri.values():
if self.config.source_enabled(source) and source.support_entity('CWUser'):
try:
return source.authenticate(cnx, login, **authinfo)
--- a/server/rqlannotation.py Tue Sep 15 16:15:03 2015 +0200
+++ b/server/rqlannotation.py Tue Oct 13 15:09:22 2015 +0200
@@ -34,7 +34,7 @@
#if server.DEBUG:
# print '-------- sql annotate', repr(rqlst)
getrschema = annotator.schema.rschema
- for var in rqlst.defined_vars.itervalues():
+ for var in rqlst.defined_vars.values():
stinfo = var.stinfo
if stinfo.get('ftirels'):
has_text_query = True
@@ -145,7 +145,7 @@
stinfo['invariant'] = False
# see unittest_rqlannotation. test_has_text_security_cache_bug
# XXX probably more to do, but yet that work without more...
- for col_alias in rqlst.aliases.itervalues():
+ for col_alias in rqlst.aliases.values():
if col_alias.stinfo.get('ftirels'):
has_text_query = True
return has_text_query
@@ -232,7 +232,7 @@
for select in union.children:
for subquery in select.with_:
set_qdata(getrschema, subquery.query, noinvariant)
- for var in select.defined_vars.itervalues():
+ for var in select.defined_vars.values():
if var.stinfo['invariant']:
if var in noinvariant and not var.stinfo['principal'].r_type == 'has_text':
var._q_invariant = False
--- a/server/schemaserial.py Tue Sep 15 16:15:03 2015 +0200
+++ b/server/schemaserial.py Tue Oct 13 15:09:22 2015 +0200
@@ -284,7 +284,7 @@
else:
rtype = str(rel)
relations[1].append(rtype)
- for eschema, unique_together in unique_togethers.itervalues():
+ for eschema, unique_together in unique_togethers.values():
eschema._unique_together.append(tuple(sorted(unique_together)))
schema.infer_specialization_rules()
cnx.commit()
@@ -387,7 +387,7 @@
rdefs = [rdef for k, rdef in rschema.rdefs.items()
if (rdef.subject, rdef.object) == k]
else:
- rdefs = rschema.rdefs.itervalues()
+ rdefs = rschema.rdefs.values()
for rdef in rdefs:
execschemarql(execute, rdef,
rdef2rql(rdef, cstrtypemap, groupmap))
@@ -512,7 +512,7 @@
if addrdef:
assert cstrtypemap
# sort for testing purpose
- for rdef in sorted(rschema.rdefs.itervalues(),
+ for rdef in sorted(rschema.rdefs.values(),
key=lambda x: (x.subject, x.object)):
for rql, values in rdef2rql(rdef, cstrtypemap, groupmap):
yield rql, values
--- a/server/session.py Tue Sep 15 16:15:03 2015 +0200
+++ b/server/session.py Tue Oct 13 15:09:22 2015 +0200
@@ -558,7 +558,7 @@
else:
relations_dict[rtype] = eids
self.repo.glob_add_relations(self, relations_dict)
- for edited in edited_entities.itervalues():
+ for edited in edited_entities.values():
self.repo.glob_update_entity(self, edited)
--- a/server/sources/rql2sql.py Tue Sep 15 16:15:03 2015 +0200
+++ b/server/sources/rql2sql.py Tue Oct 13 15:09:22 2015 +0200
@@ -366,7 +366,7 @@
self.done = set()
self.tables = self.subtables.copy()
self.actual_tables = [[]]
- for _, tsql in self.tables.itervalues():
+ for _, tsql in self.tables.values():
self.actual_tables[-1].append(tsql)
self.outer_chains = []
self.outer_tables = {}
@@ -400,7 +400,7 @@
notdone_outside_vars = set()
# when iterating other solutions inner to an EXISTS subquery, we should
# reset variables which have this exists node as scope at each iteration
- for var in exists.stmt.defined_vars.itervalues():
+ for var in exists.stmt.defined_vars.values():
if var.scope is exists:
thisexistsvars.add(var.name)
elif var.name not in self.done:
--- a/sobjects/__init__.py Tue Sep 15 16:15:03 2015 +0200
+++ b/sobjects/__init__.py Tue Oct 13 15:09:22 2015 +0200
@@ -20,7 +20,7 @@
import os.path as osp
def registration_callback(vreg):
- vreg.register_all(globals().itervalues(), __name__)
+ vreg.register_all(globals().values(), __name__)
global URL_MAPPING
URL_MAPPING = {}
if vreg.config.apphome:
--- a/sobjects/ldapparser.py Tue Sep 15 16:15:03 2015 +0200
+++ b/sobjects/ldapparser.py Tue Oct 13 15:09:22 2015 +0200
@@ -87,10 +87,10 @@
def process(self, url, raise_on_error=False):
"""IDataFeedParser main entry point"""
self.debug('processing ldapfeed source %s %s', self.source, self.searchfilterstr)
- for userdict in self.user_source_entities_by_extid.itervalues():
+ for userdict in self.user_source_entities_by_extid.values():
self._process('CWUser', userdict)
self.debug('processing ldapfeed source %s %s', self.source, self.searchgroupfilterstr)
- for groupdict in self.group_source_entities_by_extid.itervalues():
+ for groupdict in self.group_source_entities_by_extid.values():
self._process('CWGroup', groupdict, raise_on_error=raise_on_error)
def handle_deletion(self, config, cnx, myuris):
--- a/test/unittest_rqlrewrite.py Tue Sep 15 16:15:03 2015 +0200
+++ b/test/unittest_rqlrewrite.py Tue Oct 13 15:09:22 2015 +0200
@@ -92,7 +92,7 @@
selects.append(stmt)
assert node in selects, (node, selects)
for stmt in selects:
- for var in stmt.defined_vars.itervalues():
+ for var in stmt.defined_vars.values():
assert var.stinfo['references']
vrefmap = vrefmaps[stmt]
assert not (var.stinfo['references'] ^ vrefmap[var.name]), (node.as_string(), var, var.stinfo['references'], vrefmap[var.name])
--- a/web/controller.py Tue Sep 15 16:15:03 2015 +0200
+++ b/web/controller.py Tue Oct 13 15:09:22 2015 +0200
@@ -155,7 +155,7 @@
and '_cwmsgid' in newparams):
# are we here on creation or modification?
if any(eid == self._edited_entity.eid
- for eid in self._cw.data.get('eidmap', {}).itervalues()):
+ for eid in self._cw.data.get('eidmap', {}).values()):
msg = self._cw._('click here to see created entity')
else:
msg = self._cw._('click here to see edited entity')
--- a/web/facet.py Tue Sep 15 16:15:03 2015 +0200
+++ b/web/facet.py Tue Oct 13 15:09:22 2015 +0200
@@ -158,7 +158,7 @@
for term in select.selection[:]:
select.remove_selected(term)
# remove unbound variables which only have some type restriction
- for dvar in list(select.defined_vars.itervalues()):
+ for dvar in list(select.defined_vars.values()):
if not (dvar is filtered_variable or dvar.stinfo['relations']):
select.undefine_variable(dvar)
# global tree config: DISTINCT, LIMIT, OFFSET
@@ -307,7 +307,7 @@
# optional relation
return ovar
if all(rdef.cardinality[cardidx] in '1+'
- for rdef in rschema.rdefs.itervalues()):
+ for rdef in rschema.rdefs.values()):
# mandatory relation without any restriction on the other variable
for orel in ovar.stinfo['relations']:
if rel is orel:
@@ -810,7 +810,7 @@
rschema = self._cw.vreg.schema.rschema(self.rtype)
# XXX when called via ajax, no rset to compute possible types
possibletypes = self.cw_rset and self.cw_rset.column_types(0)
- for rdef in rschema.rdefs.itervalues():
+ for rdef in rschema.rdefs.values():
if possibletypes is not None:
if self.role == 'subject':
if rdef.subject not in possibletypes:
--- a/web/test/unittest_views_searchrestriction.py Tue Sep 15 16:15:03 2015 +0200
+++ b/web/test/unittest_views_searchrestriction.py Tue Oct 13 15:09:22 2015 +0200
@@ -79,7 +79,7 @@
select = self.parse(u'DISTINCT Any V,TN,L ORDERBY TN,L WHERE T nom TN, V connait T, T is Personne, V is CWUser,'
'NOT V in_state VS, VS name "published", V login L')
rschema = self.schema['connait']
- for rdefs in rschema.rdefs.itervalues():
+ for rdefs in rschema.rdefs.values():
rdefs.cardinality = '++'
try:
self.assertEqual(self._generate(select, 'in_state', 'subject', 'name'),
@@ -87,7 +87,7 @@
'NOT EXISTS(V in_state VS), VS name "published", '
'V in_state A, A name B')
finally:
- for rdefs in rschema.rdefs.itervalues():
+ for rdefs in rschema.rdefs.values():
rdefs.cardinality = '**'
def test_nonregr3(self):
--- a/web/views/actions.py Tue Sep 15 16:15:03 2015 +0200
+++ b/web/views/actions.py Tue Oct 13 15:09:22 2015 +0200
@@ -76,7 +76,7 @@
return 0
select = rqlst.children[0]
if len(select.defined_vars) == 1 and len(select.solutions) == 1:
- rset._searched_etype = select.solutions[0].itervalues().next()
+ rset._searched_etype = next(iter(select.solutions[0].values()))
eschema = req.vreg.schema.eschema(rset._searched_etype)
if not (eschema.final or eschema.is_subobject(strict=True)) \
and eschema.has_perm(req, 'add'):
--- a/web/views/autoform.py Tue Sep 15 16:15:03 2015 +0200
+++ b/web/views/autoform.py Tue Oct 13 15:09:22 2015 +0200
@@ -1053,4 +1053,4 @@
AutomaticEntityForm.error('field for %s %s may not be found in schema' % (rtype, role))
return None
- vreg.register_all(globals().itervalues(), __name__)
+ vreg.register_all(globals().values(), __name__)
--- a/web/views/csvexport.py Tue Sep 15 16:15:03 2015 +0200
+++ b/web/views/csvexport.py Tue Oct 13 15:09:22 2015 +0200
@@ -100,7 +100,7 @@
rows = rows_by_type[entity.e_schema]
rows.append([entity.printable_value(rs.type, format='text/plain')
for rs in rowdef_by_type[entity.e_schema]])
- for rows in rows_by_type.itervalues():
+ for rows in rows_by_type.values():
writer.writerows(rows)
# use two empty lines as separator
writer.writerows([[], []])
--- a/web/views/schema.py Tue Sep 15 16:15:03 2015 +0200
+++ b/web/views/schema.py Tue Oct 13 15:09:22 2015 +0200
@@ -114,7 +114,7 @@
def grouped_permissions_table(self, rschema):
# group relation definitions with identical permissions
perms = {}
- for rdef in rschema.rdefs.itervalues():
+ for rdef in rschema.rdefs.values():
rdef_perms = []
for action in rdef.ACTIONS:
groups = sorted(rdef.get_groups(action))
--- a/web/views/sparql.py Tue Sep 15 16:15:03 2015 +0200
+++ b/web/views/sparql.py Tue Oct 13 15:09:22 2015 +0200
@@ -142,4 +142,4 @@
def registration_callback(vreg):
if Sparql2rqlTranslator is not None:
- vreg.register_all(globals().itervalues(), __name__)
+ vreg.register_all(globals().values(), __name__)
--- a/web/views/uicfg.py Tue Sep 15 16:15:03 2015 +0200
+++ b/web/views/uicfg.py Tue Oct 13 15:09:22 2015 +0200
@@ -689,5 +689,5 @@
def registration_callback(vreg):
- vreg.register_all(globals().itervalues(), __name__)
+ vreg.register_all(globals().values(), __name__)
indexview_etype_section.init(vreg.schema)