Added needed functionality to manage automatically internal_reference_no field
This commit is contained in:
parent
8d46bcf30b
commit
cd3b6b258a
|
@ -156,6 +156,16 @@ class DmsIncomingMail(DmsDocument):
|
|||
@grok.subscribe(IDmsIncomingMail, IObjectAddedEvent)
|
||||
def incrementIncomingMailNumber(incomingmail, event):
|
||||
""" Increment the value in registry """
|
||||
# if internal_reference_no is empty, we force the value.
|
||||
# useless if the internal_reference_no field is hidden (in this case,
|
||||
# default value must be empty to bypass validator)
|
||||
# useless to manage automatically the internal_reference_no value without user action
|
||||
if not incomingmail.internal_reference_no:
|
||||
internal_reference_no = evaluateInternalReference(incomingmail, incomingmail.REQUEST,
|
||||
'collective.dms.mailcontent.browser.settings.IDmsMailConfig.incomingmail_number',
|
||||
'collective.dms.mailcontent.browser.settings.IDmsMailConfig.incomingmail_talexpression')
|
||||
incomingmail.internal_reference_no = internal_reference_no
|
||||
incomingmail.reindexObject(idxs=('Title', internal_reference_no))
|
||||
registry = getUtility(IRegistry)
|
||||
registry['collective.dms.mailcontent.browser.settings.IDmsMailConfig.incomingmail_number'] += 1
|
||||
|
||||
|
|
|
@ -66,3 +66,15 @@ class TestDmsmailMethods(TestContentTypes):
|
|||
'collective.dms.mailcontent.browser.settings.IDmsMailConfig.incomingmail_number',
|
||||
'collective.dms.mailcontent.browser.settings.IDmsMailConfig.incomingmail_talexpression'),
|
||||
'test-in/10')
|
||||
|
||||
def test_incrementIncomingMailNumber(self):
|
||||
registry = getUtility(IRegistry)
|
||||
old_value = registry['collective.dms.mailcontent.browser.settings.IDmsMailConfig.incomingmail_number']
|
||||
imail1 = createContentInContainer(self.portal, 'dmsincomingmail', **{'internal_reference_no': '12345',
|
||||
'title': 'Test 1'})
|
||||
self.assertEquals(registry['collective.dms.mailcontent.browser.settings.IDmsMailConfig.incomingmail_number'],
|
||||
old_value+1)
|
||||
self.assertEquals(imail1.internal_reference_no, '12345')
|
||||
# we create a dmsincomingmail without internal_reference_no, it will be generated
|
||||
imail2 = createContentInContainer(self.portal, 'dmsincomingmail', **{'title': 'Test 2'})
|
||||
self.assertEquals(imail2.internal_reference_no, 'test-in/11')
|
||||
|
|
Reference in New Issue