move newly created documents from folder to general bucket (#3874)

This commit is contained in:
Frédéric Péters 2013-11-29 12:09:21 +01:00
parent 130f701d65
commit 96ac0c4c41
2 changed files with 40 additions and 0 deletions

View File

@ -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)

View File

@ -26,6 +26,19 @@
<property name="filter_content_types">True</property>
<property name="allowed_content_types" purge="False">
<element value="pfwbgedlink"/>
<element value="dmsincomingmail"/>
<element value="dmsoutgoingmail"/>
<element value="pfwb.medicalcertificate"/>
<element value="pfwb.pressrelease"/>
<element value="pfwb.boarddecision"/>
<element value="pfwb.greenboarddecision"/>
<element value="pfwb.agenda"/>
<element value="pfwb.insurancedocument"/>
<element value="pfwb.invoice"/>
<element value="pfwb.noteforboard"/>
<element value="pfwb.internalnote"/>
<element value="pfwb.minutes"/>
<element value="pfwb.boardminutes"/>
</property>
<!-- DO NOT use a model_source or it removes manually added fields while reapplying the profile -->