diff --git a/bt5/erp5_officejs_support_request_ui/SkinTemplateItem/portal_skins/erp5_officejs_support_request/SupportRequest_getSupportTypeList.py b/bt5/erp5_officejs_support_request_ui/SkinTemplateItem/portal_skins/erp5_officejs_support_request/SupportRequest_getSupportTypeList.py
index c8b561ad7b48dac6fc20db6dfd242f9bcb708312..eca453a4b62d4b7d0805f30191309fa06e909e72 100644
--- a/bt5/erp5_officejs_support_request_ui/SkinTemplateItem/portal_skins/erp5_officejs_support_request/SupportRequest_getSupportTypeList.py
+++ b/bt5/erp5_officejs_support_request_ui/SkinTemplateItem/portal_skins/erp5_officejs_support_request/SupportRequest_getSupportTypeList.py
@@ -10,15 +10,7 @@ try:
 except IndexError:
   project = None
 
-result = []
-if project is not None:
-  sale_supply_list = portal.portal_catalog(portal_type="Sale Supply", destination_project_uid=project.getUid())
-  for sale_supply in sale_supply_list:
-    sale_supply_line_list = sale_supply.contentValues(portal_type='Sale Supply Line')
-    for supply_line in sale_supply_line_list:
-      service = supply_line.getResourceValue()
-      if service is not None:
-        result.append((service.getTitle(), service.getId()))
+result = context.SupportRequest_getSupportTypeListFromProjectValue(project)
 
 if json_flag:
   from json import dumps
diff --git a/bt5/erp5_officejs_support_request_ui/SkinTemplateItem/portal_skins/erp5_officejs_support_request/SupportRequest_getSupportTypeListFromProjectValue.py b/bt5/erp5_officejs_support_request_ui/SkinTemplateItem/portal_skins/erp5_officejs_support_request/SupportRequest_getSupportTypeListFromProjectValue.py
new file mode 100644
index 0000000000000000000000000000000000000000..3baec3e7f89f8487c5099436d4b3875c8a7eb545
--- /dev/null
+++ b/bt5/erp5_officejs_support_request_ui/SkinTemplateItem/portal_skins/erp5_officejs_support_request/SupportRequest_getSupportTypeListFromProjectValue.py
@@ -0,0 +1,13 @@
+# /!\ proxy role !
+portal = context.getPortalObject()
+result = []
+if project_value is not None:
+  sale_supply_list = portal.portal_catalog(portal_type="Sale Supply", destination_project_uid=project_value.getUid())
+  for sale_supply in sale_supply_list:
+    sale_supply_line_list = sale_supply.contentValues(portal_type='Sale Supply Line')
+    for supply_line in sale_supply_line_list:
+      service = supply_line.getResourceValue()
+      if service is not None:
+        result.append((service.getTitle(), service.getId()))
+
+return result
diff --git a/bt5/erp5_officejs_support_request_ui/SkinTemplateItem/portal_skins/erp5_officejs_support_request/SupportRequest_getSupportTypeListFromProjectValue.xml b/bt5/erp5_officejs_support_request_ui/SkinTemplateItem/portal_skins/erp5_officejs_support_request/SupportRequest_getSupportTypeListFromProjectValue.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9899fcccf9730cdaff63bd917acd0bb11079f579
--- /dev/null
+++ b/bt5/erp5_officejs_support_request_ui/SkinTemplateItem/portal_skins/erp5_officejs_support_request/SupportRequest_getSupportTypeListFromProjectValue.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>Script_magic</string> </key>
+            <value> <int>3</int> </value>
+        </item>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary>
+                            <item>
+                                <key> <string>name_container</string> </key>
+                                <value> <string>container</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_context</string> </key>
+                                <value> <string>context</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_m_self</string> </key>
+                                <value> <string>script</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_subpath</string> </key>
+                                <value> <string>traverse_subpath</string> </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string>project_value</string> </value>
+        </item>
+        <item>
+            <key> <string>_proxy_roles</string> </key>
+            <value>
+              <tuple>
+                <string>Auditor</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>SupportRequest_getSupportTypeListFromProjectValue</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>