diff --git a/addons/website_sale_digital/__init__.py b/addons/website_sale_digital/__init__.py index dedfc9ab606..38053efe854 100644 --- a/addons/website_sale_digital/__init__.py +++ b/addons/website_sale_digital/__init__.py @@ -1,4 +1,5 @@ # -*- encoding: utf-8 -*- import controllers import product +import attachment import account_invoice diff --git a/addons/website_sale_digital/attachment.py b/addons/website_sale_digital/attachment.py new file mode 100644 index 00000000000..a47d51c081d --- /dev/null +++ b/addons/website_sale_digital/attachment.py @@ -0,0 +1,8 @@ +# -*- encoding: utf-8 -*- +from openerp import models, fields, api, _ + + +class ir_attachment(models.Model): + _inherit = ['ir.attachment'] + + product_downloadable = fields.Boolean("Downloadable from product portal", default=False) diff --git a/addons/website_sale_digital/demo.xml b/addons/website_sale_digital/demo.xml index f0df2124616..67f58c5c313 100644 --- a/addons/website_sale_digital/demo.xml +++ b/addons/website_sale_digital/demo.xml @@ -3,7 +3,7 @@ Alice's Adventures in Wonderland - Lewis Caroll 2 4.50 - digital + service Novel by Lewis Caroll. @@ -16,5 +16,6 @@ product.template + True diff --git a/addons/website_sale_digital/product.py b/addons/website_sale_digital/product.py index 2efc3865065..468ea87d3c8 100644 --- a/addons/website_sale_digital/product.py +++ b/addons/website_sale_digital/product.py @@ -11,30 +11,19 @@ class ProductTemplate(models.Model): def _compute_attachment_count(self): IrAttachment = self.env['ir.attachment'] for ptemplate in self: - prod_tmpl_attach_count = IrAttachment.search_count([('res_model', '=', 'product.template'), ('res_id', 'in', ptemplate.ids)]) - prod_attach_count = IrAttachment.search_count([('res_model', '=', 'product.product'), ('res_id', 'in', ptemplate.product_variant_ids.ids)]) - ptemplate.attachment_count = prod_tmpl_attach_count + prod_attach_count - - @api.model - def _get_product_template_type(self): - res = super(ProductTemplate, self)._get_product_template_type() - if 'digital' not in [item[0] for item in res]: - res.append(('digital', _('Digital Content'))) - return res + ptemplate.attachment_count = IrAttachment.search_count([('res_model', '=', ptemplate._name), ('res_id', 'in', ptemplate.ids), ('product_downloadable', '=', True)]) @api.multi def action_open_attachments(self): self.ensure_one() return { 'name': _('Digital Attachments'), - 'domain': ['|', - '&', ('res_model', '=', 'product.product'), ('res_id', 'in', self.product_variant_ids.ids), - '&', ('res_model', '=', self._name), ('res_id', '=', self.id)], + 'domain': [('res_model', '=', self._name), ('res_id', '=', self.id), ('product_downloadable', '=', True)], 'res_model': 'ir.attachment', 'type': 'ir.actions.act_window', 'view_mode': 'kanban,form', 'view_type': 'form', - 'context': "{'default_res_model': '%s','default_res_id': %d}" % (self._name, self.id), + 'context': "{'default_res_model': '%s','default_res_id': %d, 'default_product_downloadable': True}" % (self._name, self.id), } @@ -47,17 +36,21 @@ class Product(models.Model): def _compute_attachment_count(self): IrAttachment = self.env['ir.attachment'] for product in self: - product.attachment_count = IrAttachment.search_count([('res_model', '=', product._name), ('res_id', 'in', product.ids)]) + prod_tmpl_attach_count = IrAttachment.search_count([('res_model', '=', 'product.template'), ('res_id', 'in', product.product_tmpl_id.ids), ('product_downloadable', '=', True)]) + prod_attach_count = IrAttachment.search_count([('res_model', '=', 'product.product'), ('res_id', 'in', product.ids), ('product_downloadable', '=', True)]) + product.attachment_count = prod_tmpl_attach_count + prod_attach_count @api.multi def action_open_attachments(self): self.ensure_one() return { 'name': _('Digital Attachments'), - 'domain': [('res_model', '=', self._name), ('res_id', '=', self.id)], + 'domain': [('product_downloadable', '=', True), '|', + '&', ('res_model', '=', 'product.template'), '&', ('res_id', '=', self.product_tmpl_id.id), + '&', ('res_model', '=', self._name), '&', ('res_id', '=', self.id)], 'res_model': 'ir.attachment', 'type': 'ir.actions.act_window', 'view_mode': 'kanban,form', 'view_type': 'form', - 'context': "{'default_res_model': '%s','default_res_id': %d}" % (self._name, self.id), + 'context': "{'default_res_model': '%s','default_res_id': %d, 'default_product_downloadable': True}" % (self._name, self.id), } diff --git a/addons/website_sale_digital/views/website_sale_digital_view.xml b/addons/website_sale_digital/views/website_sale_digital_view.xml index de95ef2d30c..8cc8a8cf8c6 100644 --- a/addons/website_sale_digital/views/website_sale_digital_view.xml +++ b/addons/website_sale_digital/views/website_sale_digital_view.xml @@ -6,8 +6,7 @@
-
@@ -20,8 +19,7 @@
-