# HG changeset patch # User Sylvain Thénault # Date 1267787902 -3600 # Node ID 2eb6a9b33aa5dc0950977c882164c6098226a149 # Parent 23df4a120c96d3f5243c03e5cbe85cf9d598c3fe# Parent 6c3d5f2a4e0141a7049c1f7b22997a3ec7c32d84 backport stable diff -r 23df4a120c96 -r 2eb6a9b33aa5 hooks/metadata.py --- a/hooks/metadata.py Thu Mar 04 18:06:03 2010 +0100 +++ b/hooks/metadata.py Fri Mar 05 12:18:22 2010 +0100 @@ -14,9 +14,8 @@ from cubicweb.server import hook -def eschema_type_eid(session, etype): +def eschema_eid(session, eschema): """get eid of the CWEType entity for the given yams type""" - eschema = session.repo.schema.eschema(etype) # eschema.eid is None if schema has been readen from the filesystem, not # from the database (eg during tests) if eschema.eid is None: @@ -75,7 +74,10 @@ class SetIsHook(MetaDataHook): - """create a new entity -> set is relation""" + """create a new entity -> set is and is_instance_of relations + + those relations are inserted using sql so they are not hookable. + """ __regid__ = 'setis' events = ('after_add_entity',) @@ -85,18 +87,14 @@ session = self._cw entity = self.entity try: - #session.add_relation(entity.eid, 'is', - # eschema_type_eid(session, entity.__regid__)) session.system_sql('INSERT INTO is_relation(eid_from,eid_to) VALUES (%s,%s)' - % (entity.eid, eschema_type_eid(session, entity.__regid__))) + % (entity.eid, eschema_eid(session, entity.e_schema))) except IndexError: # during schema serialization, skip return - for etype in entity.e_schema.ancestors() + [entity.e_schema]: - #session.add_relation(entity.eid, 'is_instance_of', - # eschema_type_eid(session, etype)) + for eschema in entity.e_schema.ancestors() + [entity.e_schema]: session.system_sql('INSERT INTO is_instance_of_relation(eid_from,eid_to) VALUES (%s,%s)' - % (entity.eid, eschema_type_eid(session, etype))) + % (entity.eid, eschema_eid(session, eschema))) class SetOwnershipHook(MetaDataHook): diff -r 23df4a120c96 -r 2eb6a9b33aa5 server/sources/native.py --- a/server/sources/native.py Thu Mar 04 18:06:03 2010 +0100 +++ b/server/sources/native.py Fri Mar 05 12:18:22 2010 +0100 @@ -208,7 +208,8 @@ # check full text index availibility if self.do_fti: if not self.indexer.has_fti_table(pool['system']): - self.critical('no text index table') + if not repo.config.creating: + self.critical('no text index table') self.do_fti = False pool.pool_reset() self.repo._free_pool(pool) diff -r 23df4a120c96 -r 2eb6a9b33aa5 web/views/ibreadcrumbs.py --- a/web/views/ibreadcrumbs.py Thu Mar 04 18:06:03 2010 +0100 +++ b/web/views/ibreadcrumbs.py Fri Mar 05 12:18:22 2010 +0100 @@ -104,7 +104,7 @@ class BreadCrumbView(EntityView): __regid__ = 'breadcrumbs' - def cell_call(self, row, col): + def cell_call(self, row, col, **kwargs): entity = self.cw_rset.get_entity(row, col) desc = xml_escape(uilib.cut(entity.dc_description(), 50)) # XXX remember camember : tags.a autoescapes ! @@ -115,7 +115,7 @@ class BreadCrumbTextView(EntityView): __regid__ = 'breadcrumbtext' - def cell_call(self, row, col): + def cell_call(self, row, col, **kwargs): entity = self.cw_rset.get_entity(row, col) textsize = self._cw.property_value('navigation.short-line-size') self.w(uilib.cut(entity.dc_title(), textsize))