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
committed by Raphaël Valyi
parent 3bde97db3f
commit 6d887f79cf
12 changed files with 73 additions and 230 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)
# # @author Alexis de Lattre <alexis.delattre@akretion.com>
# Base Usability module for Odoo # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
# Copyright (C) 2014-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/>.
#
##############################################################################
{ {
'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>