summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Dony <odo@openerp.com>2011-02-28 15:00:01 +0100
committerOlivier Dony <odo@openerp.com>2011-02-28 15:00:01 +0100
commit4017c9da74bd1e09ace79b3ae05bd0ca5e7743ec (patch)
tree9708a08c7803831e07e6e66effaeae15c9eb2779
parent2bf57273d0998a4fea6be384490dd21e6f921b2e (diff)
parentbeac68b7d257942bfdacf16205ac499ac8242cb0 (diff)
[MERGE] merged multi-company rules fix from 6.0
bzr revid: odo@openerp.com-20110228104936-7o281husy5j1hz8l bzr revid: odo@openerp.com-20110228140001-eo18g7ncst04v0lg
-rw-r--r--addons/account/invoice.py1
-rw-r--r--addons/account/security/account_security.xml28
-rw-r--r--addons/account_budget/security/account_budget_security.xml6
-rw-r--r--addons/account_coda/security/account_security.xml2
-rw-r--r--addons/account_payment/security/account_payment_security.xml2
-rw-r--r--addons/account_voucher/account_voucher_view.xml2
-rw-r--r--addons/account_voucher/security/account_voucher_security.xml4
-rw-r--r--addons/analytic/security/analytic_security.xml2
-rw-r--r--addons/anonymization/__init__.py1
-rw-r--r--addons/anonymization/anonymization.py9
-rw-r--r--addons/base_report_creator/wizard/report_menu_create.py2
-rw-r--r--addons/crm_claim/crm_claim.py101
-rw-r--r--addons/crm_helpdesk/crm_helpdesk.py101
-rw-r--r--addons/document/document.py36
-rw-r--r--addons/hr_timesheet_sheet/security/hr_timesheet_sheet_security.xml2
-rw-r--r--addons/l10n_ch/test/l10n_ch_report.yml10
-rw-r--r--addons/mrp/security/mrp_security.xml6
-rw-r--r--addons/product/pricelist.py6
-rw-r--r--addons/product/product.py4
-rw-r--r--addons/product/report/pricelist.py2
-rw-r--r--addons/product/security/product_security.xml2
-rw-r--r--addons/product_margin/product_margin_view.xml3
-rw-r--r--addons/project/security/project_security.xml4
-rw-r--r--addons/purchase/purchase.py2
-rw-r--r--addons/purchase/purchase_view.xml1
-rw-r--r--addons/purchase/security/purchase_security.xml4
-rw-r--r--addons/purchase_requisition/security/purchase_tender.xml4
-rw-r--r--addons/sale/security/sale_security.xml8
-rw-r--r--addons/share/web/controllers.py4
-rw-r--r--addons/stock/security/stock_security.xml12
-rw-r--r--addons/wiki/web/locales/bg.po4
-rw-r--r--addons/wiki/web/locales/de.po22
-rw-r--r--addons/wiki/web/locales/fr.po22
-rw-r--r--addons/wiki/web/locales/sk.po22
34 files changed, 365 insertions, 76 deletions
diff --git a/addons/account/invoice.py b/addons/account/invoice.py
index a50bb37a981..48e635aee53 100644
--- a/addons/account/invoice.py
+++ b/addons/account/invoice.py
@@ -1336,6 +1336,7 @@ class account_invoice_line(osv.osv):
domain = {}
result['uos_id'] = res.uom_id.id or uom or False
+ result['note'] = res.description
if result['uos_id']:
res2 = res.uom_id.category_id.id
if res2:
diff --git a/addons/account/security/account_security.xml b/addons/account/security/account_security.xml
index 39ed61cc253..5f429270e29 100644
--- a/addons/account/security/account_security.xml
+++ b/addons/account/security/account_security.xml
@@ -16,98 +16,98 @@
<field name="name">Account Entry</field>
<field ref="model_account_move" name="model_id"/>
<field eval="True" name="global"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="account_move_line_comp_rule" model="ir.rule">
<field name="name">Entry lines</field>
<field model="ir.model" name="model_id" ref="model_account_move_line"/>
<field eval="True" name="global"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="journal_period_comp_rule" model="ir.rule">
<field name="name">Journal Period</field>
<field model="ir.model" name="model_id" ref="model_account_journal_period"/>
<field eval="True" name="global"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="journal_comp_rule" model="ir.rule">
<field name="name">Journal multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_journal"/>
<field eval="True" name="global"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="analytic_journal_comp_rule" model="ir.rule">
<field name="name">Analytic journal multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_analytic_journal"/>
<field eval="True" name="global"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="analytic_journal_comp_rule_false" model="ir.rule">
<field name="name">Analytic journal multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_analytic_journal"/>
<field eval="True" name="global"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="period_comp_rule" model="ir.rule">
<field name="name">Period multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_period"/>
<field eval="True" name="global"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="fiscal_year_comp_rule" model="ir.rule">
<field name="name">Fiscal year multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_fiscalyear"/>
<field eval="True" name="global"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="account_comp_rule" model="ir.rule">
<field name="name">Account multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_account"/>
<field eval="True" name="global"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="tax_comp_rule" model="ir.rule">
<field name="name">Tax multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_tax"/>
<field eval="True" name="global"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','=',user.company_id.id)]</field>
</record>
<record id="tax_code_comp_rule" model="ir.rule">
<field name="name">Tax code multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_tax_code"/>
<field eval="True" name="global"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="invoice_comp_rule" model="ir.rule">
<field name="name">Invoice multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_invoice"/>
<field eval="True" name="global"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="account_fiscal_position_comp_rule" model="ir.rule">
<field name="name">Account fiscal Mapping company rule</field>
<field model="ir.model" name="model_id" ref="model_account_fiscal_position"/>
<field eval="True" name="global"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="account_model_comp_rule" model="ir.rule">
<field name="name">Account model company rule</field>
<field model="ir.model" name="model_id" ref="model_account_model"/>
<field eval="True" name="global"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
</data></openerp>
diff --git a/addons/account_budget/security/account_budget_security.xml b/addons/account_budget/security/account_budget_security.xml
index 1d737d5ddd8..1fbcd82e86c 100644
--- a/addons/account_budget/security/account_budget_security.xml
+++ b/addons/account_budget/security/account_budget_security.xml
@@ -6,21 +6,21 @@
<field name="name">Budget post multi-company</field>
<field name="model_id" ref="model_account_budget_post"/>
<field eval="True" name="global"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="budget_comp_rule" model="ir.rule">
<field name="name">Budget multi-company</field>
<field name="model_id" ref="model_crossovered_budget"/>
<field eval="True" name="global"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="budget_lines_comp_rule" model="ir.rule">
<field name="name">Budget lines multi-company</field>
<field name="model_id" ref="model_crossovered_budget_lines"/>
<field eval="True" name="global"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
</data>
diff --git a/addons/account_coda/security/account_security.xml b/addons/account_coda/security/account_security.xml
index 3035c8e608b..b8fdd32ebe6 100644
--- a/addons/account_coda/security/account_security.xml
+++ b/addons/account_coda/security/account_security.xml
@@ -5,7 +5,7 @@
<field name="name">Account Coda model company rule</field>
<field model="ir.model" name="model_id" ref="model_account_coda"/>
<field eval="True" name="global"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
</data></openerp>
diff --git a/addons/account_payment/security/account_payment_security.xml b/addons/account_payment/security/account_payment_security.xml
index dcd2826a65f..5977ea36365 100644
--- a/addons/account_payment/security/account_payment_security.xml
+++ b/addons/account_payment/security/account_payment_security.xml
@@ -10,7 +10,7 @@
<field name="name">Payment Mode company rule</field>
<field model="ir.model" name="model_id" ref="model_payment_mode"/>
<field eval="True" name="global"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
</data>
diff --git a/addons/account_voucher/account_voucher_view.xml b/addons/account_voucher/account_voucher_view.xml
index 745e7ab1078..ac3bcc9d9b5 100644
--- a/addons/account_voucher/account_voucher_view.xml
+++ b/addons/account_voucher/account_voucher_view.xml
@@ -46,6 +46,7 @@
<field name="journal_id" widget="selection" select="1" on_change="onchange_journal_voucher(line_ids, tax_id, amount, partner_id, journal_id, type)"/>
<field name="type" required="1"/>
<field name="name" colspan="2"/>
+ <field name="company_id" widget="selection" groups="base.group_multi_company"/>
<field name="reference" select="1"/>
<field name="account_id" widget="selection" invisible="True"/>
</group>
@@ -79,7 +80,6 @@
</page>
<page string="Journal Items" groups="base.group_extended" attrs="{'invisible': [('state','!=','posted')]}">
<group col="6" colspan="4">
- <field name="company_id" widget="selection" groups="base.group_multi_company"/>
<field name="period_id"/>
<field name="audit"/>
</group>
diff --git a/addons/account_voucher/security/account_voucher_security.xml b/addons/account_voucher/security/account_voucher_security.xml
index d368ab858ed..df4e58484b5 100644
--- a/addons/account_voucher/security/account_voucher_security.xml
+++ b/addons/account_voucher/security/account_voucher_security.xml
@@ -5,13 +5,13 @@
<field name="name">Voucher multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_voucher"/>
<field eval="True" name="global"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="voucher_line_comp_rule" model="ir.rule">
<field name="name">Voucher Line multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_voucher_line"/>
<field eval="True" name="global"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
</data>
</openerp>
diff --git a/addons/analytic/security/analytic_security.xml b/addons/analytic/security/analytic_security.xml
index 58a687fee1b..dfa8c840bb6 100644
--- a/addons/analytic/security/analytic_security.xml
+++ b/addons/analytic/security/analytic_security.xml
@@ -5,7 +5,7 @@
<field name="name">Analytic multi company rule</field>
<field model="ir.model" name="model_id" ref="model_account_analytic_account"/>
<field eval="True" name="global"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="group_analytic_accounting" model="res.groups" context="{'noadmin':True}">
<field name="name">Useability / Analytic Accounting</field>
diff --git a/addons/anonymization/__init__.py b/addons/anonymization/__init__.py
index d3c219a9ffa..7be1a934c5a 100644
--- a/addons/anonymization/__init__.py
+++ b/addons/anonymization/__init__.py
@@ -21,5 +21,4 @@
##############################################################################
import anonymization
-import wizard
diff --git a/addons/anonymization/anonymization.py b/addons/anonymization/anonymization.py
index 5e205c959e8..35a1fe83f56 100644
--- a/addons/anonymization/anonymization.py
+++ b/addons/anonymization/anonymization.py
@@ -418,14 +418,9 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory):
elif field_type == 'datetime':
anonymized_value = '2011-11-11 11:11:11'
elif field_type == 'float':
- if record[field_name] > 0:
- anonymized_value = 1.0
- elif record[field_name] < 0:
- anonymized_value = -1.0
- else:
- anonymized_value = 0.0
+ anonymized_value = 0.0
elif field_type == 'integer':
- anonymized_value = 1
+ anonymized_value = 0
elif field_type in ['binary', 'many2many', 'many2one', 'one2many', 'reference']: # cannot anonymize these kind of fields
msg = "Cannot anonymize fields of these types: binary, many2many, many2one, one2many, reference"
self._raise_after_history_update(cr, uid, history_id, 'Error !', msg)
diff --git a/addons/base_report_creator/wizard/report_menu_create.py b/addons/base_report_creator/wizard/report_menu_create.py
index f209bd05526..072c5482dfc 100644
--- a/addons/base_report_creator/wizard/report_menu_create.py
+++ b/addons/base_report_creator/wizard/report_menu_create.py
@@ -66,7 +66,7 @@ class report_menu_create(osv.osv_memory):
'view_type':'form',
'view_mode':view,
'context': "{'report_id':%d}" % (board.id,),
- 'res_model': 'base_report_creator.report',
+ 'res_model': 'base_report_creator_report.result',
'search_view_id': res['res_id']
})
diff --git a/addons/crm_claim/crm_claim.py b/addons/crm_claim/crm_claim.py
index 71da913c7a1..1829aa9a171 100644
--- a/addons/crm_claim/crm_claim.py
+++ b/addons/crm_claim/crm_claim.py
@@ -22,6 +22,14 @@
from osv import fields, osv
from crm import crm
import time
+import binascii
+import tools
+
+CRM_CLAIM_PENDING_STATES = (
+ crm.AVAILABLE_STATES[2][0], # Cancelled
+ crm.AVAILABLE_STATES[3][0], # Done
+ crm.AVAILABLE_STATES[4][0], # Pending
+)
class crm_claim(crm.crm_case, osv.osv):
"""
@@ -146,6 +154,99 @@ class crm_claim(crm.crm_case, osv.osv):
self.write(cr, uid, [ids[i]], {'stage_id' : stage_id})
return res
+
+ def message_new(self, cr, uid, msg, context=None):
+ """
+ Automatically calls when new email message arrives
+
+ @param self: The object pointer
+ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks
+ """
+ mailgate_pool = self.pool.get('email.server.tools')
+
+ subject = msg.get('subject')
+ body = msg.get('body')
+ msg_from = msg.get('from')
+ priority = msg.get('priority')
+
+ vals = {
+ 'name': subject,
+ 'email_from': msg_from,
+ 'email_cc': msg.get('cc'),
+ 'description': body,
+ 'user_id': False,
+ }
+ if msg.get('priority', False):
+ vals['priority'] = priority
+
+ res = mailgate_pool.get_partner(cr, uid, msg.get('from') or msg.get_unixfrom())
+ if res:
+ vals.update(res)
+
+ res = self.create(cr, uid, vals, context)
+ attachents = msg.get('attachments', [])
+ for attactment in attachents or []:
+ data_attach = {
+ 'name': attactment,
+ 'datas':binascii.b2a_base64(str(attachents.get(attactment))),
+ 'datas_fname': attactment,
+ 'description': 'Mail attachment',
+ 'res_model': self._name,
+ 'res_id': res,
+ }
+ self.pool.get('ir.attachment').create(cr, uid, data_attach)
+
+ return res
+
+ def message_update(self, cr, uid, ids, vals={}, msg="", default_act='pending', context=None):
+ """
+ @param self: The object pointer
+ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks,
+ @param ids: List of update mail’s IDs
+ """
+ if isinstance(ids, (str, int, long)):
+ ids = [ids]
+
+ if msg.get('priority') in dict(crm.AVAILABLE_PRIORITIES):
+ vals['priority'] = msg.get('priority')
+
+ maps = {
+ 'cost':'planned_cost',
+ 'revenue': 'planned_revenue',
+ 'probability':'probability'
+ }
+ vls = {}
+ for line in msg['body'].split('\n'):
+ line = line.strip()
+ res = tools.misc.command_re.match(line)
+ if res and maps.get(res.group(1).lower()):
+ key = maps.get(res.group(1).lower())
+ vls[key] = res.group(2).lower()
+ vals.update(vls)
+
+ # Unfortunately the API is based on lists
+ # but we want to update the state based on the
+ # previous state, so we have to loop:
+ for case in self.browse(cr, uid, ids, context=context):
+ values = dict(vals)
+ if case.state in CRM_CLAIM_PENDING_STATES:
+ values.update(state=crm.AVAILABLE_STATES[1][0]) #re-open
+ res = self.write(cr, uid, [case.id], values, context=context)
+ return res
+
+ def msg_send(self, cr, uid, id, *args, **argv):
+
+ """ Send The Message
+ @param self: The object pointer
+ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks,
+ @param ids: List of email’s IDs
+ @param *args: Return Tuple Value
+ @param **args: Return Dictionary of Keyword Value
+ """
+ return True
crm_claim()
diff --git a/addons/crm_helpdesk/crm_helpdesk.py b/addons/crm_helpdesk/crm_helpdesk.py
index 1508704d2d6..30a2af63512 100644
--- a/addons/crm_helpdesk/crm_helpdesk.py
+++ b/addons/crm_helpdesk/crm_helpdesk.py
@@ -22,6 +22,14 @@
from crm import crm
from osv import fields, osv
import time
+import binascii
+import tools
+
+CRM_HELPDESK_STATES = (
+ crm.AVAILABLE_STATES[2][0], # Cancelled
+ crm.AVAILABLE_STATES[3][0], # Done
+ crm.AVAILABLE_STATES[4][0], # Pending
+)
class crm_helpdesk(crm.crm_case, osv.osv):
""" Helpdesk Cases """
@@ -86,6 +94,99 @@ class crm_helpdesk(crm.crm_case, osv.osv):
'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0],
}
+ def message_new(self, cr, uid, msg, context=None):
+ """
+ Automatically calls when new email message arrives
+
+ @param self: The object pointer
+ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks
+ """
+ mailgate_pool = self.pool.get('email.server.tools')
+
+ subject = msg.get('subject')
+ body = msg.get('body')
+ msg_from = msg.get('from')
+ priority = msg.get('priority')
+
+ vals = {
+ 'name': subject,
+ 'email_from': msg_from,
+ 'email_cc': msg.get('cc'),
+ 'description': body,
+ 'user_id': False,
+ }
+ if msg.get('priority', False):
+ vals['priority'] = priority
+
+ res = mailgate_pool.get_partner(cr, uid, msg.get('from') or msg.get_unixfrom())
+ if res:
+ vals.update(res)
+
+ res = self.create(cr, uid, vals, context)
+ attachents = msg.get('attachments', [])
+ for attactment in attachents or []:
+ data_attach = {
+ 'name': attactment,
+ 'datas':binascii.b2a_base64(str(attachents.get(attactment))),
+ 'datas_fname': attactment,
+ 'description': 'Mail attachment',
+ 'res_model': self._name,
+ 'res_id': res,
+ }
+ self.pool.get('ir.attachment').create(cr, uid, data_attach)
+
+ return res
+
+ def message_update(self, cr, uid, ids, vals={}, msg="", default_act='pending', context=None):
+ """
+ @param self: The object pointer
+ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks,
+ @param ids: List of update mail’s IDs
+ """
+ if isinstance(ids, (str, int, long)):
+ ids = [ids]
+
+ if msg.get('priority') in dict(crm.AVAILABLE_PRIORITIES):
+ vals['priority'] = msg.get('priority')
+
+ maps = {
+ 'cost':'planned_cost',
+ 'revenue': 'planned_revenue',
+ 'probability':'probability'
+ }
+ vls = {}
+ for line in msg['body'].split('\n'):
+ line = line.strip()
+ res = tools.misc.command_re.match(line)
+ if res and maps.get(res.group(1).lower()):
+ key = maps.get(res.group(1).lower())
+ vls[key] = res.group(2).lower()
+ vals.update(vls)
+
+ # Unfortunately the API is based on lists
+ # but we want to update the state based on the
+ # previous state, so we have to loop:
+ for case in self.browse(cr, uid, ids, context=context):
+ values = dict(vals)
+ if case.state in CRM_HELPDESK_STATES:
+ values.update(state=crm.AVAILABLE_STATES[1][0]) #re-open
+ res = self.write(cr, uid, [case.id], values, context=context)
+ return res
+
+ def msg_send(self, cr, uid, id, *args, **argv):
+
+ """ Send The Message
+ @param self: The object pointer
+ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks,
+ @param ids: List of email’s IDs
+ @param *args: Return Tuple Value
+ @param **args: Return Dictionary of Keyword Value
+ """
+ return True
+
crm_helpdesk()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/document/document.py b/addons/document/document.py
index 79fb83b5b1f..1a553b23ed1 100644
--- a/addons/document/document.py
+++ b/addons/document/document.py
@@ -38,9 +38,9 @@ class document_file(osv.osv):
def _attach_parent_id(self, cr, uid, ids=None, context=None):
"""Migrate ir.attachments to the document module.
-
+
When the 'document' module is loaded on a db that has had plain attachments,
- they will need to be attached to some parent folder, and be converted from
+ they will need to be attached to some parent folder, and be converted from
base64-in-bytea to raw-in-bytea format.
This function performs the internal migration, once and forever, for these
attachments. It cannot be done through the nominal ORM maintenance code,
@@ -50,7 +50,7 @@ class document_file(osv.osv):
should have had (but would have failed if plain attachments contained null
values).
"""
-
+
parent_id = self.pool.get('document.directory')._get_root_directory(cr,uid)
if not parent_id:
logging.getLogger('document').warning("at _attach_parent_id(), still not able to set the parent!")
@@ -64,7 +64,7 @@ class document_file(osv.osv):
"WHERE parent_id IS NULL", (parent_id,))
cr.execute("ALTER TABLE ir_attachment ALTER parent_id SET NOT NULL")
return True
-
+
def _get_filestore(self, cr):
return os.path.join(DMS_ROOT_PATH, cr.dbname)
@@ -167,19 +167,41 @@ class document_file(osv.osv):
def check(self, cr, uid, ids, mode, context=None, values=None):
"""Check access wrt. res_model, relax the rule of ir.attachment parent
-
+
With 'document' installed, everybody will have access to attachments of
any resources they can *read*.
"""
return super(document_file, self).check(cr, uid, ids, mode='read',
context=context, values=values)
+ def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False):
+ # Grab ids, bypassing 'count'
+ ids = super(document_file, self).search(cr, uid, args, offset=offset,
+ limit=limit, order=order,
+ context=context, count=False)
+ if not ids:
+ return 0 if count else []
+
+ # Filter out documents that are in directories that the user is not allowed to read.
+ # Must use pure SQL to avoid access rules exceptions (we want to remove the records,
+ # not fail), and the records have been filtered in parent's search() anyway.
+ cr.execute('SELECT id, parent_id from "%s" WHERE id in %%s' % self._table, (tuple(ids),))
+ doc_pairs = cr.fetchall()
+ parent_ids = set(zip(*doc_pairs)[1])
+ visible_parent_ids = self.pool.get('document.directory').search(cr, uid, [('id', 'in', list(parent_ids))])
+ disallowed_parents = parent_ids.difference(visible_parent_ids)
+ for doc_id, parent_id in doc_pairs:
+ if parent_id in disallowed_parents:
+ ids.remove(doc_id)
+ return len(ids) if count else ids
+
+
def copy(self, cr, uid, id, default=None, context=None):
if not default:
default = {}
if 'name' not in default:
- name = self.read(cr, uid, [id])[0]['name']
- default.update({'name': name + " (copy)"})
+ name = self.read(cr, uid, [id], ['name'])[0]['name']
+ default.update({'name': name + " " + _("(copy)")})
return super(document_file, self).copy(cr, uid, id, default, context=context)
def write(self, cr, uid, ids, vals, context=None):
diff --git a/addons/hr_timesheet_sheet/security/hr_timesheet_sheet_security.xml b/addons/hr_timesheet_sheet/security/hr_timesheet_sheet_security.xml
index f5b346af50e..ff387a898ca 100644
--- a/addons/hr_timesheet_sheet/security/hr_timesheet_sheet_security.xml
+++ b/addons/hr_timesheet_sheet/security/hr_timesheet_sheet_security.xml
@@ -6,7 +6,7 @@
<field name="name">Timesheet multi-company</field>
<field name="model_id" search="[('model','=','hr_timesheet_sheet.sheet')]" model="ir.model"/>
<field name="global" eval="True"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
</data>
diff --git a/addons/l10n_ch/test/l10n_ch_report.yml b/addons/l10n_ch/test/l10n_ch_report.yml
index d9f326b9443..a730bdc82bd 100644
--- a/addons/l10n_ch/test/l10n_ch_report.yml
+++ b/addons/l10n_ch/test/l10n_ch_report.yml
@@ -1,5 +1,5 @@
-
- I Partner data to Test BVR printing.
+ In order to test BVR printing. I create Partner data.
-
!record {model: res.partner.category, id: res_partner_category_bvr}:
name: Customers
@@ -15,21 +15,21 @@
-
!record {model: res.partner.address, id: res_partner_address_1}:
partner_id: res_partner_bvr
- street: Route de Belario
+ street: Route de Bélario
type: contact
-
I create invoice address for BVR DUMMY.
-
!record {model: res.partner.address, id: res_partner_address_2}:
partner_id: res_partner_bvr
- street: Route de Belario
+ street: Route de Bélario
type: invoice
-
I create delivery address for BVR DUMMY.
-
!record {model: res.partner.address, id: res_partner_address_3}:
partner_id: res_partner_bvr
- street: Route de Belario
+ street: Route de Bélario
type: delivery
-
@@ -57,4 +57,4 @@
!python {model: account.invoice}: |
from tools.test_reports import try_report
company = self.pool.get('res.users').browse(cr, uid, uid).company_id
- company.lib_path and try_report(cr, uid, 'report.invoice_web_bvr', [ref('l10n_ch_invoice')]) or 'Webkit lib not set' \ No newline at end of file
+ company.lib_path and try_report(cr, uid, 'report.invoice_web_bvr', [ref('l10n_ch_invoice')]) or 'Webkit lib not set'
diff --git a/addons/mrp/security/mrp_security.xml b/addons/mrp/security/mrp_security.xml
index 743432af745..1cc4c5cea9b 100644
--- a/addons/mrp/security/mrp_security.xml
+++ b/addons/mrp/security/mrp_security.xml
@@ -19,21 +19,21 @@
<field name="name">mrp_production multi-company</field>
<field name="model_id" search="[('model','=','mrp.production')]" model="ir.model"/>
<field name="global" eval="True"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','child_of',[user.company_id.id]),('company_id','=',False)]</field>
</record>
<record model="ir.rule" id="mrp_workcenter_rule">
<field name="name">mrp_workcenter multi-company</field>
<field name="model_id" search="[('model','=','mrp.workcenter')]" model="ir.model"/>
<field name="global" eval="True"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','child_of',[user.company_id.id]),('company_id','=',False)]</field>
</record>
<record model="ir.rule" id="mrp_bom_rule">
<field name="name">mrp_bom multi-company</field>
<field name="model_id" search="[('model','=','mrp.bom')]" model="ir.model"/>
<field name="global" eval="True"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','child_of',[user.company_id.id]),('company_id','=',False)]</field>
</record>
</data>
diff --git a/addons/product/pricelist.py b/addons/product/pricelist.py
index 6899b673c70..de8fd701492 100644
--- a/addons/product/pricelist.py
+++ b/addons/product/pricelist.py
@@ -262,7 +262,7 @@ class product_pricelist(osv.osv):
price = currency_obj.compute(cr, uid,
price_type.currency_id.id, res['currency_id'],
product_obj.price_get(cr, uid, [product_id],
- price_type.field)[product_id], round=False, context=context)
+ price_type.field,context=context)[product_id], round=False, context=context)
if price:
price_limit = price
@@ -385,7 +385,7 @@ class product_pricelist(osv.osv):
else:
price_tmp = self.price_get(cr, uid,
[res['base_pricelist_id']], prod_id,
- qty)[res['base_pricelist_id']]
+ qty,context=context)[res['base_pricelist_id']]
ptype_src = self.browse(cr, uid,
res['base_pricelist_id']).currency_id.id
price = currency_obj.compute(cr, uid, ptype_src,
@@ -413,7 +413,7 @@ class product_pricelist(osv.osv):
price = currency_obj.compute(cr, uid,
price_type.currency_id.id, res['currency_id'],
product_obj.price_get(cr, uid, [prod_id],
- price_type.field)[prod_id], round=False, context=context)
+ price_type.field,context=context)[prod_id], round=False, context=context)
if price:
price_limit = price
diff --git a/addons/product/product.py b/addons/product/product.py
index 6460131e0ed..6bee68c2ba6 100644
--- a/addons/product/product.py
+++ b/addons/product/product.py
@@ -766,12 +766,12 @@ class product_supplierinfo(osv.osv):
currency_id = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.currency_id.id
for supplier in partner_pool.browse(cr, uid, supplier_ids, context=context):
# Compute price from standard price of product
- price = product_pool.price_get(cr, uid, [product_id], 'standard_price')[product_id]
+ price = product_pool.price_get(cr, uid, [product_id], 'standard_price', context=context)[product_id]
# Compute price from Purchase pricelist of supplier
pricelist_id = supplier.property_product_pricelist_purchase.id
if pricelist_id:
- price = pricelist_pool.price_get(cr, uid, [pricelist_id], product_id, product_qty).setdefault(pricelist_id, 0)
+ price = pricelist_pool.price_get(cr, uid, [pricelist_id], product_id, product_qty, context=context).setdefault(pricelist_id, 0)
price = currency_pool.compute(cr, uid, pricelist_pool.browse(cr, uid, pricelist_id).currency_id.id, currency_id, price)
# Compute price from supplier pricelist which are in Supplier Information
diff --git a/addons/product/report/pricelist.py b/addons/product/report/pricelist.py
index 068aed7df1c..a6360c8ef19 100644
--- a/addons/product/report/pricelist.py
+++ b/addons/product/report/pricelist.py
@@ -90,7 +90,7 @@ class report_custom(report_rml):
pro.append('<pro name="%s" >' % (x['name']))
temp = []
for q in qty:
- price_dict = pool.get('product.pricelist').price_get(cr, uid, [price_list_id], x['id'], q)
+ price_dict = pool.get('product.pricelist').price_get(cr, uid, [price_list_id], x['id'], q, context=context)
if price_dict[price_list_id]:
price = price_dict[price_list_id]
else:
diff --git a/addons/product/security/product_security.xml b/addons/product/security/product_security.xml
index fb015d860e1..acf083cdb74 100644
--- a/addons/product/security/product_security.xml
+++ b/addons/product/security/product_security.xml
@@ -17,7 +17,7 @@
<field name="name" >Product multi-company</field>
<field name="model_id" ref="model_product_template"/>
<field name="global" eval="True"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="group_product_variant" model="res.groups" context="{'noadmin':True}">
diff --git a/addons/product_margin/product_margin_view.xml b/addons/product_margin/product_margin_view.xml
index a6d6eff5238..87022bdc44f 100644
--- a/addons/product_margin/product_margin_view.xml
+++ b/addons/product_margin/product_margin_view.xml
@@ -80,6 +80,9 @@
<field name="expected_margin"/>
<field name="total_margin_rate" widget="progressbar"/>
<field name="expected_margin_rate" widget="progressbar"/>
+ <field name="categ_id" invisible="1"/>
+ <field name="uom_id" invisible="1"/>
+ <field name="type" invisible="1"/>
</tree>
</field>
</record>
diff --git a/addons/project/security/project_security.xml b/addons/project/security/project_security.xml
index 3ec15131419..b51a5a9c89a 100644
--- a/addons/project/security/project_security.xml
+++ b/addons/project/security/project_security.xml
@@ -22,14 +22,14 @@
<field name="name">Project multi-company</field>
<field name="model_id" ref="model_project_project"/>
<field name="global" eval="True"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record model="ir.rule" id="task_comp_rule">
<field name="name" >Task multi-company</field>
<field name="model_id" ref="model_project_task"/>
<field name="global" eval="True"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record model="ir.rule" id="task_visibility_rule">
diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py
index f2ef17a183d..63dbf4d9dcc 100644
--- a/addons/purchase/purchase.py
+++ b/addons/purchase/purchase.py
@@ -787,7 +787,7 @@ class procurement_order(osv.osv):
if seller_qty:
qty = max(qty,seller_qty)
- price = pricelist_obj.price_get(cr, uid, [pricelist_id], procurement.product_id.id, qty, False, {'uom': uom_id})[pricelist_id]
+ price = pricelist_obj.price_get(cr, uid, [pricelist_id], procurement.product_id.id, qty, partner_id, {'uom': uom_id})[pricelist_id]
newdate = datetime.strptime(procurement.date_planned, '%Y-%m-%d %H:%M:%S')
newdate = (newdate - relativedelta(days=company.po_lead)) - relativedelta(days=seller_delay)
diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml
index 92adb377768..8c432aa9ecc 100644
--- a/addons/purchase/purchase_view.xml
+++ b/addons/purchase/purchase_view.xml
@@ -217,6 +217,7 @@
<separator string="Invoices" colspan="4"/>
<newline/>
<field name="invoice_ids" groups="base.group_extended" nolabel="1" colspan="4" context="{'type':'in_invoice', 'journal_type':'purchase'}"/>
+ <field name="invoice_ids" groups="base.group_extended" nolabel="1" colspan="4" context="{'type':'in_invoice', 'journal_type': 'purchase'}"/>
</page>
<page string="Notes">
<field colspan="4" name="notes" nolabel="1"/>
diff --git a/addons/purchase/security/purchase_security.xml b/addons/purchase/security/purchase_security.xml
index e949070cc75..e1149c91466 100644
--- a/addons/purchase/security/purchase_security.xml
+++ b/addons/purchase/security/purchase_security.xml
@@ -13,14 +13,14 @@
<field name="name">Purchase Order multi-company</field>
<field name="model_id" ref="model_purchase_order"/>
<field name="global" eval="True"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record model="ir.rule" id="purchase_order_line_comp_rule">
<field name="name">Purchase Order Line multi-company</field>
<field name="model_id" ref="model_purchase_order_line"/>
<field name="global" eval="True"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
</data>
diff --git a/addons/purchase_requisition/security/purchase_tender.xml b/addons/purchase_requisition/security/purchase_tender.xml
index 05d76878228..595b71008ef 100644
--- a/addons/purchase_requisition/security/purchase_tender.xml
+++ b/addons/purchase_requisition/security/purchase_tender.xml
@@ -14,14 +14,14 @@
<field name="name">Purchase Requisition multi-company</field>
<field name="model_id" ref="model_purchase_requisition"/>
<field name="global" eval="True"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record model="ir.rule" id="purchase_requisition_line_comp_rule">
<field name="name">Purchase requisition Line multi-company</field>
<field name="model_id" ref="model_purchase_requisition_line"/>
<field name="global" eval="True"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
</data>
diff --git a/addons/sale/security/sale_security.xml b/addons/sale/security/sale_security.xml
index 5cc873beb75..c6764a24b18 100644
--- a/addons/sale/security/sale_security.xml
+++ b/addons/sale/security/sale_security.xml
@@ -26,19 +26,19 @@
<field name="name">Sale Order multi-company</field>
<field name="model_id" ref="model_sale_order"/>
<field name="global" eval="True"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record model="ir.rule" id="sale_order_line_comp_rule">
<field name="name">Sale Order Line multi-company</field>
<field name="model_id" ref="model_sale_order_line"/>
<field name="global" eval="True"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
- <record model="ir.rule" id="sale_order_line_comp_rule">
+ <record model="ir.rule" id="sale_shop_comp_rule">
<field name="name">Sale Shop multi-company</field>
<field name="model_id" ref="model_sale_shop"/>
<field name="global" eval="True"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<!-- Multi - Salesmen sales order assignation rules -->
diff --git a/addons/share/web/controllers.py b/addons/share/web/controllers.py
index bac7a607cf0..4b723f225da 100644
--- a/addons/share/web/controllers.py
+++ b/addons/share/web/controllers.py
@@ -17,7 +17,7 @@ class ShareWizardController(openerp.controllers.SecuredController):
if not action_id:
# This should not be needed anymore, but just in case users are
- # running the module with an order version of the web client...
+ # running the module with an older version of the web client...
# to remove soon-ish
action_id = rpc.RPCProxy('ir.actions.act_window').search(
@@ -44,7 +44,7 @@ class ShareWizardController(openerp.controllers.SecuredController):
Share = rpc.RPCProxy('share.wizard')
sharing_view_id = Share.create({
'domain': str(domain),
- 'action_id':action_id
+ 'action_id': action_id and int(action_id)
}, context)
return openerp.controllers.actions.execute(
Share.go_step_1([sharing_view_id], context),
diff --git a/addons/stock/security/stock_security.xml b/addons/stock/security/stock_security.xml
index dc36e193497..717486413c6 100644
--- a/addons/stock/security/stock_security.xml
+++ b/addons/stock/security/stock_security.xml
@@ -15,42 +15,42 @@
<field name="name">stock_picking multi-company</field>
<field name="model_id" search="[('model','=','stock.picking')]" model="ir.model"/>
<field name="global" eval="True"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record model="ir.rule" id="stock_warehouse_comp_rule">
<field name="name">Warehouse multi-company</field>
<field name="model_id" ref="model_stock_warehouse"/>
<field name="global" eval="True"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record model="ir.rule" id="stock_location_comp_rule">
<field name="name">Location multi-company</field>
<field name="model_id" ref="model_stock_location"/>
<field name="global" eval="True"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record model="ir.rule" id="stock_move_rule">
<field name="name">stock_move multi-company</field>
<field name="model_id" search="[('model','=','stock.move')]" model="ir.model"/>
<field name="global" eval="True"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record model="ir.rule" id="stock_inventory_line_comp_rule">
<field name="name">Inventory Line multi-company</field>
<field name="model_id" ref="model_stock_inventory_line"/>
<field name="global" eval="True"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record model="ir.rule" id="stock_inventory_comp_rule">
<field name="name">Inventory multi-company</field>
<field name="model_id" ref="model_stock_inventory"/>
<field name="global" eval="True"/>
- <field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]</field>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
</data>
diff --git a/addons/wiki/web/locales/bg.po b/addons/wiki/web/locales/bg.po
index 5b073c6c77e..d331ed5de7f 100644
--- a/addons/wiki/web/locales/bg.po
+++ b/addons/wiki/web/locales/bg.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-02-11 06:26+0000\n"
-"X-Generator: Launchpad (build 12177)\n"
+"X-Launchpad-Export-Date: 2011-02-12 06:06+0000\n"
+"X-Generator: Launchpad (build 12351)\n"
#: widgets/wikimarkup/__init__.py:1981
msgid "Table of Contents"
diff --git a/addons/wiki/web/locales/de.po b/addons/wiki/web/locales/de.po
new file mode 100644
index 00000000000..8718cd9713d
--- /dev/null
+++ b/addons/wiki/web/locales/de.po
@@ -0,0 +1,22 @@
+# German translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2010-08-02 17:52+0530\n"
+"PO-Revision-Date: 2011-02-11 11:54+0000\n"
+"Last-Translator: Ferdinand @ Camptocamp <Unknown>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-02-12 06:06+0000\n"
+"X-Generator: Launchpad (build 12351)\n"
+
+#: widgets/wikimarkup/__init__.py:1981
+msgid "Table of Contents"
+msgstr "Inhaltsverzeichnis"
diff --git a/addons/wiki/web/locales/fr.po b/addons/wiki/web/locales/fr.po
new file mode 100644
index 00000000000..18a1611dac0
--- /dev/null
+++ b/addons/wiki/web/locales/fr.po
@@ -0,0 +1,22 @@
+# French translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2010-08-02 17:52+0530\n"
+"PO-Revision-Date: 2011-02-11 20:16+0000\n"
+"Last-Translator: lolivier <olivier.lenoir@free.fr>\n"
+"Language-Team: French <fr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-02-12 06:06+0000\n"
+"X-Generator: Launchpad (build 12351)\n"
+
+#: widgets/wikimarkup/__init__.py:1981
+msgid "Table of Contents"
+msgstr "Table des matières"
diff --git a/addons/wiki/web/locales/sk.po b/addons/wiki/web/locales/sk.po
new file mode 100644
index 00000000000..f101cf6928a
--- /dev/null
+++ b/addons/wiki/web/locales/sk.po
@@ -0,0 +1,22 @@
+# Slovak translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2010-08-02 17:52+0530\n"
+"PO-Revision-Date: 2011-02-21 13:05+0000\n"
+"Last-Translator: Radoslav Sloboda <rado.sloboda@gmail.com>\n"
+"Language-Team: Slovak <sk@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-02-22 14:27+0000\n"
+"X-Generator: Launchpad (build 12351)\n"
+
+#: widgets/wikimarkup/__init__.py:1981
+msgid "Table of Contents"
+msgstr "Obsah"