move newly created documents from folder to general bucket (#3874)
This commit is contained in:
parent
130f701d65
commit
96ac0c4c41
|
@ -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)
|
||||
|
|
|
@ -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 -->
|
||||
|
|
Reference in New Issue