[MERGE] forward port of branch saas-3 up to db75994
This commit is contained in:
commit
2e3f59181d
|
@ -221,7 +221,7 @@ class account_bank_statement(osv.osv):
|
|||
'ref': st_line.ref,
|
||||
}
|
||||
|
||||
def _get_counter_part_account(sefl, cr, uid, st_line, context=None):
|
||||
def _get_counter_part_account(self, cr, uid, st_line, context=None):
|
||||
"""Retrieve the account to use in the counterpart move.
|
||||
|
||||
:param browse_record st_line: account.bank.statement.line record to create the move from.
|
||||
|
@ -231,7 +231,7 @@ class account_bank_statement(osv.osv):
|
|||
return st_line.statement_id.journal_id.default_credit_account_id.id
|
||||
return st_line.statement_id.journal_id.default_debit_account_id.id
|
||||
|
||||
def _get_counter_part_partner(sefl, cr, uid, st_line, context=None):
|
||||
def _get_counter_part_partner(self, cr, uid, st_line, context=None):
|
||||
"""Retrieve the partner to use in the counterpart move.
|
||||
|
||||
:param browse_record st_line: account.bank.statement.line record to create the move from.
|
||||
|
|
|
@ -24,6 +24,7 @@ from lxml import etree
|
|||
|
||||
from openerp import models, fields, api, _
|
||||
from openerp.exceptions import except_orm, Warning, RedirectWarning
|
||||
from openerp.tools import float_compare
|
||||
import openerp.addons.decimal_precision as dp
|
||||
|
||||
# mapping invoice type to journal type
|
||||
|
@ -705,6 +706,7 @@ class account_invoice(models.Model):
|
|||
account_invoice_tax.create(tax)
|
||||
else:
|
||||
tax_key = []
|
||||
precision = self.env['decimal.precision'].precision_get('Account')
|
||||
for tax in self.tax_line:
|
||||
if tax.manual:
|
||||
continue
|
||||
|
@ -713,7 +715,7 @@ class account_invoice(models.Model):
|
|||
if key not in compute_taxes:
|
||||
raise except_orm(_('Warning!'), _('Global taxes defined, but they are not in invoice lines !'))
|
||||
base = compute_taxes[key]['base']
|
||||
if abs(base - tax.base) > company_currency.rounding:
|
||||
if float_compare(abs(base - tax.base), company_currency.rounding, precision_digits=precision) == 1:
|
||||
raise except_orm(_('Warning!'), _('Tax base different!\nClick on compute to update the tax base.'))
|
||||
for key in compute_taxes:
|
||||
if key not in tax_key:
|
||||
|
|
|
@ -486,7 +486,8 @@ class email_template(osv.osv):
|
|||
# body: add user signature, sanitize
|
||||
if 'body_html' in fields and template.user_signature:
|
||||
signature = self.pool.get('res.users').browse(cr, uid, uid, context).signature
|
||||
values['body_html'] = tools.append_content_to_html(values['body_html'], signature, plaintext=False)
|
||||
if signature:
|
||||
values['body_html'] = tools.append_content_to_html(values['body_html'], signature, plaintext=False)
|
||||
if values.get('body_html'):
|
||||
values['body'] = tools.html_sanitize(values['body_html'])
|
||||
# technical settings
|
||||
|
|
|
@ -38,7 +38,7 @@ class gamification_badge_user(osv.Model):
|
|||
_rec_name = "badge_name"
|
||||
|
||||
_columns = {
|
||||
'user_id': fields.many2one('res.users', string="User", required=True),
|
||||
'user_id': fields.many2one('res.users', string="User", required=True, ondelete="cascade"),
|
||||
'sender_id': fields.many2one('res.users', string="Sender", help="The user who has send the badge"),
|
||||
'badge_id': fields.many2one('gamification.badge', string='Badge', required=True, ondelete="cascade"),
|
||||
'challenge_id': fields.many2one('gamification.challenge', string='Challenge originating', help="If this badge was rewarded through a challenge"),
|
||||
|
|
|
@ -40,6 +40,7 @@ This is the base module to manage the accounting chart for Luxembourg.
|
|||
'data': [
|
||||
# basic accounting data
|
||||
'account_financial_report.xml',
|
||||
'account_financial_report_abr.xml',
|
||||
'account.account.type-2011.csv',
|
||||
'account.account.template-2011.csv',
|
||||
'account.tax.code.template-2011.csv',
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,635 @@
|
|||
<openerp>
|
||||
<data>
|
||||
<!-- balance sheet abbreviated model (CA_BILANABR) -->
|
||||
<record model="account.financial.report" id="account_financial_report_abr_13">
|
||||
<field name="name">Luxembourg Balance Sheet (abbreviated)</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">detail_flat</field>
|
||||
<field name="type">sum</field>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_15">
|
||||
<field name="name">ACTIF</field>
|
||||
<field name="sequence">201</field>
|
||||
<field name="style_overwrite" eval="1"/>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">detail_flat</field>
|
||||
<field name="type">sum</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_13"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_16">
|
||||
<field name="name">A. Capital souscrit non versé</field>
|
||||
<field name="sequence">101</field>
|
||||
<field name="style_overwrite" eval="2"/>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">detail_flat</field>
|
||||
<field name="type">sum</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_15"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_17">
|
||||
<field name="name">I. Capital souscrit non appelé</field>
|
||||
<field name="sequence">103</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_16"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_18">
|
||||
<field name="name">II. Capital souscrit appelé et non versé</field>
|
||||
<field name="sequence">105</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_16"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_19">
|
||||
<field name="name">B. Frais d’établissement</field>
|
||||
<field name="sequence">107</field>
|
||||
<field name="style_overwrite" eval="2"/>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_15"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_20">
|
||||
<field name="name">C. Actif immobilisé</field>
|
||||
<field name="sequence">109</field>
|
||||
<field name="style_overwrite" eval="2"/>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">detail_flat</field>
|
||||
<field name="type">sum</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_15"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_21">
|
||||
<field name="name">I. Immobilisations incorporelles</field>
|
||||
<field name="sequence">111</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_20"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_28">
|
||||
<field name="name">II. Immobilisations corporelles</field>
|
||||
<field name="sequence">125</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_20"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_33">
|
||||
<field name="name">III. Immobilisations financières</field>
|
||||
<field name="sequence">135</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_20"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_41">
|
||||
<field name="name">D. Actif circulant</field>
|
||||
<field name="sequence">151</field>
|
||||
<field name="style_overwrite" eval="2"/>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">detail_flat</field>
|
||||
<field name="type">sum</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_15"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_42">
|
||||
<field name="name">I. Stocks</field>
|
||||
<field name="sequence">153</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_41"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_47">
|
||||
<field name="name">II. Créances</field>
|
||||
<field name="sequence">163</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">detail_flat</field>
|
||||
<field name="type">sum</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_41"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_49">
|
||||
<field name="name">a) dont la durée résiduelle est inférieure ou égale à un an</field>
|
||||
<field name="sequence">167</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_47"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_50">
|
||||
<field name="name">b) dont la durée résiduelle est supérieure à un an</field>
|
||||
<field name="sequence">169</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_47"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_60">
|
||||
<field name="name">III. Valeurs mobilières</field>
|
||||
<field name="sequence">189</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_41"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_64">
|
||||
<field name="name">IV. Avoirs en banques, avoirs en compte de chèques postaux, chèques et en caisse</field>
|
||||
<field name="sequence">197</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_41"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_65">
|
||||
<field name="name">E. Comptes de régularisation</field>
|
||||
<field name="sequence">199</field>
|
||||
<field name="style_overwrite" eval="2"/>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_15"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_66">
|
||||
<field name="name">PASSIF</field>
|
||||
<field name="sequence">405</field>
|
||||
<field name="style_overwrite" eval="1"/>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">detail_flat</field>
|
||||
<field name="type">sum</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_13"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_67">
|
||||
<field name="name">A. Capitaux propres</field>
|
||||
<field name="sequence">301</field>
|
||||
<field name="style_overwrite" eval="2"/>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">detail_flat</field>
|
||||
<field name="type">sum</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_66"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_68">
|
||||
<field name="name">I. Capital souscrit</field>
|
||||
<field name="sequence">303</field>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_67"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_69">
|
||||
<field name="name">II. Primes d'émissions et primes assimilées</field>
|
||||
<field name="sequence">305</field>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_67"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_70">
|
||||
<field name="name">III. Réserves de réévaluation</field>
|
||||
<field name="sequence">307</field>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_67"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_71">
|
||||
<field name="name">IV. Réserves</field>
|
||||
<field name="sequence">309</field>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_67"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_76">
|
||||
<field name="name">V. Résultats reportés</field>
|
||||
<field name="sequence">319</field>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_67"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_77">
|
||||
<field name="name">VI. Résultat de l'exercice</field>
|
||||
<field name="sequence">321</field>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_67"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_78">
|
||||
<field name="name">VII. Acomptes sur dividendes</field>
|
||||
<field name="sequence">323</field>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_67"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_79">
|
||||
<field name="name">VIII. Subventions d’investissement en capital</field>
|
||||
<field name="sequence">325</field>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_67"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_80">
|
||||
<field name="name">IX. Plus-values immunisées</field>
|
||||
<field name="sequence">327</field>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_67"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_81">
|
||||
<field name="name">B. Dettes subordonnées</field>
|
||||
<field name="sequence">329</field>
|
||||
<field name="style_overwrite" eval="2"/>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_66"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_82">
|
||||
<field name="name">C. Provisions</field>
|
||||
<field name="sequence">331</field>
|
||||
<field name="style_overwrite" eval="2"/>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_66"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_86">
|
||||
<field name="name">D. Dettes non subordonnées</field>
|
||||
<field name="sequence">339</field>
|
||||
<field name="style_overwrite" eval="2"/>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">detail_flat</field>
|
||||
<field name="type">sum</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_66"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_89">
|
||||
<field name="name">a) dont la durée résiduelle est inférieure ou égale à un an</field>
|
||||
<field name="sequence">345</field>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_86"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_90">
|
||||
<field name="name">b) dont la durée résiduelle est supérieure à un an</field>
|
||||
<field name="sequence">347</field>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_86"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_118">
|
||||
<field name="name">E. Comptes de régularisation</field>
|
||||
<field name="sequence">403</field>
|
||||
<field name="style_overwrite" eval="2"/>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_66"/>
|
||||
</record>
|
||||
|
||||
<!-- profit and loss abbreviated model (CA_COMPPABR) -->
|
||||
<record model="account.financial.report" id="account_financial_report_abr_14">
|
||||
<field name="name">Luxembourg Profit & Loss (abbreviated)</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">detail_flat</field>
|
||||
<field name="type">sum</field>
|
||||
</record>
|
||||
|
||||
<!-- p&l full model (CA_COMPP) -->
|
||||
<record model="account.financial.report" id="account_financial_report_abr_119">
|
||||
<field name="name">A. CHARGES</field>
|
||||
<field name="sequence">641</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">detail_flat</field>
|
||||
<field name="type">sum</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_14"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_120">
|
||||
<field name="name">1. à 2. Charges brutes (moins B.1 à B.4)</field>
|
||||
<field name="sequence">601</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_119"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_122">
|
||||
<field name="name">3. Frais de personnel</field>
|
||||
<field name="sequence">605</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">detail_flat</field>
|
||||
<field name="type">sum</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_119"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_123">
|
||||
<field name="name">a) Salaires et traitements</field>
|
||||
<field name="sequence">607</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_122"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_124">
|
||||
<field name="name">b) Charges sociales couvrant les salaires et traitements</field>
|
||||
<field name="sequence">609</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_122"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_125">
|
||||
<field name="name">c) Pensions complémentaires</field>
|
||||
<field name="sequence">611</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_122"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_126">
|
||||
<field name="name">d) Autres charges sociales</field>
|
||||
<field name="sequence">613</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_122"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_127">
|
||||
<field name="name">4. Corrections de valeur</field>
|
||||
<field name="sequence">615</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">detail_flat</field>
|
||||
<field name="type">sum</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_119"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_128">
|
||||
<field name="name">a) sur frais d'établissement et sur immobilisations corporelles et incorporelles</field>
|
||||
<field name="sequence">617</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_127"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_129">
|
||||
<field name="name">b) sur éléments de l'actif circulant</field>
|
||||
<field name="sequence">619</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_127"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_130">
|
||||
<field name="name">5. Autres charges d’exploitation</field>
|
||||
<field name="sequence">621</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_119"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_131">
|
||||
<field name="name">6. Corrections de valeur sur immobilisations financières et ajustement de juste valeur sur immobilisations financières</field>
|
||||
<field name="sequence">623</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_119"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_132">
|
||||
<field name="name">7. Corrections de valeur et ajustement de juste valeur sur éléments financiers de l'actif circulant. Moins-values de cessions des valeurs mobilières</field>
|
||||
<field name="sequence">625</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_119"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_133">
|
||||
<field name="name">8. Intérêts et autres charges financières</field>
|
||||
<field name="sequence">627</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">detail_flat</field>
|
||||
<field name="type">sum</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_119"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_134">
|
||||
<field name="name">a) concernant des entreprises liées</field>
|
||||
<field name="sequence">629</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_133"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_135">
|
||||
<field name="name">b) autres intérêts et charges</field>
|
||||
<field name="sequence">631</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_133"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_136">
|
||||
<field name="name">9. Charges exceptionnelles</field>
|
||||
<field name="sequence">633</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_119"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_137">
|
||||
<field name="name">10. Impôts sur le résultat</field>
|
||||
<field name="sequence">635</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_119"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_138">
|
||||
<field name="name">11. Autres impôts ne figurant pas sous le poste ci-dessus</field>
|
||||
<field name="sequence">637</field>
|
||||
<field name="sign" eval="1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_119"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_140">
|
||||
<field name="name">B. PRODUITS</field>
|
||||
<field name="sequence">737</field>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">detail_flat</field>
|
||||
<field name="type">sum</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_14"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_141">
|
||||
<field name="name">1. à 4. Produits bruts (moins A.1 et A.2)</field>
|
||||
<field name="sequence">701</field>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_140"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_147">
|
||||
<field name="name">5. Autres produits d’exploitation</field>
|
||||
<field name="sequence">713</field>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_140"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_148">
|
||||
<field name="name">6. Produits des immobilisations financières</field>
|
||||
<field name="sequence">715</field>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">detail_flat</field>
|
||||
<field name="type">sum</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_140"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_149">
|
||||
<field name="name">a) provenant d’entreprises liées</field>
|
||||
<field name="sequence">717</field>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_148"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_150">
|
||||
<field name="name">b) autres produits de participations</field>
|
||||
<field name="sequence">719</field>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_148"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_151">
|
||||
<field name="name">7. Produits des éléments financiers de l'actif circulant</field>
|
||||
<field name="sequence">721</field>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">detail_flat</field>
|
||||
<field name="type">sum</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_140"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_152">
|
||||
<field name="name">a) provenant d’entreprises liées</field>
|
||||
<field name="sequence">723</field>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_151"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_153">
|
||||
<field name="name">b) autres produits</field>
|
||||
<field name="sequence">725</field>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_151"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_154">
|
||||
<field name="name">8. Autres intérêts et autres produits financiers</field>
|
||||
<field name="sequence">727</field>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">detail_flat</field>
|
||||
<field name="type">sum</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_140"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_155">
|
||||
<field name="name">a) provenant d’entreprises liées</field>
|
||||
<field name="sequence">729</field>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_154"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_156">
|
||||
<field name="name">b) autres intérêts et produits financiers</field>
|
||||
<field name="sequence">731</field>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_154"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_157">
|
||||
<field name="name">9. Produits exceptionnels</field>
|
||||
<field name="sequence">733</field>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_140"/>
|
||||
</record>
|
||||
|
||||
<record model="account.financial.report" id="account_financial_report_abr_161">
|
||||
<field name="name">RESULTAT DE L'EXERCICE</field>
|
||||
<field name="sequence">800</field>
|
||||
<field name="sign" eval="-1"/>
|
||||
<field name="display_detail">no_detail</field>
|
||||
<field name="type">accounts</field>
|
||||
<field name="parent_id" ref="account_financial_report_abr_14"/>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
|
@ -1234,9 +1234,13 @@ class mail_thread(osv.AbstractModel):
|
|||
body = tools.append_content_to_html(u'', body, preserve=True)
|
||||
else:
|
||||
alternative = False
|
||||
mixed = False
|
||||
html = u''
|
||||
for part in message.walk():
|
||||
if part.get_content_type() == 'multipart/alternative':
|
||||
alternative = True
|
||||
if part.get_content_type() == 'multipart/mixed':
|
||||
mixed = True
|
||||
if part.get_content_maintype() == 'multipart':
|
||||
continue # skip container
|
||||
# part.get_filename returns decoded value if able to decode, coded otherwise.
|
||||
|
@ -1263,8 +1267,11 @@ class mail_thread(osv.AbstractModel):
|
|||
encoding, errors='replace'), preserve=True)
|
||||
# 3) text/html -> raw
|
||||
elif part.get_content_type() == 'text/html':
|
||||
# mutlipart/alternative have one text and a html part, keep only the second
|
||||
# mixed allows several html parts, append html content
|
||||
append_content = not alternative or (html and mixed)
|
||||
html = tools.ustr(part.get_payload(decode=True), encoding, errors='replace')
|
||||
if alternative:
|
||||
if not append_content:
|
||||
body = html
|
||||
else:
|
||||
body = tools.append_content_to_html(body, html, plaintext=False)
|
||||
|
|
|
@ -143,6 +143,53 @@ X-Attachment-Id: f_hkpb27k00
|
|||
dGVzdAo=
|
||||
--089e01536c4ed4d17204e49b8e96--"""
|
||||
|
||||
MAIL_MULTIPART_MIXED_TWO = """X-Original-To: raoul@grosbedon.fr
|
||||
Delivered-To: raoul@grosbedon.fr
|
||||
Received: by mail1.grosbedon.com (Postfix, from userid 10002)
|
||||
id E8166BFACA; Fri, 23 Aug 2013 13:18:01 +0200 (CEST)
|
||||
From: "Bruce Wayne" <bruce@wayneenterprises.com>
|
||||
Content-Type: multipart/alternative;
|
||||
boundary="Apple-Mail=_9331E12B-8BD2-4EC7-B53E-01F3FBEC9227"
|
||||
Message-Id: <6BB1FAB2-2104-438E-9447-07AE2C8C4A92@sexample.com>
|
||||
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
|
||||
|
||||
--Apple-Mail=_9331E12B-8BD2-4EC7-B53E-01F3FBEC9227
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Content-Type: text/plain;
|
||||
charset=us-ascii
|
||||
|
||||
First and second part
|
||||
|
||||
--Apple-Mail=_9331E12B-8BD2-4EC7-B53E-01F3FBEC9227
|
||||
Content-Type: multipart/mixed;
|
||||
boundary="Apple-Mail=_CA6C687E-6AA0-411E-B0FE-F0ABB4CFED1F"
|
||||
|
||||
--Apple-Mail=_CA6C687E-6AA0-411E-B0FE-F0ABB4CFED1F
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Content-Type: text/html;
|
||||
charset=us-ascii
|
||||
|
||||
<html><head></head><body>First part</body></html>
|
||||
|
||||
--Apple-Mail=_CA6C687E-6AA0-411E-B0FE-F0ABB4CFED1F
|
||||
Content-Disposition: inline;
|
||||
filename=thetruth.pdf
|
||||
Content-Type: application/pdf;
|
||||
name="thetruth.pdf"
|
||||
Content-Transfer-Encoding: base64
|
||||
|
||||
SSBhbSB0aGUgQmF0TWFuCg==
|
||||
|
||||
--Apple-Mail=_CA6C687E-6AA0-411E-B0FE-F0ABB4CFED1F
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Content-Type: text/html;
|
||||
charset=us-ascii
|
||||
|
||||
<html><head></head><body>Second part</body></html>
|
||||
--Apple-Mail=_CA6C687E-6AA0-411E-B0FE-F0ABB4CFED1F--
|
||||
|
||||
--Apple-Mail=_9331E12B-8BD2-4EC7-B53E-01F3FBEC9227--
|
||||
"""
|
||||
|
||||
class TestMailgateway(TestMail):
|
||||
|
||||
|
@ -164,6 +211,14 @@ class TestMailgateway(TestMail):
|
|||
self.assertIn('<div dir="ltr">Should create a multipart/mixed: from gmail, <b>bold</b>, with attachment.<br clear="all"><div><br></div>', res.get('body', ''),
|
||||
'message_parse: html version should be in body after parsing multipart/mixed')
|
||||
|
||||
res = self.mail_thread.message_parse(cr, uid, MAIL_MULTIPART_MIXED_TWO)
|
||||
self.assertNotIn('First and second part', res.get('body', ''),
|
||||
'message_parse: text version should not be in body after parsing multipart/mixed')
|
||||
self.assertIn('First part', res.get('body', ''),
|
||||
'message_parse: first part of the html version should be in body after parsing multipart/mixed')
|
||||
self.assertIn('Second part', res.get('body', ''),
|
||||
'message_parse: second part of the html version should be in body after parsing multipart/mixed')
|
||||
|
||||
@mute_logger('openerp.addons.mail.mail_thread', 'openerp.models')
|
||||
def test_10_message_process(self):
|
||||
""" Testing incoming emails processing. """
|
||||
|
|
|
@ -120,6 +120,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
|
|||
this.is_initialized = $.Deferred();
|
||||
this.mutating_mutex = new $.Mutex();
|
||||
this.save_list = [];
|
||||
this.render_value_defs = [];
|
||||
this.reload_mutex = new $.Mutex();
|
||||
this.__clicked_inside = false;
|
||||
this.__blur_timeout = null;
|
||||
|
@ -674,6 +675,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
|
|||
} else if (mode === "create") {
|
||||
mode = "edit";
|
||||
}
|
||||
this.render_value_defs = [];
|
||||
this.set({actual_mode: mode});
|
||||
},
|
||||
check_actual_mode: function(source, options) {
|
||||
|
@ -724,12 +726,15 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
|
|||
});
|
||||
},
|
||||
on_button_cancel: function(event) {
|
||||
var self = this;
|
||||
if (this.can_be_discarded()) {
|
||||
if (this.get('actual_mode') === 'create') {
|
||||
this.trigger('history_back');
|
||||
} else {
|
||||
this.to_view_mode();
|
||||
this.trigger('load_record', this.datarecord);
|
||||
$.when.apply(null, this.render_value_defs).then(function(){
|
||||
self.trigger('load_record', self.datarecord);
|
||||
});
|
||||
}
|
||||
}
|
||||
this.trigger('on_button_cancel');
|
||||
|
@ -2239,7 +2244,7 @@ instance.web.form.ReinitializeWidgetMixin = {
|
|||
instance.web.form.ReinitializeFieldMixin = _.extend({}, instance.web.form.ReinitializeWidgetMixin, {
|
||||
reinitialize: function() {
|
||||
instance.web.form.ReinitializeWidgetMixin.reinitialize.call(this);
|
||||
this.render_value();
|
||||
this.view.render_value_defs.push(this.render_value());
|
||||
},
|
||||
});
|
||||
|
||||
|
@ -4747,9 +4752,8 @@ instance.web.form.FieldMany2ManyTags = instance.web.form.AbstractField.extend(in
|
|||
self.render_tag(data);
|
||||
}
|
||||
if (! values || values.length > 0) {
|
||||
this._display_orderer.add(self.get_render_data(values)).done(handle_names);
|
||||
}
|
||||
else{
|
||||
return this._display_orderer.add(self.get_render_data(values)).done(handle_names);
|
||||
} else {
|
||||
handle_names([]);
|
||||
}
|
||||
},
|
||||
|
|
|
@ -89,7 +89,7 @@
|
|||
<ul class="nav nav-pills nav-stacked mt16">
|
||||
<li class="nav-header"><h3>Location</h3></li>
|
||||
<t t-foreach="countries" t-as="country">
|
||||
<li t-if="country['country_id']" t-att-class="country['country_id'][0] == current_country_id and 'active' or ''">
|
||||
<li t-if="country['country_id']" t-att-class="country['country_id'] and country['country_id'][0] == current_country_id and 'active' or ''">
|
||||
<a t-attf-href="/members#{ membership and '/association/%s' % membership.id or '' }#{ country['country_id'][0] and '/country/%s' % slug(country['country_id']) or '' }#{ search }"><t t-esc="country['country_id'][1]"/>
|
||||
<span class="badge pull-right"><t t-esc="country['country_id_count'] or '0'"/></span>
|
||||
</a>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2011-2012 OpenERP S.A (<http://www.openerp.com>)
|
||||
# Copyright (C) 2011-2014 OpenERP S.A. (<http://www.openerp.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
|
||||
|
@ -24,7 +24,7 @@ from email.mime.base import MIMEBase
|
|||
from email.mime.multipart import MIMEMultipart
|
||||
from email.charset import Charset
|
||||
from email.header import Header
|
||||
from email.utils import formatdate, make_msgid, COMMASPACE, parseaddr
|
||||
from email.utils import formatdate, make_msgid, COMMASPACE, getaddresses, formataddr
|
||||
from email import Encoders
|
||||
import logging
|
||||
import re
|
||||
|
@ -140,30 +140,15 @@ def encode_rfc2822_address_header(header_text):
|
|||
``"Name"`` portion by the RFC2047-encoded
|
||||
version, preserving the address part untouched.
|
||||
"""
|
||||
header_text_utf8 = tools.ustr(header_text).encode('utf-8')
|
||||
header_text_ascii = try_coerce_ascii(header_text_utf8)
|
||||
if header_text_ascii:
|
||||
return header_text_ascii
|
||||
def encode_addr(addr):
|
||||
name, email = addr
|
||||
if not try_coerce_ascii(name):
|
||||
name = str(Header(name, 'utf-8'))
|
||||
return formataddr((name, email))
|
||||
|
||||
name, email = parseaddr(header_text_utf8)
|
||||
if not name:
|
||||
return email
|
||||
addresses = getaddresses([tools.ustr(header_text).encode('utf-8')])
|
||||
return COMMASPACE.join(map(encode_addr, addresses))
|
||||
|
||||
# non-ASCII characters are present, attempt to
|
||||
# replace all "Name" patterns with the RFC2047-
|
||||
# encoded version
|
||||
name_encoded = str(Header(name, 'utf-8'))
|
||||
header_text_utf8 = "%s <%s>" % (name_encoded, email)
|
||||
# try again after encoding
|
||||
header_text_ascii = try_coerce_ascii(header_text_utf8)
|
||||
if header_text_ascii:
|
||||
return header_text_ascii
|
||||
# fallback to extracting pure addresses only, which could
|
||||
# still cause a failure downstream if the actual addresses
|
||||
# contain non-ASCII characters
|
||||
return COMMASPACE.join(extract_rfc2822_addresses(header_text_utf8))
|
||||
|
||||
|
||||
class ir_mail_server(osv.osv):
|
||||
"""Represents an SMTP server, able to send outgoing emails, with SSL and TLS capabilities."""
|
||||
_name = "ir.mail_server"
|
||||
|
|
|
@ -248,7 +248,7 @@ class view(osv.osv):
|
|||
return values
|
||||
|
||||
def create(self, cr, uid, values, context=None):
|
||||
if 'type' not in values:
|
||||
if not values.get('type'):
|
||||
if values.get('inherit_id'):
|
||||
values['type'] = self.browse(cr, uid, values['inherit_id'], context).type
|
||||
else:
|
||||
|
|
|
@ -358,7 +358,7 @@ class res_users(osv.osv):
|
|||
if not context:
|
||||
context={}
|
||||
ids = []
|
||||
if name:
|
||||
if name and operator in ['=', 'ilike']:
|
||||
ids = self.search(cr, user, [('login','=',name)]+ args, limit=limit, context=context)
|
||||
if not ids:
|
||||
ids = self.search(cr, user, [('name',operator,name)]+ args, limit=limit, context=context)
|
||||
|
|
|
@ -579,7 +579,7 @@ def append_content_to_html(html, content, plaintext=True, preserve=False, contai
|
|||
elif plaintext:
|
||||
content = '\n%s\n' % plaintext2html(content, container_tag)
|
||||
else:
|
||||
content = re.sub(r'(?i)(</?html.*>|</?body.*>|<!\W*DOCTYPE.*>)', '', content)
|
||||
content = re.sub(r'(?i)(</?(?:html|body|head|!\s*DOCTYPE)[^>]*>)', '', content)
|
||||
content = u'\n%s\n' % ustr(content)
|
||||
# Force all tags to lowercase
|
||||
html = re.sub(r'(</?)\W*(\w+)([ >])',
|
||||
|
|
Loading…
Reference in New Issue