# HG changeset patch # User Sylvain Thénault # Date 1253706180 -7200 # Node ID 6d0f22f5d31f4415f9c8a864b8055f94cdaa6744 # Parent 401ea5e03e9d4b7f33044772b814c7cee2a1e365# Parent e6d50513936c9f6f481b8af5fc3e8512aa7822a6 merge diff -r 401ea5e03e9d -r 6d0f22f5d31f appobject.py --- a/appobject.py Wed Sep 23 13:42:48 2009 +0200 +++ b/appobject.py Wed Sep 23 13:43:00 2009 +0200 @@ -370,15 +370,15 @@ @deprecated('[3.6] use self.cw_rset.limited_rql') def limited_rql(self): - return self.rset.limited_rql() + return self.cw_rset.limited_rql() @deprecated('[3.6] use self.cw_rset.complete_entity(row,col) instead') def complete_entity(self, row, col=0, skip_bytes=True): - return self.rset.complete_entity(row, col, skip_bytes) + return self.cw_rset.complete_entity(row, col, skip_bytes) @deprecated('[3.6] use self.cw_rset.get_entity(row,col) instead') def entity(self, row, col=0): - return self.rset.get_entity(row, col) + return self.cw_rset.get_entity(row, col) @deprecated('[3.6] use self._cw.user_rql_callback') def user_rql_callback(self, args, msg=None): diff -r 401ea5e03e9d -r 6d0f22f5d31f common/mixins.py --- a/common/mixins.py Wed Sep 23 13:42:48 2009 +0200 +++ b/common/mixins.py Wed Sep 23 13:43:00 2009 +0200 @@ -155,7 +155,7 @@ def root(self): """return the root object""" - return self.req.entity_from_eid(self.path()[0]) + return self._cw.entity_from_eid(self.path()[0]) class EmailableMixIn(object): @@ -209,7 +209,7 @@ done = set() entity = view.rset.get_entity(row, col) if entity.eid in done: - msg = entity.req._('loop in %(rel)s relation (%(eid)s)') % { + msg = entity._cw._('loop in %(rel)s relation (%(eid)s)') % { 'rel': entity.tree_attribute, 'eid': entity.eid } diff -r 401ea5e03e9d -r 6d0f22f5d31f hooks/notification.py --- a/hooks/notification.py Wed Sep 23 13:42:48 2009 +0200 +++ b/hooks/notification.py Wed Sep 23 13:43:00 2009 +0200 @@ -12,7 +12,7 @@ from cubicweb import RegistryException from cubicweb.selectors import entity_implements from cubicweb.server import hook - +from cubicweb.sobjects.supervising import SupervisionMailOp class RenderAndSendNotificationView(hook.Operation): """delay rendering of notification view until precommit""" @@ -135,5 +135,5 @@ # missing required relation title = '#%s' % eid self._cw.transaction_data.setdefault('pendingchanges', []).append( - ('delete_entity', (self.eid, str(self.entity.e_schema), title))) + ('delete_entity', (self.entity.eid, str(self.entity.e_schema), title))) return True diff -r 401ea5e03e9d -r 6d0f22f5d31f server/repository.py --- a/server/repository.py Wed Sep 23 13:42:48 2009 +0200 +++ b/server/repository.py Wed Sep 23 13:43:00 2009 +0200 @@ -173,6 +173,13 @@ if config.open_connections_pools: self.open_connections_pools() + def _boostrap_hook_registry(self): + """called during bootstrap since we need the metadata hooks""" + hooksdirectory = join(CW_SOFTWARE_ROOT, 'hooks') + self.vreg.init_registration([hooksdirectory]) + self.vreg.load_file(join(hooksdirectory, 'metadata.py'), + 'cubicweb.hooks.metadata') + def open_connections_pools(self): config = self.config self._available_pools = Queue.Queue() @@ -191,10 +198,7 @@ for modname in ('__init__', 'authobjs', 'wfobjs'): self.vreg.load_file(join(etdirectory, '%s.py' % modname), 'cubicweb.entities.%s' % modname) - hooksdirectory = join(CW_SOFTWARE_ROOT, 'hooks') - self.vreg.init_registration([hooksdirectory]) - self.vreg.load_file(join(hooksdirectory, 'metadata.py'), - 'cubicweb.hooks.metadata') + self._boostrap_hook_registry() else: # test start: use the file system schema (quicker) self.warning("set fs instance'schema") diff -r 401ea5e03e9d -r 6d0f22f5d31f sobjects/supervising.py --- a/sobjects/supervising.py Wed Sep 23 13:42:48 2009 +0200 +++ b/sobjects/supervising.py Wed Sep 23 13:43:00 2009 +0200 @@ -13,7 +13,7 @@ from cubicweb.schema import display_name from cubicweb.view import Component from cubicweb.common.mail import format_mail -from cubicweb.server.hookhelper import SendMailOp +from cubicweb.server.hook import SendMailOp def filter_changes(changes): @@ -63,13 +63,13 @@ for eid in deleted: try: for change in index['delete_relation'].copy(): - if change.eidfrom == eid: + if change[1].eidfrom == eid: index['delete_relation'].remove(change) - elif change.eidto == eid: + elif change[1].eidto == eid: index['delete_relation'].remove(change) - if change.rtype == 'wf_info_for': + if change[1].rtype == 'wf_info_for': for change_ in index['delete_entity'].copy(): - if change_[1].eidfrom == change.eidfrom: + if change_[1].eidfrom == change[1].eidfrom: index['delete_entity'].remove(change_) except KeyError: break @@ -86,14 +86,14 @@ __select__ = none_rset() def recipients(self): - return self.config['supervising-addrs'] + return self._cw.vreg.config['supervising-addrs'] def subject(self): - return self.req._('[%s supervision] changes summary') % self.config.appid + return self._cw._('[%s supervision] changes summary') % self._cw.vreg.config.appid def call(self, changes): - user = self.req.actual_session().user - self.w(self.req._('user %s has made the following change(s):\n\n') + user = self._cw.actual_session().user + self.w(self._cw._('user %s has made the following change(s):\n\n') % user.login) for event, changedescr in filter_changes(changes): self.w(u'* ') @@ -106,31 +106,31 @@ 'title': entity.dc_title()} def add_entity(self, changedescr): - msg = self.req._('added %(etype)s #%(eid)s (%(title)s)') + msg = self._cw._('added %(etype)s #%(eid)s (%(title)s)') self.w(u'%s\n' % (msg % self._entity_context(changedescr.entity))) self.w(u' %s' % changedescr.entity.absolute_url()) def update_entity(self, changedescr): - msg = self.req._('updated %(etype)s #%(eid)s (%(title)s)') + msg = self._cw._('updated %(etype)s #%(eid)s (%(title)s)') self.w(u'%s\n' % (msg % self._entity_context(changedescr.entity))) # XXX print changes self.w(u' %s' % changedescr.entity.absolute_url()) def delete_entity(self, (eid, etype, title)): - msg = self.req._('deleted %(etype)s #%(eid)s (%(title)s)') - etype = display_name(self.req, etype).lower() + msg = self._cw._('deleted %(etype)s #%(eid)s (%(title)s)') + etype = display_name(self._cw, etype).lower() self.w(msg % locals()) def change_state(self, (entity, fromstate, tostate)): - msg = self.req._('changed state of %(etype)s #%(eid)s (%(title)s)') + msg = self._cw._('changed state of %(etype)s #%(eid)s (%(title)s)') self.w(u'%s\n' % (msg % self._entity_context(entity))) self.w(_(' from state %(fromstate)s to state %(tostate)s\n' % {'fromstate': _(fromstate.name), 'tostate': _(tostate.name)})) self.w(u' %s' % entity.absolute_url()) def _relation_context(self, changedescr): - _ = self.req._ - session = self.req.actual_session() + _ = self._cw._ + session = self._cw.actual_session() def describe(eid): try: return _(session.describe(eid)[0]).lower() @@ -146,11 +146,11 @@ 'toetype': describe(eidto)} def add_relation(self, changedescr): - msg = self.req._('added relation %(rtype)s from %(frometype)s #%(eidfrom)s to %(toetype)s #%(eidto)s') + msg = self._cw._('added relation %(rtype)s from %(frometype)s #%(eidfrom)s to %(toetype)s #%(eidto)s') self.w(msg % self._relation_context(changedescr)) - def delete_relation(self, eidfrom, rtype, eidto): - msg = self.req._('deleted relation %(rtype)s from %(frometype)s #%(eidfrom)s to %(toetype)s #%(eidto)s') + def delete_relation(self, changedescr): + msg = self._cw._('deleted relation %(rtype)s from %(frometype)s #%(eidfrom)s to %(toetype)s #%(eidto)s') self.w(msg % self._relation_context(changedescr)) diff -r 401ea5e03e9d -r 6d0f22f5d31f sobjects/test/unittest_notification.py --- a/sobjects/test/unittest_notification.py Wed Sep 23 13:42:48 2009 +0200 +++ b/sobjects/test/unittest_notification.py Wed Sep 23 13:43:00 2009 +0200 @@ -70,8 +70,8 @@ class StatusChangeViewsTC(CubicWebTC): def test_status_change_view(self): - req = self.session() - u = self.create_user('toto', req=req, commit=False) + req = self.request() + u = self.create_user('toto', req=req) u.fire_transition('deactivate', comment=u'yeah') self.failIf(MAILBOX) self.commit()