def test_accepting_forwarding_with_successor_updated_responsibles( self, browser): inbox = create(Builder('inbox')) forwarding = create( Builder('forwarding').having(responsible=TEST_USER_ID, issuer='hugo.boss').within(inbox)) successor = accept_forwarding_with_successor( self.portal, forwarding.oguid.id, 'OK. That is something for me.', dossier=None) forwarding_resource = self.center.fetch_resource(forwarding) successor_resource = self.center.fetch_resource(successor) self.assertItemsEqual( [(u'hugo.boss', u'task_issuer')], [(subscription.watcher.actorid, subscription.role) for subscription in forwarding_resource.subscriptions]) self.assertItemsEqual( [(u'test_user_1_', u'task_responsible'), (u'inbox:org-unit-1', u'task_issuer')], [(subscription.watcher.actorid, subscription.role) for subscription in successor_resource.subscriptions])
def handleAdd(self, action): # create the dossier data, errors = self.extractData() if errors: self.status = self.formErrorsMessage return obj = self.createAndAdd(data) if obj is not None: # mark only as finished if we get the new object self._finishedAdd = True # Get a properly aq wrapped object dossier = self.context.get(obj.id) dm = getUtility(IWizardDataStorage) oguid = self.request.get('oguid') dmkey = 'accept:%s' % oguid # forwarding if dm.get(dmkey, 'is_forwarding'): if dm.get(dmkey, 'is_only_assign'): task = assign_forwarding_to_dossier( self.context, oguid, dossier, dm.get( dmkey, 'text')) IStatusMessage(self.request).addStatusMessage( _(u'The forwarding is now assigned to the new ' 'dossier'), 'info') self.request.RESPONSE.redirect( '%s/edit' % task.absolute_url()) else: task = accept_forwarding_with_successor( self.context, oguid, dm.get(dmkey, 'text'), dossier=dossier) IStatusMessage(self.request).addStatusMessage( _(u'The forwarding has been stored in the ' u'local inbox and the succesor task has been' u' created'), 'info') self.request.RESPONSE.redirect( '%s/edit' % task.absolute_url()) else: # create the successor task, accept the predecessor task = accept_task_with_successor( dossier, oguid, dm.get(dmkey, 'text')) IStatusMessage(self.request).addStatusMessage( _(u'The new dossier has been created and the task ' u'has been copied to the new dossier.'), 'info') self.request.RESPONSE.redirect(task.absolute_url())
def test_accepting_forwarding_with_successor_updated_responsibles(self, browser): inbox = create(Builder('inbox')) forwarding = create(Builder('forwarding') .having(responsible=TEST_USER_ID, issuer='hugo.boss') .within(inbox)) self.center.add_task_responsible(forwarding, TEST_USER_ID) self.center.add_task_issuer(forwarding, 'hugo.boss') successor = accept_forwarding_with_successor( self.portal, forwarding.oguid.id, 'OK. That is something for me.', dossier=None) forwarding_resource = self.center.fetch_resource(forwarding) successor_resource = self.center.fetch_resource(successor) self.assertItemsEqual( [(u'hugo.boss', u'task_issuer')], [(subscription.watcher.actorid, subscription.role) for subscription in forwarding_resource.subscriptions]) self.assertItemsEqual( [(u'test_user_1_', u'task_responsible'), (u'inbox:client1', u'task_issuer')], [(subscription.watcher.actorid, subscription.role) for subscription in successor_resource.subscriptions])
def handleAdd(self, action): # create the dossier data, errors = self.extractData() if errors: self.status = self.formErrorsMessage return obj = self.createAndAdd(data) if obj is not None: # mark only as finished if we get the new object self._finishedAdd = True # Get a properly aq wrapped object dossier = self.context.get(obj.id) dm = getUtility(IWizardDataStorage) oguid = self.request.get('oguid') dmkey = 'accept:%s' % oguid # forwarding if dm.get(dmkey, 'is_forwarding'): if dm.get(dmkey, 'is_only_assign'): task = assign_forwarding_to_dossier( self.context, oguid, dossier, dm.get( dmkey, 'text')) IStatusMessage(self.request).addStatusMessage( _(u'The forwarding is now assigned to the new ' 'dossier'), 'info') self.request.RESPONSE.redirect( '%s/edit' % task.absolute_url()) else: task = accept_forwarding_with_successor( self.context, oguid, dm.get(dmkey, 'text'), dossier=dossier) IStatusMessage(self.request).addStatusMessage( _(u'The forwarding has been stored in the ' u'local inbox and the succesor task has been' u' created'), 'info') self.request.RESPONSE.redirect( '%s/edit' % task.absolute_url()) else: # create the successor task, accept the predecessor task = accept_task_with_successor( dossier, oguid, dm.get(dmkey, 'text')) IStatusMessage(self.request).addStatusMessage( _(u'The new dossier has been created and the task ' u'has been copied to the new dossier.'), 'info') self.request.RESPONSE.redirect(task.absolute_url())
def test_successor_task_is_created_with_information_task_type(self): inbox = create(Builder('inbox')) dossier = create(Builder('dossier')) forwarding = create(Builder('forwarding') .having(responsible=TEST_USER_ID, issuer='hugo.boss') .within(inbox)) task = accept_forwarding_with_successor( self.portal, forwarding.oguid.id, 'OK, thx.', dossier=dossier) self.assertEquals('information', task.task_type)
def render(self): oguid = self.request.get('oguid') key = 'accept:%s' % oguid dm = getUtility(IWizardDataStorage) text = dm.get(key, 'text') # forwarding if dm.get(key, 'is_forwarding'): forwarding = accept_forwarding_with_successor( self.context, oguid, text) IStatusMessage(self.request).addStatusMessage( _(u'The forwarding has been stored in the local inbox'), 'info') self.request.RESPONSE.redirect(forwarding.absolute_url())
def handle_continue(self, action): data, errors = self.extractData() if not errors: oguid = self.request.get('oguid') key = 'accept:%s' % oguid dm = getUtility(IWizardDataStorage) text = dm.get(key, 'text') # forwarding if dm.get(key, 'is_forwarding'): if dm.get(key, 'is_only_assign'): transition_data = { 'text': text, 'dossier': IUUID(data['dossier'])} wftool = api.portal.get_tool('portal_workflow') task = wftool.doActionFor( Oguid.parse(oguid).resolve_object(), 'forwarding-transition-assign-to-dossier', comment=transition_data['text'], transition_params=transition_data) IStatusMessage(self.request).addStatusMessage( _(u'The forwarding is now assigned to the dossier'), 'info') self.request.RESPONSE.redirect( '%s/edit' % task.absolute_url()) else: task = accept_forwarding_with_successor( self.context, oguid, text, dossier=data['dossier']) IStatusMessage(self.request).addStatusMessage( _(u'The forwarding has been stored in the local inbox ' u'and the succesor task has been created'), 'info') self.request.RESPONSE.redirect( '%s/edit' % task.absolute_url()) # task else: task = accept_task_with_successor( data['dossier'], oguid, text) IStatusMessage(self.request).addStatusMessage( _(u'The task has been copied to the selected dossier and ' u'accepted.'), 'info') self.request.RESPONSE.redirect(task.absolute_url())
def test_accepting_and_assign_forwarding_with_successor_and__updated_responsibles(self, browser): inbox = create(Builder('inbox')) dossier = create(Builder('dossier')) forwarding = create(Builder('forwarding') .having(responsible=TEST_USER_ID, issuer='hugo.boss') .within(inbox)) self.center.add_task_responsible(forwarding, TEST_USER_ID) self.center.add_task_issuer(forwarding, 'hugo.boss') task = accept_forwarding_with_successor( self.portal, forwarding.oguid.id, 'OK. That is something for me.', dossier=dossier) forwarding_resource = self.center.fetch_resource(forwarding) task_resource = self.center.fetch_resource(task) self.assertItemsEqual( ['hugo.boss'], [watcher.actorid for watcher in forwarding_resource.watchers]) self.assertItemsEqual( [TEST_USER_ID], [watcher.actorid for watcher in task_resource.watchers])
def handle_continue(self, action): data, errors = self.extractData() if not errors: oguid = self.request.get('oguid') key = 'accept:%s' % oguid dm = getUtility(IWizardDataStorage) text = dm.get(key, 'text') # forwarding if dm.get(key, 'is_forwarding'): if dm.get(key, 'is_only_assign'): task = assign_forwarding_to_dossier( self.context, oguid, data['dossier'], text) IStatusMessage(self.request).addStatusMessage( _(u'The forwarding is now assigned to the dossier'), 'info') self.request.RESPONSE.redirect( '%s/edit' % task.absolute_url()) else: task = accept_forwarding_with_successor( self.context, oguid, text, dossier=data['dossier']) IStatusMessage(self.request).addStatusMessage( _(u'The forwarding has been stored in the local inbox ' u'and the succesor task has been created'), 'info') self.request.RESPONSE.redirect( '%s/edit' % task.absolute_url()) # task else: task = accept_task_with_successor( data['dossier'], oguid, text) IStatusMessage(self.request).addStatusMessage( _(u'The task has been copied to the selected dossier and ' u'accepted.'), 'info') self.request.RESPONSE.redirect(task.absolute_url())
def handle_continue(self, action): data, errors = self.extractData() if not errors: oguid = self.request.get('oguid') key = 'accept:%s' % oguid dm = getUtility(IWizardDataStorage) text = dm.get(key, 'text') # forwarding if dm.get(key, 'is_forwarding'): if dm.get(key, 'is_only_assign'): task = assign_forwarding_to_dossier( self.context, oguid, data['dossier'], text) IStatusMessage(self.request).addStatusMessage( _(u'The forwarding is now assigned to the dossier'), 'info') self.request.RESPONSE.redirect( '%s/edit' % task.absolute_url()) else: task = accept_forwarding_with_successor( self.context, oguid, text, dossier=data['dossier']) IStatusMessage(self.request).addStatusMessage( _(u'The forwarding has been stored in the local inbox ' u'and the succesor task has been created'), 'info') self.request.RESPONSE.redirect( '%s/edit' % task.absolute_url()) # task else: task = accept_task_with_successor( data['dossier'], oguid, text) IStatusMessage(self.request).addStatusMessage( _(u'The task has been copied to the selected dossier and ' u'accepted.'), 'info') self.request.RESPONSE.redirect(task.absolute_url())
def test_accepting_and_assign_forwarding_with_successor_and__updated_responsibles( self, browser): inbox = create(Builder('inbox')) dossier = create(Builder('dossier')) forwarding = create( Builder('forwarding').having(responsible=TEST_USER_ID, issuer='hugo.boss').within(inbox)) self.center.add_task_responsible(forwarding, TEST_USER_ID) self.center.add_task_issuer(forwarding, 'hugo.boss') task = accept_forwarding_with_successor( self.portal, forwarding.oguid.id, 'OK. That is something for me.', dossier=dossier) forwarding_resource = self.center.fetch_resource(forwarding) task_resource = self.center.fetch_resource(task) self.assertItemsEqual( ['hugo.boss'], [watcher.actorid for watcher in forwarding_resource.watchers]) self.assertItemsEqual( [TEST_USER_ID], [watcher.actorid for watcher in task_resource.watchers])
def test_accept_forwarding_with_successor_with_dossier(self): create_client('plone') set_current_client_id(self.portal, 'plone') # create fake predecessor predecessor = Task(FAKE_INTID, 'client2') predecessor.physical_path = 'eingangskorb/forwarding-1' predecessor.issuer = 'testuser2' predecessor.responsible_client = 'plone' predecessor.responsible = TEST_USER_ID predecessor.deadline = datetime.now() remote_request = self.mocker.replace('opengever.ogds.base.utils.remote_request') self.expect(remote_request( 'client2', '@@transporter-extract-object-json', path='eingangskorb/forwarding-1', data={}, headers={})).result(FakeResponse(FORWARDING_EXTRACTION)) self.expect(remote_request( 'client2', '@@task-documents-extract', path='eingangskorb/forwarding-1', data={'documents': 'null'}, headers={})).result(FakeResponse(DOCUMENT_EXTRACTION)) # TODO replace any with the realy expected data self.expect(remote_request( 'client2', '@@task-responses-extract', path='eingangskorb/forwarding-1', data=ANY)).result(FakeResponse('[]')) self.expect(remote_request( 'client2', '@@store_forwarding_in_yearfolder', path='eingangskorb/forwarding-1', # data={'response_text': 'This is a message', # 'successor_oguid': u'plone:1231066935', # 'transition': 'forwarding-transition-accept'} data=ANY, )).result(FakeResponse('OK')) self.replay() wft = getToolByName(self.portal, 'portal_workflow') intids = getUtility(IIntIds) session = Session() session.add(predecessor) accept_forwarding_with_successor( self.portal, 'client2:%s' % FAKE_INTID, u'This is a message', dossier=self.dossier) # CHECKS # --------------------- # yearfolder: current_year = datetime.now().year yearfolder = self.inbox.get(str(current_year), None) self.assertTrue(yearfolder) self.assertEquals(yearfolder.title, u'Closed %s' % current_year) # forwarding ... # is stored in the yearfolder forwarding = yearfolder.get('forwarding-1', None) self.assertTrue(forwarding) # and closed self.assertEquals(wft.getInfoFor(forwarding, 'review_state'), 'forwarding-state-closed') # attributes are correctly moved self.assertEquals(forwarding.responsible, u'inbox:plone') # the issuer should be changed to the local inbox group self.assertEquals(forwarding.issuer, u'inbox:plone') # also the response is correctly added response = IResponseContainer(forwarding)[0] self.assertEquals(response.transition, 'forwarding-transition-accept') # task (succesor of the forwarding) task = self.dossier.get('task-1') self.assertTrue(task) self.assertEquals( ISuccessorTaskController(forwarding).get_successors()[0].int_id, intids.getId(task)) # the succesor link is also in the response correctly self.assertEquals( response.successor_oguid, ISuccessorTaskController(task).get_oguid())
def handleAdd(self, action): # create the dossier data, errors = self.extractData() if errors: self.status = self.formErrorsMessage return obj = self.createAndAdd(data) if obj is not None: # mark only as finished if we get the new object self._finishedAdd = True # Get a properly aq wrapped object dossier = self.context.get(obj.id) dm = getUtility(IWizardDataStorage) oguid = self.request.get('oguid') dmkey = 'accept:%s' % oguid # forwarding if dm.get(dmkey, 'is_forwarding'): if dm.get(dmkey, 'is_only_assign'): transition_data = { 'text': dm.get(dmkey, 'text'), 'dossier': IUUID(dossier)} wftool = api.portal.get_tool('portal_workflow') task = wftool.doActionFor( Oguid.parse(oguid).resolve_object(), 'forwarding-transition-assign-to-dossier', comment=transition_data['text'], transition_params=transition_data) IStatusMessage(self.request).addStatusMessage( _(u'The forwarding is now assigned to the new ' 'dossier'), 'info') self.request.RESPONSE.redirect( '%s/edit' % task.absolute_url()) else: task = accept_forwarding_with_successor( self.context, oguid, dm.get(dmkey, 'text'), dossier=dossier) IStatusMessage(self.request).addStatusMessage( _(u'The forwarding has been stored in the ' u'local inbox and the succesor task has been' u' created'), 'info') self.request.RESPONSE.redirect( '%s/edit' % task.absolute_url()) else: # create the successor task, accept the predecessor task = accept_task_with_successor( dossier, oguid, dm.get(dmkey, 'text')) IStatusMessage(self.request).addStatusMessage( _(u'The new dossier has been created and the task ' u'has been copied to the new dossier.'), 'info') self.request.RESPONSE.redirect(task.absolute_url())