merge trunk

bzr revid: nicolas.vanhoren@openerp.com-20120814071605-wfc238jl6vi37hl3
This commit is contained in:
niv-openerp 2012-08-14 09:16:05 +02:00
commit bb09f83ec8
10 changed files with 602 additions and 824 deletions

View File

@ -80,6 +80,7 @@
'demo_xml': [
'base_demo.xml',
'res/res_partner_demo.xml',
'res/res_partner_demo.yml',
'res/res_widget_demo.xml',
],
'test': [

View File

@ -1061,6 +1061,13 @@
<field name="company_id" eval="None"/>
<field name="customer" eval="False"/>
<field name="is_company" eval="True"/>
<field name="street">45, Rue du Palais</field>
<field name="city">Paris</field>
<field name="zip">75016</field>
<field ref="base.fr" name="country_id"/>
<field name="phone">+33 1 49 51 23 94</field>
<field name="email">info@yourcompany.com</field>
<field name="website">www.yourcompany.com</field>
</record>
<!-- Currencies -->
@ -1082,8 +1089,9 @@
<record id="main_company" model="res.company">
<field name="name">Your Company</field>
<field name="partner_id" ref="main_partner"/>
<field name="rml_footer1">Web: www.companyname.com - Tel: +1-212-555-12345</field>
<field name="rml_footer2">IBAN: XX12 3456 7890 1234 5678 - SWIFT: SWIFTCODE - VAT: Company vat number</field>
<field name="rml_header1">Your Company Slogan</field>
<field name="rml_footer1">Web: http://www.yourcompany.com - Tel: +33 1 49 51 23 94</field>
<field name="rml_footer2">Bank Accounts... to be configured in menu Settings > Accounting/Invoicing.</field>
<field name="currency_id" ref="base.EUR"/>
</record>
@ -1624,7 +1632,7 @@
</record>
<record id="res_bank_1" model="res.bank">
<field name="name">Reserve</field>
<field name="name">International Bank</field>
</record>
<record id="CRC" model="res.currency">

View File

@ -1,19 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<record id="demo_address" model="res.partner">
<field name="name">Fabien D'souza</field>
<field name="street">Chaussee de Namur</field>
<field name="zip">1367</field>
<field name="city">Gerompont</field>
<field name="phone">(+32).81.81.37.00</field>
<field name="type">default</field>
<field model="res.country" name="country_id" ref="be"/>
<!-- Company ID will be set later -->
<field name="company_id" eval="None"/>
</record>
<record id="user_demo" model="res.users">
<field name="login">demo</field>
<field name="password">demo</field>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,261 @@
-
!record {model: 'res.partner', id: base.res_partner_address_1}:
name: Tang Tsui
parent_id: base.res_partner_1
use_parent_address: True
function: Service Manager
email: tang@asustek.com
-
!record {model: 'res.partner', id: base.res_partner_address_2}:
name: Joseph Walters
parent_id: base.res_partner_1
use_parent_address: True
function: Store Manager
email: joseph.walters@asustek.com
-
!record {model: 'res.partner', id: base.res_partner_address_3}:
name: Thomas Passot
parent_id: base.res_partner_2
use_parent_address: True
function: Functional Consultant
email: p.thomas@agrolait.com
-
!record {model: 'res.partner', id: base.res_partner_address_4}:
name: Michel Fletcher
parent_id: base.res_partner_2
use_parent_address: True
function: Analyst
email: m.fletcher@agrolait.com
-
!record {model: 'res.partner', id: base.res_partner_address_5}:
name: Chao Wang
parent_id: base.res_partner_3
use_parent_address: True
function: Marketing Manager
email: chao_wang@chinaexport.com
-
!record {model: 'res.partner', id: base.res_partner_address_6}:
name: Zhi Ch'ang
parent_id: base.res_partner_3
use_parent_address: True
function: Supervisor
email: zhi_chang@chinaexport.com
-
!record {model: 'res.partner', id: base.res_partner_address_7}:
name: Richard Ellis
parent_id: base.res_partner_4
use_parent_address: True
function: Production Supervisor
email:
-
!record {model: 'res.partner', id: base.res_partner_address_8}:
name: Paul Williams
parent_id: base.res_partner_4
use_parent_address: True
function: Line Mechanic
email:
-
!record {model: 'res.partner', id: base.res_partner_address_9}:
name: Brian Williams
parent_id: base.res_partner_4
use_parent_address: True
function: Computer Technician
email:
-
!record {model: 'res.partner', id: base.res_partner_address_10}:
name: David Simpson
parent_id: base.res_partner_5
use_parent_address: True
function: Senior Consultant
email: david.s@tech.info
-
!record {model: 'res.partner', id: base.res_partner_address_11}:
name: John M. Brown
parent_id: base.res_partner_5
use_parent_address: True
function: Director
email: john.b@tech.info
-
!record {model: 'res.partner', id: base.res_partner_address_12}:
name: James Miller
parent_id: base.res_partner_6
use_parent_address: True
function: Electrical Supervisor
email:
-
!record {model: 'res.partner', id: base.res_partner_address_13}:
name: Charlie Bernard
parent_id: base.res_partner_7
use_parent_address: True
function: Senior Associate
email: charlie.bernard@wealthyandsons.com
-
!record {model: 'res.partner', id: base.res_partner_address_14}:
name: Jessica Dupont
parent_id: base.res_partner_7
use_parent_address: True
function: Analyst
email: jessica.dupont@wealthyandsons.com
-
!record {model: 'res.partner', id: base.res_partner_address_15}:
name: Phillipp Miller
parent_id: base.res_partner_8
use_parent_address: True
function: Creative Director
email:
-
!record {model: 'res.partner', id: base.res_partner_address_16}:
name: Ayaan Agarwal
parent_id: base.res_partner_9
use_parent_address: True
function: Director
email:
-
!record {model: 'res.partner', id: base.res_partner_address_17}:
name: Daniel Jackson
parent_id: base.res_partner_10
use_parent_address: True
function: Managing Partner
email: daniel@jackson.com
-
!record {model: 'res.partner', id: base.res_partner_address_18}:
name: William Thomas
parent_id: base.res_partner_10
use_parent_address: True
function: Senior Consultant
email: william@jackson.com
-
!record {model: 'res.partner', id: base.res_partner_address_19}:
name: Sergio Pérez
parent_id: base.res_partner_11
use_parent_address: True
function: Accountant
email:
-
!record {model: 'res.partner', id: base.res_partner_address_20}:
name: Laura Castro
parent_id: base.res_partner_11
use_parent_address: True
function: Goods Supervisor
email:
-
!record {model: 'res.partner', id: base.res_partner_address_21}:
name: Luc Maurer
parent_id: base.res_partner_12
use_parent_address: True
function: Director
email:
-
!record {model: 'res.partner', id: base.res_partner_address_22}:
name: Laith Jubair
parent_id: base.res_partner_13
use_parent_address: True
function: Director
email:
-
!record {model: 'res.partner', id: base.res_partner_address_23}:
name: Angel Cook
parent_id: base.res_partner_14
use_parent_address: True
function: General Manager
email: angel.cook@chamberworks.com
-
!record {model: 'res.partner', id: base.res_partner_address_24}:
name: Robert Anderson
parent_id: base.res_partner_14
use_parent_address: True
function: System Analyst
email: robert.anderson@chamberworks.com
-
!record {model: 'res.partner', id: base.res_partner_address_25}:
name: Jacob Taylor
parent_id: base.res_partner_15
use_parent_address: True
function: Order Clerk
email:
-
!record {model: 'res.partner', id: base.res_partner_address_26}:
name: Arthur Gomez
parent_id: base.res_partner_16
use_parent_address: True
function: Software Developer
email:
-
!record {model: 'res.partner', id: base.res_partner_address_27}:
name: Julia Rivero
parent_id: base.res_partner_16
use_parent_address: True
function: Technical Director
email:
-
!record {model: 'res.partner', id: base.res_partner_address_28}:
name: Benjamin Flores
parent_id: base.res_partner_17
use_parent_address: True
function: Business Executive
email: ben@nebula.ar
-
!record {model: 'res.partner', id: base.res_partner_address_29}:
name: George Wilson
parent_id: base.res_partner_18
use_parent_address: True
function: Chief Information Officer (CIO)
email:
-
!record {model: 'res.partner', id: base.res_partner_address_30}:
name: Lucas Jones
parent_id: base.res_partner_18
use_parent_address: True
function: Functional Consultant
email: jones@thinkbig.com
-
!record {model: 'res.partner', id: base.res_partner_address_31}:
name: Edward Foster
parent_id: base.res_partner_19
use_parent_address: True
function: Sales Representative
email: efoster@seagate.com
-
!record {model: 'res.partner', id: base.res_partner_address_32}:
name: Robin Smith
parent_id: base.res_partner_21
use_parent_address: True
function: Sales Manager
email:
-
!record {model: 'res.partner', id: base.res_partner_address_33}:
name: Morgan Rose
parent_id: base.res_partner_21
use_parent_address: True
function: Financial Manager
email:
-
!record {model: 'res.partner', id: base.res_partner_address_34}:
name: Kevin Clarke
parent_id: base.res_partner_21
use_parent_address: True
function: Knowledge Manager
email:
-
!record {model: 'res.partner', id: base.res_partner_address_35}:
name: Peter Mitchell
parent_id: base.res_partner_22
use_parent_address: True
function: Store Manager
email:
-
!record {model: 'res.partner', id: base.res_partner_main1}:
name: Mark Davis
customer: False
parent_id: base.main_partner
use_parent_address: True
function: Chief Executive Officer (CEO)
email: mark@yourcompany.com
-
!record {model: 'res.partner', id: base.res_partner_main2}:
name: Roger Scott
customer: False
parent_id: base.main_partner
use_parent_address: True
function: Chief Operations Officer (COO)
email: roger@yourcompany.com

View File

@ -119,8 +119,8 @@
<group>
<group>
<label for="type" attrs="{'invisible': [('parent_id','=', False)]}"/>
<div attrs="{'invisible': [('parent_id','=', False)]}">
<label for="type" attrs="{'invisible': [('parent_id','=', False)]}" invisible="1"/>
<div attrs="{'invisible': [('parent_id','=', False)]}" invisible="1" name="div_type">
<field class="oe_inline"
name="type"/>
<label for="use_parent_address" class="oe_edit_only"/>

View File

@ -7,7 +7,7 @@
-->
<assert model="res.request" id="res_partner_asustek_request" string="Reference field request returns a browsable object">
<test expr="ref_doc1.name">ASUStek</test>
<test expr="ref_doc1.name">ASUSTeK</test>
</assert>
</data>

View File

@ -9,14 +9,14 @@
Test hierarchical search in M2M with child ID1
-
!python {model: res.partner }: |
ids = self.search(cr, uid, [('category_id', 'child_of','Components Supplier')])
ids = self.search(cr, uid, [('category_id', 'child_of','Customer')])
assert len(ids) >= 1, ids
-
Test hierarchical search in M2M with child ID2
-
!python {model: res.partner }: |
ids = self.search(cr, uid, [('category_id', 'child_of','Miscellaneous Suppliers')])
assert len(ids) >= 1, ids
ids = self.search(cr, uid, [('category_id', 'child_of','Manufacturer')])
assert len(ids) == 2, ids
-
"1.0 Setup test partner categories: parent root"
@ -464,8 +464,8 @@
!python {model: res.partner }: |
all_ids = self.search(cr, uid, [('name', '=like', 'A_e_or')])
assert len(all_ids) == 1, "Must match one partner (Axelor), got %r"%all_ids
all_ids = self.search(cr, uid, [('name', '=ilike', 'm_____')])
assert len(all_ids) == 1, "Must match *only* one partner (Maxtor), got %r"%all_ids
all_ids = self.search(cr, uid, [('name', '=ilike', 'v%')])
assert len(all_ids) >= 1, "Must match one partner (Vicking Direct), got %r"%all_ids
-
Check that =like/=ilike expressions (no wildcard variants of like/ilike) are working on translated field.
-
@ -512,7 +512,7 @@
Testing for Many2Many field with category supplier and active=False
-
!python {model: res.partner }: |
vals = {'category_id': [(6, 0, [ref("base.res_partner_category_8")])],
vals = {'category_id': [(6, 0, [ref("base.res_partner_category_1")])],
'name': 'OpenERP Test',
'active': False,
'child_ids': [(0, 0, {'name': 'address of OpenERP Test', 'country_id': ref("base.be")})]

View File

@ -22,6 +22,7 @@
""" Models registries.
"""
from contextlib import contextmanager
import logging
import threading
@ -43,12 +44,12 @@ class Registry(object):
"""
def __init__(self, db_name):
self.models = {} # model name/model instance mapping
self.models = {} # model name/model instance mapping
self._sql_error = {}
self._store_function = {}
self._init = True
self._init_parent = {}
# modules fully loaded (maintained during init phase by `loading` module)
self._init_modules = set()
@ -119,6 +120,17 @@ class Registry(object):
for model in self.models.itervalues():
model.clear_caches()
@contextmanager
def cursor(self, auto_commit=True):
cr = self.db.cursor()
try:
yield cr
if auto_commit:
cr.commit()
finally:
cr.close()
class RegistryManager(object):
""" Model registries manager.
@ -196,7 +208,6 @@ class RegistryManager(object):
del cls.registries[db_name]
openerp.cron.cancel(db_name)
@classmethod
def delete_all(cls):
"""Delete all the registries. """

View File

@ -30,9 +30,9 @@ RELEASE_LEVELS_DISPLAY = {ALPHA: ALPHA,
# properly comparable using normal operarors, for example:
# (6,1,0,'beta',0) < (6,1,0,'candidate',1) < (6,1,0,'candidate',2)
# (6,1,0,'candidate',2) < (6,1,0,'final',0) < (6,1,2,'final',0)
version_info = (6,2,0,ALPHA,0)
version = '.'.join(map(str,version_info[:2])) + RELEASE_LEVELS_DISPLAY[version_info[3]] + str(version_info[4] or '')
major_version = '.'.join(map(str,version_info[:2]))
version_info = (7, 0, 0, ALPHA, 0)
version = '.'.join(map(str, version_info[:2])) + RELEASE_LEVELS_DISPLAY[version_info[3]] + str(version_info[4] or '')
serie = major_version = '.'.join(map(str, version_info[:2]))
description = 'OpenERP Server'
long_desc = '''OpenERP is a complete ERP and CRM. The main features are accounting (analytic