diff --git a/bt5/erp5_credential/SkinTemplateItem/portal_skins/erp5_credential/CredentialRequest_checkLoginAvailability.xml b/bt5/erp5_credential/SkinTemplateItem/portal_skins/erp5_credential/CredentialRequest_checkLoginAvailability.xml index 4f0be4c72fd5c68cdfaf6a3d139b3eb8181ed447..2739a7122593dcc8fb8cfcc4222013abe46d6ff4 100644 --- a/bt5/erp5_credential/SkinTemplateItem/portal_skins/erp5_credential/CredentialRequest_checkLoginAvailability.xml +++ b/bt5/erp5_credential/SkinTemplateItem/portal_skins/erp5_credential/CredentialRequest_checkLoginAvailability.xml @@ -57,6 +57,13 @@ Parameters:\n value -- field value (string)\n REQUEST -- standard REQUEST variable"""\n \n +if value:\n + # Same tag is used as in Document.Person._setReference, in order to protect against\n + # concurrency between Credential Request and Person object too\n + tag = \'Person_setReference_%s\' % value.encode(\'hex\')\n + if context.getPortalObject().portal_activities.countMessageWithTag(tag):\n + return False\n +\n def getRealContext():\n if not REQUEST:\n return context\n diff --git a/bt5/erp5_credential/SkinTemplateItem/portal_skins/erp5_credential/ERP5Site_newCredentialRequest.xml b/bt5/erp5_credential/SkinTemplateItem/portal_skins/erp5_credential/ERP5Site_newCredentialRequest.xml index b1bca901b3a795d9237fbfd33987bf1afa499b17..87e417a4d70d9eb20e5e400d19e1ed1f86021850 100644 --- a/bt5/erp5_credential/SkinTemplateItem/portal_skins/erp5_credential/ERP5Site_newCredentialRequest.xml +++ b/bt5/erp5_credential/SkinTemplateItem/portal_skins/erp5_credential/ERP5Site_newCredentialRequest.xml @@ -90,6 +90,9 @@ credential_request = module.newContent(\n date_of_birth=date_of_birth)\n \n credential_request.setCategoryList(category_list)\n +# Same tag is used as in Document.Person._setReference, in order to protect against\n +# concurrency between Credential Request and Person object too\n +credential_request.reindexObject(activate_kw=dict(tag=\'Person_setReference_%s\' % reference.encode(\'hex\')))\n \n #We attach the current user to the credential request if not anonymous\n if not context.portal_membership.isAnonymousUser():\n diff --git a/bt5/erp5_credential/bt/revision b/bt5/erp5_credential/bt/revision index e8930b6df94cf1501f2663918ee3ceb4d40c709a..55f04f2ae2c5d17c6b2a2616018b96f869677221 100644 --- a/bt5/erp5_credential/bt/revision +++ b/bt5/erp5_credential/bt/revision @@ -1 +1 @@ -364 \ No newline at end of file +365 \ No newline at end of file