Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
erp5
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Xiaowu Zhang
erp5
Commits
7640e4e6
Commit
7640e4e6
authored
May 23, 2013
by
Rafael Monnerat
Committed by
Xiaowu Zhang
Feb 17, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
erp5_commerce: related ...
parent
b5392479
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
323 additions
and
40 deletions
+323
-40
bt5/erp5_commerce/ExtensionTemplateItem/Ecommerce.py
bt5/erp5_commerce/ExtensionTemplateItem/Ecommerce.py
+10
-2
bt5/erp5_commerce/SkinTemplateItem/portal_skins/erp5_commerce/Resource_getPriceCalculationDefaultContext.xml
...5_commerce/Resource_getPriceCalculationDefaultContext.xml
+8
-1
bt5/erp5_commerce/SkinTemplateItem/portal_skins/erp5_commerce/SaleOrder_getSelectedShippingResource.xml
...s/erp5_commerce/SaleOrder_getSelectedShippingResource.xml
+2
-0
bt5/erp5_commerce/SkinTemplateItem/portal_skins/erp5_commerce/SaleOrder_getShoppingCartItemList.xml
...skins/erp5_commerce/SaleOrder_getShoppingCartItemList.xml
+4
-1
bt5/erp5_commerce/SkinTemplateItem/portal_skins/erp5_commerce/WebSection_resetShoppingCart.xml
...rtal_skins/erp5_commerce/WebSection_resetShoppingCart.xml
+1
-0
bt5/erp5_commerce/SkinTemplateItem/portal_skins/erp5_commerce/WebSite_createWebSiteAccount.xml
...rtal_skins/erp5_commerce/WebSite_createWebSiteAccount.xml
+11
-3
bt5/erp5_commerce/SkinTemplateItem/portal_skins/erp5_commerce_widget_library/WebSection_getProductList.xml
...rp5_commerce_widget_library/WebSection_getProductList.xml
+17
-14
bt5/erp5_commerce/SkinTemplateItem/portal_skins/erp5_commerce_widget_library/WebSection_viewShoppingCart/customer_inconsistency.xml
...ry/WebSection_viewShoppingCart/customer_inconsistency.xml
+1
-1
bt5/erp5_commerce/SkinTemplateItem/portal_skins/erp5_commerce_widget_library/WebSite_getProductList.xml
...s/erp5_commerce_widget_library/WebSite_getProductList.xml
+10
-17
bt5/erp5_commerce/WorkflowTemplateItem/portal_workflow/commerce_validation_workflow/states/archived.xml
...workflow/commerce_validation_workflow/states/archived.xml
+113
-0
bt5/erp5_commerce/WorkflowTemplateItem/portal_workflow/commerce_validation_workflow/states/published.xml
...orkflow/commerce_validation_workflow/states/published.xml
+2
-0
bt5/erp5_commerce/WorkflowTemplateItem/portal_workflow/commerce_validation_workflow/transitions/archive.xml
...flow/commerce_validation_workflow/transitions/archive.xml
+62
-0
bt5/erp5_commerce/WorkflowTemplateItem/portal_workflow/commerce_validation_workflow/transitions/archive_action.xml
...mmerce_validation_workflow/transitions/archive_action.xml
+81
-0
bt5/erp5_commerce/bt/revision
bt5/erp5_commerce/bt/revision
+1
-1
No files found.
bt5/erp5_commerce/ExtensionTemplateItem/Ecommerce.py
View file @
7640e4e6
...
...
@@ -3,9 +3,17 @@ from Products.ERP5Type.UnrestrictedMethod import UnrestrictedMethod
import
urllib
import
mechanize
def
getProductPrice
(
product
):
def
getProductPrice
(
product
,
date
=
None
):
getPrice
=
UnrestrictedMethod
(
product
.
getPrice
)
return
getPrice
(
supply_path_type
=
[
"Sale Supply Line"
,
"Sale Supply Cell"
])
getDefaultContext
=
UnrestrictedMethod
(
product
.
Resource_getPriceCalculationDefaultContext
)
return
getPrice
(
supply_path_type
=
[
"Sale Supply Line"
,
"Sale Supply Cell"
],
context
=
getDefaultContext
(
date
=
date
))
def
getCurrentInventory
(
product
,
**
kw
):
return
UnrestrictedMethod
(
product
.
getCurrentInventory
)(
**
kw
)
def
getFutureInventory
(
product
,
**
kw
):
return
UnrestrictedMethod
(
product
.
getFutureInventory
)(
**
kw
)
def
submitPaypalNVPRequest
(
parameter_dict
,
nvp_url
):
request
=
mechanize
.
Request
(
nvp_url
)
...
...
bt5/erp5_commerce/SkinTemplateItem/portal_skins/erp5_commerce/Resource_getPriceCalculationDefaultContext.xml
View file @
7640e4e6
...
...
@@ -83,6 +83,13 @@ if len(context.getVariationRangeCategoryList()):\n
variation_category = request.get(variation_base_category, default_variation)\n
variation_dict[variation_base_category] = variation_category\n
\n
if date is None:\n
variation_dict["start_date"] = DateTime()\n
variation_dict["stop_date"] = DateTime()+0.00001\n
else:\n
variation_dict["start_date"] = date\n
variation_dict["stop_date"] = date+0.00001\n
\n
if web_site_value is not None:\n
price_currency_value = web_site_value.WebSite_getShoppingCartDefaultCurrency()\n
else:\n
...
...
@@ -95,7 +102,7 @@ return movement\n
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string>
**kw
</string>
</value>
<value>
<string>
date=None,
**kw
</string>
</value>
</item>
<item>
<key>
<string>
_proxy_roles
</string>
</key>
...
...
bt5/erp5_commerce/SkinTemplateItem/portal_skins/erp5_commerce/SaleOrder_getSelectedShippingResource.xml
View file @
7640e4e6
...
...
@@ -190,6 +190,8 @@
Return selected shipping method from shopping cart\n
"""\n
shopping_cart = context.SaleOrder_getShoppingCart()\n
if shopping_cart is None:\n
return None\n
shipping_method = getattr(shopping_cart, \'shipping_method\', None)\n
if shipping_method is not None:\n
return shipping_method.getResourceValue()\n
...
...
bt5/erp5_commerce/SkinTemplateItem/portal_skins/erp5_commerce/SaleOrder_getShoppingCartItemList.xml
View file @
7640e4e6
...
...
@@ -60,7 +60,10 @@
name probably.\n
- make sure this script is not called more than once per page\n
"""\n
shopping_cart_order_line_list = context.SaleOrder_getShoppingCart().contentValues(portal_type="Sale Order Line")\n
shopping_cart = context.SaleOrder_getShoppingCart()\n
if shopping_cart is None:\n
return []\n
shopping_cart_order_line_list = shopping_cart.contentValues(portal_type="Sale Order Line")\n
if include_shipping:\n
return shopping_cart_order_line_list\n
else:\n
...
...
bt5/erp5_commerce/SkinTemplateItem/portal_skins/erp5_commerce/WebSection_resetShoppingCart.xml
View file @
7640e4e6
...
...
@@ -59,6 +59,7 @@ request = context.REQUEST\n
if session_id is None: \n
session_id = request.get(\'session_id\', None)\n
\n
request.RESPONSE.expireCookie(\'session_id\')\n
return context.portal_sessions.manage_delObjects(session_id)\n
</string>
</value>
</item>
...
...
bt5/erp5_commerce/SkinTemplateItem/portal_skins/erp5_commerce/WebSite_createWebSiteAccount.xml
View file @
7640e4e6
...
...
@@ -90,7 +90,7 @@ kw.setdefault(\'reference\', kw[\'default_email_text\'])\n
if \'password_confirm\' in kw:\n
del kw[\'password_confirm\']\n
\n
#Check that user doesn\'t already exists\n
#
Check that user doesn\'t already exists\n
person_list = portal.acl_users.erp5_users.getUserByLogin(kw[\'reference\'])\n
if person_list:\n
msg = translateString("This account already exists. Please provide another email address.")\n
...
...
@@ -124,11 +124,19 @@ assignment = person.newContent(portal_type=\'Assignment\',\n
site=person_site)\n
assignment.open()\n
\n
msg = translateString("Your account was successfully created.")\n
is_shopping_cart = context.REQUEST.get(\'is_shopping_cart\')\n
if is_shopping_cart is None:\n
is_shopping_cart = context.REQUEST.get(\'field_your_is_shopping_cart\')\n
\n
if is_shopping_cart:\n
msg = translateString("Your account was successfully created, now you can proceed to payment.")\n
else:\n
msg = translateString("Your account was successfully created.")\n
\n
# Set owner local role for cart if needed\n
shopping_cart = context.SaleOrder_getShoppingCart()\n
shopping_cart.manage_setLocalRoles(kw[\'reference\'], [\'Owner\'])\n
if shopping_cart is not None:\n
shopping_cart.manage_setLocalRoles(kw[\'reference\'], [\'Owner\'])\n
\n
# Redirect if needed to coming_from_url\n
came_from = kw[\'came_from\']\n
...
...
bt5/erp5_commerce/SkinTemplateItem/portal_skins/erp5_commerce_widget_library/WebSection_getProductList.xml
View file @
7640e4e6
...
...
@@ -10,6 +10,12 @@
<key>
<string>
Script_magic
</string>
</key>
<value>
<int>
3
</int>
</value>
</item>
<item>
<key>
<string>
_Cacheable__manager_id
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
_bind_names
</string>
</key>
<value>
...
...
@@ -51,9 +57,13 @@
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
# the goal of this script is to get all the related product of this section\n
from Products.ERP5Type.Cache import CachingMethod
\n
\n
current_web_section = context.REQUEST.get(\'current_web_section\', context)\n
\n
# XXX Somehow Customize it Only list published products.\n
kw[\'validation_state\'] = \'published\'\n
\n
\n
if not kw.has_key(\'portal_type\'):\n
kw[\'portal_type\'] = \'Product\'\n
\t \n
...
...
@@ -69,20 +79,13 @@ if not kw.has_key(\'all_languages\'):\t\t \n
for key in [\'limit\',\'all_versions\',\'all_languages\']:\t\t \n
kw[key] = int(kw[key])\n
\n
\n
def getProductList(context_relative_url, limit, all_versions, all_languages):\n
# Gabriel: The condition was added to not break the paypal return\n
# after finish the payment. The verify_sign is checked because all\n
# data from paypal have this key\n
if kw.has_key(\'quantity\') and kw.has_key("verify_sign"):\n
del kw[\'quantity\']\n
# Gabriel: The condition was added to not break the paypal return\n
# after finish the payment. The verify_sign is checked because all\n
# data from paypal have this key\n
if kw.has_key(\'quantity\') and kw.has_key("verify_sign"):\n
del kw[\'quantity\']\n
\t\t \n
return current_web_section.getDocumentValueList(**kw)\n
\n
\n
return CachingMethod(getProductList,\n
id="WebSection_getProductList_ecommerce",\n
cache_factory=\'erp5_ui_short\')(current_web_section.getRelativeUrl(),kw[\'limit\'],kw[\'all_versions\'], kw[\'all_languages\'])\n
return current_web_section.getDocumentValueList(**kw)\n
</string>
</value>
</item>
<item>
...
...
bt5/erp5_commerce/SkinTemplateItem/portal_skins/erp5_commerce_widget_library/WebSection_viewShoppingCart/customer_inconsistency.xml
View file @
7640e4e6
...
...
@@ -318,7 +318,7 @@ python: "<br>" + "<br>".join([item.message for item in here.ERP5Site_getAuthenti
<dictionary>
<item>
<key>
<string>
_text
</string>
</key>
<value>
<string>
python: here.ERP5Site_getAuthenticatedMemberPersonValue().checkConsistency()
</string>
</value>
<value>
<string>
python:
not here.getPortalObject().portal_membership.isAnonymousUser() and
here.ERP5Site_getAuthenticatedMemberPersonValue().checkConsistency()
</string>
</value>
</item>
</dictionary>
</pickle>
...
...
bt5/erp5_commerce/SkinTemplateItem/portal_skins/erp5_commerce_widget_library/WebSite_getProductList.xml
View file @
7640e4e6
...
...
@@ -54,30 +54,23 @@
# The goal of this script is to get all the products from all the visible Web Sections\n
# and it must select randomly which product must be displayed for a given context.\n
from
Products.ERP5Type.Cache import CachingMethod
\n
from
random import choice
\n
\n
if not kw.has_key(\'portal_type\'):\n
kw[\'portal_type\'] = \'Product\'\n
\n
def getProductList(limit, portal_type):\n
from random import choice\n
\n
web_site = context.getWebSiteValue() or context.REQUEST.get(\'current_web_site\')\n
web_site = context.getWebSiteValue() or context.REQUEST.get(\'current_web_site\')\n
\n
# Getting all the products from all the visible Web Section.\n
product_dict = {}\n
for web_section in web_site.WebSite_getMainSectionList():\n
for product in web_section.getDocumentValueList(all_versions=1, all_languages=1, **kw):\n
product_dict[product.uid] = product\n
# Getting all the products from all the visible Web Section.\n
product_dict = {}\n
for web_section in web_site.WebSite_getMainSectionList():\n
for product in web_section.getDocumentValueList(all_versions=1, all_languages=1, **kw):\n
product_dict[product.uid] = product\n
\n
if len(product_dict) >
limit:\n
return random.sample(product_dict.values(), limit)\n
if len(product_dict) >
limit:\n
return random.sample(product_dict.values(), limit)\n
\n
return product_dict.values()\n
\n
return CachingMethod(getProductList,\n
id="WebSite_getProductList_ecommerce",\n
cache_factory=\'erp5_ui_short\')(limit, kw[\'portal_type\'])\n
return product_dict.values()\n
]]>
</string>
</value>
...
...
bt5/erp5_commerce/WorkflowTemplateItem/portal_workflow/commerce_validation_workflow/states/archived.xml
0 → 100644
View file @
7640e4e6
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"StateDefinition"
module=
"Products.DCWorkflow.States"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
description
</string>
</key>
<value>
<string>
</string>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
archived
</string>
</value>
</item>
<item>
<key>
<string>
permission_roles
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAI=
</string>
</persistent>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string>
Archived
</string>
</value>
</item>
<item>
<key>
<string>
transitions
</string>
</key>
<value>
<tuple>
<string>
invalidate
</string>
<string>
invalidate_action
</string>
<string>
publish
</string>
<string>
publish_action
</string>
<string>
validate
</string>
<string>
validate_action
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
type_list
</string>
</key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"2"
aka=
"AAAAAAAAAAI="
>
<pickle>
<global
name=
"PersistentMapping"
module=
"Persistence.mapping"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
data
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
Access contents information
</string>
</key>
<value>
<tuple>
<string>
Anonymous
</string>
<string>
Assignee
</string>
<string>
Assignor
</string>
<string>
Associate
</string>
<string>
Auditor
</string>
<string>
Manager
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
Add portal content
</string>
</key>
<value>
<tuple>
<string>
Assignee
</string>
<string>
Assignor
</string>
<string>
Associate
</string>
<string>
Manager
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
Modify portal content
</string>
</key>
<value>
<tuple>
<string>
Assignee
</string>
<string>
Assignor
</string>
<string>
Associate
</string>
<string>
Manager
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
View
</string>
</key>
<value>
<tuple>
<string>
Anonymous
</string>
<string>
Assignee
</string>
<string>
Assignor
</string>
<string>
Associate
</string>
<string>
Auditor
</string>
<string>
Manager
</string>
</tuple>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_commerce/WorkflowTemplateItem/portal_workflow/commerce_validation_workflow/states/published.xml
View file @
7640e4e6
...
...
@@ -28,6 +28,8 @@
<key>
<string>
transitions
</string>
</key>
<value>
<tuple>
<string>
archive
</string>
<string>
archive_action
</string>
<string>
invalidate
</string>
<string>
invalidate_action
</string>
<string>
validate
</string>
...
...
bt5/erp5_commerce/WorkflowTemplateItem/portal_workflow/commerce_validation_workflow/transitions/archive.xml
0 → 100644
View file @
7640e4e6
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"TransitionDefinition"
module=
"Products.DCWorkflow.Transitions"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
actbox_category
</string>
</key>
<value>
<string>
workflow
</string>
</value>
</item>
<item>
<key>
<string>
actbox_icon
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
actbox_name
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
actbox_url
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
after_script_name
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
guard
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
archive
</string>
</value>
</item>
<item>
<key>
<string>
new_state_id
</string>
</key>
<value>
<string>
archived
</string>
</value>
</item>
<item>
<key>
<string>
script_name
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
trigger_type
</string>
</key>
<value>
<int>
2
</int>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_commerce/WorkflowTemplateItem/portal_workflow/commerce_validation_workflow/transitions/archive_action.xml
0 → 100644
View file @
7640e4e6
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"TransitionDefinition"
module=
"Products.DCWorkflow.Transitions"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
actbox_category
</string>
</key>
<value>
<string>
workflow
</string>
</value>
</item>
<item>
<key>
<string>
actbox_icon
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
actbox_name
</string>
</key>
<value>
<string>
Archive
</string>
</value>
</item>
<item>
<key>
<string>
actbox_url
</string>
</key>
<value>
<string>
%(content_url)s/Base_viewWorkflowActionDialog?workflow_action=archive_action
</string>
</value>
</item>
<item>
<key>
<string>
after_script_name
</string>
</key>
<value>
<string>
archive
</string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
guard
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAI=
</string>
</persistent>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
archive_action
</string>
</value>
</item>
<item>
<key>
<string>
new_state_id
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
script_name
</string>
</key>
<value>
<string>
checkConsistency
</string>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
trigger_type
</string>
</key>
<value>
<int>
1
</int>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"2"
aka=
"AAAAAAAAAAI="
>
<pickle>
<global
name=
"Guard"
module=
"Products.DCWorkflow.Guard"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
roles
</string>
</key>
<value>
<tuple>
<string>
Assignor
</string>
<string>
Assignee
</string>
<string>
Manager
</string>
</tuple>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_commerce/bt/revision
View file @
7640e4e6
3
17
3
26
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment