Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[16.0][ADD] website_sale_product_compatibility and website_sale_product_contract_gift #351

Open
wants to merge 22 commits into
base: 16.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
6e8ff34
[ADD] website_sale_product_compatibility
remytms Jan 19, 2025
96eeae1
[ADD] website_sale_product_contract_gift
remytms Jan 19, 2025
4202f1f
[ADD] website_sale_product_contract_gift: add date for gift
remytms Feb 19, 2025
a3d82cd
[ADD] website_sale_product_contract_gift: create contract for gift
remytms Feb 20, 2025
175e624
[FIX] website_sale_product_contract_gift: prevent skipping address ch…
remytms Mar 5, 2025
a4b7b25
[FIX] website_sale_product_contract_gift: mandatory email
remytms Mar 5, 2025
3ea17b2
[IMP] website_sale_product_contract_gift: change partner and create user
remytms Mar 5, 2025
b0c839b
[FIX] website_sale_product_contract_gift: show email error
remytms Mar 6, 2025
282ef53
[FIX] website_sale_product_contract_gift: configure recurrence on con…
remytms Mar 6, 2025
01126fa
[FIX] website_sale_product_contract_gift: constraint on sale.order
remytms Mar 6, 2025
5f9fc1e
[FIX] website_sale_product_contract_gift: error in compute gift_date
remytms Mar 13, 2025
944c25d
[IMP] website_sale_product_compatibility: improvement without changes
remytms Mar 19, 2025
eabae42
[IMP] website_sale_product_contract_gift: cosmetic changes
remytms Mar 19, 2025
dc360a2
[FIX] add-website_sale_product_contract_gift: find existing partner
remytms Mar 19, 2025
209a068
[REF] website_sale_product_contract_gift: use new js system
remytms Mar 19, 2025
20bbd65
[FIX] website_sale_product_contract_gift: product compatibility
remytms Mar 20, 2025
e80e4f4
[IMP] website_sale_product_contract_gift: auto confirm gift order
remytms Mar 20, 2025
70c1aff
[REM] website_sale_product_contract_gift: remove cron
remytms Mar 26, 2025
e167cc3
[FIX] website_sale_product_contract_gift: wrong i18n
remytms Mar 26, 2025
864cc6a
[REF] website_sale_product_contract_gift: use mapped only on non-rela…
remytms Mar 26, 2025
35e5766
[FIX] website_sale_product_contract_gift: missing dependency
remytms Mar 26, 2025
2f686ad
[REF] website_sale_product_contract_gift: use test domain instead of …
remytms Mar 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
[ADD] website_sale_product_contract_gift
Add product contract that can be set as gift and therefore generate some
specific compatibilities and flow.
  • Loading branch information
remytms committed Feb 11, 2025
commit 96eeae12578dd1e99c8d8ac0ea3b5ca2d0008ea4
6 changes: 6 additions & 0 deletions setup/website_sale_product_contract_gift/setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import setuptools

setuptools.setup(
setup_requires=['setuptools-odoo'],
odoo_addon=True,
)
70 changes: 70 additions & 0 deletions website_sale_product_contract_gift/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
==================================
Website Sale Product Contract Gift
==================================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:a25ed6054ea1e7db1fe6f90cdb8102edd80859c7504cc1cebdaae1a0123c4819
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-coopiteasy%2Faddons-lightgray.png?logo=github
:target: https://github.com/coopiteasy/addons/tree/16.0/website_sale_product_contract_gift
:alt: coopiteasy/addons

|badge1| |badge2| |badge3|

Form to order subscription product

**Table of contents**

.. contents::
:local:

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/coopiteasy/addons/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/coopiteasy/addons/issues/new?body=module:%20website_sale_product_contract_gift%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
~~~~~~~

* Coop IT Easy SC

Contributors
~~~~~~~~~~~~

* `Coop IT Easy SC <https://coopiteasy.be>`_:

* Rémy Taymans

Maintainers
~~~~~~~~~~~

.. |maintainer-remytms| image:: https://github.com/remytms.png?size=40px
:target: https://github.com/remytms
:alt: remytms

Current maintainer:

|maintainer-remytms|

This module is part of the `coopiteasy/addons <https://github.com/coopiteasy/addons/tree/16.0/website_sale_product_contract_gift>`_ project on GitHub.

You are welcome to contribute.
4 changes: 4 additions & 0 deletions website_sale_product_contract_gift/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# SPDX-FileCopyrightText: 2024 Coop IT Easy SC
#
# SPDX-License-Identifier: AGPL-3.0-or-later
from . import models
26 changes: 26 additions & 0 deletions website_sale_product_contract_gift/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# SPDX-FileCopyrightText: 2024 Coop IT Easy SC
#
# SPDX-License-Identifier: AGPL-3.0-or-later

{
"name": "Website Sale Product Contract Gift",
"summary": """
Configure product contract to be a gift to someone else.""",
"version": "16.0.1.0.0",
"category": "Website",
"website": "https://github.com/coopiteasy/addons",
"author": "Coop IT Easy SC",
"maintainers": ["remytms"],
"license": "AGPL-3",
"application": False,
"depends": [
"website_sale_product_compatibility",
"product_contract",
],
"excludes": [],
"data": [
"views/product_views.xml",
],
"demo": [],
"qweb": [],
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_restrict_sepa_dd
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"

#. module: website_sale_restrict_sepa_dd
#: model:ir.model.fields,field_description:website_sale_restrict_sepa_dd.field_product_product__allow_sepa_dd_payment
#: model:ir.model.fields,field_description:website_sale_restrict_sepa_dd.field_product_template__allow_sepa_dd_payment
msgid "Allow SEPA Direct Debit Payment"
msgstr ""

#. module: website_sale_restrict_sepa_dd
#. odoo-python
#: code:addons/website_sale_restrict_sepa_dd/models/product_template.py:0
#, python-format
msgid ""
"Allow SEPA Direct Debit payment for the product in ordre to set Only SEPA "
"Direct Debit payment."
msgstr ""

#. module: website_sale_restrict_sepa_dd
#: model:ir.model.fields,field_description:website_sale_restrict_sepa_dd.field_sale_order__allow_sepa_dd_payment
msgid "Allow Sepa Dd Payment"
msgstr ""

#. module: website_sale_restrict_sepa_dd
#. odoo-python
#: code:addons/website_sale_restrict_sepa_dd/models/sale_order.py:0
#, python-format
msgid ""
"Cannot add product that does not allow SEPA Direct Debit with products that "
"allow only SEPA Direct Debit payment."
msgstr ""

#. module: website_sale_restrict_sepa_dd
#: model:ir.model.fields,field_description:website_sale_restrict_sepa_dd.field_product_product__only_sepa_dd_payment
#: model:ir.model.fields,field_description:website_sale_restrict_sepa_dd.field_product_template__only_sepa_dd_payment
msgid "Only SEPA Direct Debit Payment"
msgstr ""

#. module: website_sale_restrict_sepa_dd
#: model:ir.model.fields,field_description:website_sale_restrict_sepa_dd.field_sale_order__only_sepa_dd_payment
msgid "Only Sepa Dd Payment"
msgstr ""

#. module: website_sale_restrict_sepa_dd
#: model:ir.model,name:website_sale_restrict_sepa_dd.model_payment_provider
msgid "Payment Provider"
msgstr ""

#. module: website_sale_restrict_sepa_dd
#: model:ir.model,name:website_sale_restrict_sepa_dd.model_product_template
msgid "Product"
msgstr ""

#. module: website_sale_restrict_sepa_dd
#: model:ir.model,name:website_sale_restrict_sepa_dd.model_sale_order
msgid "Sales Order"
msgstr ""
5 changes: 5 additions & 0 deletions website_sale_product_contract_gift/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# SPDX-FileCopyrightText: 2024 Coop IT Easy SC
#
# SPDX-License-Identifier: AGPL-3.0-or-later
from . import product_template
from . import sale_order
11 changes: 11 additions & 0 deletions website_sale_product_contract_gift/models/product_template.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# SPDX-FileCopyrightText: 2024 Coop IT Easy SC
#
# SPDX-License-Identifier: AGPL-3.0-or-later

from odoo import fields, models


class ProductTemplate(models.Model):
_inherit = "product.template"

is_gift = fields.Boolean()
48 changes: 48 additions & 0 deletions website_sale_product_contract_gift/models/sale_order.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# SPDX-FileCopyrightText: 2024 Coop IT Easy SC
#
# SPDX-License-Identifier: AGPL-3.0-or-later


from odoo import _, api, models
from odoo.exceptions import ValidationError


class SaleOrder(models.Model):
_inherit = "sale.order"

@api.constrains("order_line")
def _check_gift_alone(self):
"""Ensure gift are not mixed in a sale order."""
for order in self:
at_least_one_gift = any(
order.order_line.mapped("product_id").mapped("is_gift")
)
is_all_gift = all(order.order_line.mapped("product_id").mapped("is_gift"))
if at_least_one_gift and not is_all_gift:
raise ValidationError(
_(
"Cannot add product gift in an order that "
"contains other product that are not gifts."
)
)

def check_product_compatibility(self, product_id):
warning = super().check_product_compatibility(product_id)
if not warning:
product = self.env["product.product"].browse(product_id).exists()
non_gifts = self.order_line.mapped("product_id").filtered(
lambda p: not p.is_gift
)
is_all_gift = all(self.order_line.mapped("product_id").mapped("is_gift"))
if product:
if product.is_gift and non_gifts:
warning = _(
f"Product {product.name} cannot be added because "
"it's a gift and gift must be purchase seperatly."
)
elif not product.is_gift and is_all_gift:
warning = _(
f"Product {product.name} cannot be added because "
"it is not a gift and other product are gifts."
)
return warning
3 changes: 3 additions & 0 deletions website_sale_product_contract_gift/readme/CONTRIBUTORS.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
* `Coop IT Easy SC <https://coopiteasy.be>`_:

* Rémy Taymans
1 change: 1 addition & 0 deletions website_sale_product_contract_gift/readme/DESCRIPTION.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Form to order subscription product
Loading
Loading