Commit 7e642b05 authored by Nicolas Delaby's avatar Nicolas Delaby

Do not hardcode Portal Type

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@21528 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent b3f7a2c9
master allow_login_change allow_login_change_differentiate_id_and_login allow_login_change_wip arnau arnau-kns arnau-kns-without-property-mapping arnau-merge arnau-poc authentication_policy_fixes auto_extend_select_list autoflake backup_erp5_workflow bk_erp5ish_actions_tool bk_sqlcatalog boc-interaction-drop bt_owner cache catalog_fulltext catalog_fulltext_old cedric cedriclen cedriclen-eos certificate_authority cherry-pick-4a8e045d cherry-pick-bca64206 cleanJSByJSLint clean_up_upgrader compact_title_no_reference credential_update_action datetimefield deferred_listbox douglas_forum dream_distributor drop-legacy-simulation eos-dev erp5-component erp5-data-notebook erp5-forum erp5-preference erp5-release erp5-slapos-upgrade erp5-util-testing erp5-vifib erp5-vifib-cleanup erp5_calendar erp5_free_subscription erp5_workflow fix_system_processes_ownership floatArrayTest for_testrunner_1 for_testrunner_2 formbox gabriel gabriel-fix-rounding-in-accounting-generation gabriel-fix-rounding-in-accounting-generation2 gadget-json-value http_cache_fix import_fixes import_fixes_complete improve_default_caching_policy_manager interaction-drop isDeletable item_tracking_graph_editor ivan jerome-bt-reference-doc jerome-test jerome_events jerome_graph_editor_renderjs jerome_new_style_solve_divergence jerome_promise_in_tests jerome_user_preference_time_zone jio jm/form-action-guard joblib-activity jupyter_egg_tests jupyter_import_dot_fix jupyter_import_dot_quickfix jupyter_kernel_fixes jupyter_reference_warning jupyter_restricted kns lazy_simulation_causality lignan lingnan listbox-generator mame mame-bt5-cleanup mame-erp5_project-cleanup mame-naming-convention mame-naming-convention-list_method mame-test-stock-indexation mame-work mame2 master-erp5-test-result-scalability master-erp5-test-result-scalability-rebase master-test-fix-additionalbt5path master_calendar_wip_patches master_calendar_wip_patches_extend_security master_no_guard_on_workflow_transition master_no_guard_on_workflow_transition_plus_calendar_wip_patchs merge_xhtml_jquery mmariani-inventory mrp new-render-presentation nexedi-erp5-jp no_reindex_data_stream officejs pere portal_callables portal_solver_process_security_configuration presentation rebased_mrp reindex_calendar_after_change_calendar_exception removed_portal_skin_redundancy romain-fulltext scalability-master2 scalability-master2-rebase scalability-rebase shop-box shop-box-rebased simulation sms_more_than_140_characters strict_catalog syncml test_page testnode_software_link timezones tristan tristan-merge tristan-performance ttr ttrm upgradeSite view-aggregated-amounts vivekpab_erp5webrenderjs_layoutconfig vivekpab_jabberclient vivekpab_renderjs_interfaces wenjie wenjie_branch xiaowu_newui yryr yryr-components-cp yryr-inventory-cache yryr-test yryr-with-components yusei erp5.util-0.4.46 erp5.util-0.4.44 erp5.util-0.4.43 erp5.util-0.4.41 erp5.util-0.4.40 erp5.util-0.4.37 erp5.util-0.4.1 erp5.util-0.4 erp5.util-0.3 erp5.util-0.2 erp5.util-0.1
No related merge requests found
......@@ -226,7 +226,8 @@ class NotificationTool(BaseTool):
notifier_list=None, priority_level=None,
store_as_event=False,
message_text_format='text/plain',
event_keyword_argument_dict=None):
event_keyword_argument_dict=None,
portal_type_list=None):
"""
This method provides a common API to send messages to erp5 users
from object actions of worflow scripts.
......@@ -265,15 +266,19 @@ class NotificationTool(BaseTool):
event_keyword_argument_dict -- additional keyword arguments which is used for
constructor of event document.
portal_type_list -- Portal Type of Users
TODO: support default notification email
"""
portal = self.getPortalObject()
catalog_tool = getToolByName(self, 'portal_catalog')
if portal_type_list is None:
portal_type_list = ('Person',)
# Find "From" Person
from_person = None
if isinstance(sender, basestring):
sender = catalog_tool.getResultValue(portal_type='Person', reference=sender)
sender = catalog_tool.getResultValue(portal_type=portal_type_list,
reference=sender)
if sender is not None:
email_value = sender.getDefaultEmailValue()
if email_value is not None and email_value.asText():
......@@ -286,7 +291,8 @@ class NotificationTool(BaseTool):
recipient = (recipient,)
for person in recipient:
if isinstance(person, basestring):
person = catalog_tool.getResultValue(portal_type='Person', reference=person)
person = catalog_tool.getResultValue(portal_type=portal_type_list,
reference=person)
if person is None:
# For backward compatibility. I recommend to use ValueError.(yusei)
raise IndexError, "Can't find person document which reference is '%s'" % person
......
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