diff --git a/src/pfwbged/folder/folder.py b/src/pfwbged/folder/folder.py index 5968a59..ac65802 100644 --- a/src/pfwbged/folder/folder.py +++ b/src/pfwbged/folder/folder.py @@ -17,15 +17,24 @@ import plone.app.contenttypes.interfaces from plone.dexterity.interfaces import IDexterityContainer from plone.app.contentlisting.interfaces import IContentListingObject +from plone import api + from plone.dexterity.browser.view import DefaultView from collective.z3cform.rolefield.field import LocalRolesToPrincipals from collective.dms.basecontent.widget import AjaxChosenMultiFieldWidget from plone.autoform import directives as form +from zope.app.intid.interfaces import IIntIds +from z3c.relationfield import RelationValue +from zope.lifecycleevent.interfaces import IObjectAddedEvent + + from pfwbged.collection.searchview import ResultsTable from collective.dms.thesaurus.keywordsfield import ThesaurusKeywords +from collective.dms.basecontent.dmsdocument import IDmsDocument + from .link import ILink @@ -109,3 +118,21 @@ class FolderViewlet(grok.Viewlet, ClassifiedItems): class FolderView(DefaultView, ClassifiedItems): pass + + +@grok.subscribe(IDmsDocument, IObjectAddedEvent) +def move_to_proper_location(context, event): + folder = context.getParentNode() + if folder.id == 'documents' and aq_parent(folder).portal_type == 'Plone Site': + # the document is already in the right place, good + return + + # add a link to classifying folder + intids = component.getUtility(IIntIds) + link = context.invokeFactory('pfwbgedlink', 'pfwbgedlink-0', + folder=RelationValue(intids.getId(folder))) + + # then move the document to the general documents folder + clipboard = folder.manage_cutObjects([context.id]) + documents_folder = api.portal.get().documents + result = documents_folder.manage_pasteObjects(clipboard) diff --git a/src/pfwbged/folder/profiles/default/types/pfwbgedfolder.xml b/src/pfwbged/folder/profiles/default/types/pfwbgedfolder.xml index 149f7bb..2f61257 100644 --- a/src/pfwbged/folder/profiles/default/types/pfwbgedfolder.xml +++ b/src/pfwbged/folder/profiles/default/types/pfwbgedfolder.xml @@ -26,6 +26,19 @@ True + + + + + + + + + + + + +