Commit 27238127 authored by Jérome Perrin's avatar Jérome Perrin

pdm/invoicing: fix portal_status_message translations in jumps

Try to find a full message translation before falling back to
generic translation using ${portal_type}

Most of jump methods were already doing this correctly, these were some
exceptions.
parent 243a9510
...@@ -36,7 +36,8 @@ if related_order_uid_list: ...@@ -36,7 +36,8 @@ if related_order_uid_list:
keep_items=dict(reset=1, keep_items=dict(reset=1,
uid=related_order_uid_list)) uid=related_order_uid_list))
return context.Base_redirect(form_id, return context.Base_redirect(form_id, keep_items=dict(
keep_items=dict(portal_status_message= portal_status_message=translateString(
translateString('No ${portal_type} related.', 'No %s Related' % order_type,
mapping=dict(portal_type=translateString(order_type))))) default=translateString('No ${portal_type} related.',
mapping={'portal_type': translateString(order_type)}))))
...@@ -37,7 +37,8 @@ if related_invoice_uid_list: ...@@ -37,7 +37,8 @@ if related_invoice_uid_list:
keep_items=dict(reset=1, keep_items=dict(reset=1,
uid=related_invoice_uid_list)) uid=related_invoice_uid_list))
return context.Base_redirect(form_id, return context.Base_redirect(form_id, keep_items=dict(
keep_items=dict(portal_status_message= portal_status_message=translateString(
translateString('No ${portal_type} related.', 'No %s Related' % invoice_type,
mapping=dict(portal_type=translateString(invoice_type))))) default=translateString('No ${portal_type} related.',
mapping={'portal_type': translateString(invoice_type)}))))
...@@ -25,22 +25,24 @@ related_object_list = context.getRelatedValueList( ...@@ -25,22 +25,24 @@ related_object_list = context.getRelatedValueList(
portal_type=portal_type) portal_type=portal_type)
if not related_object_list: if not related_object_list:
message = portal.Base_translateString('No ${portal_type} related.', return context.Base_redirect(form_id, keep_items=dict(
mapping={'portal_type': portal_type}) portal_status_message=portal.Base_translateString(
'No %s Related' % portal_type,
return context.Base_redirect(keep_items=dict(portal_status_message=message)) default=portal.Base_translateString('No ${portal_type} related.',
mapping={'portal_type': portal.Base_translateString(portal_type)}))))
elif len(related_object_list) == 1: elif len(related_object_list) == 1:
related_object = related_object_list[0] related_object = related_object_list[0]
message = portal.Base_translateString( return related_object.Base_redirect(keep_items=dict(
'${this_portal_type} related to ${that_portal_type}: ${that_title}.', reset=1,
portal_status_message=portal.Base_translateString(
# first, try to get a full translated message with portal types
"%s related to %s." % (related_object.getPortalType(), context.getPortalType()),
# if not found, fallback to generic translation
default=portal.Base_translateString('${this_portal_type} related to ${that_portal_type} : ${that_title}.',
mapping={"this_portal_type": related_object.getTranslatedPortalType(), mapping={"this_portal_type": related_object.getTranslatedPortalType(),
"that_portal_type": context.getTranslatedPortalType(), "that_portal_type": context.getTranslatedPortalType(),
"that_title": context.getTitleOrId()}) "that_title": context.getTitleOrId()}))))
return related_object.Base_redirect(
keep_items=dict(reset=1,
portal_status_message=message))
else: else:
# XXX: Use POST rather than GET because of GET URL length limitation? # XXX: Use POST rather than GET because of GET URL length limitation?
......
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
</item> </item>
<item> <item>
<key> <string>_params</string> </key> <key> <string>_params</string> </key>
<value> <string>portal_type</string> </value> <value> <string>portal_type, form_id=\'\'</string> </value>
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
......
...@@ -4,19 +4,24 @@ transformation_value_list = context.getRelatedValueList(checked_permission='View ...@@ -4,19 +4,24 @@ transformation_value_list = context.getRelatedValueList(checked_permission='View
portal_type=('Transformation', portal_type=('Transformation',
'Transformation Transformed Resource')) 'Transformation Transformed Resource'))
if len(transformation_value_list) == 0: if len(transformation_value_list) == 0:
return context.Base_redirect('view', return context.Base_redirect(form_id,
keep_items=dict(portal_status_message=translateString('No Transformation related.'))) keep_items=dict(portal_status_message=translateString('No Transformation related.')))
elif len(transformation_value_list) == 1: elif len(transformation_value_list) == 1:
related_object = transformation_value_list[0] related_object = transformation_value_list[0]
if related_object.getPortalType() == 'Transformation Transformed Resource': if related_object.getPortalType() == 'Transformation Transformed Resource':
related_object = related_object.getParentValue() related_object = related_object.getParentValue()
return related_object.Base_redirect(
'view', return related_object.Base_redirect(keep_items=dict(
keep_items=dict(reset=1, reset=1,
portal_status_message=translateString('${this_portal_type} related to ${that_portal_type} : ${that_title}.', portal_status_message=portal.Base_translateString(
# first, try to get a full translated message with portal types
"%s related to %s." % (related_object.getPortalType(), context.getPortalType()),
# if not found, fallback to generic translation
default=translateString('${this_portal_type} related to ${that_portal_type} : ${that_title}.',
mapping={"this_portal_type": related_object.getTranslatedPortalType(), mapping={"this_portal_type": related_object.getTranslatedPortalType(),
"that_portal_type": context.getTranslatedPortalType(), "that_portal_type": context.getTranslatedPortalType(),
"that_title": context.getTitleOrId()}))) "that_title": context.getTitleOrId()}))))
else: else:
transformation_uid_list = [] transformation_uid_list = []
for value in transformation_value_list: for value in transformation_value_list:
......
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
</item> </item>
<item> <item>
<key> <string>_params</string> </key> <key> <string>_params</string> </key>
<value> <string></string> </value> <value> <string>form_id=\'\'</string> </value>
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment