[treeview] (inprogress) minimally working state-remembering treeview
"""various library content hooks:organization: Logilab:copyright: 2001-2008 LOGILAB S.A. (Paris, FRANCE), all rights reserved.:contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr"""__docformat__="restructuredtext en"fromcubicweb.server.hooksmanagerimportHookfromcubicweb.server.poolimportPreCommitOperationclassAddUpdateEUserHook(Hook):"""ensure user logins are stripped"""events=('before_add_entity','before_update_entity',)accepts=('EUser',)defcall(self,session,entity):if'login'inentityandentity['login']:entity['login']=entity['login'].strip()classAutoDeleteBookmark(PreCommitOperation):defprecommit_event(self):session=self.sessionifnotself.beidinsession.query_data('pendingeids',()):ifnotsession.unsafe_execute('Any X WHERE X bookmarked_by U, X eid %(x)s',{'x':self.beid},'x'):session.unsafe_execute('DELETE Bookmark X WHERE X eid %(x)s',{'x':self.beid},'x')classDelBookmarkedByHook(Hook):"""ensure user logins are stripped"""events=('after_delete_relation',)accepts=('bookmarked_by',)defcall(self,session,subj,rtype,obj):AutoDeleteBookmark(session,beid=subj)