From b49db35884fd20b04c1bff0bc6a45017d860f7da Mon Sep 17 00:00:00 2001 From: Nicolas Wavrant Date: Fri, 30 Mar 2018 15:55:57 +0000 Subject: [PATCH 01/12] erp5_crm: introduce a batch_mode in Event_createResponse --- .../erp5_crm/Event_createResponse.py | 18 +++++++++++++----- .../erp5_crm/Event_createResponse.xml | 2 +- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Event_createResponse.py b/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Event_createResponse.py index 3d3de845556..439e8c43022 100644 --- a/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Event_createResponse.py +++ b/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Event_createResponse.py @@ -20,17 +20,25 @@ if response_event_notification_message: substitution_method_parameter_dict=dict(reply_body=context.getReplyBody(), reply_subject=context.getReplySubject())) -message = portal.Base_translateString('Response Created.') +def redirect(obj, view): + if batch_mode: + return response + else: + return obj.Base_redirect( + view, + keep_items={'portal_status_message': portal.Base_translateString('Response Created.')} + ) + if response_workflow_action == 'send': response.start() - return context.Base_redirect(form_id, keep_items={'portal_status_message': message}) + return redirect(context, form_id) elif response_workflow_action == 'plan': response.plan() - return context.Base_redirect(form_id, keep_items={'portal_status_message': message}) + return redirect(context, form_id) elif response_workflow_action == 'deliver': response.deliver() - return response.Base_redirect('view', keep_items={'portal_status_message': message}) + return redirect(response, 'view') elif response_workflow_action == 'draft': - return response.Base_redirect('view', keep_items={'portal_status_message': message}) + return redirect(response, 'view') else: raise NotImplementedError('Do not know what to do') diff --git a/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Event_createResponse.xml b/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Event_createResponse.xml index d613df3488a..6ec45fb7624 100644 --- a/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Event_createResponse.xml +++ b/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Event_createResponse.xml @@ -50,7 +50,7 @@ _params - form_id=None, response_event_portal_type=None, response_event_resource=None, response_event_title=None, response_event_text_content=None, response_event_start_date=None, response_workflow_action=None, response_event_notification_message=None, default_destination=None, response_event_content_type=None, **kw + form_id=None, response_event_portal_type=None, response_event_resource=None, response_event_title=None, response_event_text_content=None, response_event_start_date=None, response_workflow_action=None, response_event_notification_message=None, default_destination=None, response_event_content_type=None, batch_mode=False, **kw id -- 2.30.9 From 7dd0b1739d7c7e5e1b564d301cc45636b2b43e36 Mon Sep 17 00:00:00 2001 From: Nicolas Wavrant Date: Thu, 5 Apr 2018 11:05:30 +0200 Subject: [PATCH 02/12] erp5_interface_post: do not aggregate post if event is temporary --- .../erp5_interface_post/Event_createPostMessage.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/bt5/erp5_interface_post/SkinTemplateItem/portal_skins/erp5_interface_post/Event_createPostMessage.py b/bt5/erp5_interface_post/SkinTemplateItem/portal_skins/erp5_interface_post/Event_createPostMessage.py index 90efbb46ab8..98e364a136b 100644 --- a/bt5/erp5_interface_post/SkinTemplateItem/portal_skins/erp5_interface_post/Event_createPostMessage.py +++ b/bt5/erp5_interface_post/SkinTemplateItem/portal_skins/erp5_interface_post/Event_createPostMessage.py @@ -11,6 +11,7 @@ message_post = post_message_post_module.newContent( message_post.prepareExport() -event_aggregate_list = context.getAggregateList() -event_aggregate_list.append(message_post.getRelativeUrl()) -context.setAggregateList(event_aggregate_list) +if not context.isTempObject(): + event_aggregate_list = context.getAggregateList() + event_aggregate_list.append(message_post.getRelativeUrl()) + context.setAggregateList(event_aggregate_list) -- 2.30.9 From c185a645a109eb00b6f9231006837e0b5331ba0c Mon Sep 17 00:00:00 2001 From: Nicolas Wavrant Date: Mon, 16 Apr 2018 09:34:33 +0200 Subject: [PATCH 03/12] erp5_l10n_fr: add translations for erp5_ui related to presence, leave and posts objects --- .../fr/erp5_ui/translation.po | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/bt5/erp5_l10n_fr/MessageTranslationTemplateItem/fr/erp5_ui/translation.po b/bt5/erp5_l10n_fr/MessageTranslationTemplateItem/fr/erp5_ui/translation.po index 1cedc428500..626186501c2 100644 --- a/bt5/erp5_l10n_fr/MessageTranslationTemplateItem/fr/erp5_ui/translation.po +++ b/bt5/erp5_l10n_fr/MessageTranslationTemplateItem/fr/erp5_ui/translation.po @@ -883,6 +883,9 @@ msgstr "Tous critères (AND)" msgid "All needed information is collected." msgstr "Les informations nécessaires ont été collectées" +msgid "All work caught up!" +msgstr "La liste de travail est vide !" + msgid "Alphabetical" msgstr "Alphanumérique" @@ -1291,6 +1294,9 @@ msgstr "Archivé" msgid "Archived [state in document_publication_workflow]" msgstr "Archivé" +msgid "Archived [state in interface_post_workflow]" +msgstr "Archivé" + msgid "Area" msgstr "Zone" @@ -1447,6 +1453,9 @@ msgstr "Au moins une section doit être définie." msgid "Attach Document" msgstr "Attacher un document" +msgid "Attachment" +msgstr "Pièce jointe" + msgid "Attachments" msgstr "Fichiers joints" @@ -5350,15 +5359,27 @@ msgstr "Explorer la Liste des Résultats de Recherche" msgid "Export" msgstr "Exporter" +msgid "Export Acknowledged [state in interface_post_workflow]" +msgstr "Export pris en compte" + msgid "Export Business Template" msgstr "Exporter le Business Template" +msgid "Export Failed [state in interface_post_workflow]" +msgstr "Export échoué" + msgid "Export Format" msgstr "Format de l'export" +msgid "Export Letter Posts" +msgstr "Exporter les Posts de lettre" + msgid "Export Mode" msgstr "Mode d'export" +msgid "Export Prepared" +msgstr "Export préparé" + msgid "Export Print" msgstr "Imprimer facture exportation" @@ -5371,6 +5392,9 @@ msgstr "Exporter les conditions au format PO" msgid "Export to Spreadsheet" msgstr "Exporter" +msgid "Exported [state in interface_post_workflow]" +msgstr "Exporté" + msgid "Express Support" msgstr "Assistance" @@ -6163,15 +6187,24 @@ msgstr "Importer un fichier CSV" msgid "Import Categories" msgstr "Importer des catégories" +msgid "Import Failed [state in interface_post_workflow]" +msgstr "Import échoué" + msgid "Import OpenOffice Document" msgstr "Importer un document OpenOffice" msgid "Import Persons from OpenOffice Calc" msgstr "Importer des personnes depuis OpenOffice calc" +msgid "Import Prepared [state in interface_post_workflow]" +msgstr "Import préparé" + msgid "Import Signature" msgstr "Importer sa signature" +msgid "Imported [state in interface_post_workflow]" +msgstr "Importé" + msgid "In Payroll, there is generaly some taxes for the employee, and for the employer. This term is used to speak about the rate applied to the base that permit to calculate the amount of the tax paid by the employee." msgstr "Dans la paye, il y a généralement des taxes pour l'employé et pour l'employeur. Ce terme est utilisé pour désigner le taux appliqué sur la base qui permet de déterminer le montant de la taxe payé par l'employeur." @@ -6484,6 +6517,15 @@ msgstr "Conditions de vente interne" msgid "International Form" msgstr "Mode international" +msgid "Internet Message Post" +msgstr "Post de message internet" + +msgid "Internet Message Post Module" +msgstr "Modules des Posts de message internet" + +msgid "Internet Message Posts" +msgstr "Posts de message internet" + msgid "Intervation Date" msgstr "Date d'intervention" @@ -13960,6 +14002,9 @@ msgstr "Annuler" msgid "Undo Reconciliation" msgstr "Défaire le rapprochement" +msgid "Unexported [state in interface_post_workflow]" +msgstr "Non exporté" + msgid "Ungrouping" msgstr "Délettrage" @@ -14935,6 +14980,36 @@ msgstr "index utilisé pour classer les pages web." msgid "instructions in order to explain how to use the resource" msgstr "Instructions qui expliquent comment utiliser une ressource." +msgid "Leave Request" +msgstr "Demande d'absence" + +msgid "Leave Request Module" +msgstr "Module des demandes d'absence" + +msgid "Leave Request Period" +msgstr "Période d'absence" + +msgid "Leave Request Periods" +msgstr "Périodes d'absence" + +msgid "Leave Requests" +msgstr "Demandes d'absence" + +msgid "Leaves" +msgstr "Absences" + +msgid "Letter Post" +msgstr "Post de lettre" + +msgid "Letter Post Module" +msgstr "Module des Posts de lettre" + +msgid "Letter Post related to Letter." +msgstr "Post de lettre lié à la Lettre" + +msgid "Letter Posts" +msgstr "Posts de lettre" + msgid "language" msgstr "langue" @@ -14989,6 +15064,15 @@ msgstr "Indication opératoire" msgid "portal type" msgstr "la règle qu'il faut appliquer à la taxe." +msgid "Presence Request" +msgstr "Demande de présence" + +msgid "Presence Request Module" +msgstr "Module des demandes de présence" + +msgid "Presence Requests" +msgstr "Demandes de présence" + msgid "preview" msgstr "Prévisualiser" -- 2.30.9 From 8e36b94cdfa0f8ec4cf344cba4cd0f779d4102a3 Mon Sep 17 00:00:00 2001 From: Nicolas Wavrant Date: Wed, 25 Apr 2018 02:55:03 -0700 Subject: [PATCH 04/12] erp5_l10n_fr: add translation used in renderjs UI --- .../MessageTranslationTemplateItem/fr/erp5_ui/translation.po | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bt5/erp5_l10n_fr/MessageTranslationTemplateItem/fr/erp5_ui/translation.po b/bt5/erp5_l10n_fr/MessageTranslationTemplateItem/fr/erp5_ui/translation.po index 626186501c2..d2d3762f986 100644 --- a/bt5/erp5_l10n_fr/MessageTranslationTemplateItem/fr/erp5_ui/translation.po +++ b/bt5/erp5_l10n_fr/MessageTranslationTemplateItem/fr/erp5_ui/translation.po @@ -5068,6 +5068,9 @@ msgstr "Activé" msgid "Enables a preference" msgstr "Cette action permet d'activer une préférence." +msgid "Encountered an unknown error. Try to resubmit." +msgstr "Une erreur inconnue a été rencontrée. Vous pouvez essayer de soumettre le formulaire à nouveau." + msgid "End" msgstr "Fin" -- 2.30.9 From f95f28a80b5bf912dfaf20d1e6b7d1d596ac9465 Mon Sep 17 00:00:00 2001 From: Nicolas Wavrant Date: Thu, 26 Apr 2018 05:45:44 -0700 Subject: [PATCH 05/12] erp5_payment_mean: mark action as renderjs compatible --- .../remove_from_payment_transaction_group_action.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bt5/erp5_payment_mean/ActionTemplateItem/portal_types/Payment%20Transaction/remove_from_payment_transaction_group_action.xml b/bt5/erp5_payment_mean/ActionTemplateItem/portal_types/Payment%20Transaction/remove_from_payment_transaction_group_action.xml index b5ca9f3f8d4..8ff728f7823 100644 --- a/bt5/erp5_payment_mean/ActionTemplateItem/portal_types/Payment%20Transaction/remove_from_payment_transaction_group_action.xml +++ b/bt5/erp5_payment_mean/ActionTemplateItem/portal_types/Payment%20Transaction/remove_from_payment_transaction_group_action.xml @@ -16,13 +16,13 @@ categories - action_type/object_action + action_type/object_jio_action category - object_action + object_jio_action condition -- 2.30.9 From f1846727555fb3a86d2fcd530fbeb6e0c05c62c3 Mon Sep 17 00:00:00 2001 From: Nicolas Wavrant Date: Mon, 30 Apr 2018 06:03:49 -0700 Subject: [PATCH 06/12] erp5_hal_json_style: translate error messages of form fields --- .../portal_skins/erp5_hal_json_style/ERP5Document_getHateoas.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bt5/erp5_hal_json_style/SkinTemplateItem/portal_skins/erp5_hal_json_style/ERP5Document_getHateoas.py b/bt5/erp5_hal_json_style/SkinTemplateItem/portal_skins/erp5_hal_json_style/ERP5Document_getHateoas.py index 76071d4b183..fe507d2a096 100644 --- a/bt5/erp5_hal_json_style/SkinTemplateItem/portal_skins/erp5_hal_json_style/ERP5Document_getHateoas.py +++ b/bt5/erp5_hal_json_style/SkinTemplateItem/portal_skins/erp5_hal_json_style/ERP5Document_getHateoas.py @@ -1089,7 +1089,7 @@ def renderForm(traversed_document, form, response_dict, key_prefix=None, selecti try: response_dict[field.id] = renderField(traversed_document, field, form, key_prefix=key_prefix, selection_params=selection_params) if field_errors.has_key(field.id): - response_dict[field.id]["error_text"] = field_errors[field.id].error_text + response_dict[field.id]["error_text"] = Base_translateString(field_errors[field.id].error_text) except AttributeError as error: # Do not crash if field configuration is wrong. log("Field {} rendering failed because of {!s}".format(field.id, error), level=800) -- 2.30.9 From 4c6cc7755895b01f0fac84940ad9866bf3a69292 Mon Sep 17 00:00:00 2001 From: Nicolas Wavrant Date: Wed, 2 May 2018 10:33:00 +0200 Subject: [PATCH 07/12] erp5_officejs: allow customer to pass custom parameters to echarts --- .../web_page_module/gadget_field_graph_echarts_js.js | 5 +++++ .../web_page_module/gadget_field_graph_echarts_js.xml | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_field_graph_echarts_js.js b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_field_graph_echarts_js.js index 04b5236781a..1e59e854d29 100644 --- a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_field_graph_echarts_js.js +++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_field_graph_echarts_js.js @@ -129,6 +129,11 @@ graph_data_and_parameter.series = dataset_list; + // overwrite defaults with custom extra options + for (var parameter in (configuration_dict.extra_param || [])) { + graph_data_and_parameter[parameter] = configuration_dict.extra_param[parameter]; + } + return graph_data_and_parameter; }; ///////////////////////////////////////////////////////////////// diff --git a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_field_graph_echarts_js.xml b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_field_graph_echarts_js.xml index 973558cf0a2..ce8a3a97787 100644 --- a/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_field_graph_echarts_js.xml +++ b/bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_field_graph_echarts_js.xml @@ -228,7 +228,7 @@ actor - zope + nicolas.wavrant comment @@ -242,7 +242,7 @@ serial - 961.52409.12026.48179 + 966.58845.46135.39509 state @@ -260,8 +260,8 @@ - 1504517195.47 - UTC + 1525249668.09 + GMT+2 -- 2.30.9 From 5439d0ce08b7c02c6c9e9ef02779b0d348ec3f29 Mon Sep 17 00:00:00 2001 From: Nicolas Wavrant Date: Fri, 4 May 2018 15:31:20 +0200 Subject: [PATCH 08/12] erp5_crm: display CRM "preview" view on Letters only if erp5_interface_post isn't installed --- .../portal_types/Letter/preview.xml | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/bt5/erp5_crm/ActionTemplateItem/portal_types/Letter/preview.xml b/bt5/erp5_crm/ActionTemplateItem/portal_types/Letter/preview.xml index 79bd9c65c56..78656febbfd 100644 --- a/bt5/erp5_crm/ActionTemplateItem/portal_types/Letter/preview.xml +++ b/bt5/erp5_crm/ActionTemplateItem/portal_types/Letter/preview.xml @@ -26,11 +26,13 @@ condition - + + AAAAAAAAAAM= + description - + Default preview action for Events icon @@ -76,4 +78,17 @@ + + + + + + + + text + python: getattr(context.getPortalObject(), \'letter_message_post_module\', None) is None + + + + -- 2.30.9 From 83a436257d7d8c41b890484b68eb51e7e98d6778 Mon Sep 17 00:00:00 2001 From: Nicolas Wavrant Date: Fri, 4 May 2018 15:34:06 +0200 Subject: [PATCH 09/12] erp5_interface_post: Letter' s preview should display Letter Post --- .../portal_types/Letter/letter_preview.xml | 94 +++++++++++++++++++ .../bt/template_action_path_list | 1 + 2 files changed, 95 insertions(+) create mode 100644 bt5/erp5_interface_post/ActionTemplateItem/portal_types/Letter/letter_preview.xml diff --git a/bt5/erp5_interface_post/ActionTemplateItem/portal_types/Letter/letter_preview.xml b/bt5/erp5_interface_post/ActionTemplateItem/portal_types/Letter/letter_preview.xml new file mode 100644 index 00000000000..eecd1f0c1e8 --- /dev/null +++ b/bt5/erp5_interface_post/ActionTemplateItem/portal_types/Letter/letter_preview.xml @@ -0,0 +1,94 @@ + + + + + + + + + + action + + AAAAAAAAAAI= + + + + categories + + + action_type/object_view + + + + + category + object_view + + + condition + + AAAAAAAAAAM= + + + + description + View to display if the portal type Letter Post is installed + + + icon + + + + id + letter_preview + + + permissions + + + View + + + + + priority + 10.0 + + + title + Preview + + + visible + 1 + + + + + + + + + + + + text + string:${object_url}/Letter_viewPreview + + + + + + + + + + + + text + python: getattr(context.getPortalObject(), \'letter_post_module\', None) is not None and portal.Base_checkPermission(\'letter_post_module\', \'View\') + + + + + diff --git a/bt5/erp5_interface_post/bt/template_action_path_list b/bt5/erp5_interface_post/bt/template_action_path_list index 78b550f422d..3c06fab7964 100644 --- a/bt5/erp5_interface_post/bt/template_action_path_list +++ b/bt5/erp5_interface_post/bt/template_action_path_list @@ -6,5 +6,6 @@ Letter Post Module | view Letter Post | preview_pdf Letter Post | view Letter | jump_to_letter_post +Letter | letter_preview Mail Message | jump_to_internet_message_post Mail Message | mail_message_preview \ No newline at end of file -- 2.30.9 From 8f49b88f2d5d86465173fb3560e5e4a15852d099 Mon Sep 17 00:00:00 2001 From: Nicolas Wavrant Date: Fri, 4 May 2018 15:56:29 +0200 Subject: [PATCH 10/12] erp5_officejs_support_request_ui: translate string used for empty worklists --- .../gadget_supportrequest_page_worklist_html.html | 4 +++- .../gadget_supportrequest_page_worklist_html.xml | 6 +++--- .../gadget_supportrequest_page_worklist_js.js | 7 +++++-- .../gadget_supportrequest_page_worklist_js.xml | 8 ++++---- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/bt5/erp5_officejs_support_request_ui/PathTemplateItem/web_page_module/gadget_supportrequest_page_worklist_html.html b/bt5/erp5_officejs_support_request_ui/PathTemplateItem/web_page_module/gadget_supportrequest_page_worklist_html.html index 2c744b9feb0..e99dec856b2 100644 --- a/bt5/erp5_officejs_support_request_ui/PathTemplateItem/web_page_module/gadget_supportrequest_page_worklist_html.html +++ b/bt5/erp5_officejs_support_request_ui/PathTemplateItem/web_page_module/gadget_supportrequest_page_worklist_html.html @@ -28,7 +28,9 @@ {{/each}} {{else}} -

All work caught up!

+
+

All work caught up!

+
{{/if}} diff --git a/bt5/erp5_officejs_support_request_ui/PathTemplateItem/web_page_module/gadget_supportrequest_page_worklist_html.xml b/bt5/erp5_officejs_support_request_ui/PathTemplateItem/web_page_module/gadget_supportrequest_page_worklist_html.xml index 0f4133ebb7e..17b94b983aa 100644 --- a/bt5/erp5_officejs_support_request_ui/PathTemplateItem/web_page_module/gadget_supportrequest_page_worklist_html.xml +++ b/bt5/erp5_officejs_support_request_ui/PathTemplateItem/web_page_module/gadget_supportrequest_page_worklist_html.xml @@ -220,7 +220,7 @@
actor - zope + nicolas comment @@ -234,7 +234,7 @@ serial - 962.24219.1265.43878 + 964.57086.33771.28859 state @@ -252,7 +252,7 @@ - 1506514266.01 + 1522750119.58 UTC diff --git a/bt5/erp5_officejs_support_request_ui/PathTemplateItem/web_page_module/gadget_supportrequest_page_worklist_js.js b/bt5/erp5_officejs_support_request_ui/PathTemplateItem/web_page_module/gadget_supportrequest_page_worklist_js.js index 873aa01d609..1f1b5b141ad 100644 --- a/bt5/erp5_officejs_support_request_ui/PathTemplateItem/web_page_module/gadget_supportrequest_page_worklist_js.js +++ b/bt5/erp5_officejs_support_request_ui/PathTemplateItem/web_page_module/gadget_supportrequest_page_worklist_js.js @@ -78,9 +78,12 @@ count: result_list[i][2] }); } - gadget.element.querySelector('.document_list').innerHTML = table_template({ + return gadget.translateHtml(table_template({ document_list: line_list - }); + })); + }) + .push(function (translated_html) { + gadget.element.querySelector('.document_list').innerHTML = translated_html; }); }); }(window, rJS, RSVP, Handlebars)); \ No newline at end of file diff --git a/bt5/erp5_officejs_support_request_ui/PathTemplateItem/web_page_module/gadget_supportrequest_page_worklist_js.xml b/bt5/erp5_officejs_support_request_ui/PathTemplateItem/web_page_module/gadget_supportrequest_page_worklist_js.xml index 04fac03ed66..50eef6ed3ca 100644 --- a/bt5/erp5_officejs_support_request_ui/PathTemplateItem/web_page_module/gadget_supportrequest_page_worklist_js.xml +++ b/bt5/erp5_officejs_support_request_ui/PathTemplateItem/web_page_module/gadget_supportrequest_page_worklist_js.xml @@ -220,7 +220,7 @@ actor - zope + nicolas.wavrant comment @@ -234,7 +234,7 @@ serial - 962.26499.5927.24507 + 966.58922.42880.38826 state @@ -252,8 +252,8 @@ - 1506651141.01 - UTC + 1525441951.04 + GMT+2 -- 2.30.9 From f6961fbb5705924a71c57bab87189f9779dfd733 Mon Sep 17 00:00:00 2001 From: Nicolas Wavrant Date: Fri, 4 May 2018 16:41:43 +0200 Subject: [PATCH 11/12] erp5_hal_json_style: allow to define custom page templates as gadgets --- .../erp5_hal_json_style/ERP5Document_getHateoas.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/bt5/erp5_hal_json_style/SkinTemplateItem/portal_skins/erp5_hal_json_style/ERP5Document_getHateoas.py b/bt5/erp5_hal_json_style/SkinTemplateItem/portal_skins/erp5_hal_json_style/ERP5Document_getHateoas.py index fe507d2a096..24882e75e38 100644 --- a/bt5/erp5_hal_json_style/SkinTemplateItem/portal_skins/erp5_hal_json_style/ERP5Document_getHateoas.py +++ b/bt5/erp5_hal_json_style/SkinTemplateItem/portal_skins/erp5_hal_json_style/ERP5Document_getHateoas.py @@ -999,7 +999,7 @@ def renderForm(traversed_document, form, response_dict, key_prefix=None, selecti # Following pop/push of form_id resp. dialog_id is here because of FormBox - an embedded form in a form # Fields of forms use form_id in their TALES expressions and obviously FormBox's form_id is different # from its parent's form. It is very important that we do not remove form_id in case of a Dialog Form. - if form.pt == "form_dialog": + if form.pt.endswith("form_dialog"): previous_request_other['dialog_id'] = REQUEST.other.pop('dialog_id', None) REQUEST.set('dialog_id', form.id) else: @@ -1009,7 +1009,7 @@ def renderForm(traversed_document, form, response_dict, key_prefix=None, selecti field_errors = REQUEST.get('field_errors', {}) include_action = True - if form.pt == 'form_dialog': + if form.pt.endswith('form_dialog'): action_to_call = "Base_callDialogMethod" else: action_to_call = form.action @@ -1030,7 +1030,7 @@ def renderForm(traversed_document, form, response_dict, key_prefix=None, selecti } } - if form.pt == "form_dialog": + if form.pt.endswith("form_dialog"): # If there is a "form_id" in the REQUEST then it means that last view was actually a form # and we are most likely in a dialog. We save previous form into `last_form_id` ... last_form_id = extra_param_json.pop("form_id", "") or REQUEST.get("form_id", "") @@ -1096,7 +1096,7 @@ def renderForm(traversed_document, form, response_dict, key_prefix=None, selecti # Form Edit handler uses form_id to recover the submitted form and to control its # properties like editability - if form.pt == 'form_dialog': + if form.pt.endswith('form_dialog'): # overwrite "form_id" field's value because old UI does that by passing # the form_id in query string and hidden fields renderHiddenField(response_dict, "form_id", last_form_id) @@ -1199,7 +1199,7 @@ def renderForm(traversed_document, form, response_dict, key_prefix=None, selecti response_dict['report_section_list'] = report_result_list # end-if report_section - if form.pt == "form_dialog": + if form.pt.endswith("form_dialog"): # extra_param_json is a special field in forms (just like form_id). extra_param_json field holds JSON # metadata about the form (its hash and dynamic fields) renderHiddenField(response_dict, 'extra_param_json', json.dumps(extra_param_json)) @@ -1233,7 +1233,7 @@ def renderFormDefinition(form, response_dict): # each form has hidden attribute `form_id` group_list[-1][1].append(('form_id', {'meta_type': 'StringField'})) - if form.pt == "form_dialog": + if form.pt.endswith("form_dialog"): # every form dialog has its dialog_id and meta (control) attributes in extra_param_json group_list[-1][1].extend([ ('dialog_id', {'meta_type': 'StringField'}), @@ -1440,7 +1440,7 @@ def calculateHateoas(is_portal=None, is_site_root=None, traversed_document=None, return traversed_document.Base_redirect(keep_items={ 'portal_status_message': status_message}) - if view_instance.pt == "form_dialog": + if view_instance.pt.endswith("form_dialog"): # If there is a "form_id" in the REQUEST then it means that last view was actually a form # and we are most likely in a dialog. We save previous form into `last_form_id` ... last_form_id = REQUEST.get('form_id', "") -- 2.30.9 From 81c7eff489704bf9524d57134284ab89cfd49c9b Mon Sep 17 00:00:00 2001 From: Nicolas Wavrant Date: Thu, 5 Apr 2018 13:33:14 +0000 Subject: [PATCH 12/12] erp5_interface_post: add Manager proxy role on Event_createPostMessage Otherwise security should be set on Mail Message so Event_createPostMessage can modify them (to add the post as aggregate). This is annoying as mails are usually sent by Entity_sendEmail, which already has a Manager proxy role to allow to easily send Mail Messages to user without creating the related security. --- .../erp5_interface_post/Event_createPostMessage.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/bt5/erp5_interface_post/SkinTemplateItem/portal_skins/erp5_interface_post/Event_createPostMessage.xml b/bt5/erp5_interface_post/SkinTemplateItem/portal_skins/erp5_interface_post/Event_createPostMessage.xml index 87af0dc2a61..be91ee3dc95 100644 --- a/bt5/erp5_interface_post/SkinTemplateItem/portal_skins/erp5_interface_post/Event_createPostMessage.xml +++ b/bt5/erp5_interface_post/SkinTemplateItem/portal_skins/erp5_interface_post/Event_createPostMessage.xml @@ -52,6 +52,14 @@ _params post_portal_type, post_message_data, **kw + + _proxy_roles + + + Manager + + + id Event_createPostMessage -- 2.30.9