[MERGE] forward port branch saas-14 up to 153ae5e8b8

This commit is contained in:
Christophe Simonis
2018-03-01 17:26:43 +01:00
18 changed files with 78 additions and 45 deletions
+4
View File
@@ -306,6 +306,8 @@ class AccountJournal(models.Model):
if ('company_id' in vals and journal.company_id.id != vals['company_id']):
if self.env['account.move'].search([('journal_id', 'in', self.ids)], limit=1):
raise UserError(_('This journal already contains items, therefore you cannot modify its company.'))
if self.bank_account_id:
self.bank_account_id.company_id = vals['company_id']
if ('code' in vals and journal.code != vals['code']):
if self.env['account.move'].search([('journal_id', 'in', self.ids)], limit=1):
raise UserError(_('This journal already contains items, therefore you cannot modify its short name.'))
@@ -319,6 +321,8 @@ class AccountJournal(models.Model):
self.default_debit_account_id.currency_id = vals['currency_id']
if not 'default_credit_account_id' in vals and self.default_credit_account_id:
self.default_credit_account_id.currency_id = vals['currency_id']
if self.bank_account_id:
self.bank_account_id.currency_id = vals['currency_id']
if 'bank_acc_number' in vals and not vals.get('bank_acc_number') and journal.bank_account_id:
raise UserError(_('You cannot empty the account number once set.\nIf you would like to delete the account number, you can do it from the Bank Accounts list.'))
result = super(AccountJournal, self).write(vals)
@@ -338,7 +338,7 @@ class AccountBankStatement(models.Model):
def link_bank_to_partner(self):
for statement in self:
for st_line in statement.line_ids:
if st_line.bank_account_id and st_line.partner_id and st_line.bank_account_id.partner_id != st_line.partner_id:
if st_line.bank_account_id and st_line.partner_id and not st_line.bank_account_id.partner_id:
st_line.bank_account_id.partner_id = st_line.partner_id
+1 -1
View File
@@ -100,7 +100,7 @@ class AccountMove(models.Model):
default=lambda self: self.env.user.company_id)
matched_percentage = fields.Float('Percentage Matched', compute='_compute_matched_percentage', digits=0, store=True, readonly=True, help="Technical field used in cash basis method")
# Dummy Account field to search on account.move by account_id
dummy_account_id = fields.Many2one('account.account', related='line_ids.account_id', string='Account', store=False)
dummy_account_id = fields.Many2one('account.account', related='line_ids.account_id', string='Account', store=False, readonly=True)
tax_cash_basis_rec_id = fields.Many2one(
'account.partial.reconcile',
string='Tax Cash Basis Entry of',
+1 -1
View File
@@ -16,7 +16,7 @@
<field name="code" placeholder="code"/>
<field name="name"/>
<field name="user_type_id" widget="selection"/>
<field name="tax_ids" widget="many2many_tags"/>
<field name="tax_ids" widget="many2many_tags" domain="[('company_id','=',company_id)]"/>
<field name="tag_ids" widget="many2many_tags" domain="[('applicability', '!=', 'taxes')]" context="{'default_applicability': 'accounts'}" options="
{'no_create_edit': True}"/>
<field name="company_id" options="{'no_create': True}" groups="base.group_multi_company"/>
@@ -2814,98 +2814,98 @@
<record id="pcg_501" model="account.account.template">
<field name="name">Valeurs mobilières de placement - Parts dans entreprises liées</field>
<field name="code">501</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
<record id="pcg_502" model="account.account.template">
<field name="name">Valeurs mobilières de placement - Actions propres</field>
<field name="code">502</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
<record id="pcg_5031" model="account.account.template">
<field name="name">Valeurs mobilières de placement - Titres cotés</field>
<field name="code">5031</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
<record id="pcg_5035" model="account.account.template">
<field name="name">Valeurs mobilières de placement - Titres non cotés</field>
<field name="code">5035</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
<record id="pcg_504" model="account.account.template">
<field name="name">Valeurs mobilières de placement - Autres titres conférant un droit de propriété</field>
<field name="code">504</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
<record id="pcg_505" model="account.account.template">
<field name="name">Obligations et bons émis par la société et rachetés par elle</field>
<field name="code">505</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
<record id="pcg_5061" model="account.account.template">
<field name="name">Obligations cotés</field>
<field name="code">5061</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
<record id="pcg_5065" model="account.account.template">
<field name="name">Obligations non cotés</field>
<field name="code">5065</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
<record id="pcg_507" model="account.account.template">
<field name="name">Bons du Trésor et bons de caisse à court terme</field>
<field name="code">507</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
<record id="pcg_5081" model="account.account.template">
<field name="name">Autres valeurs mobilières de placement</field>
<field name="code">5081</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
<record id="pcg_5082" model="account.account.template">
<field name="name">Bons de souscription</field>
<field name="code">5082</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
<record id="pcg_5088" model="account.account.template">
<field name="name">Intérêts courus sur obligations, bons et valeurs assimilées</field>
<field name="code">5088</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
<record id="pcg_509" model="account.account.template">
<field name="name">Versements restant à effectuer sur valeurs mobilières de placement non libérées</field>
<field name="code">509</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
<record id="pcg_5111" model="account.account.template">
<field name="name">Coupons échus à l'encaissement</field>
<field name="code">5111</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="reconcile" eval="True"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
@@ -2913,7 +2913,7 @@
<record id="pcg_5112" model="account.account.template">
<field name="name">Chèques à encaisser</field>
<field name="code">5112</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="reconcile" eval="True"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
@@ -2921,7 +2921,7 @@
<record id="pcg_5113" model="account.account.template">
<field name="name">Effets à l'encaissement</field>
<field name="code">5113</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="reconcile" eval="True"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
@@ -2929,7 +2929,7 @@
<record id="pcg_5114" model="account.account.template">
<field name="name">Effets à l'escompte</field>
<field name="code">5114</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="reconcile" eval="True"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
@@ -2958,56 +2958,56 @@
<record id="pcg_516" model="account.account.template">
<field name="name">Sociétés de bourse</field>
<field name="code">516</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
<record id="pcg_517" model="account.account.template">
<field name="name">Autres organismes financiers</field>
<field name="code">517</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
<record id="pcg_5181" model="account.account.template">
<field name="name">Intérêts courus à payer</field>
<field name="code">5181</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
<record id="pcg_5188" model="account.account.template">
<field name="name">Intérêts courus à recevoir</field>
<field name="code">5188</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
<record id="pcg_5191" model="account.account.template">
<field name="name">Concours bancaires courants - Crédit de mobilisation de créances commerciales (CMCC)</field>
<field name="code">5191</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
<record id="pcg_5193" model="account.account.template">
<field name="name">Concours bancaires courants - Mobilisation de créances nées à l'étranger</field>
<field name="code">5193</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
<record id="pcg_5198" model="account.account.template">
<field name="name">Concours bancaires courants - Intérêts courus sur concours bancaires courants</field>
<field name="code">5198</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
<record id="pcg_52" model="account.account.template">
<field name="name">Instruments de trésorerie</field>
<field name="code">52</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
@@ -3042,35 +3042,35 @@
<record id="pcg_54" model="account.account.template">
<field name="name">Régies d'avances et accréditifs</field>
<field name="code">54</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
<record id="pcg_5903" model="account.account.template">
<field name="name">Provisions pour dépréciation des actions</field>
<field name="code">5903</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
<record id="pcg_5904" model="account.account.template">
<field name="name">Provisions pour dépréciation des autres titres conférant un droit de propriété</field>
<field name="code">5904</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
<record id="pcg_5906" model="account.account.template">
<field name="name">Provisions pour dépréciation des obligations</field>
<field name="code">5906</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
<record id="pcg_5908" model="account.account.template">
<field name="name">Provisions pour dépréciation des autres valeurs mobilières de placement et créances assimilées (provisions)</field>
<field name="code">5908</field>
<field name="user_type_id" ref="account.data_account_type_liquidity"/>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
</record>
+1 -1
View File
@@ -319,7 +319,7 @@ class PurchaseOrder(models.Model):
@api.multi
def button_approve(self, force=False):
self.write({'state': 'purchase'})
self.write({'state': 'purchase', 'date_approve': fields.Date.context_today(self)})
self._create_picking()
if self.company_id.po_lock == 'lock':
self.write({'state': 'done'})
+1 -1
View File
@@ -12,6 +12,6 @@ class MailComposeMessage(models.TransientModel):
if self._context.get('default_model') == 'sale.order' and self._context.get('default_res_id') and self._context.get('mark_so_as_sent'):
order = self.env['sale.order'].browse([self._context['default_res_id']])
if order.state == 'draft':
order.state = 'sent'
order.with_context(tracking_disable=True).state = 'sent'
self = self.with_context(mail_post_autofollow=True)
return super(MailComposeMessage, self).send_mail(auto_commit=auto_commit)
+13 -1
View File
@@ -4,4 +4,16 @@
import controllers
import models
import report
import wizard
import wizard
from odoo import api, SUPERUSER_ID
# TODO: Apply proper fix & remove in master
def pre_init_hook(cr):
env = api.Environment(cr, SUPERUSER_ID, {})
env['ir.model.data'].search([
('model', 'like', '%stock%'),
('module', '=', 'stock')
]).unlink()
+1
View File
@@ -101,4 +101,5 @@ Dashboard / Reports for Inventory Management will include:
'installable': True,
'application': True,
'auto_install': False,
'pre_init_hook': 'pre_init_hook',
}
@@ -56,7 +56,7 @@ odoo.define('website_form.animation', function (require) {
send: function(e) {
e.preventDefault(); // Prevent the default submit behavior
this.$target.find('.o_website_form_send').off(); // Prevent users from crazy clicking
this.$target.find('.o_website_form_send').off().addClass('disabled'); // Prevent users from crazy clicking
var self = this;
@@ -225,7 +225,7 @@ odoo.define('website_form.animation', function (require) {
update_status: function(status) {
var self = this;
if (status != 'success') { // Restore send button behavior if result is an error
this.$target.find('.o_website_form_send').on('click',function(e) {self.send(e);});
this.$target.find('.o_website_form_send').on('click',function(e) {self.send(e);}).removeClass('disabled');
}
var $result = this.$('#o_website_form_result');
this.templates_loaded.done(function () {
+1 -1
View File
@@ -166,7 +166,7 @@
<t t-set="additional_title">Shop</t>
<div id="wrap" class="js_sale">
<div class="oe_structure" />
<div class="container oe_website_sale">
<div t-attf-class="container oe_website_sale #{'oe_website_sale_search' if search else None}">
<div class="products_pager">
<div class="row" style="width: 100%;">
<t t-call="website_sale.search">
@@ -50,12 +50,12 @@ $(document).ready(function () {
},
// page switching
render_page: function (page_number) {
this.pdf_viewer.renderPage(page_number).then(this.on_rendered_page);
this.pdf_viewer.renderPage(page_number).then(this.on_rendered_page.bind(this));
},
change_page: function () {
var page_asked = parseInt(this.$('#page_number').val(), 10);
if(1 <= page_asked && page_asked <= this.pdf_viewer.pdf_page_total){
this.pdf_viewer.changePage(page_asked).then(this.on_rendered_page);
this.pdf_viewer.changePage(page_asked).then(this.on_rendered_page.bind(this));
}else{
// if page number out of range, reset the page_counter to the actual page
this.$('#page_number').val(this.pdf_viewer.pdf_page_current);
+1
View File
@@ -32,3 +32,4 @@ Denis Leemann denis.leemann@camptocamp.com https://github.com/leemannd
Akim Juillerat akim.juillerat@camptocamp.com https://github.com/grindtildeath
Damien Crier damien.crier@camptocamp.com https://github.com/damdam-s
Simone Orsi simahawk@gmail.com https://github.com/simahawk
Patrick Tombez patrick.tombez@camptocamp.com https://github.com/p-tombez
+11
View File
@@ -0,0 +1,11 @@
Spain, 2018-02-26
I hereby agree to the terms of the Odoo Individual Contributor License
Agreement v1.0.
I declare that I am authorized and able to make this agreement and sign this
declaration.
Signed,
Amaro Pesquero apesquero@gmail.com https://github.com/apesquero
+1 -2
View File
@@ -228,8 +228,7 @@ Possible children elements of the list view are:
context of the current row's record, if ``True`` the corresponding
attribute is set on the cell.
Possible attributes are ``invisible`` (hides the button) and
``readonly`` (disables the button but still shows it)
Possible attribute is ``invisible`` (hides the button).
``states``
shorthand for ``invisible`` ``attrs``: a list of states, comma separated,
requires that the model has a ``state`` field and that it is
+1 -1
View File
@@ -60,7 +60,7 @@ Administrator</span>]]></field>
<field name="company_id" ref="main_company"/>
</record>
<record id="ir_mail_server_localhost0" model="ir.mail_server">
<record id="ir_mail_server_localhost0" model="ir.mail_server" forcecreate="0">
<field name="name">localhost</field>
<field name="smtp_host">localhost</field>
<field eval="25" name="smtp_port"/>
@@ -27,8 +27,12 @@ class TestPyLint(TransactionCase):
'W0101', # unreachable code
'mixed-indentation',
'deprecated-module',
]
BAD_MODULES = [
] + list(tools.SUPPORTED_DEBUGGER)
def _skip_test(self, reason):
_logger.warn(reason)
self.skipTest(reason)
@@ -50,6 +54,7 @@ class TestPyLint(TransactionCase):
'--enable=%s' % ','.join(self.ENABLED_CODES),
'--reports=n',
"--msg-template='{msg} ({msg_id}) at {path}:{line}'",
'--deprecated-modules=%s' % ','.join(self.BAD_MODULES),
]
try:
+1 -1
View File
@@ -461,7 +461,7 @@ class YamlInterpreter(object):
ctx['field_parent'] = fg[field_name]['relation_field']
if default and field_elem.get('context'):
ctx.update(safe_eval(field_elem.get('context'),
globals_dict={'parent': dotdict(parent)},
globals_dict={'parent': dotdict(parent), 'context': ctx},
locals_dict=record_dict))
field_value = self._eval_field(model, field_name, fields[field_name], form_view, parent=record_dict, default=default, context=ctx)