Commit Graph
42 Commits
Author SHA1 Message Date
Kamen ZhekovandJeremy Kersten 8fc2e229f9 [IMP] website_sale: add price per unit on products
Description of the issue/feature this PR addresses:
Currently, we cannot display prices per unit (for example $/kg, etc.)
on products shown in the shop. This is important for any eCommerce
business that sells something other than units, or just for informational
purposes.

Desired behavior after PR is merged:
Allows the user to add unit measurements for products. This behaviour is
disabled by default, and can be enabled through the settings page by
activating "eCommerce Base Unit Price" option.

Enabling it displays a price per unit field in /shop's product page,
comparison tool and cart. The price per unit of measurement is
automatically computed and can be displayed both on the product,
the cart and the comparison pages.

Enabling it also modifies the product's configuration page to include
what unit of measure to display in the price per unit field, as well
as the number of units used to calculate the price per unit.

task-2558128

Part-of: odoo/odoo#72242
Co-authored-by: Kamen Zhekov <kzh@odoo.com>
Co-authored-by: Jeremy Kersten <jke@odoo.com>
2021-09-02 10:41:51 +00:00
Jeremy Kersten 09cb4533c2 [IMP] website_sale: allow to show extra field on product page
You can in website's settings, add some extra fields to be shown on the product
page.

E.G. if you want to have the internal code, the barcode, or even a custom field
In case of a binary field, 'Technical documentation' or 'Catalog', you will
have a dowload link.

closes odoo/odoo#55872

Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
2020-08-13 13:04:44 +00:00
Samuel Degueldre c058f19bfa [IMP] website_sale: let users create and edit custom product ribbons
Previously, there was only one static "Sale" ribbon. Users might want to
have many types of ribbons, for different levels of sales, or to
indicate that a product is sold out. This commit lets the user create
custom ribbons and use them on prodcuts on the shop page. Additionally,
setting a ribbon on a product used to require a reload, this is no
longer the case. All ribbon modifications are stored in a cache and the
RPCs to put them into effect are only done on save.

task-1981170
Part of odoo/odoo#47574

Related: odoo/upgrade#1079
Related: odoo/design-themes#219
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2020-06-10 11:44:33 +00:00
Rémy Voet (ryv) 94b39d3ea3 [REF] stock,purchase,repair,mrp: clean ACL/report
For stock, purchase, repair and mrp modules, do a small clean of ACL:
Remove duplication and useless line.
Also improve the readability of the stock traceability report.

task-2172399

closes odoo/odoo#45055

Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
2020-03-06 09:16:16 +00:00
Martin Trigaux 65530dfd6a [ADD] *: add ir.model.access on all transient models
Following changes needing ir.model.access on transient models too.
Remove groups declaration on the action to move it to ir.model.access
when possible.
Rules are strict by default with no unlink access by default and high
priviledge asked. Adaptations may be needed later.
Write access is given as a wizard may need to be modified in case the
action triggers an error and the user has to correct a value

account*: use account.group_account_user for all transient by default
	  remove account.print.journal relic
stock*: use stock.group_stock_user by default
survey: survey user can send invitations
mail: allow any employee to execute wizards
      additional verifications are made to ensure they are executed
      only on the documents the user has access to you
      give portal access to mail.compose.message as portal still does
      some actions like posting messages on the forum
      add ir.rule to avoid reading somebody else messages
      increase the query count because of undeterminist count
crm: saleman for lead2opp, manager for massmailing
     partner manager for actions linked to partners
     avoid a write in test_lead_lost
sms: any employee can send sms
mrp: mrp user can execute wizards
     give unlink access as making write during do_produce operation
base_import: employees can import files
delivery: stock user can deliver
event_sale: sale user can configure the wizards
	    event user inherit from  sale rights
gamification: employee can give badge
google_service: resolve FIXME
hr: add specific rights
    manager can set a plan according to group on button
    anyone who can write on an employee can register a departure
hr_expense: set rights based on buttons
hr_holidays: an approver can make a summary report
hr_recruitment: recruiter can refuse a candidate
hr_timesheet: can use the wizard if can create a timesheet
l10n_eu_service: managers can create fiscal positions
mass_mailing: same group as on mass.mailing.list
membership: accountant can create invoice from membership
payment: accountant can create a link
	 as the source is an account.move
	 keep the payment.acquirer.onboarding.wizard to system user
	 only as it is called during company configuration
point_of_sale: PoS manager only can use wizards
	       never create closing_balance_confirm_wizard records
product_expiry: stock user has rights on stock.picking
product_margin: access from accounting menus
repair: same rules as for above models
sale: set ir.rule for self wizard only
      add rule from model introduced in payment to add salesman group
sale_crm: saleman can create a quotation from a lead
sale_coupon: any saleman can generate coupon
	     add self ir.rule
sale_product_configurator: salesman can select product variants
snailmail: employee can send letters
website: designers can write on website
website_crm_partner_assign: same rule as group on action
website_sale: sale ACL as for payment.acquirer.onboarding.wizard
website_slides: anyone can send invitation

base: base.language.*: allow employee (cf lang_install)
      change.password.user: can not read change password wizard of
      other users
      test.*: no access is needed

Courtesy of Damien Bouvy, William Andre and Antoine Prieëls for review
of acl
2020-02-04 17:54:18 +01:00
Aurélien Warnon 326dabce09 [IMP] product,(website_)sale: Product configurator naming/cleanup
Targets commit d3530eb07e

Purpose
=======

[Follow up AL review]
Code cleanup and some improved models naming for the product configurator feature (see targeted commit).
Mostly changes the "product.attribute" related models.

Updated models:

- "product.product.attribute.value" to "product.template.attribute.value"
- "product.attribute.filter.line" to "product.template.attribute.exclusion"
- "product.attribute.line" to "product.template.attribute.line"

Updated fields:

- [sale_order_line in sale/sale.py] "product_custom_variant_values" to "product_custom_attribute_value_ids"
- [product_template_attribute_value in product/product_attribute.py] excluded_for is now a o2m instead of a m2m
- [product.attribute in sale/product_product.py] "create_variant" field is now a Selection with "no_variant" (old false), "always" (old true), "dynamic" (new value)
- [product in product/product.py] "product_attribute_value_ids" to "product_template_attribute_value_ids"
2018-09-26 15:08:18 +02:00
Aurélien Warnon df2ea31ff6 [IMP] (website_)sale: Add custom values for product attributes
Purpose
=======

Product attrivutes can now have custom values.
These values are specified by the user during the SO creation.
They are also available on the webshop frontend.

Specification
=============

add a new mode to generate variants as they are added to the order/cart
- ability to define attribute extra prices & exclude combinations
2018-09-25 18:39:32 +02:00
Aurélien Warnon 856c2e9008 [IMP] product,(website_)sale: Move product options configurator into sale module
Task #1871557

Purpose
=======

- Configure a product from a sales order as easily as in the ecommerce
  The backend uses the same template as the frontend to configure a products and its options

- Display optionnal products of optionnal products in the "sale options" section

- Allow adding exlusions to some combinations of the product and/or
  to some combinations of the optionnal and accessory products

Specification
=============

PHASE I

1. Improve the "Add to cart" with optional products

- When you add an option to cart, move the product to the cart & show the options of this option
- Don't open the option wizard if no option available (in case this module becomes generic,
  it's better to skip this step when it's not needed)
- Display the options right under their related product in the cart

2. Do not allow to add the product as an optional product for itself
Why ?
- No functional sense
- Creates issues in the add to cart wizard

3. Exclude some attribute combinations within the product or with related options and accessory products

- Rename VARIANT PRICES button -> CONFIGURE VARIANTS
- When you click this button and select a value, open form view rather than inline edition
- Form view of variant values:
	- Attribute
	- Value
	- HTML Color Index
	- Attribute Price Extra
	- Not Compatible with: o2m tab with 2 fields: Product AND Attribute Value (of this product)
	  [m2m tag selection]
	- in any new line, autocomplete the current product by default
	- Tooltip: A list of product and attribute values that you want to exclude for
          this product's attribue value. Also applies on optionnal and accessory products.

4. New option to configure a product in a sales order line

- This option is only visible if the corresponding option is activated in the sales settings
- It opens a wizard to select a product template, configure related attribute values
  and select optional products (based on frontend view)
- Attributes not compatible with other selected attributes should not be selectable
- Must work like in the frontend
2018-09-25 18:39:32 +02:00
David Vidal 42c8da4edc [FIX] Add public user group tax read permissions
- Related to https://github.com/odoo/odoo/pull/18840
- Adds public user tax read permission so methods can be called.

this commit closes #18881
2017-09-30 12:21:27 +02:00
Jeremy Kersten 53abb4a277 [REF] sale,product,website_sale: merge website.pricelist and product.pricelist
Make it generic... It is not only a concept to website !

Update tests
2016-09-06 13:59:35 +02:00
Martin Trigaux 11812b0b9e [FIX] all: remove external ids fakely from base
Several modules defines records with the external ID `base.foo_bar` while it is
created inside this module (typically menus and groups).
While there is no technical reasons to do so but this may introduce issues:

- these records will not be deleted during uninstall
- if a language is loaded before the installation of the module, it won't be
  translated

The uninstallation will only remove the records with an external id linked to
this module (these would only be removed when removing base).

Installing a language before the module will drop the translations not linked
to an existing external id (as it can not be resolved).

This commit correct all the external ids tagged as from base or other incorrect
modules.
2016-09-02 16:14:26 +02:00
Jeremy Kersten 9a01be1265 [IMP] website_sale: add multi image on product template. 2016-08-26 15:21:09 +02:00
Yannick Tivisse 9e57185449 [IMP] base,sales_team: Move res_groups and menuitems to sales_team
Purpose:
Having the res_group defined in base and sales_team auto installed
with mail doens't make sense.

- Move the empty res_config class and the related view from
  base_setup to sales_team (base_setup only contains the 'General Settings'
  model and views
- Move the 'sale' related content from product to sale module (Access rights,
  menuitems,...)
- Set sales_team at autoinstall False. The module is installed when needed by
  crm or sale for example
- Set sales_team as a dependency of voip. (Access rights defined for configuration
  purpose)
- Set sales_team ad a dependency of subscription (Access rights issue too)

[FIX] account: move some ir.model.access to sale module
[FIX] payment: Move some ir.rule to website_sale
[FIX] stock: move some ir.model.access rule to sale_stock
[FIX] project: Move some ir.model.access rules to crm_project_issue
[FIX] mrp: Move some ir.model.access rules to sale_mrp
[FIX] calendar: move some ir.model.access rules to crm

Rename xmlids accordingly. Example: 'base.group_sale_manager' becomes
sales_team.group_sale_manager.

[ADD] sales_team: See own documents => See only his sales team
Moved the "User: Own Leads Only", "User: All Leads" and "Manager" groups from sale and crm
into sales_team module. Add the record rules so that user can see only his Own Sales Team
if "See Own Leads" is sales right and can see all sales teams if he is having sales rights
of "See All Leads" or manager.
2016-06-09 16:05:25 +02:00
Yannick Tivisse ccdb5cbfc0 Revert "[IMP] base,sales_team: Move res_groups and menuitems to sales_team"
This branch need more testing instead of doing 10 fixes. A lot of issues are occuring
when installing modules in different orders.

This reverts commit fa6e415cdb.
2016-06-06 17:26:30 +02:00
Yannick Tivisse fa6e415cdb [IMP] base,sales_team: Move res_groups and menuitems to sales_team
Purpose:
Having the res_group defined in base and sales_team auto installed
with mail doens't make sense.

- Move the empty res_config class and the related view from
  base_setup to sales_team (base_setup only contains the 'General Settings'
  model and views
- Move the 'sale' related content from product to sale module (Access rights,
  menuitems,...)
- Set sales_team at autoinstall False. The module is installed when needed by
  crm or sale for example
- Set sales_team as a dependency of voip. (Access rights defined for configuration
  purpose)
- Set sales_team ad a dependency of subscription (Access rights issue too)

Rename xmlids accordingly. Example: 'base.group_sale_manager' becomes
sales_team.group_sale_manager.
2016-06-06 15:46:52 +02:00
qdp-odoo e4dc50bf58 [IMP] pricelists improvements. Was PR #8228 2015-08-31 16:57:32 +02:00
Christophe Simonis 97073e2a73 [MERGE] forward port of branch saas-6 up to 51040b6 2015-07-28 13:56:16 +02:00
Christophe Simonis 9d6786bc43 [MERGE] forward port of branch 8.0 up to 5e6ec89 2015-07-27 14:56:49 +02:00
Goffin Simon fe12c3453b [FIX] product: access rights pricelist
If the price in a price list line is based on "Supplier Prices on the product form",
the model "product.supplierinfo" and "pricelist.partnerinfo" must be readable by the
public user.

opw:645709
2015-07-24 15:12:16 +02:00
Christophe Simonis fe2b5f35a4 [MERGE] forward port of branch saas-6 up to bf1e999 2015-05-28 14:27:38 +02:00
Olivier Dony d0c64049b9 [FIX] website_sale: missing portal access to payment terms and fiscal positions
The front-end portal menu "My Orders" allows portal
users to print their invoices. This requires read
access to fiscal positions and payment terms, otherwise
they just get a 500 Internal Error.
2015-05-08 13:44:33 +02:00
Jeremy Kersten bcb395616b [ADD] website_sale: manage pricelist by website.
Allow to specify which pricelist can be used on wich website for which countries
2015-05-08 12:14:38 +02:00
Denis Ledoux c73be555bf [FIX] website_sale: product attribute, value, price ACLs
When a model is regarded as public readable, no group should be set on the ACL,
to allow ANYONE to read the model, not just the users within the public group.
2015-01-20 16:55:52 +01:00
Christophe Matthieu 43977deb71 [IMP] product: refactoring of product variant. The main view became the view of product template and the product product (or product variant) are created with the variant values combinaison. Bom is splitted into bom and bom line and can use the variant combinaison. 2014-05-27 09:42:52 +02:00
Antony Lesuisse 3124343f04 [IMP] product style model renames, add user_id on website to be used in multiwebsite
bzr revid: al@openerp.com-20140130225853-6fgpmtaa8v1vr25x
2014-01-30 23:58:53 +01:00
Antony Lesuisse 4aa8eadf5f [REN] rename product characterisic into attributes
bzr revid: al@openerp.com-20140130221710-nf2ircxgx3vr1spy
2014-01-30 23:17:10 +01:00
Christophe Matthieu cf79ae7635 [FIX] website: access for portal user
bzr revid: chm@openerp.com-20140117154648-sxfisxqcv8o3fvzt
2014-01-17 16:46:48 +01:00
Christophe Matthieu 320a0bc28c [IMP] website/website_sale: Use group to display shipping address in frontend like the backend. Use group for product facet caracteristique (backend/frontend). Customize templates is displayed function of groups of ir.ui.view templates.
bzr revid: chm@openerp.com-20140115110547-v0nllq0f800tlhpg
2014-01-15 12:05:47 +01:00
Christophe Matthieu 24480a2440 [FIX] product: access right. Resolve: Use Superuser in name_get method to fetch partners/sellers
bzr revid: chm@openerp.com-20140109124423-vq7u14q089xiqtt9
2014-01-09 13:44:23 +01:00
Christophe Matthieu 9fd7db5150 [WIP] website/ir_rule: remove session from access right evaluation, allow to read pricelist to evrybody and use superuser for saleorder in website_sale
bzr revid: chm@openerp.com-20140107085728-77mxlims6fa0li76
2014-01-07 09:57:28 +01:00
Christophe Matthieu 63e2da36a6 [FIX] website: some access right
bzr revid: chm@openerp.com-20140106141817-2tf0dpfchi5x6kjw
2014-01-06 15:18:17 +01:00
Christophe Matthieu 229696111b [FIX] website_sale: access for product.pricelist.item
bzr revid: chm@openerp.com-20131209091142-1pyz1tz64d0gh39r
2013-12-09 10:11:42 +01:00
Christophe Matthieu 3f1ff327ad [FIX] website: access right for demo user
bzr revid: chm@openerp.com-20131114152212-jcmyzbf6zcpkp999
2013-11-14 16:22:12 +01:00
Christophe Matthieu 34600660bf [FIX] website_sale: access right for website.product.style
bzr revid: chm@openerp.com-20131112165415-c6o3c26djdtuaa2k
2013-11-12 17:54:15 +01:00
Christophe Matthieu 67c437df77 [FIX] website_sale: access right for product.attribute.product; white list for filter link
bzr revid: chm@openerp.com-20131105161737-b1o41v17p7wsjl6v
2013-11-05 17:17:37 +01:00
Christophe Matthieu f318f99825 [IMP] website_sale: attributes/filter, fix access right, add default value for filter (for custom user ecommerce with category,label...)
bzr revid: chm@openerp.com-20131105150928-ps01ziqnfgd9hu46
2013-11-05 16:09:28 +01:00
Christophe Matthieu a31847a432 [FIX] website_sale: add access rules for product.pricelist
bzr revid: chm@openerp.com-20131105092801-1vohr6w15cxqj4wp
2013-11-05 10:28:01 +01:00
Christophe Matthieu 20b6367ec5 [IMP] website_sale: better access rules and security
bzr revid: chm@openerp.com-20131008152233-zl3dxoyso9liahlm
2013-10-08 17:22:33 +02:00
Christophe Matthieu 2ae84ed2e2 [FIX] website_sale: access right for public access for price
bzr revid: chm@openerp.com-20131002083018-gavt68w57t9wneu5
2013-10-02 10:30:18 +02:00
Christophe Matthieu 2fab26a2d2 [IMP] point_of_sale, product: change model 'pos.category' of the pos into product.public.category in product. product.public.category is used for eg by pos and website_sale. Add some demo data for this category. Add a domain in pos 'model.js' to select non empty categories
bzr revid: chm@openerp.com-20130828151658-3isgyl93c3hwp1pc
2013-08-28 17:16:58 +02:00
Christophe Matthieu 05bb4f2dca [IMP] website_sale: use product.template insead of product.product
bzr revid: chm@openerp.com-20130820141203-vkg93z9odh0rlf4d
2013-08-20 16:12:03 +02:00
Christophe Matthieu d37aebb7f0 [IMP] website: security and public access
bzr revid: chm@openerp.com-20130802035504-lokijwh57e0q3w6a
2013-08-02 05:55:04 +02:00