odoo13-addon-shopinvader-wishlist 13.0.3.4.2.dev1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. odoo/addons/shopinvader_wishlist/README.rst +69 -0
  2. odoo/addons/shopinvader_wishlist/__init__.py +4 -0
  3. odoo/addons/shopinvader_wishlist/__manifest__.py +15 -0
  4. odoo/addons/shopinvader_wishlist/components/__init__.py +1 -0
  5. odoo/addons/shopinvader_wishlist/components/access_info.py +20 -0
  6. odoo/addons/shopinvader_wishlist/demo/product_set.xml +17 -0
  7. odoo/addons/shopinvader_wishlist/i18n/shopinvader_wishlist.pot +66 -0
  8. odoo/addons/shopinvader_wishlist/models/__init__.py +1 -0
  9. odoo/addons/shopinvader_wishlist/models/product_set.py +80 -0
  10. odoo/addons/shopinvader_wishlist/readme/CONTRIBUTORS.rst +2 -0
  11. odoo/addons/shopinvader_wishlist/readme/CREDITS.rst +4 -0
  12. odoo/addons/shopinvader_wishlist/readme/DESCRIPTION.rst +1 -0
  13. odoo/addons/shopinvader_wishlist/services/__init__.py +1 -0
  14. odoo/addons/shopinvader_wishlist/services/wishlist.py +550 -0
  15. odoo/addons/shopinvader_wishlist/static/description/icon.png +0 -0
  16. odoo/addons/shopinvader_wishlist/static/description/index.html +426 -0
  17. odoo/addons/shopinvader_wishlist/tests/__init__.py +2 -0
  18. odoo/addons/shopinvader_wishlist/tests/test_product_set.py +119 -0
  19. odoo/addons/shopinvader_wishlist/tests/test_wishlist.py +368 -0
  20. odoo/addons/shopinvader_wishlist/views/product_set.xml +15 -0
  21. odoo/addons/shopinvader_wishlist/wizard/__init__.py +1 -0
  22. odoo/addons/shopinvader_wishlist/wizard/product_set_add.py +24 -0
  23. odoo/addons/shopinvader_wishlist/wizard/product_set_add.xml +13 -0
  24. odoo13_addon_shopinvader_wishlist-13.0.3.4.2.dev1.dist-info/METADATA +86 -0
  25. odoo13_addon_shopinvader_wishlist-13.0.3.4.2.dev1.dist-info/RECORD +27 -0
  26. odoo13_addon_shopinvader_wishlist-13.0.3.4.2.dev1.dist-info/WHEEL +5 -0
  27. odoo13_addon_shopinvader_wishlist-13.0.3.4.2.dev1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,69 @@
1
+ ====================
2
+ Shopinvader Wishlist
3
+ ====================
4
+
5
+ ..
6
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
7
+ !! This file is generated by oca-gen-addon-readme !!
8
+ !! changes will be overwritten. !!
9
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10
+ !! source digest: sha256:659f1a86278f41835a64306a7c85a95392ac9cf2852287596fdcd52019c888ea
11
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12
+
13
+ .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
14
+ :target: https://odoo-community.org/page/development-status
15
+ :alt: Beta
16
+ .. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
17
+ :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
18
+ :alt: License: AGPL-3
19
+ .. |badge3| image:: https://img.shields.io/badge/github-shopinvader%2Fodoo--shopinvader-lightgray.png?logo=github
20
+ :target: https://github.com/shopinvader/odoo-shopinvader/tree/13.0/shopinvader_wishlist
21
+ :alt: shopinvader/odoo-shopinvader
22
+
23
+ |badge1| |badge2| |badge3|
24
+
25
+ Expose wishlist features for Shopinvader websites.
26
+
27
+ **Table of contents**
28
+
29
+ .. contents::
30
+ :local:
31
+
32
+ Bug Tracker
33
+ ===========
34
+
35
+ Bugs are tracked on `GitHub Issues <https://github.com/shopinvader/odoo-shopinvader/issues>`_.
36
+ In case of trouble, please check there if your issue has already been reported.
37
+ If you spotted it first, help us to smash it by providing a detailed and welcomed
38
+ `feedback <https://github.com/shopinvader/odoo-shopinvader/issues/new?body=module:%20shopinvader_wishlist%0Aversion:%2013.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
39
+
40
+ Do not contact contributors directly about support or help with technical issues.
41
+
42
+ Credits
43
+ =======
44
+
45
+ Authors
46
+ ~~~~~~~
47
+
48
+ * Camptocamp
49
+
50
+ Contributors
51
+ ~~~~~~~~~~~~
52
+
53
+ * Simone Orsi <simone.orsi@camptocamp.com>
54
+ * Laurent Mignon <laurent.mignon@acsone.com>
55
+
56
+ Other credits
57
+ ~~~~~~~~~~~~~
58
+
59
+ The development of this module has been financially supported by:
60
+
61
+ * Camptocamp
62
+ * Cosanum
63
+
64
+ Maintainers
65
+ ~~~~~~~~~~~
66
+
67
+ This module is part of the `shopinvader/odoo-shopinvader <https://github.com/shopinvader/odoo-shopinvader/tree/13.0/shopinvader_wishlist>`_ project on GitHub.
68
+
69
+ You are welcome to contribute.
@@ -0,0 +1,4 @@
1
+ from . import components
2
+ from . import models
3
+ from . import services
4
+ from . import wizard
@@ -0,0 +1,15 @@
1
+ # Copyright 2019 Camptocamp SA
2
+ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
3
+
4
+ {
5
+ "name": "Shopinvader Wishlist",
6
+ "summary": """
7
+ Handle shop wishlist""",
8
+ "version": "13.0.3.4.1",
9
+ "license": "AGPL-3",
10
+ "author": "Camptocamp,Odoo Community Association (OCA)",
11
+ "website": "https://github.com/shopinvader/odoo-shopinvader",
12
+ "depends": ["shopinvader", "sale_wishlist"],
13
+ "demo": ["demo/product_set.xml"],
14
+ "data": ["views/product_set.xml", "wizard/product_set_add.xml"],
15
+ }
@@ -0,0 +1 @@
1
+ from . import access_info
@@ -0,0 +1,20 @@
1
+ # Copyright 2021 Camptocamp (http://www.camptocamp.com).
2
+ # @author Simone Orsi <simahawk@gmail.com>
3
+ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
4
+
5
+ from odoo.addons.component.core import Component
6
+
7
+
8
+ class PartnerAccess(Component):
9
+ _inherit = "shopinvader.partner.access"
10
+
11
+ def permissions(self):
12
+ perm = super().permissions()
13
+ perm["wishlist"] = self._wishlist_perm()
14
+ return perm
15
+
16
+ def _wishlist_perm(self):
17
+ return {"create": True, "read": True, "update": True, "delete": True}
18
+
19
+ def for_wishlist(self, wishlist):
20
+ return {"read": True, "update": True, "delete": True}
@@ -0,0 +1,17 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <odoo>
3
+ <record id="wishlist_1" model="product.set">
4
+ <field name="name">Wishlist 1</field>
5
+ <field name="ref">WISH_1</field>
6
+ <field name="typology">wishlist</field>
7
+ <field name="partner_id" ref="shopinvader.partner_1"/>
8
+ </record>
9
+
10
+ <record id="wishlist_1_line_1" model="product.set.line">
11
+ <field name="product_set_id" ref="wishlist_1"/>
12
+ <field name="product_id" ref="product.product_product_4b"/>
13
+ <field name="quantity">1</field>
14
+ <field name="sequence">10</field>
15
+ </record>
16
+
17
+ </odoo>
@@ -0,0 +1,66 @@
1
+ # Translation of Odoo Server.
2
+ # This file contains the translation of the following modules:
3
+ # * shopinvader_wishlist
4
+ #
5
+ msgid ""
6
+ msgstr ""
7
+ "Project-Id-Version: Odoo Server 13.0\n"
8
+ "Report-Msgid-Bugs-To: \n"
9
+ "Last-Translator: \n"
10
+ "Language-Team: \n"
11
+ "MIME-Version: 1.0\n"
12
+ "Content-Type: text/plain; charset=UTF-8\n"
13
+ "Content-Transfer-Encoding: \n"
14
+ "Plural-Forms: \n"
15
+
16
+ #. module: shopinvader_wishlist
17
+ #: model:ir.model.fields,help:shopinvader_wishlist.field_product_set__shopinvader_backend_id
18
+ #: model:ir.model.fields,help:shopinvader_wishlist.field_product_set_add__shopinvader_backend_id
19
+ msgid ""
20
+ "If you are using this set for shopinvader customer you must select a "
21
+ "backend."
22
+ msgstr ""
23
+
24
+ #. module: shopinvader_wishlist
25
+ #: code:addons/shopinvader_wishlist/services/wishlist.py:0
26
+ #, python-format
27
+ msgid "JSON data mode `%s` not found."
28
+ msgstr ""
29
+
30
+ #. module: shopinvader_wishlist
31
+ #: code:addons/shopinvader_wishlist/services/wishlist.py:0
32
+ #, python-format
33
+ msgid "Must be authenticated to create a wishlist"
34
+ msgstr ""
35
+
36
+ #. module: shopinvader_wishlist
37
+ #: model:ir.model,name:shopinvader_wishlist.model_product_set
38
+ msgid "Product set"
39
+ msgstr ""
40
+
41
+ #. module: shopinvader_wishlist
42
+ #: model:ir.model,name:shopinvader_wishlist.model_product_set_line
43
+ msgid "Product set line"
44
+ msgstr ""
45
+
46
+ #. module: shopinvader_wishlist
47
+ #: code:addons/shopinvader_wishlist/models/product_set.py:0
48
+ #, python-format
49
+ msgid "Provide `product_ids` or `invader_variant_id`"
50
+ msgstr ""
51
+
52
+ #. module: shopinvader_wishlist
53
+ #: model:ir.model.fields,field_description:shopinvader_wishlist.field_product_set__shopinvader_backend_id
54
+ #: model:ir.model.fields,field_description:shopinvader_wishlist.field_product_set_add__shopinvader_backend_id
55
+ msgid "Shopinvader Backend"
56
+ msgstr ""
57
+
58
+ #. module: shopinvader_wishlist
59
+ #: model:ir.model.fields,field_description:shopinvader_wishlist.field_product_set_line__shopinvader_variant_id
60
+ msgid "Shopinvader Variant"
61
+ msgstr ""
62
+
63
+ #. module: shopinvader_wishlist
64
+ #: model:ir.model,name:shopinvader_wishlist.model_product_set_add
65
+ msgid "Wizard model to add product set into a quotation"
66
+ msgstr ""
@@ -0,0 +1 @@
1
+ from . import product_set
@@ -0,0 +1,80 @@
1
+ # Copyright 2019 Camptocamp SA
2
+ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
3
+
4
+ import logging
5
+
6
+ from odoo import _, api, exceptions, fields, models
7
+
8
+ _logger = logging.getLogger(__name__)
9
+
10
+
11
+ class ProductSet(models.Model):
12
+
13
+ _inherit = "product.set"
14
+
15
+ shopinvader_backend_id = fields.Many2one(
16
+ comodel_name="shopinvader.backend",
17
+ help="If you are using this set for shopinvader customer "
18
+ "you must select a backend.",
19
+ )
20
+
21
+ def get_line_by_product(self, product_id=None, invader_variant_id=None):
22
+ # Backward compat
23
+ _logger.info(
24
+ "DEPRECATED `get_line_by_product`. Use `get_lines_by_products`"
25
+ )
26
+ if product_id:
27
+ product_id = [product_id]
28
+ if invader_variant_id:
29
+ invader_variant_id = [invader_variant_id]
30
+ return self.get_lines_by_products(
31
+ product_ids=product_id, invader_variant_ids=invader_variant_id
32
+ )
33
+
34
+ def get_lines_by_products(
35
+ self, product_ids=None, invader_variant_ids=None
36
+ ):
37
+ if not product_ids and not invader_variant_ids:
38
+ raise exceptions.ValidationError(
39
+ _("Provide `product_ids` or `invader_variant_id`")
40
+ )
41
+ if product_ids:
42
+ return self.set_line_ids.filtered(
43
+ lambda x: x.product_id.id in product_ids
44
+ )
45
+ else:
46
+ return self.set_line_ids.filtered(
47
+ lambda x: x.shopinvader_variant_id.id in invader_variant_ids
48
+ )
49
+
50
+
51
+ class ProductSetLine(models.Model):
52
+
53
+ _inherit = "product.set.line"
54
+
55
+ shopinvader_variant_id = fields.Many2one(
56
+ comodel_name="shopinvader.variant",
57
+ compute="_compute_shopinvader_variant",
58
+ inverse="_inverse_shopinvader_variant",
59
+ )
60
+
61
+ def _inverse_shopinvader_variant(self):
62
+ for record in self:
63
+ if record.shopinvader_variant_id and not record.product_id:
64
+ record.product_id = record.shopinvader_variant_id.record_id
65
+
66
+ @api.depends("product_id")
67
+ @api.depends_context("lang")
68
+ def _compute_shopinvader_variant(self):
69
+ for record in self.with_context(active_test=False):
70
+ if record.product_id and not record.shopinvader_variant_id:
71
+ backend = record.product_set_id.shopinvader_backend_id
72
+ lang = self.env.context.get("lang")
73
+ variant = record.product_id._get_invader_variant(backend, lang)
74
+ if not variant:
75
+ lang = record.product_set_id.partner_id.lang
76
+ # try w/ partner lang
77
+ variant = record.product_id._get_invader_variant(
78
+ backend, lang
79
+ )
80
+ record.shopinvader_variant_id = variant
@@ -0,0 +1,2 @@
1
+ * Simone Orsi <simone.orsi@camptocamp.com>
2
+ * Laurent Mignon <laurent.mignon@acsone.com>
@@ -0,0 +1,4 @@
1
+ The development of this module has been financially supported by:
2
+
3
+ * Camptocamp
4
+ * Cosanum
@@ -0,0 +1 @@
1
+ Expose wishlist features for Shopinvader websites.
@@ -0,0 +1 @@
1
+ from . import wishlist