Commit c1b4c2ef by François C.

Add Supercafoutch addons directory

parent 58222c66
# -*- encoding: utf-8 -*-
##############################################################################
#
# Sale - Food Module for Odoo
# Copyright (C) 2012-Today GRAP (http://www.grap.coop)
# @author Julien WESTE
# @author Sylvain LE GAL (https://twitter.com/legalsylvain)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from . import model
from . import report
# -*- coding: utf-8 -*-
##############################################################################
#
# Sale - Food Module for Odoo
# Copyright (C) 2012-Today GRAP (http://www.grap.coop)
# @author Julien WESTE
# @author Sylvain LE GAL (https://twitter.com/legalsylvain)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
{
'name': 'Supercafoutch Price Tag',
'version': '9.0.1.0.1',
'category': 'Custom',
'description': """
Functionnalities
- Showing a new tab `Food Informations` on product form view.
- Default price tag for products with its management by user's right.
""",
'author': 'GRAP,'
'Akretion - Julien WESTE - original',
'website': 'http://www.grap.coop',
'license': 'AGPL-3',
'depends': [
'product',
'product_to_print',
'report',
'l10n_fr_department',
'purchase_package_qty',
],
'data': [
'security/res_groups.yml',
'security/ir.model.access.csv',
'data/ir_actions_report_xml.yml',
'data/report_paperformat.xml',
'data/pricetag_model.xml',
'data/product_category_print.xml',
'report/coop_custom_product_report.xml',
'report/report_pricetag.xml',
'views/view_product_label.xml',
'views/view_product_product.xml',
'views/view_product_template.xml',
'views/view_product_uom_categ.xml',
'views/action.xml',
'views/menu.xml',
],
'demo': [
'demo/res_groups.yml',
],
'css': [
'static/src/css/pricetag.css',
],
}
-
I remove report_product_label on button "Print"
-
!python {model: ir.actions.report.xml}: |
report_product_label_id = self.search(cr, uid, [('report_name', '=', 'product.report_productlabel')])
report_product_label = self.browse(cr, uid, report_product_label_id[0])
if report_product_label and report_product_label.ir_values_id:
report_product_label.unlink_action()
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="product_to_print.pricetag_model_default" model="pricetag.model">
<field name="pricetag_paperformat_id" ref="bulk_product_pricetag.paperformat_pricetag"/>
<field name="report_model">bulk_product_pricetag.report_pricetag</field>
</record>
</odoo>
<?xml version="1.0"?>
<!--
Copyright (C) 2016-Today: La Louve (<http://www.lalouve.net/>)
@author: Julien Weste
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-->
<odoo>
<record model="product.category.print" id="demo_category">
<field name="name">Default Category</field>
<field name="field_ids" eval="[(4, ref('product.field_product_product_name')),(4, ref('product.field_product_product_list_price'))]" />
<field name="pricetag_model_id" ref="product_to_print.pricetag_model_default"/>
</record>
</odoo>
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="paperformat_pricetag" model="report.paperformat">
<field name="name">Default pricetag paper</field>
<field name="default" eval="True" />
<field name="format">A4</field>
<field name="page_height">0</field>
<field name="page_width">0</field>
<field name="orientation">Portrait</field>
<field name="margin_top">8</field>
<field name="margin_bottom">1</field>
<field name="margin_left">3</field>
<field name="margin_right">2</field>
<field name="header_line" eval="False" />
<field name="header_spacing">0</field>
<field name="dpi">2400</field>
</record>
</odoo>
\ No newline at end of file
# -*- encoding: utf-8 -*-
##############################################################################
#
# Sale - Food Module for Odoo
# Copyright (C) 2012-Today GRAP (http://www.grap.coop)
# @author Julien WESTE
# @author Sylvain LE GAL (https://twitter.com/legalsylvain)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
- !record {model: res.groups, id: group_food_manager}:
users:
- base.user_root
- !record {model: res.groups, id: base.group_sale_manager}:
users:
- base.user_root
# -*- coding: utf-8 -*-
##############################################################################
#
# Sale - Food Module for Odoo
# Copyright (C) 2012-Today GRAP (http://www.grap.coop)
# @author Julien WESTE
# @author Sylvain LE GAL (https://twitter.com/legalsylvain)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from . import product_label
from . import product_template
from . import product_uom_categ
# -*- encoding: utf-8 -*-
##############################################################################
#
# Sale - Food Module for Odoo
# Copyright (C) 2012-Today GRAP (http://www.grap.coop)
# Copyright (C) 2016-Today La Louve (http://www.lalouve.net)
# @author Julien WESTE
# @author Sylvain LE GAL (https://twitter.com/legalsylvain)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp import tools, fields, models, api
class ProductLabel(models.Model):
_name = 'product.label'
# Columns Section
code = fields.Char(string='Code', required=True)
name = fields.Char(string='Name', required=True)
active = fields.Boolean(string='Active', default=True)
company_id = fields.Many2one(string='Company', comodel_name='res.company')
website = fields.Char(string='Website')
note = fields.Text(string='Note')
# image: all image fields are base64 encoded and PIL-supported
image = fields.Binary(
string='Image', attachment=True, help="This field holds the image"
" used as image for the label, limited to 1024x1024px.")
image_medium = fields.Binary(
string='Medium-sized image', attachment=True, help="Medium-sized"
" image of the product. It is automatically resized as a 128x128px"
" image, with aspect ratio preserved, only when the image exceeds one"
" of those sizes. Use this field in form views or some kanban views.")
image_small = fields.Binary(
string='Small-sized image', attachment=True, help="Small-sized image"
" of the product. It is automatically resized as a 64x64px image,"
" with aspect ratio preserved. Use this field anywhere a small image"
" is required.")
# Overload Section
@api.model
def create(self, vals):
tools.image_resize_images(vals)
return super(ProductLabel, self).create(vals)
@api.multi
def write(self, vals):
tools.image_resize_images(vals)
return super(ProductLabel, self).write(vals)
# -*- coding: utf-8 -*-
##############################################################################
#
# Sale - Food Module for Odoo
# Copyright (C) 2012-Today GRAP (http://www.grap.coop)
# @author Julien WESTE
# @author Sylvain LE GAL (https://twitter.com/legalsylvain)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp import api, fields, models, _
from openerp.exceptions import UserError
class ProductTemplate(models.Model):
_inherit = 'product.template'
# Constant Section
_FRESH_CATEGORY_KEYS = [
('extra', 'Extra'),
('1', 'Category I'),
('2', 'Category II'),
('3', 'Category III'),
]
_FRESH_RANGE_KEYS = [
('1', '1 - Fresh'),
('2', '2 - Canned'),
('3', '3 - Frozen'),
('4', '4 - Uncooked and Ready to Use'),
('5', '5 - Cooked and Ready to Use'),
('6', '6 - Dehydrated and Shelf'),
]
@api.depends('farming_method', 'other_information')
@api.multi
def _compute_pricetag_coopinfos(self):
for pt in self:
tmp = ''
if pt.other_information:
tmp = pt.other_information
if pt.farming_method:
tmp = pt.farming_method + \
(' - ' + tmp if tmp else '')
pt.pricetag_coopinfos = tmp
@api.depends(
'rack_instruction', 'rack_location', 'rack_number_of_packages',
'default_seller_id')
@api.multi
def _compute_pricetag_rackinfos(self):
for pt in self:
tmp = ''
if pt.rack_instruction:
tmp = pt.rack_instruction
if pt.rack_location:
tmp = pt.rack_location + \
(' - ' + tmp if tmp else '')
if pt.rack_number_of_packages:
tmp = pt.rack_number_of_packages + \
(' - ' + tmp if tmp else '')
if pt.default_seller_id.package_qty:
tmp = str(pt.default_seller_id.package_qty) + \
(' - ' + tmp if tmp else '')
pt.pricetag_rackinfos = tmp
# Columns section
label_ids = fields.Many2many(
string='Labels', comodel_name='product.label',
relation='product_label_product_rel',
column_1='product_id', column_2='label_id')
expiration_date_days = fields.Integer(
string='Expiration Date (Days)', help="Field used to compute the"
" expiration date. (Number of days after packaging the product)")
expiration_comsumption_days = fields.Integer(
string='Expiration Consumption (Days)')
ingredients = fields.Text(string='Ingredients')
extra_note_bizerba_pricetag_1 = fields.Char(
string='Extra Note printed on Bizerba Pricetags #1')
extra_note_bizerba_pricetag_2 = fields.Char(
string='Extra Note printed on Bizerba Pricetags #2')
is_mercuriale = fields.Boolean(
'Mercuriale Product', help="A product in mercuriale has price"
" that changes very regularly.")
weight_net = fields.Float('Net Weight', default=0)
price_volume = fields.Char(
compute='_compute_price_volume', string='Price by liter')
price_weight_net = fields.Char(
compute='_compute_price_weight_net', string='Price by kg')
country_id = fields.Many2one(
string='Origin Country', comodel_name='res.country',
help="Country of production of the product")
department_id = fields.Many2one(
string='Origin Department', comodel_name='res.country.department',
help="Department of production of the product")
origin_description = fields.Char(
string='Origin Complement',
help="Production location complementary information",)
maker_description = fields.Char(string='Maker')
pricetag_origin = fields.Char(
compute='_compute_pricetag_origin', string='Text about origin')
fresh_category = fields.Selection(
_FRESH_CATEGORY_KEYS, string='Category for Fresh Product',
help="Extra - Hight Quality : product without default ;\n"
"Quality I - Good Quality : Product with little defaults ;\n"
"Quality II - Normal Quality : Product with default ;\n"
"Quality III - Bad Quality : Use this option only in"
" specific situation.")
fresh_range = fields.Selection(
_FRESH_RANGE_KEYS, 'Range for Fresh Product')
extra_food_info = fields.Char(
compute='_compute_extra_food_info',
string='Extra information for invoices')
rack_instruction = fields.Char(
"Rack Instruction", help="""For example, the number of packages that
should be stored on the rack""")
rack_location = fields.Char(
"Rack Location", help="""The name or place of the rack""")
rack_number_of_packages = fields.Char(
"Number of packages on the rack")
farming_method = fields.Char(
"Farming Method", help="""Organic Label""")
other_information = fields.Char("Other Information")
pricetag_rackinfos = fields.Char(
compute=_compute_pricetag_rackinfos, string='Coop rack fields')
pricetag_coopinfos = fields.Char(
compute=_compute_pricetag_coopinfos, string='Coop custom fields')
category_print_id = fields.Many2one(
comodel_name='product.category.print', string='Print Category')
# Compute Section
@api.depends('list_price', 'volume')
@api.multi
def _compute_price_volume(self):
"""Return the price by liter"""
for pt in self:
if pt.list_price and pt.volume:
pt.price_volume = "%.2f" % round(pt.list_price / pt.volume, 2)
else:
pt.price_volume = ""
@api.depends('list_price', 'weight_net')
@api.multi
def _compute_price_weight_net(self):
"""Return the price by kg"""
for pt in self:
if pt.list_price and pt.weight_net:
pt.price_weight_net = "%.2f" % round(
pt.list_price / pt.weight_net, 2)
else:
pt.price_weight_net = ""
@api.depends('origin_description', 'department_id', 'country_id')
@api.multi
def _compute_pricetag_origin(self):
for pt in self:
tmp = ''
if pt.origin_description:
tmp = pt.origin_description
if pt.department_id:
tmp = pt.department_id.name + \
(' - ' + tmp if tmp else '')
if pt.country_id:
tmp = pt.country_id.name.upper() + \
(' - ' + tmp if tmp else '')
if pt.maker_description:
tmp = (tmp and (tmp + ' - ') or '') + pt.maker_description
pt.pricetag_origin = tmp
@api.depends('fresh_category', 'fresh_range')
@api.multi
def _compute_extra_food_info(self):
"""Return extra information about food for legal documents"""
for pt in self:
tmp = ''
if pt.fresh_range:
tmp += _(' - Range: ') + pt.fresh_range
if pt.fresh_category:
tmp += _(" - Category: ") + pt.fresh_category
pt.extra_food_info = tmp
# Constraints section
@api.multi
@api.constrains('department_id', 'country_id')
def _check_origin_department_country(self):
for pt in self:
if pt.department_id.country_id and \
pt.department_id.country_id.id != \
pt.country_id.id:
raise UserError(
_("Error ! Department %s doesn't belong to %s.")
% (pt.department_id.name, pt.country_id.name))
# Views section
@api.multi
@api.onchange('department_id')
def onchange_department_id(self):
for pt in self:
if pt.department_id:
pt.country_id = pt.department_id.country_id
else:
pt.country_id = False
@api.multi
@api.onchange('country_id')
def onchange_country_id(self):
for pt in self:
if pt.country_id:
pt.department_id = False
# -*- coding: utf-8 -*-
##############################################################################
#
# Sale - Food Module for Odoo
# Copyright (C) 2012-Today GRAP (http://www.grap.coop)
# @author Julien WESTE
# @author Sylvain LE GAL (https://twitter.com/legalsylvain)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp import fields, models
class ProductUomCateg(models.Model):
_inherit = 'product.uom.categ'
pricetag_printable = fields.Boolean('Print on Price Tag')
# -*- coding: utf-8 -*-
##############################################################################
#
# Sale - Food Module for Odoo
# Copyright (C) 2012-Today GRAP (http://www.grap.coop)
# @author Julien WESTE
# @author Sylvain LE GAL (https://twitter.com/legalsylvain)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from . import report_pricetag
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- QWeb Reports -->
<report
id="pricetag"
model="report.pricetag"
string="Pricetags"
report_type="qweb-pdf"
name="bulk_product_pricetag.report_pricetag"
file="bulk_product_pricetag.report_pricetag"
attachment_use="False"
/>
<record id="bulk_product_pricetag.pricetag" model="ir.actions.report.xml">
<field name="paperformat_id" ref="bulk_product_pricetag.paperformat_pricetag"/>
<field name="attachment_use" eval="0"/>
</record>
</odoo>
# -*- coding: utf-8 -*-
from openerp import api, models
class ReportPricetag(models.AbstractModel):
_name = 'report.bulk_product_pricetag.report_pricetag'
@api.model
def _get_products(self, lines, fields):
result = []
line_ids = self.env['product.pricetag.wizard.line'].browse(lines)
for line in line_ids:
val = {}
val['line'] = line
val['product'] = line.product_id
result.append(val)
return result
@api.multi
def render_html(self, data):
self.model = self.env.context.get('active_model')
docs = self.env[self.model].browse(self.env.context.get('active_id'))
line_ids = data['form'].get('line_ids', [])
fields = data['form'].get('fields', [])
report_context = self._context.copy()
report_context.update(data['form'].get('used_context', {}))
product_res = self.with_context(report_context)._get_products(
line_ids, fields)
pricetag_model = self.env['product.category.print'].browse(
data['form']['category_print_id']).pricetag_model_id
report_model = pricetag_model.report_model
docargs = {
'doc_ids': self.ids,
'partner_id': self.env.user.partner_id,
'doc_model': self.model,
'data': data['form'],
'docs': docs,
'Products': product_res,
}
return self.env['report'].render(
report_model, docargs)
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="minimal_layout_inherit" inherit_id="report.minimal_layout">
<xpath expr="//head" position="inside">
<link rel='stylesheet' href="/bulk_product_pricetag/static/src/css/pricetag.css"/>
</xpath>
</template>
<template id="report_pricetag">
<t t-call="report.html_container">
<div class="page">
<t t-foreach="Products" t-as="product">
<t t-foreach="product['line'].quantity" t-as="q">
<div class="label_container">
<div class="pricetag">
<div class="label_top">
<div class="product_name">
<t t-esc="product['product'].name"/>
</div>
</div>
<div class="label_left">
<div class="product_informations">
<t t-if="product['product'].code">Code: <t t-esc="product['product'].code"/><br/></t>
<t t-if="product['product'].weight_net"><t t-esc="product['product'].weight_net"/> kg --- <t t-esc="product['product'].price_weight_net"/> €/kg<br/></t>
<t t-if="not(product['product'].weight_net) and product['product'].volume"><t t-esc="product['product'].volume"/>L --- <t t-esc="product['product'].price_volume"/> €/L<br/></t>
</div>
</div>
<div class="label_right">
<div class="product_price">
<t t-esc="'%0.2f' % (product['product'].list_price)"/>
</div>
</div>
<div class="label_bottom">
<div class="product_shelf_origin">
<t name="pricetag_origine" t-if="product['product'].pricetag_origin">Origine: <t t-esc="product['product'].pricetag_origin"/><br/></t>
</div>
<div class="product_shelf_rackinfo_barcode">
<t t-if="product['product'].pricetag_rackinfos"><t t-esc="product['product'].pricetag_rackinfos"/></t>&#160;&#160;
<t t-if="product['product'].barcode"><t t-esc="product['product'].barcode"/></t>
</div>
<div class="pricetag_shelf_coopinfos">
<t t-if="product['product'].pricetag_coopinfos"><t t-esc="product['product'].pricetag_coopinfos"/> </t>
</div>
</div>
</div>
</div>
</t>
</t>
</div>
</t>
</template>
</odoo>
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
,,,,,,,
,,,,,,,
access_model_product_label,access_model_product_label,bulk_product_pricetag.model_product_label,,1,0,0,0
access_model_product_label,access_model_product_label,bulk_product_pricetag.model_product_label,bulk_product_pricetag.group_food_manager_sc,1,1,1,0
# -*- coding: utf-8 -*-
##############################################################################
#
# Sale - Food Module for Odoo
# Copyright (C) 2012-Today GRAP (http://www.grap.coop)
# @author Julien WESTE
# @author Sylvain LE GAL (https://twitter.com/legalsylvain)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
- !record {model: res.groups, id: group_food_manager_sc}:
category_id: product_to_print.module_product_to_print
name: Manage Food fields SC
.page_pricetag{
padding:0px;margin:58mm;border:0px;overflow:hidden;
}
.body_pricetag{
padding:0px;margin:50mm;border:0px;overflow:hidden;
}
.label_container{
page-break-inside: avoid;
width:6.4cm; height:3.45cm; float:left;
margin-left:0cm;
margin-right:0cm;
margin-top:0cm;
margin-bottom:0cm;
padding:0cm;
}
.label_border{
border:1px solid;
}
.pricetag{
height: 100%;
width:100%;
padding:0.1cm;
}
.label_top{
width:100%; height:22%; float:left;
margin-bottom:0.2cm;
}
.label_left{
width:60%; height:33%; float:left;
}
.label_right{
width:40%; height:33%; float:right;
}
.label_bottom{
width:100%; height:45%; float:left;
font-size: 11px;
}
.product_name{
height: 100%;
width:100%;
font-size: 12px;
font-weight:bold;
line-height:13px;
overflow: hidden;
}
.product_informations{
background-color: rgba(255, 255, 255, 1);
width:100%;height:100%;
font-size: 11px;
}
.product_price{
width:100%;height:100%;
line-height: 1.2cm;
text-align:center; font-size:22px; font-weight:bold;
}
.product_shelf_origin{
width: 100%;
height: 20%;
}
.product_shelf_rackinfo_barcode{
width: 100%;
height: 20%;
}
.pricetag_shelf_coopinfos{
width: 100%;
height: 60%;
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!-- ********************************************************************** -->
<!--Sale - Food Module for Odoo -->
<!--Copyright (C) 2012-Today GRAP (http://www.grap.coop) -->
<!--@author Julien Weste -->
<!--@author Sylvain LE GAL (https://twitter.com/legalsylvain) -->
<!--This program is free software: you can redistribute it and/or modify -->
<!--it under the terms of the GNU Affero General Public License as -->
<!--published by the Free Software Foundation, either version 3 of the -->
<!--License, or (at your option) any later version. -->
<!--This program is distributed in the hope that it will be useful, -->
<!--but WITHOUT ANY WARRANTY; without even the implied warranty of -->
<!--MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -->
<!--GNU Affero General Public License for more details. -->
<!--You should have received a copy of the GNU Affero General Public License-->
<!--along with this program. If not, see <http://www.gnu.org/licenses/>. -->
<!-- ********************************************************************** -->
<odoo>
<record id="action_product_product_food" model="ir.actions.act_window">
<field name="name">Products (Food)</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">product.product</field>
<field name="view_type">form</field>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_product_product_food_tree"/>
</record>
<record id="action_product_product_origin" model="ir.actions.act_window">
<field name="name">Products (Origin)</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">product.product</field>
<field name="view_type">form</field>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_product_product_origin_tree"/>
</record>
<record id="action_product_product_pricetag" model="ir.actions.act_window">
<field name="name">Products (Price Tags)</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">product.product</field>
<field name="view_type">form</field>
<field name="view_mode">tree</field>
<field name="context">{'search_default_print_todo':1}</field>
<field name="search_view_id" ref="view_product_product_search"/>
<!-- <field name="view_id" ref="view_product_product_pricetag_tree"/> -->
</record>
<record id="action_product_label" model="ir.actions.act_window">
<field name="name">Labels</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">product.label</field>
<field name="view_type">form</field>
<field name="view_mode">kanban,tree,form</field>
</record>
</odoo>
<?xml version="1.0" encoding="UTF-8"?>
<!-- ********************************************************************** -->
<!--Sale - Food Module for Odoo -->
<!--Copyright (C) 2012-Today GRAP (http://www.grap.coop) -->
<!--@author Julien Weste -->
<!--@author Sylvain LE GAL (https://twitter.com/legalsylvain) -->
<!--This program is free software: you can redistribute it and/or modify -->
<!--it under the terms of the GNU Affero General Public License as -->
<!--published by the Free Software Foundation, either version 3 of the -->
<!--License, or (at your option) any later version. -->
<!--This program is distributed in the hope that it will be useful, -->
<!--but WITHOUT ANY WARRANTY; without even the implied warranty of -->
<!--MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -->
<!--GNU Affero General Public License for more details. -->
<!--You should have received a copy of the GNU Affero General Public License-->
<!--along with this program. If not, see <http://www.gnu.org/licenses/>. -->
<!-- ********************************************************************** -->
<odoo>
<!-- Model: product.label -->
<menuitem id="menu_product_label"
parent="base.menu_sale_config"
action="action_product_label"/>
<!-- Model: product.product -->
<menuitem id="menu_product_product_food"
parent="base.menu_product"
action="action_product_product_food"/>
<menuitem id="menu_product_product_origin_3"
parent="base.menu_product"
action="action_product_product_origin"/>
<menuitem id="menu_product_product_pricetag_3"
parent="base.menu_product"
action="action_product_product_pricetag"/>
</odoo>
<?xml version="1.0" encoding="UTF-8"?>
<!-- ********************************************************************** -->
<!--Sale - Food Module for Odoo -->
<!--Copyright (C) 2012-Today GRAP (http://www.grap.coop) -->
<!--@author Julien Weste -->
<!--@author Sylvain LE GAL (https://twitter.com/legalsylvain) -->
<!--This program is free software: you can redistribute it and/or modify -->
<!--it under the terms of the GNU Affero General Public License as -->
<!--published by the Free Software Foundation, either version 3 of the -->
<!--License, or (at your option) any later version. -->
<!--This program is distributed in the hope that it will be useful, -->
<!--but WITHOUT ANY WARRANTY; without even the implied warranty of -->
<!--MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -->
<!--GNU Affero General Public License for more details. -->
<!--You should have received a copy of the GNU Affero General Public License-->
<!--along with this program. If not, see <http://www.gnu.org/licenses/>. -->
<!-- ********************************************************************** -->
<odoo>
<record id="view_product_label_tree" model="ir.ui.view">
<field name="model">product.label</field>
<field name="arch" type="xml">
<tree string="Label">
<field name="code"/>
<field name="name"/>
<field name="website"/>
<field name="company_id" groups="base.group_multi_company"/>
</tree>
</field>
</record>
<record id="view_product_label_form" model="ir.ui.view">
<field name="model">product.label</field>
<field name="arch" type="xml">
<form string="Label" version="7.0">
<sheet>
<field name="image" widget="image" class="oe_avatar oe_left"/>
<div class="oe_title">
<div class="oe_edit_only"><label for="name"/></div>
<h1><field name="name"/></h1>
<label for="code" class="oe_edit_only"/>
<h2><field name="code"/></h2>
</div>
<notebook>
<page string="Information">
<group col="4">
<field name="active"/>
<field name="company_id" groups="base.group_multi_company"/>
<newline />
<field name="website" colspan="4"/>
<field name="note" widget="html" colspan="4"/>
</group>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="view_product_label_kanban" model="ir.ui.view">
<field name="model">product.label</field>
<field name="arch" type="xml">
<kanban>
<field name="image"/>
<templates>
<t t-name="kanban-box">
<div class="oe_kanban_box oe_kanban_color_border">
<div class="product_label_kanban">
<div class="product_label_kanban_name">
<a type="edit">
<field name="name"/>
</a>
</div>
<div class="product_label_kanban_image">
<img t-att-src="kanban_image('product.label', 'image', record.id.value)" width="48"/>
</div>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</record>
</odoo>
<?xml version="1.0" encoding="UTF-8"?>
<!-- ********************************************************************** -->
<!--Sale - Food Module for Odoo -->
<!--Copyright (C) 2012-Today GRAP (http://www.grap.coop) -->
<!--@author Julien Weste -->
<!--@author Sylvain LE GAL (https://twitter.com/legalsylvain) -->
<!--This program is free software: you can redistribute it and/or modify -->
<!--it under the terms of the GNU Affero General Public License as -->
<!--published by the Free Software Foundation, either version 3 of the -->
<!--License, or (at your option) any later version. -->
<!--This program is distributed in the hope that it will be useful, -->
<!--but WITHOUT ANY WARRANTY; without even the implied warranty of -->
<!--MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -->
<!--GNU Affero General Public License for more details. -->
<!--You should have received a copy of the GNU Affero General Public License-->
<!--along with this program. If not, see <http://www.gnu.org/licenses/>. -->
<!-- ********************************************************************** -->
<odoo>
<!-- Model: product.product -->
<record id="view_product_product_search" model="ir.ui.view">
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_search_form_view"/>
<field name="arch" type="xml">
<filter name="filter_to_sell" position="after">
<separator/>
<filter string="Mercuriale Product" name="is_mercuriale" domain="[('is_mercuriale', '=', True)]"/>
</filter>
</field>
</record>
<record id="view_product_product_food_tree" model="ir.ui.view">
<field name="model">product.product</field>
<field name="arch" type="xml">
<tree string="Products (Food)" editable="bottom">
<field name="name" readonly="1"/>
<field name="is_mercuriale"/>
<field name="fresh_category"/>
<field name="fresh_range"/>
</tree>
</field>
</record>
<record id="view_product_product_origin_tree" model="ir.ui.view">
<field name="model">product.product</field>
<field name="arch" type="xml">
<tree string="Products (Origin)" editable="bottom">
<field name="name" readonly="1"/>
<field name="country_id" options="{'quick_create':false}"/>
<field name="department_id" options="{'quick_create':false}"
domain="[('country_id', '=', country_id)]"/>
<field name="maker_description"/>
<field name="origin_description"/>
</tree>
</field>
</record>
</odoo>
<?xml version="1.0" encoding="UTF-8"?>
<!-- ********************************************************************** -->
<!--Sale - Food Module for Odoo -->
<!--Copyright (C) 2012-Today GRAP (http://www.grap.coop) -->
<!--@author Julien Weste -->
<!--@author Sylvain LE GAL (https://twitter.com/legalsylvain) -->
<!--This program is free software: you can redistribute it and/or modify -->
<!--it under the terms of the GNU Affero General Public License as -->
<!--published by the Free Software Foundation, either version 3 of the -->
<!--License, or (at your option) any later version. -->
<!--This program is distributed in the hope that it will be useful, -->
<!--but WITHOUT ANY WARRANTY; without even the implied warranty of -->
<!--MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -->
<!--GNU Affero General Public License for more details. -->
<!--You should have received a copy of the GNU Affero General Public License-->
<!--along with this program. If not, see <http://www.gnu.org/licenses/>. -->
<!-- ********************************************************************** -->
<odoo>
<record id="product_template_form_view_food" model="ir.ui.view">
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_form_view" />
<field name="arch" type="xml">
<notebook position="inside">
<page string="Food Informations" groups="bulk_product_pricetag.group_food_manager">
<group colspan="4">
<group>
<separator string="Origin" colspan="2"/>
<field name="country_id" options="{'quick_create':false}"/>
<field name="department_id" options="{'quick_create':false}"/>
<field name="origin_description"/>
<field name="maker_description"/>
</group>
<group>
<separator string="Food" colspan="2"/>
<field name="fresh_category"/>
<field name="fresh_range"/>
<field name="is_mercuriale"/>
<field name="label_ids" widget="many2many_tags"/>
</group>
<group>
<separator string="Price Tag" colspan="4"/>
<field name="expiration_date_days"/>
<field name="expiration_comsumption_days"/>
<field name="extra_note_bizerba_pricetag_1"/>
<field name="extra_note_bizerba_pricetag_2"/>
<field name="ingredients" widget="hmtl"/>
</group>
</group>
</page>
</notebook>
<xpath expr="//field[@name='weight']/.." position="after">
<field name="weight_net"/>
<field name="price_weight_net"/>
</xpath>
<xpath expr="//field[@name='volume']/.." position="after">
<field name="price_volume"/>
</xpath>
<xpath expr="//group[@name='group_standard_price']" position="after">
<group string="Pricetag Information" name="sticker_info">
<field name="rack_instruction"/>
<field name="rack_location"/>
<field name="rack_number_of_packages"/>
<field name="farming_method"/>
<field name="other_information"/>
</group>
</xpath>
</field>
</record>
</odoo>
<?xml version="1.0" encoding="UTF-8"?>
<!-- ********************************************************************** -->
<!--Sale - Food Module for Odoo -->
<!--Copyright (C) 2012-Today GRAP (http://www.grap.coop) -->
<!--@author Julien Weste -->
<!--@author Sylvain LE GAL (https://twitter.com/legalsylvain) -->
<!--This program is free software: you can redistribute it and/or modify -->
<!--it under the terms of the GNU Affero General Public License as -->
<!--published by the Free Software Foundation, either version 3 of the -->
<!--License, or (at your option) any later version. -->
<!--This program is distributed in the hope that it will be useful, -->
<!--but WITHOUT ANY WARRANTY; without even the implied warranty of -->
<!--MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -->
<!--GNU Affero General Public License for more details. -->
<!--You should have received a copy of the GNU Affero General Public License-->
<!--along with this program. If not, see <http://www.gnu.org/licenses/>. -->
<!-- ********************************************************************** -->
<odoo>
<!-- Model: product.uom.categ -->
<record id="view_product_uom_categ_form" model="ir.ui.view">
<field name="model">product.uom.categ</field>
<field name="inherit_id" ref="product.product_uom_categ_form_view" />
<field name="arch" type="xml">
<field name="name" position="after">
<field name="pricetag_printable"/>
</field>
</field>
</record>
</odoo>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment