Port base_usability, sale_usability, sale_stock_usability to v10

This commit is contained in:
Alexis de Lattre
2016-10-27 09:33:15 +02:00
parent 9e37c6e1ae
commit 42233bc0ce
23 changed files with 164 additions and 474 deletions

View File

@@ -3,4 +3,3 @@
from . import partner from . import partner
from . import mail from . import mail
from . import misc from . import misc
from . import ir_sequence

View File

@@ -1,25 +1,7 @@
# -*- encoding: utf-8 -*- # -*- coding: utf-8 -*-
############################################################################## # © 2014-2016 Akretion (http://www.akretion.com)
#
# Base Usability module for Odoo
# Copyright (C) 2014-2015 Akretion (http://www.akretion.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com> # @author Alexis de Lattre <alexis.delattre@akretion.com>
# # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
# 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': 'Base Usability', 'name': 'Base Usability',
@@ -44,14 +26,13 @@ A group by 'State' is added to module search view.
""", """,
'author': 'Akretion', 'author': 'Akretion',
'website': 'http://www.akretion.com', 'website': 'http://www.akretion.com',
'depends': ['base', 'mail'], 'depends': ['base'],
'data': [ 'data': [
'security/group.xml', 'security/group.xml',
'security/ir.model.access.csv', 'security/ir.model.access.csv',
'partner_view.xml', 'partner_view.xml',
'country_view.xml', 'country_view.xml',
'module_view.xml', 'module_view.xml',
'translation_view.xml',
], ],
'installable': False, 'installable': True,
} }

View File

@@ -1,12 +1,11 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2015 Akretion (http://www.akretion.com/) © 2015-2016 Akretion (http://www.akretion.com/)
@author: Alexis de Lattre <alexis.delattre@akretion.com> @author: Alexis de Lattre <alexis.delattre@akretion.com>
The licence is in the file __openerp__.py License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
--> -->
<openerp> <odoo>
<data>
<record id="res_country_state_search" model="ir.ui.view"> <record id="res_country_state_search" model="ir.ui.view">
<field name="name">base_usability.res.country.state.search</field> <field name="name">base_usability.res.country.state.search</field>
@@ -43,11 +42,10 @@
<field name="model">res.country</field> <field name="model">res.country</field>
<field name="inherit_id" ref="base.view_country_form"/> <field name="inherit_id" ref="base.view_country_form"/>
<field name="arch" type="xml"> <field name="arch" type="xml">
<field name="currency_id" position="after"> <field name="code" position="after">
<field name="country_group_ids" widget="many2many_tags"/> <field name="country_group_ids" widget="many2many_tags"/>
</field> </field>
</field> </field>
</record> </record>
</data> </odoo>
</openerp>

View File

@@ -1,48 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Base Usability module for Odoo
# Copyright (C) 2016 Akretion (http://www.akretion.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com>
#
# 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 models, fields
from datetime import datetime
import pytz
class IrSequence(models.Model):
_inherit = 'ir.sequence'
def _interpolation_dict_context(self, context=None):
if context is None:
context = {}
t = False
if context.get('force_sequence_date'):
date_str = context['force_sequence_date']
if isinstance(date_str, (str, unicode)) and len(date_str) == 10:
t = fields.Date.from_string(date_str)
if not t:
t = datetime.now(pytz.timezone(context.get('tz') or 'UTC'))
sequences = {
'year': '%Y', 'month': '%m', 'day': '%d', 'y': '%y', 'doy': '%j',
'woy': '%W',
'weekday': '%w', 'h24': '%H', 'h12': '%I', 'min': '%M', 'sec': '%S'
}
return {
key: t.strftime(sequence)
for key, sequence in sequences.iteritems()}

View File

@@ -1,26 +1,8 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
############################################################################## # © 2015-2016 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
# # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
# Base Usability module for Odoo
# Copyright (C) 2015 Akretion (http://www.akretion.com/)
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
#
# 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 models from odoo import models, api
import logging import logging
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -29,18 +11,18 @@ logger = logging.getLogger(__name__)
class IrMailServer(models.Model): class IrMailServer(models.Model):
_inherit = "ir.mail_server" _inherit = "ir.mail_server"
@api.model
def send_email( def send_email(
self, cr, uid, message, mail_server_id=None, smtp_server=None, self, message, mail_server_id=None, smtp_server=None,
smtp_port=None, smtp_user=None, smtp_password=None, smtp_port=None, smtp_user=None, smtp_password=None,
smtp_encryption=None, smtp_debug=False, context=None): smtp_encryption=None, smtp_debug=False):
logger.info("Sending email to %s copy %s with subject %s", logger.info("Sending email to %s copy %s with subject %s",
message.get('To'), message.get('To'),
message.get('Cc'), message.get('Cc'),
message.get('Subject')) message.get('Subject'))
return super(IrMailServer, self).send_email( return super(IrMailServer, self).send_email(
cr, uid, message, mail_server_id=mail_server_id, message, mail_server_id=mail_server_id,
smtp_server=smtp_server, smtp_port=smtp_port, smtp_server=smtp_server, smtp_port=smtp_port,
smtp_user=smtp_user, smtp_password=smtp_password, smtp_user=smtp_user, smtp_password=smtp_password,
smtp_encryption=smtp_encryption, smtp_debug=smtp_debug, smtp_encryption=smtp_encryption, smtp_debug=smtp_debug)
context=context)

View File

@@ -1,26 +1,8 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
############################################################################## # © 2015-2016 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
# # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
# Base Usability module for Odoo
# Copyright (C) 2016 Akretion (http://www.akretion.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com>
#
# 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 models, fields from odoo import models, fields
class BaseLanguageExport(models.TransientModel): class BaseLanguageExport(models.TransientModel):

View File

@@ -1,27 +1,24 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2015 Akretion (http://www.akretion.com/) © 2015-2016 Akretion (http://www.akretion.com/)
@author: Alexis de Lattre <alexis.delattre@akretion.com> @author: Alexis de Lattre <alexis.delattre@akretion.com>
The licence is in the file __openerp__.py License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
--> -->
<openerp> <odoo>
<data>
<record id="view_module_filter" model="ir.ui.view"> <record id="view_module_filter" model="ir.ui.view">
<field name="model">ir.module.module</field> <field name="model">ir.module.module</field>
<field name="inherit_id" ref="base.view_module_filter"/> <field name="inherit_id" ref="base.view_module_filter"/>
<field name="arch" type="xml"> <field name="arch" type="xml">
<xpath expr="//filter[@string='Category']" position="after"> <group expand="0" position="inside">
<filter string="State" domain="[]" context="{'group_by':'state'}"/> <filter name="state_groupby" string="State" context="{'group_by': 'state'}"/>
</xpath> </group>
</field> </field>
</record> </record>
<record id="base.open_module_tree" model="ir.actions.act_window"> <record id="base.open_module_tree" model="ir.actions.act_window">
<field name="res_model">ir.module.module</field>
<field name="context">{}</field> <field name="context">{}</field>
</record> </record>
</data> </odoo>
</openerp>

View File

@@ -1,31 +1,16 @@
# -*- encoding: utf-8 -*- # -*- coding: utf-8 -*-
############################################################################## # © 2015-2016 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
# # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
# Base Usability module for Odoo
# Copyright (C) 2015 Akretion (http://www.akretion.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com>
#
# 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 models, fields, api from odoo import models, fields, api
class Partner(models.Model): class ResPartner(models.Model):
_inherit = 'res.partner' _inherit = 'res.partner'
# track_visibility is handled in the 'mail' module, and base_usability
# doesn't depend on 'mail', but that doesn't hurt, it will just be
# ignored if mail is not installed
name = fields.Char(track_visibility='onchange') name = fields.Char(track_visibility='onchange')
parent_id = fields.Many2one(track_visibility='onchange') parent_id = fields.Many2one(track_visibility='onchange')
ref = fields.Char(track_visibility='onchange') ref = fields.Char(track_visibility='onchange')
@@ -43,20 +28,26 @@ class Partner(models.Model):
country_id = fields.Many2one(track_visibility='onchange') country_id = fields.Many2one(track_visibility='onchange')
email = fields.Char(track_visibility='onchange') email = fields.Char(track_visibility='onchange')
is_company = fields.Boolean(track_visibility='onchange') is_company = fields.Boolean(track_visibility='onchange')
use_parent_address = fields.Boolean(track_visibility='onchange')
active = fields.Boolean(track_visibility='onchange') active = fields.Boolean(track_visibility='onchange')
# For reports # For reports
name_title = fields.Char( name_title = fields.Char(
compute='_compute_name_title', string='Name with Title') compute='_compute_name_title', string='Name with Title')
@api.one @api.multi
@api.depends('name', 'title', 'is_company') @api.depends('name', 'title')
def _compute_name_title(self): def _compute_name_title(self):
name_title = self.name for partner in self:
if self.title: name_title = partner.name
title = self.title.shortcut or self.title if partner.title and not partner.is_company:
if self.is_company: title = partner.title.shortcut or partner.title
name_title = ' '.join([name_title, title])
else:
name_title = ' '.join([title, name_title]) name_title = ' '.join([title, name_title])
self.name_title = name_title partner.name_title = name_title
@api.multi
def _display_address(self, without_company=False):
'''Remove empty lines'''
res = super(ResPartner, self)._display_address(
without_company=without_company)
while "\n\n" in res:
res = res.replace('\n\n', '\n')
return res

View File

@@ -1,32 +1,21 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2014-2015 Akretion (http://www.akretion.com/) © 2014-2016 Akretion (http://www.akretion.com/)
@author: Alexis de Lattre <alexis.delattre@akretion.com> @author: Alexis de Lattre <alexis.delattre@akretion.com>
The licence is in the file __openerp__.py License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
--> -->
<openerp> <odoo>
<data>
<record id="view_partner_form" model="ir.ui.view"> <record id="view_partner_form" model="ir.ui.view">
<field name="name">base_usability.title.on.partner.form</field> <field name="name">base_usability.title.on.partner.form</field>
<field name="model">res.partner</field> <field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/> <field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml"> <field name="arch" type="xml">
<xpath expr="//field[@name='child_ids']/form//field[@name='function']" position="before">
<field name="title"/>
</xpath>
<!-- is_company option is readonly when the partner is a contact -->
<xpath expr="//div[@class='oe_edit_only']/field[@name='is_company']" position="attributes">
<attribute name="attrs">{'readonly': [('parent_id', '!=', False)]}</attribute>
</xpath>
<!-- Wider 'name' field --> <!-- Wider 'name' field -->
<xpath expr="//sheet/div[@class='oe_title oe_left']" position="attributes"> <xpath expr="//sheet/div[@class='oe_title']" position="attributes">
<attribute name="style">width: 650px;</attribute> <attribute name="style">width: 650px;</attribute>
</xpath> </xpath>
<xpath expr="//field[@name='child_ids']/form/sheet/div[@class='oe_title']" position="attributes">
<attribute name="style">width: 600px;</attribute>
</xpath>
</field> </field>
</record> </record>
@@ -38,11 +27,7 @@
<field name="function" position="before"> <field name="function" position="before">
<field name="title"/> <field name="title"/>
</field> </field>
<xpath expr="//div[@class='oe_edit_only']/field[@name='is_company']" position="attributes">
<attribute name="attrs">{'readonly': [('parent_id', '!=', False)]}</attribute>
</xpath>
</field> </field>
</record> </record>
</data> </odoo>
</openerp>

View File

@@ -5,8 +5,7 @@
--> -->
<openerp> <odoo noupdate="1">
<data noupdate="1">
<!-- This group is used to hide menu entries to everybody, <!-- This group is used to hide menu entries to everybody,
so you should not put any user in this group. It is used so you should not put any user in this group. It is used
@@ -20,5 +19,4 @@ common to have several users that belong to this group -->
<field name="name">Nobody (used to hide native menus)</field> <field name="name">Nobody (used to hide native menus)</field>
</record> </record>
</data> </odoo>
</openerp>

View File

@@ -2,3 +2,4 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
base.access_res_country_group_user,Full access on res.country to Settings group,base.model_res_country,base.group_system,1,1,1,1 base.access_res_country_group_user,Full access on res.country to Settings group,base.model_res_country,base.group_system,1,1,1,1
base.access_res_country_state_group_user,Full access on res.country.state to Settings group,base.model_res_country_state,base.group_system,1,1,1,1 base.access_res_country_state_group_user,Full access on res.country.state to Settings group,base.model_res_country_state,base.group_system,1,1,1,1
base.access_res_country_group_group_user,Full access on res.country.group to Settings group,base.model_res_country_group,base.group_system,1,1,1,1 base.access_res_country_group_group_user,Full access on res.country.group to Settings group,base.model_res_country_group,base.group_system,1,1,1,1
base.access_res_partner_title_group_user,Full access on res.partner.title,base.model_res_partner_title,base.group_system,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 base.access_res_country_group_user Full access on res.country to Settings group base.model_res_country base.group_system 1 1 1 1
3 base.access_res_country_state_group_user Full access on res.country.state to Settings group base.model_res_country_state base.group_system 1 1 1 1
4 base.access_res_country_group_group_user Full access on res.country.group to Settings group base.model_res_country_group base.group_system 1 1 1 1
5 base.access_res_partner_title_group_user Full access on res.partner.title base.model_res_partner_title base.group_system 1 1 1 1

View File

@@ -1,23 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2015 Akretion (http://www.akretion.com/)
@author: Alexis de Lattre <alexis.delattre@akretion.com>
The licence is in the file __openerp__.py
-->
<openerp>
<data>
<record id="view_translation_tree" model="ir.ui.view">
<field name="name">base_usability.state.translation.tree</field>
<field name="model">ir.translation</field>
<field name="inherit_id" ref="base.view_translation_tree"/>
<field name="arch" type="xml">
<field name="type" position="after">
<field name="state"/>
</field>
</field>
</record>
</data>
</openerp>

View File

@@ -1,24 +1,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
############################################################################## # © 2015-2016 Akretion (http://www.akretion.com)
#
# Sale Stock Usability module for Odoo
# Copyright (C) 2015 Akretion (http://www.akretion.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com> # @author Alexis de Lattre <alexis.delattre@akretion.com>
# # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
# 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/>.
#
##############################################################################
{ {
@@ -42,5 +25,5 @@ This module has been written by Alexis de Lattre from Akretion <alexis.delattre@
'website': 'http://www.akretion.com', 'website': 'http://www.akretion.com',
'depends': ['sale_stock'], 'depends': ['sale_stock'],
'data': ['sale_stock_view.xml'], 'data': ['sale_stock_view.xml'],
'installable': False, 'installable': True,
} }

View File

@@ -1,24 +1,7 @@
# -*- encoding: utf-8 -*- # -*- coding: utf-8 -*-
############################################################################## # © 2015-2016 Akretion (http://www.akretion.com)
#
# Sale Usability Extension module for Odoo
# Copyright (C) 2015 Akretion (http://www.akretion.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com> # @author Alexis de Lattre <alexis.delattre@akretion.com>
# # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
# 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 models, fields from openerp import models, fields
@@ -28,25 +11,3 @@ class SaleOrder(models.Model):
warehouse_id = fields.Many2one(track_visibility='onchange') warehouse_id = fields.Many2one(track_visibility='onchange')
incoterm = fields.Many2one(track_visibility='onchange') incoterm = fields.Many2one(track_visibility='onchange')
class SaleOrderLine(models.Model):
_inherit = 'sale.order.line'
# The sale_stock module defines the field product_tmpl_id as related
# field without readonly=True, which causes some access right issues
# when you change the product on a sale.order.line and you don't have
# write access on product.product
product_tmpl_id = fields.Many2one(
'product.template', related='product_id.product_tmpl_id',
string='Product Template', readonly=True)
class ProcurementGroup(models.Model):
_inherit = 'procurement.group'
sale_ids = fields.One2many(
'sale.order', 'procurement_group_id', string='Sale Orders',
readonly=True)
picking_ids = fields.One2many(
'stock.picking', 'group_id', string='Pickings', readonly=True)

View File

@@ -1,26 +1,14 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2015 Akretion (http://www.akretion.com/) © 2015-2016 Akretion (http://www.akretion.com/)
@author Alexis de Lattre <alexis.delattre@akretion.com> @author Alexis de Lattre <alexis.delattre@akretion.com>
The licence is in the file __openerp__.py License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
--> -->
<openerp> <odoo>
<data>
<record id="view_picking_internal_search_inherit" model="ir.ui.view">
<field name="name">sale_stock_usability.picking.search</field>
<field name="model">stock.picking</field>
<field name="inherit_id" ref="sale_stock.view_picking_internal_search_inherit" />
<field name="arch" type="xml">
<filter name="to_invoice" position="attributes">
<attribute name="domain">[('invoice_state', '=', '2binvoiced'), ('state', '=', 'done')]</attribute>
</filter>
</field>
</record>
<!-- the truck icon is probably enough
<record id="view_order_form_inherit" model="ir.ui.view"> <record id="view_order_form_inherit" model="ir.ui.view">
<field name="name">sale_stock_usability.sale_order_form</field> <field name="name">sale_stock_usability.sale_order_form</field>
<field name="model">sale.order</field> <field name="model">sale.order</field>
@@ -33,23 +21,6 @@
</notebook> </notebook>
</field> </field>
</record> </record>
-->
</odoo>
<record id="procurement_group_form_view" model="ir.ui.view">
<field name="name">sale_stock_usability.procurement.group.form</field>
<field name="model">procurement.group</field>
<field name="inherit_id" ref="procurement.procurement_group_form_view"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='move_type']/.." position="after">
<group name="sale" string="Sale Orders">
<field name="sale_ids" nolabel="1"/>
</group>
<group name="picking" string="Pickings">
<field name="picking_ids" nolabel="1"/>
</group>
</xpath>
</field>
</record>
</data>
</openerp>

View File

@@ -1,4 +1,3 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from . import sale from . import sale
from . import account_invoice

View File

@@ -1,25 +1,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
############################################################################## # © 2014-2016 Akretion (http://www.akretion.com)
#
# Sale Usability module for Odoo
# Copyright (C) 2014-2016 Akretion (http://www.akretion.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com> # @author Alexis de Lattre <alexis.delattre@akretion.com>
# # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
# 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': 'Sale Usability', 'name': 'Sale Usability',
@@ -44,5 +26,5 @@ Please contact Alexis de Lattre from Akretion <alexis.delattre@akretion.com> for
'data': [ 'data': [
'sale_view.xml', 'sale_view.xml',
], ],
'installable': False, 'installable': True,
} }

View File

@@ -1,32 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Sale Usability Extension module for Odoo
# Copyright (C) 2015 Akretion (http://www.akretion.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com>
#
# 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 models, fields
class AccountInvoiceLine(models.Model):
_inherit = 'account.invoice.line'
# reverse of the native M2M invoice_lines field on sale.order.line
sale_line_ids = fields.Many2many(
'sale.order.line', 'sale_order_line_invoice_rel', 'invoice_id',
'order_line_id', 'Sale Order Lines', readonly=True)

View File

@@ -1,32 +1,13 @@
# -*- encoding: utf-8 -*- # -*- coding: utf-8 -*-
##############################################################################
#
# Sale Usability Extension module for Odoo
# Copyright (C) 2015 Akretion (http://www.akretion.com) # Copyright (C) 2015 Akretion (http://www.akretion.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com> # @author Alexis de Lattre <alexis.delattre@akretion.com>
#
# 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 models, fields from odoo import models, fields
class SaleOrder(models.Model): class SaleOrder(models.Model):
_inherit = 'sale.order' _inherit = 'sale.order'
state = fields.Selection(track_visibility='onchange')
date_order = fields.Datetime(track_visibility='onchange') date_order = fields.Datetime(track_visibility='onchange')
date_confirm = fields.Date(track_visibility='onchange') date_confirm = fields.Date(track_visibility='onchange')
client_order_ref = fields.Char(track_visibility='onchange') client_order_ref = fields.Char(track_visibility='onchange')
@@ -34,7 +15,13 @@ class SaleOrder(models.Model):
partner_shipping_id = fields.Many2one(track_visibility='onchange') partner_shipping_id = fields.Many2one(track_visibility='onchange')
partner_invoice_id = fields.Many2one(track_visibility='onchange') partner_invoice_id = fields.Many2one(track_visibility='onchange')
pricelist_id = fields.Many2one(track_visibility='onchange') pricelist_id = fields.Many2one(track_visibility='onchange')
order_policy = fields.Selection(track_visibility='onchange') payment_term_id = fields.Many2one(track_visibility='onchange')
payment_term = fields.Many2one(track_visibility='onchange') fiscal_position_id = fields.Many2one(track_visibility='onchange')
fiscal_position = fields.Many2one(track_visibility='onchange')
user_id = fields.Many2one(track_visibility='onchange')
class ProcurementGroup(models.Model):
_inherit = 'procurement.group'
sale_ids = fields.One2many(
'sale.order', 'procurement_group_id', string='Sale Orders',
readonly=True)

View File

@@ -1,12 +1,11 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2015 Akretion (http://www.akretion.com/) © 2015-2016 Akretion (http://www.akretion.com/)
@author: Alexis de Lattre <alexis.delattre@akretion.com> @author: Alexis de Lattre <alexis.delattre@akretion.com>
The licence is in the file __openerp__.py License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
--> -->
<openerp> <odoo>
<data>
<record id="view_order_form" model="ir.ui.view"> <record id="view_order_form" model="ir.ui.view">
<field name="name">usability.sale.order.form</field> <field name="name">usability.sale.order.form</field>
@@ -18,11 +17,7 @@
<field name="invoice_ids" nolabel="1" context="{'form_view_ref': 'account.invoice_form'}"/> <field name="invoice_ids" nolabel="1" context="{'form_view_ref': 'account.invoice_form'}"/>
</page> </page>
</notebook> </notebook>
<field name="date_order" position="after"> <field name="fiscal_position_id" position="attributes">
<field name="date_confirm"
attrs="{'invisible': [('state', 'in', ('draft', 'sent'))]}"/>
</field>
<field name="fiscal_position" position="attributes">
<attribute name="widget">selection</attribute> <attribute name="widget">selection</attribute>
</field> </field>
</field> </field>
@@ -34,10 +29,7 @@
<field name="inherit_id" ref="sale.view_quotation_tree"/> <field name="inherit_id" ref="sale.view_quotation_tree"/>
<field name="arch" type="xml"> <field name="arch" type="xml">
<field name="amount_total" position="before"> <field name="amount_total" position="before">
<field name="amount_untaxed" sum="Total Untaxed"/> <field name="amount_untaxed" sum="Total Untaxed" widget="monetary"/>
</field>
<field name="amount_total" position="after">
<field name="currency_id" groups="base.group_multi_currency"/>
</field> </field>
</field> </field>
</record> </record>
@@ -48,10 +40,7 @@
<field name="inherit_id" ref="sale.view_order_tree"/> <field name="inherit_id" ref="sale.view_order_tree"/>
<field name="arch" type="xml"> <field name="arch" type="xml">
<field name="amount_total" position="before"> <field name="amount_total" position="before">
<field name="amount_untaxed" sum="Total Untaxed"/> <field name="amount_untaxed" sum="Total Untaxed" widget="monetary"/>
</field>
<field name="amount_total" position="after">
<field name="currency_id" groups="base.group_multi_currency"/>
</field> </field>
<field name="date_order" position="attributes"> <field name="date_order" position="attributes">
<attribute name="invisible">1</attribute> <attribute name="invisible">1</attribute>
@@ -62,7 +51,16 @@
</field> </field>
</record> </record>
<!-- TODO : handle date_confirm in search/graph views --> <record id="view_sales_order_filter" model="ir.ui.view">
<field name="name">usability.sale.order.search</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_sales_order_filter"/>
<field name="arch" type="xml">
<filter context="{'group_by':'date_order'}" position="after">
<filter string="Order Confirmation Month" name="confirmation_date_groupby" context="{'group_by': 'confirmation_date'}"/>
</filter>
</field>
</record>
<record id="procurement_form_view" model="ir.ui.view"> <record id="procurement_form_view" model="ir.ui.view">
<field name="name">procurement_usability.procurement.order.form</field> <field name="name">procurement_usability.procurement.order.form</field>
@@ -75,5 +73,17 @@
</field> </field>
</record> </record>
</data> <record id="procurement_group_form_view" model="ir.ui.view">
</openerp> <field name="name">sale_usability.procurement.group.form</field>
<field name="model">procurement.group</field>
<field name="inherit_id" ref="procurement.procurement_group_form_view"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='move_type']/.." position="after">
<group name="sale" string="Sale Orders">
<field name="sale_ids" nolabel="1"/>
</group>
</xpath>
</field>
</record>
</odoo>

View File

@@ -1,24 +1,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
############################################################################## # © 2014-2016 Akretion (http://www.akretion.com)
#
# Stock Usability module for Odoo
# Copyright (C) 2014-2015 Akretion (http://www.akretion.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com> # @author Alexis de Lattre <alexis.delattre@akretion.com>
# # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
# 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/>.
#
##############################################################################
{ {
@@ -48,5 +31,5 @@ This module has been written by Alexis de Lattre from Akretion <alexis.delattre@
'procurement_view.xml', 'procurement_view.xml',
'security/ir.model.access.csv', 'security/ir.model.access.csv',
], ],
'installable': False, 'installable': True,
} }

View File

@@ -1,27 +1,10 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
############################################################################## # © 2014-2016 Akretion (http://www.akretion.com)
#
# Stock Usability module for Odoo
# Copyright (C) 2014-2016 Akretion (http://www.akretion.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com> # @author Alexis de Lattre <alexis.delattre@akretion.com>
# # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
# 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 models, fields, api from odoo import models, fields, api
import openerp.addons.decimal_precision as dp import odoo.addons.decimal_precision as dp
import logging import logging
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -121,3 +104,10 @@ class StockIncoterms(models.Model):
for inco in self: for inco in self:
res.append((inco.id, u'[%s] %s' % (inco.code, inco.name))) res.append((inco.id, u'[%s] %s' % (inco.code, inco.name)))
return res return res
class ProcurementGroup(models.Model):
_inherit = 'procurement.group'
picking_ids = fields.One2many(
'stock.picking', 'group_id', string='Pickings', readonly=True)

View File

@@ -284,5 +284,18 @@ in the quantities for his reception -->
<field name="view_id" ref="stock.view_move_tree"/> <field name="view_id" ref="stock.view_move_tree"/>
</record> </record>
<record id="procurement_group_form_view" model="ir.ui.view">
<field name="name">stock_usability.procurement.group.form</field>
<field name="model">procurement.group</field>
<field name="inherit_id" ref="procurement.procurement_group_form_view"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='move_type']/.." position="after">
<group name="picking" string="Pickings">
<field name="picking_ids" nolabel="1"/>
</group>
</xpath>
</field>
</record>
</data> </data>
</openerp> </openerp>