[tryton-debian-vcs] tryton-modules-party branch debian created. 42dfc3fd63c6cbcc10cf1f4c4f5cfb5115ee197d

Mathias Behrle tryton-debian-vcs at alioth.debian.org
Wed Nov 27 17:03:39 UTC 2013


The following commit has been merged in the debian branch:
https://alioth.debian.org/plugins/scmgit/cgi-bin/gitweb.cgi/?p=tryton/tryton-modules-party.git;a=commitdiff;h=42dfc3fd63c6cbcc10cf1f4c4f5cfb5115ee197d
commit 42dfc3fd63c6cbcc10cf1f4c4f5cfb5115ee197d
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Mon Nov 25 20:30:15 2013 +0100

    Releasing debian version 3.0.0-1.

diff --git a/debian/changelog b/debian/changelog
index e6cafb6..fbd5409 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+tryton-modules-party (3.0.0-1) unstable; urgency=low
+
+  * Merging upstream version 3.0.0.
+  * Updating to standards version 3.9.5, no changes needed.
+  * Changing to buildsystem pybuild.
+
+ -- Mathias Behrle <mathiasb at m9s.biz>  Mon, 25 Nov 2013 17:54:18 +0100
+
 tryton-modules-party (2.8.0-3) unstable; urgency=low
 
   * Adapting the rules file to work also with git-buildpackage.
commit 583cf31b6b4bec4e561c9d3955c3dfab77375082
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Sun Nov 24 19:51:51 2013 +0100

    Changing to buildsystem pybuild.

diff --git a/debian/control b/debian/control
index 1e6da09..6504f64 100644
--- a/debian/control
+++ b/debian/control
@@ -3,7 +3,8 @@ Section: python
 Priority: optional
 Maintainer: Debian Tryton Maintainers <maintainers at debian.tryton.org>
 Uploaders: Mathias Behrle <mathiasb at m9s.biz>
-Build-Depends: debhelper (>= 9), python (>= 2.6.6-3~), python-setuptools
+Build-Depends:
+ debhelper (>= 9), python (>= 2.6.6-3~), python-setuptools, dh-python
 Standards-Version: 3.9.5
 Homepage: http://www.tryton.org/
 Vcs-Browser: http://debian.tryton.org/gitweb/?p=packages/tryton-modules-party.git
diff --git a/debian/rules b/debian/rules
index 30074ad..5b8c326 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,24 +1,17 @@
 #!/usr/bin/make -f
 
-MAJOR := $(shell python setup.py --version | awk -F "." '{print $$1 "." $$2}')
-PACKAGE_NAME := $(shell python setup.py --name)
-
-%:
-	dh ${@} --with python2
+# needed for pbuilder
+export LC_ALL=C.UTF-8
 
-override_dh_auto_clean:
-	dh_auto_clean
+MAJOR := $(shell python setup.py --version | awk -F "." '{print $$1 "." $$2}')
+PACKAGE_NAME := tryton-modules-$(shell python setup.py --name | sed s/^trytond_// | sed s/_/-/g)
+export PYBUILD_DESTDIR_python2=debian/${PACKAGE_NAME}
 
-override_dh_auto_build:
-	mv $(PACKAGE_NAME).egg-info $(PACKAGE_NAME).hen-info
-	mv PKG-INFO PKG-INFO.hen
-	dh_auto_build
+# Don't run tests for Tryton modules, they try to download dependencies from pypi
+export PYBUILD_DISABLE_python2.7=test
 
-override_dh_auto_install:
-	dh_auto_install
-	rm -rf *.egg-info
-	mv $(PACKAGE_NAME).hen-info $(PACKAGE_NAME).egg-info
-	mv PKG-INFO.hen PKG-INFO
+%:
+	dh ${@} --with python2 --buildsystem=pybuild
 
 override_dh_gencontrol:
 	dh_gencontrol -- -Vversion:major="$(MAJOR)"
commit ecbe05536434efa860142721abb408e55dcb39a1
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Sun Nov 24 19:14:21 2013 +0100

    Updating to standards version 3.9.5, no changes needed.

diff --git a/debian/control b/debian/control
index 3e69e1e..1e6da09 100644
--- a/debian/control
+++ b/debian/control
@@ -4,7 +4,7 @@ Priority: optional
 Maintainer: Debian Tryton Maintainers <maintainers at debian.tryton.org>
 Uploaders: Mathias Behrle <mathiasb at m9s.biz>
 Build-Depends: debhelper (>= 9), python (>= 2.6.6-3~), python-setuptools
-Standards-Version: 3.9.4
+Standards-Version: 3.9.5
 Homepage: http://www.tryton.org/
 Vcs-Browser: http://debian.tryton.org/gitweb/?p=packages/tryton-modules-party.git
 Vcs-Git: git://debian.tryton.org/packages/tryton-modules-party.git
commit c881ca00d47a467db4f268f2448160f2cd417f70
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Sun Nov 24 17:27:23 2013 +0100

    Merging upstream version 3.0.0.

diff --git a/CHANGELOG b/CHANGELOG
index e541923..31e5d55 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+Version 3.0.0 - 2013-10-21
+* Bug fixes (see mercurial logs for details)
+
 Version 2.8.0 - 2013-04-22
 * Bug fixes (see mercurial logs for details)
 * Add url widget to contact mechanism list view
diff --git a/PKG-INFO b/PKG-INFO
index 347464a..500150b 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 1.1
 Name: trytond_party
-Version: 2.8.0
+Version: 3.0.0
 Summary: Tryton module with parties and addresses
 Home-page: http://www.tryton.org/
 Author: Tryton
 Author-email: UNKNOWN
 License: GPL-3
-Download-URL: http://downloads.tryton.org/2.8/
+Download-URL: http://downloads.tryton.org/3.0/
 Description: trytond_party
         =============
         
@@ -60,6 +60,7 @@ Classifier: Natural Language :: English
 Classifier: Natural Language :: French
 Classifier: Natural Language :: German
 Classifier: Natural Language :: Russian
+Classifier: Natural Language :: Slovenian
 Classifier: Natural Language :: Spanish
 Classifier: Operating System :: OS Independent
 Classifier: Programming Language :: Python :: 2.6
diff --git a/address.py b/address.py
index a1b6c0b..fef948c 100644
--- a/address.py
+++ b/address.py
@@ -4,7 +4,7 @@
 from trytond.model import ModelView, ModelSQL, fields
 from trytond.pyson import Eval, If
 from trytond.transaction import Transaction
-from trytond.backend import TableHandler
+from trytond import backend
 
 __all__ = ['Address']
 
@@ -33,9 +33,7 @@ class Address(ModelSQL, ModelView):
             'Subdivision', domain=[('country', '=', Eval('country'))],
             states=STATES, depends=['active', 'country'])
     active = fields.Boolean('Active')
-    sequence = fields.Integer("Sequence",
-        order_field='(%(table)s.sequence IS NULL) %(order)s, '
-        '%(table)s.sequence %(order)s')
+    sequence = fields.Integer("Sequence")
     full_address = fields.Function(fields.Text('Full Address'),
             'get_full_address')
 
@@ -50,6 +48,7 @@ class Address(ModelSQL, ModelView):
 
     @classmethod
     def __register__(cls, module_name):
+        TableHandler = backend.get('TableHandler')
         cursor = Transaction().cursor
         table = TableHandler(cursor, cls, module_name)
 
@@ -59,6 +58,11 @@ class Address(ModelSQL, ModelView):
         table.not_null_action('sequence', action='remove')
 
     @staticmethod
+    def order_sequence(tables):
+        table, _ = tables[None]
+        return [table.sequence == None, table.sequence]
+
+    @staticmethod
     def default_active():
         return True
 
@@ -101,13 +105,13 @@ class Address(ModelSQL, ModelView):
     @classmethod
     def search_rec_name(cls, name, clause):
         addresses = cls.search(['OR',
-                ('zip',) + clause[1:],
-                ('city',) + clause[1:],
-                ('name',) + clause[1:],
+                ('zip',) + tuple(clause[1:]),
+                ('city',) + tuple(clause[1:]),
+                ('name',) + tuple(clause[1:]),
                 ], order=[])
         if addresses:
             return [('id', 'in', [address.id for address in addresses])]
-        return [('party',) + clause[1:]]
+        return [('party',) + tuple(clause[1:])]
 
     @classmethod
     def write(cls, addresses, vals):
diff --git a/category.xml b/category.xml
index 20c84b3..d1b88ed 100644
--- a/category.xml
+++ b/category.xml
@@ -23,7 +23,7 @@ this repository contains the full copyright notices and license terms. -->
         <record model="ir.action.act_window" id="act_category_tree">
             <field name="name">Categories</field>
             <field name="res_model">party.category</field>
-            <field name="domain">[('parent', '=', False)]</field>
+            <field name="domain">[('parent', '=', None)]</field>
         </record>
         <record model="ir.action.act_window.view" id="act_category_tree_view1">
             <field name="sequence" eval="10"/>
diff --git a/contact_mechanism.py b/contact_mechanism.py
index ed2f981..9c979ab 100644
--- a/contact_mechanism.py
+++ b/contact_mechanism.py
@@ -3,7 +3,7 @@
 from trytond.model import ModelView, ModelSQL, fields
 from trytond.pyson import Eval
 from trytond.transaction import Transaction
-from trytond.backend import TableHandler
+from trytond import backend
 
 __all__ = ['ContactMechanism']
 
@@ -39,9 +39,7 @@ class ContactMechanism(ModelSQL, ModelView):
     party = fields.Many2One('party.party', 'Party', required=True,
         ondelete='CASCADE', states=STATES, select=True, depends=DEPENDS)
     active = fields.Boolean('Active', select=True)
-    sequence = fields.Integer('Sequence',
-        order_field='(%(table)s.sequence IS NULL) %(order)s, '
-        '%(table)s.sequence %(order)s')
+    sequence = fields.Integer('Sequence')
     email = fields.Function(fields.Char('E-Mail', states={
         'invisible': Eval('type') != 'email',
         'required': Eval('type') == 'email',
@@ -92,6 +90,7 @@ class ContactMechanism(ModelSQL, ModelView):
 
     @classmethod
     def __register__(cls, module_name):
+        TableHandler = backend.get('TableHandler')
         cursor = Transaction().cursor
         table = TableHandler(cursor, cls, module_name)
 
@@ -101,6 +100,11 @@ class ContactMechanism(ModelSQL, ModelView):
         table.not_null_action('sequence', action='remove')
 
     @staticmethod
+    def order_sequence(tables):
+        table, _ = tables[None]
+        return [table.sequence == None, table.sequence]
+
+    @staticmethod
     def default_type():
         return 'phone'
 
diff --git a/locale/es_CO.po b/locale/es_CO.po
index 22bf96a..142114f 100644
--- a/locale/es_CO.po
+++ b/locale/es_CO.po
@@ -78,15 +78,15 @@ msgstr "Secuencia"
 
 msgctxt "field:party.address,street:"
 msgid "Street"
-msgstr "Calle"
+msgstr "Dirección"
 
 msgctxt "field:party.address,streetbis:"
 msgid "Street (bis)"
-msgstr "Calle (bis)"
+msgstr "Dirección (bis)"
 
 msgctxt "field:party.address,subdivision:"
 msgid "Subdivision"
-msgstr "Subdivisión"
+msgstr "Departamento"
 
 msgctxt "field:party.address,write_date:"
 msgid "Write Date"
@@ -98,7 +98,7 @@ msgstr "Modificado por Usuario"
 
 msgctxt "field:party.address,zip:"
 msgid "Zip"
-msgstr "Código postal"
+msgstr "Código Postal"
 
 msgctxt "field:party.category,active:"
 msgid "Active"
@@ -150,7 +150,7 @@ msgstr "ID"
 
 msgctxt "field:party.check_vies.result,parties_failed:"
 msgid "Parties Failed"
-msgstr "Terceros Fallidos"
+msgstr "Terceros Incorrectos"
 
 msgctxt "field:party.check_vies.result,parties_succeed:"
 msgid "Parties Succeed"
@@ -334,7 +334,7 @@ msgstr "Nombre"
 
 msgctxt "field:party.party,vat_code:"
 msgid "VAT Code"
-msgstr "NIT"
+msgstr "Cód. NIT"
 
 msgctxt "field:party.party,vat_country:"
 msgid "VAT Country"
@@ -342,7 +342,7 @@ msgstr "País del NIT"
 
 msgctxt "field:party.party,vat_number:"
 msgid "VAT Number"
-msgstr "NIT"
+msgstr "Número NIT"
 
 msgctxt "field:party.party,website:"
 msgid "Website"
diff --git a/locale/es_ES.po b/locale/es_ES.po
index 5623465..f232530 100644
--- a/locale/es_ES.po
+++ b/locale/es_ES.po
@@ -22,11 +22,11 @@ msgstr "El servicio VIES no está disponible, inténtelo de nuevo más tarde."
 
 msgctxt "error:party.contact_mechanism:"
 msgid "You can not modify the party of contact mechanism \"%s\"."
-msgstr "No puede modificar el tercer del contacto \"%s\"."
+msgstr "No puede modificar el tercero del contacto \"%s\"."
 
 msgctxt "error:party.party:"
 msgid "Invalid VAT number \"%(vat)s\" on party \"%(party)s\"."
-msgstr "CIF/NIF \"%(vat)s\" del tercero \"%(party)s\", no es correcto."
+msgstr "El CIF/NIF \"%(vat)s\" del tercero \"%(party)s\" no es correcto."
 
 msgctxt "error:party.party:"
 msgid "The code of the party must be unique."
diff --git a/locale/fr_FR.po b/locale/fr_FR.po
index 87d2b4f..1b5ae2e 100644
--- a/locale/fr_FR.po
+++ b/locale/fr_FR.po
@@ -20,10 +20,6 @@ msgctxt "error:party.check_vies:"
 msgid "The VIES service is unavailable, try again later."
 msgstr "Le service VIES n'est pas disponible, veuillez essayer plus tard."
 
-msgctxt "error:party.check_vies:"
-msgid "The VIES service is unavailable, try again later."
-msgstr "Le service VIES n'est pas disponible, veuillez essayer plus tard."
-
 msgctxt "error:party.contact_mechanism:"
 msgid "You can not modify the party of contact mechanism \"%s\"."
 msgstr "Vous ne pouvez pas modifier le tier sur le moyen de contact \"%s\"."
@@ -174,11 +170,11 @@ msgstr "ID"
 
 msgctxt "field:party.configuration,party_lang:"
 msgid "Party Language"
-msgstr "Langue du tiers"
+msgstr "Langue des tiers"
 
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
-msgstr "Séquence des tiers"
+msgstr "Séquence de tiers"
 
 msgctxt "field:party.configuration,rec_name:"
 msgid "Name"
@@ -515,14 +511,6 @@ msgid "E-Mail"
 msgstr "E-Mail"
 
 msgctxt "selection:party.contact_mechanism,type:"
-msgid "E-Mail"
-msgstr "E-Mail"
-
-msgctxt "selection:party.contact_mechanism,type:"
-msgid "Fax"
-msgstr "Fax"
-
-msgctxt "selection:party.contact_mechanism,type:"
 msgid "Fax"
 msgstr "Fax"
 
@@ -531,22 +519,10 @@ msgid "IRC"
 msgstr "IRC"
 
 msgctxt "selection:party.contact_mechanism,type:"
-msgid "IRC"
-msgstr "IRC"
-
-msgctxt "selection:party.contact_mechanism,type:"
 msgid "Jabber"
 msgstr "Jabber"
 
 msgctxt "selection:party.contact_mechanism,type:"
-msgid "Jabber"
-msgstr "Jabber"
-
-msgctxt "selection:party.contact_mechanism,type:"
-msgid "Mobile"
-msgstr "Mobile"
-
-msgctxt "selection:party.contact_mechanism,type:"
 msgid "Mobile"
 msgstr "Mobile"
 
@@ -555,22 +531,10 @@ msgid "Other"
 msgstr "Autre"
 
 msgctxt "selection:party.contact_mechanism,type:"
-msgid "Other"
-msgstr "Autre"
-
-msgctxt "selection:party.contact_mechanism,type:"
 msgid "Phone"
 msgstr "Téléphone"
 
 msgctxt "selection:party.contact_mechanism,type:"
-msgid "Phone"
-msgstr "Téléphone"
-
-msgctxt "selection:party.contact_mechanism,type:"
-msgid "SIP"
-msgstr "SIP"
-
-msgctxt "selection:party.contact_mechanism,type:"
 msgid "SIP"
 msgstr "SIP"
 
@@ -579,14 +543,6 @@ msgid "Skype"
 msgstr "Skype"
 
 msgctxt "selection:party.contact_mechanism,type:"
-msgid "Skype"
-msgstr "Skype"
-
-msgctxt "selection:party.contact_mechanism,type:"
-msgid "Website"
-msgstr "Site web"
-
-msgctxt "selection:party.contact_mechanism,type:"
 msgid "Website"
 msgstr "Site web"
 
@@ -594,23 +550,11 @@ msgctxt "view:party.address:"
 msgid "Addresses"
 msgstr "Adresses"
 
-msgctxt "view:party.address:"
-msgid "Addresses"
-msgstr "Adresses"
-
 msgctxt "view:party.category:"
 msgid "Categories"
 msgstr "Catégories"
 
 msgctxt "view:party.category:"
-msgid "Categories"
-msgstr "Catégories"
-
-msgctxt "view:party.category:"
-msgid "Category"
-msgstr "Catégorie"
-
-msgctxt "view:party.category:"
 msgid "Category"
 msgstr "Catégorie"
 
@@ -630,23 +574,11 @@ msgctxt "view:party.configuration:"
 msgid "Party Configuration"
 msgstr "Configuration des tiers"
 
-msgctxt "view:party.configuration:"
-msgid "Party Configuration"
-msgstr "Configuration des tiers"
-
 msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanism"
 msgstr "Moyen de contact"
 
 msgctxt "view:party.contact_mechanism:"
-msgid "Contact Mechanism"
-msgstr "Moyen de contact"
-
-msgctxt "view:party.contact_mechanism:"
-msgid "Contact Mechanisms"
-msgstr "Moyens de contact"
-
-msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanisms"
 msgstr "Moyens de contact"
 
@@ -655,22 +587,10 @@ msgid "Accounting"
 msgstr "Comptabilité"
 
 msgctxt "view:party.party:"
-msgid "Accounting"
-msgstr "Comptabilité"
-
-msgctxt "view:party.party:"
 msgid "General"
 msgstr "Général"
 
 msgctxt "view:party.party:"
-msgid "General"
-msgstr "Général"
-
-msgctxt "view:party.party:"
-msgid "Parties"
-msgstr "Tiers"
-
-msgctxt "view:party.party:"
 msgid "Parties"
 msgstr "Tiers"
 
@@ -679,14 +599,6 @@ msgid "Party"
 msgstr "Tiers"
 
 msgctxt "view:party.party:"
-msgid "Party"
-msgstr "Tiers"
-
-msgctxt "view:party.party:"
-msgid "VAT"
-msgstr "TVA"
-
-msgctxt "view:party.party:"
 msgid "VAT"
 msgstr "TVA"
 
diff --git a/locale/es_ES.po b/locale/sl_SI.po
similarity index 73%
copy from locale/es_ES.po
copy to locale/sl_SI.po
index 5623465..b7a6a8c 100644
--- a/locale/es_ES.po
+++ b/locale/sl_SI.po
@@ -4,57 +4,55 @@ msgstr "Content-Type: text/plain; charset=utf-8\n"
 
 msgctxt "error:party.address:"
 msgid "You can not modify the party of address \"%s\"."
-msgstr "No puede modificar el tercero de la dirección \"%s\"."
+msgstr "Strankin naslov \"%s\" ni možno popravljati."
 
 msgctxt "error:party.category:"
 msgid "Invalid category name \"%s\": You can not use \" / \" in name field."
-msgstr ""
-"Nombre de categoría \"%s\" no es correcto: No puede utilizar \" / \" en el "
-"campo nombre."
+msgstr "Neveljavno ime kategorije \"%s\": V imenu uporaba znaka \" / \" ni možna."
 
 msgctxt "error:party.category:"
 msgid "The name of a party category must be unique by parent."
-msgstr "El nombre de la categoría del tercero debe ser único según el padre."
+msgstr "Naziv kategorije stranke mora biti edinstven na matično kategorijo."
 
 msgctxt "error:party.check_vies:"
 msgid "The VIES service is unavailable, try again later."
-msgstr "El servicio VIES no está disponible, inténtelo de nuevo más tarde."
+msgstr "VIES storitev je nedostopna, poskusite kasneje."
 
 msgctxt "error:party.contact_mechanism:"
 msgid "You can not modify the party of contact mechanism \"%s\"."
-msgstr "No puede modificar el tercer del contacto \"%s\"."
+msgstr "Strankinega kontakta \"%s\" ni možno popravljati."
 
 msgctxt "error:party.party:"
 msgid "Invalid VAT number \"%(vat)s\" on party \"%(party)s\"."
-msgstr "CIF/NIF \"%(vat)s\" del tercero \"%(party)s\", no es correcto."
+msgstr "Neveljavna DDV Å¡tevilka \"%(vat)s\" pri stranki \"%(party)s\"."
 
 msgctxt "error:party.party:"
 msgid "The code of the party must be unique."
-msgstr "El código del tercero debe ser único."
+msgstr "Å ifra stranke mora biti edinstvena."
 
 msgctxt "field:party.address,active:"
 msgid "Active"
-msgstr "Activo"
+msgstr "Aktivno"
 
 msgctxt "field:party.address,city:"
 msgid "City"
-msgstr "Ciudad"
+msgstr "Mesto"
 
 msgctxt "field:party.address,country:"
 msgid "Country"
-msgstr "País"
+msgstr "Država"
 
 msgctxt "field:party.address,create_date:"
 msgid "Create Date"
-msgstr "Fecha creación"
+msgstr "Ustvarjeno"
 
 msgctxt "field:party.address,create_uid:"
 msgid "Create User"
-msgstr "Usuario creación"
+msgstr "Ustvaril"
 
 msgctxt "field:party.address,full_address:"
 msgid "Full Address"
-msgstr "Dirección completa"
+msgstr "Polni naslov"
 
 msgctxt "field:party.address,id:"
 msgid "ID"
@@ -62,59 +60,59 @@ msgstr "ID"
 
 msgctxt "field:party.address,name:"
 msgid "Name"
-msgstr "Contacto"
+msgstr "Naziv"
 
 msgctxt "field:party.address,party:"
 msgid "Party"
-msgstr "Tercero"
+msgstr "Stranka"
 
 msgctxt "field:party.address,rec_name:"
 msgid "Name"
-msgstr "Contacto"
+msgstr "Ime"
 
 msgctxt "field:party.address,sequence:"
 msgid "Sequence"
-msgstr "Secuencia"
+msgstr "Zap.Å¡t."
 
 msgctxt "field:party.address,street:"
 msgid "Street"
-msgstr "Calle"
+msgstr "Ulica"
 
 msgctxt "field:party.address,streetbis:"
 msgid "Street (bis)"
-msgstr "Calle (bis)"
+msgstr "Ulica (dodatno)"
 
 msgctxt "field:party.address,subdivision:"
 msgid "Subdivision"
-msgstr "Subdivisión"
+msgstr "Regija"
 
 msgctxt "field:party.address,write_date:"
 msgid "Write Date"
-msgstr "Fecha modificación"
+msgstr "Zapisano"
 
 msgctxt "field:party.address,write_uid:"
 msgid "Write User"
-msgstr "Usuario modificación"
+msgstr "Zapisal"
 
 msgctxt "field:party.address,zip:"
 msgid "Zip"
-msgstr "Código postal"
+msgstr "Poštna številka"
 
 msgctxt "field:party.category,active:"
 msgid "Active"
-msgstr "Activo"
+msgstr "Aktivno"
 
 msgctxt "field:party.category,childs:"
 msgid "Children"
-msgstr "Hijos"
+msgstr "Podkategorije"
 
 msgctxt "field:party.category,create_date:"
 msgid "Create Date"
-msgstr "Fecha creación"
+msgstr "Ustvarjeno"
 
 msgctxt "field:party.category,create_uid:"
 msgid "Create User"
-msgstr "Usuario creación"
+msgstr "Ustvaril"
 
 msgctxt "field:party.category,id:"
 msgid "ID"
@@ -122,23 +120,23 @@ msgstr "ID"
 
 msgctxt "field:party.category,name:"
 msgid "Name"
-msgstr "Nombre"
+msgstr "Naziv"
 
 msgctxt "field:party.category,parent:"
 msgid "Parent"
-msgstr "Padre"
+msgstr "Matična kategorija"
 
 msgctxt "field:party.category,rec_name:"
 msgid "Name"
-msgstr "Nombre"
+msgstr "Ime"
 
 msgctxt "field:party.category,write_date:"
 msgid "Write Date"
-msgstr "Fecha modificación"
+msgstr "Zapisano"
 
 msgctxt "field:party.category,write_uid:"
 msgid "Write User"
-msgstr "Usuario modificación"
+msgstr "Zapisal"
 
 msgctxt "field:party.check_vies.no_result,id:"
 msgid "ID"
@@ -150,19 +148,19 @@ msgstr "ID"
 
 msgctxt "field:party.check_vies.result,parties_failed:"
 msgid "Parties Failed"
-msgstr "Tercero erróneo"
+msgstr "Stranke neuspešno preverjene"
 
 msgctxt "field:party.check_vies.result,parties_succeed:"
 msgid "Parties Succeed"
-msgstr "Tercero correcto"
+msgstr "Stranke uspešno preverjene"
 
 msgctxt "field:party.configuration,create_date:"
 msgid "Create Date"
-msgstr "Fecha creación"
+msgstr "Ustvarjeno"
 
 msgctxt "field:party.configuration,create_uid:"
 msgid "Create User"
-msgstr "Usuario creación"
+msgstr "Ustvaril"
 
 msgctxt "field:party.configuration,id:"
 msgid "ID"
@@ -170,43 +168,43 @@ msgstr "ID"
 
 msgctxt "field:party.configuration,party_lang:"
 msgid "Party Language"
-msgstr "Idioma del tercero"
+msgstr "Jezik stranke"
 
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
-msgstr "Secuencia del tercero"
+msgstr "Å tetje strank"
 
 msgctxt "field:party.configuration,rec_name:"
 msgid "Name"
-msgstr "Nombre"
+msgstr "Ime"
 
 msgctxt "field:party.configuration,write_date:"
 msgid "Write Date"
-msgstr "Fecha modificación"
+msgstr "Zapisano"
 
 msgctxt "field:party.configuration,write_uid:"
 msgid "Write User"
-msgstr "Usuario modificación"
+msgstr "Zapisal"
 
 msgctxt "field:party.contact_mechanism,active:"
 msgid "Active"
-msgstr "Activo"
+msgstr "Aktivno"
 
 msgctxt "field:party.contact_mechanism,comment:"
 msgid "Comment"
-msgstr "Comentario"
+msgstr "Komentar"
 
 msgctxt "field:party.contact_mechanism,create_date:"
 msgid "Create Date"
-msgstr "Fecha creación"
+msgstr "Ustvarjeno"
 
 msgctxt "field:party.contact_mechanism,create_uid:"
 msgid "Create User"
-msgstr "Usuario creación"
+msgstr "Ustvaril"
 
 msgctxt "field:party.contact_mechanism,email:"
 msgid "E-Mail"
-msgstr "Correo electrónico"
+msgstr "E-pošta"
 
 msgctxt "field:party.contact_mechanism,id:"
 msgid "ID"
@@ -214,19 +212,19 @@ msgstr "ID"
 
 msgctxt "field:party.contact_mechanism,other_value:"
 msgid "Value"
-msgstr "Valor"
+msgstr "Drugo"
 
 msgctxt "field:party.contact_mechanism,party:"
 msgid "Party"
-msgstr "Tercero"
+msgstr "Stranka"
 
 msgctxt "field:party.contact_mechanism,rec_name:"
 msgid "Name"
-msgstr "Nombre"
+msgstr "Ime"
 
 msgctxt "field:party.contact_mechanism,sequence:"
 msgid "Sequence"
-msgstr "Secuencia"
+msgstr "Zap.Å¡t."
 
 msgctxt "field:party.contact_mechanism,sip:"
 msgid "SIP"
@@ -238,7 +236,7 @@ msgstr "Skype"
 
 msgctxt "field:party.contact_mechanism,type:"
 msgid "Type"
-msgstr "Tipo"
+msgstr "Tip"
 
 msgctxt "field:party.contact_mechanism,url:"
 msgid "URL"
@@ -246,67 +244,67 @@ msgstr "URL"
 
 msgctxt "field:party.contact_mechanism,value:"
 msgid "Value"
-msgstr "Valor"
+msgstr "Vrednost"
 
 msgctxt "field:party.contact_mechanism,website:"
 msgid "Website"
-msgstr "Sitio Web"
+msgstr "Spletna stran"
 
 msgctxt "field:party.contact_mechanism,write_date:"
 msgid "Write Date"
-msgstr "Fecha modificación"
+msgstr "Zapisano"
 
 msgctxt "field:party.contact_mechanism,write_uid:"
 msgid "Write User"
-msgstr "Usuario modificación"
+msgstr "Zapisal"
 
 msgctxt "field:party.party,active:"
 msgid "Active"
-msgstr "Activo"
+msgstr "Aktivno"
 
 msgctxt "field:party.party,addresses:"
 msgid "Addresses"
-msgstr "Direcciones"
+msgstr "Naslovi"
 
 msgctxt "field:party.party,categories:"
 msgid "Categories"
-msgstr "Categorías"
+msgstr "Kategorije"
 
 msgctxt "field:party.party,code:"
 msgid "Code"
-msgstr "Código"
+msgstr "Å ifra"
 
 msgctxt "field:party.party,code_length:"
 msgid "Code Length"
-msgstr "Dígitos del código"
+msgstr "Dolžina šifre"
 
 msgctxt "field:party.party,code_readonly:"
 msgid "Code Readonly"
-msgstr "Código sólo lectura"
+msgstr "Å ifra samo za branje"
 
 msgctxt "field:party.party,contact_mechanisms:"
 msgid "Contact Mechanisms"
-msgstr "Medios de contacto"
+msgstr "Kontakti"
 
 msgctxt "field:party.party,create_date:"
 msgid "Create Date"
-msgstr "Fecha creación"
+msgstr "Ustvarjeno"
 
 msgctxt "field:party.party,create_uid:"
 msgid "Create User"
-msgstr "Usuario creación"
+msgstr "Ustvaril"
 
 msgctxt "field:party.party,email:"
 msgid "E-Mail"
-msgstr "Correo electrónico"
+msgstr "E-pošta"
 
 msgctxt "field:party.party,fax:"
 msgid "Fax"
-msgstr "Fax"
+msgstr "Faks"
 
 msgctxt "field:party.party,full_name:"
 msgid "Full Name"
-msgstr "Nombre completo"
+msgstr "Polno ime"
 
 msgctxt "field:party.party,id:"
 msgid "ID"
@@ -314,59 +312,59 @@ msgstr "ID"
 
 msgctxt "field:party.party,lang:"
 msgid "Language"
-msgstr "Idioma"
+msgstr "Jezik"
 
 msgctxt "field:party.party,mobile:"
 msgid "Mobile"
-msgstr "Móvil"
+msgstr "Mobilni"
 
 msgctxt "field:party.party,name:"
 msgid "Name"
-msgstr "Nombre"
+msgstr "Naziv"
 
 msgctxt "field:party.party,phone:"
 msgid "Phone"
-msgstr "Teléfono"
+msgstr "Telefon"
 
 msgctxt "field:party.party,rec_name:"
 msgid "Name"
-msgstr "Nombre"
+msgstr "Ime"
 
 msgctxt "field:party.party,vat_code:"
 msgid "VAT Code"
-msgstr "CIF/NIF"
+msgstr "DDV Å¡ifra"
 
 msgctxt "field:party.party,vat_country:"
 msgid "VAT Country"
-msgstr "País del CIF/NIF"
+msgstr "DDV država"
 
 msgctxt "field:party.party,vat_number:"
 msgid "VAT Number"
-msgstr "CIF/NIF"
+msgstr "DDV Å¡tevilka"
 
 msgctxt "field:party.party,website:"
 msgid "Website"
-msgstr "Sitio Web"
+msgstr "Spletna stran"
 
 msgctxt "field:party.party,write_date:"
 msgid "Write Date"
-msgstr "Fecha modificación"
+msgstr "Zapisano"
 
 msgctxt "field:party.party,write_uid:"
 msgid "Write User"
-msgstr "Usuario modificación"
+msgstr "Zapisal"
 
 msgctxt "field:party.party-party.category,category:"
 msgid "Category"
-msgstr "Categoría"
+msgstr "Kategorija"
 
 msgctxt "field:party.party-party.category,create_date:"
 msgid "Create Date"
-msgstr "Fecha creación"
+msgstr "Ustvarjeno"
 
 msgctxt "field:party.party-party.category,create_uid:"
 msgid "Create User"
-msgstr "Usuario creación"
+msgstr "Ustvaril"
 
 msgctxt "field:party.party-party.category,id:"
 msgid "ID"
@@ -374,146 +372,143 @@ msgstr "ID"
 
 msgctxt "field:party.party-party.category,party:"
 msgid "Party"
-msgstr "Tercero"
+msgstr "Stranka"
 
 msgctxt "field:party.party-party.category,rec_name:"
 msgid "Name"
-msgstr "Nombre"
+msgstr "Ime"
 
 msgctxt "field:party.party-party.category,write_date:"
 msgid "Write Date"
-msgstr "Fecha modificación"
+msgstr "Zapisano"
 
 msgctxt "field:party.party-party.category,write_uid:"
 msgid "Write User"
-msgstr "Usuario modificación"
+msgstr "Zapisal"
 
 msgctxt "help:party.configuration,party_lang:"
 msgid "The value set on this field will preset the language on new parties"
-msgstr ""
-"El valor de este campo será el valor por defecto del idioma de los terceros."
+msgstr "Vrednost v tem polju bo nastavila jezik za nove stranke."
 
 msgctxt "help:party.party,vat_country:"
 msgid "Setting VAT country will enable validation of the VAT number."
-msgstr ""
-"Al especificar el país del NIF se habilitará la verificación de dicho "
-"número."
+msgstr "Nastavljena DDV država omogoča preverjanje DDV številke."
 
 msgctxt "help:party.party,vat_number:"
 msgid "Value Added Tax number"
-msgstr "Número de identificación fiscal."
+msgstr "Å tevilka davka na dodano vrednost"
 
 msgctxt "model:ir.action,name:act_address_form"
 msgid "Addresses"
-msgstr "Direcciones"
+msgstr "Naslovi"
 
 msgctxt "model:ir.action,name:act_category_list"
 msgid "Categories"
-msgstr "Categorías"
+msgstr "Kategorije"
 
 msgctxt "model:ir.action,name:act_category_tree"
 msgid "Categories"
-msgstr "Categorías"
+msgstr "Kategorije"
 
 msgctxt "model:ir.action,name:act_party_by_category"
 msgid "Parties by Category"
-msgstr "Terceros por categoría"
+msgstr "Stranke po kategorijah"
 
 msgctxt "model:ir.action,name:act_party_configuration_form"
 msgid "Party Configuration"
-msgstr "Configuración de terceros"
+msgstr "Konfiguracija strank"
 
 msgctxt "model:ir.action,name:act_party_form"
 msgid "Parties"
-msgstr "Terceros"
+msgstr "Stranke"
 
 msgctxt "model:ir.action,name:report_label"
 msgid "Labels"
-msgstr "Etiquetas"
+msgstr "Nalepke"
 
 msgctxt "model:ir.action,name:wizard_check_vies"
 msgid "Check VIES"
-msgstr "Comprobar VIES"
+msgstr "Preveri z VIES sistemom"
 
 msgctxt "model:ir.sequence,name:sequence_party"
 msgid "Party"
-msgstr "Tercero"
+msgstr "Stranka"
 
 msgctxt "model:ir.sequence.type,name:sequence_type_party"
 msgid "Party"
-msgstr "Tercero"
+msgstr "Stranka"
 
 msgctxt "model:ir.ui.menu,name:menu_address_form"
 msgid "Addresses"
-msgstr "Direcciones"
+msgstr "Naslovi"
 
 msgctxt "model:ir.ui.menu,name:menu_category_list"
 msgid "Categories"
-msgstr "Categorías"
+msgstr "Kategorije"
 
 msgctxt "model:ir.ui.menu,name:menu_category_tree"
 msgid "Categories"
-msgstr "Categorías"
+msgstr "Kategorije"
 
 msgctxt "model:ir.ui.menu,name:menu_configuration"
 msgid "Configuration"
-msgstr "Configuración"
+msgstr "Nastavitve"
 
 msgctxt "model:ir.ui.menu,name:menu_party"
 msgid "Party"
-msgstr "Terceros"
+msgstr "Stranka"
 
 msgctxt "model:ir.ui.menu,name:menu_party_configuration"
 msgid "Party Configuration"
-msgstr "Terceros"
+msgstr "Konfiguracija"
 
 msgctxt "model:ir.ui.menu,name:menu_party_form"
 msgid "Parties"
-msgstr "Terceros"
+msgstr "Stranke"
 
 msgctxt "model:party.address,name:"
 msgid "Address"
-msgstr "Dirección"
+msgstr "Naslov"
 
 msgctxt "model:party.category,name:"
 msgid "Category"
-msgstr "Categoría"
+msgstr "Kategorija"
 
 msgctxt "model:party.check_vies.no_result,name:"
 msgid "Check VIES"
-msgstr "Comprobar VIES"
+msgstr "Preveri z VIES sistemom"
 
 msgctxt "model:party.check_vies.result,name:"
 msgid "Check VIES"
-msgstr "Comprobar VIES"
+msgstr "Preveri z VIES sistemom"
 
 msgctxt "model:party.configuration,name:"
 msgid "Party Configuration"
-msgstr "Configuración de terceros"
+msgstr "Konfiguracija strank"
 
 msgctxt "model:party.contact_mechanism,name:"
 msgid "Contact Mechanism"
-msgstr "Medio de contacto"
+msgstr "Kontakt"
 
 msgctxt "model:party.party,name:"
 msgid "Party"
-msgstr "Tercero"
+msgstr "Stranka"
 
 msgctxt "model:party.party-party.category,name:"
 msgid "Party - Category"
-msgstr "Terceros - Categoría"
+msgstr "Stranka - Kategorija"
 
 msgctxt "model:res.group,name:group_party_admin"
 msgid "Party Administration"
-msgstr "Administración de terceros"
+msgstr "Stranka - vodenje"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "E-Mail"
-msgstr "Correo electrónico"
+msgstr "E-pošta"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "Fax"
-msgstr "Fax"
+msgstr "Faks"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "IRC"
@@ -525,15 +520,15 @@ msgstr "Jabber"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "Mobile"
-msgstr "Móvil"
+msgstr "Mobilni"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "Other"
-msgstr "Otro"
+msgstr "Drugo"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "Phone"
-msgstr "Teléfono"
+msgstr "Telefon"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "SIP"
@@ -545,68 +540,68 @@ msgstr "Skype"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "Website"
-msgstr "Sitio Web"
+msgstr "Spletna stran"
 
 msgctxt "view:party.address:"
 msgid "Addresses"
-msgstr "Direcciones"
+msgstr "Naslovi"
 
 msgctxt "view:party.category:"
 msgid "Categories"
-msgstr "Categorías"
+msgstr "Kategorije"
 
 msgctxt "view:party.category:"
 msgid "Category"
-msgstr "Categoría"
+msgstr "Kategorija"
 
 msgctxt "view:party.check_vies.no_result:"
 msgid "VAT Information Exchange System"
-msgstr "Sistema de intercambio de información CIF/NIF"
+msgstr "Sistem za izmenjavo DDV informacij"
 
 msgctxt "view:party.check_vies.no_result:"
 msgid "You must have a recent version of \"vatnumber\" installed!"
-msgstr "Debe tener instalada una versión reciente de \"vatnumber\"."
+msgstr "Nameščena mora biti zadnja inačica \"DDV številke\"."
 
 msgctxt "view:party.check_vies.result:"
 msgid "VAT Information Exchange System Results"
-msgstr "Resultado del sistema de intercambio de información CIF/NIF"
+msgstr "Rezultati sistem za izmenjavo DDV informacij"
 
 msgctxt "view:party.configuration:"
 msgid "Party Configuration"
-msgstr "Configuración de terceros"
+msgstr "Konfiguracija strank"
 
 msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanism"
-msgstr "Medio de contacto"
+msgstr "Kontakt"
 
 msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanisms"
-msgstr "Medios de contacto"
+msgstr "Kontakti"
 
 msgctxt "view:party.party:"
 msgid "Accounting"
-msgstr "Contabilidad"
+msgstr "Računovodstvo"
 
 msgctxt "view:party.party:"
 msgid "General"
-msgstr "General"
+msgstr "Splošno"
 
 msgctxt "view:party.party:"
 msgid "Parties"
-msgstr "Terceros"
+msgstr "Stranke"
 
 msgctxt "view:party.party:"
 msgid "Party"
-msgstr "Tercero"
+msgstr "Stranka"
 
 msgctxt "view:party.party:"
 msgid "VAT"
-msgstr "CIF/NIF"
+msgstr "DDV"
 
 msgctxt "wizard_button:party.check_vies,no_result,end:"
 msgid "Ok"
-msgstr "Aceptar"
+msgstr "V redu"
 
 msgctxt "wizard_button:party.check_vies,result,end:"
 msgid "Ok"
-msgstr "Aceptar"
+msgstr "V redu"
diff --git a/party.py b/party.py
index b2ee7ac..3104d4c 100644
--- a/party.py
+++ b/party.py
@@ -34,8 +34,6 @@ class Party(ModelSQL, ModelView):
     name = fields.Char('Name', required=True, select=True,
         states=STATES, depends=DEPENDS)
     code = fields.Char('Code', required=True, select=True,
-        order_field=("%(table)s.code_length %(order)s, "
-            "%(table)s.code %(order)s"),
         states={
             'readonly': Eval('code_readonly', True),
             },
@@ -86,6 +84,11 @@ class Party(ModelSQL, ModelView):
         cls._order.insert(0, ('name', 'ASC'))
 
     @staticmethod
+    def order_code(tables):
+        table, _ = tables[None]
+        return [table.code_length, table.code]
+
+    @staticmethod
     def default_active():
         return True
 
@@ -170,8 +173,6 @@ class Party(ModelSQL, ModelView):
 
     @classmethod
     def copy(cls, parties, default=None):
-        Address = Pool().get('party.address')
-
         if default is None:
             default = {}
         default = default.copy()
@@ -218,11 +219,11 @@ class Party(ModelSQL, ModelView):
         http://sima-pc.com/nif.php
         '''
         if not HAS_VATNUMBER:
-            return True
+            return
         vat_number = self.vat_number
 
         if not self.vat_country:
-            return True
+            return
 
         if not getattr(vatnumber, 'check_vat_' +
                 self.vat_country.lower())(vat_number):
diff --git a/setup.py b/setup.py
index 805e9cb..fcfac67 100644
--- a/setup.py
+++ b/setup.py
@@ -65,6 +65,7 @@ setup(name='trytond_party',
         'Natural Language :: French',
         'Natural Language :: German',
         'Natural Language :: Russian',
+        'Natural Language :: Slovenian',
         'Natural Language :: Spanish',
         'Operating System :: OS Independent',
         'Programming Language :: Python :: 2.6',
diff --git a/tests/__init__.py b/tests/__init__.py
index c9f2b03..ac2796d 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -2,3 +2,5 @@
 #this repository contains the full copyright notices and license terms.
 
 from .test_party import suite
+
+__all__ = ['suite']
diff --git a/tryton.cfg b/tryton.cfg
index 1546871..6e07686 100644
--- a/tryton.cfg
+++ b/tryton.cfg
@@ -1,5 +1,5 @@
 [tryton]
-version=2.8.0
+version=3.0.0
 depends:
     country
     ir
diff --git a/trytond_party.egg-info/PKG-INFO b/trytond_party.egg-info/PKG-INFO
index dbe05e2..21ec555 100644
--- a/trytond_party.egg-info/PKG-INFO
+++ b/trytond_party.egg-info/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 1.1
 Name: trytond-party
-Version: 2.8.0
+Version: 3.0.0
 Summary: Tryton module with parties and addresses
 Home-page: http://www.tryton.org/
 Author: Tryton
 Author-email: UNKNOWN
 License: GPL-3
-Download-URL: http://downloads.tryton.org/2.8/
+Download-URL: http://downloads.tryton.org/3.0/
 Description: trytond_party
         =============
         
@@ -60,6 +60,7 @@ Classifier: Natural Language :: English
 Classifier: Natural Language :: French
 Classifier: Natural Language :: German
 Classifier: Natural Language :: Russian
+Classifier: Natural Language :: Slovenian
 Classifier: Natural Language :: Spanish
 Classifier: Operating System :: OS Independent
 Classifier: Programming Language :: Python :: 2.6
diff --git a/trytond_party.egg-info/SOURCES.txt b/trytond_party.egg-info/SOURCES.txt
index bceb65a..2e2d904 100644
--- a/trytond_party.egg-info/SOURCES.txt
+++ b/trytond_party.egg-info/SOURCES.txt
@@ -32,6 +32,7 @@ locale/es_ES.po
 locale/fr_FR.po
 locale/nl_NL.po
 locale/ru_RU.po
+locale/sl_SI.po
 trytond_party.egg-info/PKG-INFO
 trytond_party.egg-info/SOURCES.txt
 trytond_party.egg-info/dependency_links.txt
diff --git a/trytond_party.egg-info/requires.txt b/trytond_party.egg-info/requires.txt
index 3a53a8a..b86a589 100644
--- a/trytond_party.egg-info/requires.txt
+++ b/trytond_party.egg-info/requires.txt
@@ -1,5 +1,5 @@
-trytond_country >= 2.8, < 2.9
-trytond >= 2.8, < 2.9
+trytond_country >= 3.0, < 3.1
+trytond >= 3.0, < 3.1
 
 [VAT]
 vatnumber
\ No newline at end of file
commit 88b89a1fa3afd7d57e94baa9a41202ccefdfd952
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Tue Aug 6 16:20:56 2013 +0200

    Releasing debian version 2.8.0-3.

diff --git a/debian/changelog b/debian/changelog
index fca4826..e6cafb6 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+tryton-modules-party (2.8.0-3) unstable; urgency=low
+
+  * Adapting the rules file to work also with git-buildpackage.
+
+ -- Mathias Behrle <mathiasb at m9s.biz>  Tue, 06 Aug 2013 13:32:59 +0200
+
 tryton-modules-party (2.8.0-2) unstable; urgency=low
 
   * Adding doc/ to docs file.
commit 4d12bec091ae9039019a3cebb386645aa3f6da82
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Mon Aug 5 18:06:36 2013 +0200

    Adapting the rules file to work also with git-buildpackage.

diff --git a/debian/rules b/debian/rules
index a6a1fb8..30074ad 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,13 +1,24 @@
 #!/usr/bin/make -f
 
 MAJOR := $(shell python setup.py --version | awk -F "." '{print $$1 "." $$2}')
+PACKAGE_NAME := $(shell python setup.py --name)
 
 %:
 	dh ${@} --with python2
 
 override_dh_auto_clean:
 	dh_auto_clean
+
+override_dh_auto_build:
+	mv $(PACKAGE_NAME).egg-info $(PACKAGE_NAME).hen-info
+	mv PKG-INFO PKG-INFO.hen
+	dh_auto_build
+
+override_dh_auto_install:
+	dh_auto_install
 	rm -rf *.egg-info
+	mv $(PACKAGE_NAME).hen-info $(PACKAGE_NAME).egg-info
+	mv PKG-INFO.hen PKG-INFO
 
 override_dh_gencontrol:
 	dh_gencontrol -- -Vversion:major="$(MAJOR)"
commit da1f46f2d7b61a6a06c88fee2b6df642c5a66672
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Fri May 31 19:57:30 2013 +0200

    Releasing debian version 2.8.0-2.

diff --git a/debian/changelog b/debian/changelog
index 519b080..fca4826 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+tryton-modules-party (2.8.0-2) unstable; urgency=low
+
+  * Adding doc/ to docs file.
+  * Simplifying package layout by renaming <pkg_name>.docs to docs.
+  * Removing needless empty line in rules.
+
+ -- Mathias Behrle <mathiasb at m9s.biz>  Fri, 31 May 2013 17:26:40 +0200
+
 tryton-modules-party (2.8.0-1) experimental; urgency=low
 
   * Merging upstream version 2.8.0.
commit 96d7f83bec8ac8f75c18103fbf77f2c5cacf1fa7
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Wed May 29 17:19:29 2013 +0200

    Removing needless empty line in rules.

diff --git a/debian/rules b/debian/rules
index 0f63ab4..a6a1fb8 100755
--- a/debian/rules
+++ b/debian/rules
@@ -7,7 +7,6 @@ MAJOR := $(shell python setup.py --version | awk -F "." '{print $$1 "." $$2}')
 
 override_dh_auto_clean:
 	dh_auto_clean
-
 	rm -rf *.egg-info
 
 override_dh_gencontrol:
commit 4400e724ef4a5152ef288b0fb16ba5f897df6994
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Wed May 29 17:01:48 2013 +0200

    Simplifying package layout by renaming <pkg_name>.docs to docs.
    
    Thanks to Andreas Tille for this proposal. Since tryton module packages
    will most probably stay simple binary packages this change simplifies the
    package layout.

diff --git a/debian/tryton-modules-party.docs b/debian/docs
similarity index 100%
rename from debian/tryton-modules-party.docs
rename to debian/docs
commit 081c2841363d2f2c832ea9241b13d6060acce5b6
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Tue May 14 18:54:41 2013 +0200

    Adding doc/ to docs file.

diff --git a/debian/tryton-modules-party.docs b/debian/tryton-modules-party.docs
new file mode 100644
index 0000000..a2e6bd4
--- /dev/null
+++ b/debian/tryton-modules-party.docs
@@ -0,0 +1 @@
+doc/
commit fdea809dc4851da7159e56c055888a088ed11a18
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Thu May 2 17:27:07 2013 +0200

    Releasing debian version 2.8.0-1.

diff --git a/debian/changelog b/debian/changelog
index 78f5ba3..519b080 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+tryton-modules-party (2.8.0-1) experimental; urgency=low
+
+  * Merging upstream version 2.8.0.
+  * Updating copyright.
+
+ -- Mathias Behrle <mathiasb at m9s.biz>  Thu, 02 May 2013 15:20:17 +0200
+
 tryton-modules-party (2.6.0-4) experimental; urgency=low
 
   * Removing Daniel from Uploaders. Thanks for your work! (Closes: #704385).
commit 27b91a092e167d589eba61ab655955bba473851e
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Thu May 2 14:13:10 2013 +0200

    Updating copyright.

diff --git a/debian/copyright b/debian/copyright
index 58125a4..4e0df0d 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -1,10 +1,10 @@
 Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
 
 Files: *
-Copyright: 2008-2012 Cédric Krier
-           2008-2012 Bertrand Chenal
-           2008-2012 B2CK SPRL
-           2008-2011 Udo Spallek
+Copyright: 2008-2013 Cédric Krier
+           2008-2013 Bertrand Chenal
+           2008-2013 B2CK SPRL
+           2008-2013 Udo Spallek
            2008-2011 Korbinian Preisler
            2008-2011 virtual things
            2004-2008 Tiny SPRL
commit 17a4a35290c13c6ffa1c87896e0a129e919b6a15
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Thu May 2 00:36:38 2013 +0200

    Merging upstream version 2.8.0.

diff --git a/CHANGELOG b/CHANGELOG
index 23170cf..e541923 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,7 @@
+Version 2.8.0 - 2013-04-22
+* Bug fixes (see mercurial logs for details)
+* Add url widget to contact mechanism list view
+
 Version 2.6.0 - 2012-10-22
 * Bug fixes (see mercurial logs for details)
 
diff --git a/COPYRIGHT b/COPYRIGHT
index dfe7d1e..03c5206 100644
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -1,7 +1,7 @@
-Copyright (C) 2008-2012 Cédric Krier.
-Copyright (C) 2008-2012 Bertrand Chenal.
-Copyright (C) 2008-2012 B2CK SPRL.
-Copyright (C) 2008-2011 Udo Spallek.
+Copyright (C) 2008-2013 Cédric Krier.
+Copyright (C) 2008-2013 Bertrand Chenal.
+Copyright (C) 2008-2013 B2CK SPRL.
+Copyright (C) 2008-2013 Udo Spallek.
 Copyright (C) 2008-2011 Korbinian Preisler.
 Copyright (C) 2008-2011 virtual things.
 Copyright (C) 2004-2008 Tiny SPRL.
diff --git a/MANIFEST.in b/MANIFEST.in
index e4632a1..732a76e 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -6,6 +6,7 @@ include CHANGELOG
 include LICENSE
 include tryton.cfg
 include *.xml
+include view/*.xml
 include *.odt
 include locale/*.po
 include doc/*
diff --git a/PKG-INFO b/PKG-INFO
index 48774d1..347464a 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
-Metadata-Version: 1.0
+Metadata-Version: 1.1
 Name: trytond_party
-Version: 2.6.0
+Version: 2.8.0
 Summary: Tryton module with parties and addresses
 Home-page: http://www.tryton.org/
 Author: Tryton
 Author-email: UNKNOWN
 License: GPL-3
-Download-URL: http://downloads.tryton.org/2.6/
+Download-URL: http://downloads.tryton.org/2.8/
 Description: trytond_party
         =============
         
@@ -53,6 +53,7 @@ Classifier: Intended Audience :: Legal Industry
 Classifier: Intended Audience :: Manufacturing
 Classifier: License :: OSI Approved :: GNU General Public License (GPL)
 Classifier: Natural Language :: Bulgarian
+Classifier: Natural Language :: Catalan
 Classifier: Natural Language :: Czech
 Classifier: Natural Language :: Dutch
 Classifier: Natural Language :: English
diff --git a/address.py b/address.py
index 3017b89..a1b6c0b 100644
--- a/address.py
+++ b/address.py
@@ -45,8 +45,8 @@ class Address(ModelSQL, ModelView):
         cls._order.insert(0, ('party', 'ASC'))
         cls._order.insert(1, ('sequence', 'ASC'))
         cls._error_messages.update({
-            'write_party': 'You can not modify the party of an address!',
-            })
+                'write_party': 'You can not modify the party of address "%s".',
+                })
 
     @classmethod
     def __register__(cls, module_name):
@@ -114,7 +114,7 @@ class Address(ModelSQL, ModelView):
         if 'party' in vals:
             for address in addresses:
                 if address.party.id != vals['party']:
-                    cls.raise_user_error('write_party')
+                    cls.raise_user_error('write_party', (address.rec_name,))
         super(Address, cls).write(addresses, vals)
 
     def on_change_country(self):
diff --git a/address.xml b/address.xml
index 3848526..86eaf4b 100644
--- a/address.xml
+++ b/address.xml
@@ -7,76 +7,20 @@ this repository contains the full copyright notices and license terms. -->
             <field name="model">party.address</field>
             <field name="type">tree</field>
             <field name="priority" eval="10"/>
-            <field name="arch" type="xml">
-                <![CDATA[
-                <tree string="Addresses">
-                    <field name="party"/>
-                    <field name="name"/>
-                    <field name="street"/>
-                    <field name="streetbis"/>
-                    <field name="zip"/>
-                    <field name="city"/>
-                    <field name="country"/>
-                    <field name="subdivision"/>
-                    <field name="active"/>
-                </tree>
-                ]]>
-            </field>
+            <field name="name">address_tree</field>
         </record>
 
         <record model="ir.ui.view" id="address_view_tree_sequence">
             <field name="model">party.address</field>
             <field name="type">tree</field>
             <field name="priority" eval="20"/>
-            <field name="arch" type="xml">
-                <![CDATA[
-                <tree string="Addresses" sequence="sequence">
-                    <field name="name"/>
-                    <field name="street"/>
-                    <field name="streetbis"/>
-                    <field name="zip"/>
-                    <field name="city"/>
-                    <field name="country"/>
-                    <field name="subdivision" expand="1"/>
-                </tree>
-                ]]>
-            </field>
+            <field name="name">address_tree_sequence</field>
         </record>
 
         <record model="ir.ui.view" id="address_view_form">
             <field name="model">party.address</field>
             <field name="type">form</field>
-            <field name="arch" type="xml">
-                <![CDATA[
-                <form string="Addresses" col="6">
-                    <label name="party"/>
-                    <field name="party" colspan="5"/>
-                    <label name="name"/>
-                    <field name="name"/>
-                    <group colspan="2" col="20" id="checkboxes">
-                        <label name="active"/>
-                        <field name="active"
-                            xexpand="0" width="25"/>
-                        <!-- Add here some checkboxes ! -->
-                    </group>
-                    <newline/>
-                    <label name="street"/>
-                    <field name="street"/>
-                    <label name="streetbis"/>
-                    <field name="streetbis"/>
-                    <newline/>
-                    <label name="zip"/>
-                    <field name="zip"/>
-                    <label name="city"/>
-                    <field name="city"/>
-                    <newline/>
-                    <label name="country"/>
-                    <field name="country" widget="selection"/>
-                    <label name="subdivision"/>
-                    <field name="subdivision" widget="selection"/>
-                </form>
-                ]]>
-            </field>
+            <field name="name">address_form</field>
         </record>
         <record model="ir.action.act_window" id="act_address_form">
             <field name="name">Addresses</field>
diff --git a/category.py b/category.py
index 8ec6fe5..bf6b3e3 100644
--- a/category.py
+++ b/category.py
@@ -29,26 +29,28 @@ class Category(ModelSQL, ModelView):
         super(Category, cls).__setup__()
         cls._sql_constraints = [
             ('name_parent_uniq', 'UNIQUE(name, parent)',
-                'The name of a party category must be unique by parent!'),
-        ]
-        cls._constraints += [
-            ('check_recursion', 'recursive_categories'),
-            ('check_name', 'wrong_name'),
-        ]
+                'The name of a party category must be unique by parent.'),
+            ]
         cls._error_messages.update({
-            'recursive_categories': 'You can not create recursive categories!',
-            'wrong_name': 'You can not use "%s" in name field!' % SEPARATOR,
-        })
+                'wrong_name': ('Invalid category name "%%s": You can not use '
+                    '"%s" in name field.' % SEPARATOR),
+                })
         cls._order.insert(1, ('name', 'ASC'))
 
     @staticmethod
     def default_active():
         return True
 
+    @classmethod
+    def validate(cls, categories):
+        super(Category, cls).validate(categories)
+        cls.check_recursion(categories, rec_name='name')
+        for category in categories:
+            category.check_name()
+
     def check_name(self):
         if SEPARATOR in self.name:
-            return False
-        return True
+            self.raise_user_error('wrong_name', (self.name,))
 
     def get_rec_name(self, name):
         if self.parent:
diff --git a/category.xml b/category.xml
index 71e9f47..20c84b3 100644
--- a/category.xml
+++ b/category.xml
@@ -6,44 +6,19 @@ this repository contains the full copyright notices and license terms. -->
         <record model="ir.ui.view" id="category_view_form">
             <field name="model">party.category</field>
             <field name="type">form</field>
-            <field name="arch" type="xml">
-                <![CDATA[
-                <form string="Category">
-                    <label name="name"/>
-                    <field name="name"/>
-                    <label name="active"/>
-                    <field name="active"/>
-                    <label name="parent"/>
-                    <field name="parent"/>
-                </form>
-                ]]>
-            </field>
+            <field name="name">category_form</field>
         </record>
         <record model="ir.ui.view" id="category_view_tree">
             <field name="model">party.category</field>
             <field name="type">tree</field>
             <field name="field_childs">childs</field>
-            <field name="arch" type="xml">
-                <![CDATA[
-                <tree string="Categories" keyword_open="1">
-                    <field name="name" expand="1"/>
-                    <field name="parent" tree_invisible="1"/>
-                    <field name="childs" tree_invisible="1"/>
-                </tree>
-                ]]>
-            </field>
+            <field name="name">category_tree</field>
         </record>
         <record model="ir.ui.view" id="category_view_list">
             <field name="model">party.category</field>
             <field name="type">tree</field>
             <field name="priority" eval="10"/>
-            <field name="arch" type="xml">
-                <![CDATA[
-                <tree string="Categories">
-                    <field name="rec_name" expand="1"/>
-                </tree>
-                ]]>
-            </field>
+            <field name="name">category_list</field>
         </record>
         <record model="ir.action.act_window" id="act_category_tree">
             <field name="name">Categories</field>
@@ -96,6 +71,5 @@ this repository contains the full copyright notices and license terms. -->
             <field name="perm_create" eval="True"/>
             <field name="perm_delete" eval="True"/>
         </record>
-
     </data>
 </tryton>
diff --git a/configuration.xml b/configuration.xml
index 84e73cc..2d07c6d 100644
--- a/configuration.xml
+++ b/configuration.xml
@@ -6,16 +6,7 @@ this repository contains the full copyright notices and license terms. -->
         <record model="ir.ui.view" id="party_configuration_view_form">
             <field name="model">party.configuration</field>
             <field name="type">form</field>
-            <field name="arch" type="xml">
-                <![CDATA[
-                <form string="Party Configuration">
-                    <label name="party_sequence"/>
-                    <field name="party_sequence"/>
-                    <label name="party_lang" />
-                    <field name="party_lang" widget="selection" />
-                </form>
-                ]]>
-            </field>
+            <field name="name">configuration_form</field>
         </record>
         <record model="ir.action.act_window" id="act_party_configuration_form">
             <field name="name">Party Configuration</field>
diff --git a/contact_mechanism.py b/contact_mechanism.py
index 6dff452..ed2f981 100644
--- a/contact_mechanism.py
+++ b/contact_mechanism.py
@@ -32,9 +32,9 @@ class ContactMechanism(ModelSQL, ModelView):
     _rec_name = 'value'
 
     type = fields.Selection(_TYPES, 'Type', required=True, states=STATES,
-        sort=False, depends=DEPENDS)
+        sort=False, on_change=['value', 'type'], depends=DEPENDS)
     value = fields.Char('Value', select=True, states=STATES,
-        on_change=['value'], depends=DEPENDS)
+        on_change=['value', 'type'], depends=DEPENDS)
     comment = fields.Text('Comment', states=STATES, depends=DEPENDS)
     party = fields.Many2One('party.party', 'Party', required=True,
         ondelete='CASCADE', states=STATES, select=True, depends=DEPENDS)
@@ -46,32 +46,39 @@ class ContactMechanism(ModelSQL, ModelView):
         'invisible': Eval('type') != 'email',
         'required': Eval('type') == 'email',
         'readonly': ~Eval('active', True),
-        }, on_change=['email'], depends=['value', 'type', 'active']),
+        }, on_change=['email', 'type'], depends=['value', 'type', 'active']),
         'get_value', setter='set_value')
     website = fields.Function(fields.Char('Website', states={
         'invisible': Eval('type') != 'website',
         'required': Eval('type') == 'website',
         'readonly': ~Eval('active', True),
-        }, on_change=['website'], depends=['value', 'type', 'active']),
+        }, on_change=['website', 'type'], depends=['value', 'type', 'active']),
         'get_value', setter='set_value')
     skype = fields.Function(fields.Char('Skype', states={
         'invisible': Eval('type') != 'skype',
         'required': Eval('type') == 'skype',
         'readonly': ~Eval('active', True),
-        }, on_change=['skype'], depends=['value', 'type', 'active']),
+        }, on_change=['skype', 'type'], depends=['value', 'type', 'active']),
         'get_value', setter='set_value')
     sip = fields.Function(fields.Char('SIP', states={
         'invisible': Eval('type') != 'sip',
         'required': Eval('type') == 'sip',
         'readonly': ~Eval('active', True),
-        }, on_change=['sip'], depends=['value', 'type', 'active']),
+        }, on_change=['sip', 'type'], depends=['value', 'type', 'active']),
         'get_value', setter='set_value')
     other_value = fields.Function(fields.Char('Value', states={
         'invisible': Eval('type').in_(['email', 'website', 'skype', 'sip']),
         'required': ~Eval('type').in_(['email', 'website']),
         'readonly': ~Eval('active', True),
-        }, on_change=['other_value'], depends=['value', 'type', 'active']),
+        }, on_change=['other_value', 'type'],
+            depends=['value', 'type', 'active']),
         'get_value', setter='set_value')
+    url = fields.Function(fields.Char('URL', states={
+                'invisible': (~Eval('type').in_(['email', 'website', 'skype',
+                            'sip'])
+                    | ~Eval('url')),
+                }, depends=['type']),
+        'get_url')
 
     @classmethod
     def __setup__(cls):
@@ -79,9 +86,9 @@ class ContactMechanism(ModelSQL, ModelView):
         cls._order.insert(0, ('party', 'ASC'))
         cls._order.insert(1, ('sequence', 'ASC'))
         cls._error_messages.update({
-            'write_party': 'You can not modify the party of ' \
-                    'a contact mechanism!',
-            })
+                'write_party': ('You can not modify the party of contact '
+                    'mechanism "%s".'),
+                })
 
     @classmethod
     def __register__(cls, module_name):
@@ -106,6 +113,19 @@ class ContactMechanism(ModelSQL, ModelView):
         return dict((name, dict((m.id, m.value) for m in mechanisms))
             for name in names)
 
+    def get_url(self, name=None, value=None):
+        if value is None:
+            value = self.value
+        if self.type == 'email':
+            return 'mailto:%s' % value
+        elif self.type == 'website':
+            return value
+        elif self.type == 'skype':
+            return 'callto:%s' % value
+        elif self.type == 'sip':
+            return 'sip:%s' % value
+        return None
+
     @classmethod
     def set_value(cls, mechanisms, name, value):
         cls.write(mechanisms, {
@@ -120,6 +140,12 @@ class ContactMechanism(ModelSQL, ModelView):
             'skype': value,
             'sip': value,
             'other_value': value,
+            'url': self.get_url(value=value)
+            }
+
+    def on_change_type(self):
+        return {
+            'url': self.get_url(value=self.value),
             }
 
     def on_change_value(self):
@@ -145,5 +171,5 @@ class ContactMechanism(ModelSQL, ModelView):
         if 'party' in vals:
             for mechanism in mechanisms:
                 if mechanism.party.id != vals['party']:
-                    cls.raise_user_error('write_party')
+                    cls.raise_user_error('write_party', (mechanism.rec_name,))
         super(ContactMechanism, cls).write(mechanisms, vals)
diff --git a/contact_mechanism.xml b/contact_mechanism.xml
index 0ad8cb9..be4f507 100644
--- a/contact_mechanism.xml
+++ b/contact_mechanism.xml
@@ -8,65 +8,20 @@ this repository contains the full copyright notices and license terms. -->
             <field name="model">party.contact_mechanism</field>
             <field name="type">tree</field>
             <field name="priority" eval="10"/>
-            <field name="arch" type="xml">
-                <![CDATA[
-                <tree string="Contact Mechanisms">
-                    <field name="party"/>
-                    <field name="type"/>
-                    <field name="value"/>
-                </tree>
-                ]]>
-            </field>
+            <field name="name">contact_mechanism_tree</field>
         </record>
 
         <record model="ir.ui.view" id="contact_mechanism_view_tree_sequence">
             <field name="model">party.contact_mechanism</field>
             <field name="type">tree</field>
             <field name="priority" eval="20"/>
-            <field name="arch" type="xml">
-                <![CDATA[
-                <tree string="Contact Mechanisms" sequence="sequence">
-                    <field name="type"/>
-                    <field name="value"/>
-                    <field name="comment" expand="1"/>
-                </tree>
-                ]]>
-            </field>
+            <field name="name">contact_mechanism_tree_sequence</field>
         </record>
 
         <record model="ir.ui.view" id="contact_mechanism_view_form">
             <field name="model">party.contact_mechanism</field>
             <field name="type">form</field>
-            <field name="arch" type="xml">
-                <![CDATA[
-                <form string="Contact Mechanism" col="6">
-                    <label name="party"/>
-                    <field name="party" colspan="5"/>
-                    <label name="type"/>
-                    <field name="type"/>
-                    <group col="2" colspan="2" id="value">
-                        <label name="other_value"/>
-                        <field name="other_value"/>
-                        <label name="website"/>
-                        <field name="website" widget="url"/>
-                        <label name="email"/>
-                        <field name="email" widget="email"/>
-                        <label name="skype"/>
-                        <field name="skype" widget="callto"/>
-                        <label name="sip"/>
-                        <field name="sip" widget="sip"/>
-                    </group>
-                    <group col="20" colspan="2" id="checkboxes">
-                        <label name="active"/>
-                        <field name="active" 
-                            xexpand="0" width="25"/>
-                        <!-- Add here some checkboxes ! -->
-                    </group>
-                    <separator name="comment" colspan="6"/>
-                    <field name="comment" colspan="6"/>
-                </form>
-                ]]>
-            </field>
+            <field name="name">contact_mechanism_form</field>
         </record>
 
     </data>
diff --git a/locale/bg_BG.po b/locale/bg_BG.po
index 0abeacb..d300617 100644
--- a/locale/bg_BG.po
+++ b/locale/bg_BG.po
@@ -3,36 +3,32 @@ msgid ""
 msgstr "Content-Type: text/plain; charset=utf-8\n"
 
 msgctxt "error:party.address:"
-msgid "You can not modify the party of an address!"
-msgstr "Не може да променяте партньора за адрес!"
+msgid "You can not modify the party of address \"%s\"."
+msgstr ""
 
 msgctxt "error:party.category:"
-msgid "The name of a party category must be unique by parent!"
-msgstr "Името на категорията на партньора трябва да бъде уникална по родител!"
+msgid "Invalid category name \"%s\": You can not use \" / \" in name field."
+msgstr ""
 
 msgctxt "error:party.category:"
-msgid "You can not create recursive categories!"
-msgstr "Не може да създавате взаимно вложени категории!"
-
-msgctxt "error:party.category:"
-msgid "You can not use \" / \" in name field!"
-msgstr "В името на полето не може да има \" / \"!"
+msgid "The name of a party category must be unique by parent."
+msgstr ""
 
 msgctxt "error:party.check_vies:"
 msgid "The VIES service is unavailable, try again later."
 msgstr "VIES услугата е недостъпна, опитайте отново по-късно."
 
 msgctxt "error:party.contact_mechanism:"
-msgid "You can not modify the party of a contact mechanism!"
-msgstr "Не може да променяте партньора за начин на контакт!"
+msgid "You can not modify the party of contact mechanism \"%s\"."
+msgstr ""
 
 msgctxt "error:party.party:"
-msgid "Invalid VAT number!"
-msgstr "Невалиден ДДС номер!"
+msgid "Invalid VAT number \"%(vat)s\" on party \"%(party)s\"."
+msgstr ""
 
 msgctxt "error:party.party:"
-msgid "The code of the party must be unique!"
-msgstr "Кода на партньора трябва да е уникален!"
+msgid "The code of the party must be unique."
+msgstr ""
 
 msgctxt "field:party.address,active:"
 msgid "Active"
@@ -242,6 +238,11 @@ msgctxt "field:party.contact_mechanism,type:"
 msgid "Type"
 msgstr "Вид"
 
+#, fuzzy
+msgctxt "field:party.contact_mechanism,url:"
+msgid "URL"
+msgstr "URL"
+
 msgctxt "field:party.contact_mechanism,value:"
 msgid "Value"
 msgstr "Стойност"
@@ -583,18 +584,6 @@ msgid "Accounting"
 msgstr "Счетоводство"
 
 msgctxt "view:party.party:"
-msgid "Addresses"
-msgstr "Адреси"
-
-msgctxt "view:party.party:"
-msgid "Categories"
-msgstr "Категории"
-
-msgctxt "view:party.party:"
-msgid "Contact Mechanisms"
-msgstr "Начини на контакт"
-
-msgctxt "view:party.party:"
 msgid "General"
 msgstr "Основен"
 
diff --git a/locale/ca_ES.po b/locale/ca_ES.po
index 83e9170..c1a2971 100644
--- a/locale/ca_ES.po
+++ b/locale/ca_ES.po
@@ -3,36 +3,34 @@ msgid ""
 msgstr "Content-Type: text/plain; charset=utf-8\n"
 
 msgctxt "error:party.address:"
-msgid "You can not modify the party of an address!"
-msgstr "No pot modificar el tercer d'una adreça."
+msgid "You can not modify the party of address \"%s\"."
+msgstr "No podeu modificar el tercer de l'adreça \"%s\"."
 
 msgctxt "error:party.category:"
-msgid "The name of a party category must be unique by parent!"
-msgstr "No pot usar \"/\" en el camp nomeni."
-
-msgctxt "error:party.category:"
-msgid "You can not create recursive categories!"
-msgstr "No pot crear categories recursives."
+msgid "Invalid category name \"%s\": You can not use \" / \" in name field."
+msgstr ""
+"Nom de categoria \"%s\" no és correcte: No podeu utilitzar \" / \" en el "
+"camp nom."
 
 msgctxt "error:party.category:"
-msgid "You can not use \" / \" in name field!"
-msgstr "No pot usar \"/\" en el camp nomeni."
+msgid "The name of a party category must be unique by parent."
+msgstr "El nom de la categoría del tercer ha de ser únic segons el pare."
 
 msgctxt "error:party.check_vies:"
 msgid "The VIES service is unavailable, try again later."
-msgstr "El servei VIES no està disponible, intenti-ho de nou més tard"
+msgstr "El servei VIES no està disponible, intenti-ho de nou més tard."
 
 msgctxt "error:party.contact_mechanism:"
-msgid "You can not modify the party of a contact mechanism!"
-msgstr "No pot modificar el tercer d'un contacte."
+msgid "You can not modify the party of contact mechanism \"%s\"."
+msgstr "No podeu modificar el tercer del contacte \"%s\"."
 
 msgctxt "error:party.party:"
-msgid "Invalid VAT number!"
-msgstr "El CIF/NIF no és vàlid"
+msgid "Invalid VAT number \"%(vat)s\" on party \"%(party)s\"."
+msgstr "CIF/NIF \"%(vat)s\" del tercer \"%(party)s\", no és correcte."
 
 msgctxt "error:party.party:"
-msgid "The code of the party must be unique!"
-msgstr "El codi del tercer ha de ser únic"
+msgid "The code of the party must be unique."
+msgstr "El codi del tercer ha de ser únic."
 
 msgctxt "field:party.address,active:"
 msgid "Active"
@@ -176,7 +174,7 @@ msgstr "Idioma del tercer"
 
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
-msgstr "Seqüència tercer"
+msgstr "Seqüència del tercer"
 
 msgctxt "field:party.configuration,rec_name:"
 msgid "Name"
@@ -242,6 +240,10 @@ msgctxt "field:party.contact_mechanism,type:"
 msgid "Type"
 msgstr "Tipus"
 
+msgctxt "field:party.contact_mechanism,url:"
+msgid "URL"
+msgstr "URL"
+
 msgctxt "field:party.contact_mechanism,value:"
 msgid "Value"
 msgstr "Valor"
@@ -562,7 +564,7 @@ msgstr "Sistema d'intercanvi d'informació CIF/NIF"
 
 msgctxt "view:party.check_vies.no_result:"
 msgid "You must have a recent version of \"vatnumber\" installed!"
-msgstr "Ha de tenir instal·lada una versió recent de \"vatnumber\"."
+msgstr "Heu de tenir instal·lada una versió recent de \"vatnumber\"."
 
 msgctxt "view:party.check_vies.result:"
 msgid "VAT Information Exchange System Results"
@@ -581,26 +583,10 @@ msgid "Contact Mechanisms"
 msgstr "Mitjà de contacte"
 
 msgctxt "view:party.party:"
-msgid "Account"
-msgstr "Compte"
-
-msgctxt "view:party.party:"
 msgid "Accounting"
 msgstr "Comptabilitat"
 
 msgctxt "view:party.party:"
-msgid "Addresses"
-msgstr "Adreces"
-
-msgctxt "view:party.party:"
-msgid "Categories"
-msgstr "Categories"
-
-msgctxt "view:party.party:"
-msgid "Contact Mechanisms"
-msgstr "Mitjans de contacte"
-
-msgctxt "view:party.party:"
 msgid "General"
 msgstr "General"
 
@@ -616,10 +602,6 @@ msgctxt "view:party.party:"
 msgid "VAT"
 msgstr "CIF/NIF"
 
-msgctxt "view:party.party:"
-msgid "_General"
-msgstr "_General"
-
 msgctxt "wizard_button:party.check_vies,no_result,end:"
 msgid "Ok"
 msgstr "Accepta"
diff --git a/locale/cs_CZ.po b/locale/cs_CZ.po
index 41be949..6f11de8 100644
--- a/locale/cs_CZ.po
+++ b/locale/cs_CZ.po
@@ -3,19 +3,15 @@ msgid ""
 msgstr "Content-Type: text/plain; charset=utf-8\n"
 
 msgctxt "error:party.address:"
-msgid "You can not modify the party of an address!"
+msgid "You can not modify the party of address \"%s\"."
 msgstr ""
 
 msgctxt "error:party.category:"
-msgid "The name of a party category must be unique by parent!"
+msgid "Invalid category name \"%s\": You can not use \" / \" in name field."
 msgstr ""
 
 msgctxt "error:party.category:"
-msgid "You can not create recursive categories!"
-msgstr ""
-
-msgctxt "error:party.category:"
-msgid "You can not use \" / \" in name field!"
+msgid "The name of a party category must be unique by parent."
 msgstr ""
 
 msgctxt "error:party.check_vies:"
@@ -23,15 +19,15 @@ msgid "The VIES service is unavailable, try again later."
 msgstr ""
 
 msgctxt "error:party.contact_mechanism:"
-msgid "You can not modify the party of a contact mechanism!"
+msgid "You can not modify the party of contact mechanism \"%s\"."
 msgstr ""
 
 msgctxt "error:party.party:"
-msgid "Invalid VAT number!"
+msgid "Invalid VAT number \"%(vat)s\" on party \"%(party)s\"."
 msgstr ""
 
 msgctxt "error:party.party:"
-msgid "The code of the party must be unique!"
+msgid "The code of the party must be unique."
 msgstr ""
 
 msgctxt "field:party.address,active:"
@@ -242,6 +238,10 @@ msgctxt "field:party.contact_mechanism,type:"
 msgid "Type"
 msgstr ""
 
+msgctxt "field:party.contact_mechanism,url:"
+msgid "URL"
+msgstr ""
+
 msgctxt "field:party.contact_mechanism,value:"
 msgid "Value"
 msgstr ""
@@ -583,18 +583,6 @@ msgid "Accounting"
 msgstr ""
 
 msgctxt "view:party.party:"
-msgid "Addresses"
-msgstr ""
-
-msgctxt "view:party.party:"
-msgid "Categories"
-msgstr ""
-
-msgctxt "view:party.party:"
-msgid "Contact Mechanisms"
-msgstr ""
-
-msgctxt "view:party.party:"
 msgid "General"
 msgstr ""
 
diff --git a/locale/de_DE.po b/locale/de_DE.po
index b9330dd..4a7692e 100644
--- a/locale/de_DE.po
+++ b/locale/de_DE.po
@@ -3,22 +3,18 @@ msgid ""
 msgstr "Content-Type: text/plain; charset=utf-8\n"
 
 msgctxt "error:party.address:"
-msgid "You can not modify the party of an address!"
-msgstr "Die Partei einer Adresse kann nicht geändert werden!"
+msgid "You can not modify the party of address \"%s\"."
+msgstr "Änderung der Partei von Adresse \"%s\" nicht möglich."
 
 msgctxt "error:party.category:"
-msgid "The name of a party category must be unique by parent!"
-msgstr ""
-"Der Name einer Parteikategorie kann pro übergeordneter Kategorie nur einmal "
-"vergeben werden!"
-
-msgctxt "error:party.category:"
-msgid "You can not create recursive categories!"
-msgstr "Kategorien können nicht rekursiv angelegt werden!"
+msgid "Invalid category name \"%s\": You can not use \" / \" in name field."
+msgstr "Ungültiger Kategoriename \"%s\": \" / \" ist in Feld Name nicht erlaubt."
 
 msgctxt "error:party.category:"
-msgid "You can not use \" / \" in name field!"
-msgstr "In dem Namensfeld kann \" / \" nicht verwendet werden!"
+msgid "The name of a party category must be unique by parent."
+msgstr ""
+"Der Name einer Parteienkategorie kann pro übergeordneter Kategorie nur "
+"einmal vergeben werden."
 
 msgctxt "error:party.check_vies:"
 msgid "The VIES service is unavailable, try again later."
@@ -26,16 +22,16 @@ msgstr ""
 "VIES Dienst nicht erreichbar, bitte versuchen Sie es später noch einmal!"
 
 msgctxt "error:party.contact_mechanism:"
-msgid "You can not modify the party of a contact mechanism!"
-msgstr "Die Partei einer Kontaktmöglichkeit kann nicht geändert werden!"
+msgid "You can not modify the party of contact mechanism \"%s\"."
+msgstr "Änderung der Partei von Kontaktmechanismus \"%s\" nicht möglich."
 
 msgctxt "error:party.party:"
-msgid "Invalid VAT number!"
-msgstr "Ungültige USt-ID-Nummer!"
+msgid "Invalid VAT number \"%(vat)s\" on party \"%(party)s\"."
+msgstr "Ungültige USt-ID-Nummer \"%(vat)s\" in Partei \"%(party)s\"."
 
 msgctxt "error:party.party:"
-msgid "The code of the party must be unique!"
-msgstr "Der Name einer Partei kann nur einmal vergeben werden!"
+msgid "The code of the party must be unique."
+msgstr "Der Code für eine Partei kann nur einmal vergeben werden."
 
 msgctxt "field:party.address,active:"
 msgid "Active"
@@ -245,6 +241,10 @@ msgctxt "field:party.contact_mechanism,type:"
 msgid "Type"
 msgstr "Typ"
 
+msgctxt "field:party.contact_mechanism,url:"
+msgid "URL"
+msgstr "URL"
+
 msgctxt "field:party.contact_mechanism,value:"
 msgid "Value"
 msgstr "Wert"
@@ -409,19 +409,19 @@ msgstr "Adressen"
 
 msgctxt "model:ir.action,name:act_category_list"
 msgid "Categories"
-msgstr "Kategorien"
+msgstr "Parteikategorien"
 
 msgctxt "model:ir.action,name:act_category_tree"
 msgid "Categories"
-msgstr "Kategorien"
+msgstr "Parteikategorien"
 
 msgctxt "model:ir.action,name:act_party_by_category"
 msgid "Parties by Category"
-msgstr "Parteien nach Kategorie"
+msgstr "Parteien nach Kategorien"
 
 msgctxt "model:ir.action,name:act_party_configuration_form"
 msgid "Party Configuration"
-msgstr "Einstellungen Partei"
+msgstr "Partei"
 
 msgctxt "model:ir.action,name:act_party_form"
 msgid "Parties"
@@ -465,7 +465,7 @@ msgstr "Parteien"
 
 msgctxt "model:ir.ui.menu,name:menu_party_configuration"
 msgid "Party Configuration"
-msgstr "Einstellungen Partei"
+msgstr "Partei"
 
 msgctxt "model:ir.ui.menu,name:menu_party_form"
 msgid "Parties"
@@ -586,30 +586,10 @@ msgid "Contact Mechanisms"
 msgstr "Kontaktmöglichkeiten"
 
 msgctxt "view:party.party:"
-msgid "Account"
-msgstr "Konten"
-
-msgctxt "view:party.party:"
 msgid "Accounting"
 msgstr "Buchhaltung"
 
 msgctxt "view:party.party:"
-msgid "Addresses"
-msgstr "Adressen"
-
-msgctxt "view:party.party:"
-msgid "Categories"
-msgstr "Kategorien"
-
-msgctxt "view:party.party:"
-msgid "Contact Mechanism"
-msgstr "Kontaktmöglichkeit"
-
-msgctxt "view:party.party:"
-msgid "Contact Mechanisms"
-msgstr "Kontaktmöglichkeiten"
-
-msgctxt "view:party.party:"
 msgid "General"
 msgstr "Allgemein"
 
@@ -625,14 +605,6 @@ msgctxt "view:party.party:"
 msgid "VAT"
 msgstr "USt"
 
-msgctxt "view:party.party:"
-msgid "_Accounting"
-msgstr "_Buchhaltung"
-
-msgctxt "view:party.party:"
-msgid "_General"
-msgstr "_Allgemein"
-
 msgctxt "wizard_button:party.check_vies,no_result,end:"
 msgid "Ok"
 msgstr "OK"
diff --git a/locale/es_AR.po b/locale/es_AR.po
index ee63f1f..0452038 100644
--- a/locale/es_AR.po
+++ b/locale/es_AR.po
@@ -3,36 +3,35 @@ msgid ""
 msgstr "Content-Type: text/plain; charset=utf-8\n"
 
 msgctxt "error:party.address:"
-msgid "You can not modify the party of an address!"
-msgstr "¡No puede modificar la entidad de una dirección!"
+msgid "You can not modify the party of address \"%s\"."
+msgstr "No puede modificar la entidad de la dirección «%s»."
 
 msgctxt "error:party.category:"
-msgid "The name of a party category must be unique by parent!"
-msgstr "¡El nombre de una categoría de entidad debe ser único por cada padre!"
-
-msgctxt "error:party.category:"
-msgid "You can not create recursive categories!"
-msgstr "¡No puede crear categorías recursivas!"
+msgid "Invalid category name \"%s\": You can not use \" / \" in name field."
+msgstr ""
+"Nombre de categoría «%s» no es correcto: No puede utilizar « / » en el campo"
+" nombre."
 
 msgctxt "error:party.category:"
-msgid "You can not use \" / \" in name field!"
-msgstr "¡No puede usar \" /\" en el campo nombre!"
+msgid "The name of a party category must be unique by parent."
+msgstr ""
+"El nombre de la categoría de la entidad debe ser único según el padre."
 
 msgctxt "error:party.check_vies:"
 msgid "The VIES service is unavailable, try again later."
 msgstr "El servicio VIES no está disponible, inténtelo de nuevo más tarde"
 
 msgctxt "error:party.contact_mechanism:"
-msgid "You can not modify the party of a contact mechanism!"
-msgstr "¡No puede modificar la entidad de un médio de contacto!"
+msgid "You can not modify the party of contact mechanism \"%s\"."
+msgstr "No puede modificar la entidad del contacto «%s»."
 
 msgctxt "error:party.party:"
-msgid "Invalid VAT number!"
-msgstr "¡El CUIT no es válido!"
+msgid "Invalid VAT number \"%(vat)s\" on party \"%(party)s\"."
+msgstr "CUIT «%(vat)s» de la entidad «%(party)s», no es correcto."
 
 msgctxt "error:party.party:"
-msgid "The code of the party must be unique!"
-msgstr "¡El código de la entidad debe ser único!"
+msgid "The code of the party must be unique."
+msgstr "El código de la entidad debe ser único."
 
 msgctxt "field:party.address,active:"
 msgid "Active"
@@ -152,7 +151,7 @@ msgstr "ID"
 
 msgctxt "field:party.check_vies.result,parties_failed:"
 msgid "Parties Failed"
-msgstr "Entidades fallaron"
+msgstr "Entidades erróneas"
 
 msgctxt "field:party.check_vies.result,parties_succeed:"
 msgid "Parties Succeed"
@@ -176,11 +175,11 @@ msgstr "Idioma de la entidad"
 
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
-msgstr "Secuencia de Entidades"
+msgstr "Secuencia de entidades"
 
 msgctxt "field:party.configuration,rec_name:"
 msgid "Name"
-msgstr "Nombre del campo"
+msgstr "Nombre campo"
 
 msgctxt "field:party.configuration,write_date:"
 msgid "Write Date"
@@ -242,6 +241,10 @@ msgctxt "field:party.contact_mechanism,type:"
 msgid "Type"
 msgstr "Tipo"
 
+msgctxt "field:party.contact_mechanism,url:"
+msgid "URL"
+msgstr "URL"
+
 msgctxt "field:party.contact_mechanism,value:"
 msgid "Value"
 msgstr "Valor"
@@ -280,7 +283,7 @@ msgstr "Dígitos del código"
 
 msgctxt "field:party.party,code_readonly:"
 msgid "Code Readonly"
-msgstr "Código de sólo lectura"
+msgstr "Código sólo lectura"
 
 msgctxt "field:party.party,contact_mechanisms:"
 msgid "Contact Mechanisms"
@@ -389,7 +392,8 @@ msgstr "Usuario modificación"
 msgctxt "help:party.configuration,party_lang:"
 msgid "The value set on this field will preset the language on new parties"
 msgstr ""
-"El valor de este campo predeterminada el idioma de las nuevas entidades"
+"El valor de este campo será el valor por defecto del idioma de las nuevas "
+"entidades"
 
 msgctxt "help:party.party,vat_country:"
 msgid "Setting VAT country will enable validation of the VAT number."
@@ -419,7 +423,7 @@ msgstr "Entidades por categoría"
 
 msgctxt "model:ir.action,name:act_party_configuration_form"
 msgid "Party Configuration"
-msgstr "Configuración de Entidades"
+msgstr "Configuración de entidades"
 
 msgctxt "model:ir.action,name:act_party_form"
 msgid "Parties"
@@ -459,11 +463,11 @@ msgstr "Configuración"
 
 msgctxt "model:ir.ui.menu,name:menu_party"
 msgid "Party"
-msgstr "Gestión de entidades"
+msgstr "Entidades"
 
 msgctxt "model:ir.ui.menu,name:menu_party_configuration"
 msgid "Party Configuration"
-msgstr "Configuración de Entidades"
+msgstr "Entidades"
 
 msgctxt "model:ir.ui.menu,name:menu_party_form"
 msgid "Parties"
@@ -487,7 +491,7 @@ msgstr "Comprobar VIES"
 
 msgctxt "model:party.configuration,name:"
 msgid "Party Configuration"
-msgstr "Configuración de Entidades"
+msgstr "Configuración de entidades"
 
 msgctxt "model:party.contact_mechanism,name:"
 msgid "Contact Mechanism"
@@ -499,7 +503,7 @@ msgstr "Entidad"
 
 msgctxt "model:party.party-party.category,name:"
 msgid "Party - Category"
-msgstr "Entidad - Categoría"
+msgstr "Entidades - Categoría"
 
 msgctxt "model:res.group,name:group_party_admin"
 msgid "Party Administration"
@@ -571,7 +575,7 @@ msgstr "CUIT Resultados del Sistema de Intercambio de Información"
 
 msgctxt "view:party.configuration:"
 msgid "Party Configuration"
-msgstr "Configuración de Entidades"
+msgstr "Configuración de entidades"
 
 msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanism"
@@ -582,26 +586,10 @@ msgid "Contact Mechanisms"
 msgstr "Medios de contacto"
 
 msgctxt "view:party.party:"
-msgid "Account"
-msgstr "Cuenta"
-
-msgctxt "view:party.party:"
 msgid "Accounting"
 msgstr "Contabilidad"
 
 msgctxt "view:party.party:"
-msgid "Addresses"
-msgstr "Direcciones"
-
-msgctxt "view:party.party:"
-msgid "Categories"
-msgstr "Categorías"
-
-msgctxt "view:party.party:"
-msgid "Contact Mechanisms"
-msgstr "Medios de contacto"
-
-msgctxt "view:party.party:"
 msgid "General"
 msgstr "General"
 
@@ -617,10 +605,6 @@ msgctxt "view:party.party:"
 msgid "VAT"
 msgstr "CUIT"
 
-msgctxt "view:party.party:"
-msgid "_General"
-msgstr "_General"
-
 msgctxt "wizard_button:party.check_vies,no_result,end:"
 msgid "Ok"
 msgstr "Aceptar"
diff --git a/locale/es_CO.po b/locale/es_CO.po
index 9e82271..22bf96a 100644
--- a/locale/es_CO.po
+++ b/locale/es_CO.po
@@ -3,36 +3,34 @@ msgid ""
 msgstr "Content-Type: text/plain; charset=utf-8\n"
 
 msgctxt "error:party.address:"
-msgid "You can not modify the party of an address!"
-msgstr "¡No puede modificar el tercero de una dirección!"
+msgid "You can not modify the party of address \"%s\"."
+msgstr "Usted no puede modificar la dirección del  tercero \"%s\" "
 
 msgctxt "error:party.category:"
-msgid "The name of a party category must be unique by parent!"
-msgstr "¡El nombre de una categoría de tercero debe ser único por cada padre!"
-
-msgctxt "error:party.category:"
-msgid "You can not create recursive categories!"
-msgstr "¡No puede crear categorías recursivas!"
+msgid "Invalid category name \"%s\": You can not use \" / \" in name field."
+msgstr ""
+"Inválida categoría de nombre \"%s\":  Usted no puede usar \"/\" en el nombre"
+" del campo."
 
 msgctxt "error:party.category:"
-msgid "You can not use \" / \" in name field!"
-msgstr "¡No puede usar \" /\" en el campo nombre!"
+msgid "The name of a party category must be unique by parent."
+msgstr "¡El nombre de una categoría de tercero debe ser único por cada padre!"
 
 msgctxt "error:party.check_vies:"
 msgid "The VIES service is unavailable, try again later."
 msgstr "El servicio VIES no está disponible, inténtelo de nuevo más tarde"
 
 msgctxt "error:party.contact_mechanism:"
-msgid "You can not modify the party of a contact mechanism!"
-msgstr "¡No puede modificar el tercero de un medio de contacto!"
+msgid "You can not modify the party of contact mechanism \"%s\"."
+msgstr "Usted no puede modificar los medios de contacto del  tercero \"%s\" "
 
 msgctxt "error:party.party:"
-msgid "Invalid VAT number!"
-msgstr "¡El NIT no es válido!"
+msgid "Invalid VAT number \"%(vat)s\" on party \"%(party)s\"."
+msgstr "Inválido número NIT \"%(vat)s\" en tercero \"%(party)s\"."
 
 msgctxt "error:party.party:"
-msgid "The code of the party must be unique!"
-msgstr "¡El código del tercero debe ser único!"
+msgid "The code of the party must be unique."
+msgstr "El código del tercero debe ser único."
 
 msgctxt "field:party.address,active:"
 msgid "Active"
@@ -242,6 +240,10 @@ msgctxt "field:party.contact_mechanism,type:"
 msgid "Type"
 msgstr "Tipo"
 
+msgctxt "field:party.contact_mechanism,url:"
+msgid "URL"
+msgstr "URL"
+
 msgctxt "field:party.contact_mechanism,value:"
 msgid "Value"
 msgstr "Valor"
@@ -582,26 +584,10 @@ msgid "Contact Mechanisms"
 msgstr "Medios de Contacto"
 
 msgctxt "view:party.party:"
-msgid "Account"
-msgstr "Cuenta"
-
-msgctxt "view:party.party:"
 msgid "Accounting"
 msgstr "Contabilidad"
 
 msgctxt "view:party.party:"
-msgid "Addresses"
-msgstr "Direcciones"
-
-msgctxt "view:party.party:"
-msgid "Categories"
-msgstr "Categorías"
-
-msgctxt "view:party.party:"
-msgid "Contact Mechanisms"
-msgstr "Medios de Contacto"
-
-msgctxt "view:party.party:"
 msgid "General"
 msgstr "General"
 
@@ -617,10 +603,6 @@ msgctxt "view:party.party:"
 msgid "VAT"
 msgstr "NIT"
 
-msgctxt "view:party.party:"
-msgid "_General"
-msgstr "_General"
-
 msgctxt "wizard_button:party.check_vies,no_result,end:"
 msgid "Ok"
 msgstr "Aceptar"
diff --git a/locale/es_ES.po b/locale/es_ES.po
index ffa036f..5623465 100644
--- a/locale/es_ES.po
+++ b/locale/es_ES.po
@@ -3,35 +3,33 @@ msgid ""
 msgstr "Content-Type: text/plain; charset=utf-8\n"
 
 msgctxt "error:party.address:"
-msgid "You can not modify the party of an address!"
-msgstr "No puede modificar el tercero de una dirección."
+msgid "You can not modify the party of address \"%s\"."
+msgstr "No puede modificar el tercero de la dirección \"%s\"."
 
 msgctxt "error:party.category:"
-msgid "The name of a party category must be unique by parent!"
-msgstr "El nombre de la categoría de terceros debe ser único por padre."
-
-msgctxt "error:party.category:"
-msgid "You can not create recursive categories!"
-msgstr "No puede crear categorías recursivas."
+msgid "Invalid category name \"%s\": You can not use \" / \" in name field."
+msgstr ""
+"Nombre de categoría \"%s\" no es correcto: No puede utilizar \" / \" en el "
+"campo nombre."
 
 msgctxt "error:party.category:"
-msgid "You can not use \" / \" in name field!"
-msgstr "No puede usar \"/\" en el campo nombre."
+msgid "The name of a party category must be unique by parent."
+msgstr "El nombre de la categoría del tercero debe ser único según el padre."
 
 msgctxt "error:party.check_vies:"
 msgid "The VIES service is unavailable, try again later."
 msgstr "El servicio VIES no está disponible, inténtelo de nuevo más tarde."
 
 msgctxt "error:party.contact_mechanism:"
-msgid "You can not modify the party of a contact mechanism!"
-msgstr "No puede modificar el tercero de un medio de contacto."
+msgid "You can not modify the party of contact mechanism \"%s\"."
+msgstr "No puede modificar el tercer del contacto \"%s\"."
 
 msgctxt "error:party.party:"
-msgid "Invalid VAT number!"
-msgstr "El CIF/NIF no es correcto."
+msgid "Invalid VAT number \"%(vat)s\" on party \"%(party)s\"."
+msgstr "CIF/NIF \"%(vat)s\" del tercero \"%(party)s\", no es correcto."
 
 msgctxt "error:party.party:"
-msgid "The code of the party must be unique!"
+msgid "The code of the party must be unique."
 msgstr "El código del tercero debe ser único."
 
 msgctxt "field:party.address,active:"
@@ -172,11 +170,11 @@ msgstr "ID"
 
 msgctxt "field:party.configuration,party_lang:"
 msgid "Party Language"
-msgstr "Idioma tercero"
+msgstr "Idioma del tercero"
 
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
-msgstr "Secuencia tercero"
+msgstr "Secuencia del tercero"
 
 msgctxt "field:party.configuration,rec_name:"
 msgid "Name"
@@ -242,6 +240,10 @@ msgctxt "field:party.contact_mechanism,type:"
 msgid "Type"
 msgstr "Tipo"
 
+msgctxt "field:party.contact_mechanism,url:"
+msgid "URL"
+msgstr "URL"
+
 msgctxt "field:party.contact_mechanism,value:"
 msgid "Value"
 msgstr "Valor"
@@ -582,26 +584,10 @@ msgid "Contact Mechanisms"
 msgstr "Medios de contacto"
 
 msgctxt "view:party.party:"
-msgid "Account"
-msgstr "Cuenta"
-
-msgctxt "view:party.party:"
 msgid "Accounting"
 msgstr "Contabilidad"
 
 msgctxt "view:party.party:"
-msgid "Addresses"
-msgstr "Direcciones"
-
-msgctxt "view:party.party:"
-msgid "Categories"
-msgstr "Categorías"
-
-msgctxt "view:party.party:"
-msgid "Contact Mechanisms"
-msgstr "Medios de contacto"
-
-msgctxt "view:party.party:"
 msgid "General"
 msgstr "General"
 
@@ -617,10 +603,6 @@ msgctxt "view:party.party:"
 msgid "VAT"
 msgstr "CIF/NIF"
 
-msgctxt "view:party.party:"
-msgid "_General"
-msgstr "_General"
-
 msgctxt "wizard_button:party.check_vies,no_result,end:"
 msgid "Ok"
 msgstr "Aceptar"
diff --git a/locale/fr_FR.po b/locale/fr_FR.po
index 7e2f614..87d2b4f 100644
--- a/locale/fr_FR.po
+++ b/locale/fr_FR.po
@@ -3,38 +3,18 @@ msgid ""
 msgstr "Content-Type: text/plain; charset=utf-8\n"
 
 msgctxt "error:party.address:"
-msgid "You can not modify the party of an address!"
-msgstr "Vous ne pouvez pas modifier le tiers d'une addresse !"
-
-msgctxt "error:party.address:"
-msgid "You can not modify the party of an address!"
-msgstr "Vous ne pouvez pas modifier le tiers d'une addresse !"
-
-msgctxt "error:party.category:"
-msgid "The name of a party category must be unique by parent!"
-msgstr ""
-"Le nom d'une catégorie de tiers doit être unique pour un même parent !"
+msgid "You can not modify the party of address \"%s\"."
+msgstr "Vous ne pouvez modifier le tier de l'adresse \"%s\"."
 
 msgctxt "error:party.category:"
-msgid "The name of a party category must be unique by parent!"
+msgid "Invalid category name \"%s\": You can not use \" / \" in name field."
 msgstr ""
-"Le nom d'une catégorie de tiers doit être unique pour un même parent !"
-
-msgctxt "error:party.category:"
-msgid "You can not create recursive categories!"
-msgstr "Vous ne pouvez pas créer des catégories récursives !"
-
-msgctxt "error:party.category:"
-msgid "You can not create recursive categories!"
-msgstr "Vous ne pouvez pas créer des catégories récursives !"
+"Nom de catégorie \"%s\" invalide: vous ne pouvez utiliser \"/\" dans le "
+"champ nom. "
 
 msgctxt "error:party.category:"
-msgid "You can not use \" / \" in name field!"
-msgstr "Vous ne pouvez pas utiliser \" / \" dans le champ nom !"
-
-msgctxt "error:party.category:"
-msgid "You can not use \" / \" in name field!"
-msgstr "Vous ne pouvez pas utiliser \" / \" dans le champ nom !"
+msgid "The name of a party category must be unique by parent."
+msgstr "Le nom de la catégorie de tiers doit être unique pour un même parent."
 
 msgctxt "error:party.check_vies:"
 msgid "The VIES service is unavailable, try again later."
@@ -45,28 +25,16 @@ msgid "The VIES service is unavailable, try again later."
 msgstr "Le service VIES n'est pas disponible, veuillez essayer plus tard."
 
 msgctxt "error:party.contact_mechanism:"
-msgid "You can not modify the party of a contact mechanism!"
-msgstr "Vous ne pouvez pas modifiez le tiers d'un moyen de contact."
-
-msgctxt "error:party.contact_mechanism:"
-msgid "You can not modify the party of a contact mechanism!"
-msgstr "Vous ne pouvez pas modifiez le tiers d'un moyen de contact."
+msgid "You can not modify the party of contact mechanism \"%s\"."
+msgstr "Vous ne pouvez pas modifier le tier sur le moyen de contact \"%s\"."
 
 msgctxt "error:party.party:"
-msgid "Invalid VAT number!"
-msgstr "Numéro TVA non valide !"
+msgid "Invalid VAT number \"%(vat)s\" on party \"%(party)s\"."
+msgstr "Le numéro de TVA \"%(vat)s\" sur le tiers \"%(party)s\" est invalide."
 
 msgctxt "error:party.party:"
-msgid "Invalid VAT number!"
-msgstr "Numéro TVA non valide !"
-
-msgctxt "error:party.party:"
-msgid "The code of the party must be unique!"
-msgstr "Le code du tiers doit être unique !"
-
-msgctxt "error:party.party:"
-msgid "The code of the party must be unique!"
-msgstr "Le code du tiers doit être unique !"
+msgid "The code of the party must be unique."
+msgstr "Le code du tiers doit être unique."
 
 msgctxt "field:party.address,active:"
 msgid "Active"
@@ -276,6 +244,10 @@ msgctxt "field:party.contact_mechanism,type:"
 msgid "Type"
 msgstr "Type"
 
+msgctxt "field:party.contact_mechanism,url:"
+msgid "URL"
+msgstr "URL"
+
 msgctxt "field:party.contact_mechanism,value:"
 msgid "Value"
 msgstr "Valeur"
@@ -687,18 +659,6 @@ msgid "Accounting"
 msgstr "Comptabilité"
 
 msgctxt "view:party.party:"
-msgid "Addresses"
-msgstr "Adresses"
-
-msgctxt "view:party.party:"
-msgid "Categories"
-msgstr "Catégories"
-
-msgctxt "view:party.party:"
-msgid "Contact Mechanisms"
-msgstr "Moyens de contact"
-
-msgctxt "view:party.party:"
 msgid "General"
 msgstr "Général"
 
@@ -723,10 +683,6 @@ msgid "Party"
 msgstr "Tiers"
 
 msgctxt "view:party.party:"
-msgid "Properties"
-msgstr "Propriétés"
-
-msgctxt "view:party.party:"
 msgid "VAT"
 msgstr "TVA"
 
@@ -734,14 +690,6 @@ msgctxt "view:party.party:"
 msgid "VAT"
 msgstr "TVA"
 
-msgctxt "view:party.party:"
-msgid "_Accounting"
-msgstr "Compt_abilité"
-
-msgctxt "view:party.party:"
-msgid "_General"
-msgstr "_Général"
-
 msgctxt "wizard_button:party.check_vies,no_result,end:"
 msgid "Ok"
 msgstr "Ok"
diff --git a/locale/nl_NL.po b/locale/nl_NL.po
index 88a1422..21af37d 100644
--- a/locale/nl_NL.po
+++ b/locale/nl_NL.po
@@ -3,36 +3,32 @@ msgid ""
 msgstr "Content-Type: text/plain; charset=utf-8\n"
 
 msgctxt "error:party.address:"
-msgid "You can not modify the party of an address!"
-msgstr "U kunt niet de relatie van een adres veranderen!"
-
-msgctxt "error:party.category:"
-msgid "The name of a party category must be unique by parent!"
-msgstr "De naam van een relatie-categorie moet per niveau uniek zijn!"
+msgid "You can not modify the party of address \"%s\"."
+msgstr ""
 
 msgctxt "error:party.category:"
-msgid "You can not create recursive categories!"
-msgstr "U kunt geen recursieve categorieën aanmaken!"
+msgid "Invalid category name \"%s\": You can not use \" / \" in name field."
+msgstr ""
 
 msgctxt "error:party.category:"
-msgid "You can not use \" / \" in name field!"
-msgstr "Het \"/\" teken mag niet gebruikt worden in een naam veld!"
+msgid "The name of a party category must be unique by parent."
+msgstr ""
 
 msgctxt "error:party.check_vies:"
 msgid "The VIES service is unavailable, try again later."
 msgstr "De VIES is niet beschikbaar, probeer het later nog eens!"
 
 msgctxt "error:party.contact_mechanism:"
-msgid "You can not modify the party of a contact mechanism!"
-msgstr "U kunt niet de relatie van een contactmogelijkheid veranderen!"
+msgid "You can not modify the party of contact mechanism \"%s\"."
+msgstr ""
 
 msgctxt "error:party.party:"
-msgid "Invalid VAT number!"
-msgstr "Ongeldig BTW nummer!"
+msgid "Invalid VAT number \"%(vat)s\" on party \"%(party)s\"."
+msgstr ""
 
 msgctxt "error:party.party:"
-msgid "The code of the party must be unique!"
-msgstr "De relatie-code moet uniek zijn!"
+msgid "The code of the party must be unique."
+msgstr ""
 
 msgctxt "field:party.address,active:"
 msgid "Active"
@@ -243,6 +239,11 @@ msgctxt "field:party.contact_mechanism,type:"
 msgid "Type"
 msgstr "Type"
 
+#, fuzzy
+msgctxt "field:party.contact_mechanism,url:"
+msgid "URL"
+msgstr "URL"
+
 msgctxt "field:party.contact_mechanism,value:"
 msgid "Value"
 msgstr "Waarde"
@@ -589,18 +590,6 @@ msgid "Accounting"
 msgstr "Financieel"
 
 msgctxt "view:party.party:"
-msgid "Addresses"
-msgstr "Adressen"
-
-msgctxt "view:party.party:"
-msgid "Categories"
-msgstr "Categorieën"
-
-msgctxt "view:party.party:"
-msgid "Contact Mechanisms"
-msgstr "Contactmogelijkheden"
-
-msgctxt "view:party.party:"
 msgid "General"
 msgstr "Algemeen"
 
diff --git a/locale/ru_RU.po b/locale/ru_RU.po
index 70215be..5cb87fe 100644
--- a/locale/ru_RU.po
+++ b/locale/ru_RU.po
@@ -3,40 +3,40 @@ msgid ""
 msgstr "Content-Type: text/plain; charset=utf-8\n"
 
 msgctxt "error:party.address:"
-msgid "You can not modify the party of an address!"
-msgstr ""
+msgid "You can not modify the party of address \"%s\"."
+msgstr "Вы не можете изменить контрагента в адресе \"%s\"."
 
 msgctxt "error:party.category:"
-msgid "The name of a party category must be unique by parent!"
+msgid "Invalid category name \"%s\": You can not use \" / \" in name field."
 msgstr ""
+"Некорректное имя категории \"%s\": вы не можете использовать \" / \" в "
+"названии."
 
 msgctxt "error:party.category:"
-msgid "You can not create recursive categories!"
-msgstr "Вы не можете создавать рекурсивные категории!"
-
-msgctxt "error:party.category:"
-msgid "You can not use \" / \" in name field!"
+msgid "The name of a party category must be unique by parent."
 msgstr ""
+"Название категории должно быть уникальным в пределах каждого родительского "
+"узла."
 
 msgctxt "error:party.check_vies:"
 msgid "The VIES service is unavailable, try again later."
-msgstr ""
+msgstr "Служба VIES недоступна, попробуйте позже."
 
 msgctxt "error:party.contact_mechanism:"
-msgid "You can not modify the party of a contact mechanism!"
-msgstr ""
+msgid "You can not modify the party of contact mechanism \"%s\"."
+msgstr "Вы не можете изменить контрагента в контакнтых данных \"%s\"."
 
 msgctxt "error:party.party:"
-msgid "Invalid VAT number!"
-msgstr "Ошибка в номере ИНН"
+msgid "Invalid VAT number \"%(vat)s\" on party \"%(party)s\"."
+msgstr "Некорректный номер ИНН \"%(vat)s\" у контрагента \"%(party)s\"."
 
 msgctxt "error:party.party:"
-msgid "The code of the party must be unique!"
+msgid "The code of the party must be unique."
 msgstr "Код контрагента должен быть уникальным"
 
 msgctxt "field:party.address,active:"
 msgid "Active"
-msgstr "Активный"
+msgstr "Действующий"
 
 msgctxt "field:party.address,city:"
 msgid "City"
@@ -48,20 +48,19 @@ msgstr "Страна"
 
 msgctxt "field:party.address,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Дата создания"
 
 msgctxt "field:party.address,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "Создано пользователем"
 
-#, fuzzy
 msgctxt "field:party.address,full_address:"
 msgid "Full Address"
 msgstr "Полный адрес"
 
 msgctxt "field:party.address,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 msgctxt "field:party.address,name:"
 msgid "Name"
@@ -77,7 +76,7 @@ msgstr "Наименование"
 
 msgctxt "field:party.address,sequence:"
 msgid "Sequence"
-msgstr "Последовательность"
+msgstr "Нумерация"
 
 msgctxt "field:party.address,street:"
 msgid "Street"
@@ -93,11 +92,11 @@ msgstr "Подраздел"
 
 msgctxt "field:party.address,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Дата изменения"
 
 msgctxt "field:party.address,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "Изменено пользователем"
 
 msgctxt "field:party.address,zip:"
 msgid "Zip"
@@ -105,7 +104,7 @@ msgstr "Индекс"
 
 msgctxt "field:party.category,active:"
 msgid "Active"
-msgstr "Активный"
+msgstr "Действующий"
 
 msgctxt "field:party.category,childs:"
 msgid "Children"
@@ -113,15 +112,15 @@ msgstr "Подчиненый"
 
 msgctxt "field:party.category,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Дата создания"
 
 msgctxt "field:party.category,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "Создано пользователем"
 
 msgctxt "field:party.category,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 msgctxt "field:party.category,name:"
 msgid "Name"
@@ -129,7 +128,7 @@ msgstr "Наименование"
 
 msgctxt "field:party.category,parent:"
 msgid "Parent"
-msgstr "Основной"
+msgstr "Предок"
 
 msgctxt "field:party.category,rec_name:"
 msgid "Name"
@@ -137,47 +136,47 @@ msgstr "Наименование"
 
 msgctxt "field:party.category,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Дата изменения"
 
 msgctxt "field:party.category,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "Изменено пользователем"
 
 msgctxt "field:party.check_vies.no_result,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 msgctxt "field:party.check_vies.result,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 msgctxt "field:party.check_vies.result,parties_failed:"
 msgid "Parties Failed"
-msgstr ""
+msgstr "Контрагенты не прошедшие проверку"
 
 msgctxt "field:party.check_vies.result,parties_succeed:"
 msgid "Parties Succeed"
-msgstr ""
+msgstr "Контрагенты прошедшие проверку"
 
 msgctxt "field:party.configuration,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Дата создания"
 
 msgctxt "field:party.configuration,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "Создано пользователем"
 
 msgctxt "field:party.configuration,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 msgctxt "field:party.configuration,party_lang:"
 msgid "Party Language"
-msgstr ""
+msgstr "Язык контрагента"
 
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
-msgstr ""
+msgstr "Нумерация для контрагентов"
 
 msgctxt "field:party.configuration,rec_name:"
 msgid "Name"
@@ -185,15 +184,15 @@ msgstr "Наименование"
 
 msgctxt "field:party.configuration,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Дата изменения"
 
 msgctxt "field:party.configuration,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "Изменено пользователем"
 
 msgctxt "field:party.contact_mechanism,active:"
 msgid "Active"
-msgstr "Активный"
+msgstr "Действующий"
 
 msgctxt "field:party.contact_mechanism,comment:"
 msgid "Comment"
@@ -201,11 +200,11 @@ msgstr "Комментарии"
 
 msgctxt "field:party.contact_mechanism,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Дата создания"
 
 msgctxt "field:party.contact_mechanism,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "Создано пользователем"
 
 msgctxt "field:party.contact_mechanism,email:"
 msgid "E-Mail"
@@ -213,7 +212,7 @@ msgstr "Эл.почта"
 
 msgctxt "field:party.contact_mechanism,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 msgctxt "field:party.contact_mechanism,other_value:"
 msgid "Value"
@@ -229,20 +228,24 @@ msgstr "Наименование"
 
 msgctxt "field:party.contact_mechanism,sequence:"
 msgid "Sequence"
-msgstr "Последовательность"
+msgstr "Нумерация"
 
 msgctxt "field:party.contact_mechanism,sip:"
 msgid "SIP"
-msgstr ""
+msgstr "SIP"
 
 msgctxt "field:party.contact_mechanism,skype:"
 msgid "Skype"
-msgstr ""
+msgstr "Skype"
 
 msgctxt "field:party.contact_mechanism,type:"
 msgid "Type"
 msgstr "Тип"
 
+msgctxt "field:party.contact_mechanism,url:"
+msgid "URL"
+msgstr "Ссылка"
+
 msgctxt "field:party.contact_mechanism,value:"
 msgid "Value"
 msgstr "Значение"
@@ -253,15 +256,15 @@ msgstr "Сайт"
 
 msgctxt "field:party.contact_mechanism,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Дата изменения"
 
 msgctxt "field:party.contact_mechanism,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "Изменено пользователем"
 
 msgctxt "field:party.party,active:"
 msgid "Active"
-msgstr "Активный"
+msgstr "Действующий"
 
 msgctxt "field:party.party,addresses:"
 msgid "Addresses"
@@ -269,7 +272,7 @@ msgstr "Адреса"
 
 msgctxt "field:party.party,categories:"
 msgid "Categories"
-msgstr "Категория"
+msgstr "Категории"
 
 msgctxt "field:party.party,code:"
 msgid "Code"
@@ -281,19 +284,19 @@ msgstr "Длина Кода"
 
 msgctxt "field:party.party,code_readonly:"
 msgid "Code Readonly"
-msgstr ""
+msgstr "Код только для чтения"
 
 msgctxt "field:party.party,contact_mechanisms:"
 msgid "Contact Mechanisms"
-msgstr "Контактный способы"
+msgstr "Контактные способы"
 
 msgctxt "field:party.party,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Дата создания"
 
 msgctxt "field:party.party,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "Создано пользователем"
 
 msgctxt "field:party.party,email:"
 msgid "E-Mail"
@@ -309,7 +312,7 @@ msgstr "Полное наименование"
 
 msgctxt "field:party.party,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 msgctxt "field:party.party,lang:"
 msgid "Language"
@@ -319,7 +322,6 @@ msgctxt "field:party.party,mobile:"
 msgid "Mobile"
 msgstr "сот.телефон"
 
-#, fuzzy
 msgctxt "field:party.party,name:"
 msgid "Name"
 msgstr "Наименование"
@@ -350,27 +352,27 @@ msgstr "Сайт"
 
 msgctxt "field:party.party,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Дата изменения"
 
 msgctxt "field:party.party,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "Изменено пользователем"
 
 msgctxt "field:party.party-party.category,category:"
 msgid "Category"
-msgstr "Категории"
+msgstr "Категория"
 
 msgctxt "field:party.party-party.category,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Дата создания"
 
 msgctxt "field:party.party-party.category,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "Создано пользователем"
 
 msgctxt "field:party.party-party.category,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 msgctxt "field:party.party-party.category,party:"
 msgid "Party"
@@ -382,15 +384,15 @@ msgstr "Наименование"
 
 msgctxt "field:party.party-party.category,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Дата изменения"
 
 msgctxt "field:party.party-party.category,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "Изменено пользователем"
 
 msgctxt "help:party.configuration,party_lang:"
 msgid "The value set on this field will preset the language on new parties"
-msgstr ""
+msgstr "Значение этого поля задает язык по умолчанию у новых контрагентов"
 
 msgctxt "help:party.party,vat_country:"
 msgid "Setting VAT country will enable validation of the VAT number."
@@ -404,14 +406,13 @@ msgctxt "model:ir.action,name:act_address_form"
 msgid "Addresses"
 msgstr "Адреса"
 
-#, fuzzy
 msgctxt "model:ir.action,name:act_category_list"
 msgid "Categories"
-msgstr "Категория"
+msgstr "Категории"
 
 msgctxt "model:ir.action,name:act_category_tree"
 msgid "Categories"
-msgstr "Категория"
+msgstr "Категории"
 
 msgctxt "model:ir.action,name:act_party_by_category"
 msgid "Parties by Category"
@@ -419,7 +420,7 @@ msgstr "Контрагенты по категориям"
 
 msgctxt "model:ir.action,name:act_party_configuration_form"
 msgid "Party Configuration"
-msgstr "Настройка контрагентов"
+msgstr "Конфигурация контрагентов"
 
 msgctxt "model:ir.action,name:act_party_form"
 msgid "Parties"
@@ -427,7 +428,7 @@ msgstr "Контрагенты"
 
 msgctxt "model:ir.action,name:report_label"
 msgid "Labels"
-msgstr ""
+msgstr "Этикетки"
 
 msgctxt "model:ir.action,name:wizard_check_vies"
 msgid "Check VIES"
@@ -445,27 +446,25 @@ msgctxt "model:ir.ui.menu,name:menu_address_form"
 msgid "Addresses"
 msgstr "Адреса"
 
-#, fuzzy
 msgctxt "model:ir.ui.menu,name:menu_category_list"
 msgid "Categories"
-msgstr "Категория"
+msgstr "Категории"
 
 msgctxt "model:ir.ui.menu,name:menu_category_tree"
 msgid "Categories"
-msgstr "Категория"
+msgstr "Категории в виде дерева"
 
 msgctxt "model:ir.ui.menu,name:menu_configuration"
 msgid "Configuration"
 msgstr "Конфигурация"
 
-#, fuzzy
 msgctxt "model:ir.ui.menu,name:menu_party"
 msgid "Party"
-msgstr "Организации"
+msgstr "Контрагенты"
 
 msgctxt "model:ir.ui.menu,name:menu_party_configuration"
 msgid "Party Configuration"
-msgstr "Настройка контрагентов"
+msgstr "Конфигурация контрагентов"
 
 msgctxt "model:ir.ui.menu,name:menu_party_form"
 msgid "Parties"
@@ -477,23 +476,20 @@ msgstr "Адрес"
 
 msgctxt "model:party.category,name:"
 msgid "Category"
-msgstr "Категории"
+msgstr "Категория"
 
-#, fuzzy
 msgctxt "model:party.check_vies.no_result,name:"
 msgid "Check VIES"
 msgstr "Проверить VIES"
 
-#, fuzzy
 msgctxt "model:party.check_vies.result,name:"
 msgid "Check VIES"
 msgstr "Проверить VIES"
 
 msgctxt "model:party.configuration,name:"
 msgid "Party Configuration"
-msgstr "Настройка контрагентов"
+msgstr "Конфигурация контрагентов"
 
-#, fuzzy
 msgctxt "model:party.contact_mechanism,name:"
 msgid "Contact Mechanism"
 msgstr "Контактный способ"
@@ -520,11 +516,11 @@ msgstr "Факс"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "IRC"
-msgstr ""
+msgstr "IRC"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "Jabber"
-msgstr ""
+msgstr "Джаббер"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "Mobile"
@@ -540,11 +536,11 @@ msgstr "Телефон"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "SIP"
-msgstr ""
+msgstr "SIP"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "Skype"
-msgstr ""
+msgstr "Skype"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "Website"
@@ -554,37 +550,29 @@ msgctxt "view:party.address:"
 msgid "Addresses"
 msgstr "Адреса"
 
-msgctxt "view:party.address:"
-msgid "Job Function"
-msgstr "Должность"
-
-msgctxt "view:party.address:"
-msgid "Notes"
-msgstr "Комментарии"
-
 msgctxt "view:party.category:"
 msgid "Categories"
-msgstr "Категория"
+msgstr "Категории"
 
 msgctxt "view:party.category:"
 msgid "Category"
-msgstr "Категории"
+msgstr "Категория"
 
 msgctxt "view:party.check_vies.no_result:"
 msgid "VAT Information Exchange System"
-msgstr ""
+msgstr "Информационная служба VAT"
 
 msgctxt "view:party.check_vies.no_result:"
 msgid "You must have a recent version of \"vatnumber\" installed!"
-msgstr ""
+msgstr "Необходима актуальная установленная версия \"vatnumber\"!"
 
 msgctxt "view:party.check_vies.result:"
 msgid "VAT Information Exchange System Results"
-msgstr ""
+msgstr "Результаты поиска в информационной службе VAT"
 
 msgctxt "view:party.configuration:"
 msgid "Party Configuration"
-msgstr "Настройка контрагентов"
+msgstr "Конфигурация контрагентов"
 
 msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanism"
@@ -592,49 +580,17 @@ msgstr "Контактный способ"
 
 msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanisms"
-msgstr "Контактный способы"
-
-msgctxt "view:party.party:"
-msgid "Account in Bank"
-msgstr "Счет в банке"
+msgstr "Контактные способы"
 
 msgctxt "view:party.party:"
 msgid "Accounting"
 msgstr "Регистрационные данные"
 
 msgctxt "view:party.party:"
-msgid "Accounts in Banks"
-msgstr "Счета в банках"
-
-msgctxt "view:party.party:"
-msgid "Addresses"
-msgstr "Адреса"
-
-msgctxt "view:party.party:"
-msgid "Categories"
-msgstr "Категория"
-
-msgctxt "view:party.party:"
-msgid "Contact Mechanisms"
-msgstr "Контактный способы"
-
-msgctxt "view:party.party:"
-msgid "Contacts"
-msgstr "Контактные лица"
-
-msgctxt "view:party.party:"
-msgid "Document"
-msgstr "Документ"
-
-msgctxt "view:party.party:"
 msgid "General"
 msgstr "Основной"
 
 msgctxt "view:party.party:"
-msgid "Legal Document"
-msgstr "Регистрационный документ"
-
-msgctxt "view:party.party:"
 msgid "Parties"
 msgstr "Контрагенты"
 
@@ -646,12 +602,10 @@ msgctxt "view:party.party:"
 msgid "VAT"
 msgstr "ИНН"
 
-#, fuzzy
 msgctxt "wizard_button:party.check_vies,no_result,end:"
 msgid "Ok"
-msgstr "Да"
+msgstr "Ок"
 
-#, fuzzy
 msgctxt "wizard_button:party.check_vies,result,end:"
 msgid "Ok"
-msgstr "Да"
+msgstr "Ок"
diff --git a/party.py b/party.py
index 1694c99..b2ee7ac 100644
--- a/party.py
+++ b/party.py
@@ -34,8 +34,8 @@ class Party(ModelSQL, ModelView):
     name = fields.Char('Name', required=True, select=True,
         states=STATES, depends=DEPENDS)
     code = fields.Char('Code', required=True, select=True,
-        order_field="%(table)s.code_length %(order)s, " \
-            "%(table)s.code %(order)s",
+        order_field=("%(table)s.code_length %(order)s, "
+            "%(table)s.code %(order)s"),
         states={
             'readonly': Eval('code_readonly', True),
             },
@@ -77,14 +77,12 @@ class Party(ModelSQL, ModelView):
         super(Party, cls).__setup__()
         cls._sql_constraints = [
             ('code_uniq', 'UNIQUE(code)',
-             'The code of the party must be unique!')
-        ]
-        cls._constraints += [
-            ('check_vat', 'invalid_vat'),
+             'The code of the party must be unique.')
         ]
         cls._error_messages.update({
-            'invalid_vat': 'Invalid VAT number!',
-        })
+                'invalid_vat': ('Invalid VAT number "%(vat)s" on party '
+                    '"%(party)s".'),
+                })
         cls._order.insert(0, ('name', 'ASC'))
 
     @staticmethod
@@ -100,10 +98,9 @@ class Party(ModelSQL, ModelView):
         if Transaction().user == 0:
             return []
         Address = Pool().get('party.address')
-        fields_names = list(x for x in set(Address._fields.keys()
-                + Address._inherit_fields.keys())
-                if x not in ['id', 'create_uid', 'create_date',
-                    'write_uid', 'write_date'])
+        fields_names = list(x for x in Address._fields.keys()
+            if x not in ('id', 'create_uid', 'create_date',
+                'write_uid', 'write_date'))
         return [Address.default_get(fields_names)]
 
     @staticmethod
@@ -152,17 +149,17 @@ class Party(ModelSQL, ModelView):
         return ''
 
     @classmethod
-    def create(cls, values):
+    def create(cls, vlist):
         Sequence = Pool().get('ir.sequence')
         Configuration = Pool().get('party.configuration')
 
-        values = values.copy()
-        if not values.get('code'):
-            config = Configuration(1)
-            values['code'] = Sequence.get_id(config.party_sequence.id)
-
-        values['code_length'] = len(values['code'])
-        return super(Party, cls).create(values)
+        vlist = [x.copy() for x in vlist]
+        for values in vlist:
+            if not values.get('code'):
+                config = Configuration(1)
+                values['code'] = Sequence.get_id(config.party_sequence.id)
+            values['code_length'] = len(values['code'])
+        return super(Party, cls).create(vlist)
 
     @classmethod
     def write(cls, parties, vals):
@@ -179,17 +176,7 @@ class Party(ModelSQL, ModelView):
             default = {}
         default = default.copy()
         default['code'] = None
-        default['addresses'] = None
-        new_parties = []
-        for party in parties:
-            new_party = super(Party, cls).copy(party, default=default)
-            Address.copy([x.id for x in new_party.addresses],
-                    default={
-                        'party': new_party.id,
-                        })
-            new_parties.append(new_party)
-
-        return new_parties
+        return super(Party, cls).copy(parties, default=default)
 
     @classmethod
     def search_rec_name(cls, name, clause):
@@ -219,6 +206,12 @@ class Party(ModelSQL, ModelView):
                 return address
         return default_address
 
+    @classmethod
+    def validate(cls, parties):
+        super(Party, cls).validate(parties)
+        for party in parties:
+            party.check_vat()
+
     def check_vat(self):
         '''
         Check the VAT number depending of the country.
@@ -231,7 +224,7 @@ class Party(ModelSQL, ModelView):
         if not self.vat_country:
             return True
 
-        if not getattr(vatnumber, 'check_vat_' + \
+        if not getattr(vatnumber, 'check_vat_' +
                 self.vat_country.lower())(vat_number):
 
             #Check if user doesn't have put country code in number
@@ -241,8 +234,10 @@ class Party(ModelSQL, ModelView):
                     'vat_number': vat_number,
                     })
             else:
-                return False
-        return True
+                self.raise_user_error('invalid_vat', {
+                        'vat': vat_number,
+                        'party': self.rec_name,
+                        })
 
 
 class PartyCategory(ModelSQL):
@@ -292,9 +287,9 @@ class CheckVIES(Wizard):
     def __setup__(cls):
         super(CheckVIES, cls).__setup__()
         cls._error_messages.update({
-            'vies_unavailable': 'The VIES service is unavailable, ' \
-                    'try again later.',
-            })
+                'vies_unavailable': ('The VIES service is unavailable, '
+                    'try again later.'),
+                })
 
     def transition_check(self):
         Party = Pool().get('party.party')
diff --git a/party.xml b/party.xml
index 2cf86f0..006d73e 100644
--- a/party.xml
+++ b/party.xml
@@ -35,56 +35,12 @@ this repository contains the full copyright notices and license terms. -->
         <record model="ir.ui.view" id="party_view_tree">
             <field name="model">party.party</field>
             <field name="type">tree</field>
-            <field name="arch" type="xml">
-                <![CDATA[
-                <tree string="Parties">
-                    <field name="code"/>
-                    <field name="name"/>
-                    <field name="lang"/>
-                    <field name="vat_code"/>
-                </tree>
-                ]]>
-            </field>
+            <field name="name">party_tree</field>
         </record>
         <record model="ir.ui.view" id="party_view_form">
             <field name="model">party.party</field>
             <field name="type">form</field>
-            <field name="arch" type="xml">
-                <![CDATA[
-                <form string="Party" col="6">
-                    <label name="name"/>
-                    <field name="name" xexpand="1"/>
-                    <label name="code"/>
-                    <field name="code"/>
-                    <group col="20" colspan="2" id="checkboxes">
-                        <label name="active"/>
-                        <field name="active" xexpand="0" width="25"/>
-                        <!-- Add here some checkboxes ! -->
-                    </group>
-                    <notebook colspan="6">
-                        <page string="General" id="general">
-                            <field name="addresses" mode="form,tree" colspan="4"
-                                view_ids="party.address_view_form,party.address_view_tree_sequence"/>
-                            <group col="2" colspan="4" id="lang">
-                                <label name="lang"/>
-                                <field name="lang" widget="selection" xexpand="0"/>
-                            </group>
-                            <field name="contact_mechanisms" colspan="2"
-                                view_ids="party.contact_mechanism_view_tree_sequence"/>
-                            <field name="categories" colspan="2"
-                                view_ids="party.category_view_list"/>
-                        </page>
-                        <page string="Accounting" id="accounting">
-                            <separator string="VAT" colspan="4" id="vat"/>
-                            <label name="vat_country"/>
-                            <field name="vat_country"/>
-                            <label name="vat_number"/>
-                            <field name="vat_number"/>
-                        </page>
-                    </notebook>
-                </form>
-                ]]>
-            </field>
+            <field name="name">party_form</field>
         </record>
         <record model="ir.action.act_window" id="act_party_form">
             <field name="name">Parties</field>
@@ -160,29 +116,13 @@ this repository contains the full copyright notices and license terms. -->
         <record model="ir.ui.view" id="check_vies_no_result">
             <field name="model">party.check_vies.no_result</field>
             <field name="type">form</field>
-            <field name="arch" type="xml">
-                <![CDATA[
-                <form string="VAT Information Exchange System">
-                    <image name="tryton-dialog-information" xexpand="0" xfill="0"/>
-                    <label string="You must have a recent version of "vatnumber" installed!"
-                        id="vatnumber"
-                        yalign="0.0" xalign="0.0" xexpand="1"/>
-                </form>
-                ]]>
-            </field>
+            <field name="name">check_vies_no_result</field>
         </record>
 
         <record model="ir.ui.view" id="check_vies_result">
             <field name="model">party.check_vies.result</field>
             <field name="type">form</field>
-            <field name="arch" type="xml">
-                <![CDATA[
-                <form string="VAT Information Exchange System Results" col="1">
-                    <field name="parties_succeed"/>
-                    <field name="parties_failed"/>
-                </form>
-                ]]>
-            </field>
+            <field name="name">check_vies_result</field>
         </record>
 
     </data>
diff --git a/setup.py b/setup.py
index 6823c09..805e9cb 100644
--- a/setup.py
+++ b/setup.py
@@ -25,10 +25,10 @@ requires = []
 for dep in info.get('depends', []):
     if not re.match(r'(ir|res|webdav)(\W|$)', dep):
         requires.append('trytond_%s >= %s.%s, < %s.%s' %
-                (dep, major_version, minor_version, major_version,
-                    minor_version + 1))
+            (dep, major_version, minor_version, major_version,
+                minor_version + 1))
 requires.append('trytond >= %s.%s, < %s.%s' %
-        (major_version, minor_version, major_version, minor_version + 1))
+    (major_version, minor_version, major_version, minor_version + 1))
 
 setup(name='trytond_party',
     version=info.get('version', '0.0.1'),
@@ -36,16 +36,17 @@ setup(name='trytond_party',
     long_description=read('README'),
     author='Tryton',
     url='http://www.tryton.org/',
-    download_url="http://downloads.tryton.org/" + \
-        info.get('version', '0.0.1').rsplit('.', 1)[0] + '/',
+    download_url=("http://downloads.tryton.org/" +
+        info.get('version', '0.0.1').rsplit('.', 1)[0] + '/'),
     package_dir={'trytond.modules.party': '.'},
     packages=[
         'trytond.modules.party',
         'trytond.modules.party.tests',
         ],
     package_data={
-        'trytond.modules.party': info.get('xml', []) \
-            + ['tryton.cfg', 'locale/*.po', '*.odt', 'icons/*.svg'],
+        'trytond.modules.party': (info.get('xml', [])
+            + ['tryton.cfg', 'view/*.xml', 'locale/*.po', '*.odt',
+                'icons/*.svg']),
         },
     classifiers=[
         'Development Status :: 5 - Production/Stable',
@@ -57,6 +58,7 @@ setup(name='trytond_party',
         'Intended Audience :: Manufacturing',
         'License :: OSI Approved :: GNU General Public License (GPL)',
         'Natural Language :: Bulgarian',
+        'Natural Language :: Catalan',
         'Natural Language :: Czech',
         'Natural Language :: Dutch',
         'Natural Language :: English',
diff --git a/tests/test_party.py b/tests/test_party.py
index 87adf7f..2ac5e86 100644
--- a/tests/test_party.py
+++ b/tests/test_party.py
@@ -44,9 +44,9 @@ class PartyTestCase(unittest.TestCase):
         '''
         with Transaction().start(DB_NAME, USER,
                 context=CONTEXT) as transaction:
-            category1 = self.category.create({
-                'name': 'Category 1',
-                })
+            category1, = self.category.create([{
+                        'name': 'Category 1',
+                        }])
             self.assert_(category1.id)
             transaction.cursor.commit()
 
@@ -59,10 +59,10 @@ class PartyTestCase(unittest.TestCase):
                 ('name', '=', 'Category 1'),
                 ], limit=1)
 
-            category2 = self.category.create({
-                'name': 'Category 2',
-                'parent': category1.id,
-                })
+            category2, = self.category.create([{
+                        'name': 'Category 2',
+                        'parent': category1.id,
+                        }])
             self.assert_(category2.id)
 
             self.assertRaises(Exception, self.category.write,
@@ -76,9 +76,9 @@ class PartyTestCase(unittest.TestCase):
         '''
         with Transaction().start(DB_NAME, USER,
                 context=CONTEXT) as transaction:
-            party1 = self.party.create({
-                'name': 'Party 1',
-                })
+            party1, = self.party.create([{
+                        'name': 'Party 1',
+                        }])
             self.assert_(party1.id)
             transaction.cursor.commit()
 
@@ -91,9 +91,9 @@ class PartyTestCase(unittest.TestCase):
 
             code = party1.code
 
-            party2 = self.party.create({
-                'name': 'Party 2',
-                })
+            party2, = self.party.create([{
+                        'name': 'Party 2',
+                        }])
 
             self.assertRaises(Exception, self.party.write,
                 [party2], {
@@ -107,11 +107,11 @@ class PartyTestCase(unittest.TestCase):
         with Transaction().start(DB_NAME, USER, context=CONTEXT):
             party1, = self.party.search([], limit=1)
 
-            address = self.address.create({
-                'party': party1.id,
-                'street': 'St sample, 15',
-                'city': 'City',
-                })
+            address, = self.address.create([{
+                        'party': party1.id,
+                        'street': 'St sample, 15',
+                        'city': 'City',
+                        }])
             self.assert_(address.id)
 
 
diff --git a/tryton.cfg b/tryton.cfg
index 0732da8..1546871 100644
--- a/tryton.cfg
+++ b/tryton.cfg
@@ -1,5 +1,5 @@
 [tryton]
-version=2.6.0
+version=2.8.0
 depends:
     country
     ir
diff --git a/trytond_party.egg-info/PKG-INFO b/trytond_party.egg-info/PKG-INFO
index 1045038..dbe05e2 100644
--- a/trytond_party.egg-info/PKG-INFO
+++ b/trytond_party.egg-info/PKG-INFO
@@ -1,12 +1,12 @@
-Metadata-Version: 1.0
+Metadata-Version: 1.1
 Name: trytond-party
-Version: 2.6.0
+Version: 2.8.0
 Summary: Tryton module with parties and addresses
 Home-page: http://www.tryton.org/
 Author: Tryton
 Author-email: UNKNOWN
 License: GPL-3
-Download-URL: http://downloads.tryton.org/2.6/
+Download-URL: http://downloads.tryton.org/2.8/
 Description: trytond_party
         =============
         
@@ -53,6 +53,7 @@ Classifier: Intended Audience :: Legal Industry
 Classifier: Intended Audience :: Manufacturing
 Classifier: License :: OSI Approved :: GNU General Public License (GPL)
 Classifier: Natural Language :: Bulgarian
+Classifier: Natural Language :: Catalan
 Classifier: Natural Language :: Czech
 Classifier: Natural Language :: Dutch
 Classifier: Natural Language :: English
diff --git a/trytond_party.egg-info/SOURCES.txt b/trytond_party.egg-info/SOURCES.txt
index 5723344..bceb65a 100644
--- a/trytond_party.egg-info/SOURCES.txt
+++ b/trytond_party.egg-info/SOURCES.txt
@@ -38,4 +38,18 @@ trytond_party.egg-info/dependency_links.txt
 trytond_party.egg-info/entry_points.txt
 trytond_party.egg-info/not-zip-safe
 trytond_party.egg-info/requires.txt
-trytond_party.egg-info/top_level.txt
\ No newline at end of file
+trytond_party.egg-info/top_level.txt
+view/address_form.xml
+view/address_tree.xml
+view/address_tree_sequence.xml
+view/category_form.xml
+view/category_list.xml
+view/category_tree.xml
+view/check_vies_no_result.xml
+view/check_vies_result.xml
+view/configuration_form.xml
+view/contact_mechanism_form.xml
+view/contact_mechanism_tree.xml
+view/contact_mechanism_tree_sequence.xml
+view/party_form.xml
+view/party_tree.xml
\ No newline at end of file
diff --git a/trytond_party.egg-info/requires.txt b/trytond_party.egg-info/requires.txt
index 9c72731..3a53a8a 100644
--- a/trytond_party.egg-info/requires.txt
+++ b/trytond_party.egg-info/requires.txt
@@ -1,5 +1,5 @@
-trytond_country >= 2.6, < 2.7
-trytond >= 2.6, < 2.7
+trytond_country >= 2.8, < 2.9
+trytond >= 2.8, < 2.9
 
 [VAT]
 vatnumber
\ No newline at end of file
diff --git a/view/address_form.xml b/view/address_form.xml
new file mode 100644
index 0000000..4ccecca
--- /dev/null
+++ b/view/address_form.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton.  The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<form string="Addresses" col="6">
+    <label name="party"/>
+    <field name="party" colspan="5"/>
+    <label name="name"/>
+    <field name="name"/>
+    <group colspan="2" col="20" id="checkboxes">
+        <label name="active"/>
+        <field name="active"
+            xexpand="0" width="25"/>
+        <!-- Add here some checkboxes ! -->
+    </group>
+    <newline/>
+    <label name="street"/>
+    <field name="street"/>
+    <label name="streetbis"/>
+    <field name="streetbis"/>
+    <newline/>
+    <label name="zip"/>
+    <field name="zip"/>
+    <label name="city"/>
+    <field name="city"/>
+    <newline/>
+    <label name="country"/>
+    <field name="country" widget="selection"/>
+    <label name="subdivision"/>
+    <field name="subdivision" widget="selection"/>
+</form>
diff --git a/view/address_tree.xml b/view/address_tree.xml
new file mode 100644
index 0000000..3560ca9
--- /dev/null
+++ b/view/address_tree.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton.  The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<tree string="Addresses">
+    <field name="party"/>
+    <field name="name"/>
+    <field name="street"/>
+    <field name="streetbis"/>
+    <field name="zip"/>
+    <field name="city"/>
+    <field name="country"/>
+    <field name="subdivision"/>
+    <field name="active"/>
+</tree>
diff --git a/view/address_tree_sequence.xml b/view/address_tree_sequence.xml
new file mode 100644
index 0000000..4b6d64a
--- /dev/null
+++ b/view/address_tree_sequence.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton.  The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<tree string="Addresses" sequence="sequence">
+    <field name="name"/>
+    <field name="street"/>
+    <field name="streetbis"/>
+    <field name="zip"/>
+    <field name="city"/>
+    <field name="country"/>
+    <field name="subdivision" expand="1"/>
+</tree>
diff --git a/view/category_form.xml b/view/category_form.xml
new file mode 100644
index 0000000..776f950
--- /dev/null
+++ b/view/category_form.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton.  The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<form string="Category">
+    <label name="name"/>
+    <field name="name"/>
+    <label name="active"/>
+    <field name="active"/>
+    <label name="parent"/>
+    <field name="parent"/>
+</form>
diff --git a/view/category_list.xml b/view/category_list.xml
new file mode 100644
index 0000000..2d10151
--- /dev/null
+++ b/view/category_list.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton.  The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<tree string="Categories">
+    <field name="rec_name" expand="1"/>
+    <field name="active" tree_invisible="1"/>
+</tree>
diff --git a/view/category_tree.xml b/view/category_tree.xml
new file mode 100644
index 0000000..0a12511
--- /dev/null
+++ b/view/category_tree.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton.  The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<tree string="Categories" keyword_open="1">
+    <field name="name" expand="1"/>
+    <field name="parent" tree_invisible="1"/>
+    <field name="childs" tree_invisible="1"/>
+    <field name="active" tree_invisible="1"/>
+</tree>
diff --git a/view/check_vies_no_result.xml b/view/check_vies_no_result.xml
new file mode 100644
index 0000000..d8dae8e
--- /dev/null
+++ b/view/check_vies_no_result.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton.  The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<form string="VAT Information Exchange System">
+    <image name="tryton-dialog-information" xexpand="0" xfill="0"/>
+    <label string="You must have a recent version of "vatnumber" installed!"
+        id="vatnumber"
+        yalign="0.0" xalign="0.0" xexpand="1"/>
+</form>
+
diff --git a/view/check_vies_result.xml b/view/check_vies_result.xml
new file mode 100644
index 0000000..f8a6bbb
--- /dev/null
+++ b/view/check_vies_result.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton.  The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<form string="VAT Information Exchange System Results" col="1">
+    <field name="parties_succeed"/>
+    <field name="parties_failed"/>
+</form>
diff --git a/view/configuration_form.xml b/view/configuration_form.xml
new file mode 100644
index 0000000..60ad602
--- /dev/null
+++ b/view/configuration_form.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton.  The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<form string="Party Configuration">
+    <label name="party_sequence"/>
+    <field name="party_sequence"/>
+    <label name="party_lang" />
+    <field name="party_lang" widget="selection" />
+</form>
diff --git a/view/contact_mechanism_form.xml b/view/contact_mechanism_form.xml
new file mode 100644
index 0000000..0b3f9ba
--- /dev/null
+++ b/view/contact_mechanism_form.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton.  The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<form string="Contact Mechanism" col="6">
+    <label name="party"/>
+    <field name="party" colspan="5"/>
+    <label name="type"/>
+    <field name="type"/>
+    <group col="2" colspan="2" id="value">
+        <label name="other_value"/>
+        <field name="other_value"/>
+        <label name="website"/>
+        <field name="website" widget="url"/>
+        <label name="email"/>
+        <field name="email" widget="email"/>
+        <label name="skype"/>
+        <field name="skype" widget="callto"/>
+        <label name="sip"/>
+        <field name="sip" widget="sip"/>
+    </group>
+    <group col="20" colspan="2" id="checkboxes">
+        <label name="active"/>
+        <field name="active" 
+            xexpand="0" width="25"/>
+        <!-- Add here some checkboxes ! -->
+    </group>
+    <separator name="comment" colspan="6"/>
+    <field name="comment" colspan="6"/>
+</form>
diff --git a/view/contact_mechanism_tree.xml b/view/contact_mechanism_tree.xml
new file mode 100644
index 0000000..90d396b
--- /dev/null
+++ b/view/contact_mechanism_tree.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton.  The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<tree string="Contact Mechanisms">
+    <field name="party"/>
+    <field name="type"/>
+    <field name="value"/>
+</tree>
diff --git a/view/contact_mechanism_tree_sequence.xml b/view/contact_mechanism_tree_sequence.xml
new file mode 100644
index 0000000..2cc33f3
--- /dev/null
+++ b/view/contact_mechanism_tree_sequence.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton.  The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<tree string="Contact Mechanisms" sequence="sequence"
+    editable="bottom">
+    <field name="type"/>
+    <field name="value" expand="1"/>
+    <field name="url" widget="url"/>
+</tree>
diff --git a/view/party_form.xml b/view/party_form.xml
new file mode 100644
index 0000000..deef4d6
--- /dev/null
+++ b/view/party_form.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton.  The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<form string="Party" col="6">
+    <label name="name"/>
+    <field name="name" xexpand="1"/>
+    <label name="code"/>
+    <field name="code"/>
+    <group col="20" colspan="2" id="checkboxes">
+        <label name="active"/>
+        <field name="active" xexpand="0" width="25"/>
+        <!-- Add here some checkboxes ! -->
+    </group>
+    <notebook colspan="6">
+        <page string="General" id="general">
+            <field name="addresses" mode="form,tree" colspan="4"
+                view_ids="party.address_view_form,party.address_view_tree_sequence"/>
+            <group col="2" colspan="4" id="lang">
+                <label name="lang"/>
+                <field name="lang" widget="selection" xexpand="0"/>
+            </group>
+            <field name="contact_mechanisms" colspan="2"
+                view_ids="party.contact_mechanism_view_tree_sequence"/>
+            <field name="categories" colspan="2"
+                view_ids="party.category_view_list"/>
+        </page>
+        <page string="Accounting" id="accounting">
+            <separator string="VAT" colspan="4" id="vat"/>
+            <label name="vat_country"/>
+            <field name="vat_country" xexpand="0"/>
+            <label name="vat_number"/>
+            <field name="vat_number"/>
+        </page>
+    </notebook>
+</form>
+
diff --git a/view/party_tree.xml b/view/party_tree.xml
new file mode 100644
index 0000000..44a5674
--- /dev/null
+++ b/view/party_tree.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton.  The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<tree string="Parties">
+    <field name="code"/>
+    <field name="name"/>
+    <field name="lang"/>
+    <field name="vat_code"/>
+    <field name="active" tree_invisible="1"/>
+</tree>
commit 179ef47598a81a8e4c8969e9cbd77d95206d2063
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Sat Apr 27 18:44:45 2013 +0200

    Releasing debian version 2.6.0-4.

diff --git a/debian/changelog b/debian/changelog
index 44cca84..78f5ba3 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+tryton-modules-party (2.6.0-4) experimental; urgency=low
+
+  * Removing Daniel from Uploaders. Thanks for your work! (Closes: #704385).
+  * Improving update of major version in Depends.
+
+ -- Mathias Behrle <mathiasb at m9s.biz>  Sat, 27 Apr 2013 15:07:24 +0200
+
 tryton-modules-party (2.6.0-3) experimental; urgency=low
 
   * Updating Vcs-Git to correct address.
commit a5cf864d3494a9e333db62c79c3c82e9686f915f
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Sat Apr 27 14:54:48 2013 +0200

    Improving update of major version in Depends.
    
    Pulling the major version for Depends directly from the package version.
    Thanks to Ilya Melnikov for pushing the idea.

diff --git a/debian/control b/debian/control
index 562d11c..3e69e1e 100644
--- a/debian/control
+++ b/debian/control
@@ -13,8 +13,8 @@ X-Python-Version: >= 2.6
 Package: tryton-modules-party
 Architecture: all
 Depends:
- ${misc:Depends}, ${python:Depends}, tryton-server (>= 2.6),
- tryton-modules-country (>= 2.6), python-pkg-resources
+ ${misc:Depends}, ${python:Depends}, tryton-server (>= ${version:major}),
+ tryton-modules-country (>= ${version:major}), python-pkg-resources
 Recommends: python-vatnumber
 Description: Tryton Application Platform (Party Module)
  Tryton is a high-level general purpose application platform written in Python
diff --git a/debian/rules b/debian/rules
index 1ae0776..0f63ab4 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,5 +1,7 @@
 #!/usr/bin/make -f
 
+MAJOR := $(shell python setup.py --version | awk -F "." '{print $$1 "." $$2}')
+
 %:
 	dh ${@} --with python2
 
@@ -8,5 +10,8 @@ override_dh_auto_clean:
 
 	rm -rf *.egg-info
 
+override_dh_gencontrol:
+	dh_gencontrol -- -Vversion:major="$(MAJOR)"
+
 override_dh_builddeb:
 	dh_builddeb -- -Zxz -z9
commit d68c89ce435f04990efa0f03f58598c3af4119dd
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Sun Apr 21 23:32:42 2013 +0200

    Removing Daniel from Uploaders. Thanks for your work! (Closes: #704385).

diff --git a/debian/control b/debian/control
index 0665fd4..562d11c 100644
--- a/debian/control
+++ b/debian/control
@@ -2,7 +2,7 @@ Source: tryton-modules-party
 Section: python
 Priority: optional
 Maintainer: Debian Tryton Maintainers <maintainers at debian.tryton.org>
-Uploaders: Daniel Baumann <daniel at debian.org>, Mathias Behrle <mathiasb at m9s.biz>
+Uploaders: Mathias Behrle <mathiasb at m9s.biz>
 Build-Depends: debhelper (>= 9), python (>= 2.6.6-3~), python-setuptools
 Standards-Version: 3.9.4
 Homepage: http://www.tryton.org/
commit 98374db5dd0d95cb623a3b83d018d79f4e124e1d
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Sat Mar 23 15:04:07 2013 +0100

    Releasing debian version 2.6.0-3.

diff --git a/debian/changelog b/debian/changelog
index eafd353..44cca84 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+tryton-modules-party (2.6.0-3) experimental; urgency=low
+
+  * Updating Vcs-Git to correct address.
+  * Adding watch file. Thanks to Bart Martens <bartm at debian.org>.
+
+ -- Mathias Behrle <mathiasb at m9s.biz>  Sat, 23 Mar 2013 14:00:47 +0100
+
 tryton-modules-party (2.6.0-2) experimental; urgency=low
 
   * Removing obsolete Dm-Upload-Allowed
commit 748ceb7bdb638c49304610ec05169ced92be98c9
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Sat Mar 23 13:52:32 2013 +0100

    Adding watch file. Thanks to Bart Martens <bartm at debian.org>.

diff --git a/debian/watch b/debian/watch
new file mode 100644
index 0000000..2a7101d
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,2 @@
+version=3
+http://downloads.tryton.org/current/ .*trytond_party-(\d.*)\.(?:tgz|tbz2|txz|tar\.(?:gz|bz2|xz))
commit 61f3f09e7136c05a7ca8a2012824f4c4b0d159e9
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Sat Feb 23 20:08:10 2013 +0100

    Updating Vcs-Git to correct address.

diff --git a/debian/control b/debian/control
index 1952b86..0665fd4 100644
--- a/debian/control
+++ b/debian/control
@@ -7,7 +7,7 @@ Build-Depends: debhelper (>= 9), python (>= 2.6.6-3~), python-setuptools
 Standards-Version: 3.9.4
 Homepage: http://www.tryton.org/
 Vcs-Browser: http://debian.tryton.org/gitweb/?p=packages/tryton-modules-party.git
-Vcs-Git: git://debian.tryton.org/git/packages/tryton-modules-party.git
+Vcs-Git: git://debian.tryton.org/packages/tryton-modules-party.git
 X-Python-Version: >= 2.6
 
 Package: tryton-modules-party
commit c66a518b8f4a6c16781d06872a36cecaa1f8cefb
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Sun Feb 17 13:50:42 2013 +0100

    Releasing debian version 2.6.0-2.

diff --git a/debian/changelog b/debian/changelog
index 2969e25..eafd353 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+tryton-modules-party (2.6.0-2) experimental; urgency=low
+
+  * Removing obsolete Dm-Upload-Allowed
+  * Fixing typo in description (Closes: #699769).
+  * Updating to Standards-Version: 3.9.4, no changes needed.
+  * Updating copyright.
+
+ -- Mathias Behrle <mathiasb at m9s.biz>  Sat, 16 Feb 2013 21:40:28 +0100
+
 tryton-modules-party (2.6.0-1) experimental; urgency=low
 
   * Merging upstream version 2.6.0.
commit c14c2e4fba0ca17aad5530595482b1a92221ed6d
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Sat Feb 16 21:29:20 2013 +0100

    Updating copyright.

diff --git a/debian/copyright b/debian/copyright
index 1109a20..58125a4 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -1,14 +1,13 @@
 Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
 
 Files: *
-Copyright:
-           2004-2008 Tiny SPRL
-           2008-2012 Cedric Krier
+Copyright: 2008-2012 Cédric Krier
            2008-2012 Bertrand Chenal
            2008-2012 B2CK SPRL
            2008-2011 Udo Spallek
            2008-2011 Korbinian Preisler
            2008-2011 virtual things
+           2004-2008 Tiny SPRL
 License: GPL-3+
 
 Files: icons/*
@@ -18,7 +17,7 @@ License: public-domain
 Files: debian/*
 Copyright:
            2009-2012 Daniel Baumann <daniel at debian.org>
-           2011-2012 Mathias Behrle <mathiasb at m9s.biz>
+           2011-2013 Mathias Behrle <mathiasb at m9s.biz>
 License: GPL-3+
 
 License: GPL-3+
commit ce73d5a72f4721c95069ce1ef404073935c27a40
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Fri Feb 15 19:28:32 2013 +0100

    Updating to Standards-Version: 3.9.4, no changes needed.

diff --git a/debian/control b/debian/control
index 8337dae..1952b86 100644
--- a/debian/control
+++ b/debian/control
@@ -4,7 +4,7 @@ Priority: optional
 Maintainer: Debian Tryton Maintainers <maintainers at debian.tryton.org>
 Uploaders: Daniel Baumann <daniel at debian.org>, Mathias Behrle <mathiasb at m9s.biz>
 Build-Depends: debhelper (>= 9), python (>= 2.6.6-3~), python-setuptools
-Standards-Version: 3.9.3
+Standards-Version: 3.9.4
 Homepage: http://www.tryton.org/
 Vcs-Browser: http://debian.tryton.org/gitweb/?p=packages/tryton-modules-party.git
 Vcs-Git: git://debian.tryton.org/git/packages/tryton-modules-party.git
commit a8409f00fa2bf65d87b97317a0ddcd0faeed5c71
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Thu Feb 14 20:59:27 2013 +0100

    Fixing typo in description (Closes: #699769).

diff --git a/debian/control b/debian/control
index 797943f..8337dae 100644
--- a/debian/control
+++ b/debian/control
@@ -21,4 +21,4 @@ Description: Tryton Application Platform (Party Module)
  and using PostgreSQL as database engine. It is the core base of a complete
  business solution.
  .
- This module provides the posssibility to define parties, addresses etc.
+ This module provides the possibility to define parties, addresses etc.
commit 1bf6f60867e195a5afdff29f9da355783208e3e5
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Wed Feb 13 21:37:13 2013 +0100

    Removing obsolete Dm-Upload-Allowed

diff --git a/debian/control b/debian/control
index ad24d8f..797943f 100644
--- a/debian/control
+++ b/debian/control
@@ -3,7 +3,6 @@ Section: python
 Priority: optional
 Maintainer: Debian Tryton Maintainers <maintainers at debian.tryton.org>
 Uploaders: Daniel Baumann <daniel at debian.org>, Mathias Behrle <mathiasb at m9s.biz>
-Dm-Upload-Allowed: yes
 Build-Depends: debhelper (>= 9), python (>= 2.6.6-3~), python-setuptools
 Standards-Version: 3.9.3
 Homepage: http://www.tryton.org/
commit 1ec2a5aa1ea3732da559d34fa249e6e10373665a
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Wed Oct 24 22:02:00 2012 +0200

    Releasing debian version 2.6.0-1.

diff --git a/debian/changelog b/debian/changelog
index af80f82..2969e25 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+tryton-modules-party (2.6.0-1) experimental; urgency=low
+
+  * Merging upstream version 2.6.0.
+  * Bumping versioned tryton depends to 2.6.
+
+ -- Mathias Behrle <mathiasb at m9s.biz>  Wed, 24 Oct 2012 14:24:37 +0200
+
 tryton-modules-party (2.4.0-2) experimental; urgency=low
 
   [ Daniel Baumann ]
commit ebc6791b0cb2cea761cfdddab118f42e7e8abc47
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Tue Oct 23 19:59:46 2012 +0200

    Bumping versioned tryton depends to 2.6.

diff --git a/debian/control b/debian/control
index 74535bd..ad24d8f 100644
--- a/debian/control
+++ b/debian/control
@@ -14,8 +14,8 @@ X-Python-Version: >= 2.6
 Package: tryton-modules-party
 Architecture: all
 Depends:
- ${misc:Depends}, ${python:Depends}, tryton-server (>= 2.4),
- tryton-modules-country (>= 2.4), python-pkg-resources
+ ${misc:Depends}, ${python:Depends}, tryton-server (>= 2.6),
+ tryton-modules-country (>= 2.6), python-pkg-resources
 Recommends: python-vatnumber
 Description: Tryton Application Platform (Party Module)
  Tryton is a high-level general purpose application platform written in Python
commit 0dd63688af0fb770f278d89f91d5cc57a9d989ce
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Tue Oct 23 19:53:37 2012 +0200

    Merging upstream version 2.6.0.

diff --git a/CHANGELOG b/CHANGELOG
index d26d157..23170cf 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+Version 2.6.0 - 2012-10-22
+* Bug fixes (see mercurial logs for details)
+
 Version 2.4.0 - 2012-04-24
 * Bug fixes (see mercurial logs for details)
 * Allow to have no Party Sequence
diff --git a/MANIFEST.in b/MANIFEST.in
index 44a0685..e4632a1 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -4,6 +4,7 @@ include TODO
 include COPYRIGHT
 include CHANGELOG
 include LICENSE
+include tryton.cfg
 include *.xml
 include *.odt
 include locale/*.po
diff --git a/PKG-INFO b/PKG-INFO
index 736842f..48774d1 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,13 +1,48 @@
 Metadata-Version: 1.0
 Name: trytond_party
-Version: 2.4.0
-Summary: Define parties, addresses and co.
+Version: 2.6.0
+Summary: Tryton module with parties and addresses
 Home-page: http://www.tryton.org/
-Author: B2CK
-Author-email: info at b2ck.com
+Author: Tryton
+Author-email: UNKNOWN
 License: GPL-3
-Download-URL: http://downloads.tryton.org/2.4/
-Description: UNKNOWN
+Download-URL: http://downloads.tryton.org/2.6/
+Description: trytond_party
+        =============
+        
+        The party module of the Tryton application platform.
+        
+        Installing
+        ----------
+        
+        See INSTALL
+        
+        Support
+        -------
+        
+        If you encounter any problems with Tryton, please don't hesitate to ask
+        questions on the Tryton bug tracker, mailing list, wiki or IRC channel:
+        
+          http://bugs.tryton.org/
+          http://groups.tryton.org/
+          http://wiki.tryton.org/
+          irc://irc.freenode.net/tryton
+        
+        License
+        -------
+        
+        See LICENSE
+        
+        Copyright
+        ---------
+        
+        See COPYRIGHT
+        
+        
+        For more information please visit the Tryton web site:
+        
+          http://www.tryton.org/
+        
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Environment :: Plugins
diff --git a/README b/README
index 2e6a715..1b63d8f 100644
--- a/README
+++ b/README
@@ -2,7 +2,6 @@ trytond_party
 =============
 
 The party module of the Tryton application platform.
-See __tryton__.py
 
 Installing
 ----------
diff --git a/__init__.py b/__init__.py
index af5a98e..5f25c2a 100644
--- a/__init__.py
+++ b/__init__.py
@@ -1,8 +1,25 @@
 #This file is part of Tryton.  The COPYRIGHT file at the top level of
 #this repository contains the full copyright notices and license terms.
 
+from trytond.pool import Pool
 from .category import *
 from .party import *
 from .address import *
 from .contact_mechanism import *
 from .configuration import *
+
+
+def register():
+    Pool.register(
+        Category,
+        Party,
+        PartyCategory,
+        CheckVIESResult,
+        CheckVIESNoResult,
+        Address,
+        ContactMechanism,
+        Configuration,
+        module='party', type_='model')
+    Pool.register(
+        CheckVIES,
+        module='party', type_='wizard')
diff --git a/__tryton__.py b/__tryton__.py
deleted file mode 100644
index b5066e0..0000000
--- a/__tryton__.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*- coding: utf-8 -*-
-#This file is part of Tryton.  The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
-{
-    'name': 'Party',
-    'name_bg_BG': 'Партньор',
-    'name_ca_ES': 'Tercers',
-    'name_de_DE': 'Parteien',
-    'name_es_AR': 'Entidades',
-    'name_es_CO': 'Terceros',
-    'name_es_ES': 'Terceros',
-    'name_fr_FR': 'Tiers',
-    'name_nl_NL': 'Relaties',
-    'name_ru_RU': 'Контрагенты',
-    'version': '2.4.0',
-    'author': 'B2CK',
-    'email': 'info at b2ck.com',
-    'website': 'http://www.tryton.org/',
-    'description': 'Define parties, addresses and co.',
-    'description_bg_BG': 'Задаване на партньори, адреси и тн.',
-    'description_ca_ES': 'Defineix tercers, adreces, etc.',
-    'description_de_DE': 'Ermöglicht die Erstellung von Parteien, Adressen, etc.',
-    'description_es_AR': 'Define entidades, direcciones, etc.',
-    'description_es_CO': 'Definición de terceros, direcciones, etc.',
-    'description_es_ES': 'Define terceros, direcciones, etc.',
-    'description_fr_FR': 'Définit des tiers, des adresses, etc.',
-    'description_nl_NL': 'Definieert relaties, adressen en bedrijven.',
-    'description_ru_RU': 'Определение контрагентов, адресов и тп.',
-    'depends': [
-        'ir',
-        'res',
-        'country',
-    ],
-    'xml': [
-        'party.xml',
-        'category.xml',
-        'address.xml',
-        'contact_mechanism.xml',
-        'configuration.xml',
-    ],
-    'translation': [
-        'locale/bg_BG.po',
-        'locale/ca_ES.po',
-        'locale/cs_CZ.po',
-        'locale/de_DE.po',
-        'locale/es_AR.po',
-        'locale/es_CO.po',
-        'locale/es_ES.po',
-        'locale/fr_FR.po',
-        'locale/nl_NL.po',
-        'locale/ru_RU.po',
-    ],
-}
diff --git a/address.py b/address.py
index 9d0d050..3017b89 100644
--- a/address.py
+++ b/address.py
@@ -3,7 +3,10 @@
 'Address'
 from trytond.model import ModelView, ModelSQL, fields
 from trytond.pyson import Eval, If
-from trytond.pool import Pool
+from trytond.transaction import Transaction
+from trytond.backend import TableHandler
+
+__all__ = ['Address']
 
 STATES = {
     'readonly': ~Eval('active'),
@@ -13,10 +16,9 @@ DEPENDS = ['active']
 
 class Address(ModelSQL, ModelView):
     "Address"
-    _name = 'party.address'
-    _description = __doc__
+    __name__ = 'party.address'
     party = fields.Many2One('party.party', 'Party', required=True,
-        ondelete='CASCADE', select=True,  states={
+        ondelete='CASCADE', select=True, states={
             'readonly': If(~Eval('active'), True, Eval('id', 0) > 0),
             },
         depends=['active', 'id'])
@@ -31,93 +33,92 @@ class Address(ModelSQL, ModelView):
             'Subdivision', domain=[('country', '=', Eval('country'))],
             states=STATES, depends=['active', 'country'])
     active = fields.Boolean('Active')
-    sequence = fields.Integer("Sequence", required=True)
+    sequence = fields.Integer("Sequence",
+        order_field='(%(table)s.sequence IS NULL) %(order)s, '
+        '%(table)s.sequence %(order)s')
     full_address = fields.Function(fields.Text('Full Address'),
             'get_full_address')
 
-    def __init__(self):
-        super(Address, self).__init__()
-        self._order.insert(0, ('party', 'ASC'))
-        self._order.insert(1, ('sequence', 'ASC'))
-        self._error_messages.update({
+    @classmethod
+    def __setup__(cls):
+        super(Address, cls).__setup__()
+        cls._order.insert(0, ('party', 'ASC'))
+        cls._order.insert(1, ('sequence', 'ASC'))
+        cls._error_messages.update({
             'write_party': 'You can not modify the party of an address!',
             })
 
-    def default_active(self):
+    @classmethod
+    def __register__(cls, module_name):
+        cursor = Transaction().cursor
+        table = TableHandler(cursor, cls, module_name)
+
+        super(Address, cls).__register__(module_name)
+
+        # Migration from 2.4: drop required on sequence
+        table.not_null_action('sequence', action='remove')
+
+    @staticmethod
+    def default_active():
         return True
 
-    def get_full_address(self, ids, name):
-        if not ids:
-            return {}
-        res = {}
-        for address in self.browse(ids):
-            res[address.id] = ''
-            if address.name:
-                res[address.id] += address.name
-            if address.street:
-                if res[address.id]:
-                    res[address.id] += '\n'
-                res[address.id] += address.street
-            if address.streetbis:
-                if res[address.id]:
-                    res[address.id] += '\n'
-                res[address.id] += address.streetbis
-            if address.zip or address.city:
-                if res[address.id]:
-                    res[address.id] += '\n'
-                if address.zip:
-                    res[address.id] += address.zip
-                if address.city:
-                    if res[address.id][-1:] != '\n':
-                        res[address.id] += ' '
-                    res[address.id] += address.city
-            if address.country or address.subdivision:
-                if res[address.id]:
-                    res[address.id] += '\n'
-                if address.subdivision:
-                    res[address.id] += address.subdivision.name
-                if address.country:
-                    if res[address.id][-1:] != '\n':
-                        res[address.id] += ' '
-                    res[address.id] += address.country.name
-        return res
+    def get_full_address(self, name):
+        full_address = ''
+        if self.name:
+            full_address = self.name
+        if self.street:
+            if full_address:
+                full_address += '\n'
+            full_address += self.street
+        if self.streetbis:
+            if full_address:
+                full_address += '\n'
+            full_address += self.streetbis
+        if self.zip or self.city:
+            if full_address:
+                full_address += '\n'
+            if self.zip:
+                full_address += self.zip
+            if self.city:
+                if full_address[-1:] != '\n':
+                    full_address += ' '
+                full_address += self.city
+        if self.country or self.subdivision:
+            if full_address:
+                full_address += '\n'
+            if self.subdivision:
+                full_address += self.subdivision.name
+            if self.country:
+                if full_address[-1:] != '\n':
+                    full_address += ' '
+                full_address += self.country.name
+        return full_address
 
-    def get_rec_name(self, ids, name):
-        if not ids:
-            return {}
-        res = {}
-        for address in self.browse(ids):
-            res[address.id] = ", ".join(x for x in [address.name,
-                address.party.rec_name, address.zip, address.city] if x)
-        return res
+    def get_rec_name(self, name):
+        return ", ".join(x for x in [self.name,
+                self.party.rec_name, self.zip, self.city] if x)
 
-    def search_rec_name(self, name, clause):
-        ids = self.search(['OR',
-            ('zip',) + clause[1:],
-            ('city',) + clause[1:],
-            ('name',) + clause[1:],
-            ], order=[])
-        if ids:
-            return [('id', 'in', ids)]
+    @classmethod
+    def search_rec_name(cls, name, clause):
+        addresses = cls.search(['OR',
+                ('zip',) + clause[1:],
+                ('city',) + clause[1:],
+                ('name',) + clause[1:],
+                ], order=[])
+        if addresses:
+            return [('id', 'in', [address.id for address in addresses])]
         return [('party',) + clause[1:]]
 
-    def write(self, ids, vals):
+    @classmethod
+    def write(cls, addresses, vals):
         if 'party' in vals:
-            if isinstance(ids, (int, long)):
-                ids = [ids]
-            for address in self.browse(ids):
+            for address in addresses:
                 if address.party.id != vals['party']:
-                    self.raise_user_error('write_party')
-        return super(Address, self).write(ids, vals)
-
-    def on_change_country(self, vals):
-        subdivision_obj = Pool().get('country.subdivision')
-        result = dict((k, vals.get(k))
-            for k in ('country', 'subdivision'))
-        if vals['subdivision']:
-            subdivision = subdivision_obj.browse(vals['subdivision'])
-            if subdivision.country.id != vals['country']:
-                result['subdivision'] = None
-        return result
+                    cls.raise_user_error('write_party')
+        super(Address, cls).write(addresses, vals)
 
-Address()
+    def on_change_country(self):
+        if (self.subdivision
+                and self.subdivision.country != self.country):
+            return {'subdivision': None}
+        return {}
diff --git a/category.py b/category.py
index dacca41..8ec6fe5 100644
--- a/category.py
+++ b/category.py
@@ -3,6 +3,8 @@
 from trytond.model import ModelView, ModelSQL, fields
 from trytond.pyson import Eval
 
+__all__ = ['Category']
+
 STATES = {
     'readonly': ~Eval('active'),
 }
@@ -13,8 +15,7 @@ SEPARATOR = ' / '
 
 class Category(ModelSQL, ModelView):
     "Category"
-    _name = "party.category"
-    _description = __doc__
+    __name__ = 'party.category'
     name = fields.Char('Name', required=True, states=STATES, translate=True,
         depends=DEPENDS)
     parent = fields.Many2One('party.category', 'Parent',
@@ -23,48 +24,39 @@ class Category(ModelSQL, ModelView):
        'Children', states=STATES, depends=DEPENDS)
     active = fields.Boolean('Active')
 
-    def __init__(self):
-        super(Category, self).__init__()
-        self._sql_constraints = [
+    @classmethod
+    def __setup__(cls):
+        super(Category, cls).__setup__()
+        cls._sql_constraints = [
             ('name_parent_uniq', 'UNIQUE(name, parent)',
                 'The name of a party category must be unique by parent!'),
         ]
-        self._constraints += [
+        cls._constraints += [
             ('check_recursion', 'recursive_categories'),
             ('check_name', 'wrong_name'),
         ]
-        self._error_messages.update({
+        cls._error_messages.update({
             'recursive_categories': 'You can not create recursive categories!',
             'wrong_name': 'You can not use "%s" in name field!' % SEPARATOR,
         })
-        self._order.insert(1, ('name', 'ASC'))
+        cls._order.insert(1, ('name', 'ASC'))
 
-    def default_active(self):
+    @staticmethod
+    def default_active():
         return True
 
-    def check_name(self, ids):
-        for category in self.browse(ids):
-            if SEPARATOR in category.name:
-                return False
+    def check_name(self):
+        if SEPARATOR in self.name:
+            return False
         return True
 
-    def get_rec_name(self, ids, name):
-        if not ids:
-            return {}
-        res = {}
-
-        def _name(category):
-            if category.id in res:
-                return res[category.id]
-            elif category.parent:
-                return _name(category.parent) + SEPARATOR + category.name
-            else:
-                return category.name
-        for category in self.browse(ids):
-            res[category.id] = _name(category)
-        return res
+    def get_rec_name(self, name):
+        if self.parent:
+            return self.parent.get_rec_name(name) + SEPARATOR + self.name
+        return self.name
 
-    def search_rec_name(self, name, clause):
+    @classmethod
+    def search_rec_name(cls, name, clause):
         if isinstance(clause[2], basestring):
             values = clause[2].split(SEPARATOR)
             values.reverse()
@@ -73,9 +65,7 @@ class Category(ModelSQL, ModelView):
             for name in values:
                 domain.append((field, clause[1], name))
                 field = 'parent.' + field
-            ids = self.search(domain, order=[])
-            return [('id', 'in', ids)]
+            categories = cls.search(domain, order=[])
+            return [('id', 'in', [category.id for category in categories])]
         #TODO Handle list
         return [('name',) + tuple(clause[1:])]
-
-Category()
diff --git a/configuration.py b/configuration.py
index 4266280..50b7a4a 100644
--- a/configuration.py
+++ b/configuration.py
@@ -2,11 +2,12 @@
 #this repository contains the full copyright notices and license terms.
 from trytond.model import ModelView, ModelSQL, ModelSingleton, fields
 
+__all__ = ['Configuration']
+
 
 class Configuration(ModelSingleton, ModelSQL, ModelView):
     'Party Configuration'
-    _name = 'party.configuration'
-    _description = __doc__
+    __name__ = 'party.configuration'
 
     party_sequence = fields.Property(fields.Many2One('ir.sequence',
             'Party Sequence', domain=[
@@ -15,5 +16,3 @@ class Configuration(ModelSingleton, ModelSQL, ModelView):
     party_lang = fields.Property(fields.Many2One("ir.lang", 'Party Language',
         help=('The value set on this field will preset the language on new '
             'parties')))
-
-Configuration()
diff --git a/contact_mechanism.py b/contact_mechanism.py
index cadee56..6dff452 100644
--- a/contact_mechanism.py
+++ b/contact_mechanism.py
@@ -2,6 +2,10 @@
 #this repository contains the full copyright notices and license terms.
 from trytond.model import ModelView, ModelSQL, fields
 from trytond.pyson import Eval
+from trytond.transaction import Transaction
+from trytond.backend import TableHandler
+
+__all__ = ['ContactMechanism']
 
 STATES = {
     'readonly': ~Eval('active'),
@@ -24,8 +28,7 @@ _TYPES = [
 
 class ContactMechanism(ModelSQL, ModelView):
     "Contact Mechanism"
-    _name = "party.contact_mechanism"
-    _description = __doc__
+    __name__ = 'party.contact_mechanism'
     _rec_name = 'value'
 
     type = fields.Selection(_TYPES, 'Type', required=True, states=STATES,
@@ -36,7 +39,9 @@ class ContactMechanism(ModelSQL, ModelView):
     party = fields.Many2One('party.party', 'Party', required=True,
         ondelete='CASCADE', states=STATES, select=True, depends=DEPENDS)
     active = fields.Boolean('Active', select=True)
-    sequence = fields.Integer('Sequence', required=True)
+    sequence = fields.Integer('Sequence',
+        order_field='(%(table)s.sequence IS NULL) %(order)s, '
+        '%(table)s.sequence %(order)s')
     email = fields.Function(fields.Char('E-Mail', states={
         'invisible': Eval('type') != 'email',
         'required': Eval('type') == 'email',
@@ -68,32 +73,42 @@ class ContactMechanism(ModelSQL, ModelView):
         }, on_change=['other_value'], depends=['value', 'type', 'active']),
         'get_value', setter='set_value')
 
-    def __init__(self):
-        super(ContactMechanism, self).__init__()
-        self._order.insert(0, ('party', 'ASC'))
-        self._order.insert(1, ('sequence', 'ASC'))
-        self._error_messages.update({
+    @classmethod
+    def __setup__(cls):
+        super(ContactMechanism, cls).__setup__()
+        cls._order.insert(0, ('party', 'ASC'))
+        cls._order.insert(1, ('sequence', 'ASC'))
+        cls._error_messages.update({
             'write_party': 'You can not modify the party of ' \
                     'a contact mechanism!',
             })
 
-    def default_type(self):
+    @classmethod
+    def __register__(cls, module_name):
+        cursor = Transaction().cursor
+        table = TableHandler(cursor, cls, module_name)
+
+        super(ContactMechanism, cls).__register__(module_name)
+
+        # Migration from 2.4: drop required on sequence
+        table.not_null_action('sequence', action='remove')
+
+    @staticmethod
+    def default_type():
         return 'phone'
 
-    def default_active(self):
+    @staticmethod
+    def default_active():
         return True
 
-    def get_value(self, ids, names):
-        res = {}
-        for name in names:
-            res[name] = {}
-        for mechanism in self.browse(ids):
-            for name in names:
-                res[name][mechanism.id] = mechanism.value
-        return res
-
-    def set_value(self, ids, name, value):
-        self.write(ids, {
+    @classmethod
+    def get_value(cls, mechanisms, names):
+        return dict((name, dict((m.id, m.value) for m in mechanisms))
+            for name in names)
+
+    @classmethod
+    def set_value(cls, mechanisms, name, value):
+        cls.write(mechanisms, {
             'value': value,
             })
 
@@ -105,33 +120,30 @@ class ContactMechanism(ModelSQL, ModelView):
             'skype': value,
             'sip': value,
             'other_value': value,
-        }
+            }
 
-    def on_change_value(self, vals):
-        return self._change_value(vals.get('value'))
+    def on_change_value(self):
+        return self._change_value(self.value)
 
-    def on_change_website(self, vals):
-        return self._change_value(vals.get('website'))
+    def on_change_website(self):
+        return self._change_value(self.website)
 
-    def on_change_email(self, vals):
-        return self._change_value(vals.get('email'))
+    def on_change_email(self):
+        return self._change_value(self.email)
 
-    def on_change_skype(self, vals):
-        return self._change_value(vals.get('skype'))
+    def on_change_skype(self):
+        return self._change_value(self.skype)
 
-    def on_change_sip(self, vals):
-        return self._change_value(vals.get('sip'))
+    def on_change_sip(self):
+        return self._change_value(self.sip)
 
-    def on_change_other_value(self, vals):
-        return self._change_value(vals.get('other_value'))
+    def on_change_other_value(self):
+        return self._change_value(self.other_value)
 
-    def write(self, ids, vals):
+    @classmethod
+    def write(cls, mechanisms, vals):
         if 'party' in vals:
-            if isinstance(ids, (int, long)):
-                ids = [ids]
-            for mechanism in self.browse(ids):
+            for mechanism in mechanisms:
                 if mechanism.party.id != vals['party']:
-                    self.raise_user_error('write_party')
-        return super(ContactMechanism, self).write(ids, vals)
-
-ContactMechanism()
+                    cls.raise_user_error('write_party')
+        super(ContactMechanism, cls).write(mechanisms, vals)
diff --git a/locale/bg_BG.po b/locale/bg_BG.po
index 7f703ef..0abeacb 100644
--- a/locale/bg_BG.po
+++ b/locale/bg_BG.po
@@ -108,7 +108,7 @@ msgstr "Активен"
 
 msgctxt "field:party.category,childs:"
 msgid "Children"
-msgstr "Деца"
+msgstr "Наследници"
 
 msgctxt "field:party.category,create_date:"
 msgid "Create Date"
@@ -280,7 +280,7 @@ msgstr "Дължина на кода"
 
 msgctxt "field:party.party,code_readonly:"
 msgid "Code Readonly"
-msgstr ""
+msgstr "Код (само за четене)"
 
 msgctxt "field:party.party,contact_mechanisms:"
 msgid "Contact Mechanisms"
diff --git a/locale/ca_ES.po b/locale/ca_ES.po
index 80a9c34..83e9170 100644
--- a/locale/ca_ES.po
+++ b/locale/ca_ES.po
@@ -4,19 +4,19 @@ msgstr "Content-Type: text/plain; charset=utf-8\n"
 
 msgctxt "error:party.address:"
 msgid "You can not modify the party of an address!"
-msgstr "No pot modificar el tercer d'una adreça"
+msgstr "No pot modificar el tercer d'una adreça."
 
 msgctxt "error:party.category:"
 msgid "The name of a party category must be unique by parent!"
-msgstr ""
+msgstr "No pot usar \"/\" en el camp nomeni."
 
 msgctxt "error:party.category:"
 msgid "You can not create recursive categories!"
-msgstr "No pot crear categories recursives"
+msgstr "No pot crear categories recursives."
 
 msgctxt "error:party.category:"
 msgid "You can not use \" / \" in name field!"
-msgstr ""
+msgstr "No pot usar \"/\" en el camp nomeni."
 
 msgctxt "error:party.check_vies:"
 msgid "The VIES service is unavailable, try again later."
@@ -24,11 +24,11 @@ msgstr "El servei VIES no està disponible, intenti-ho de nou més tard"
 
 msgctxt "error:party.contact_mechanism:"
 msgid "You can not modify the party of a contact mechanism!"
-msgstr "No pot modificar el tercer d'un contacte"
+msgstr "No pot modificar el tercer d'un contacte."
 
 msgctxt "error:party.party:"
 msgid "Invalid VAT number!"
-msgstr "El NIF no és vàlid"
+msgstr "El CIF/NIF no és vàlid"
 
 msgctxt "error:party.party:"
 msgid "The code of the party must be unique!"
@@ -48,20 +48,19 @@ msgstr "País"
 
 msgctxt "field:party.address,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Data creació"
 
-#, fuzzy
 msgctxt "field:party.address,create_uid:"
 msgid "Create User"
-msgstr "Crear usuari"
+msgstr "Usuari creació"
 
 msgctxt "field:party.address,full_address:"
 msgid "Full Address"
-msgstr ""
+msgstr "Adreça completa"
 
 msgctxt "field:party.address,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 msgctxt "field:party.address,name:"
 msgid "Name"
@@ -93,11 +92,11 @@ msgstr "Subdivisió"
 
 msgctxt "field:party.address,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Data modificació"
 
 msgctxt "field:party.address,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "Usuari modificació"
 
 msgctxt "field:party.address,zip:"
 msgid "Zip"
@@ -113,16 +112,15 @@ msgstr "Fills"
 
 msgctxt "field:party.category,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Data creació"
 
-#, fuzzy
 msgctxt "field:party.category,create_uid:"
 msgid "Create User"
-msgstr "Crear usuari"
+msgstr "Usuari creació"
 
 msgctxt "field:party.category,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 msgctxt "field:party.category,name:"
 msgid "Name"
@@ -138,62 +136,59 @@ msgstr "Nom"
 
 msgctxt "field:party.category,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Data modificació"
 
 msgctxt "field:party.category,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "Usuari modificació"
 
 msgctxt "field:party.check_vies.no_result,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 msgctxt "field:party.check_vies.result,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 msgctxt "field:party.check_vies.result,parties_failed:"
 msgid "Parties Failed"
-msgstr ""
+msgstr "Tercer erroni"
 
 msgctxt "field:party.check_vies.result,parties_succeed:"
 msgid "Parties Succeed"
-msgstr ""
+msgstr "Tercer correcte"
 
 msgctxt "field:party.configuration,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Data creació"
 
-#, fuzzy
 msgctxt "field:party.configuration,create_uid:"
 msgid "Create User"
-msgstr "Crear usuari"
+msgstr "Usuari creació"
 
 msgctxt "field:party.configuration,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
-#, fuzzy
 msgctxt "field:party.configuration,party_lang:"
 msgid "Party Language"
 msgstr "Idioma del tercer"
 
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
-msgstr ""
+msgstr "Seqüència tercer"
 
-#, fuzzy
 msgctxt "field:party.configuration,rec_name:"
 msgid "Name"
-msgstr "Nom del camp"
+msgstr "Nom"
 
 msgctxt "field:party.configuration,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Data modificació"
 
 msgctxt "field:party.configuration,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "Usuari modificació"
 
 msgctxt "field:party.contact_mechanism,active:"
 msgid "Active"
@@ -205,12 +200,11 @@ msgstr "Comentari"
 
 msgctxt "field:party.contact_mechanism,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Data creació"
 
-#, fuzzy
 msgctxt "field:party.contact_mechanism,create_uid:"
 msgid "Create User"
-msgstr "Crear usuari"
+msgstr "Usuari creació"
 
 msgctxt "field:party.contact_mechanism,email:"
 msgid "E-Mail"
@@ -218,7 +212,7 @@ msgstr "Correu electrònic"
 
 msgctxt "field:party.contact_mechanism,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 msgctxt "field:party.contact_mechanism,other_value:"
 msgid "Value"
@@ -258,11 +252,11 @@ msgstr "Lloc web"
 
 msgctxt "field:party.contact_mechanism,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Data modificació"
 
 msgctxt "field:party.contact_mechanism,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "Usuari modificació"
 
 msgctxt "field:party.party,active:"
 msgid "Active"
@@ -286,7 +280,7 @@ msgstr "Dígits del codi"
 
 msgctxt "field:party.party,code_readonly:"
 msgid "Code Readonly"
-msgstr ""
+msgstr "Codi només lectura"
 
 msgctxt "field:party.party,contact_mechanisms:"
 msgid "Contact Mechanisms"
@@ -294,12 +288,11 @@ msgstr "Mitjans de contacte"
 
 msgctxt "field:party.party,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Data creació"
 
-#, fuzzy
 msgctxt "field:party.party,create_uid:"
 msgid "Create User"
-msgstr "Crear usuari"
+msgstr "Usuari creació"
 
 msgctxt "field:party.party,email:"
 msgid "E-Mail"
@@ -311,11 +304,11 @@ msgstr "Fax"
 
 msgctxt "field:party.party,full_name:"
 msgid "Full Name"
-msgstr ""
+msgstr "Nom complet"
 
 msgctxt "field:party.party,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 msgctxt "field:party.party,lang:"
 msgid "Language"
@@ -339,7 +332,7 @@ msgstr "Nom"
 
 msgctxt "field:party.party,vat_code:"
 msgid "VAT Code"
-msgstr "NIF"
+msgstr "CIF/NIF"
 
 msgctxt "field:party.party,vat_country:"
 msgid "VAT Country"
@@ -347,7 +340,7 @@ msgstr "País del NIF"
 
 msgctxt "field:party.party,vat_number:"
 msgid "VAT Number"
-msgstr "NIF"
+msgstr "CIF/NIF"
 
 msgctxt "field:party.party,website:"
 msgid "Website"
@@ -355,11 +348,11 @@ msgstr "Lloc web"
 
 msgctxt "field:party.party,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Data modificació"
 
 msgctxt "field:party.party,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "Usuari modificació"
 
 msgctxt "field:party.party-party.category,category:"
 msgid "Category"
@@ -367,16 +360,15 @@ msgstr "Categoria"
 
 msgctxt "field:party.party-party.category,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Data creació"
 
-#, fuzzy
 msgctxt "field:party.party-party.category,create_uid:"
 msgid "Create User"
-msgstr "Crear usuari"
+msgstr "Usuari creació"
 
 msgctxt "field:party.party-party.category,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 msgctxt "field:party.party-party.category,party:"
 msgid "Party"
@@ -388,15 +380,16 @@ msgstr "Nom"
 
 msgctxt "field:party.party-party.category,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Data modificació"
 
 msgctxt "field:party.party-party.category,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "Usuari modificació"
 
 msgctxt "help:party.configuration,party_lang:"
 msgid "The value set on this field will preset the language on new parties"
 msgstr ""
+"El valor d'aquest camp serà el valor per defecte de l'idioma dels tercers."
 
 msgctxt "help:party.party,vat_country:"
 msgid "Setting VAT country will enable validation of the VAT number."
@@ -411,7 +404,6 @@ msgctxt "model:ir.action,name:act_address_form"
 msgid "Addresses"
 msgstr "Adreces"
 
-#, fuzzy
 msgctxt "model:ir.action,name:act_category_list"
 msgid "Categories"
 msgstr "Categories"
@@ -426,7 +418,7 @@ msgstr "Tercers per categoria"
 
 msgctxt "model:ir.action,name:act_party_configuration_form"
 msgid "Party Configuration"
-msgstr ""
+msgstr "Configuració de tercers"
 
 msgctxt "model:ir.action,name:act_party_form"
 msgid "Parties"
@@ -452,7 +444,6 @@ msgctxt "model:ir.ui.menu,name:menu_address_form"
 msgid "Addresses"
 msgstr "Adreces"
 
-#, fuzzy
 msgctxt "model:ir.ui.menu,name:menu_category_list"
 msgid "Categories"
 msgstr "Categories"
@@ -465,14 +456,13 @@ msgctxt "model:ir.ui.menu,name:menu_configuration"
 msgid "Configuration"
 msgstr "Configuració"
 
-#, fuzzy
 msgctxt "model:ir.ui.menu,name:menu_party"
 msgid "Party"
-msgstr "Gestió de tercers"
+msgstr "Tercers"
 
 msgctxt "model:ir.ui.menu,name:menu_party_configuration"
 msgid "Party Configuration"
-msgstr ""
+msgstr "Tercers"
 
 msgctxt "model:ir.ui.menu,name:menu_party_form"
 msgid "Parties"
@@ -486,19 +476,17 @@ msgctxt "model:party.category,name:"
 msgid "Category"
 msgstr "Categoria"
 
-#, fuzzy
 msgctxt "model:party.check_vies.no_result,name:"
 msgid "Check VIES"
-msgstr "Comprovar VIES"
+msgstr "Comprova VIES"
 
-#, fuzzy
 msgctxt "model:party.check_vies.result,name:"
 msgid "Check VIES"
-msgstr "Comprovar VIES"
+msgstr "Comprova VIES"
 
 msgctxt "model:party.configuration,name:"
 msgid "Party Configuration"
-msgstr ""
+msgstr "Configuració de tercers"
 
 msgctxt "model:party.contact_mechanism,name:"
 msgid "Contact Mechanism"
@@ -570,19 +558,19 @@ msgstr "Categoria"
 
 msgctxt "view:party.check_vies.no_result:"
 msgid "VAT Information Exchange System"
-msgstr ""
+msgstr "Sistema d'intercanvi d'informació CIF/NIF"
 
 msgctxt "view:party.check_vies.no_result:"
 msgid "You must have a recent version of \"vatnumber\" installed!"
-msgstr ""
+msgstr "Ha de tenir instal·lada una versió recent de \"vatnumber\"."
 
 msgctxt "view:party.check_vies.result:"
 msgid "VAT Information Exchange System Results"
-msgstr ""
+msgstr "Resultat del sistema d'intercanvi d'informació CIF/NIF"
 
 msgctxt "view:party.configuration:"
 msgid "Party Configuration"
-msgstr ""
+msgstr "Configuració de tercers"
 
 msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanism"
@@ -626,18 +614,16 @@ msgstr "Tercer"
 
 msgctxt "view:party.party:"
 msgid "VAT"
-msgstr "NIF"
+msgstr "CIF/NIF"
 
 msgctxt "view:party.party:"
 msgid "_General"
 msgstr "_General"
 
-#, fuzzy
 msgctxt "wizard_button:party.check_vies,no_result,end:"
 msgid "Ok"
-msgstr "Acceptar"
+msgstr "Accepta"
 
-#, fuzzy
 msgctxt "wizard_button:party.check_vies,result,end:"
 msgid "Ok"
-msgstr "Acceptar"
+msgstr "Accepta"
diff --git a/locale/es_AR.po b/locale/es_AR.po
index 0ff4618..ee63f1f 100644
--- a/locale/es_AR.po
+++ b/locale/es_AR.po
@@ -100,7 +100,7 @@ msgstr "Usuario modificación"
 
 msgctxt "field:party.address,zip:"
 msgid "Zip"
-msgstr "Código postal"
+msgstr "Código Postal"
 
 msgctxt "field:party.category,active:"
 msgid "Active"
@@ -284,7 +284,7 @@ msgstr "Código de sólo lectura"
 
 msgctxt "field:party.party,contact_mechanisms:"
 msgid "Contact Mechanisms"
-msgstr "Médios de contacto"
+msgstr "Medios de contacto"
 
 msgctxt "field:party.party,create_date:"
 msgid "Create Date"
@@ -394,12 +394,12 @@ msgstr ""
 msgctxt "help:party.party,vat_country:"
 msgid "Setting VAT country will enable validation of the VAT number."
 msgstr ""
-"Al especificar el país del NIF se habilitará la verificación de dicho "
+"Al especificar el país del CUIT se habilitará la verificación de dicho "
 "número."
 
 msgctxt "help:party.party,vat_number:"
 msgid "Value Added Tax number"
-msgstr "Número de identificación fiscal"
+msgstr "Número de Identificación Fiscal"
 
 msgctxt "model:ir.action,name:act_address_form"
 msgid "Addresses"
@@ -491,7 +491,7 @@ msgstr "Configuración de Entidades"
 
 msgctxt "model:party.contact_mechanism,name:"
 msgid "Contact Mechanism"
-msgstr "Médio de contacto"
+msgstr "Medio de contacto"
 
 msgctxt "model:party.party,name:"
 msgid "Party"
@@ -563,7 +563,7 @@ msgstr "CUIT Sistema de Intercambio de Información"
 
 msgctxt "view:party.check_vies.no_result:"
 msgid "You must have a recent version of \"vatnumber\" installed!"
-msgstr "¡Debe tener una versión reciente de \"vatnumber\" instalada!"
+msgstr "¡Debe tener una versión reciente de «vatnumber» instalada!"
 
 msgctxt "view:party.check_vies.result:"
 msgid "VAT Information Exchange System Results"
@@ -575,11 +575,11 @@ msgstr "Configuración de Entidades"
 
 msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanism"
-msgstr "Médio de contacto"
+msgstr "Medio de contacto"
 
 msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanisms"
-msgstr "Médios de contacto"
+msgstr "Medios de contacto"
 
 msgctxt "view:party.party:"
 msgid "Account"
@@ -599,7 +599,7 @@ msgstr "Categorías"
 
 msgctxt "view:party.party:"
 msgid "Contact Mechanisms"
-msgstr "Médios de contacto"
+msgstr "Medios de contacto"
 
 msgctxt "view:party.party:"
 msgid "General"
diff --git a/locale/es_CO.po b/locale/es_CO.po
index e5023a3..9e82271 100644
--- a/locale/es_CO.po
+++ b/locale/es_CO.po
@@ -4,35 +4,35 @@ msgstr "Content-Type: text/plain; charset=utf-8\n"
 
 msgctxt "error:party.address:"
 msgid "You can not modify the party of an address!"
-msgstr "No puede modificar el tercero de una dirección!"
+msgstr "¡No puede modificar el tercero de una dirección!"
 
 msgctxt "error:party.category:"
 msgid "The name of a party category must be unique by parent!"
-msgstr ""
+msgstr "¡El nombre de una categoría de tercero debe ser único por cada padre!"
 
 msgctxt "error:party.category:"
 msgid "You can not create recursive categories!"
-msgstr "No puede crear categorías recursivas!"
+msgstr "¡No puede crear categorías recursivas!"
 
 msgctxt "error:party.category:"
 msgid "You can not use \" / \" in name field!"
-msgstr ""
+msgstr "¡No puede usar \" /\" en el campo nombre!"
 
 msgctxt "error:party.check_vies:"
 msgid "The VIES service is unavailable, try again later."
-msgstr "El servicio VIES no está disponible, intente más tarde."
+msgstr "El servicio VIES no está disponible, inténtelo de nuevo más tarde"
 
 msgctxt "error:party.contact_mechanism:"
 msgid "You can not modify the party of a contact mechanism!"
-msgstr "¡No puede modificar un tercero de un mecanismo de contacto!"
+msgstr "¡No puede modificar el tercero de un medio de contacto!"
 
 msgctxt "error:party.party:"
 msgid "Invalid VAT number!"
-msgstr "¡Número inválido!"
+msgstr "¡El NIT no es válido!"
 
 msgctxt "error:party.party:"
 msgid "The code of the party must be unique!"
-msgstr ""
+msgstr "¡El código del tercero debe ser único!"
 
 msgctxt "field:party.address,active:"
 msgid "Active"
@@ -48,24 +48,23 @@ msgstr "País"
 
 msgctxt "field:party.address,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Fecha de Creación"
 
-#, fuzzy
 msgctxt "field:party.address,create_uid:"
 msgid "Create User"
-msgstr "Crear usuario"
+msgstr "Creado por Usuario"
 
 msgctxt "field:party.address,full_address:"
 msgid "Full Address"
-msgstr ""
+msgstr "Dirección Completa"
 
 msgctxt "field:party.address,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 msgctxt "field:party.address,name:"
 msgid "Name"
-msgstr "Nombre de Contacto"
+msgstr "Contacto"
 
 msgctxt "field:party.address,party:"
 msgid "Party"
@@ -73,7 +72,7 @@ msgstr "Tercero"
 
 msgctxt "field:party.address,rec_name:"
 msgid "Name"
-msgstr "Nombre"
+msgstr "Contacto"
 
 msgctxt "field:party.address,sequence:"
 msgid "Sequence"
@@ -93,11 +92,11 @@ msgstr "Subdivisión"
 
 msgctxt "field:party.address,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Fecha de Modificación"
 
 msgctxt "field:party.address,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "Modificado por Usuario"
 
 msgctxt "field:party.address,zip:"
 msgid "Zip"
@@ -109,20 +108,19 @@ msgstr "Activo"
 
 msgctxt "field:party.category,childs:"
 msgid "Children"
-msgstr "Hij at s"
+msgstr "Hijos"
 
 msgctxt "field:party.category,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Fecha de Creación"
 
-#, fuzzy
 msgctxt "field:party.category,create_uid:"
 msgid "Create User"
-msgstr "Crear usuario"
+msgstr "Creado por Usuario"
 
 msgctxt "field:party.category,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 msgctxt "field:party.category,name:"
 msgid "Name"
@@ -138,62 +136,59 @@ msgstr "Nombre"
 
 msgctxt "field:party.category,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Fecha de Modificación"
 
 msgctxt "field:party.category,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "Modificado por Usuario"
 
 msgctxt "field:party.check_vies.no_result,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 msgctxt "field:party.check_vies.result,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 msgctxt "field:party.check_vies.result,parties_failed:"
 msgid "Parties Failed"
-msgstr ""
+msgstr "Terceros Fallidos"
 
 msgctxt "field:party.check_vies.result,parties_succeed:"
 msgid "Parties Succeed"
-msgstr ""
+msgstr "Terceros Corrrectos"
 
 msgctxt "field:party.configuration,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Fecha de Creación"
 
-#, fuzzy
 msgctxt "field:party.configuration,create_uid:"
 msgid "Create User"
-msgstr "Crear usuario"
+msgstr "Creado por Usuario"
 
 msgctxt "field:party.configuration,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
-#, fuzzy
 msgctxt "field:party.configuration,party_lang:"
 msgid "Party Language"
 msgstr "Idioma del Tercero"
 
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
-msgstr ""
+msgstr "Secuencia de Terceros"
 
-#, fuzzy
 msgctxt "field:party.configuration,rec_name:"
 msgid "Name"
-msgstr "Nombre de Contacto"
+msgstr "Nombre"
 
 msgctxt "field:party.configuration,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Fecha de Modificación"
 
 msgctxt "field:party.configuration,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "Modificado por Usuario"
 
 msgctxt "field:party.contact_mechanism,active:"
 msgid "Active"
@@ -205,12 +200,11 @@ msgstr "Comentario"
 
 msgctxt "field:party.contact_mechanism,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Fecha de Creación"
 
-#, fuzzy
 msgctxt "field:party.contact_mechanism,create_uid:"
 msgid "Create User"
-msgstr "Crear usuario"
+msgstr "Creado por Usuario"
 
 msgctxt "field:party.contact_mechanism,email:"
 msgid "E-Mail"
@@ -218,7 +212,7 @@ msgstr "Correo electrónico"
 
 msgctxt "field:party.contact_mechanism,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 msgctxt "field:party.contact_mechanism,other_value:"
 msgid "Value"
@@ -258,11 +252,11 @@ msgstr "Sitio Web"
 
 msgctxt "field:party.contact_mechanism,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Fecha de Modificación"
 
 msgctxt "field:party.contact_mechanism,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "Modificado por Usuario"
 
 msgctxt "field:party.party,active:"
 msgid "Active"
@@ -282,24 +276,23 @@ msgstr "Código"
 
 msgctxt "field:party.party,code_length:"
 msgid "Code Length"
-msgstr "Longitud del Código"
+msgstr "Dígitos del Código"
 
 msgctxt "field:party.party,code_readonly:"
 msgid "Code Readonly"
-msgstr ""
+msgstr "Código de Sólo Lectura"
 
 msgctxt "field:party.party,contact_mechanisms:"
 msgid "Contact Mechanisms"
-msgstr "Mecanismos de contacto"
+msgstr "Medios de Contacto"
 
 msgctxt "field:party.party,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Fecha de Creación"
 
-#, fuzzy
 msgctxt "field:party.party,create_uid:"
 msgid "Create User"
-msgstr "Crear usuario"
+msgstr "Creado por Usuario"
 
 msgctxt "field:party.party,email:"
 msgid "E-Mail"
@@ -311,11 +304,11 @@ msgstr "Fax"
 
 msgctxt "field:party.party,full_name:"
 msgid "Full Name"
-msgstr ""
+msgstr "Nombre Completo"
 
 msgctxt "field:party.party,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 msgctxt "field:party.party,lang:"
 msgid "Language"
@@ -323,7 +316,7 @@ msgstr "Idioma"
 
 msgctxt "field:party.party,mobile:"
 msgid "Mobile"
-msgstr "Celular"
+msgstr "Móvil"
 
 msgctxt "field:party.party,name:"
 msgid "Name"
@@ -339,15 +332,15 @@ msgstr "Nombre"
 
 msgctxt "field:party.party,vat_code:"
 msgid "VAT Code"
-msgstr "Código de IVA"
+msgstr "NIT"
 
 msgctxt "field:party.party,vat_country:"
 msgid "VAT Country"
-msgstr "País"
+msgstr "País del NIT"
 
 msgctxt "field:party.party,vat_number:"
 msgid "VAT Number"
-msgstr "Número"
+msgstr "NIT"
 
 msgctxt "field:party.party,website:"
 msgid "Website"
@@ -355,11 +348,11 @@ msgstr "Sitio Web"
 
 msgctxt "field:party.party,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Fecha de Modificación"
 
 msgctxt "field:party.party,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "Modificado por Usuario"
 
 msgctxt "field:party.party-party.category,category:"
 msgid "Category"
@@ -367,16 +360,15 @@ msgstr "Categoría"
 
 msgctxt "field:party.party-party.category,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Fecha de Creación"
 
-#, fuzzy
 msgctxt "field:party.party-party.category,create_uid:"
 msgid "Create User"
-msgstr "Crear usuario"
+msgstr "Creado por Usuario"
 
 msgctxt "field:party.party-party.category,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 msgctxt "field:party.party-party.category,party:"
 msgid "Party"
@@ -388,29 +380,31 @@ msgstr "Nombre"
 
 msgctxt "field:party.party-party.category,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Fecha de Modificación"
 
 msgctxt "field:party.party-party.category,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "Modificado por Usuario"
 
 msgctxt "help:party.configuration,party_lang:"
 msgid "The value set on this field will preset the language on new parties"
 msgstr ""
+"El valor de este campo predeterminada el idioma de las nuevos terceros"
 
 msgctxt "help:party.party,vat_country:"
 msgid "Setting VAT country will enable validation of the VAT number."
-msgstr "Al especificar el país se habilitará la verificación del NIT."
+msgstr ""
+"Al especificar el país del NIT se habilitará la verificación de dicho "
+"número."
 
 msgctxt "help:party.party,vat_number:"
 msgid "Value Added Tax number"
-msgstr "Número de Impuesto de Valor Agregado"
+msgstr "Número de Identificación Tributaria"
 
 msgctxt "model:ir.action,name:act_address_form"
 msgid "Addresses"
 msgstr "Direcciones"
 
-#, fuzzy
 msgctxt "model:ir.action,name:act_category_list"
 msgid "Categories"
 msgstr "Categorías"
@@ -421,11 +415,11 @@ msgstr "Categorías"
 
 msgctxt "model:ir.action,name:act_party_by_category"
 msgid "Parties by Category"
-msgstr "Terceros por Categoría"
+msgstr "Terceros por categoría"
 
 msgctxt "model:ir.action,name:act_party_configuration_form"
 msgid "Party Configuration"
-msgstr ""
+msgstr "Configuración de Terceros"
 
 msgctxt "model:ir.action,name:act_party_form"
 msgid "Parties"
@@ -437,7 +431,7 @@ msgstr "Etiquetas"
 
 msgctxt "model:ir.action,name:wizard_check_vies"
 msgid "Check VIES"
-msgstr "Revisar VIES"
+msgstr "Comprobar VIES"
 
 msgctxt "model:ir.sequence,name:sequence_party"
 msgid "Party"
@@ -451,7 +445,6 @@ msgctxt "model:ir.ui.menu,name:menu_address_form"
 msgid "Addresses"
 msgstr "Direcciones"
 
-#, fuzzy
 msgctxt "model:ir.ui.menu,name:menu_category_list"
 msgid "Categories"
 msgstr "Categorías"
@@ -464,14 +457,13 @@ msgctxt "model:ir.ui.menu,name:menu_configuration"
 msgid "Configuration"
 msgstr "Configuración"
 
-#, fuzzy
 msgctxt "model:ir.ui.menu,name:menu_party"
 msgid "Party"
 msgstr "Gestión de Terceros"
 
 msgctxt "model:ir.ui.menu,name:menu_party_configuration"
 msgid "Party Configuration"
-msgstr ""
+msgstr "Configuración de Terceros"
 
 msgctxt "model:ir.ui.menu,name:menu_party_form"
 msgid "Parties"
@@ -485,23 +477,21 @@ msgctxt "model:party.category,name:"
 msgid "Category"
 msgstr "Categoría"
 
-#, fuzzy
 msgctxt "model:party.check_vies.no_result,name:"
 msgid "Check VIES"
-msgstr "Revisar VIES"
+msgstr "Comprobar VIES"
 
-#, fuzzy
 msgctxt "model:party.check_vies.result,name:"
 msgid "Check VIES"
-msgstr "Revisar VIES"
+msgstr "Comprobar VIES"
 
 msgctxt "model:party.configuration,name:"
 msgid "Party Configuration"
-msgstr ""
+msgstr "Configuración de Terceros"
 
 msgctxt "model:party.contact_mechanism,name:"
 msgid "Contact Mechanism"
-msgstr "Mecanismo de contacto"
+msgstr "Medio de Contacto"
 
 msgctxt "model:party.party,name:"
 msgid "Party"
@@ -513,7 +503,7 @@ msgstr "Tercero - Categoría"
 
 msgctxt "model:res.group,name:group_party_admin"
 msgid "Party Administration"
-msgstr "Terceros"
+msgstr "Administración de Terceros"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "E-Mail"
@@ -525,7 +515,7 @@ msgstr "Fax"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "IRC"
-msgstr "Chat"
+msgstr "IRC"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "Jabber"
@@ -533,7 +523,7 @@ msgstr "Jabber"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "Mobile"
-msgstr "Celular"
+msgstr "Móvil"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "Other"
@@ -569,27 +559,27 @@ msgstr "Categoría"
 
 msgctxt "view:party.check_vies.no_result:"
 msgid "VAT Information Exchange System"
-msgstr ""
+msgstr "NIT Sistema de Intercambio de Información"
 
 msgctxt "view:party.check_vies.no_result:"
 msgid "You must have a recent version of \"vatnumber\" installed!"
-msgstr ""
+msgstr "¡Debe tener una versión reciente de \"vatnumber\" instalada!"
 
 msgctxt "view:party.check_vies.result:"
 msgid "VAT Information Exchange System Results"
-msgstr ""
+msgstr "NIT Resultados del Sistema de Intercambio de Información"
 
 msgctxt "view:party.configuration:"
 msgid "Party Configuration"
-msgstr ""
+msgstr "Configuración de Terceros"
 
 msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanism"
-msgstr "Mecanismo de contacto"
+msgstr "Medio de Contacto"
 
 msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanisms"
-msgstr "Mecanismos de contacto"
+msgstr "Medios de Contacto"
 
 msgctxt "view:party.party:"
 msgid "Account"
@@ -608,12 +598,8 @@ msgid "Categories"
 msgstr "Categorías"
 
 msgctxt "view:party.party:"
-msgid "Contact Mechanism"
-msgstr "Mecanismo de contacto"
-
-msgctxt "view:party.party:"
 msgid "Contact Mechanisms"
-msgstr "Mecanismos de contacto"
+msgstr "Medios de Contacto"
 
 msgctxt "view:party.party:"
 msgid "General"
@@ -629,18 +615,16 @@ msgstr "Tercero"
 
 msgctxt "view:party.party:"
 msgid "VAT"
-msgstr "IVA"
+msgstr "NIT"
 
 msgctxt "view:party.party:"
 msgid "_General"
 msgstr "_General"
 
-#, fuzzy
 msgctxt "wizard_button:party.check_vies,no_result,end:"
 msgid "Ok"
 msgstr "Aceptar"
 
-#, fuzzy
 msgctxt "wizard_button:party.check_vies,result,end:"
 msgid "Ok"
 msgstr "Aceptar"
diff --git a/locale/es_ES.po b/locale/es_ES.po
index 5acb724..ffa036f 100644
--- a/locale/es_ES.po
+++ b/locale/es_ES.po
@@ -28,7 +28,7 @@ msgstr "No puede modificar el tercero de un medio de contacto."
 
 msgctxt "error:party.party:"
 msgid "Invalid VAT number!"
-msgstr "El NIF no es correcto."
+msgstr "El CIF/NIF no es correcto."
 
 msgctxt "error:party.party:"
 msgid "The code of the party must be unique!"
@@ -332,15 +332,15 @@ msgstr "Nombre"
 
 msgctxt "field:party.party,vat_code:"
 msgid "VAT Code"
-msgstr "NIF"
+msgstr "CIF/NIF"
 
 msgctxt "field:party.party,vat_country:"
 msgid "VAT Country"
-msgstr "País del NIF"
+msgstr "País del CIF/NIF"
 
 msgctxt "field:party.party,vat_number:"
 msgid "VAT Number"
-msgstr "NIF"
+msgstr "CIF/NIF"
 
 msgctxt "field:party.party,website:"
 msgid "Website"
@@ -459,7 +459,7 @@ msgstr "Configuración"
 
 msgctxt "model:ir.ui.menu,name:menu_party"
 msgid "Party"
-msgstr "Tercero"
+msgstr "Terceros"
 
 msgctxt "model:ir.ui.menu,name:menu_party_configuration"
 msgid "Party Configuration"
@@ -559,7 +559,7 @@ msgstr "Categoría"
 
 msgctxt "view:party.check_vies.no_result:"
 msgid "VAT Information Exchange System"
-msgstr "Sistema de intercambio de información VAT"
+msgstr "Sistema de intercambio de información CIF/NIF"
 
 msgctxt "view:party.check_vies.no_result:"
 msgid "You must have a recent version of \"vatnumber\" installed!"
@@ -567,7 +567,7 @@ msgstr "Debe tener instalada una versión reciente de \"vatnumber\"."
 
 msgctxt "view:party.check_vies.result:"
 msgid "VAT Information Exchange System Results"
-msgstr "Resultado del sistema de intercambio de información VAT"
+msgstr "Resultado del sistema de intercambio de información CIF/NIF"
 
 msgctxt "view:party.configuration:"
 msgid "Party Configuration"
@@ -615,7 +615,7 @@ msgstr "Tercero"
 
 msgctxt "view:party.party:"
 msgid "VAT"
-msgstr "NIF"
+msgstr "CIF/NIF"
 
 msgctxt "view:party.party:"
 msgid "_General"
diff --git a/party.py b/party.py
index f5166bb..1694c99 100644
--- a/party.py
+++ b/party.py
@@ -7,6 +7,9 @@ from trytond.pyson import Bool, Eval
 from trytond.transaction import Transaction
 from trytond.pool import Pool
 
+__all__ = ['Party', 'PartyCategory', 'CheckVIESNoResult', 'CheckVIESResult',
+           'CheckVIES']
+
 HAS_VATNUMBER = False
 VAT_COUNTRIES = [('', '')]
 try:
@@ -26,8 +29,7 @@ DEPENDS = ['active']
 
 class Party(ModelSQL, ModelView):
     "Party"
-    _description = __doc__
-    _name = "party.party"
+    __name__ = 'party.party'
 
     name = fields.Char('Name', required=True, select=True,
         states=STATES, depends=DEPENDS)
@@ -70,60 +72,64 @@ class Party(ModelSQL, ModelView):
     email = fields.Function(fields.Char('E-Mail'), 'get_mechanism')
     website = fields.Function(fields.Char('Website'), 'get_mechanism')
 
-    def __init__(self):
-        super(Party, self).__init__()
-        self._sql_constraints = [
+    @classmethod
+    def __setup__(cls):
+        super(Party, cls).__setup__()
+        cls._sql_constraints = [
             ('code_uniq', 'UNIQUE(code)',
              'The code of the party must be unique!')
         ]
-        self._constraints += [
+        cls._constraints += [
             ('check_vat', 'invalid_vat'),
         ]
-        self._error_messages.update({
+        cls._error_messages.update({
             'invalid_vat': 'Invalid VAT number!',
         })
-        self._order.insert(0, ('name', 'ASC'))
+        cls._order.insert(0, ('name', 'ASC'))
 
-    def default_active(self):
+    @staticmethod
+    def default_active():
         return True
 
-    def default_categories(self):
+    @staticmethod
+    def default_categories():
         return Transaction().context.get('categories', [])
 
-    def default_addresses(self):
-        address_obj = Pool().get('party.address')
-        fields_names = list(x for x in set(address_obj._columns.keys()
-                + address_obj._inherit_fields.keys())
+    @staticmethod
+    def default_addresses():
+        if Transaction().user == 0:
+            return []
+        Address = Pool().get('party.address')
+        fields_names = list(x for x in set(Address._fields.keys()
+                + Address._inherit_fields.keys())
                 if x not in ['id', 'create_uid', 'create_date',
                     'write_uid', 'write_date'])
-        return [address_obj.default_get(fields_names)]
-
-    def default_lang(self):
-        config_obj = Pool().get('party.configuration')
-        config = config_obj.browse(1)
-        return config.party_lang.id
-
-    def default_code_readonly(self):
-        config_obj = Pool().get('party.configuration')
-        config = config_obj.browse(1)
+        return [Address.default_get(fields_names)]
+
+    @staticmethod
+    def default_lang():
+        Configuration = Pool().get('party.configuration')
+        config = Configuration(1)
+        if config.party_lang:
+            return config.party_lang.id
+
+    @staticmethod
+    def default_code_readonly():
+        Configuration = Pool().get('party.configuration')
+        config = Configuration(1)
         return bool(config.party_sequence)
 
-    def get_code_readonly(self, ids, name):
-        return dict((x, True) for x in ids)
+    def get_code_readonly(self, name):
+        return True
 
-    def on_change_with_vat_code(self, vals):
-        return (vals.get('vat_country') or '') + (vals.get('vat_number') or '')
+    def on_change_with_vat_code(self):
+        return (self.vat_country or '') + (self.vat_number or '')
 
-    def get_vat_code(self, ids, name):
-        if not ids:
-            return []
-        res = {}
-        for party in self.browse(ids):
-            res[party.id] = ((party.vat_country or '')
-                + (party.vat_number or ''))
-        return res
+    def get_vat_code(self, name):
+        return (self.vat_country or '') + (self.vat_number or '')
 
-    def search_vat_code(self, name, clause):
+    @classmethod
+    def search_vat_code(cls, name, clause):
         res = []
         value = clause[2]
         for country, _ in VAT_COUNTRIES:
@@ -136,150 +142,127 @@ class Party(ModelSQL, ModelView):
         res.append(('vat_number', clause[1], value))
         return res
 
-    def get_full_name(self, ids, name):
-        if not ids:
-            return []
-        res = {}
-        for party in self.browse(ids):
-            res[party.id] = party.name
-        return res
+    def get_full_name(self, name):
+        return self.name
 
-    def get_mechanism(self, ids, name):
-        if not ids:
-            return []
-        res = {}
-        for party in self.browse(ids):
-            res[party.id] = ''
-            for mechanism in party.contact_mechanisms:
-                if mechanism.type == name:
-                    res[party.id] = mechanism.value
-                    break
-        return res
+    def get_mechanism(self, name):
+        for mechanism in self.contact_mechanisms:
+            if mechanism.type == name:
+                return mechanism.value
+        return ''
 
-    def create(self, values):
-        sequence_obj = Pool().get('ir.sequence')
-        config_obj = Pool().get('party.configuration')
+    @classmethod
+    def create(cls, values):
+        Sequence = Pool().get('ir.sequence')
+        Configuration = Pool().get('party.configuration')
 
         values = values.copy()
         if not values.get('code'):
-            config = config_obj.browse(1)
-            values['code'] = sequence_obj.get_id(config.party_sequence.id)
+            config = Configuration(1)
+            values['code'] = Sequence.get_id(config.party_sequence.id)
 
         values['code_length'] = len(values['code'])
-        return super(Party, self).create(values)
+        return super(Party, cls).create(values)
 
-    def write(self, ids, vals):
+    @classmethod
+    def write(cls, parties, vals):
         if vals.get('code'):
             vals = vals.copy()
             vals['code_length'] = len(vals['code'])
-        return super(Party, self).write(ids, vals)
-
-    def copy(self, ids, default=None):
-        address_obj = Pool().get('party.address')
+        super(Party, cls).write(parties, vals)
 
-        int_id = False
-        if isinstance(ids, (int, long)):
-            int_id = True
-            ids = [ids]
+    @classmethod
+    def copy(cls, parties, default=None):
+        Address = Pool().get('party.address')
 
         if default is None:
             default = {}
         default = default.copy()
         default['code'] = None
         default['addresses'] = None
-        new_ids = []
-        for party in self.browse(ids):
-            new_id = super(Party, self).copy(party.id, default=default)
-            address_obj.copy([x.id for x in party.addresses],
+        new_parties = []
+        for party in parties:
+            new_party = super(Party, cls).copy(party, default=default)
+            Address.copy([x.id for x in new_party.addresses],
                     default={
-                        'party': new_id,
+                        'party': new_party.id,
                         })
-            new_ids.append(new_id)
+            new_parties.append(new_party)
+
+        return new_parties
 
-        if int_id:
-            return new_ids[0]
-        return new_ids
+    @classmethod
+    def search_rec_name(cls, name, clause):
+        parties = cls.search([('code',) + tuple(clause[1:])], order=[])
+        if parties:
+            parties += cls.search([('name',) + tuple(clause[1:])], order=[])
 
-    def search_rec_name(self, name, clause):
-        ids = self.search([('code',) + clause[1:]], order=[])
-        if ids:
-            ids += self.search([('name',) + clause[1:]], order=[])
-            return [('id', 'in', ids)]
-        return [('name',) + clause[1:]]
+            return [('id', 'in', [party.id for party in parties])]
+        return [('name',) + tuple(clause[1:])]
 
-    def address_get(self, party_id, type=None):
+    def address_get(self, type=None):
         """
-        Try to find an address for the given type, if no type match
-        the first address is return.
+        Try to find an address for the given type, if no type matches
+        the first address is returned.
         """
-        address_obj = Pool().get("party.address")
-        address_ids = address_obj.search(
-            [("party", "=", party_id), ("active", "=", True)],
+        Address = Pool().get("party.address")
+        addresses = Address.search(
+            [("party", "=", self.id), ("active", "=", True)],
             order=[('sequence', 'ASC'), ('id', 'ASC')])
-        if not address_ids:
+        if not addresses:
             return None
-        default_address = address_ids[0]
+        default_address = addresses[0]
         if not type:
             return default_address
-        for address in address_obj.browse(address_ids):
-            if address[type]:
-                    return address.id
+        for address in addresses:
+            if getattr(address, type):
+                return address
         return default_address
 
-    def check_vat(self, ids):
+    def check_vat(self):
         '''
         Check the VAT number depending of the country.
         http://sima-pc.com/nif.php
         '''
         if not HAS_VATNUMBER:
             return True
-        for party in self.browse(ids):
-            vat_number = party.vat_number
-
-            if not party.vat_country:
-                continue
+        vat_number = self.vat_number
 
-            if not getattr(vatnumber, 'check_vat_' + \
-                    party.vat_country.lower())(vat_number):
+        if not self.vat_country:
+            return True
 
-                #Check if user doesn't have put country code in number
-                if vat_number.startswith(party.vat_country):
-                    vat_number = vat_number[len(party.vat_country):]
-                    self.write(party.id, {
-                        'vat_number': vat_number,
-                        })
-                else:
-                    return False
+        if not getattr(vatnumber, 'check_vat_' + \
+                self.vat_country.lower())(vat_number):
+
+            #Check if user doesn't have put country code in number
+            if vat_number.startswith(self.vat_country):
+                vat_number = vat_number[len(self.vat_country):]
+                Party.write([self], {
+                    'vat_number': vat_number,
+                    })
+            else:
+                return False
         return True
 
-Party()
-
 
 class PartyCategory(ModelSQL):
     'Party - Category'
-    _name = 'party.party-party.category'
+    __name__ = 'party.party-party.category'
     _table = 'party_category_rel'
-    _description = __doc__
     party = fields.Many2One('party.party', 'Party', ondelete='CASCADE',
             required=True, select=True)
     category = fields.Many2One('party.category', 'Category',
         ondelete='CASCADE', required=True, select=True)
 
-PartyCategory()
-
 
 class CheckVIESNoResult(ModelView):
     'Check VIES'
-    _name = 'party.check_vies.no_result'
-    _description = __doc__
-
-CheckVIESNoResult()
+    __name__ = 'party.check_vies.no_result'
 
 
 class CheckVIESResult(ModelView):
     'Check VIES'
-    _name = 'party.check_vies.result'
-    _description = __doc__
+    __name__ = 'party.check_vies.result'
     parties_succeed = fields.Many2Many('party.party', None, None,
         'Parties Succeed', readonly=True, states={
             'invisible': ~Eval('parties_succeed'),
@@ -289,12 +272,10 @@ class CheckVIESResult(ModelView):
             'invisible': ~Eval('parties_failed'),
             })
 
-CheckVIESResult()
-
 
 class CheckVIES(Wizard):
     'Check VIES'
-    _name = 'party.check_vies'
+    __name__ = 'party.check_vies'
     start_state = 'check'
 
     check = StateTransition()
@@ -307,22 +288,23 @@ class CheckVIES(Wizard):
             Button('Ok', 'end', 'tryton-ok', True),
             ])
 
-    def __init__(self):
-        super(CheckVIES, self).__init__()
-        self._error_messages.update({
+    @classmethod
+    def __setup__(cls):
+        super(CheckVIES, cls).__setup__()
+        cls._error_messages.update({
             'vies_unavailable': 'The VIES service is unavailable, ' \
                     'try again later.',
             })
 
-    def transition_check(self, session):
-        party_obj = Pool().get('party.party')
+    def transition_check(self):
+        Party = Pool().get('party.party')
 
         if not HAS_VATNUMBER or not hasattr(vatnumber, 'check_vies'):
             return 'no_result'
 
         parties_succeed = []
         parties_failed = []
-        parties = party_obj.browse(Transaction().context.get('active_ids'))
+        parties = Party.browse(Transaction().context.get('active_ids'))
         for party in parties:
             if not party.vat_code:
                 continue
@@ -343,14 +325,12 @@ class CheckVIES(Wizard):
                             or e.faultstring.find('SERVER_BUSY'):
                         self.raise_user_error('vies_unavailable')
                 raise
-        session.result.parties_succeed = parties_succeed
-        session.result.parties_failed = parties_failed
+        self.result.parties_succeed = parties_succeed
+        self.result.parties_failed = parties_failed
         return 'result'
 
-    def default_result(self, session, fields):
+    def default_result(self, fields):
         return {
-            'parties_succeed': [p.id for p in session.result.parties_succeed],
-            'parties_failed': [p.id for p in session.result.parties_failed],
+            'parties_succeed': [p.id for p in self.result.parties_succeed],
+            'parties_failed': [p.id for p in self.result.parties_failed],
             }
-
-CheckVIES()
diff --git a/party.xml b/party.xml
index 24ecad4..2cf86f0 100644
--- a/party.xml
+++ b/party.xml
@@ -67,7 +67,7 @@ this repository contains the full copyright notices and license terms. -->
                                 view_ids="party.address_view_form,party.address_view_tree_sequence"/>
                             <group col="2" colspan="4" id="lang">
                                 <label name="lang"/>
-                                <field name="lang" widget="selection"/>
+                                <field name="lang" widget="selection" xexpand="0"/>
                             </group>
                             <field name="contact_mechanisms" colspan="2"
                                 view_ids="party.contact_mechanism_view_tree_sequence"/>
diff --git a/setup.py b/setup.py
index 648ecf8..6823c09 100644
--- a/setup.py
+++ b/setup.py
@@ -4,8 +4,19 @@
 
 from setuptools import setup
 import re
+import os
+import ConfigParser
 
-info = eval(open('__tryton__.py').read())
+
+def read(fname):
+    return open(os.path.join(os.path.dirname(__file__), fname)).read()
+
+config = ConfigParser.ConfigParser()
+config.readfp(open('tryton.cfg'))
+info = dict(config.items('tryton'))
+for key in ('depends', 'extras_depend', 'xml'):
+    if key in info:
+        info[key] = info[key].strip().splitlines()
 major_version, minor_version, _ = info.get('version', '0.0.1').split('.', 2)
 major_version = int(major_version)
 minor_version = int(minor_version)
@@ -21,22 +32,21 @@ requires.append('trytond >= %s.%s, < %s.%s' %
 
 setup(name='trytond_party',
     version=info.get('version', '0.0.1'),
-    description=info.get('description', ''),
-    author=info.get('author', ''),
-    author_email=info.get('email', ''),
-    url=info.get('website', ''),
+    description='Tryton module with parties and addresses',
+    long_description=read('README'),
+    author='Tryton',
+    url='http://www.tryton.org/',
     download_url="http://downloads.tryton.org/" + \
-            info.get('version', '0.0.1').rsplit('.', 1)[0] + '/',
+        info.get('version', '0.0.1').rsplit('.', 1)[0] + '/',
     package_dir={'trytond.modules.party': '.'},
     packages=[
         'trytond.modules.party',
         'trytond.modules.party.tests',
-    ],
+        ],
     package_data={
         'trytond.modules.party': info.get('xml', []) \
-                + info.get('translation', []) \
-                + ['*.odt', 'icons/*.svg'],
-    },
+            + ['tryton.cfg', 'locale/*.po', '*.odt', 'icons/*.svg'],
+        },
     classifiers=[
         'Development Status :: 5 - Production/Stable',
         'Environment :: Plugins',
@@ -58,12 +68,12 @@ setup(name='trytond_party',
         'Programming Language :: Python :: 2.6',
         'Programming Language :: Python :: 2.7',
         'Topic :: Office/Business',
-    ],
+        ],
     license='GPL-3',
     install_requires=requires,
     extras_require={
         'VAT': ['vatnumber'],
-    },
+        },
     zip_safe=False,
     entry_points="""
     [trytond.modules]
@@ -71,4 +81,4 @@ setup(name='trytond_party',
     """,
     test_suite='tests',
     test_loader='trytond.test_loader:Loader',
-)
+    )
diff --git a/tests/test_party.py b/tests/test_party.py
index 358ecdc..87adf7f 100644
--- a/tests/test_party.py
+++ b/tests/test_party.py
@@ -44,10 +44,10 @@ class PartyTestCase(unittest.TestCase):
         '''
         with Transaction().start(DB_NAME, USER,
                 context=CONTEXT) as transaction:
-            category1_id = self.category.create({
+            category1 = self.category.create({
                 'name': 'Category 1',
                 })
-            self.assert_(category1_id)
+            self.assert_(category1.id)
             transaction.cursor.commit()
 
     def test0020category_recursion(self):
@@ -55,20 +55,20 @@ class PartyTestCase(unittest.TestCase):
         Test category recursion.
         '''
         with Transaction().start(DB_NAME, USER, context=CONTEXT):
-            category1_id = self.category.search([
+            category1, = self.category.search([
                 ('name', '=', 'Category 1'),
-                ], limit=1)[0]
+                ], limit=1)
 
-            category2_id = self.category.create({
+            category2 = self.category.create({
                 'name': 'Category 2',
-                'parent': category1_id,
+                'parent': category1.id,
                 })
-            self.assert_(category2_id)
+            self.assert_(category2.id)
 
-            self.failUnlessRaises(Exception, self.category.write,
-                    category1_id, {
-                        'parent': category2_id,
-                    })
+            self.assertRaises(Exception, self.category.write,
+                [category1], {
+                    'parent': category2.id,
+                })
 
     def test0030party(self):
         '''
@@ -76,10 +76,10 @@ class PartyTestCase(unittest.TestCase):
         '''
         with Transaction().start(DB_NAME, USER,
                 context=CONTEXT) as transaction:
-            party1_id = self.party.create({
+            party1 = self.party.create({
                 'name': 'Party 1',
                 })
-            self.assert_(party1_id)
+            self.assert_(party1.id)
             transaction.cursor.commit()
 
     def test0040party_code(self):
@@ -87,32 +87,32 @@ class PartyTestCase(unittest.TestCase):
         Test party code constraint.
         '''
         with Transaction().start(DB_NAME, USER, context=CONTEXT):
-            party1_id = self.party.search([], limit=1)[0]
+            party1, = self.party.search([], limit=1)
 
-            code = self.party.read(party1_id, ['code'])['code']
+            code = party1.code
 
-            party2_id = self.party.create({
+            party2 = self.party.create({
                 'name': 'Party 2',
                 })
 
-            self.failUnlessRaises(Exception, self.party.write,
-                    party2_id, {
-                        'code': code,
-                    })
+            self.assertRaises(Exception, self.party.write,
+                [party2], {
+                    'code': code,
+                })
 
     def test0050address(self):
         '''
         Create address.
         '''
         with Transaction().start(DB_NAME, USER, context=CONTEXT):
-            party1_id = self.party.search([], limit=1)[0]
+            party1, = self.party.search([], limit=1)
 
-            self.address.create({
-                'party': party1_id,
+            address = self.address.create({
+                'party': party1.id,
                 'street': 'St sample, 15',
                 'city': 'City',
                 })
-            self.assert_(party1_id)
+            self.assert_(address.id)
 
 
 def suite():
diff --git a/tryton.cfg b/tryton.cfg
new file mode 100644
index 0000000..0732da8
--- /dev/null
+++ b/tryton.cfg
@@ -0,0 +1,12 @@
+[tryton]
+version=2.6.0
+depends:
+    country
+    ir
+    res
+xml:
+    party.xml
+    category.xml
+    address.xml
+    contact_mechanism.xml
+    configuration.xml
diff --git a/trytond_party.egg-info/PKG-INFO b/trytond_party.egg-info/PKG-INFO
index 50f41cd..1045038 100644
--- a/trytond_party.egg-info/PKG-INFO
+++ b/trytond_party.egg-info/PKG-INFO
@@ -1,13 +1,48 @@
 Metadata-Version: 1.0
 Name: trytond-party
-Version: 2.4.0
-Summary: Define parties, addresses and co.
+Version: 2.6.0
+Summary: Tryton module with parties and addresses
 Home-page: http://www.tryton.org/
-Author: B2CK
-Author-email: info at b2ck.com
+Author: Tryton
+Author-email: UNKNOWN
 License: GPL-3
-Download-URL: http://downloads.tryton.org/2.4/
-Description: UNKNOWN
+Download-URL: http://downloads.tryton.org/2.6/
+Description: trytond_party
+        =============
+        
+        The party module of the Tryton application platform.
+        
+        Installing
+        ----------
+        
+        See INSTALL
+        
+        Support
+        -------
+        
+        If you encounter any problems with Tryton, please don't hesitate to ask
+        questions on the Tryton bug tracker, mailing list, wiki or IRC channel:
+        
+          http://bugs.tryton.org/
+          http://groups.tryton.org/
+          http://wiki.tryton.org/
+          irc://irc.freenode.net/tryton
+        
+        License
+        -------
+        
+        See LICENSE
+        
+        Copyright
+        ---------
+        
+        See COPYRIGHT
+        
+        
+        For more information please visit the Tryton web site:
+        
+          http://www.tryton.org/
+        
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Environment :: Plugins
diff --git a/trytond_party.egg-info/SOURCES.txt b/trytond_party.egg-info/SOURCES.txt
index 0a18132..5723344 100644
--- a/trytond_party.egg-info/SOURCES.txt
+++ b/trytond_party.egg-info/SOURCES.txt
@@ -11,8 +11,8 @@ contact_mechanism.xml
 label.odt
 party.xml
 setup.py
+tryton.cfg
 ./__init__.py
-./__tryton__.py
 ./address.py
 ./category.py
 ./configuration.py
diff --git a/trytond_party.egg-info/requires.txt b/trytond_party.egg-info/requires.txt
index fd49155..9c72731 100644
--- a/trytond_party.egg-info/requires.txt
+++ b/trytond_party.egg-info/requires.txt
@@ -1,5 +1,5 @@
-trytond_country >= 2.4, < 2.5
-trytond >= 2.4, < 2.5
+trytond_country >= 2.6, < 2.7
+trytond >= 2.6, < 2.7
 
 [VAT]
 vatnumber
\ No newline at end of file
commit e848435f5385d859b27209a92509ff953ee0e2cd
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Tue Sep 18 16:07:21 2012 +0200

    Releasing debian version 2.4.0-2.

diff --git a/debian/changelog b/debian/changelog
index ea99579..af80f82 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,17 @@
+tryton-modules-party (2.4.0-2) experimental; urgency=low
+
+  [ Daniel Baumann ]
+  * Updating maintainers field.
+  * Updating vcs fields.
+  * Correcting copyright file to match format version 1.0.
+  * Switching to xz compression.
+  * Updating to debhelper version 9.
+
+  [ Mathias Behrle ]
+  * Merging branch debian-wheezy-2.2.
+
+ -- Mathias Behrle <mathiasb at m9s.biz>  Tue, 18 Sep 2012 13:38:55 +0200
+
 tryton-modules-party (2.4.0-1) experimental; urgency=low
 
   * Updating to Standards-Version: 3.9.3, no changes needed.
commit e6e119ff2a6ddcaab64b4555276b7d021f0f25cc
Author: Daniel Baumann <daniel at debian.org>
Date:   Sat Jun 30 18:02:29 2012 +0200

    Updating to debhelper version 9.

diff --git a/debian/compat b/debian/compat
index 45a4fb7..ec63514 100644
--- a/debian/compat
+++ b/debian/compat
@@ -1 +1 @@
-8
+9
diff --git a/debian/control b/debian/control
index 4bcf8b3..74535bd 100644
--- a/debian/control
+++ b/debian/control
@@ -4,7 +4,7 @@ Priority: optional
 Maintainer: Debian Tryton Maintainers <maintainers at debian.tryton.org>
 Uploaders: Daniel Baumann <daniel at debian.org>, Mathias Behrle <mathiasb at m9s.biz>
 Dm-Upload-Allowed: yes
-Build-Depends: debhelper (>= 8), python (>= 2.6.6-3~), python-setuptools
+Build-Depends: debhelper (>= 9), python (>= 2.6.6-3~), python-setuptools
 Standards-Version: 3.9.3
 Homepage: http://www.tryton.org/
 Vcs-Browser: http://debian.tryton.org/gitweb/?p=packages/tryton-modules-party.git
commit 50c0b3ffa5950d3d324857a69e74518c502adf5a
Author: Daniel Baumann <daniel at debian.org>
Date:   Sat Jun 30 17:54:36 2012 +0200

    Switching to xz compression.

diff --git a/debian/rules b/debian/rules
index e32b791..1ae0776 100755
--- a/debian/rules
+++ b/debian/rules
@@ -7,3 +7,6 @@ override_dh_auto_clean:
 	dh_auto_clean
 
 	rm -rf *.egg-info
+
+override_dh_builddeb:
+	dh_builddeb -- -Zxz -z9
diff --git a/debian/source/options b/debian/source/options
index d053b65..22a4de9 100644
--- a/debian/source/options
+++ b/debian/source/options
@@ -1,2 +1,2 @@
-compression = gzip
+compression = xz
 compression-level = 9
commit 222d0cdf7493ff29eafc68a5ff745eabdbebc5b8
Author: Daniel Baumann <daniel at debian.org>
Date:   Sat Jun 30 17:50:24 2012 +0200

    Correcting copyright file to match format version 1.0.

diff --git a/debian/copyright b/debian/copyright
index 84ec415..1109a20 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -2,13 +2,13 @@ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
 
 Files: *
 Copyright:
- (C) 2004-2008 Tiny SPRL
- (C) 2008-2012 Cedric Krier
- (C) 2008-2012 Bertrand Chenal
- (C) 2008-2012 B2CK SPRL
- (C) 2008-2011 Udo Spallek
- (C) 2008-2011 Korbinian Preisler
- (C) 2008-2011 virtual things
+           2004-2008 Tiny SPRL
+           2008-2012 Cedric Krier
+           2008-2012 Bertrand Chenal
+           2008-2012 B2CK SPRL
+           2008-2011 Udo Spallek
+           2008-2011 Korbinian Preisler
+           2008-2011 virtual things
 License: GPL-3+
 
 Files: icons/*
@@ -17,8 +17,8 @@ License: public-domain
 
 Files: debian/*
 Copyright:
- (C) 2009-2012 Daniel Baumann <daniel at debian.org>
- (C) 2011-2012 Mathias Behrle <mathiasb at m9s.biz>
+           2009-2012 Daniel Baumann <daniel at debian.org>
+           2011-2012 Mathias Behrle <mathiasb at m9s.biz>
 License: GPL-3+
 
 License: GPL-3+
commit 48f0f931ef6971ed98ab13eb4ecebbdc321d6025
Author: Daniel Baumann <daniel at 127011.net>
Date:   Sat Jun 30 16:55:04 2012 +0200

    Updating vcs fields.

diff --git a/debian/control b/debian/control
index a88eae5..4bcf8b3 100644
--- a/debian/control
+++ b/debian/control
@@ -7,8 +7,8 @@ Dm-Upload-Allowed: yes
 Build-Depends: debhelper (>= 8), python (>= 2.6.6-3~), python-setuptools
 Standards-Version: 3.9.3
 Homepage: http://www.tryton.org/
-Vcs-Browser: http://git.debian-maintainers.org/?p=tryton/tryton-modules-party.git
-Vcs-Git: git://git.debian-maintainers.org/git/tryton/tryton-modules-party.git
+Vcs-Browser: http://debian.tryton.org/gitweb/?p=packages/tryton-modules-party.git
+Vcs-Git: git://debian.tryton.org/git/packages/tryton-modules-party.git
 X-Python-Version: >= 2.6
 
 Package: tryton-modules-party
commit 4ac0e1c7dca0e56107c2754825857711130e9c23
Author: Daniel Baumann <daniel at 127011.net>
Date:   Sat Jun 30 16:52:30 2012 +0200

    Updating maintainers field.

diff --git a/debian/control b/debian/control
index 5bfbbab..a88eae5 100644
--- a/debian/control
+++ b/debian/control
@@ -1,7 +1,7 @@
 Source: tryton-modules-party
 Section: python
 Priority: optional
-Maintainer: Debian Tryton Maintainers <tryton at lists.debian-maintainers.org>
+Maintainer: Debian Tryton Maintainers <maintainers at debian.tryton.org>
 Uploaders: Daniel Baumann <daniel at debian.org>, Mathias Behrle <mathiasb at m9s.biz>
 Dm-Upload-Allowed: yes
 Build-Depends: debhelper (>= 8), python (>= 2.6.6-3~), python-setuptools
commit 0ec441e4bb719b8a832938b6bb297ba99cb64059
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Sat Apr 28 12:44:02 2012 +0200

    Releasing debian version 2.4.0-1.

diff --git a/debian/changelog b/debian/changelog
index f3889a8..ea99579 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,14 @@
+tryton-modules-party (2.4.0-1) experimental; urgency=low
+
+  * Updating to Standards-Version: 3.9.3, no changes needed.
+  * Updating year in copyright.
+  * Adding Format header for DEP5.
+  * Merging upstream version 2.4.0.
+  * Updating Copyright.
+  * Bumping versioned tryton depends to 2.4.
+
+ -- Mathias Behrle <mathiasb at m9s.biz>  Thu, 26 Apr 2012 19:30:35 +0200
+
 tryton-modules-party (2.2.1-1) unstable; urgency=low
 
   * Merging upstream version 2.2.1.
commit f2dec299bc93725fd226d5dea3fb724f236b2d9b
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Thu Apr 26 19:11:44 2012 +0200

    Bumping versioned tryton depends to 2.4.

diff --git a/debian/control b/debian/control
index aaa8b84..5bfbbab 100644
--- a/debian/control
+++ b/debian/control
@@ -14,8 +14,8 @@ X-Python-Version: >= 2.6
 Package: tryton-modules-party
 Architecture: all
 Depends:
- ${misc:Depends}, ${python:Depends}, tryton-server (>= 2.2),
- tryton-modules-country (>= 2.2), python-pkg-resources
+ ${misc:Depends}, ${python:Depends}, tryton-server (>= 2.4),
+ tryton-modules-country (>= 2.4), python-pkg-resources
 Recommends: python-vatnumber
 Description: Tryton Application Platform (Party Module)
  Tryton is a high-level general purpose application platform written in Python
commit 5ccc324bf2fc49b53cdecb1f894a5e54063590f0
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Wed Apr 25 20:08:13 2012 +0200

    Updating Copyright.

diff --git a/debian/copyright b/debian/copyright
index 882d00b..84ec415 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -3,9 +3,9 @@ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
 Files: *
 Copyright:
  (C) 2004-2008 Tiny SPRL
- (C) 2008-2011 Cedric Krier
- (C) 2008-2011 Bertrand Chenal
- (C) 2008-2011 B2CK SPRL
+ (C) 2008-2012 Cedric Krier
+ (C) 2008-2012 Bertrand Chenal
+ (C) 2008-2012 B2CK SPRL
  (C) 2008-2011 Udo Spallek
  (C) 2008-2011 Korbinian Preisler
  (C) 2008-2011 virtual things
commit ec21fc3d7954354d4fc8eadf161ac905850abf2a
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Tue Apr 24 19:30:47 2012 +0200

    Merging upstream version 2.4.0.

diff --git a/CHANGELOG b/CHANGELOG
index c200abf..d26d157 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,6 @@
-Version 2.2.1 - 2011-12-26
+Version 2.4.0 - 2012-04-24
 * Bug fixes (see mercurial logs for details)
+* Allow to have no Party Sequence
 
 Version 2.2.0 - 2011-10-24
 * Bug fixes (see mercurial logs for details)
diff --git a/COPYRIGHT b/COPYRIGHT
index d4db09d..dfe7d1e 100644
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -1,6 +1,6 @@
-Copyright (C) 2008-2011 Cédric Krier.
-Copyright (C) 2008-2011 Bertrand Chenal.
-Copyright (C) 2008-2011 B2CK SPRL.
+Copyright (C) 2008-2012 Cédric Krier.
+Copyright (C) 2008-2012 Bertrand Chenal.
+Copyright (C) 2008-2012 B2CK SPRL.
 Copyright (C) 2008-2011 Udo Spallek.
 Copyright (C) 2008-2011 Korbinian Preisler.
 Copyright (C) 2008-2011 virtual things.
diff --git a/INSTALL b/INSTALL
index 86ff4bd..cdfd97c 100644
--- a/INSTALL
+++ b/INSTALL
@@ -4,7 +4,7 @@ Installing trytond_party
 Prerequisites
 -------------
 
- * Python 2.5 or later (http://www.python.org/)
+ * Python 2.6 or later (http://www.python.org/)
  * trytond (http://www.tryton.org/)
  * trytond_country (http://www.tryton.org/)
  * Optional: vatnumber (http://code.google.com/p/vatnumber/)
diff --git a/PKG-INFO b/PKG-INFO
index 949e835..736842f 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
-Metadata-Version: 1.1
+Metadata-Version: 1.0
 Name: trytond_party
-Version: 2.2.1
+Version: 2.4.0
 Summary: Define parties, addresses and co.
 Home-page: http://www.tryton.org/
 Author: B2CK
 Author-email: info at b2ck.com
 License: GPL-3
-Download-URL: http://downloads.tryton.org/2.2/
+Download-URL: http://downloads.tryton.org/2.4/
 Description: UNKNOWN
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
diff --git a/__init__.py b/__init__.py
index d36f1c0..af5a98e 100644
--- a/__init__.py
+++ b/__init__.py
@@ -1,8 +1,8 @@
 #This file is part of Tryton.  The COPYRIGHT file at the top level of
 #this repository contains the full copyright notices and license terms.
 
-from category import *
-from party import *
-from address import *
-from contact_mechanism import *
-from configuration import *
+from .category import *
+from .party import *
+from .address import *
+from .contact_mechanism import *
+from .configuration import *
diff --git a/__tryton__.py b/__tryton__.py
index 6e2fc81..b5066e0 100644
--- a/__tryton__.py
+++ b/__tryton__.py
@@ -2,32 +2,36 @@
 #This file is part of Tryton.  The COPYRIGHT file at the top level of
 #this repository contains the full copyright notices and license terms.
 {
-    'name' : 'Party',
+    'name': 'Party',
     'name_bg_BG': 'Партньор',
+    'name_ca_ES': 'Tercers',
     'name_de_DE': 'Parteien',
+    'name_es_AR': 'Entidades',
     'name_es_CO': 'Terceros',
     'name_es_ES': 'Terceros',
     'name_fr_FR': 'Tiers',
     'name_nl_NL': 'Relaties',
     'name_ru_RU': 'Контрагенты',
-    'version' : '2.2.1',
-    'author' : 'B2CK',
+    'version': '2.4.0',
+    'author': 'B2CK',
     'email': 'info at b2ck.com',
     'website': 'http://www.tryton.org/',
     'description': 'Define parties, addresses and co.',
     'description_bg_BG': 'Задаване на партньори, адреси и тн.',
+    'description_ca_ES': 'Defineix tercers, adreces, etc.',
     'description_de_DE': 'Ermöglicht die Erstellung von Parteien, Adressen, etc.',
+    'description_es_AR': 'Define entidades, direcciones, etc.',
     'description_es_CO': 'Definición de terceros, direcciones, etc.',
-    'description_es_ES': 'Define terceros, direcciones, etc...',
+    'description_es_ES': 'Define terceros, direcciones, etc.',
     'description_fr_FR': 'Définit des tiers, des adresses, etc.',
     'description_nl_NL': 'Definieert relaties, adressen en bedrijven.',
     'description_ru_RU': 'Определение контрагентов, адресов и тп.',
-    'depends' : [
+    'depends': [
         'ir',
         'res',
         'country',
     ],
-    'xml' : [
+    'xml': [
         'party.xml',
         'category.xml',
         'address.xml',
@@ -36,8 +40,10 @@
     ],
     'translation': [
         'locale/bg_BG.po',
+        'locale/ca_ES.po',
         'locale/cs_CZ.po',
         'locale/de_DE.po',
+        'locale/es_AR.po',
         'locale/es_CO.po',
         'locale/es_ES.po',
         'locale/fr_FR.po',
diff --git a/address.py b/address.py
index 1558f40..9d0d050 100644
--- a/address.py
+++ b/address.py
@@ -16,15 +16,14 @@ class Address(ModelSQL, ModelView):
     _name = 'party.address'
     _description = __doc__
     party = fields.Many2One('party.party', 'Party', required=True,
-        ondelete='CASCADE', select=1,  states={
+        ondelete='CASCADE', select=True,  states={
             'readonly': If(~Eval('active'), True, Eval('id', 0) > 0),
             },
         depends=['active', 'id'])
     name = fields.Char('Name', states=STATES, depends=DEPENDS)
     street = fields.Char('Street', states=STATES, depends=DEPENDS)
     streetbis = fields.Char('Street (bis)', states=STATES, depends=DEPENDS)
-    zip = fields.Char('Zip', change_default=True,
-        states=STATES, depends=DEPENDS)
+    zip = fields.Char('Zip', states=STATES, depends=DEPENDS)
     city = fields.Char('City', states=STATES, depends=DEPENDS)
     country = fields.Many2One('country.country', 'Country',
         on_change=['country', 'subdivision'], states=STATES, depends=DEPENDS)
@@ -32,7 +31,7 @@ class Address(ModelSQL, ModelView):
             'Subdivision', domain=[('country', '=', Eval('country'))],
             states=STATES, depends=['active', 'country'])
     active = fields.Boolean('Active')
-    sequence = fields.Integer("Sequence")
+    sequence = fields.Integer("Sequence", required=True)
     full_address = fields.Function(fields.Text('Full Address'),
             'get_full_address')
 
@@ -113,12 +112,12 @@ class Address(ModelSQL, ModelView):
 
     def on_change_country(self, vals):
         subdivision_obj = Pool().get('country.subdivision')
-        result = dict((k, vals.get(k, False))
+        result = dict((k, vals.get(k))
             for k in ('country', 'subdivision'))
         if vals['subdivision']:
             subdivision = subdivision_obj.browse(vals['subdivision'])
             if subdivision.country.id != vals['country']:
-                result['subdivision'] = False
+                result['subdivision'] = None
         return result
 
 Address()
diff --git a/address.xml b/address.xml
index d0d0d6d..3848526 100644
--- a/address.xml
+++ b/address.xml
@@ -6,6 +6,7 @@ this repository contains the full copyright notices and license terms. -->
         <record model="ir.ui.view" id="address_view_tree">
             <field name="model">party.address</field>
             <field name="type">tree</field>
+            <field name="priority" eval="10"/>
             <field name="arch" type="xml">
                 <![CDATA[
                 <tree string="Addresses">
@@ -22,6 +23,26 @@ this repository contains the full copyright notices and license terms. -->
                 ]]>
             </field>
         </record>
+
+        <record model="ir.ui.view" id="address_view_tree_sequence">
+            <field name="model">party.address</field>
+            <field name="type">tree</field>
+            <field name="priority" eval="20"/>
+            <field name="arch" type="xml">
+                <![CDATA[
+                <tree string="Addresses" sequence="sequence">
+                    <field name="name"/>
+                    <field name="street"/>
+                    <field name="streetbis"/>
+                    <field name="zip"/>
+                    <field name="city"/>
+                    <field name="country"/>
+                    <field name="subdivision" expand="1"/>
+                </tree>
+                ]]>
+            </field>
+        </record>
+
         <record model="ir.ui.view" id="address_view_form">
             <field name="model">party.address</field>
             <field name="type">form</field>
diff --git a/category.py b/category.py
index 5db851b..dacca41 100644
--- a/category.py
+++ b/category.py
@@ -18,7 +18,7 @@ class Category(ModelSQL, ModelView):
     name = fields.Char('Name', required=True, states=STATES, translate=True,
         depends=DEPENDS)
     parent = fields.Many2One('party.category', 'Parent',
-        select=1, states=STATES, depends=DEPENDS)
+        select=True, states=STATES, depends=DEPENDS)
     childs = fields.One2Many('party.category', 'parent',
        'Children', states=STATES, depends=DEPENDS)
     active = fields.Boolean('Active')
@@ -40,7 +40,7 @@ class Category(ModelSQL, ModelView):
         self._order.insert(1, ('name', 'ASC'))
 
     def default_active(self):
-        return 1
+        return True
 
     def check_name(self, ids):
         for category in self.browse(ids):
@@ -52,6 +52,7 @@ class Category(ModelSQL, ModelView):
         if not ids:
             return {}
         res = {}
+
         def _name(category):
             if category.id in res:
                 return res[category.id]
diff --git a/category.xml b/category.xml
index fe5e162..71e9f47 100644
--- a/category.xml
+++ b/category.xml
@@ -25,8 +25,8 @@ this repository contains the full copyright notices and license terms. -->
             <field name="field_childs">childs</field>
             <field name="arch" type="xml">
                 <![CDATA[
-                <tree string="Categories" fill="1" keyword_open="1">
-                    <field name="name"/>
+                <tree string="Categories" keyword_open="1">
+                    <field name="name" expand="1"/>
                     <field name="parent" tree_invisible="1"/>
                     <field name="childs" tree_invisible="1"/>
                 </tree>
@@ -39,8 +39,8 @@ this repository contains the full copyright notices and license terms. -->
             <field name="priority" eval="10"/>
             <field name="arch" type="xml">
                 <![CDATA[
-                <tree string="Categories" fill="1">
-                    <field name="rec_name"/>
+                <tree string="Categories">
+                    <field name="rec_name" expand="1"/>
                 </tree>
                 ]]>
             </field>
diff --git a/configuration.py b/configuration.py
index 349842e..4266280 100644
--- a/configuration.py
+++ b/configuration.py
@@ -11,7 +11,7 @@ class Configuration(ModelSingleton, ModelSQL, ModelView):
     party_sequence = fields.Property(fields.Many2One('ir.sequence',
             'Party Sequence', domain=[
                 ('code', '=', 'party.party'),
-                ], required=True))
+                ]))
     party_lang = fields.Property(fields.Many2One("ir.lang", 'Party Language',
         help=('The value set on this field will preset the language on new '
             'parties')))
diff --git a/configuration.xml b/configuration.xml
index 06fb820..84e73cc 100644
--- a/configuration.xml
+++ b/configuration.xml
@@ -33,7 +33,6 @@ this repository contains the full copyright notices and license terms. -->
             sequence="0" icon="tryton-list"/>
 
         <record model="ir.property" id="property_party_sequence">
-            <field name="name">party_sequence</field>
             <field name="field"
                 search="[('model.model', '=', 'party.configuration'), ('name', '=', 'party_sequence')]"/>
             <field name="value" eval="'ir.sequence,' + str(ref('sequence_party'))"/>
diff --git a/contact_mechanism.py b/contact_mechanism.py
index 691457e..cadee56 100644
--- a/contact_mechanism.py
+++ b/contact_mechanism.py
@@ -30,13 +30,13 @@ class ContactMechanism(ModelSQL, ModelView):
 
     type = fields.Selection(_TYPES, 'Type', required=True, states=STATES,
         sort=False, depends=DEPENDS)
-    value = fields.Char('Value', select=1, states=STATES, on_change=['value'],
-        depends=DEPENDS)
+    value = fields.Char('Value', select=True, states=STATES,
+        on_change=['value'], depends=DEPENDS)
     comment = fields.Text('Comment', states=STATES, depends=DEPENDS)
     party = fields.Many2One('party.party', 'Party', required=True,
-        ondelete='CASCADE', states=STATES, select=1, depends=DEPENDS)
-    active = fields.Boolean('Active', select=1)
-    sequence = fields.Integer('Sequence')
+        ondelete='CASCADE', states=STATES, select=True, depends=DEPENDS)
+    active = fields.Boolean('Active', select=True)
+    sequence = fields.Integer('Sequence', required=True)
     email = fields.Function(fields.Char('E-Mail', states={
         'invisible': Eval('type') != 'email',
         'required': Eval('type') == 'email',
@@ -49,7 +49,7 @@ class ContactMechanism(ModelSQL, ModelView):
         'readonly': ~Eval('active', True),
         }, on_change=['website'], depends=['value', 'type', 'active']),
         'get_value', setter='set_value')
-    skype = fields.Function(fields.Char('Skype',states={
+    skype = fields.Function(fields.Char('Skype', states={
         'invisible': Eval('type') != 'skype',
         'required': Eval('type') == 'skype',
         'readonly': ~Eval('active', True),
diff --git a/contact_mechanism.xml b/contact_mechanism.xml
index e36f43a..0ad8cb9 100644
--- a/contact_mechanism.xml
+++ b/contact_mechanism.xml
@@ -7,6 +7,7 @@ this repository contains the full copyright notices and license terms. -->
         <record model="ir.ui.view" id="contact_mechanism_view_tree">
             <field name="model">party.contact_mechanism</field>
             <field name="type">tree</field>
+            <field name="priority" eval="10"/>
             <field name="arch" type="xml">
                 <![CDATA[
                 <tree string="Contact Mechanisms">
@@ -18,6 +19,21 @@ this repository contains the full copyright notices and license terms. -->
             </field>
         </record>
 
+        <record model="ir.ui.view" id="contact_mechanism_view_tree_sequence">
+            <field name="model">party.contact_mechanism</field>
+            <field name="type">tree</field>
+            <field name="priority" eval="20"/>
+            <field name="arch" type="xml">
+                <![CDATA[
+                <tree string="Contact Mechanisms" sequence="sequence">
+                    <field name="type"/>
+                    <field name="value"/>
+                    <field name="comment" expand="1"/>
+                </tree>
+                ]]>
+            </field>
+        </record>
+
         <record model="ir.ui.view" id="contact_mechanism_view_form">
             <field name="model">party.contact_mechanism</field>
             <field name="type">form</field>
diff --git a/locale/bg_BG.po b/locale/bg_BG.po
index 81826ec..7f703ef 100644
--- a/locale/bg_BG.po
+++ b/locale/bg_BG.po
@@ -2,267 +2,399 @@
 msgid ""
 msgstr "Content-Type: text/plain; charset=utf-8\n"
 
-msgctxt "error:party.address:0"
+msgctxt "error:party.address:"
 msgid "You can not modify the party of an address!"
 msgstr "Не може да променяте партньора за адрес!"
 
-msgctxt "error:party.category:0"
+msgctxt "error:party.category:"
 msgid "The name of a party category must be unique by parent!"
 msgstr "Името на категорията на партньора трябва да бъде уникална по родител!"
 
-msgctxt "error:party.category:0"
+msgctxt "error:party.category:"
 msgid "You can not create recursive categories!"
 msgstr "Не може да създавате взаимно вложени категории!"
 
-msgctxt "error:party.category:0"
+msgctxt "error:party.category:"
 msgid "You can not use \" / \" in name field!"
 msgstr "В името на полето не може да има \" / \"!"
 
-msgctxt "error:party.check_vies:0"
+msgctxt "error:party.check_vies:"
 msgid "The VIES service is unavailable, try again later."
 msgstr "VIES услугата е недостъпна, опитайте отново по-късно."
 
-msgctxt "error:party.contact_mechanism:0"
+msgctxt "error:party.contact_mechanism:"
 msgid "You can not modify the party of a contact mechanism!"
 msgstr "Не може да променяте партньора за начин на контакт!"
 
-msgctxt "error:party.party:0"
+msgctxt "error:party.party:"
 msgid "Invalid VAT number!"
 msgstr "Невалиден ДДС номер!"
 
-msgctxt "error:party.party:0"
+msgctxt "error:party.party:"
 msgid "The code of the party must be unique!"
 msgstr "Кода на партньора трябва да е уникален!"
 
-msgctxt "field:party.address,active:0"
+msgctxt "field:party.address,active:"
 msgid "Active"
 msgstr "Активен"
 
-msgctxt "field:party.address,city:0"
+msgctxt "field:party.address,city:"
 msgid "City"
 msgstr "Град"
 
-msgctxt "field:party.address,country:0"
+msgctxt "field:party.address,country:"
 msgid "Country"
 msgstr "Държава"
 
-msgctxt "field:party.address,full_address:0"
+msgctxt "field:party.address,create_date:"
+msgid "Create Date"
+msgstr "Създадено на"
+
+msgctxt "field:party.address,create_uid:"
+msgid "Create User"
+msgstr "Създадено от"
+
+msgctxt "field:party.address,full_address:"
 msgid "Full Address"
 msgstr "Пълен адрес"
 
-msgctxt "field:party.address,name:0"
+msgctxt "field:party.address,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.address,name:"
 msgid "Name"
 msgstr "Име"
 
-msgctxt "field:party.address,party:0"
+msgctxt "field:party.address,party:"
 msgid "Party"
 msgstr "Партньор"
 
-msgctxt "field:party.address,rec_name:0"
+msgctxt "field:party.address,rec_name:"
 msgid "Name"
 msgstr "Име"
 
-msgctxt "field:party.address,sequence:0"
+msgctxt "field:party.address,sequence:"
 msgid "Sequence"
 msgstr "Последователност"
 
-msgctxt "field:party.address,street:0"
+msgctxt "field:party.address,street:"
 msgid "Street"
 msgstr "Улица"
 
-msgctxt "field:party.address,streetbis:0"
+msgctxt "field:party.address,streetbis:"
 msgid "Street (bis)"
 msgstr "Улица 2"
 
-msgctxt "field:party.address,subdivision:0"
+msgctxt "field:party.address,subdivision:"
 msgid "Subdivision"
 msgstr "Подразделение"
 
-msgctxt "field:party.address,zip:0"
+msgctxt "field:party.address,write_date:"
+msgid "Write Date"
+msgstr "Променено на"
+
+msgctxt "field:party.address,write_uid:"
+msgid "Write User"
+msgstr "Променено от"
+
+msgctxt "field:party.address,zip:"
 msgid "Zip"
 msgstr "Пощ. код"
 
-msgctxt "field:party.category,active:0"
+msgctxt "field:party.category,active:"
 msgid "Active"
 msgstr "Активен"
 
-msgctxt "field:party.category,childs:0"
+msgctxt "field:party.category,childs:"
 msgid "Children"
 msgstr "Деца"
 
-msgctxt "field:party.category,name:0"
+msgctxt "field:party.category,create_date:"
+msgid "Create Date"
+msgstr "Създадено на"
+
+msgctxt "field:party.category,create_uid:"
+msgid "Create User"
+msgstr "Създадено от"
+
+msgctxt "field:party.category,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.category,name:"
 msgid "Name"
 msgstr "Име"
 
-msgctxt "field:party.category,parent:0"
+msgctxt "field:party.category,parent:"
 msgid "Parent"
 msgstr "Родител"
 
-msgctxt "field:party.category,rec_name:0"
+msgctxt "field:party.category,rec_name:"
 msgid "Name"
 msgstr "Име"
 
-msgctxt "field:party.check_vies.check,parties_failed:0"
+msgctxt "field:party.category,write_date:"
+msgid "Write Date"
+msgstr "Променено на"
+
+msgctxt "field:party.category,write_uid:"
+msgid "Write User"
+msgstr "Променено от"
+
+msgctxt "field:party.check_vies.no_result,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.check_vies.result,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.check_vies.result,parties_failed:"
 msgid "Parties Failed"
 msgstr "Партньора не е валиден"
 
-msgctxt "field:party.check_vies.check,parties_succeed:0"
+msgctxt "field:party.check_vies.result,parties_succeed:"
 msgid "Parties Succeed"
 msgstr "Валиден партньор"
 
-msgctxt "field:party.configuration,party_lang:0"
+msgctxt "field:party.configuration,create_date:"
+msgid "Create Date"
+msgstr "Създадено на"
+
+msgctxt "field:party.configuration,create_uid:"
+msgid "Create User"
+msgstr "Създадено от"
+
+msgctxt "field:party.configuration,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.configuration,party_lang:"
 msgid "Party Language"
 msgstr "Език на партньор"
 
-msgctxt "field:party.configuration,party_sequence:0"
+msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
 msgstr "Последователност за партньор"
 
-msgctxt "field:party.configuration,rec_name:0"
+msgctxt "field:party.configuration,rec_name:"
 msgid "Name"
 msgstr "Име"
 
-msgctxt "field:party.contact_mechanism,active:0"
+msgctxt "field:party.configuration,write_date:"
+msgid "Write Date"
+msgstr "Променено на"
+
+msgctxt "field:party.configuration,write_uid:"
+msgid "Write User"
+msgstr "Променено от"
+
+msgctxt "field:party.contact_mechanism,active:"
 msgid "Active"
 msgstr "Активен"
 
-msgctxt "field:party.contact_mechanism,comment:0"
+msgctxt "field:party.contact_mechanism,comment:"
 msgid "Comment"
 msgstr "Коментар"
 
-msgctxt "field:party.contact_mechanism,email:0"
+msgctxt "field:party.contact_mechanism,create_date:"
+msgid "Create Date"
+msgstr "Създадено на"
+
+msgctxt "field:party.contact_mechanism,create_uid:"
+msgid "Create User"
+msgstr "Създадено от"
+
+msgctxt "field:party.contact_mechanism,email:"
 msgid "E-Mail"
 msgstr "E-Mail"
 
-msgctxt "field:party.contact_mechanism,other_value:0"
+msgctxt "field:party.contact_mechanism,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.contact_mechanism,other_value:"
 msgid "Value"
 msgstr "Стойност"
 
-msgctxt "field:party.contact_mechanism,party:0"
+msgctxt "field:party.contact_mechanism,party:"
 msgid "Party"
 msgstr "Партньор"
 
-msgctxt "field:party.contact_mechanism,rec_name:0"
+msgctxt "field:party.contact_mechanism,rec_name:"
 msgid "Name"
 msgstr "Име"
 
-msgctxt "field:party.contact_mechanism,sequence:0"
+msgctxt "field:party.contact_mechanism,sequence:"
 msgid "Sequence"
 msgstr "Последователност"
 
-msgctxt "field:party.contact_mechanism,sip:0"
+msgctxt "field:party.contact_mechanism,sip:"
 msgid "SIP"
 msgstr "SIP"
 
-msgctxt "field:party.contact_mechanism,skype:0"
+msgctxt "field:party.contact_mechanism,skype:"
 msgid "Skype"
 msgstr "Skype"
 
-msgctxt "field:party.contact_mechanism,type:0"
+msgctxt "field:party.contact_mechanism,type:"
 msgid "Type"
 msgstr "Вид"
 
-msgctxt "field:party.contact_mechanism,value:0"
+msgctxt "field:party.contact_mechanism,value:"
 msgid "Value"
 msgstr "Стойност"
 
-msgctxt "field:party.contact_mechanism,website:0"
+msgctxt "field:party.contact_mechanism,website:"
 msgid "Website"
 msgstr "Website"
 
-msgctxt "field:party.party,active:0"
+msgctxt "field:party.contact_mechanism,write_date:"
+msgid "Write Date"
+msgstr "Променено на"
+
+msgctxt "field:party.contact_mechanism,write_uid:"
+msgid "Write User"
+msgstr "Променено от"
+
+msgctxt "field:party.party,active:"
 msgid "Active"
 msgstr "Активен"
 
-msgctxt "field:party.party,addresses:0"
+msgctxt "field:party.party,addresses:"
 msgid "Addresses"
 msgstr "Адреси"
 
-msgctxt "field:party.party,categories:0"
+msgctxt "field:party.party,categories:"
 msgid "Categories"
 msgstr "Категории"
 
-msgctxt "field:party.party,code:0"
+msgctxt "field:party.party,code:"
 msgid "Code"
 msgstr "Код"
 
-msgctxt "field:party.party,code_length:0"
+msgctxt "field:party.party,code_length:"
 msgid "Code Length"
 msgstr "Дължина на кода"
 
-msgctxt "field:party.party,contact_mechanisms:0"
+msgctxt "field:party.party,code_readonly:"
+msgid "Code Readonly"
+msgstr ""
+
+msgctxt "field:party.party,contact_mechanisms:"
 msgid "Contact Mechanisms"
 msgstr "Начини на контакт"
 
-msgctxt "field:party.party,email:0"
+msgctxt "field:party.party,create_date:"
+msgid "Create Date"
+msgstr "Създадено на"
+
+msgctxt "field:party.party,create_uid:"
+msgid "Create User"
+msgstr "Създадено от"
+
+msgctxt "field:party.party,email:"
 msgid "E-Mail"
 msgstr "E-Mail"
 
-msgctxt "field:party.party,fax:0"
+msgctxt "field:party.party,fax:"
 msgid "Fax"
 msgstr "Факс"
 
-msgctxt "field:party.party,full_name:0"
+msgctxt "field:party.party,full_name:"
 msgid "Full Name"
 msgstr "Пълно име"
 
-msgctxt "field:party.party,lang:0"
+msgctxt "field:party.party,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.party,lang:"
 msgid "Language"
 msgstr "Език"
 
-msgctxt "field:party.party,mobile:0"
+msgctxt "field:party.party,mobile:"
 msgid "Mobile"
 msgstr "Мобилен"
 
-msgctxt "field:party.party,name:0"
+msgctxt "field:party.party,name:"
 msgid "Name"
 msgstr "Име"
 
-msgctxt "field:party.party,phone:0"
+msgctxt "field:party.party,phone:"
 msgid "Phone"
 msgstr "Телефон"
 
-msgctxt "field:party.party,rec_name:0"
+msgctxt "field:party.party,rec_name:"
 msgid "Name"
 msgstr "Име"
 
-msgctxt "field:party.party,vat_code:0"
+msgctxt "field:party.party,vat_code:"
 msgid "VAT Code"
 msgstr "ДДС код"
 
-msgctxt "field:party.party,vat_country:0"
+msgctxt "field:party.party,vat_country:"
 msgid "VAT Country"
 msgstr "ДДС държава"
 
-msgctxt "field:party.party,vat_number:0"
+msgctxt "field:party.party,vat_number:"
 msgid "VAT Number"
 msgstr "ДДС номер"
 
-msgctxt "field:party.party,website:0"
+msgctxt "field:party.party,website:"
 msgid "Website"
 msgstr "Website"
 
-msgctxt "field:party.party-party.category,category:0"
+msgctxt "field:party.party,write_date:"
+msgid "Write Date"
+msgstr "Променено на"
+
+msgctxt "field:party.party,write_uid:"
+msgid "Write User"
+msgstr "Променено от"
+
+msgctxt "field:party.party-party.category,category:"
 msgid "Category"
 msgstr "Категория"
 
-msgctxt "field:party.party-party.category,party:0"
+msgctxt "field:party.party-party.category,create_date:"
+msgid "Create Date"
+msgstr "Създадено на"
+
+msgctxt "field:party.party-party.category,create_uid:"
+msgid "Create User"
+msgstr "Създадено от"
+
+msgctxt "field:party.party-party.category,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.party-party.category,party:"
 msgid "Party"
 msgstr "Партньор"
 
-msgctxt "field:party.party-party.category,rec_name:0"
+msgctxt "field:party.party-party.category,rec_name:"
 msgid "Name"
 msgstr "Име"
 
-msgctxt "help:party.configuration,party_lang:0"
+msgctxt "field:party.party-party.category,write_date:"
+msgid "Write Date"
+msgstr "Променено на"
+
+msgctxt "field:party.party-party.category,write_uid:"
+msgid "Write User"
+msgstr "Променено от"
+
+msgctxt "help:party.configuration,party_lang:"
 msgid "The value set on this field will preset the language on new parties"
 msgstr "Стойността в това поле ще се използва за език при нови партньори."
 
-msgctxt "help:party.party,vat_country:0"
+msgctxt "help:party.party,vat_country:"
 msgid "Setting VAT country will enable validation of the VAT number."
 msgstr "Оказвайки държава за ДДС ще позволи да се провери ДДС номера."
 
-msgctxt "help:party.party,vat_number:0"
+msgctxt "help:party.party,vat_number:"
 msgid "Value Added Tax number"
 msgstr "ДДС номер"
 
@@ -270,7 +402,6 @@ msgctxt "model:ir.action,name:act_address_form"
 msgid "Addresses"
 msgstr "Адреси"
 
-#, fuzzy
 msgctxt "model:ir.action,name:act_category_list"
 msgid "Categories"
 msgstr "Категории"
@@ -311,7 +442,6 @@ msgctxt "model:ir.ui.menu,name:menu_address_form"
 msgid "Addresses"
 msgstr "Адреси"
 
-#, fuzzy
 msgctxt "model:ir.ui.menu,name:menu_category_list"
 msgid "Categories"
 msgstr "Категории"
@@ -324,7 +454,6 @@ msgctxt "model:ir.ui.menu,name:menu_configuration"
 msgid "Configuration"
 msgstr "Конфигурация"
 
-#, fuzzy
 msgctxt "model:ir.ui.menu,name:menu_party"
 msgid "Party"
 msgstr "Управление на партньор"
@@ -337,35 +466,35 @@ msgctxt "model:ir.ui.menu,name:menu_party_form"
 msgid "Parties"
 msgstr "Партньори"
 
-msgctxt "model:party.address,name:0"
+msgctxt "model:party.address,name:"
 msgid "Address"
 msgstr "Адрес"
 
-msgctxt "model:party.category,name:0"
+msgctxt "model:party.category,name:"
 msgid "Category"
 msgstr "Категория"
 
-msgctxt "model:party.check_vies.check,name:0"
-msgid "Check VIES - Check"
-msgstr "Проверка ДДС номер (VIES) - проверка"
+msgctxt "model:party.check_vies.no_result,name:"
+msgid "Check VIES"
+msgstr "Провека в VIES"
 
-msgctxt "model:party.check_vies.no_check,name:0"
-msgid "Check VIES - No Check"
-msgstr "Проверка ДДС номер (VIES) - без проверка"
+msgctxt "model:party.check_vies.result,name:"
+msgid "Check VIES"
+msgstr "Провека в VIES"
 
-msgctxt "model:party.configuration,name:0"
+msgctxt "model:party.configuration,name:"
 msgid "Party Configuration"
 msgstr "Конфигуриране на партньор"
 
-msgctxt "model:party.contact_mechanism,name:0"
+msgctxt "model:party.contact_mechanism,name:"
 msgid "Contact Mechanism"
 msgstr "Начин на контакт"
 
-msgctxt "model:party.party,name:0"
+msgctxt "model:party.party,name:"
 msgid "Party"
 msgstr "Партньор"
 
-msgctxt "model:party.party-party.category,name:0"
+msgctxt "model:party.party-party.category,name:"
 msgid "Party - Category"
 msgstr "Партньор - Категория"
 
@@ -373,126 +502,118 @@ msgctxt "model:res.group,name:group_party_admin"
 msgid "Party Administration"
 msgstr "Управление на партньор"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "E-Mail"
 msgstr "E-Mail"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Fax"
 msgstr "Факс"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "IRC"
 msgstr "IRC"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Jabber"
 msgstr "Jabber"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Mobile"
 msgstr "Мобилен"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Other"
 msgstr "Друг"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Phone"
 msgstr "Телефон"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "SIP"
 msgstr "SIP"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Skype"
 msgstr "Skype"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Website"
 msgstr "Website"
 
-msgctxt "view:party.address:0"
+msgctxt "view:party.address:"
 msgid "Addresses"
 msgstr "Адреси"
 
-msgctxt "view:party.category:0"
+msgctxt "view:party.category:"
 msgid "Categories"
 msgstr "Категории"
 
-msgctxt "view:party.category:0"
+msgctxt "view:party.category:"
 msgid "Category"
 msgstr "Категория"
 
-msgctxt "view:party.check_vies.check:0"
-msgid "Parties Failed"
-msgstr "Партньора не е валиден"
-
-msgctxt "view:party.check_vies.check:0"
-msgid "Parties Succeed"
-msgstr "Валиден партньор"
-
-msgctxt "view:party.check_vies.check:0"
-msgid "VAT Information Exchange System Results"
-msgstr "Резултати от Система за обмен на инфиормация за ДДС"
-
-msgctxt "view:party.check_vies.no_check:0"
+msgctxt "view:party.check_vies.no_result:"
 msgid "VAT Information Exchange System"
 msgstr "Система за обмен на ДДС информация"
 
-msgctxt "view:party.check_vies.no_check:0"
+msgctxt "view:party.check_vies.no_result:"
 msgid "You must have a recent version of \"vatnumber\" installed!"
 msgstr "Трябва да имате инсталирана последната версия на \"vatnumber\"!"
 
-msgctxt "view:party.configuration:0"
+msgctxt "view:party.check_vies.result:"
+msgid "VAT Information Exchange System Results"
+msgstr "Резултати от Система за обмен на инфиормация за ДДС"
+
+msgctxt "view:party.configuration:"
 msgid "Party Configuration"
 msgstr "Конфигуриране на партньор"
 
-msgctxt "view:party.contact_mechanism:0"
+msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanism"
 msgstr "Начин на контакт"
 
-msgctxt "view:party.contact_mechanism:0"
+msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanisms"
 msgstr "Начини на контакт"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Accounting"
 msgstr "Счетоводство"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Addresses"
 msgstr "Адреси"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Categories"
 msgstr "Категории"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Contact Mechanisms"
 msgstr "Начини на контакт"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "General"
 msgstr "Основен"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Parties"
 msgstr "Партньори"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Party"
 msgstr "Партньор"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "VAT"
 msgstr "ДДС"
 
-msgctxt "wizard_button:party.check_vies,check,end:0"
+msgctxt "wizard_button:party.check_vies,no_result,end:"
 msgid "Ok"
 msgstr "Добре"
 
-msgctxt "wizard_button:party.check_vies,no_check,end:0"
+msgctxt "wizard_button:party.check_vies,result,end:"
 msgid "Ok"
 msgstr "Добре"
diff --git a/locale/ca_ES.po b/locale/ca_ES.po
new file mode 100644
index 0000000..80a9c34
--- /dev/null
+++ b/locale/ca_ES.po
@@ -0,0 +1,643 @@
+# 
+msgid ""
+msgstr "Content-Type: text/plain; charset=utf-8\n"
+
+msgctxt "error:party.address:"
+msgid "You can not modify the party of an address!"
+msgstr "No pot modificar el tercer d'una adreça"
+
+msgctxt "error:party.category:"
+msgid "The name of a party category must be unique by parent!"
+msgstr ""
+
+msgctxt "error:party.category:"
+msgid "You can not create recursive categories!"
+msgstr "No pot crear categories recursives"
+
+msgctxt "error:party.category:"
+msgid "You can not use \" / \" in name field!"
+msgstr ""
+
+msgctxt "error:party.check_vies:"
+msgid "The VIES service is unavailable, try again later."
+msgstr "El servei VIES no està disponible, intenti-ho de nou més tard"
+
+msgctxt "error:party.contact_mechanism:"
+msgid "You can not modify the party of a contact mechanism!"
+msgstr "No pot modificar el tercer d'un contacte"
+
+msgctxt "error:party.party:"
+msgid "Invalid VAT number!"
+msgstr "El NIF no és vàlid"
+
+msgctxt "error:party.party:"
+msgid "The code of the party must be unique!"
+msgstr "El codi del tercer ha de ser únic"
+
+msgctxt "field:party.address,active:"
+msgid "Active"
+msgstr "Actiu"
+
+msgctxt "field:party.address,city:"
+msgid "City"
+msgstr "Ciutat"
+
+msgctxt "field:party.address,country:"
+msgid "Country"
+msgstr "País"
+
+msgctxt "field:party.address,create_date:"
+msgid "Create Date"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:party.address,create_uid:"
+msgid "Create User"
+msgstr "Crear usuari"
+
+msgctxt "field:party.address,full_address:"
+msgid "Full Address"
+msgstr ""
+
+msgctxt "field:party.address,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.address,name:"
+msgid "Name"
+msgstr "Contacte"
+
+msgctxt "field:party.address,party:"
+msgid "Party"
+msgstr "Tercer"
+
+msgctxt "field:party.address,rec_name:"
+msgid "Name"
+msgstr "Contacte"
+
+msgctxt "field:party.address,sequence:"
+msgid "Sequence"
+msgstr "Seqüència"
+
+msgctxt "field:party.address,street:"
+msgid "Street"
+msgstr "Carrer"
+
+msgctxt "field:party.address,streetbis:"
+msgid "Street (bis)"
+msgstr "Carrer (bis)"
+
+msgctxt "field:party.address,subdivision:"
+msgid "Subdivision"
+msgstr "Subdivisió"
+
+msgctxt "field:party.address,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.address,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:party.address,zip:"
+msgid "Zip"
+msgstr "Codi postal"
+
+msgctxt "field:party.category,active:"
+msgid "Active"
+msgstr "Actiu"
+
+msgctxt "field:party.category,childs:"
+msgid "Children"
+msgstr "Fills"
+
+msgctxt "field:party.category,create_date:"
+msgid "Create Date"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:party.category,create_uid:"
+msgid "Create User"
+msgstr "Crear usuari"
+
+msgctxt "field:party.category,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.category,name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:party.category,parent:"
+msgid "Parent"
+msgstr "Pare"
+
+msgctxt "field:party.category,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:party.category,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.category,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:party.check_vies.no_result,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.check_vies.result,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.check_vies.result,parties_failed:"
+msgid "Parties Failed"
+msgstr ""
+
+msgctxt "field:party.check_vies.result,parties_succeed:"
+msgid "Parties Succeed"
+msgstr ""
+
+msgctxt "field:party.configuration,create_date:"
+msgid "Create Date"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:party.configuration,create_uid:"
+msgid "Create User"
+msgstr "Crear usuari"
+
+msgctxt "field:party.configuration,id:"
+msgid "ID"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:party.configuration,party_lang:"
+msgid "Party Language"
+msgstr "Idioma del tercer"
+
+msgctxt "field:party.configuration,party_sequence:"
+msgid "Party Sequence"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:party.configuration,rec_name:"
+msgid "Name"
+msgstr "Nom del camp"
+
+msgctxt "field:party.configuration,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.configuration,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,active:"
+msgid "Active"
+msgstr "Actiu"
+
+msgctxt "field:party.contact_mechanism,comment:"
+msgid "Comment"
+msgstr "Comentari"
+
+msgctxt "field:party.contact_mechanism,create_date:"
+msgid "Create Date"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:party.contact_mechanism,create_uid:"
+msgid "Create User"
+msgstr "Crear usuari"
+
+msgctxt "field:party.contact_mechanism,email:"
+msgid "E-Mail"
+msgstr "Correu electrònic"
+
+msgctxt "field:party.contact_mechanism,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,other_value:"
+msgid "Value"
+msgstr "Valor"
+
+msgctxt "field:party.contact_mechanism,party:"
+msgid "Party"
+msgstr "Tercer"
+
+msgctxt "field:party.contact_mechanism,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:party.contact_mechanism,sequence:"
+msgid "Sequence"
+msgstr "Seqüència"
+
+msgctxt "field:party.contact_mechanism,sip:"
+msgid "SIP"
+msgstr "SIP"
+
+msgctxt "field:party.contact_mechanism,skype:"
+msgid "Skype"
+msgstr "Skype"
+
+msgctxt "field:party.contact_mechanism,type:"
+msgid "Type"
+msgstr "Tipus"
+
+msgctxt "field:party.contact_mechanism,value:"
+msgid "Value"
+msgstr "Valor"
+
+msgctxt "field:party.contact_mechanism,website:"
+msgid "Website"
+msgstr "Lloc web"
+
+msgctxt "field:party.contact_mechanism,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:party.party,active:"
+msgid "Active"
+msgstr "Actiu"
+
+msgctxt "field:party.party,addresses:"
+msgid "Addresses"
+msgstr "Adreces"
+
+msgctxt "field:party.party,categories:"
+msgid "Categories"
+msgstr "Categories"
+
+msgctxt "field:party.party,code:"
+msgid "Code"
+msgstr "Codi"
+
+msgctxt "field:party.party,code_length:"
+msgid "Code Length"
+msgstr "Dígits del codi"
+
+msgctxt "field:party.party,code_readonly:"
+msgid "Code Readonly"
+msgstr ""
+
+msgctxt "field:party.party,contact_mechanisms:"
+msgid "Contact Mechanisms"
+msgstr "Mitjans de contacte"
+
+msgctxt "field:party.party,create_date:"
+msgid "Create Date"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:party.party,create_uid:"
+msgid "Create User"
+msgstr "Crear usuari"
+
+msgctxt "field:party.party,email:"
+msgid "E-Mail"
+msgstr "Correu electrònic"
+
+msgctxt "field:party.party,fax:"
+msgid "Fax"
+msgstr "Fax"
+
+msgctxt "field:party.party,full_name:"
+msgid "Full Name"
+msgstr ""
+
+msgctxt "field:party.party,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.party,lang:"
+msgid "Language"
+msgstr "Idioma"
+
+msgctxt "field:party.party,mobile:"
+msgid "Mobile"
+msgstr "Mòbil"
+
+msgctxt "field:party.party,name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:party.party,phone:"
+msgid "Phone"
+msgstr "Telèfon"
+
+msgctxt "field:party.party,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:party.party,vat_code:"
+msgid "VAT Code"
+msgstr "NIF"
+
+msgctxt "field:party.party,vat_country:"
+msgid "VAT Country"
+msgstr "País del NIF"
+
+msgctxt "field:party.party,vat_number:"
+msgid "VAT Number"
+msgstr "NIF"
+
+msgctxt "field:party.party,website:"
+msgid "Website"
+msgstr "Lloc web"
+
+msgctxt "field:party.party,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.party,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:party.party-party.category,category:"
+msgid "Category"
+msgstr "Categoria"
+
+msgctxt "field:party.party-party.category,create_date:"
+msgid "Create Date"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:party.party-party.category,create_uid:"
+msgid "Create User"
+msgstr "Crear usuari"
+
+msgctxt "field:party.party-party.category,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.party-party.category,party:"
+msgid "Party"
+msgstr "Tercer"
+
+msgctxt "field:party.party-party.category,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:party.party-party.category,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.party-party.category,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "help:party.configuration,party_lang:"
+msgid "The value set on this field will preset the language on new parties"
+msgstr ""
+
+msgctxt "help:party.party,vat_country:"
+msgid "Setting VAT country will enable validation of the VAT number."
+msgstr ""
+"En especificar el país del NIF s'habilitarà la verificació del número."
+
+msgctxt "help:party.party,vat_number:"
+msgid "Value Added Tax number"
+msgstr "Número d'identificació fiscal"
+
+msgctxt "model:ir.action,name:act_address_form"
+msgid "Addresses"
+msgstr "Adreces"
+
+#, fuzzy
+msgctxt "model:ir.action,name:act_category_list"
+msgid "Categories"
+msgstr "Categories"
+
+msgctxt "model:ir.action,name:act_category_tree"
+msgid "Categories"
+msgstr "Categories"
+
+msgctxt "model:ir.action,name:act_party_by_category"
+msgid "Parties by Category"
+msgstr "Tercers per categoria"
+
+msgctxt "model:ir.action,name:act_party_configuration_form"
+msgid "Party Configuration"
+msgstr ""
+
+msgctxt "model:ir.action,name:act_party_form"
+msgid "Parties"
+msgstr "Tercers"
+
+msgctxt "model:ir.action,name:report_label"
+msgid "Labels"
+msgstr "Etiquetes"
+
+msgctxt "model:ir.action,name:wizard_check_vies"
+msgid "Check VIES"
+msgstr "Comprovar VIES"
+
+msgctxt "model:ir.sequence,name:sequence_party"
+msgid "Party"
+msgstr "Tercer"
+
+msgctxt "model:ir.sequence.type,name:sequence_type_party"
+msgid "Party"
+msgstr "Tercer"
+
+msgctxt "model:ir.ui.menu,name:menu_address_form"
+msgid "Addresses"
+msgstr "Adreces"
+
+#, fuzzy
+msgctxt "model:ir.ui.menu,name:menu_category_list"
+msgid "Categories"
+msgstr "Categories"
+
+msgctxt "model:ir.ui.menu,name:menu_category_tree"
+msgid "Categories"
+msgstr "Categories"
+
+msgctxt "model:ir.ui.menu,name:menu_configuration"
+msgid "Configuration"
+msgstr "Configuració"
+
+#, fuzzy
+msgctxt "model:ir.ui.menu,name:menu_party"
+msgid "Party"
+msgstr "Gestió de tercers"
+
+msgctxt "model:ir.ui.menu,name:menu_party_configuration"
+msgid "Party Configuration"
+msgstr ""
+
+msgctxt "model:ir.ui.menu,name:menu_party_form"
+msgid "Parties"
+msgstr "Tercers"
+
+msgctxt "model:party.address,name:"
+msgid "Address"
+msgstr "Adreça"
+
+msgctxt "model:party.category,name:"
+msgid "Category"
+msgstr "Categoria"
+
+#, fuzzy
+msgctxt "model:party.check_vies.no_result,name:"
+msgid "Check VIES"
+msgstr "Comprovar VIES"
+
+#, fuzzy
+msgctxt "model:party.check_vies.result,name:"
+msgid "Check VIES"
+msgstr "Comprovar VIES"
+
+msgctxt "model:party.configuration,name:"
+msgid "Party Configuration"
+msgstr ""
+
+msgctxt "model:party.contact_mechanism,name:"
+msgid "Contact Mechanism"
+msgstr "Mitjà de contacte"
+
+msgctxt "model:party.party,name:"
+msgid "Party"
+msgstr "Tercer"
+
+msgctxt "model:party.party-party.category,name:"
+msgid "Party - Category"
+msgstr "Tercer - Categoria"
+
+msgctxt "model:res.group,name:group_party_admin"
+msgid "Party Administration"
+msgstr "Administració de tercers"
+
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "E-Mail"
+msgstr "Correu electrònic"
+
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "Fax"
+msgstr "Fax"
+
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "IRC"
+msgstr "IRC"
+
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "Jabber"
+msgstr "Jabber"
+
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "Mobile"
+msgstr "Mòbil"
+
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "Other"
+msgstr "Un altre"
+
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "Phone"
+msgstr "Telèfon"
+
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "SIP"
+msgstr "SIP"
+
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "Skype"
+msgstr "Skype"
+
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "Website"
+msgstr "Lloc Web"
+
+msgctxt "view:party.address:"
+msgid "Addresses"
+msgstr "Adreces"
+
+msgctxt "view:party.category:"
+msgid "Categories"
+msgstr "Categories"
+
+msgctxt "view:party.category:"
+msgid "Category"
+msgstr "Categoria"
+
+msgctxt "view:party.check_vies.no_result:"
+msgid "VAT Information Exchange System"
+msgstr ""
+
+msgctxt "view:party.check_vies.no_result:"
+msgid "You must have a recent version of \"vatnumber\" installed!"
+msgstr ""
+
+msgctxt "view:party.check_vies.result:"
+msgid "VAT Information Exchange System Results"
+msgstr ""
+
+msgctxt "view:party.configuration:"
+msgid "Party Configuration"
+msgstr ""
+
+msgctxt "view:party.contact_mechanism:"
+msgid "Contact Mechanism"
+msgstr "Mitjà de contacte"
+
+msgctxt "view:party.contact_mechanism:"
+msgid "Contact Mechanisms"
+msgstr "Mitjà de contacte"
+
+msgctxt "view:party.party:"
+msgid "Account"
+msgstr "Compte"
+
+msgctxt "view:party.party:"
+msgid "Accounting"
+msgstr "Comptabilitat"
+
+msgctxt "view:party.party:"
+msgid "Addresses"
+msgstr "Adreces"
+
+msgctxt "view:party.party:"
+msgid "Categories"
+msgstr "Categories"
+
+msgctxt "view:party.party:"
+msgid "Contact Mechanisms"
+msgstr "Mitjans de contacte"
+
+msgctxt "view:party.party:"
+msgid "General"
+msgstr "General"
+
+msgctxt "view:party.party:"
+msgid "Parties"
+msgstr "Tercers"
+
+msgctxt "view:party.party:"
+msgid "Party"
+msgstr "Tercer"
+
+msgctxt "view:party.party:"
+msgid "VAT"
+msgstr "NIF"
+
+msgctxt "view:party.party:"
+msgid "_General"
+msgstr "_General"
+
+#, fuzzy
+msgctxt "wizard_button:party.check_vies,no_result,end:"
+msgid "Ok"
+msgstr "Acceptar"
+
+#, fuzzy
+msgctxt "wizard_button:party.check_vies,result,end:"
+msgid "Ok"
+msgstr "Acceptar"
diff --git a/locale/cs_CZ.po b/locale/cs_CZ.po
index 1f484b6..41be949 100644
--- a/locale/cs_CZ.po
+++ b/locale/cs_CZ.po
@@ -2,267 +2,399 @@
 msgid ""
 msgstr "Content-Type: text/plain; charset=utf-8\n"
 
-msgctxt "error:party.address:0"
+msgctxt "error:party.address:"
 msgid "You can not modify the party of an address!"
 msgstr ""
 
-msgctxt "error:party.category:0"
+msgctxt "error:party.category:"
 msgid "The name of a party category must be unique by parent!"
 msgstr ""
 
-msgctxt "error:party.category:0"
+msgctxt "error:party.category:"
 msgid "You can not create recursive categories!"
 msgstr ""
 
-msgctxt "error:party.category:0"
+msgctxt "error:party.category:"
 msgid "You can not use \" / \" in name field!"
 msgstr ""
 
-msgctxt "error:party.check_vies:0"
+msgctxt "error:party.check_vies:"
 msgid "The VIES service is unavailable, try again later."
 msgstr ""
 
-msgctxt "error:party.contact_mechanism:0"
+msgctxt "error:party.contact_mechanism:"
 msgid "You can not modify the party of a contact mechanism!"
 msgstr ""
 
-msgctxt "error:party.party:0"
+msgctxt "error:party.party:"
 msgid "Invalid VAT number!"
 msgstr ""
 
-msgctxt "error:party.party:0"
+msgctxt "error:party.party:"
 msgid "The code of the party must be unique!"
 msgstr ""
 
-msgctxt "field:party.address,active:0"
+msgctxt "field:party.address,active:"
 msgid "Active"
 msgstr ""
 
-msgctxt "field:party.address,city:0"
+msgctxt "field:party.address,city:"
 msgid "City"
 msgstr ""
 
-msgctxt "field:party.address,country:0"
+msgctxt "field:party.address,country:"
 msgid "Country"
 msgstr ""
 
-msgctxt "field:party.address,full_address:0"
+msgctxt "field:party.address,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:party.address,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:party.address,full_address:"
 msgid "Full Address"
 msgstr ""
 
-msgctxt "field:party.address,name:0"
+msgctxt "field:party.address,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.address,name:"
 msgid "Name"
 msgstr ""
 
-msgctxt "field:party.address,party:0"
+msgctxt "field:party.address,party:"
 msgid "Party"
 msgstr ""
 
-msgctxt "field:party.address,rec_name:0"
+msgctxt "field:party.address,rec_name:"
 msgid "Name"
 msgstr ""
 
-msgctxt "field:party.address,sequence:0"
+msgctxt "field:party.address,sequence:"
 msgid "Sequence"
 msgstr ""
 
-msgctxt "field:party.address,street:0"
+msgctxt "field:party.address,street:"
 msgid "Street"
 msgstr ""
 
-msgctxt "field:party.address,streetbis:0"
+msgctxt "field:party.address,streetbis:"
 msgid "Street (bis)"
 msgstr ""
 
-msgctxt "field:party.address,subdivision:0"
+msgctxt "field:party.address,subdivision:"
 msgid "Subdivision"
 msgstr ""
 
-msgctxt "field:party.address,zip:0"
+msgctxt "field:party.address,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.address,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:party.address,zip:"
 msgid "Zip"
 msgstr ""
 
-msgctxt "field:party.category,active:0"
+msgctxt "field:party.category,active:"
 msgid "Active"
 msgstr ""
 
-msgctxt "field:party.category,childs:0"
+msgctxt "field:party.category,childs:"
 msgid "Children"
 msgstr ""
 
-msgctxt "field:party.category,name:0"
+msgctxt "field:party.category,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:party.category,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:party.category,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.category,name:"
 msgid "Name"
 msgstr ""
 
-msgctxt "field:party.category,parent:0"
+msgctxt "field:party.category,parent:"
 msgid "Parent"
 msgstr ""
 
-msgctxt "field:party.category,rec_name:0"
+msgctxt "field:party.category,rec_name:"
 msgid "Name"
 msgstr ""
 
-msgctxt "field:party.check_vies.check,parties_failed:0"
+msgctxt "field:party.category,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.category,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:party.check_vies.no_result,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.check_vies.result,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.check_vies.result,parties_failed:"
 msgid "Parties Failed"
 msgstr ""
 
-msgctxt "field:party.check_vies.check,parties_succeed:0"
+msgctxt "field:party.check_vies.result,parties_succeed:"
 msgid "Parties Succeed"
 msgstr ""
 
-msgctxt "field:party.configuration,party_lang:0"
+msgctxt "field:party.configuration,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:party.configuration,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:party.configuration,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.configuration,party_lang:"
 msgid "Party Language"
 msgstr ""
 
-msgctxt "field:party.configuration,party_sequence:0"
+msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
 msgstr ""
 
-msgctxt "field:party.configuration,rec_name:0"
+msgctxt "field:party.configuration,rec_name:"
 msgid "Name"
 msgstr ""
 
-msgctxt "field:party.contact_mechanism,active:0"
+msgctxt "field:party.configuration,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.configuration,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,active:"
 msgid "Active"
 msgstr ""
 
-msgctxt "field:party.contact_mechanism,comment:0"
+msgctxt "field:party.contact_mechanism,comment:"
 msgid "Comment"
 msgstr ""
 
-msgctxt "field:party.contact_mechanism,email:0"
+msgctxt "field:party.contact_mechanism,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,email:"
 msgid "E-Mail"
 msgstr ""
 
-msgctxt "field:party.contact_mechanism,other_value:0"
+msgctxt "field:party.contact_mechanism,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,other_value:"
 msgid "Value"
 msgstr ""
 
-msgctxt "field:party.contact_mechanism,party:0"
+msgctxt "field:party.contact_mechanism,party:"
 msgid "Party"
 msgstr ""
 
-msgctxt "field:party.contact_mechanism,rec_name:0"
+msgctxt "field:party.contact_mechanism,rec_name:"
 msgid "Name"
 msgstr ""
 
-msgctxt "field:party.contact_mechanism,sequence:0"
+msgctxt "field:party.contact_mechanism,sequence:"
 msgid "Sequence"
 msgstr ""
 
-msgctxt "field:party.contact_mechanism,sip:0"
+msgctxt "field:party.contact_mechanism,sip:"
 msgid "SIP"
 msgstr ""
 
-msgctxt "field:party.contact_mechanism,skype:0"
+msgctxt "field:party.contact_mechanism,skype:"
 msgid "Skype"
 msgstr ""
 
-msgctxt "field:party.contact_mechanism,type:0"
+msgctxt "field:party.contact_mechanism,type:"
 msgid "Type"
 msgstr ""
 
-msgctxt "field:party.contact_mechanism,value:0"
+msgctxt "field:party.contact_mechanism,value:"
 msgid "Value"
 msgstr ""
 
-msgctxt "field:party.contact_mechanism,website:0"
+msgctxt "field:party.contact_mechanism,website:"
 msgid "Website"
 msgstr ""
 
-msgctxt "field:party.party,active:0"
+msgctxt "field:party.contact_mechanism,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:party.party,active:"
 msgid "Active"
 msgstr ""
 
-msgctxt "field:party.party,addresses:0"
+msgctxt "field:party.party,addresses:"
 msgid "Addresses"
 msgstr ""
 
-msgctxt "field:party.party,categories:0"
+msgctxt "field:party.party,categories:"
 msgid "Categories"
 msgstr ""
 
-msgctxt "field:party.party,code:0"
+msgctxt "field:party.party,code:"
 msgid "Code"
 msgstr ""
 
-msgctxt "field:party.party,code_length:0"
+msgctxt "field:party.party,code_length:"
 msgid "Code Length"
 msgstr ""
 
-msgctxt "field:party.party,contact_mechanisms:0"
+msgctxt "field:party.party,code_readonly:"
+msgid "Code Readonly"
+msgstr ""
+
+msgctxt "field:party.party,contact_mechanisms:"
 msgid "Contact Mechanisms"
 msgstr ""
 
-msgctxt "field:party.party,email:0"
+msgctxt "field:party.party,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:party.party,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:party.party,email:"
 msgid "E-Mail"
 msgstr ""
 
-msgctxt "field:party.party,fax:0"
+msgctxt "field:party.party,fax:"
 msgid "Fax"
 msgstr ""
 
-msgctxt "field:party.party,full_name:0"
+msgctxt "field:party.party,full_name:"
 msgid "Full Name"
 msgstr ""
 
-msgctxt "field:party.party,lang:0"
+msgctxt "field:party.party,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.party,lang:"
 msgid "Language"
 msgstr ""
 
-msgctxt "field:party.party,mobile:0"
+msgctxt "field:party.party,mobile:"
 msgid "Mobile"
 msgstr ""
 
-msgctxt "field:party.party,name:0"
+msgctxt "field:party.party,name:"
 msgid "Name"
 msgstr ""
 
-msgctxt "field:party.party,phone:0"
+msgctxt "field:party.party,phone:"
 msgid "Phone"
 msgstr ""
 
-msgctxt "field:party.party,rec_name:0"
+msgctxt "field:party.party,rec_name:"
 msgid "Name"
 msgstr ""
 
-msgctxt "field:party.party,vat_code:0"
+msgctxt "field:party.party,vat_code:"
 msgid "VAT Code"
 msgstr ""
 
-msgctxt "field:party.party,vat_country:0"
+msgctxt "field:party.party,vat_country:"
 msgid "VAT Country"
 msgstr ""
 
-msgctxt "field:party.party,vat_number:0"
+msgctxt "field:party.party,vat_number:"
 msgid "VAT Number"
 msgstr ""
 
-msgctxt "field:party.party,website:0"
+msgctxt "field:party.party,website:"
 msgid "Website"
 msgstr ""
 
-msgctxt "field:party.party-party.category,category:0"
+msgctxt "field:party.party,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.party,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:party.party-party.category,category:"
 msgid "Category"
 msgstr ""
 
-msgctxt "field:party.party-party.category,party:0"
+msgctxt "field:party.party-party.category,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:party.party-party.category,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:party.party-party.category,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.party-party.category,party:"
 msgid "Party"
 msgstr ""
 
-msgctxt "field:party.party-party.category,rec_name:0"
+msgctxt "field:party.party-party.category,rec_name:"
 msgid "Name"
 msgstr ""
 
-msgctxt "help:party.configuration,party_lang:0"
+msgctxt "field:party.party-party.category,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.party-party.category,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "help:party.configuration,party_lang:"
 msgid "The value set on this field will preset the language on new parties"
 msgstr ""
 
-msgctxt "help:party.party,vat_country:0"
+msgctxt "help:party.party,vat_country:"
 msgid "Setting VAT country will enable validation of the VAT number."
 msgstr ""
 
-msgctxt "help:party.party,vat_number:0"
+msgctxt "help:party.party,vat_number:"
 msgid "Value Added Tax number"
 msgstr ""
 
@@ -334,35 +466,35 @@ msgctxt "model:ir.ui.menu,name:menu_party_form"
 msgid "Parties"
 msgstr ""
 
-msgctxt "model:party.address,name:0"
+msgctxt "model:party.address,name:"
 msgid "Address"
 msgstr ""
 
-msgctxt "model:party.category,name:0"
+msgctxt "model:party.category,name:"
 msgid "Category"
 msgstr ""
 
-msgctxt "model:party.check_vies.check,name:0"
-msgid "Check VIES - Check"
+msgctxt "model:party.check_vies.no_result,name:"
+msgid "Check VIES"
 msgstr ""
 
-msgctxt "model:party.check_vies.no_check,name:0"
-msgid "Check VIES - No Check"
+msgctxt "model:party.check_vies.result,name:"
+msgid "Check VIES"
 msgstr ""
 
-msgctxt "model:party.configuration,name:0"
+msgctxt "model:party.configuration,name:"
 msgid "Party Configuration"
 msgstr ""
 
-msgctxt "model:party.contact_mechanism,name:0"
+msgctxt "model:party.contact_mechanism,name:"
 msgid "Contact Mechanism"
 msgstr ""
 
-msgctxt "model:party.party,name:0"
+msgctxt "model:party.party,name:"
 msgid "Party"
 msgstr ""
 
-msgctxt "model:party.party-party.category,name:0"
+msgctxt "model:party.party-party.category,name:"
 msgid "Party - Category"
 msgstr ""
 
@@ -370,126 +502,118 @@ msgctxt "model:res.group,name:group_party_admin"
 msgid "Party Administration"
 msgstr ""
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "E-Mail"
 msgstr ""
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Fax"
 msgstr ""
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "IRC"
 msgstr ""
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Jabber"
 msgstr ""
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Mobile"
 msgstr ""
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Other"
 msgstr ""
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Phone"
 msgstr ""
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "SIP"
 msgstr ""
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Skype"
 msgstr ""
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Website"
 msgstr ""
 
-msgctxt "view:party.address:0"
+msgctxt "view:party.address:"
 msgid "Addresses"
 msgstr ""
 
-msgctxt "view:party.category:0"
+msgctxt "view:party.category:"
 msgid "Categories"
 msgstr ""
 
-msgctxt "view:party.category:0"
+msgctxt "view:party.category:"
 msgid "Category"
 msgstr ""
 
-msgctxt "view:party.check_vies.check:0"
-msgid "Parties Failed"
+msgctxt "view:party.check_vies.no_result:"
+msgid "VAT Information Exchange System"
 msgstr ""
 
-msgctxt "view:party.check_vies.check:0"
-msgid "Parties Succeed"
+msgctxt "view:party.check_vies.no_result:"
+msgid "You must have a recent version of \"vatnumber\" installed!"
 msgstr ""
 
-msgctxt "view:party.check_vies.check:0"
+msgctxt "view:party.check_vies.result:"
 msgid "VAT Information Exchange System Results"
 msgstr ""
 
-msgctxt "view:party.check_vies.no_check:0"
-msgid "VAT Information Exchange System"
-msgstr ""
-
-msgctxt "view:party.check_vies.no_check:0"
-msgid "You must have a recent version of \"vatnumber\" installed!"
-msgstr ""
-
-msgctxt "view:party.configuration:0"
+msgctxt "view:party.configuration:"
 msgid "Party Configuration"
 msgstr ""
 
-msgctxt "view:party.contact_mechanism:0"
+msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanism"
 msgstr ""
 
-msgctxt "view:party.contact_mechanism:0"
+msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanisms"
 msgstr ""
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Accounting"
 msgstr ""
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Addresses"
 msgstr ""
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Categories"
 msgstr ""
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Contact Mechanisms"
 msgstr ""
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "General"
 msgstr ""
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Parties"
 msgstr ""
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Party"
 msgstr ""
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "VAT"
 msgstr ""
 
-msgctxt "wizard_button:party.check_vies,check,end:0"
+msgctxt "wizard_button:party.check_vies,no_result,end:"
 msgid "Ok"
 msgstr ""
 
-msgctxt "wizard_button:party.check_vies,no_check,end:0"
+msgctxt "wizard_button:party.check_vies,result,end:"
 msgid "Ok"
 msgstr ""
diff --git a/locale/de_DE.po b/locale/de_DE.po
index 0dfa4e8..b9330dd 100644
--- a/locale/de_DE.po
+++ b/locale/de_DE.po
@@ -2,332 +2,404 @@
 msgid ""
 msgstr "Content-Type: text/plain; charset=utf-8\n"
 
-msgctxt "error:party.address:0"
+msgctxt "error:party.address:"
 msgid "You can not modify the party of an address!"
 msgstr "Die Partei einer Adresse kann nicht geändert werden!"
 
-msgctxt "error:party.category:0"
+msgctxt "error:party.category:"
 msgid "The name of a party category must be unique by parent!"
 msgstr ""
 "Der Name einer Parteikategorie kann pro übergeordneter Kategorie nur einmal "
 "vergeben werden!"
 
-msgctxt "error:party.category:0"
+msgctxt "error:party.category:"
 msgid "You can not create recursive categories!"
 msgstr "Kategorien können nicht rekursiv angelegt werden!"
 
-msgctxt "error:party.category:0"
+msgctxt "error:party.category:"
 msgid "You can not use \" / \" in name field!"
 msgstr "In dem Namensfeld kann \" / \" nicht verwendet werden!"
 
-msgctxt "error:party.check_vies:0"
+msgctxt "error:party.check_vies:"
 msgid "The VIES service is unavailable, try again later."
 msgstr ""
 "VIES Dienst nicht erreichbar, bitte versuchen Sie es später noch einmal!"
 
-msgctxt "error:party.contact_mechanism:0"
+msgctxt "error:party.contact_mechanism:"
 msgid "You can not modify the party of a contact mechanism!"
 msgstr "Die Partei einer Kontaktmöglichkeit kann nicht geändert werden!"
 
-msgctxt "error:party.party:0"
+msgctxt "error:party.party:"
 msgid "Invalid VAT number!"
 msgstr "Ungültige USt-ID-Nummer!"
 
-msgctxt "error:party.party:0"
+msgctxt "error:party.party:"
 msgid "The code of the party must be unique!"
 msgstr "Der Name einer Partei kann nur einmal vergeben werden!"
 
-msgctxt "field:party.address,active:0"
+msgctxt "field:party.address,active:"
 msgid "Active"
 msgstr "Aktiv"
 
-msgctxt "field:party.address,city:0"
+msgctxt "field:party.address,city:"
 msgid "City"
 msgstr "Stadt"
 
-msgctxt "field:party.address,country:0"
+msgctxt "field:party.address,country:"
 msgid "Country"
 msgstr "Staat"
 
-msgctxt "field:party.address,create_date:0"
-msgid "Creation date"
+msgctxt "field:party.address,create_date:"
+msgid "Create Date"
 msgstr "Erstellungsdatum"
 
-msgctxt "field:party.address,create_uid:0"
-msgid "Creation user"
-msgstr "Ersteller"
+msgctxt "field:party.address,create_uid:"
+msgid "Create User"
+msgstr "Erstellt durch"
 
-msgctxt "field:party.address,full_address:0"
+msgctxt "field:party.address,full_address:"
 msgid "Full Address"
 msgstr "Vollständige Adresse"
 
-msgctxt "field:party.address,id:0"
+msgctxt "field:party.address,id:"
 msgid "ID"
 msgstr "ID"
 
-msgctxt "field:party.address,name:0"
+msgctxt "field:party.address,name:"
 msgid "Name"
 msgstr "Name"
 
-msgctxt "field:party.address,party:0"
+msgctxt "field:party.address,party:"
 msgid "Party"
 msgstr "Partei"
 
-msgctxt "field:party.address,rec_name:0"
+msgctxt "field:party.address,rec_name:"
 msgid "Name"
 msgstr "Name"
 
-msgctxt "field:party.address,sequence:0"
+msgctxt "field:party.address,sequence:"
 msgid "Sequence"
 msgstr "Reihenfolge"
 
-msgctxt "field:party.address,street:0"
+msgctxt "field:party.address,street:"
 msgid "Street"
 msgstr "Anschrift 1"
 
-msgctxt "field:party.address,streetbis:0"
+msgctxt "field:party.address,streetbis:"
 msgid "Street (bis)"
 msgstr "Anschrift 2"
 
-msgctxt "field:party.address,subdivision:0"
+msgctxt "field:party.address,subdivision:"
 msgid "Subdivision"
 msgstr "Subnationale Einheit"
 
-msgctxt "field:party.address,write_date:0"
-msgid "Last modification date"
-msgstr "Zuletzt geändert am"
+msgctxt "field:party.address,write_date:"
+msgid "Write Date"
+msgstr "Zuletzt geändert"
 
-msgctxt "field:party.address,write_uid:0"
-msgid "Last modification by"
-msgstr "Zuletzt geändert von"
+msgctxt "field:party.address,write_uid:"
+msgid "Write User"
+msgstr "Letzte Änderung durch"
 
-msgctxt "field:party.address,zip:0"
+msgctxt "field:party.address,zip:"
 msgid "Zip"
 msgstr "Postleitzahl"
 
-msgctxt "field:party.category,active:0"
+msgctxt "field:party.category,active:"
 msgid "Active"
 msgstr "Aktiv"
 
-msgctxt "field:party.category,childs:0"
+msgctxt "field:party.category,childs:"
 msgid "Children"
 msgstr "Untergeordnet (Kategorien)"
 
-msgctxt "field:party.category,create_date:0"
-msgid "Creation date"
+msgctxt "field:party.category,create_date:"
+msgid "Create Date"
 msgstr "Erstellungsdatum"
 
-msgctxt "field:party.category,create_uid:0"
-msgid "Creation user"
-msgstr "Ersteller"
+msgctxt "field:party.category,create_uid:"
+msgid "Create User"
+msgstr "Erstellt durch"
 
-msgctxt "field:party.category,id:0"
+msgctxt "field:party.category,id:"
 msgid "ID"
 msgstr "ID"
 
-msgctxt "field:party.category,name:0"
+msgctxt "field:party.category,name:"
 msgid "Name"
 msgstr "Kategorie Name"
 
-msgctxt "field:party.category,parent:0"
+msgctxt "field:party.category,parent:"
 msgid "Parent"
 msgstr "Ãœbergeordnet (Kategorie)"
 
-msgctxt "field:party.category,rec_name:0"
+msgctxt "field:party.category,rec_name:"
 msgid "Name"
 msgstr "Name"
 
-msgctxt "field:party.category,write_date:0"
-msgid "Last modification date"
-msgstr "Zuletzt geändert am"
+msgctxt "field:party.category,write_date:"
+msgid "Write Date"
+msgstr "Zuletzt geändert"
 
-msgctxt "field:party.category,write_uid:0"
-msgid "Last modification by"
-msgstr "Zuletzt geändert von"
+msgctxt "field:party.category,write_uid:"
+msgid "Write User"
+msgstr "Letzte Änderung durch"
 
-msgctxt "field:party.check_vies.check,parties_failed:0"
+msgctxt "field:party.check_vies.no_result,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.check_vies.result,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.check_vies.result,parties_failed:"
 msgid "Parties Failed"
 msgstr "Parteien mit fehlgeschlagener Überprüfung"
 
-msgctxt "field:party.check_vies.check,parties_succeed:0"
+msgctxt "field:party.check_vies.result,parties_succeed:"
 msgid "Parties Succeed"
 msgstr "Parteien mit erfolgreicher Überprüfung"
 
-msgctxt "field:party.configuration,party_lang:0"
+msgctxt "field:party.configuration,create_date:"
+msgid "Create Date"
+msgstr "Erstellungsdatum"
+
+msgctxt "field:party.configuration,create_uid:"
+msgid "Create User"
+msgstr "Erstellt durch"
+
+msgctxt "field:party.configuration,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.configuration,party_lang:"
 msgid "Party Language"
 msgstr "Sprache Partei"
 
-msgctxt "field:party.configuration,party_sequence:0"
+msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
 msgstr "Nummernkreis Partei"
 
-msgctxt "field:party.configuration,rec_name:0"
+msgctxt "field:party.configuration,rec_name:"
 msgid "Name"
 msgstr "Name"
 
-msgctxt "field:party.contact_mechanism,active:0"
+msgctxt "field:party.configuration,write_date:"
+msgid "Write Date"
+msgstr "Zuletzt geändert"
+
+msgctxt "field:party.configuration,write_uid:"
+msgid "Write User"
+msgstr "Letzte Änderung durch"
+
+msgctxt "field:party.contact_mechanism,active:"
 msgid "Active"
 msgstr "Aktiv"
 
-msgctxt "field:party.contact_mechanism,comment:0"
+msgctxt "field:party.contact_mechanism,comment:"
 msgid "Comment"
 msgstr "Kommentar"
 
-msgctxt "field:party.contact_mechanism,email:0"
+msgctxt "field:party.contact_mechanism,create_date:"
+msgid "Create Date"
+msgstr "Erstellungsdatum"
+
+msgctxt "field:party.contact_mechanism,create_uid:"
+msgid "Create User"
+msgstr "Erstellt durch"
+
+msgctxt "field:party.contact_mechanism,email:"
 msgid "E-Mail"
 msgstr "E-Mail"
 
-msgctxt "field:party.contact_mechanism,other_value:0"
+msgctxt "field:party.contact_mechanism,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.contact_mechanism,other_value:"
 msgid "Value"
 msgstr "Wert"
 
-msgctxt "field:party.contact_mechanism,party:0"
+msgctxt "field:party.contact_mechanism,party:"
 msgid "Party"
 msgstr "Partei"
 
-msgctxt "field:party.contact_mechanism,rec_name:0"
+msgctxt "field:party.contact_mechanism,rec_name:"
 msgid "Name"
 msgstr "Name"
 
-msgctxt "field:party.contact_mechanism,sequence:0"
+msgctxt "field:party.contact_mechanism,sequence:"
 msgid "Sequence"
 msgstr "Reihenfolge"
 
-msgctxt "field:party.contact_mechanism,sip:0"
+msgctxt "field:party.contact_mechanism,sip:"
 msgid "SIP"
 msgstr "SIP"
 
-msgctxt "field:party.contact_mechanism,skype:0"
+msgctxt "field:party.contact_mechanism,skype:"
 msgid "Skype"
 msgstr "Skype"
 
-msgctxt "field:party.contact_mechanism,type:0"
+msgctxt "field:party.contact_mechanism,type:"
 msgid "Type"
 msgstr "Typ"
 
-msgctxt "field:party.contact_mechanism,value:0"
+msgctxt "field:party.contact_mechanism,value:"
 msgid "Value"
 msgstr "Wert"
 
-msgctxt "field:party.contact_mechanism,website:0"
+msgctxt "field:party.contact_mechanism,website:"
 msgid "Website"
 msgstr "Homepage"
 
-msgctxt "field:party.party,active:0"
+msgctxt "field:party.contact_mechanism,write_date:"
+msgid "Write Date"
+msgstr "Zuletzt geändert"
+
+msgctxt "field:party.contact_mechanism,write_uid:"
+msgid "Write User"
+msgstr "Letzte Änderung durch"
+
+msgctxt "field:party.party,active:"
 msgid "Active"
 msgstr "Aktiv"
 
-msgctxt "field:party.party,addresses:0"
+msgctxt "field:party.party,addresses:"
 msgid "Addresses"
 msgstr "Adressen"
 
-msgctxt "field:party.party,categories:0"
+msgctxt "field:party.party,categories:"
 msgid "Categories"
 msgstr "Kategorien"
 
-msgctxt "field:party.party,code:0"
+msgctxt "field:party.party,code:"
 msgid "Code"
 msgstr "Code Partei"
 
-msgctxt "field:party.party,code_length:0"
+msgctxt "field:party.party,code_length:"
 msgid "Code Length"
 msgstr "Code Länge"
 
-msgctxt "field:party.party,contact_mechanisms:0"
+msgctxt "field:party.party,code_readonly:"
+msgid "Code Readonly"
+msgstr "Code (nur lesbar)"
+
+msgctxt "field:party.party,contact_mechanisms:"
 msgid "Contact Mechanisms"
 msgstr "Kontaktmöglichkeiten"
 
-msgctxt "field:party.party,create_date:0"
-msgid "Creation date"
+msgctxt "field:party.party,create_date:"
+msgid "Create Date"
 msgstr "Erstellungsdatum"
 
-msgctxt "field:party.party,create_uid:0"
-msgid "Creation user"
-msgstr "Ersteller"
+msgctxt "field:party.party,create_uid:"
+msgid "Create User"
+msgstr "Erstellt durch"
 
-msgctxt "field:party.party,email:0"
+msgctxt "field:party.party,email:"
 msgid "E-Mail"
 msgstr "E-Mail"
 
-msgctxt "field:party.party,fax:0"
+msgctxt "field:party.party,fax:"
 msgid "Fax"
 msgstr "Fax"
 
-msgctxt "field:party.party,full_name:0"
+msgctxt "field:party.party,full_name:"
 msgid "Full Name"
 msgstr "Vollständiger Name"
 
-msgctxt "field:party.party,id:0"
+msgctxt "field:party.party,id:"
 msgid "ID"
 msgstr "ID"
 
-msgctxt "field:party.party,lang:0"
+msgctxt "field:party.party,lang:"
 msgid "Language"
 msgstr "Sprache"
 
-msgctxt "field:party.party,mobile:0"
+msgctxt "field:party.party,mobile:"
 msgid "Mobile"
 msgstr "Mobiltelefon"
 
-msgctxt "field:party.party,name:0"
+msgctxt "field:party.party,name:"
 msgid "Name"
 msgstr "Name"
 
-msgctxt "field:party.party,phone:0"
+msgctxt "field:party.party,phone:"
 msgid "Phone"
 msgstr "Telefon"
 
-msgctxt "field:party.party,rec_name:0"
+msgctxt "field:party.party,rec_name:"
 msgid "Name"
 msgstr "Name"
 
-msgctxt "field:party.party,vat_code:0"
+msgctxt "field:party.party,vat_code:"
 msgid "VAT Code"
 msgstr "USt-ID-Nr."
 
-msgctxt "field:party.party,vat_country:0"
+msgctxt "field:party.party,vat_country:"
 msgid "VAT Country"
 msgstr "USt-ID-Präfix"
 
-msgctxt "field:party.party,vat_number:0"
+msgctxt "field:party.party,vat_number:"
 msgid "VAT Number"
 msgstr "USt-ID-Nr."
 
-msgctxt "field:party.party,website:0"
+msgctxt "field:party.party,website:"
 msgid "Website"
 msgstr "Website"
 
-msgctxt "field:party.party,write_date:0"
-msgid "Last modification date"
-msgstr "Zuletzt geändert am"
+msgctxt "field:party.party,write_date:"
+msgid "Write Date"
+msgstr "Zuletzt geändert"
 
-msgctxt "field:party.party,write_uid:0"
-msgid "Last modification by"
-msgstr "Zuletzt geändert von"
+msgctxt "field:party.party,write_uid:"
+msgid "Write User"
+msgstr "Letzte Änderung durch"
 
-msgctxt "field:party.party-party.category,category:0"
+msgctxt "field:party.party-party.category,category:"
 msgid "Category"
 msgstr "Kategorie"
 
-msgctxt "field:party.party-party.category,party:0"
+msgctxt "field:party.party-party.category,create_date:"
+msgid "Create Date"
+msgstr "Erstellungsdatum"
+
+msgctxt "field:party.party-party.category,create_uid:"
+msgid "Create User"
+msgstr "Erstellt durch"
+
+msgctxt "field:party.party-party.category,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.party-party.category,party:"
 msgid "Party"
 msgstr "Partei"
 
-msgctxt "field:party.party-party.category,rec_name:0"
+msgctxt "field:party.party-party.category,rec_name:"
 msgid "Name"
 msgstr "Name"
 
-msgctxt "help:party.configuration,party_lang:0"
+msgctxt "field:party.party-party.category,write_date:"
+msgid "Write Date"
+msgstr "Zuletzt geändert"
+
+msgctxt "field:party.party-party.category,write_uid:"
+msgid "Write User"
+msgstr "Letzte Änderung durch"
+
+msgctxt "help:party.configuration,party_lang:"
 msgid "The value set on this field will preset the language on new parties"
 msgstr ""
 "Ein Wert in diesem Feld dient als Voreinstellung für die Sprache von neu "
 "angelegten Parteien"
 
-msgctxt "help:party.party,vat_country:0"
+msgctxt "help:party.party,vat_country:"
 msgid "Setting VAT country will enable validation of the VAT number."
 msgstr "Ein Eintrag in USt-ID-Präfix aktiviert die Überprüfung der USt-ID-Nr."
 
-msgctxt "help:party.party,vat_number:0"
+msgctxt "help:party.party,vat_number:"
 msgid "Value Added Tax number"
 msgstr "Umsatzsteueridentifikationsnummer"
 
@@ -399,35 +471,35 @@ msgctxt "model:ir.ui.menu,name:menu_party_form"
 msgid "Parties"
 msgstr "Parteien"
 
-msgctxt "model:party.address,name:0"
+msgctxt "model:party.address,name:"
 msgid "Address"
 msgstr "Adresse"
 
-msgctxt "model:party.category,name:0"
+msgctxt "model:party.category,name:"
 msgid "Category"
 msgstr "Kategorie"
 
-msgctxt "model:party.check_vies.check,name:0"
-msgid "Check VIES - Check"
-msgstr "Überprüfung VIES - Durchführen"
+msgctxt "model:party.check_vies.no_result,name:"
+msgid "Check VIES"
+msgstr "USt-ID-Nr. per VIES überprüfen"
 
-msgctxt "model:party.check_vies.no_check,name:0"
-msgid "Check VIES - No Check"
-msgstr "Überprüfung VIES - Nicht durchführen"
+msgctxt "model:party.check_vies.result,name:"
+msgid "Check VIES"
+msgstr "USt-ID-Nr. per VIES überprüfen"
 
-msgctxt "model:party.configuration,name:0"
+msgctxt "model:party.configuration,name:"
 msgid "Party Configuration"
 msgstr "Einstellungen Partei"
 
-msgctxt "model:party.contact_mechanism,name:0"
+msgctxt "model:party.contact_mechanism,name:"
 msgid "Contact Mechanism"
 msgstr "Kontaktmöglichkeit"
 
-msgctxt "model:party.party,name:0"
+msgctxt "model:party.party,name:"
 msgid "Party"
 msgstr "Partei"
 
-msgctxt "model:party.party-party.category,name:0"
+msgctxt "model:party.party-party.category,name:"
 msgid "Party - Category"
 msgstr "Partei - Parteikategorie"
 
@@ -435,144 +507,136 @@ msgctxt "model:res.group,name:group_party_admin"
 msgid "Party Administration"
 msgstr "Parteien Administration"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "E-Mail"
 msgstr "E-Mail"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Fax"
 msgstr "Fax"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "IRC"
 msgstr "IRC"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Jabber"
 msgstr "Jabber"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Mobile"
 msgstr "Mobiltelefon"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Other"
 msgstr "Anderer Kontakt"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Phone"
 msgstr "Telefon"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "SIP"
 msgstr "SIP"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Skype"
 msgstr "Skype"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Website"
 msgstr "Homepage"
 
-msgctxt "view:party.address:0"
+msgctxt "view:party.address:"
 msgid "Addresses"
 msgstr "Adressen"
 
-msgctxt "view:party.category:0"
+msgctxt "view:party.category:"
 msgid "Categories"
 msgstr "Kategorien"
 
-msgctxt "view:party.category:0"
+msgctxt "view:party.category:"
 msgid "Category"
 msgstr "Kategorie"
 
-msgctxt "view:party.check_vies.check:0"
-msgid "Parties Failed"
-msgstr "Parteien mit fehlgeschlagener Überprüfung"
-
-msgctxt "view:party.check_vies.check:0"
-msgid "Parties Succeed"
-msgstr "Parteien mit erfolgreicher Überprüfung"
-
-msgctxt "view:party.check_vies.check:0"
-msgid "VAT Information Exchange System Results"
-msgstr "Ergebnisse des Überprüfungssystems für USt-ID-Nummern (VIES)"
-
-msgctxt "view:party.check_vies.no_check:0"
+msgctxt "view:party.check_vies.no_result:"
 msgid "VAT Information Exchange System"
 msgstr "Überprüfungssystem für USt-ID-Nummern (VIES)"
 
-msgctxt "view:party.check_vies.no_check:0"
+msgctxt "view:party.check_vies.no_result:"
 msgid "You must have a recent version of \"vatnumber\" installed!"
 msgstr ""
 "Es muss eine aktuelle Version des Python-Moduls \"vatnumber\" installiert "
 "sein!"
 
-msgctxt "view:party.configuration:0"
+msgctxt "view:party.check_vies.result:"
+msgid "VAT Information Exchange System Results"
+msgstr "Ergebnisse des Überprüfungssystems für USt-ID-Nummern (VIES)"
+
+msgctxt "view:party.configuration:"
 msgid "Party Configuration"
 msgstr "Einstellungen Partei"
 
-msgctxt "view:party.contact_mechanism:0"
+msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanism"
 msgstr "Kontaktmöglichkeit"
 
-msgctxt "view:party.contact_mechanism:0"
+msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanisms"
 msgstr "Kontaktmöglichkeiten"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Account"
 msgstr "Konten"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Accounting"
 msgstr "Buchhaltung"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Addresses"
 msgstr "Adressen"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Categories"
 msgstr "Kategorien"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Contact Mechanism"
 msgstr "Kontaktmöglichkeit"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Contact Mechanisms"
 msgstr "Kontaktmöglichkeiten"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "General"
 msgstr "Allgemein"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Parties"
 msgstr "Parteien"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Party"
 msgstr "Partei"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "VAT"
 msgstr "USt"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "_Accounting"
 msgstr "_Buchhaltung"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "_General"
 msgstr "_Allgemein"
 
-msgctxt "wizard_button:party.check_vies,check,end:0"
+msgctxt "wizard_button:party.check_vies,no_result,end:"
 msgid "Ok"
 msgstr "OK"
 
-msgctxt "wizard_button:party.check_vies,no_check,end:0"
+msgctxt "wizard_button:party.check_vies,result,end:"
 msgid "Ok"
 msgstr "OK"
diff --git a/locale/es_AR.po b/locale/es_AR.po
new file mode 100644
index 0000000..0ff4618
--- /dev/null
+++ b/locale/es_AR.po
@@ -0,0 +1,630 @@
+# 
+msgid ""
+msgstr "Content-Type: text/plain; charset=utf-8\n"
+
+msgctxt "error:party.address:"
+msgid "You can not modify the party of an address!"
+msgstr "¡No puede modificar la entidad de una dirección!"
+
+msgctxt "error:party.category:"
+msgid "The name of a party category must be unique by parent!"
+msgstr "¡El nombre de una categoría de entidad debe ser único por cada padre!"
+
+msgctxt "error:party.category:"
+msgid "You can not create recursive categories!"
+msgstr "¡No puede crear categorías recursivas!"
+
+msgctxt "error:party.category:"
+msgid "You can not use \" / \" in name field!"
+msgstr "¡No puede usar \" /\" en el campo nombre!"
+
+msgctxt "error:party.check_vies:"
+msgid "The VIES service is unavailable, try again later."
+msgstr "El servicio VIES no está disponible, inténtelo de nuevo más tarde"
+
+msgctxt "error:party.contact_mechanism:"
+msgid "You can not modify the party of a contact mechanism!"
+msgstr "¡No puede modificar la entidad de un médio de contacto!"
+
+msgctxt "error:party.party:"
+msgid "Invalid VAT number!"
+msgstr "¡El CUIT no es válido!"
+
+msgctxt "error:party.party:"
+msgid "The code of the party must be unique!"
+msgstr "¡El código de la entidad debe ser único!"
+
+msgctxt "field:party.address,active:"
+msgid "Active"
+msgstr "Activo"
+
+msgctxt "field:party.address,city:"
+msgid "City"
+msgstr "Ciudad"
+
+msgctxt "field:party.address,country:"
+msgid "Country"
+msgstr "País"
+
+msgctxt "field:party.address,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:party.address,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:party.address,full_address:"
+msgid "Full Address"
+msgstr "Dirección completa"
+
+msgctxt "field:party.address,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.address,name:"
+msgid "Name"
+msgstr "Contacto"
+
+msgctxt "field:party.address,party:"
+msgid "Party"
+msgstr "Entidad"
+
+msgctxt "field:party.address,rec_name:"
+msgid "Name"
+msgstr "Contacto"
+
+msgctxt "field:party.address,sequence:"
+msgid "Sequence"
+msgstr "Secuencia"
+
+msgctxt "field:party.address,street:"
+msgid "Street"
+msgstr "Calle"
+
+msgctxt "field:party.address,streetbis:"
+msgid "Street (bis)"
+msgstr "Calle (bis)"
+
+msgctxt "field:party.address,subdivision:"
+msgid "Subdivision"
+msgstr "Subdivisión"
+
+msgctxt "field:party.address,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:party.address,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "field:party.address,zip:"
+msgid "Zip"
+msgstr "Código postal"
+
+msgctxt "field:party.category,active:"
+msgid "Active"
+msgstr "Activo"
+
+msgctxt "field:party.category,childs:"
+msgid "Children"
+msgstr "Hijos"
+
+msgctxt "field:party.category,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:party.category,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:party.category,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.category,name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:party.category,parent:"
+msgid "Parent"
+msgstr "Padre"
+
+msgctxt "field:party.category,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:party.category,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:party.category,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "field:party.check_vies.no_result,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.check_vies.result,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.check_vies.result,parties_failed:"
+msgid "Parties Failed"
+msgstr "Entidades fallaron"
+
+msgctxt "field:party.check_vies.result,parties_succeed:"
+msgid "Parties Succeed"
+msgstr "Entidades correctas"
+
+msgctxt "field:party.configuration,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:party.configuration,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:party.configuration,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.configuration,party_lang:"
+msgid "Party Language"
+msgstr "Idioma de la entidad"
+
+msgctxt "field:party.configuration,party_sequence:"
+msgid "Party Sequence"
+msgstr "Secuencia de Entidades"
+
+msgctxt "field:party.configuration,rec_name:"
+msgid "Name"
+msgstr "Nombre del campo"
+
+msgctxt "field:party.configuration,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:party.configuration,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "field:party.contact_mechanism,active:"
+msgid "Active"
+msgstr "Activo"
+
+msgctxt "field:party.contact_mechanism,comment:"
+msgid "Comment"
+msgstr "Comentario"
+
+msgctxt "field:party.contact_mechanism,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:party.contact_mechanism,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:party.contact_mechanism,email:"
+msgid "E-Mail"
+msgstr "Correo electrónico"
+
+msgctxt "field:party.contact_mechanism,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.contact_mechanism,other_value:"
+msgid "Value"
+msgstr "Valor"
+
+msgctxt "field:party.contact_mechanism,party:"
+msgid "Party"
+msgstr "Entidad"
+
+msgctxt "field:party.contact_mechanism,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:party.contact_mechanism,sequence:"
+msgid "Sequence"
+msgstr "Secuencia"
+
+msgctxt "field:party.contact_mechanism,sip:"
+msgid "SIP"
+msgstr "SIP"
+
+msgctxt "field:party.contact_mechanism,skype:"
+msgid "Skype"
+msgstr "Skype"
+
+msgctxt "field:party.contact_mechanism,type:"
+msgid "Type"
+msgstr "Tipo"
+
+msgctxt "field:party.contact_mechanism,value:"
+msgid "Value"
+msgstr "Valor"
+
+msgctxt "field:party.contact_mechanism,website:"
+msgid "Website"
+msgstr "Sitio Web"
+
+msgctxt "field:party.contact_mechanism,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:party.contact_mechanism,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "field:party.party,active:"
+msgid "Active"
+msgstr "Activo"
+
+msgctxt "field:party.party,addresses:"
+msgid "Addresses"
+msgstr "Direcciones"
+
+msgctxt "field:party.party,categories:"
+msgid "Categories"
+msgstr "Categorías"
+
+msgctxt "field:party.party,code:"
+msgid "Code"
+msgstr "Código"
+
+msgctxt "field:party.party,code_length:"
+msgid "Code Length"
+msgstr "Dígitos del código"
+
+msgctxt "field:party.party,code_readonly:"
+msgid "Code Readonly"
+msgstr "Código de sólo lectura"
+
+msgctxt "field:party.party,contact_mechanisms:"
+msgid "Contact Mechanisms"
+msgstr "Médios de contacto"
+
+msgctxt "field:party.party,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:party.party,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:party.party,email:"
+msgid "E-Mail"
+msgstr "Correo electrónico"
+
+msgctxt "field:party.party,fax:"
+msgid "Fax"
+msgstr "Fax"
+
+msgctxt "field:party.party,full_name:"
+msgid "Full Name"
+msgstr "Nombre completo"
+
+msgctxt "field:party.party,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.party,lang:"
+msgid "Language"
+msgstr "Idioma"
+
+msgctxt "field:party.party,mobile:"
+msgid "Mobile"
+msgstr "Móvil"
+
+msgctxt "field:party.party,name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:party.party,phone:"
+msgid "Phone"
+msgstr "Teléfono"
+
+msgctxt "field:party.party,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:party.party,vat_code:"
+msgid "VAT Code"
+msgstr "CUIT"
+
+msgctxt "field:party.party,vat_country:"
+msgid "VAT Country"
+msgstr "País del CUIT"
+
+msgctxt "field:party.party,vat_number:"
+msgid "VAT Number"
+msgstr "CUIT"
+
+msgctxt "field:party.party,website:"
+msgid "Website"
+msgstr "Sitio Web"
+
+msgctxt "field:party.party,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:party.party,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "field:party.party-party.category,category:"
+msgid "Category"
+msgstr "Categoría"
+
+msgctxt "field:party.party-party.category,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:party.party-party.category,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:party.party-party.category,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.party-party.category,party:"
+msgid "Party"
+msgstr "Entidad"
+
+msgctxt "field:party.party-party.category,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:party.party-party.category,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:party.party-party.category,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "help:party.configuration,party_lang:"
+msgid "The value set on this field will preset the language on new parties"
+msgstr ""
+"El valor de este campo predeterminada el idioma de las nuevas entidades"
+
+msgctxt "help:party.party,vat_country:"
+msgid "Setting VAT country will enable validation of the VAT number."
+msgstr ""
+"Al especificar el país del NIF se habilitará la verificación de dicho "
+"número."
+
+msgctxt "help:party.party,vat_number:"
+msgid "Value Added Tax number"
+msgstr "Número de identificación fiscal"
+
+msgctxt "model:ir.action,name:act_address_form"
+msgid "Addresses"
+msgstr "Direcciones"
+
+msgctxt "model:ir.action,name:act_category_list"
+msgid "Categories"
+msgstr "Categorías"
+
+msgctxt "model:ir.action,name:act_category_tree"
+msgid "Categories"
+msgstr "Categorías"
+
+msgctxt "model:ir.action,name:act_party_by_category"
+msgid "Parties by Category"
+msgstr "Entidades por categoría"
+
+msgctxt "model:ir.action,name:act_party_configuration_form"
+msgid "Party Configuration"
+msgstr "Configuración de Entidades"
+
+msgctxt "model:ir.action,name:act_party_form"
+msgid "Parties"
+msgstr "Entidades"
+
+msgctxt "model:ir.action,name:report_label"
+msgid "Labels"
+msgstr "Etiquetas"
+
+msgctxt "model:ir.action,name:wizard_check_vies"
+msgid "Check VIES"
+msgstr "Comprobar VIES"
+
+msgctxt "model:ir.sequence,name:sequence_party"
+msgid "Party"
+msgstr "Entidad"
+
+msgctxt "model:ir.sequence.type,name:sequence_type_party"
+msgid "Party"
+msgstr "Entidad"
+
+msgctxt "model:ir.ui.menu,name:menu_address_form"
+msgid "Addresses"
+msgstr "Direcciones"
+
+msgctxt "model:ir.ui.menu,name:menu_category_list"
+msgid "Categories"
+msgstr "Categorías"
+
+msgctxt "model:ir.ui.menu,name:menu_category_tree"
+msgid "Categories"
+msgstr "Categorías"
+
+msgctxt "model:ir.ui.menu,name:menu_configuration"
+msgid "Configuration"
+msgstr "Configuración"
+
+msgctxt "model:ir.ui.menu,name:menu_party"
+msgid "Party"
+msgstr "Gestión de entidades"
+
+msgctxt "model:ir.ui.menu,name:menu_party_configuration"
+msgid "Party Configuration"
+msgstr "Configuración de Entidades"
+
+msgctxt "model:ir.ui.menu,name:menu_party_form"
+msgid "Parties"
+msgstr "Entidades"
+
+msgctxt "model:party.address,name:"
+msgid "Address"
+msgstr "Dirección"
+
+msgctxt "model:party.category,name:"
+msgid "Category"
+msgstr "Categoría"
+
+msgctxt "model:party.check_vies.no_result,name:"
+msgid "Check VIES"
+msgstr "Comprobar VIES"
+
+msgctxt "model:party.check_vies.result,name:"
+msgid "Check VIES"
+msgstr "Comprobar VIES"
+
+msgctxt "model:party.configuration,name:"
+msgid "Party Configuration"
+msgstr "Configuración de Entidades"
+
+msgctxt "model:party.contact_mechanism,name:"
+msgid "Contact Mechanism"
+msgstr "Médio de contacto"
+
+msgctxt "model:party.party,name:"
+msgid "Party"
+msgstr "Entidad"
+
+msgctxt "model:party.party-party.category,name:"
+msgid "Party - Category"
+msgstr "Entidad - Categoría"
+
+msgctxt "model:res.group,name:group_party_admin"
+msgid "Party Administration"
+msgstr "Administración de entidades"
+
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "E-Mail"
+msgstr "Correo electrónico"
+
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "Fax"
+msgstr "Fax"
+
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "IRC"
+msgstr "IRC"
+
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "Jabber"
+msgstr "Jabber"
+
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "Mobile"
+msgstr "Móvil"
+
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "Other"
+msgstr "Otro"
+
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "Phone"
+msgstr "Teléfono"
+
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "SIP"
+msgstr "SIP"
+
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "Skype"
+msgstr "Skype"
+
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "Website"
+msgstr "Sitio Web"
+
+msgctxt "view:party.address:"
+msgid "Addresses"
+msgstr "Direcciones"
+
+msgctxt "view:party.category:"
+msgid "Categories"
+msgstr "Categorías"
+
+msgctxt "view:party.category:"
+msgid "Category"
+msgstr "Categoría"
+
+msgctxt "view:party.check_vies.no_result:"
+msgid "VAT Information Exchange System"
+msgstr "CUIT Sistema de Intercambio de Información"
+
+msgctxt "view:party.check_vies.no_result:"
+msgid "You must have a recent version of \"vatnumber\" installed!"
+msgstr "¡Debe tener una versión reciente de \"vatnumber\" instalada!"
+
+msgctxt "view:party.check_vies.result:"
+msgid "VAT Information Exchange System Results"
+msgstr "CUIT Resultados del Sistema de Intercambio de Información"
+
+msgctxt "view:party.configuration:"
+msgid "Party Configuration"
+msgstr "Configuración de Entidades"
+
+msgctxt "view:party.contact_mechanism:"
+msgid "Contact Mechanism"
+msgstr "Médio de contacto"
+
+msgctxt "view:party.contact_mechanism:"
+msgid "Contact Mechanisms"
+msgstr "Médios de contacto"
+
+msgctxt "view:party.party:"
+msgid "Account"
+msgstr "Cuenta"
+
+msgctxt "view:party.party:"
+msgid "Accounting"
+msgstr "Contabilidad"
+
+msgctxt "view:party.party:"
+msgid "Addresses"
+msgstr "Direcciones"
+
+msgctxt "view:party.party:"
+msgid "Categories"
+msgstr "Categorías"
+
+msgctxt "view:party.party:"
+msgid "Contact Mechanisms"
+msgstr "Médios de contacto"
+
+msgctxt "view:party.party:"
+msgid "General"
+msgstr "General"
+
+msgctxt "view:party.party:"
+msgid "Parties"
+msgstr "Entidades"
+
+msgctxt "view:party.party:"
+msgid "Party"
+msgstr "Entidad"
+
+msgctxt "view:party.party:"
+msgid "VAT"
+msgstr "CUIT"
+
+msgctxt "view:party.party:"
+msgid "_General"
+msgstr "_General"
+
+msgctxt "wizard_button:party.check_vies,no_result,end:"
+msgid "Ok"
+msgstr "Aceptar"
+
+msgctxt "wizard_button:party.check_vies,result,end:"
+msgid "Ok"
+msgstr "Aceptar"
diff --git a/locale/es_CO.po b/locale/es_CO.po
index 8d57ec0..e5023a3 100644
--- a/locale/es_CO.po
+++ b/locale/es_CO.po
@@ -2,269 +2,407 @@
 msgid ""
 msgstr "Content-Type: text/plain; charset=utf-8\n"
 
-msgctxt "error:party.address:0"
+msgctxt "error:party.address:"
 msgid "You can not modify the party of an address!"
 msgstr "No puede modificar el tercero de una dirección!"
 
-msgctxt "error:party.category:0"
+msgctxt "error:party.category:"
 msgid "The name of a party category must be unique by parent!"
 msgstr ""
 
-msgctxt "error:party.category:0"
+msgctxt "error:party.category:"
 msgid "You can not create recursive categories!"
 msgstr "No puede crear categorías recursivas!"
 
-msgctxt "error:party.category:0"
+msgctxt "error:party.category:"
 msgid "You can not use \" / \" in name field!"
 msgstr ""
 
-msgctxt "error:party.check_vies:0"
+msgctxt "error:party.check_vies:"
 msgid "The VIES service is unavailable, try again later."
 msgstr "El servicio VIES no está disponible, intente más tarde."
 
-msgctxt "error:party.contact_mechanism:0"
+msgctxt "error:party.contact_mechanism:"
 msgid "You can not modify the party of a contact mechanism!"
 msgstr "¡No puede modificar un tercero de un mecanismo de contacto!"
 
-msgctxt "error:party.party:0"
+msgctxt "error:party.party:"
 msgid "Invalid VAT number!"
 msgstr "¡Número inválido!"
 
-msgctxt "error:party.party:0"
+msgctxt "error:party.party:"
 msgid "The code of the party must be unique!"
 msgstr ""
 
-msgctxt "field:party.address,active:0"
+msgctxt "field:party.address,active:"
 msgid "Active"
 msgstr "Activo"
 
-msgctxt "field:party.address,city:0"
+msgctxt "field:party.address,city:"
 msgid "City"
 msgstr "Ciudad"
 
-msgctxt "field:party.address,country:0"
+msgctxt "field:party.address,country:"
 msgid "Country"
 msgstr "País"
 
-msgctxt "field:party.address,full_address:0"
+msgctxt "field:party.address,create_date:"
+msgid "Create Date"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:party.address,create_uid:"
+msgid "Create User"
+msgstr "Crear usuario"
+
+msgctxt "field:party.address,full_address:"
 msgid "Full Address"
 msgstr ""
 
-msgctxt "field:party.address,name:0"
+msgctxt "field:party.address,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.address,name:"
 msgid "Name"
 msgstr "Nombre de Contacto"
 
-msgctxt "field:party.address,party:0"
+msgctxt "field:party.address,party:"
 msgid "Party"
 msgstr "Tercero"
 
-msgctxt "field:party.address,rec_name:0"
+msgctxt "field:party.address,rec_name:"
 msgid "Name"
 msgstr "Nombre"
 
-msgctxt "field:party.address,sequence:0"
+msgctxt "field:party.address,sequence:"
 msgid "Sequence"
 msgstr "Secuencia"
 
-msgctxt "field:party.address,street:0"
+msgctxt "field:party.address,street:"
 msgid "Street"
 msgstr "Calle"
 
-msgctxt "field:party.address,streetbis:0"
+msgctxt "field:party.address,streetbis:"
 msgid "Street (bis)"
 msgstr "Calle (bis)"
 
-msgctxt "field:party.address,subdivision:0"
+msgctxt "field:party.address,subdivision:"
 msgid "Subdivision"
 msgstr "Subdivisión"
 
-msgctxt "field:party.address,zip:0"
+msgctxt "field:party.address,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.address,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:party.address,zip:"
 msgid "Zip"
 msgstr "Código postal"
 
-msgctxt "field:party.category,active:0"
+msgctxt "field:party.category,active:"
 msgid "Active"
 msgstr "Activo"
 
-msgctxt "field:party.category,childs:0"
+msgctxt "field:party.category,childs:"
 msgid "Children"
 msgstr "Hij at s"
 
-msgctxt "field:party.category,name:0"
+msgctxt "field:party.category,create_date:"
+msgid "Create Date"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:party.category,create_uid:"
+msgid "Create User"
+msgstr "Crear usuario"
+
+msgctxt "field:party.category,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.category,name:"
 msgid "Name"
 msgstr "Nombre"
 
-msgctxt "field:party.category,parent:0"
+msgctxt "field:party.category,parent:"
 msgid "Parent"
 msgstr "Padre"
 
-msgctxt "field:party.category,rec_name:0"
+msgctxt "field:party.category,rec_name:"
 msgid "Name"
 msgstr "Nombre"
 
-msgctxt "field:party.check_vies.check,parties_failed:0"
+msgctxt "field:party.category,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.category,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:party.check_vies.no_result,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.check_vies.result,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.check_vies.result,parties_failed:"
 msgid "Parties Failed"
-msgstr "Los terceros fallaron"
+msgstr ""
 
-msgctxt "field:party.check_vies.check,parties_succeed:0"
+msgctxt "field:party.check_vies.result,parties_succeed:"
 msgid "Parties Succeed"
-msgstr "Terceros válidos"
+msgstr ""
+
+msgctxt "field:party.configuration,create_date:"
+msgid "Create Date"
+msgstr ""
 
 #, fuzzy
-msgctxt "field:party.configuration,party_lang:0"
+msgctxt "field:party.configuration,create_uid:"
+msgid "Create User"
+msgstr "Crear usuario"
+
+msgctxt "field:party.configuration,id:"
+msgid "ID"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:party.configuration,party_lang:"
 msgid "Party Language"
 msgstr "Idioma del Tercero"
 
-msgctxt "field:party.configuration,party_sequence:0"
+msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
 msgstr ""
 
 #, fuzzy
-msgctxt "field:party.configuration,rec_name:0"
+msgctxt "field:party.configuration,rec_name:"
 msgid "Name"
 msgstr "Nombre de Contacto"
 
-msgctxt "field:party.contact_mechanism,active:0"
+msgctxt "field:party.configuration,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.configuration,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,active:"
 msgid "Active"
 msgstr "Activo"
 
-msgctxt "field:party.contact_mechanism,comment:0"
+msgctxt "field:party.contact_mechanism,comment:"
 msgid "Comment"
 msgstr "Comentario"
 
-msgctxt "field:party.contact_mechanism,email:0"
+msgctxt "field:party.contact_mechanism,create_date:"
+msgid "Create Date"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:party.contact_mechanism,create_uid:"
+msgid "Create User"
+msgstr "Crear usuario"
+
+msgctxt "field:party.contact_mechanism,email:"
 msgid "E-Mail"
 msgstr "Correo electrónico"
 
-msgctxt "field:party.contact_mechanism,other_value:0"
+msgctxt "field:party.contact_mechanism,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,other_value:"
 msgid "Value"
 msgstr "Valor"
 
-msgctxt "field:party.contact_mechanism,party:0"
+msgctxt "field:party.contact_mechanism,party:"
 msgid "Party"
 msgstr "Tercero"
 
-msgctxt "field:party.contact_mechanism,rec_name:0"
+msgctxt "field:party.contact_mechanism,rec_name:"
 msgid "Name"
 msgstr "Nombre"
 
-msgctxt "field:party.contact_mechanism,sequence:0"
+msgctxt "field:party.contact_mechanism,sequence:"
 msgid "Sequence"
 msgstr "Secuencia"
 
-msgctxt "field:party.contact_mechanism,sip:0"
+msgctxt "field:party.contact_mechanism,sip:"
 msgid "SIP"
 msgstr "SIP"
 
-msgctxt "field:party.contact_mechanism,skype:0"
+msgctxt "field:party.contact_mechanism,skype:"
 msgid "Skype"
 msgstr "Skype"
 
-msgctxt "field:party.contact_mechanism,type:0"
+msgctxt "field:party.contact_mechanism,type:"
 msgid "Type"
 msgstr "Tipo"
 
-msgctxt "field:party.contact_mechanism,value:0"
+msgctxt "field:party.contact_mechanism,value:"
 msgid "Value"
 msgstr "Valor"
 
-msgctxt "field:party.contact_mechanism,website:0"
+msgctxt "field:party.contact_mechanism,website:"
 msgid "Website"
 msgstr "Sitio Web"
 
-msgctxt "field:party.party,active:0"
+msgctxt "field:party.contact_mechanism,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:party.party,active:"
 msgid "Active"
 msgstr "Activo"
 
-msgctxt "field:party.party,addresses:0"
+msgctxt "field:party.party,addresses:"
 msgid "Addresses"
 msgstr "Direcciones"
 
-msgctxt "field:party.party,categories:0"
+msgctxt "field:party.party,categories:"
 msgid "Categories"
 msgstr "Categorías"
 
-msgctxt "field:party.party,code:0"
+msgctxt "field:party.party,code:"
 msgid "Code"
 msgstr "Código"
 
-msgctxt "field:party.party,code_length:0"
+msgctxt "field:party.party,code_length:"
 msgid "Code Length"
 msgstr "Longitud del Código"
 
-msgctxt "field:party.party,contact_mechanisms:0"
+msgctxt "field:party.party,code_readonly:"
+msgid "Code Readonly"
+msgstr ""
+
+msgctxt "field:party.party,contact_mechanisms:"
 msgid "Contact Mechanisms"
 msgstr "Mecanismos de contacto"
 
-msgctxt "field:party.party,email:0"
+msgctxt "field:party.party,create_date:"
+msgid "Create Date"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:party.party,create_uid:"
+msgid "Create User"
+msgstr "Crear usuario"
+
+msgctxt "field:party.party,email:"
 msgid "E-Mail"
 msgstr "Correo electrónico"
 
-msgctxt "field:party.party,fax:0"
+msgctxt "field:party.party,fax:"
 msgid "Fax"
 msgstr "Fax"
 
-msgctxt "field:party.party,full_name:0"
+msgctxt "field:party.party,full_name:"
 msgid "Full Name"
 msgstr ""
 
-msgctxt "field:party.party,lang:0"
+msgctxt "field:party.party,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.party,lang:"
 msgid "Language"
 msgstr "Idioma"
 
-msgctxt "field:party.party,mobile:0"
+msgctxt "field:party.party,mobile:"
 msgid "Mobile"
 msgstr "Celular"
 
-msgctxt "field:party.party,name:0"
+msgctxt "field:party.party,name:"
 msgid "Name"
 msgstr "Nombre"
 
-msgctxt "field:party.party,phone:0"
+msgctxt "field:party.party,phone:"
 msgid "Phone"
 msgstr "Teléfono"
 
-msgctxt "field:party.party,rec_name:0"
+msgctxt "field:party.party,rec_name:"
 msgid "Name"
 msgstr "Nombre"
 
-msgctxt "field:party.party,vat_code:0"
+msgctxt "field:party.party,vat_code:"
 msgid "VAT Code"
 msgstr "Código de IVA"
 
-msgctxt "field:party.party,vat_country:0"
+msgctxt "field:party.party,vat_country:"
 msgid "VAT Country"
 msgstr "País"
 
-msgctxt "field:party.party,vat_number:0"
+msgctxt "field:party.party,vat_number:"
 msgid "VAT Number"
 msgstr "Número"
 
-msgctxt "field:party.party,website:0"
+msgctxt "field:party.party,website:"
 msgid "Website"
 msgstr "Sitio Web"
 
-msgctxt "field:party.party-party.category,category:0"
+msgctxt "field:party.party,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.party,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:party.party-party.category,category:"
 msgid "Category"
 msgstr "Categoría"
 
-msgctxt "field:party.party-party.category,party:0"
+msgctxt "field:party.party-party.category,create_date:"
+msgid "Create Date"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:party.party-party.category,create_uid:"
+msgid "Create User"
+msgstr "Crear usuario"
+
+msgctxt "field:party.party-party.category,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.party-party.category,party:"
 msgid "Party"
 msgstr "Tercero"
 
-msgctxt "field:party.party-party.category,rec_name:0"
+msgctxt "field:party.party-party.category,rec_name:"
 msgid "Name"
 msgstr "Nombre"
 
-msgctxt "help:party.configuration,party_lang:0"
+msgctxt "field:party.party-party.category,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.party-party.category,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "help:party.configuration,party_lang:"
 msgid "The value set on this field will preset the language on new parties"
 msgstr ""
 
-msgctxt "help:party.party,vat_country:0"
+msgctxt "help:party.party,vat_country:"
 msgid "Setting VAT country will enable validation of the VAT number."
 msgstr "Al especificar el país se habilitará la verificación del NIT."
 
-msgctxt "help:party.party,vat_number:0"
+msgctxt "help:party.party,vat_number:"
 msgid "Value Added Tax number"
 msgstr "Número de Impuesto de Valor Agregado"
 
@@ -339,35 +477,37 @@ msgctxt "model:ir.ui.menu,name:menu_party_form"
 msgid "Parties"
 msgstr "Terceros"
 
-msgctxt "model:party.address,name:0"
+msgctxt "model:party.address,name:"
 msgid "Address"
 msgstr "Dirección"
 
-msgctxt "model:party.category,name:0"
+msgctxt "model:party.category,name:"
 msgid "Category"
 msgstr "Categoría"
 
-msgctxt "model:party.check_vies.check,name:0"
-msgid "Check VIES - Check"
-msgstr "Revisar VIES - Revisar"
+#, fuzzy
+msgctxt "model:party.check_vies.no_result,name:"
+msgid "Check VIES"
+msgstr "Revisar VIES"
 
-msgctxt "model:party.check_vies.no_check,name:0"
-msgid "Check VIES - No Check"
-msgstr "Revisar VIES - NO revisar"
+#, fuzzy
+msgctxt "model:party.check_vies.result,name:"
+msgid "Check VIES"
+msgstr "Revisar VIES"
 
-msgctxt "model:party.configuration,name:0"
+msgctxt "model:party.configuration,name:"
 msgid "Party Configuration"
 msgstr ""
 
-msgctxt "model:party.contact_mechanism,name:0"
+msgctxt "model:party.contact_mechanism,name:"
 msgid "Contact Mechanism"
 msgstr "Mecanismo de contacto"
 
-msgctxt "model:party.party,name:0"
+msgctxt "model:party.party,name:"
 msgid "Party"
 msgstr "Tercero"
 
-msgctxt "model:party.party-party.category,name:0"
+msgctxt "model:party.party-party.category,name:"
 msgid "Party - Category"
 msgstr "Tercero - Categoría"
 
@@ -375,138 +515,132 @@ msgctxt "model:res.group,name:group_party_admin"
 msgid "Party Administration"
 msgstr "Terceros"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "E-Mail"
 msgstr "Correo electrónico"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Fax"
 msgstr "Fax"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "IRC"
 msgstr "Chat"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Jabber"
 msgstr "Jabber"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Mobile"
 msgstr "Celular"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Other"
 msgstr "Otro"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Phone"
 msgstr "Teléfono"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "SIP"
 msgstr "SIP"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Skype"
 msgstr "Skype"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Website"
 msgstr "Sitio Web"
 
-msgctxt "view:party.address:0"
+msgctxt "view:party.address:"
 msgid "Addresses"
 msgstr "Direcciones"
 
-msgctxt "view:party.category:0"
+msgctxt "view:party.category:"
 msgid "Categories"
 msgstr "Categorías"
 
-msgctxt "view:party.category:0"
+msgctxt "view:party.category:"
 msgid "Category"
 msgstr "Categoría"
 
-msgctxt "view:party.check_vies.check:0"
-msgid "Parties Failed"
-msgstr "Los terceros fallaron"
-
-msgctxt "view:party.check_vies.check:0"
-msgid "Parties Succeed"
-msgstr "Los terceros fueron válidos"
-
-msgctxt "view:party.check_vies.check:0"
-msgid "VAT Information Exchange System Results"
-msgstr "Resultado de Sistema de Información de intercambio IVA"
-
-msgctxt "view:party.check_vies.no_check:0"
+msgctxt "view:party.check_vies.no_result:"
 msgid "VAT Information Exchange System"
-msgstr "Sistema de Información de Intercambio IVA"
+msgstr ""
 
-msgctxt "view:party.check_vies.no_check:0"
+msgctxt "view:party.check_vies.no_result:"
 msgid "You must have a recent version of \"vatnumber\" installed!"
-msgstr "Debe tener una versión reciente de \"vatnumber\" instalada!"
+msgstr ""
 
-msgctxt "view:party.configuration:0"
+msgctxt "view:party.check_vies.result:"
+msgid "VAT Information Exchange System Results"
+msgstr ""
+
+msgctxt "view:party.configuration:"
 msgid "Party Configuration"
 msgstr ""
 
-msgctxt "view:party.contact_mechanism:0"
+msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanism"
 msgstr "Mecanismo de contacto"
 
-msgctxt "view:party.contact_mechanism:0"
+msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanisms"
 msgstr "Mecanismos de contacto"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Account"
 msgstr "Cuenta"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Accounting"
 msgstr "Contabilidad"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Addresses"
 msgstr "Direcciones"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Categories"
 msgstr "Categorías"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Contact Mechanism"
 msgstr "Mecanismo de contacto"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Contact Mechanisms"
 msgstr "Mecanismos de contacto"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "General"
 msgstr "General"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Parties"
 msgstr "Terceros"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Party"
 msgstr "Tercero"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "VAT"
 msgstr "IVA"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "_General"
 msgstr "_General"
 
-msgctxt "wizard_button:party.check_vies,check,end:0"
+#, fuzzy
+msgctxt "wizard_button:party.check_vies,no_result,end:"
 msgid "Ok"
 msgstr "Aceptar"
 
-msgctxt "wizard_button:party.check_vies,no_check,end:0"
+#, fuzzy
+msgctxt "wizard_button:party.check_vies,result,end:"
 msgid "Ok"
 msgstr "Aceptar"
diff --git a/locale/es_ES.po b/locale/es_ES.po
index f0643df..5acb724 100644
--- a/locale/es_ES.po
+++ b/locale/es_ES.po
@@ -2,279 +2,409 @@
 msgid ""
 msgstr "Content-Type: text/plain; charset=utf-8\n"
 
-msgctxt "error:party.address:0"
+msgctxt "error:party.address:"
 msgid "You can not modify the party of an address!"
-msgstr "No puede modificar el tercero de una dirección"
+msgstr "No puede modificar el tercero de una dirección."
 
-msgctxt "error:party.category:0"
+msgctxt "error:party.category:"
 msgid "The name of a party category must be unique by parent!"
-msgstr ""
+msgstr "El nombre de la categoría de terceros debe ser único por padre."
 
-msgctxt "error:party.category:0"
+msgctxt "error:party.category:"
 msgid "You can not create recursive categories!"
-msgstr "No puede crear categorías recursivas"
+msgstr "No puede crear categorías recursivas."
 
-msgctxt "error:party.category:0"
+msgctxt "error:party.category:"
 msgid "You can not use \" / \" in name field!"
-msgstr ""
+msgstr "No puede usar \"/\" en el campo nombre."
 
-msgctxt "error:party.check_vies:0"
+msgctxt "error:party.check_vies:"
 msgid "The VIES service is unavailable, try again later."
-msgstr "El servicio VIES no está disponible, inténtelo de nuevo más tarde"
+msgstr "El servicio VIES no está disponible, inténtelo de nuevo más tarde."
 
-msgctxt "error:party.contact_mechanism:0"
+msgctxt "error:party.contact_mechanism:"
 msgid "You can not modify the party of a contact mechanism!"
-msgstr "No puede modificar el tercero de un médio de contacto"
+msgstr "No puede modificar el tercero de un medio de contacto."
 
-msgctxt "error:party.party:0"
+msgctxt "error:party.party:"
 msgid "Invalid VAT number!"
-msgstr "El NIF no es válido"
+msgstr "El NIF no es correcto."
 
-msgctxt "error:party.party:0"
+msgctxt "error:party.party:"
 msgid "The code of the party must be unique!"
-msgstr "El código del tercero debe ser único"
+msgstr "El código del tercero debe ser único."
 
-msgctxt "field:party.address,active:0"
+msgctxt "field:party.address,active:"
 msgid "Active"
 msgstr "Activo"
 
-msgctxt "field:party.address,city:0"
+msgctxt "field:party.address,city:"
 msgid "City"
 msgstr "Ciudad"
 
-msgctxt "field:party.address,country:0"
+msgctxt "field:party.address,country:"
 msgid "Country"
 msgstr "País"
 
-msgctxt "field:party.address,full_address:0"
+msgctxt "field:party.address,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:party.address,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:party.address,full_address:"
 msgid "Full Address"
-msgstr ""
+msgstr "Dirección completa"
+
+msgctxt "field:party.address,id:"
+msgid "ID"
+msgstr "ID"
 
-msgctxt "field:party.address,name:0"
+msgctxt "field:party.address,name:"
 msgid "Name"
 msgstr "Contacto"
 
-msgctxt "field:party.address,party:0"
+msgctxt "field:party.address,party:"
 msgid "Party"
 msgstr "Tercero"
 
-msgctxt "field:party.address,rec_name:0"
+msgctxt "field:party.address,rec_name:"
 msgid "Name"
 msgstr "Contacto"
 
-msgctxt "field:party.address,sequence:0"
+msgctxt "field:party.address,sequence:"
 msgid "Sequence"
 msgstr "Secuencia"
 
-msgctxt "field:party.address,street:0"
+msgctxt "field:party.address,street:"
 msgid "Street"
 msgstr "Calle"
 
-msgctxt "field:party.address,streetbis:0"
+msgctxt "field:party.address,streetbis:"
 msgid "Street (bis)"
 msgstr "Calle (bis)"
 
-msgctxt "field:party.address,subdivision:0"
+msgctxt "field:party.address,subdivision:"
 msgid "Subdivision"
 msgstr "Subdivisión"
 
-msgctxt "field:party.address,zip:0"
+msgctxt "field:party.address,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:party.address,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "field:party.address,zip:"
 msgid "Zip"
 msgstr "Código postal"
 
-msgctxt "field:party.category,active:0"
+msgctxt "field:party.category,active:"
 msgid "Active"
 msgstr "Activo"
 
-msgctxt "field:party.category,childs:0"
+msgctxt "field:party.category,childs:"
 msgid "Children"
 msgstr "Hijos"
 
-msgctxt "field:party.category,name:0"
+msgctxt "field:party.category,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:party.category,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:party.category,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.category,name:"
 msgid "Name"
 msgstr "Nombre"
 
-msgctxt "field:party.category,parent:0"
+msgctxt "field:party.category,parent:"
 msgid "Parent"
 msgstr "Padre"
 
-msgctxt "field:party.category,rec_name:0"
+msgctxt "field:party.category,rec_name:"
 msgid "Name"
 msgstr "Nombre"
 
-msgctxt "field:party.check_vies.check,parties_failed:0"
+msgctxt "field:party.category,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:party.category,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "field:party.check_vies.no_result,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.check_vies.result,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.check_vies.result,parties_failed:"
 msgid "Parties Failed"
-msgstr "Terceros rechazados"
+msgstr "Tercero erróneo"
 
-msgctxt "field:party.check_vies.check,parties_succeed:0"
+msgctxt "field:party.check_vies.result,parties_succeed:"
 msgid "Parties Succeed"
-msgstr "Terceros aceptados"
+msgstr "Tercero correcto"
 
-#, fuzzy
-msgctxt "field:party.configuration,party_lang:0"
+msgctxt "field:party.configuration,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:party.configuration,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:party.configuration,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.configuration,party_lang:"
 msgid "Party Language"
-msgstr "Idioma del tercero"
+msgstr "Idioma tercero"
 
-msgctxt "field:party.configuration,party_sequence:0"
+msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
-msgstr ""
+msgstr "Secuencia tercero"
 
-#, fuzzy
-msgctxt "field:party.configuration,rec_name:0"
+msgctxt "field:party.configuration,rec_name:"
 msgid "Name"
-msgstr "Nombre del campo"
+msgstr "Nombre"
+
+msgctxt "field:party.configuration,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:party.configuration,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
 
-msgctxt "field:party.contact_mechanism,active:0"
+msgctxt "field:party.contact_mechanism,active:"
 msgid "Active"
 msgstr "Activo"
 
-msgctxt "field:party.contact_mechanism,comment:0"
+msgctxt "field:party.contact_mechanism,comment:"
 msgid "Comment"
 msgstr "Comentario"
 
-msgctxt "field:party.contact_mechanism,email:0"
+msgctxt "field:party.contact_mechanism,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:party.contact_mechanism,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:party.contact_mechanism,email:"
 msgid "E-Mail"
 msgstr "Correo electrónico"
 
-msgctxt "field:party.contact_mechanism,other_value:0"
+msgctxt "field:party.contact_mechanism,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.contact_mechanism,other_value:"
 msgid "Value"
 msgstr "Valor"
 
-msgctxt "field:party.contact_mechanism,party:0"
+msgctxt "field:party.contact_mechanism,party:"
 msgid "Party"
 msgstr "Tercero"
 
-msgctxt "field:party.contact_mechanism,rec_name:0"
+msgctxt "field:party.contact_mechanism,rec_name:"
 msgid "Name"
 msgstr "Nombre"
 
-msgctxt "field:party.contact_mechanism,sequence:0"
+msgctxt "field:party.contact_mechanism,sequence:"
 msgid "Sequence"
 msgstr "Secuencia"
 
-msgctxt "field:party.contact_mechanism,sip:0"
+msgctxt "field:party.contact_mechanism,sip:"
 msgid "SIP"
 msgstr "SIP"
 
-msgctxt "field:party.contact_mechanism,skype:0"
+msgctxt "field:party.contact_mechanism,skype:"
 msgid "Skype"
 msgstr "Skype"
 
-msgctxt "field:party.contact_mechanism,type:0"
+msgctxt "field:party.contact_mechanism,type:"
 msgid "Type"
 msgstr "Tipo"
 
-msgctxt "field:party.contact_mechanism,value:0"
+msgctxt "field:party.contact_mechanism,value:"
 msgid "Value"
 msgstr "Valor"
 
-msgctxt "field:party.contact_mechanism,website:0"
+msgctxt "field:party.contact_mechanism,website:"
 msgid "Website"
 msgstr "Sitio Web"
 
-msgctxt "field:party.party,active:0"
+msgctxt "field:party.contact_mechanism,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:party.contact_mechanism,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "field:party.party,active:"
 msgid "Active"
 msgstr "Activo"
 
-msgctxt "field:party.party,addresses:0"
+msgctxt "field:party.party,addresses:"
 msgid "Addresses"
 msgstr "Direcciones"
 
-msgctxt "field:party.party,categories:0"
+msgctxt "field:party.party,categories:"
 msgid "Categories"
 msgstr "Categorías"
 
-msgctxt "field:party.party,code:0"
+msgctxt "field:party.party,code:"
 msgid "Code"
 msgstr "Código"
 
-msgctxt "field:party.party,code_length:0"
+msgctxt "field:party.party,code_length:"
 msgid "Code Length"
 msgstr "Dígitos del código"
 
-msgctxt "field:party.party,contact_mechanisms:0"
+msgctxt "field:party.party,code_readonly:"
+msgid "Code Readonly"
+msgstr "Código sólo lectura"
+
+msgctxt "field:party.party,contact_mechanisms:"
 msgid "Contact Mechanisms"
-msgstr "Médios de contacto"
+msgstr "Medios de contacto"
+
+msgctxt "field:party.party,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
 
-msgctxt "field:party.party,email:0"
+msgctxt "field:party.party,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:party.party,email:"
 msgid "E-Mail"
 msgstr "Correo electrónico"
 
-msgctxt "field:party.party,fax:0"
+msgctxt "field:party.party,fax:"
 msgid "Fax"
 msgstr "Fax"
 
-msgctxt "field:party.party,full_name:0"
+msgctxt "field:party.party,full_name:"
 msgid "Full Name"
-msgstr ""
+msgstr "Nombre completo"
 
-msgctxt "field:party.party,lang:0"
+msgctxt "field:party.party,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.party,lang:"
 msgid "Language"
 msgstr "Idioma"
 
-msgctxt "field:party.party,mobile:0"
+msgctxt "field:party.party,mobile:"
 msgid "Mobile"
 msgstr "Móvil"
 
-msgctxt "field:party.party,name:0"
+msgctxt "field:party.party,name:"
 msgid "Name"
 msgstr "Nombre"
 
-msgctxt "field:party.party,phone:0"
+msgctxt "field:party.party,phone:"
 msgid "Phone"
 msgstr "Teléfono"
 
-msgctxt "field:party.party,rec_name:0"
+msgctxt "field:party.party,rec_name:"
 msgid "Name"
 msgstr "Nombre"
 
-msgctxt "field:party.party,vat_code:0"
+msgctxt "field:party.party,vat_code:"
 msgid "VAT Code"
 msgstr "NIF"
 
-msgctxt "field:party.party,vat_country:0"
+msgctxt "field:party.party,vat_country:"
 msgid "VAT Country"
 msgstr "País del NIF"
 
-msgctxt "field:party.party,vat_number:0"
+msgctxt "field:party.party,vat_number:"
 msgid "VAT Number"
 msgstr "NIF"
 
-msgctxt "field:party.party,website:0"
+msgctxt "field:party.party,website:"
 msgid "Website"
 msgstr "Sitio Web"
 
-msgctxt "field:party.party-party.category,category:0"
+msgctxt "field:party.party,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:party.party,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "field:party.party-party.category,category:"
 msgid "Category"
 msgstr "Categoría"
 
-msgctxt "field:party.party-party.category,party:0"
+msgctxt "field:party.party-party.category,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:party.party-party.category,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:party.party-party.category,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.party-party.category,party:"
 msgid "Party"
 msgstr "Tercero"
 
-msgctxt "field:party.party-party.category,rec_name:0"
+msgctxt "field:party.party-party.category,rec_name:"
 msgid "Name"
 msgstr "Nombre"
 
-msgctxt "help:party.configuration,party_lang:0"
+msgctxt "field:party.party-party.category,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:party.party-party.category,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "help:party.configuration,party_lang:"
 msgid "The value set on this field will preset the language on new parties"
 msgstr ""
+"El valor de este campo será el valor por defecto del idioma de los terceros."
 
-msgctxt "help:party.party,vat_country:0"
+msgctxt "help:party.party,vat_country:"
 msgid "Setting VAT country will enable validation of the VAT number."
 msgstr ""
 "Al especificar el país del NIF se habilitará la verificación de dicho "
 "número."
 
-msgctxt "help:party.party,vat_number:0"
+msgctxt "help:party.party,vat_number:"
 msgid "Value Added Tax number"
-msgstr "Número de identificación fiscal"
+msgstr "Número de identificación fiscal."
 
 msgctxt "model:ir.action,name:act_address_form"
 msgid "Addresses"
 msgstr "Direcciones"
 
-#, fuzzy
 msgctxt "model:ir.action,name:act_category_list"
 msgid "Categories"
 msgstr "Categorías"
@@ -289,7 +419,7 @@ msgstr "Terceros por categoría"
 
 msgctxt "model:ir.action,name:act_party_configuration_form"
 msgid "Party Configuration"
-msgstr ""
+msgstr "Configuración de terceros"
 
 msgctxt "model:ir.action,name:act_party_form"
 msgid "Parties"
@@ -315,7 +445,6 @@ msgctxt "model:ir.ui.menu,name:menu_address_form"
 msgid "Addresses"
 msgstr "Direcciones"
 
-#, fuzzy
 msgctxt "model:ir.ui.menu,name:menu_category_list"
 msgid "Categories"
 msgstr "Categorías"
@@ -328,183 +457,174 @@ msgctxt "model:ir.ui.menu,name:menu_configuration"
 msgid "Configuration"
 msgstr "Configuración"
 
-#, fuzzy
 msgctxt "model:ir.ui.menu,name:menu_party"
 msgid "Party"
-msgstr "Gestión de terceros"
+msgstr "Tercero"
 
 msgctxt "model:ir.ui.menu,name:menu_party_configuration"
 msgid "Party Configuration"
-msgstr ""
+msgstr "Terceros"
 
 msgctxt "model:ir.ui.menu,name:menu_party_form"
 msgid "Parties"
 msgstr "Terceros"
 
-msgctxt "model:party.address,name:0"
+msgctxt "model:party.address,name:"
 msgid "Address"
 msgstr "Dirección"
 
-msgctxt "model:party.category,name:0"
+msgctxt "model:party.category,name:"
 msgid "Category"
 msgstr "Categoría"
 
-msgctxt "model:party.check_vies.check,name:0"
-msgid "Check VIES - Check"
-msgstr "Comprobación VIES - Comprobar"
+msgctxt "model:party.check_vies.no_result,name:"
+msgid "Check VIES"
+msgstr "Comprobar VIES"
 
-msgctxt "model:party.check_vies.no_check,name:0"
-msgid "Check VIES - No Check"
-msgstr "Comprobación VIES - No comprobar"
+msgctxt "model:party.check_vies.result,name:"
+msgid "Check VIES"
+msgstr "Comprobar VIES"
 
-msgctxt "model:party.configuration,name:0"
+msgctxt "model:party.configuration,name:"
 msgid "Party Configuration"
-msgstr ""
+msgstr "Configuración de terceros"
 
-msgctxt "model:party.contact_mechanism,name:0"
+msgctxt "model:party.contact_mechanism,name:"
 msgid "Contact Mechanism"
-msgstr "Médio de contacto"
+msgstr "Medio de contacto"
 
-msgctxt "model:party.party,name:0"
+msgctxt "model:party.party,name:"
 msgid "Party"
 msgstr "Tercero"
 
-msgctxt "model:party.party-party.category,name:0"
+msgctxt "model:party.party-party.category,name:"
 msgid "Party - Category"
-msgstr "Tercero - Categoría"
+msgstr "Terceros - Categoría"
 
 msgctxt "model:res.group,name:group_party_admin"
 msgid "Party Administration"
 msgstr "Administración de terceros"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "E-Mail"
 msgstr "Correo electrónico"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Fax"
 msgstr "Fax"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "IRC"
 msgstr "IRC"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Jabber"
 msgstr "Jabber"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Mobile"
 msgstr "Móvil"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Other"
 msgstr "Otro"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Phone"
 msgstr "Teléfono"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "SIP"
 msgstr "SIP"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Skype"
 msgstr "Skype"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Website"
 msgstr "Sitio Web"
 
-msgctxt "view:party.address:0"
+msgctxt "view:party.address:"
 msgid "Addresses"
 msgstr "Direcciones"
 
-msgctxt "view:party.category:0"
+msgctxt "view:party.category:"
 msgid "Categories"
 msgstr "Categorías"
 
-msgctxt "view:party.category:0"
+msgctxt "view:party.category:"
 msgid "Category"
 msgstr "Categoría"
 
-msgctxt "view:party.check_vies.check:0"
-msgid "Parties Failed"
-msgstr "Terceros rechazados"
-
-msgctxt "view:party.check_vies.check:0"
-msgid "Parties Succeed"
-msgstr "Terceros aceptados"
-
-msgctxt "view:party.check_vies.check:0"
-msgid "VAT Information Exchange System Results"
-msgstr "Resultado del sistema de intercambio de información de IVA"
-
-msgctxt "view:party.check_vies.no_check:0"
+msgctxt "view:party.check_vies.no_result:"
 msgid "VAT Information Exchange System"
-msgstr "Sistema de intercambio de información de IVA"
+msgstr "Sistema de intercambio de información VAT"
 
-msgctxt "view:party.check_vies.no_check:0"
+msgctxt "view:party.check_vies.no_result:"
 msgid "You must have a recent version of \"vatnumber\" installed!"
-msgstr "Necesita instalar una versión más actualizada de «vatnumber»"
+msgstr "Debe tener instalada una versión reciente de \"vatnumber\"."
 
-msgctxt "view:party.configuration:0"
+msgctxt "view:party.check_vies.result:"
+msgid "VAT Information Exchange System Results"
+msgstr "Resultado del sistema de intercambio de información VAT"
+
+msgctxt "view:party.configuration:"
 msgid "Party Configuration"
-msgstr ""
+msgstr "Configuración de terceros"
 
-msgctxt "view:party.contact_mechanism:0"
+msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanism"
-msgstr "Médio de contacto"
+msgstr "Medio de contacto"
 
-msgctxt "view:party.contact_mechanism:0"
+msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanisms"
-msgstr "Médios de contacto"
+msgstr "Medios de contacto"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Account"
 msgstr "Cuenta"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Accounting"
 msgstr "Contabilidad"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Addresses"
 msgstr "Direcciones"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Categories"
 msgstr "Categorías"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Contact Mechanisms"
-msgstr "Médios de contacto"
+msgstr "Medios de contacto"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "General"
 msgstr "General"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Parties"
 msgstr "Terceros"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Party"
 msgstr "Tercero"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "VAT"
 msgstr "NIF"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "_General"
 msgstr "_General"
 
-msgctxt "wizard_button:party.check_vies,check,end:0"
+msgctxt "wizard_button:party.check_vies,no_result,end:"
 msgid "Ok"
 msgstr "Aceptar"
 
-msgctxt "wizard_button:party.check_vies,no_check,end:0"
+msgctxt "wizard_button:party.check_vies,result,end:"
 msgid "Ok"
 msgstr "Aceptar"
diff --git a/locale/fr_FR.po b/locale/fr_FR.po
index 109e025..7e2f614 100644
--- a/locale/fr_FR.po
+++ b/locale/fr_FR.po
@@ -2,270 +2,435 @@
 msgid ""
 msgstr "Content-Type: text/plain; charset=utf-8\n"
 
-msgctxt "error:party.address:0"
+msgctxt "error:party.address:"
 msgid "You can not modify the party of an address!"
 msgstr "Vous ne pouvez pas modifier le tiers d'une addresse !"
 
-msgctxt "error:party.category:0"
+msgctxt "error:party.address:"
+msgid "You can not modify the party of an address!"
+msgstr "Vous ne pouvez pas modifier le tiers d'une addresse !"
+
+msgctxt "error:party.category:"
 msgid "The name of a party category must be unique by parent!"
 msgstr ""
 "Le nom d'une catégorie de tiers doit être unique pour un même parent !"
 
-msgctxt "error:party.category:0"
+msgctxt "error:party.category:"
+msgid "The name of a party category must be unique by parent!"
+msgstr ""
+"Le nom d'une catégorie de tiers doit être unique pour un même parent !"
+
+msgctxt "error:party.category:"
 msgid "You can not create recursive categories!"
 msgstr "Vous ne pouvez pas créer des catégories récursives !"
 
-msgctxt "error:party.category:0"
+msgctxt "error:party.category:"
+msgid "You can not create recursive categories!"
+msgstr "Vous ne pouvez pas créer des catégories récursives !"
+
+msgctxt "error:party.category:"
+msgid "You can not use \" / \" in name field!"
+msgstr "Vous ne pouvez pas utiliser \" / \" dans le champ nom !"
+
+msgctxt "error:party.category:"
 msgid "You can not use \" / \" in name field!"
 msgstr "Vous ne pouvez pas utiliser \" / \" dans le champ nom !"
 
-msgctxt "error:party.check_vies:0"
+msgctxt "error:party.check_vies:"
 msgid "The VIES service is unavailable, try again later."
 msgstr "Le service VIES n'est pas disponible, veuillez essayer plus tard."
 
-msgctxt "error:party.contact_mechanism:0"
+msgctxt "error:party.check_vies:"
+msgid "The VIES service is unavailable, try again later."
+msgstr "Le service VIES n'est pas disponible, veuillez essayer plus tard."
+
+msgctxt "error:party.contact_mechanism:"
 msgid "You can not modify the party of a contact mechanism!"
 msgstr "Vous ne pouvez pas modifiez le tiers d'un moyen de contact."
 
-msgctxt "error:party.party:0"
+msgctxt "error:party.contact_mechanism:"
+msgid "You can not modify the party of a contact mechanism!"
+msgstr "Vous ne pouvez pas modifiez le tiers d'un moyen de contact."
+
+msgctxt "error:party.party:"
+msgid "Invalid VAT number!"
+msgstr "Numéro TVA non valide !"
+
+msgctxt "error:party.party:"
 msgid "Invalid VAT number!"
 msgstr "Numéro TVA non valide !"
 
-msgctxt "error:party.party:0"
+msgctxt "error:party.party:"
+msgid "The code of the party must be unique!"
+msgstr "Le code du tiers doit être unique !"
+
+msgctxt "error:party.party:"
 msgid "The code of the party must be unique!"
 msgstr "Le code du tiers doit être unique !"
 
-msgctxt "field:party.address,active:0"
+msgctxt "field:party.address,active:"
 msgid "Active"
 msgstr "Actif"
 
-msgctxt "field:party.address,city:0"
+msgctxt "field:party.address,city:"
 msgid "City"
 msgstr "Ville"
 
-msgctxt "field:party.address,country:0"
+msgctxt "field:party.address,country:"
 msgid "Country"
 msgstr "Pays"
 
-msgctxt "field:party.address,full_address:0"
+msgctxt "field:party.address,create_date:"
+msgid "Create Date"
+msgstr "Date de création"
+
+msgctxt "field:party.address,create_uid:"
+msgid "Create User"
+msgstr "Créé par"
+
+msgctxt "field:party.address,full_address:"
 msgid "Full Address"
 msgstr "Adresse complète"
 
-msgctxt "field:party.address,name:0"
+msgctxt "field:party.address,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.address,name:"
 msgid "Name"
 msgstr "Nom"
 
-msgctxt "field:party.address,party:0"
+msgctxt "field:party.address,party:"
 msgid "Party"
 msgstr "Tiers"
 
-msgctxt "field:party.address,rec_name:0"
+msgctxt "field:party.address,rec_name:"
 msgid "Name"
 msgstr "Nom"
 
-msgctxt "field:party.address,sequence:0"
+msgctxt "field:party.address,sequence:"
 msgid "Sequence"
 msgstr "Séquence"
 
-msgctxt "field:party.address,street:0"
+msgctxt "field:party.address,street:"
 msgid "Street"
 msgstr "Rue"
 
-msgctxt "field:party.address,streetbis:0"
+msgctxt "field:party.address,streetbis:"
 msgid "Street (bis)"
 msgstr "Rue (bis)"
 
-msgctxt "field:party.address,subdivision:0"
+msgctxt "field:party.address,subdivision:"
 msgid "Subdivision"
 msgstr "Subdivision"
 
-msgctxt "field:party.address,zip:0"
+msgctxt "field:party.address,write_date:"
+msgid "Write Date"
+msgstr "Date de mise à jour"
+
+msgctxt "field:party.address,write_uid:"
+msgid "Write User"
+msgstr "Mis à jour par"
+
+msgctxt "field:party.address,zip:"
 msgid "Zip"
 msgstr "Code Postal"
 
-msgctxt "field:party.category,active:0"
+msgctxt "field:party.category,active:"
 msgid "Active"
 msgstr "Actif"
 
-msgctxt "field:party.category,childs:0"
+msgctxt "field:party.category,childs:"
 msgid "Children"
 msgstr "Enfants"
 
-msgctxt "field:party.category,name:0"
+msgctxt "field:party.category,create_date:"
+msgid "Create Date"
+msgstr "Date de création"
+
+msgctxt "field:party.category,create_uid:"
+msgid "Create User"
+msgstr "Créé par"
+
+msgctxt "field:party.category,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.category,name:"
 msgid "Name"
 msgstr "Nom"
 
-msgctxt "field:party.category,parent:0"
+msgctxt "field:party.category,parent:"
 msgid "Parent"
 msgstr "Parent"
 
-msgctxt "field:party.category,rec_name:0"
+msgctxt "field:party.category,rec_name:"
 msgid "Name"
 msgstr "Nom"
 
-msgctxt "field:party.check_vies.check,parties_failed:0"
+msgctxt "field:party.category,write_date:"
+msgid "Write Date"
+msgstr "Date de mise à jour"
+
+msgctxt "field:party.category,write_uid:"
+msgid "Write User"
+msgstr "Mis à jour par"
+
+msgctxt "field:party.check_vies.no_result,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.check_vies.result,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.check_vies.result,parties_failed:"
 msgid "Parties Failed"
-msgstr "Tiers non validés"
+msgstr "Tiers échoués"
 
-msgctxt "field:party.check_vies.check,parties_succeed:0"
+msgctxt "field:party.check_vies.result,parties_succeed:"
 msgid "Parties Succeed"
-msgstr "Tiers validés"
+msgstr "Tiers réussis"
+
+msgctxt "field:party.configuration,create_date:"
+msgid "Create Date"
+msgstr "Date de création"
 
-msgctxt "field:party.configuration,party_lang:0"
+msgctxt "field:party.configuration,create_uid:"
+msgid "Create User"
+msgstr "Créé par"
+
+msgctxt "field:party.configuration,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.configuration,party_lang:"
 msgid "Party Language"
 msgstr "Langue du tiers"
 
-msgctxt "field:party.configuration,party_sequence:0"
+msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
 msgstr "Séquence des tiers"
 
-msgctxt "field:party.configuration,rec_name:0"
+msgctxt "field:party.configuration,rec_name:"
 msgid "Name"
 msgstr "Nom"
 
-msgctxt "field:party.contact_mechanism,active:0"
+msgctxt "field:party.configuration,write_date:"
+msgid "Write Date"
+msgstr "Date de mise à jour"
+
+msgctxt "field:party.configuration,write_uid:"
+msgid "Write User"
+msgstr "Mis à jour par"
+
+msgctxt "field:party.contact_mechanism,active:"
 msgid "Active"
 msgstr "Actif"
 
-msgctxt "field:party.contact_mechanism,comment:0"
+msgctxt "field:party.contact_mechanism,comment:"
 msgid "Comment"
 msgstr "Commentaire"
 
-msgctxt "field:party.contact_mechanism,email:0"
+msgctxt "field:party.contact_mechanism,create_date:"
+msgid "Create Date"
+msgstr "Date de création"
+
+msgctxt "field:party.contact_mechanism,create_uid:"
+msgid "Create User"
+msgstr "Créé par"
+
+msgctxt "field:party.contact_mechanism,email:"
 msgid "E-Mail"
 msgstr "E-mail"
 
-msgctxt "field:party.contact_mechanism,other_value:0"
+msgctxt "field:party.contact_mechanism,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.contact_mechanism,other_value:"
 msgid "Value"
 msgstr "Valeur"
 
-msgctxt "field:party.contact_mechanism,party:0"
+msgctxt "field:party.contact_mechanism,party:"
 msgid "Party"
 msgstr "Tiers"
 
-msgctxt "field:party.contact_mechanism,rec_name:0"
+msgctxt "field:party.contact_mechanism,rec_name:"
 msgid "Name"
 msgstr "Nom"
 
-msgctxt "field:party.contact_mechanism,sequence:0"
+msgctxt "field:party.contact_mechanism,sequence:"
 msgid "Sequence"
 msgstr "Séquence"
 
-msgctxt "field:party.contact_mechanism,sip:0"
+msgctxt "field:party.contact_mechanism,sip:"
 msgid "SIP"
 msgstr "SIP"
 
-msgctxt "field:party.contact_mechanism,skype:0"
+msgctxt "field:party.contact_mechanism,skype:"
 msgid "Skype"
 msgstr "Skype"
 
-msgctxt "field:party.contact_mechanism,type:0"
+msgctxt "field:party.contact_mechanism,type:"
 msgid "Type"
 msgstr "Type"
 
-msgctxt "field:party.contact_mechanism,value:0"
+msgctxt "field:party.contact_mechanism,value:"
 msgid "Value"
 msgstr "Valeur"
 
-msgctxt "field:party.contact_mechanism,website:0"
+msgctxt "field:party.contact_mechanism,website:"
 msgid "Website"
 msgstr "Site web"
 
-msgctxt "field:party.party,active:0"
+msgctxt "field:party.contact_mechanism,write_date:"
+msgid "Write Date"
+msgstr "Date de mise à jour"
+
+msgctxt "field:party.contact_mechanism,write_uid:"
+msgid "Write User"
+msgstr "Mis à jour par"
+
+msgctxt "field:party.party,active:"
 msgid "Active"
 msgstr "Actif"
 
-msgctxt "field:party.party,addresses:0"
+msgctxt "field:party.party,addresses:"
 msgid "Addresses"
 msgstr "Adresses"
 
-msgctxt "field:party.party,categories:0"
+msgctxt "field:party.party,categories:"
 msgid "Categories"
 msgstr "Catégories"
 
-msgctxt "field:party.party,code:0"
+msgctxt "field:party.party,code:"
 msgid "Code"
 msgstr "Code"
 
-msgctxt "field:party.party,code_length:0"
+msgctxt "field:party.party,code_length:"
 msgid "Code Length"
 msgstr "Longueur du code"
 
-msgctxt "field:party.party,contact_mechanisms:0"
+msgctxt "field:party.party,code_readonly:"
+msgid "Code Readonly"
+msgstr "Code en lecture seule"
+
+msgctxt "field:party.party,contact_mechanisms:"
 msgid "Contact Mechanisms"
 msgstr "Moyens de contact"
 
-msgctxt "field:party.party,email:0"
+msgctxt "field:party.party,create_date:"
+msgid "Create Date"
+msgstr "Date de création"
+
+msgctxt "field:party.party,create_uid:"
+msgid "Create User"
+msgstr "Créé par"
+
+msgctxt "field:party.party,email:"
 msgid "E-Mail"
 msgstr "E-Mail"
 
-msgctxt "field:party.party,fax:0"
+msgctxt "field:party.party,fax:"
 msgid "Fax"
 msgstr "Fax"
 
-msgctxt "field:party.party,full_name:0"
+msgctxt "field:party.party,full_name:"
 msgid "Full Name"
 msgstr "Nom complet"
 
-msgctxt "field:party.party,lang:0"
+msgctxt "field:party.party,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.party,lang:"
 msgid "Language"
 msgstr "Langue"
 
-msgctxt "field:party.party,mobile:0"
+msgctxt "field:party.party,mobile:"
 msgid "Mobile"
 msgstr "Mobile"
 
-msgctxt "field:party.party,name:0"
+msgctxt "field:party.party,name:"
 msgid "Name"
 msgstr "Nom"
 
-msgctxt "field:party.party,phone:0"
+msgctxt "field:party.party,phone:"
 msgid "Phone"
 msgstr "Téléphone"
 
-msgctxt "field:party.party,rec_name:0"
+msgctxt "field:party.party,rec_name:"
 msgid "Name"
 msgstr "Nom"
 
-msgctxt "field:party.party,vat_code:0"
+msgctxt "field:party.party,vat_code:"
 msgid "VAT Code"
 msgstr "Code TVA"
 
-msgctxt "field:party.party,vat_country:0"
+msgctxt "field:party.party,vat_country:"
 msgid "VAT Country"
 msgstr "Code Pays TVA"
 
-msgctxt "field:party.party,vat_number:0"
+msgctxt "field:party.party,vat_number:"
 msgid "VAT Number"
 msgstr "Numéro de TVA"
 
-msgctxt "field:party.party,website:0"
+msgctxt "field:party.party,website:"
 msgid "Website"
 msgstr "Site web"
 
-msgctxt "field:party.party-party.category,category:0"
+msgctxt "field:party.party,write_date:"
+msgid "Write Date"
+msgstr "Date de mise à jour"
+
+msgctxt "field:party.party,write_uid:"
+msgid "Write User"
+msgstr "Mis à jour par"
+
+msgctxt "field:party.party-party.category,category:"
 msgid "Category"
 msgstr "Catégorie"
 
-msgctxt "field:party.party-party.category,party:0"
+msgctxt "field:party.party-party.category,create_date:"
+msgid "Create Date"
+msgstr "Date de création"
+
+msgctxt "field:party.party-party.category,create_uid:"
+msgid "Create User"
+msgstr "Créé par"
+
+msgctxt "field:party.party-party.category,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.party-party.category,party:"
 msgid "Party"
 msgstr "Tiers"
 
-msgctxt "field:party.party-party.category,rec_name:0"
+msgctxt "field:party.party-party.category,rec_name:"
 msgid "Name"
 msgstr "Nom"
 
-msgctxt "help:party.configuration,party_lang:0"
+msgctxt "field:party.party-party.category,write_date:"
+msgid "Write Date"
+msgstr "Date de mise à jour"
+
+msgctxt "field:party.party-party.category,write_uid:"
+msgid "Write User"
+msgstr "Mis à jour par"
+
+msgctxt "help:party.configuration,party_lang:"
 msgid "The value set on this field will preset the language on new parties"
 msgstr ""
 "La valeur de ce champs sera la valeur par défaut pour la langue des nouveaux"
 " tiers"
 
-msgctxt "help:party.party,vat_country:0"
+msgctxt "help:party.party,vat_country:"
 msgid "Setting VAT country will enable validation of the VAT number."
 msgstr "Ajouter un code pays TVA activera la vérification du numéro de TVA."
 
-msgctxt "help:party.party,vat_number:0"
+msgctxt "help:party.party,vat_number:"
 msgid "Value Added Tax number"
 msgstr "Numéro de taxe sur la valeur ajoutée"
 
@@ -337,35 +502,35 @@ msgctxt "model:ir.ui.menu,name:menu_party_form"
 msgid "Parties"
 msgstr "Tiers"
 
-msgctxt "model:party.address,name:0"
+msgctxt "model:party.address,name:"
 msgid "Address"
 msgstr "Adresse"
 
-msgctxt "model:party.category,name:0"
+msgctxt "model:party.category,name:"
 msgid "Category"
 msgstr "Catégorie"
 
-msgctxt "model:party.check_vies.check,name:0"
-msgid "Check VIES - Check"
-msgstr "Validation VIES - Validé"
+msgctxt "model:party.check_vies.no_result,name:"
+msgid "Check VIES"
+msgstr "Validation VIES"
 
-msgctxt "model:party.check_vies.no_check,name:0"
-msgid "Check VIES - No Check"
-msgstr "Validation VIES - Non validé"
+msgctxt "model:party.check_vies.result,name:"
+msgid "Check VIES"
+msgstr "Validation VIES"
 
-msgctxt "model:party.configuration,name:0"
+msgctxt "model:party.configuration,name:"
 msgid "Party Configuration"
 msgstr "Configuration des tiers"
 
-msgctxt "model:party.contact_mechanism,name:0"
+msgctxt "model:party.contact_mechanism,name:"
 msgid "Contact Mechanism"
 msgstr "Moyen de contact"
 
-msgctxt "model:party.party,name:0"
+msgctxt "model:party.party,name:"
 msgid "Party"
 msgstr "Tiers"
 
-msgctxt "model:party.party-party.category,name:0"
+msgctxt "model:party.party-party.category,name:"
 msgid "Party - Category"
 msgstr "Tiers - Catégorie"
 
@@ -373,138 +538,214 @@ msgctxt "model:res.group,name:group_party_admin"
 msgid "Party Administration"
 msgstr "Administration des tiers"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "E-Mail"
 msgstr "E-Mail"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "E-Mail"
+msgstr "E-Mail"
+
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Fax"
 msgstr "Fax"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "Fax"
+msgstr "Fax"
+
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "IRC"
+msgstr "IRC"
+
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "IRC"
 msgstr "IRC"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Jabber"
 msgstr "Jabber"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "Jabber"
+msgstr "Jabber"
+
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Mobile"
 msgstr "Mobile"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "Mobile"
+msgstr "Mobile"
+
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "Other"
+msgstr "Autre"
+
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Other"
 msgstr "Autre"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "Phone"
+msgstr "Téléphone"
+
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Phone"
 msgstr "Téléphone"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "SIP"
 msgstr "SIP"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "SIP"
+msgstr "SIP"
+
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "Skype"
+msgstr "Skype"
+
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Skype"
 msgstr "Skype"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
+msgid "Website"
+msgstr "Site web"
+
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Website"
 msgstr "Site web"
 
-msgctxt "view:party.address:0"
+msgctxt "view:party.address:"
+msgid "Addresses"
+msgstr "Adresses"
+
+msgctxt "view:party.address:"
 msgid "Addresses"
 msgstr "Adresses"
 
-msgctxt "view:party.category:0"
+msgctxt "view:party.category:"
 msgid "Categories"
 msgstr "Catégories"
 
-msgctxt "view:party.category:0"
+msgctxt "view:party.category:"
+msgid "Categories"
+msgstr "Catégories"
+
+msgctxt "view:party.category:"
 msgid "Category"
 msgstr "Catégorie"
 
-msgctxt "view:party.check_vies.check:0"
-msgid "Parties Failed"
-msgstr "Tiers non validés"
-
-msgctxt "view:party.check_vies.check:0"
-msgid "Parties Succeed"
-msgstr "Tiers validés"
-
-msgctxt "view:party.check_vies.check:0"
-msgid "VAT Information Exchange System Results"
-msgstr "Système d'échange d'information TVA - Résultats"
+msgctxt "view:party.category:"
+msgid "Category"
+msgstr "Catégorie"
 
-msgctxt "view:party.check_vies.no_check:0"
+msgctxt "view:party.check_vies.no_result:"
 msgid "VAT Information Exchange System"
-msgstr "Système d'échange d'information TVA"
+msgstr "VIES"
 
-msgctxt "view:party.check_vies.no_check:0"
+msgctxt "view:party.check_vies.no_result:"
 msgid "You must have a recent version of \"vatnumber\" installed!"
-msgstr "Vous devez avoir une version récente de \"vatnumber\" installée !"
+msgstr "Vous devez avoir une version récente de \"vatnumber\" installée"
+
+msgctxt "view:party.check_vies.result:"
+msgid "VAT Information Exchange System Results"
+msgstr "Résultats VIES"
 
-msgctxt "view:party.configuration:0"
+msgctxt "view:party.configuration:"
 msgid "Party Configuration"
 msgstr "Configuration des tiers"
 
-msgctxt "view:party.contact_mechanism:0"
+msgctxt "view:party.configuration:"
+msgid "Party Configuration"
+msgstr "Configuration des tiers"
+
+msgctxt "view:party.contact_mechanism:"
+msgid "Contact Mechanism"
+msgstr "Moyen de contact"
+
+msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanism"
 msgstr "Moyen de contact"
 
-msgctxt "view:party.contact_mechanism:0"
+msgctxt "view:party.contact_mechanism:"
+msgid "Contact Mechanisms"
+msgstr "Moyens de contact"
+
+msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanisms"
 msgstr "Moyens de contact"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
+msgid "Accounting"
+msgstr "Comptabilité"
+
+msgctxt "view:party.party:"
 msgid "Accounting"
 msgstr "Comptabilité"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Addresses"
 msgstr "Adresses"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Categories"
 msgstr "Catégories"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Contact Mechanisms"
 msgstr "Moyens de contact"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "General"
 msgstr "Général"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
+msgid "General"
+msgstr "Général"
+
+msgctxt "view:party.party:"
+msgid "Parties"
+msgstr "Tiers"
+
+msgctxt "view:party.party:"
 msgid "Parties"
 msgstr "Tiers"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
+msgid "Party"
+msgstr "Tiers"
+
+msgctxt "view:party.party:"
 msgid "Party"
 msgstr "Tiers"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Properties"
 msgstr "Propriétés"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
+msgid "VAT"
+msgstr "TVA"
+
+msgctxt "view:party.party:"
 msgid "VAT"
 msgstr "TVA"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "_Accounting"
 msgstr "Compt_abilité"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "_General"
 msgstr "_Général"
 
-msgctxt "wizard_button:party.check_vies,check,end:0"
+msgctxt "wizard_button:party.check_vies,no_result,end:"
 msgid "Ok"
 msgstr "Ok"
 
-msgctxt "wizard_button:party.check_vies,no_check,end:0"
+msgctxt "wizard_button:party.check_vies,result,end:"
 msgid "Ok"
 msgstr "Ok"
diff --git a/locale/nl_NL.po b/locale/nl_NL.po
index e4ba9d2..88a1422 100644
--- a/locale/nl_NL.po
+++ b/locale/nl_NL.po
@@ -2,268 +2,400 @@
 msgid ""
 msgstr "Content-Type: text/plain; charset=utf-8\n"
 
-msgctxt "error:party.address:0"
+msgctxt "error:party.address:"
 msgid "You can not modify the party of an address!"
 msgstr "U kunt niet de relatie van een adres veranderen!"
 
-msgctxt "error:party.category:0"
+msgctxt "error:party.category:"
 msgid "The name of a party category must be unique by parent!"
 msgstr "De naam van een relatie-categorie moet per niveau uniek zijn!"
 
-msgctxt "error:party.category:0"
+msgctxt "error:party.category:"
 msgid "You can not create recursive categories!"
 msgstr "U kunt geen recursieve categorieën aanmaken!"
 
-msgctxt "error:party.category:0"
+msgctxt "error:party.category:"
 msgid "You can not use \" / \" in name field!"
 msgstr "Het \"/\" teken mag niet gebruikt worden in een naam veld!"
 
-msgctxt "error:party.check_vies:0"
+msgctxt "error:party.check_vies:"
 msgid "The VIES service is unavailable, try again later."
 msgstr "De VIES is niet beschikbaar, probeer het later nog eens!"
 
-msgctxt "error:party.contact_mechanism:0"
+msgctxt "error:party.contact_mechanism:"
 msgid "You can not modify the party of a contact mechanism!"
 msgstr "U kunt niet de relatie van een contactmogelijkheid veranderen!"
 
-msgctxt "error:party.party:0"
+msgctxt "error:party.party:"
 msgid "Invalid VAT number!"
 msgstr "Ongeldig BTW nummer!"
 
-msgctxt "error:party.party:0"
+msgctxt "error:party.party:"
 msgid "The code of the party must be unique!"
 msgstr "De relatie-code moet uniek zijn!"
 
-msgctxt "field:party.address,active:0"
+msgctxt "field:party.address,active:"
 msgid "Active"
 msgstr "Actief"
 
-msgctxt "field:party.address,city:0"
+msgctxt "field:party.address,city:"
 msgid "City"
 msgstr "Stad"
 
-msgctxt "field:party.address,country:0"
+msgctxt "field:party.address,country:"
 msgid "Country"
 msgstr "Land"
 
-msgctxt "field:party.address,full_address:0"
+msgctxt "field:party.address,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:party.address,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:party.address,full_address:"
 msgid "Full Address"
 msgstr "Volledig adres"
 
-msgctxt "field:party.address,name:0"
+msgctxt "field:party.address,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.address,name:"
 msgid "Name"
 msgstr "Aanhef"
 
-msgctxt "field:party.address,party:0"
+msgctxt "field:party.address,party:"
 msgid "Party"
 msgstr "Relatie"
 
-msgctxt "field:party.address,rec_name:0"
+msgctxt "field:party.address,rec_name:"
 msgid "Name"
 msgstr "Naam"
 
-msgctxt "field:party.address,sequence:0"
+msgctxt "field:party.address,sequence:"
 msgid "Sequence"
 msgstr "Reeks"
 
-msgctxt "field:party.address,street:0"
+msgctxt "field:party.address,street:"
 msgid "Street"
 msgstr "Straat"
 
-msgctxt "field:party.address,streetbis:0"
+msgctxt "field:party.address,streetbis:"
 msgid "Street (bis)"
 msgstr "Extra aanduiding"
 
-msgctxt "field:party.address,subdivision:0"
+msgctxt "field:party.address,subdivision:"
 msgid "Subdivision"
 msgstr "Provincie"
 
-msgctxt "field:party.address,zip:0"
+msgctxt "field:party.address,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.address,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:party.address,zip:"
 msgid "Zip"
 msgstr "Postcode"
 
-msgctxt "field:party.category,active:0"
+msgctxt "field:party.category,active:"
 msgid "Active"
 msgstr "Actief"
 
-msgctxt "field:party.category,childs:0"
+msgctxt "field:party.category,childs:"
 msgid "Children"
 msgstr "Onderliggende niveaus"
 
-msgctxt "field:party.category,name:0"
+msgctxt "field:party.category,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:party.category,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:party.category,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.category,name:"
 msgid "Name"
 msgstr "Naam"
 
-msgctxt "field:party.category,parent:0"
+msgctxt "field:party.category,parent:"
 msgid "Parent"
 msgstr "Bovenliggend niveau"
 
-msgctxt "field:party.category,rec_name:0"
+msgctxt "field:party.category,rec_name:"
 msgid "Name"
 msgstr "Naam"
 
-msgctxt "field:party.check_vies.check,parties_failed:0"
+msgctxt "field:party.category,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.category,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:party.check_vies.no_result,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.check_vies.result,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.check_vies.result,parties_failed:"
 msgid "Parties Failed"
-msgstr "Controle relatie mislukt"
+msgstr ""
 
-msgctxt "field:party.check_vies.check,parties_succeed:0"
+msgctxt "field:party.check_vies.result,parties_succeed:"
 msgid "Parties Succeed"
-msgstr "Controle relatie gelukt"
+msgstr ""
+
+msgctxt "field:party.configuration,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:party.configuration,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:party.configuration,id:"
+msgid "ID"
+msgstr ""
 
 #, fuzzy
-msgctxt "field:party.configuration,party_lang:0"
+msgctxt "field:party.configuration,party_lang:"
 msgid "Party Language"
 msgstr "Taal relatie"
 
-msgctxt "field:party.configuration,party_sequence:0"
+msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
 msgstr "Relatiecode"
 
-msgctxt "field:party.configuration,rec_name:0"
+msgctxt "field:party.configuration,rec_name:"
 msgid "Name"
 msgstr "Naam"
 
-msgctxt "field:party.contact_mechanism,active:0"
+msgctxt "field:party.configuration,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.configuration,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,active:"
 msgid "Active"
 msgstr "Actief"
 
-msgctxt "field:party.contact_mechanism,comment:0"
+msgctxt "field:party.contact_mechanism,comment:"
 msgid "Comment"
 msgstr "Opmerking"
 
-msgctxt "field:party.contact_mechanism,email:0"
+msgctxt "field:party.contact_mechanism,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,email:"
 msgid "E-Mail"
 msgstr "E-mail"
 
-msgctxt "field:party.contact_mechanism,other_value:0"
+msgctxt "field:party.contact_mechanism,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,other_value:"
 msgid "Value"
 msgstr "Waarde"
 
-msgctxt "field:party.contact_mechanism,party:0"
+msgctxt "field:party.contact_mechanism,party:"
 msgid "Party"
 msgstr "Relatie"
 
-msgctxt "field:party.contact_mechanism,rec_name:0"
+msgctxt "field:party.contact_mechanism,rec_name:"
 msgid "Name"
 msgstr "Naam"
 
-msgctxt "field:party.contact_mechanism,sequence:0"
+msgctxt "field:party.contact_mechanism,sequence:"
 msgid "Sequence"
 msgstr "Reeks"
 
-msgctxt "field:party.contact_mechanism,sip:0"
+msgctxt "field:party.contact_mechanism,sip:"
 msgid "SIP"
 msgstr "SIP"
 
-msgctxt "field:party.contact_mechanism,skype:0"
+msgctxt "field:party.contact_mechanism,skype:"
 msgid "Skype"
 msgstr "Skype"
 
-msgctxt "field:party.contact_mechanism,type:0"
+msgctxt "field:party.contact_mechanism,type:"
 msgid "Type"
 msgstr "Type"
 
-msgctxt "field:party.contact_mechanism,value:0"
+msgctxt "field:party.contact_mechanism,value:"
 msgid "Value"
 msgstr "Waarde"
 
-msgctxt "field:party.contact_mechanism,website:0"
+msgctxt "field:party.contact_mechanism,website:"
 msgid "Website"
 msgstr "Website"
 
-msgctxt "field:party.party,active:0"
+msgctxt "field:party.contact_mechanism,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:party.party,active:"
 msgid "Active"
 msgstr "Actief"
 
-msgctxt "field:party.party,addresses:0"
+msgctxt "field:party.party,addresses:"
 msgid "Addresses"
 msgstr "Adressen"
 
-msgctxt "field:party.party,categories:0"
+msgctxt "field:party.party,categories:"
 msgid "Categories"
 msgstr "Categorieën"
 
-msgctxt "field:party.party,code:0"
+msgctxt "field:party.party,code:"
 msgid "Code"
 msgstr "Code"
 
-msgctxt "field:party.party,code_length:0"
+msgctxt "field:party.party,code_length:"
 msgid "Code Length"
 msgstr "Lengte code"
 
-msgctxt "field:party.party,contact_mechanisms:0"
+msgctxt "field:party.party,code_readonly:"
+msgid "Code Readonly"
+msgstr ""
+
+msgctxt "field:party.party,contact_mechanisms:"
 msgid "Contact Mechanisms"
 msgstr "Contactmogelijkheden"
 
-msgctxt "field:party.party,email:0"
+msgctxt "field:party.party,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:party.party,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:party.party,email:"
 msgid "E-Mail"
 msgstr "E-mail"
 
-msgctxt "field:party.party,fax:0"
+msgctxt "field:party.party,fax:"
 msgid "Fax"
 msgstr "Fax"
 
-msgctxt "field:party.party,full_name:0"
+msgctxt "field:party.party,full_name:"
 msgid "Full Name"
 msgstr "Naam voluit"
 
-msgctxt "field:party.party,lang:0"
+msgctxt "field:party.party,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.party,lang:"
 msgid "Language"
 msgstr "Taal"
 
-msgctxt "field:party.party,mobile:0"
+msgctxt "field:party.party,mobile:"
 msgid "Mobile"
 msgstr "Mobiel"
 
-msgctxt "field:party.party,name:0"
+msgctxt "field:party.party,name:"
 msgid "Name"
 msgstr "Naam"
 
-msgctxt "field:party.party,phone:0"
+msgctxt "field:party.party,phone:"
 msgid "Phone"
 msgstr "Telefoon"
 
-msgctxt "field:party.party,rec_name:0"
+msgctxt "field:party.party,rec_name:"
 msgid "Name"
 msgstr "Naam"
 
-msgctxt "field:party.party,vat_code:0"
+msgctxt "field:party.party,vat_code:"
 msgid "VAT Code"
 msgstr "BTW-nummer"
 
-msgctxt "field:party.party,vat_country:0"
+msgctxt "field:party.party,vat_country:"
 msgid "VAT Country"
 msgstr "BTW-land"
 
-msgctxt "field:party.party,vat_number:0"
+msgctxt "field:party.party,vat_number:"
 msgid "VAT Number"
 msgstr "BTW-nummer"
 
-msgctxt "field:party.party,website:0"
+msgctxt "field:party.party,website:"
 msgid "Website"
 msgstr "Website"
 
-msgctxt "field:party.party-party.category,category:0"
+msgctxt "field:party.party,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.party,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:party.party-party.category,category:"
 msgid "Category"
 msgstr "Categorie"
 
-msgctxt "field:party.party-party.category,party:0"
+msgctxt "field:party.party-party.category,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:party.party-party.category,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:party.party-party.category,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.party-party.category,party:"
 msgid "Party"
 msgstr "Relatie"
 
-msgctxt "field:party.party-party.category,rec_name:0"
+msgctxt "field:party.party-party.category,rec_name:"
 msgid "Name"
 msgstr "Naam"
 
-msgctxt "help:party.configuration,party_lang:0"
+msgctxt "field:party.party-party.category,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.party-party.category,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "help:party.configuration,party_lang:"
 msgid "The value set on this field will preset the language on new parties"
 msgstr ""
 
-msgctxt "help:party.party,vat_country:0"
+msgctxt "help:party.party,vat_country:"
 msgid "Setting VAT country will enable validation of the VAT number."
 msgstr "De keuze van een BTW land maakt controle van het BTW nummer mogelijk."
 
-msgctxt "help:party.party,vat_number:0"
+msgctxt "help:party.party,vat_number:"
 msgid "Value Added Tax number"
 msgstr "Nummer omzetbelasting"
 
@@ -338,35 +470,37 @@ msgctxt "model:ir.ui.menu,name:menu_party_form"
 msgid "Parties"
 msgstr "Relaties"
 
-msgctxt "model:party.address,name:0"
+msgctxt "model:party.address,name:"
 msgid "Address"
 msgstr "Adres"
 
-msgctxt "model:party.category,name:0"
+msgctxt "model:party.category,name:"
 msgid "Category"
 msgstr "Categorie"
 
-msgctxt "model:party.check_vies.check,name:0"
-msgid "Check VIES - Check"
-msgstr "Check VIES - Oké"
+#, fuzzy
+msgctxt "model:party.check_vies.no_result,name:"
+msgid "Check VIES"
+msgstr "Check VIES"
 
-msgctxt "model:party.check_vies.no_check,name:0"
-msgid "Check VIES - No Check"
-msgstr "Check VIES - Mislukt"
+#, fuzzy
+msgctxt "model:party.check_vies.result,name:"
+msgid "Check VIES"
+msgstr "Check VIES"
 
-msgctxt "model:party.configuration,name:0"
+msgctxt "model:party.configuration,name:"
 msgid "Party Configuration"
 msgstr "Relatie instellingen"
 
-msgctxt "model:party.contact_mechanism,name:0"
+msgctxt "model:party.contact_mechanism,name:"
 msgid "Contact Mechanism"
 msgstr "Contactmogelijkheid"
 
-msgctxt "model:party.party,name:0"
+msgctxt "model:party.party,name:"
 msgid "Party"
 msgstr "Relatie"
 
-msgctxt "model:party.party-party.category,name:0"
+msgctxt "model:party.party-party.category,name:"
 msgid "Party - Category"
 msgstr "Relatie categorie"
 
@@ -374,126 +508,120 @@ msgctxt "model:res.group,name:group_party_admin"
 msgid "Party Administration"
 msgstr "Relatiebeheer"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "E-Mail"
 msgstr "E-mail"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Fax"
 msgstr "Fax"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "IRC"
 msgstr "IRC"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Jabber"
 msgstr "Jabber"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Mobile"
 msgstr "Mobiel"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Other"
 msgstr "Overig"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Phone"
 msgstr "Telefoon"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "SIP"
 msgstr "SIP"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Skype"
 msgstr "Skype"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Website"
 msgstr "Website"
 
-msgctxt "view:party.address:0"
+msgctxt "view:party.address:"
 msgid "Addresses"
 msgstr "Adressen"
 
-msgctxt "view:party.category:0"
+msgctxt "view:party.category:"
 msgid "Categories"
 msgstr "Categorieën"
 
-msgctxt "view:party.category:0"
+msgctxt "view:party.category:"
 msgid "Category"
 msgstr "Categorie"
 
-msgctxt "view:party.check_vies.check:0"
-msgid "Parties Failed"
-msgstr "Controle relatie mislukt"
-
-msgctxt "view:party.check_vies.check:0"
-msgid "Parties Succeed"
-msgstr "Controle relatie gelukt"
-
-msgctxt "view:party.check_vies.check:0"
-msgid "VAT Information Exchange System Results"
-msgstr "BTW Informatie Dienst"
-
-msgctxt "view:party.check_vies.no_check:0"
+msgctxt "view:party.check_vies.no_result:"
 msgid "VAT Information Exchange System"
-msgstr "BTW Informatie Dienst"
+msgstr ""
 
-msgctxt "view:party.check_vies.no_check:0"
+msgctxt "view:party.check_vies.no_result:"
 msgid "You must have a recent version of \"vatnumber\" installed!"
-msgstr "U moet een recente versie van \"python-vatnumber\" geïnstalleerd hebben!"
+msgstr ""
 
-msgctxt "view:party.configuration:0"
+msgctxt "view:party.check_vies.result:"
+msgid "VAT Information Exchange System Results"
+msgstr ""
+
+msgctxt "view:party.configuration:"
 msgid "Party Configuration"
 msgstr "Relatie instellingen"
 
-msgctxt "view:party.contact_mechanism:0"
+msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanism"
 msgstr "Contactmogelijkheid"
 
-msgctxt "view:party.contact_mechanism:0"
+msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanisms"
 msgstr "Contactmogelijkheden"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Accounting"
 msgstr "Financieel"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Addresses"
 msgstr "Adressen"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Categories"
 msgstr "Categorieën"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Contact Mechanisms"
 msgstr "Contactmogelijkheden"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "General"
 msgstr "Algemeen"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Parties"
 msgstr "Relaties"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Party"
 msgstr "Relatie"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "VAT"
 msgstr "Omzetbelasting"
 
-msgctxt "wizard_button:party.check_vies,check,end:0"
+#, fuzzy
+msgctxt "wizard_button:party.check_vies,no_result,end:"
 msgid "Ok"
 msgstr "Oké"
 
-msgctxt "wizard_button:party.check_vies,no_check,end:0"
+#, fuzzy
+msgctxt "wizard_button:party.check_vies,result,end:"
 msgid "Ok"
 msgstr "Oké"
diff --git a/locale/ru_RU.po b/locale/ru_RU.po
index 5e8bb40..70215be 100644
--- a/locale/ru_RU.po
+++ b/locale/ru_RU.po
@@ -2,269 +2,401 @@
 msgid ""
 msgstr "Content-Type: text/plain; charset=utf-8\n"
 
-msgctxt "error:party.address:0"
+msgctxt "error:party.address:"
 msgid "You can not modify the party of an address!"
 msgstr ""
 
-msgctxt "error:party.category:0"
+msgctxt "error:party.category:"
 msgid "The name of a party category must be unique by parent!"
 msgstr ""
 
-msgctxt "error:party.category:0"
+msgctxt "error:party.category:"
 msgid "You can not create recursive categories!"
 msgstr "Вы не можете создавать рекурсивные категории!"
 
-msgctxt "error:party.category:0"
+msgctxt "error:party.category:"
 msgid "You can not use \" / \" in name field!"
 msgstr ""
 
-msgctxt "error:party.check_vies:0"
+msgctxt "error:party.check_vies:"
 msgid "The VIES service is unavailable, try again later."
 msgstr ""
 
-msgctxt "error:party.contact_mechanism:0"
+msgctxt "error:party.contact_mechanism:"
 msgid "You can not modify the party of a contact mechanism!"
 msgstr ""
 
-msgctxt "error:party.party:0"
+msgctxt "error:party.party:"
 msgid "Invalid VAT number!"
 msgstr "Ошибка в номере ИНН"
 
-msgctxt "error:party.party:0"
+msgctxt "error:party.party:"
 msgid "The code of the party must be unique!"
 msgstr "Код контрагента должен быть уникальным"
 
-msgctxt "field:party.address,active:0"
+msgctxt "field:party.address,active:"
 msgid "Active"
 msgstr "Активный"
 
-msgctxt "field:party.address,city:0"
+msgctxt "field:party.address,city:"
 msgid "City"
 msgstr "Город"
 
-msgctxt "field:party.address,country:0"
+msgctxt "field:party.address,country:"
 msgid "Country"
 msgstr "Страна"
 
+msgctxt "field:party.address,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:party.address,create_uid:"
+msgid "Create User"
+msgstr ""
+
 #, fuzzy
-msgctxt "field:party.address,full_address:0"
+msgctxt "field:party.address,full_address:"
 msgid "Full Address"
 msgstr "Полный адрес"
 
-msgctxt "field:party.address,name:0"
+msgctxt "field:party.address,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.address,name:"
 msgid "Name"
 msgstr "Наименование"
 
-msgctxt "field:party.address,party:0"
+msgctxt "field:party.address,party:"
 msgid "Party"
 msgstr "Контрагент"
 
-msgctxt "field:party.address,rec_name:0"
+msgctxt "field:party.address,rec_name:"
 msgid "Name"
 msgstr "Наименование"
 
-msgctxt "field:party.address,sequence:0"
+msgctxt "field:party.address,sequence:"
 msgid "Sequence"
 msgstr "Последовательность"
 
-msgctxt "field:party.address,street:0"
+msgctxt "field:party.address,street:"
 msgid "Street"
 msgstr "улица"
 
-msgctxt "field:party.address,streetbis:0"
+msgctxt "field:party.address,streetbis:"
 msgid "Street (bis)"
 msgstr "улица (доп.)"
 
-msgctxt "field:party.address,subdivision:0"
+msgctxt "field:party.address,subdivision:"
 msgid "Subdivision"
 msgstr "Подраздел"
 
-msgctxt "field:party.address,zip:0"
+msgctxt "field:party.address,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.address,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:party.address,zip:"
 msgid "Zip"
 msgstr "Индекс"
 
-msgctxt "field:party.category,active:0"
+msgctxt "field:party.category,active:"
 msgid "Active"
 msgstr "Активный"
 
-msgctxt "field:party.category,childs:0"
+msgctxt "field:party.category,childs:"
 msgid "Children"
 msgstr "Подчиненый"
 
-msgctxt "field:party.category,name:0"
+msgctxt "field:party.category,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:party.category,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:party.category,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.category,name:"
 msgid "Name"
 msgstr "Наименование"
 
-msgctxt "field:party.category,parent:0"
+msgctxt "field:party.category,parent:"
 msgid "Parent"
 msgstr "Основной"
 
-msgctxt "field:party.category,rec_name:0"
+msgctxt "field:party.category,rec_name:"
 msgid "Name"
 msgstr "Наименование"
 
-msgctxt "field:party.check_vies.check,parties_failed:0"
+msgctxt "field:party.category,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.category,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:party.check_vies.no_result,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.check_vies.result,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.check_vies.result,parties_failed:"
 msgid "Parties Failed"
 msgstr ""
 
-msgctxt "field:party.check_vies.check,parties_succeed:0"
+msgctxt "field:party.check_vies.result,parties_succeed:"
 msgid "Parties Succeed"
 msgstr ""
 
-msgctxt "field:party.configuration,party_lang:0"
+msgctxt "field:party.configuration,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:party.configuration,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:party.configuration,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.configuration,party_lang:"
 msgid "Party Language"
 msgstr ""
 
-msgctxt "field:party.configuration,party_sequence:0"
+msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
 msgstr ""
 
-msgctxt "field:party.configuration,rec_name:0"
+msgctxt "field:party.configuration,rec_name:"
 msgid "Name"
 msgstr "Наименование"
 
-msgctxt "field:party.contact_mechanism,active:0"
+msgctxt "field:party.configuration,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.configuration,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,active:"
 msgid "Active"
 msgstr "Активный"
 
-msgctxt "field:party.contact_mechanism,comment:0"
+msgctxt "field:party.contact_mechanism,comment:"
 msgid "Comment"
 msgstr "Комментарии"
 
-msgctxt "field:party.contact_mechanism,email:0"
+msgctxt "field:party.contact_mechanism,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,email:"
 msgid "E-Mail"
 msgstr "Эл.почта"
 
-msgctxt "field:party.contact_mechanism,other_value:0"
+msgctxt "field:party.contact_mechanism,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,other_value:"
 msgid "Value"
 msgstr "Значение"
 
-msgctxt "field:party.contact_mechanism,party:0"
+msgctxt "field:party.contact_mechanism,party:"
 msgid "Party"
 msgstr "Контрагент"
 
-msgctxt "field:party.contact_mechanism,rec_name:0"
+msgctxt "field:party.contact_mechanism,rec_name:"
 msgid "Name"
 msgstr "Наименование"
 
-msgctxt "field:party.contact_mechanism,sequence:0"
+msgctxt "field:party.contact_mechanism,sequence:"
 msgid "Sequence"
 msgstr "Последовательность"
 
-msgctxt "field:party.contact_mechanism,sip:0"
+msgctxt "field:party.contact_mechanism,sip:"
 msgid "SIP"
 msgstr ""
 
-msgctxt "field:party.contact_mechanism,skype:0"
+msgctxt "field:party.contact_mechanism,skype:"
 msgid "Skype"
 msgstr ""
 
-msgctxt "field:party.contact_mechanism,type:0"
+msgctxt "field:party.contact_mechanism,type:"
 msgid "Type"
 msgstr "Тип"
 
-msgctxt "field:party.contact_mechanism,value:0"
+msgctxt "field:party.contact_mechanism,value:"
 msgid "Value"
 msgstr "Значение"
 
-msgctxt "field:party.contact_mechanism,website:0"
+msgctxt "field:party.contact_mechanism,website:"
 msgid "Website"
 msgstr "Сайт"
 
-msgctxt "field:party.party,active:0"
+msgctxt "field:party.contact_mechanism,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:party.party,active:"
 msgid "Active"
 msgstr "Активный"
 
-msgctxt "field:party.party,addresses:0"
+msgctxt "field:party.party,addresses:"
 msgid "Addresses"
 msgstr "Адреса"
 
-msgctxt "field:party.party,categories:0"
+msgctxt "field:party.party,categories:"
 msgid "Categories"
 msgstr "Категория"
 
-msgctxt "field:party.party,code:0"
+msgctxt "field:party.party,code:"
 msgid "Code"
 msgstr "Код"
 
-msgctxt "field:party.party,code_length:0"
+msgctxt "field:party.party,code_length:"
 msgid "Code Length"
 msgstr "Длина Кода"
 
-msgctxt "field:party.party,contact_mechanisms:0"
+msgctxt "field:party.party,code_readonly:"
+msgid "Code Readonly"
+msgstr ""
+
+msgctxt "field:party.party,contact_mechanisms:"
 msgid "Contact Mechanisms"
 msgstr "Контактный способы"
 
-msgctxt "field:party.party,email:0"
+msgctxt "field:party.party,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:party.party,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:party.party,email:"
 msgid "E-Mail"
 msgstr "Эл.почта"
 
-msgctxt "field:party.party,fax:0"
+msgctxt "field:party.party,fax:"
 msgid "Fax"
 msgstr "Факс"
 
-msgctxt "field:party.party,full_name:0"
+msgctxt "field:party.party,full_name:"
 msgid "Full Name"
 msgstr "Полное наименование"
 
-msgctxt "field:party.party,lang:0"
+msgctxt "field:party.party,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.party,lang:"
 msgid "Language"
 msgstr "Язык"
 
-msgctxt "field:party.party,mobile:0"
+msgctxt "field:party.party,mobile:"
 msgid "Mobile"
 msgstr "сот.телефон"
 
 #, fuzzy
-msgctxt "field:party.party,name:0"
+msgctxt "field:party.party,name:"
 msgid "Name"
 msgstr "Наименование"
 
-msgctxt "field:party.party,phone:0"
+msgctxt "field:party.party,phone:"
 msgid "Phone"
 msgstr "Телефон"
 
-msgctxt "field:party.party,rec_name:0"
+msgctxt "field:party.party,rec_name:"
 msgid "Name"
 msgstr "Наименование"
 
-msgctxt "field:party.party,vat_code:0"
+msgctxt "field:party.party,vat_code:"
 msgid "VAT Code"
 msgstr "Код ИНН"
 
-msgctxt "field:party.party,vat_country:0"
+msgctxt "field:party.party,vat_country:"
 msgid "VAT Country"
 msgstr "Страна ИНН "
 
-msgctxt "field:party.party,vat_number:0"
+msgctxt "field:party.party,vat_number:"
 msgid "VAT Number"
 msgstr "ИНН"
 
-msgctxt "field:party.party,website:0"
+msgctxt "field:party.party,website:"
 msgid "Website"
 msgstr "Сайт"
 
-msgctxt "field:party.party-party.category,category:0"
+msgctxt "field:party.party,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.party,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:party.party-party.category,category:"
 msgid "Category"
 msgstr "Категории"
 
-msgctxt "field:party.party-party.category,party:0"
+msgctxt "field:party.party-party.category,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:party.party-party.category,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:party.party-party.category,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:party.party-party.category,party:"
 msgid "Party"
 msgstr "Контрагент"
 
-msgctxt "field:party.party-party.category,rec_name:0"
+msgctxt "field:party.party-party.category,rec_name:"
 msgid "Name"
 msgstr "Наименование"
 
-msgctxt "help:party.configuration,party_lang:0"
+msgctxt "field:party.party-party.category,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:party.party-party.category,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "help:party.configuration,party_lang:"
 msgid "The value set on this field will preset the language on new parties"
 msgstr ""
 
-msgctxt "help:party.party,vat_country:0"
+msgctxt "help:party.party,vat_country:"
 msgid "Setting VAT country will enable validation of the VAT number."
 msgstr "Установите страну регистрации организации для проверки"
 
-msgctxt "help:party.party,vat_number:0"
+msgctxt "help:party.party,vat_number:"
 msgid "Value Added Tax number"
 msgstr "ИНН"
 
@@ -339,36 +471,38 @@ msgctxt "model:ir.ui.menu,name:menu_party_form"
 msgid "Parties"
 msgstr "Контрагенты"
 
-msgctxt "model:party.address,name:0"
+msgctxt "model:party.address,name:"
 msgid "Address"
 msgstr "Адрес"
 
-msgctxt "model:party.category,name:0"
+msgctxt "model:party.category,name:"
 msgid "Category"
 msgstr "Категории"
 
-msgctxt "model:party.check_vies.check,name:0"
-msgid "Check VIES - Check"
-msgstr "Проверить VIES - проверить"
+#, fuzzy
+msgctxt "model:party.check_vies.no_result,name:"
+msgid "Check VIES"
+msgstr "Проверить VIES"
 
-msgctxt "model:party.check_vies.no_check,name:0"
-msgid "Check VIES - No Check"
-msgstr "Проверить VIES - не проверять"
+#, fuzzy
+msgctxt "model:party.check_vies.result,name:"
+msgid "Check VIES"
+msgstr "Проверить VIES"
 
-msgctxt "model:party.configuration,name:0"
+msgctxt "model:party.configuration,name:"
 msgid "Party Configuration"
 msgstr "Настройка контрагентов"
 
 #, fuzzy
-msgctxt "model:party.contact_mechanism,name:0"
+msgctxt "model:party.contact_mechanism,name:"
 msgid "Contact Mechanism"
 msgstr "Контактный способ"
 
-msgctxt "model:party.party,name:0"
+msgctxt "model:party.party,name:"
 msgid "Party"
 msgstr "Контрагент"
 
-msgctxt "model:party.party-party.category,name:0"
+msgctxt "model:party.party-party.category,name:"
 msgid "Party - Category"
 msgstr "Контрагент - Категории"
 
@@ -376,154 +510,148 @@ msgctxt "model:res.group,name:group_party_admin"
 msgid "Party Administration"
 msgstr "Администрирование контрагентов"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "E-Mail"
 msgstr "Эл.почта"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Fax"
 msgstr "Факс"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "IRC"
 msgstr ""
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Jabber"
 msgstr ""
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Mobile"
 msgstr "сот.телефон"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Other"
 msgstr "Прочий"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Phone"
 msgstr "Телефон"
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "SIP"
 msgstr ""
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Skype"
 msgstr ""
 
-msgctxt "selection:party.contact_mechanism,type:0"
+msgctxt "selection:party.contact_mechanism,type:"
 msgid "Website"
 msgstr "Сайт"
 
-msgctxt "view:party.address:0"
+msgctxt "view:party.address:"
 msgid "Addresses"
 msgstr "Адреса"
 
-msgctxt "view:party.address:0"
+msgctxt "view:party.address:"
 msgid "Job Function"
 msgstr "Должность"
 
-msgctxt "view:party.address:0"
+msgctxt "view:party.address:"
 msgid "Notes"
 msgstr "Комментарии"
 
-msgctxt "view:party.category:0"
+msgctxt "view:party.category:"
 msgid "Categories"
 msgstr "Категория"
 
-msgctxt "view:party.category:0"
+msgctxt "view:party.category:"
 msgid "Category"
 msgstr "Категории"
 
-msgctxt "view:party.check_vies.check:0"
-msgid "Parties Failed"
+msgctxt "view:party.check_vies.no_result:"
+msgid "VAT Information Exchange System"
 msgstr ""
 
-msgctxt "view:party.check_vies.check:0"
-msgid "Parties Succeed"
+msgctxt "view:party.check_vies.no_result:"
+msgid "You must have a recent version of \"vatnumber\" installed!"
 msgstr ""
 
-msgctxt "view:party.check_vies.check:0"
+msgctxt "view:party.check_vies.result:"
 msgid "VAT Information Exchange System Results"
-msgstr "ИНН Система обмена информацией о результатах"
-
-msgctxt "view:party.check_vies.no_check:0"
-msgid "VAT Information Exchange System"
-msgstr "ИНН Система обмена информацией"
-
-msgctxt "view:party.check_vies.no_check:0"
-msgid "You must have a recent version of \"vatnumber\" installed!"
 msgstr ""
 
-msgctxt "view:party.configuration:0"
+msgctxt "view:party.configuration:"
 msgid "Party Configuration"
 msgstr "Настройка контрагентов"
 
-msgctxt "view:party.contact_mechanism:0"
+msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanism"
 msgstr "Контактный способ"
 
-msgctxt "view:party.contact_mechanism:0"
+msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanisms"
 msgstr "Контактный способы"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Account in Bank"
 msgstr "Счет в банке"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Accounting"
 msgstr "Регистрационные данные"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Accounts in Banks"
 msgstr "Счета в банках"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Addresses"
 msgstr "Адреса"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Categories"
 msgstr "Категория"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Contact Mechanisms"
 msgstr "Контактный способы"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Contacts"
 msgstr "Контактные лица"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Document"
 msgstr "Документ"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "General"
 msgstr "Основной"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Legal Document"
 msgstr "Регистрационный документ"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Parties"
 msgstr "Контрагенты"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "Party"
 msgstr "Контрагент"
 
-msgctxt "view:party.party:0"
+msgctxt "view:party.party:"
 msgid "VAT"
 msgstr "ИНН"
 
-msgctxt "wizard_button:party.check_vies,check,end:0"
+#, fuzzy
+msgctxt "wizard_button:party.check_vies,no_result,end:"
 msgid "Ok"
 msgstr "Да"
 
-msgctxt "wizard_button:party.check_vies,no_check,end:0"
+#, fuzzy
+msgctxt "wizard_button:party.check_vies,result,end:"
 msgid "Ok"
 msgstr "Да"
diff --git a/party.py b/party.py
index d5a3395..f5166bb 100644
--- a/party.py
+++ b/party.py
@@ -2,7 +2,7 @@
 #this repository contains the full copyright notices and license terms.
 import logging
 from trytond.model import ModelView, ModelSQL, fields
-from trytond.wizard import Wizard
+from trytond.wizard import Wizard, StateTransition, StateView, Button
 from trytond.pyson import Bool, Eval
 from trytond.transaction import Transaction
 from trytond.pool import Pool
@@ -29,12 +29,18 @@ class Party(ModelSQL, ModelView):
     _description = __doc__
     _name = "party.party"
 
-    name = fields.Char('Name', required=True, select=1,
+    name = fields.Char('Name', required=True, select=True,
         states=STATES, depends=DEPENDS)
-    code = fields.Char('Code', required=True, select=1,
-            readonly=True, order_field="%(table)s.code_length %(order)s, " \
-                    "%(table)s.code %(order)s")
-    code_length = fields.Integer('Code Length', select=1, readonly=True)
+    code = fields.Char('Code', required=True, select=True,
+        order_field="%(table)s.code_length %(order)s, " \
+            "%(table)s.code %(order)s",
+        states={
+            'readonly': Eval('code_readonly', True),
+            },
+        depends=['code_readonly'])
+    code_length = fields.Integer('Code Length', select=True, readonly=True)
+    code_readonly = fields.Function(fields.Boolean('Code Readonly'),
+        'get_code_readonly')
     lang = fields.Many2One("ir.lang", 'Language', states=STATES,
         depends=DEPENDS)
     vat_number = fields.Char('VAT Number', help="Value Added Tax number",
@@ -56,7 +62,7 @@ class Party(ModelSQL, ModelView):
         'Contact Mechanisms', states=STATES, depends=DEPENDS)
     categories = fields.Many2Many('party.party-party.category',
         'party', 'category', 'Categories', states=STATES, depends=DEPENDS)
-    active = fields.Boolean('Active', select=1)
+    active = fields.Boolean('Active', select=True)
     full_name = fields.Function(fields.Char('Full Name'), 'get_full_name')
     phone = fields.Function(fields.Char('Phone'), 'get_mechanism')
     mobile = fields.Function(fields.Char('Mobile'), 'get_mechanism')
@@ -97,6 +103,14 @@ class Party(ModelSQL, ModelView):
         config = config_obj.browse(1)
         return config.party_lang.id
 
+    def default_code_readonly(self):
+        config_obj = Pool().get('party.configuration')
+        config = config_obj.browse(1)
+        return bool(config.party_sequence)
+
+    def get_code_readonly(self, ids, name):
+        return dict((x, True) for x in ids)
+
     def on_change_with_vat_code(self, vals):
         return (vals.get('vat_country') or '') + (vals.get('vat_number') or '')
 
@@ -105,7 +119,8 @@ class Party(ModelSQL, ModelView):
             return []
         res = {}
         for party in self.browse(ids):
-            res[party.id] = (party.vat_country or '') + (party.vat_number or '')
+            res[party.id] = ((party.vat_country or '')
+                + (party.vat_number or ''))
         return res
 
     def search_vat_code(self, name, clause):
@@ -170,8 +185,8 @@ class Party(ModelSQL, ModelView):
         if default is None:
             default = {}
         default = default.copy()
-        default['code'] = False
-        default['addresses'] = False
+        default['code'] = None
+        default['addresses'] = None
         new_ids = []
         for party in self.browse(ids):
             new_id = super(Party, self).copy(party.id, default=default)
@@ -202,7 +217,7 @@ class Party(ModelSQL, ModelView):
             [("party", "=", party_id), ("active", "=", True)],
             order=[('sequence', 'ASC'), ('id', 'ASC')])
         if not address_ids:
-            return False
+            return None
         default_address = address_ids[0]
         if not type:
             return default_address
@@ -246,24 +261,24 @@ class PartyCategory(ModelSQL):
     _table = 'party_category_rel'
     _description = __doc__
     party = fields.Many2One('party.party', 'Party', ondelete='CASCADE',
-            required=True, select=1)
-    category = fields.Many2One('party.category', 'Category', ondelete='CASCADE',
-            required=True, select=1)
+            required=True, select=True)
+    category = fields.Many2One('party.category', 'Category',
+        ondelete='CASCADE', required=True, select=True)
 
 PartyCategory()
 
 
-class CheckVIESNoCheck(ModelView):
-    'Check VIES - No Check'
-    _name = 'party.check_vies.no_check'
+class CheckVIESNoResult(ModelView):
+    'Check VIES'
+    _name = 'party.check_vies.no_result'
     _description = __doc__
 
-CheckVIESNoCheck()
+CheckVIESNoResult()
 
 
-class CheckVIESCheck(ModelView):
-    'Check VIES - Check'
-    _name = 'party.check_vies.check'
+class CheckVIESResult(ModelView):
+    'Check VIES'
+    _name = 'party.check_vies.result'
     _description = __doc__
     parties_succeed = fields.Many2Many('party.party', None, None,
         'Parties Succeed', readonly=True, states={
@@ -274,39 +289,23 @@ class CheckVIESCheck(ModelView):
             'invisible': ~Eval('parties_failed'),
             })
 
-CheckVIESCheck()
+CheckVIESResult()
 
 
 class CheckVIES(Wizard):
     'Check VIES'
     _name = 'party.check_vies'
-    states = {
-        'init': {
-            'result': {
-                'type': 'choice',
-                'next_state': '_choice',
-            },
-        },
-        'no_check': {
-            'result': {
-                'type': 'form',
-                'object': 'party.check_vies.no_check',
-                'state': [
-                    ('end', 'Ok', 'tryton-ok', True),
-                ],
-            },
-        },
-        'check': {
-            'actions': ['_check'],
-            'result': {
-                'type': 'form',
-                'object': 'party.check_vies.check',
-                'state': [
-                    ('end', 'Ok', 'tryton-ok', True),
-                ],
-            },
-        },
-    }
+    start_state = 'check'
+
+    check = StateTransition()
+    result = StateView('party.check_vies.result',
+        'party.check_vies_result', [
+            Button('Ok', 'end', 'tryton-ok', True),
+            ])
+    no_result = StateView('party.check_vies.no_result',
+        'party.check_vies_no_result', [
+            Button('Ok', 'end', 'tryton-ok', True),
+            ])
 
     def __init__(self):
         super(CheckVIES, self).__init__()
@@ -315,31 +314,28 @@ class CheckVIES(Wizard):
                     'try again later.',
             })
 
-    def _choice(self, data):
+    def transition_check(self, session):
+        party_obj = Pool().get('party.party')
+
         if not HAS_VATNUMBER or not hasattr(vatnumber, 'check_vies'):
-            return 'no_check'
-        return 'check'
+            return 'no_result'
 
-    def _check(self, data):
-        party_obj = Pool().get('party.party')
-        res = {
-            'parties_succeed': [],
-            'parties_failed': [],
-        }
-        parties = party_obj.browse(data['ids'])
+        parties_succeed = []
+        parties_failed = []
+        parties = party_obj.browse(Transaction().context.get('active_ids'))
         for party in parties:
             if not party.vat_code:
                 continue
             try:
                 if not vatnumber.check_vies(party.vat_code):
-                    res['parties_failed'].append(party.id)
+                    parties_failed.append(party.id)
                 else:
-                    res['parties_succeed'].append(party.id)
+                    parties_succeed.append(party.id)
             except Exception, e:
                 if hasattr(e, 'faultstring') \
                         and hasattr(e.faultstring, 'find'):
                     if e.faultstring.find('INVALID_INPUT'):
-                        res['parties_failed'].append(party.id)
+                        parties_failed.append(party.id)
                         continue
                     if e.faultstring.find('SERVICE_UNAVAILABLE') \
                             or e.faultstring.find('MS_UNAVAILABLE') \
@@ -347,6 +343,14 @@ class CheckVIES(Wizard):
                             or e.faultstring.find('SERVER_BUSY'):
                         self.raise_user_error('vies_unavailable')
                 raise
-        return res
+        session.result.parties_succeed = parties_succeed
+        session.result.parties_failed = parties_failed
+        return 'result'
+
+    def default_result(self, session, fields):
+        return {
+            'parties_succeed': [p.id for p in session.result.parties_succeed],
+            'parties_failed': [p.id for p in session.result.parties_failed],
+            }
 
 CheckVIES()
diff --git a/party.xml b/party.xml
index a11cc55..24ecad4 100644
--- a/party.xml
+++ b/party.xml
@@ -63,35 +63,16 @@ this repository contains the full copyright notices and license terms. -->
                     </group>
                     <notebook colspan="6">
                         <page string="General" id="general">
-                            <field name="addresses" mode="form,tree" colspan="4">
-                                <tree string="Addresses" sequence="sequence"
-                                    fill="1">
-                                    <field name="name"/>
-                                    <field name="street"/>
-                                    <field name="streetbis"/>
-                                    <field name="zip"/>
-                                    <field name="city"/>
-                                    <field name="country"/>
-                                    <field name="subdivision"/>
-                                </tree>
-                            </field>
+                            <field name="addresses" mode="form,tree" colspan="4"
+                                view_ids="party.address_view_form,party.address_view_tree_sequence"/>
                             <group col="2" colspan="4" id="lang">
                                 <label name="lang"/>
                                 <field name="lang" widget="selection"/>
                             </group>
-                            <field name="contact_mechanisms" colspan="2">
-                                <tree string="Contact Mechanisms" sequence="sequence"
-                                    fill="1">
-                                    <field name="type"/>
-                                    <field name="value"/>
-                                    <field name="comment"/>
-                                </tree>
-                            </field>
-                            <field name="categories" colspan="2">
-                                <tree string="Categories" fill="1">
-                                    <field name="rec_name"/>
-                                </tree>
-                            </field>
+                            <field name="contact_mechanisms" colspan="2"
+                                view_ids="party.contact_mechanism_view_tree_sequence"/>
+                            <field name="categories" colspan="2"
+                                view_ids="party.category_view_list"/>
                         </page>
                         <page string="Accounting" id="accounting">
                             <separator string="VAT" colspan="4" id="vat"/>
@@ -176,8 +157,8 @@ this repository contains the full copyright notices and license terms. -->
             <field name="action" ref="wizard_check_vies"/>
         </record>
 
-        <record model="ir.ui.view" id="check_vies_no_check">
-            <field name="model">party.check_vies.no_check</field>
+        <record model="ir.ui.view" id="check_vies_no_result">
+            <field name="model">party.check_vies.no_result</field>
             <field name="type">form</field>
             <field name="arch" type="xml">
                 <![CDATA[
@@ -191,26 +172,14 @@ this repository contains the full copyright notices and license terms. -->
             </field>
         </record>
 
-        <record model="ir.ui.view" id="check_vies_check">
-            <field name="model">party.check_vies.check</field>
+        <record model="ir.ui.view" id="check_vies_result">
+            <field name="model">party.check_vies.result</field>
             <field name="type">form</field>
             <field name="arch" type="xml">
                 <![CDATA[
                 <form string="VAT Information Exchange System Results" col="1">
-                    <field name="parties_succeed">
-                        <tree string="Parties Succeed" fill="1">
-                            <field name="code"/>
-                            <field name="name"/>
-                            <field name="vat_code"/>
-                        </tree>
-                    </field>
-                    <field name="parties_failed">
-                        <tree string="Parties Failed" fill="1">
-                            <field name="code"/>
-                            <field name="name"/>
-                            <field name="vat_code"/>
-                        </tree>
-                    </field>
+                    <field name="parties_succeed"/>
+                    <field name="parties_failed"/>
                 </form>
                 ]]>
             </field>
diff --git a/setup.py b/setup.py
index f5fa9f6..648ecf8 100644
--- a/setup.py
+++ b/setup.py
@@ -12,7 +12,7 @@ minor_version = int(minor_version)
 
 requires = []
 for dep in info.get('depends', []):
-    if not re.match(r'(ir|res|workflow|webdav)(\W|$)', dep):
+    if not re.match(r'(ir|res|webdav)(\W|$)', dep):
         requires.append('trytond_%s >= %s.%s, < %s.%s' %
                 (dep, major_version, minor_version, major_version,
                     minor_version + 1))
diff --git a/tests/__init__.py b/tests/__init__.py
index 1c2ce41..c9f2b03 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -1,4 +1,4 @@
 #This file is part of Tryton.  The COPYRIGHT file at the top level of
 #this repository contains the full copyright notices and license terms.
 
-from test_party import suite
+from .test_party import suite
diff --git a/tests/test_party.py b/tests/test_party.py
index 21293a0..358ecdc 100644
--- a/tests/test_party.py
+++ b/tests/test_party.py
@@ -1,7 +1,8 @@
 #!/usr/bin/env python
 #This file is part of Tryton.  The COPYRIGHT file at the top level of
 #this repository contains the full copyright notices and license terms.
-import sys, os
+import sys
+import os
 DIR = os.path.abspath(os.path.normpath(os.path.join(__file__,
     '..', '..', '..', '..', '..', 'trytond')))
 if os.path.isdir(DIR):
@@ -64,7 +65,7 @@ class PartyTestCase(unittest.TestCase):
                 })
             self.assert_(category2_id)
 
-            self.failUnlessRaises(Exception, self.category.write, 
+            self.failUnlessRaises(Exception, self.category.write,
                     category1_id, {
                         'parent': category2_id,
                     })
@@ -94,7 +95,7 @@ class PartyTestCase(unittest.TestCase):
                 'name': 'Party 2',
                 })
 
-            self.failUnlessRaises(Exception, self.party.write, 
+            self.failUnlessRaises(Exception, self.party.write,
                     party2_id, {
                         'code': code,
                     })
@@ -106,13 +107,14 @@ class PartyTestCase(unittest.TestCase):
         with Transaction().start(DB_NAME, USER, context=CONTEXT):
             party1_id = self.party.search([], limit=1)[0]
 
-            address1_id = self.address.create({
+            self.address.create({
                 'party': party1_id,
                 'street': 'St sample, 15',
                 'city': 'City',
                 })
             self.assert_(party1_id)
 
+
 def suite():
     suite = trytond.tests.test_tryton.suite()
     suite.addTests(unittest.TestLoader().loadTestsFromTestCase(PartyTestCase))
diff --git a/trytond_party.egg-info/PKG-INFO b/trytond_party.egg-info/PKG-INFO
index 778dba3..50f41cd 100644
--- a/trytond_party.egg-info/PKG-INFO
+++ b/trytond_party.egg-info/PKG-INFO
@@ -1,12 +1,12 @@
-Metadata-Version: 1.1
+Metadata-Version: 1.0
 Name: trytond-party
-Version: 2.2.1
+Version: 2.4.0
 Summary: Define parties, addresses and co.
 Home-page: http://www.tryton.org/
 Author: B2CK
 Author-email: info at b2ck.com
 License: GPL-3
-Download-URL: http://downloads.tryton.org/2.2/
+Download-URL: http://downloads.tryton.org/2.4/
 Description: UNKNOWN
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
diff --git a/trytond_party.egg-info/SOURCES.txt b/trytond_party.egg-info/SOURCES.txt
index 0fba1ee..0a18132 100644
--- a/trytond_party.egg-info/SOURCES.txt
+++ b/trytond_party.egg-info/SOURCES.txt
@@ -23,8 +23,10 @@ setup.py
 doc/index.rst
 icons/tryton-party.svg
 locale/bg_BG.po
+locale/ca_ES.po
 locale/cs_CZ.po
 locale/de_DE.po
+locale/es_AR.po
 locale/es_CO.po
 locale/es_ES.po
 locale/fr_FR.po
diff --git a/trytond_party.egg-info/requires.txt b/trytond_party.egg-info/requires.txt
index 37c0d8d..fd49155 100644
--- a/trytond_party.egg-info/requires.txt
+++ b/trytond_party.egg-info/requires.txt
@@ -1,5 +1,5 @@
-trytond_country >= 2.2, < 2.3
-trytond >= 2.2, < 2.3
+trytond_country >= 2.4, < 2.5
+trytond >= 2.4, < 2.5
 
 [VAT]
 vatnumber
\ No newline at end of file
commit 28acd81979dd7bc5805050b1071a208a317f5d1b
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Sun Mar 25 15:28:18 2012 +0200

    Adding Format header for DEP5.

diff --git a/debian/copyright b/debian/copyright
index c7fa607..882d00b 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -1,3 +1,5 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+
 Files: *
 Copyright:
  (C) 2004-2008 Tiny SPRL
commit 0ace467dfe158ff46898589d90309570d2b8a37b
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Fri Feb 24 14:01:03 2012 +0100

    Updating year in copyright.

diff --git a/debian/copyright b/debian/copyright
index 73a24f7..c7fa607 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -15,8 +15,8 @@ License: public-domain
 
 Files: debian/*
 Copyright:
- (C) 2009-2011 Daniel Baumann <daniel at debian.org>
- (C) 2011 Mathias Behrle <mathiasb at m9s.biz>
+ (C) 2009-2012 Daniel Baumann <daniel at debian.org>
+ (C) 2011-2012 Mathias Behrle <mathiasb at m9s.biz>
 License: GPL-3+
 
 License: GPL-3+
commit a0051aca02a27119bf87d3aded56dd42614b0040
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Fri Feb 24 13:47:01 2012 +0100

    Updating to Standards-Version: 3.9.3, no changes needed.

diff --git a/debian/control b/debian/control
index d6a18cc..aaa8b84 100644
--- a/debian/control
+++ b/debian/control
@@ -5,7 +5,7 @@ Maintainer: Debian Tryton Maintainers <tryton at lists.debian-maintainers.org>
 Uploaders: Daniel Baumann <daniel at debian.org>, Mathias Behrle <mathiasb at m9s.biz>
 Dm-Upload-Allowed: yes
 Build-Depends: debhelper (>= 8), python (>= 2.6.6-3~), python-setuptools
-Standards-Version: 3.9.2
+Standards-Version: 3.9.3
 Homepage: http://www.tryton.org/
 Vcs-Browser: http://git.debian-maintainers.org/?p=tryton/tryton-modules-party.git
 Vcs-Git: git://git.debian-maintainers.org/git/tryton/tryton-modules-party.git
commit 7112e306adedbbee79e9a2c757a31834f55f363e
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Mon Dec 26 18:09:14 2011 +0100

    Releasing debian version 2.2.1-1.

diff --git a/debian/changelog b/debian/changelog
index 364ad13..f3889a8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,14 @@
+tryton-modules-party (2.2.1-1) unstable; urgency=low
+
+  * Merging upstream version 2.2.1.
+  * Bumping X-Python-Version to >=2.6.
+  * Updating versioned tryton depends to 2.2.
+  * Updating copyright.
+  * Removing 01-dfsg-icons patch, patch went upstream.
+  * Merging upstream version 2.2.0.
+
+ -- Mathias Behrle <mathiasb at m9s.biz>  Mon, 26 Dec 2011 13:55:21 +0100
+
 tryton-modules-party (2.0.1+dfsg-1) unstable; urgency=low
 
   * Merging upstream version 2.0.1+dfsg.
commit bd89aed63e3718ce6f964acad0382a6be948a3c6
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Mon Dec 26 13:35:51 2011 +0100

    Merging upstream version 2.2.1.

diff --git a/CHANGELOG b/CHANGELOG
index 40813dc..c200abf 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+Version 2.2.1 - 2011-12-26
+* Bug fixes (see mercurial logs for details)
+
 Version 2.2.0 - 2011-10-24
 * Bug fixes (see mercurial logs for details)
 
diff --git a/PKG-INFO b/PKG-INFO
index e3584ce..949e835 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
-Metadata-Version: 1.0
+Metadata-Version: 1.1
 Name: trytond_party
-Version: 2.2.0
+Version: 2.2.1
 Summary: Define parties, addresses and co.
 Home-page: http://www.tryton.org/
 Author: B2CK
diff --git a/__tryton__.py b/__tryton__.py
index 50ed7a4..6e2fc81 100644
--- a/__tryton__.py
+++ b/__tryton__.py
@@ -10,7 +10,7 @@
     'name_fr_FR': 'Tiers',
     'name_nl_NL': 'Relaties',
     'name_ru_RU': 'Контрагенты',
-    'version' : '2.2.0',
+    'version' : '2.2.1',
     'author' : 'B2CK',
     'email': 'info at b2ck.com',
     'website': 'http://www.tryton.org/',
diff --git a/tests/test_party.py b/tests/test_party.py
index ba3b974..21293a0 100644
--- a/tests/test_party.py
+++ b/tests/test_party.py
@@ -41,7 +41,8 @@ class PartyTestCase(unittest.TestCase):
         '''
         Create category.
         '''
-        with Transaction().start(DB_NAME, USER, CONTEXT) as transaction:
+        with Transaction().start(DB_NAME, USER,
+                context=CONTEXT) as transaction:
             category1_id = self.category.create({
                 'name': 'Category 1',
                 })
@@ -52,7 +53,7 @@ class PartyTestCase(unittest.TestCase):
         '''
         Test category recursion.
         '''
-        with Transaction().start(DB_NAME, USER, CONTEXT) as transaction:
+        with Transaction().start(DB_NAME, USER, context=CONTEXT):
             category1_id = self.category.search([
                 ('name', '=', 'Category 1'),
                 ], limit=1)[0]
@@ -72,7 +73,8 @@ class PartyTestCase(unittest.TestCase):
         '''
         Create party.
         '''
-        with Transaction().start(DB_NAME, USER, CONTEXT) as transaction:
+        with Transaction().start(DB_NAME, USER,
+                context=CONTEXT) as transaction:
             party1_id = self.party.create({
                 'name': 'Party 1',
                 })
@@ -83,7 +85,7 @@ class PartyTestCase(unittest.TestCase):
         '''
         Test party code constraint.
         '''
-        with Transaction().start(DB_NAME, USER, CONTEXT) as transaction:
+        with Transaction().start(DB_NAME, USER, context=CONTEXT):
             party1_id = self.party.search([], limit=1)[0]
 
             code = self.party.read(party1_id, ['code'])['code']
@@ -101,7 +103,7 @@ class PartyTestCase(unittest.TestCase):
         '''
         Create address.
         '''
-        with Transaction().start(DB_NAME, USER, CONTEXT) as transaction:
+        with Transaction().start(DB_NAME, USER, context=CONTEXT):
             party1_id = self.party.search([], limit=1)[0]
 
             address1_id = self.address.create({
diff --git a/trytond_party.egg-info/PKG-INFO b/trytond_party.egg-info/PKG-INFO
index 618d9d9..778dba3 100644
--- a/trytond_party.egg-info/PKG-INFO
+++ b/trytond_party.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
-Metadata-Version: 1.0
+Metadata-Version: 1.1
 Name: trytond-party
-Version: 2.2.0
+Version: 2.2.1
 Summary: Define parties, addresses and co.
 Home-page: http://www.tryton.org/
 Author: B2CK
commit 51f4ea2e52a596b3d653c7be7562caa09706cb44
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Sat Dec 17 13:59:42 2011 +0100

    Bumping X-Python-Version to >=2.6.

diff --git a/debian/control b/debian/control
index d972d72..d6a18cc 100644
--- a/debian/control
+++ b/debian/control
@@ -9,7 +9,7 @@ Standards-Version: 3.9.2
 Homepage: http://www.tryton.org/
 Vcs-Browser: http://git.debian-maintainers.org/?p=tryton/tryton-modules-party.git
 Vcs-Git: git://git.debian-maintainers.org/git/tryton/tryton-modules-party.git
-X-Python-Version: >= 2.5
+X-Python-Version: >= 2.6
 
 Package: tryton-modules-party
 Architecture: all
commit 5fc2c8946062502d96d8ab3493c60bbe147547e5
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Tue Nov 1 15:19:31 2011 +0100

    Updating versioned tryton depends to 2.2.

diff --git a/debian/control b/debian/control
index 04fb2d6..d972d72 100644
--- a/debian/control
+++ b/debian/control
@@ -14,8 +14,8 @@ X-Python-Version: >= 2.5
 Package: tryton-modules-party
 Architecture: all
 Depends:
- ${misc:Depends}, ${python:Depends}, tryton-server (>= 2.0),
- tryton-modules-country (>= 2.0), python-pkg-resources
+ ${misc:Depends}, ${python:Depends}, tryton-server (>= 2.2),
+ tryton-modules-country (>= 2.2), python-pkg-resources
 Recommends: python-vatnumber
 Description: Tryton Application Platform (Party Module)
  Tryton is a high-level general purpose application platform written in Python
commit 1e91db42cfee309ccaf5e30680e0558a2a5f1acc
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Tue Nov 1 15:07:22 2011 +0100

    Updating copyright.

diff --git a/debian/copyright b/debian/copyright
index 93f27e5..73a24f7 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -37,8 +37,8 @@ License: GPL-3+
  can be found in /usr/share/common-licenses/GPL-3 file.
 
 License: public-domain
- The icons used to replace the original not DFSG compatible icons are taken
- from http://tango.freedesktop.org/releases/tango-icon-theme-0.8.90.tar.gz
+ The icons used are generally taken from
+ http://tango.freedesktop.org/releases/tango-icon-theme-0.8.90.tar.gz
  .
  Upstream Authors:				2005-2009
  .
commit 075c198e34a8103a6f8de7dd474457ad25e2a9f2
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Tue Nov 1 15:06:16 2011 +0100

    Removing 01-dfsg-icons patch, patch went upstream.

diff --git a/debian/patches/01-dfsg-icons b/debian/patches/01-dfsg-icons
deleted file mode 100644
index d78531c..0000000
--- a/debian/patches/01-dfsg-icons
+++ /dev/null
@@ -1,545 +0,0 @@
-Author: Mathias Behrle <mathiasb at m9s.biz>
-Description: Add DFSG compatible icon as a replacement for the original icon.
-Bug: http://bugs.tryton.org/roundup/issue1996
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ tryton-modules-party/icons/tryton-party.svg	2011-08-07 14:20:17.958074502 +0200
-@@ -0,0 +1,539 @@
-+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-+<!-- Created with Inkscape (http://www.inkscape.org/) -->
-+<svg
-+   xmlns:dc="http://purl.org/dc/elements/1.1/"
-+   xmlns:cc="http://creativecommons.org/ns#"
-+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-+   xmlns:svg="http://www.w3.org/2000/svg"
-+   xmlns="http://www.w3.org/2000/svg"
-+   xmlns:xlink="http://www.w3.org/1999/xlink"
-+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-+   width="48px"
-+   height="48px"
-+   id="svg2108"
-+   sodipodi:version="0.32"
-+   inkscape:version="0.46"
-+   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/apps"
-+   sodipodi:docname="system-users.svg"
-+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-+  <defs
-+     id="defs3">
-+    <inkscape:perspective
-+       sodipodi:type="inkscape:persp3d"
-+       inkscape:vp_x="0 : 24 : 1"
-+       inkscape:vp_y="0 : 1000 : 0"
-+       inkscape:vp_z="48 : 24 : 1"
-+       inkscape:persp3d-origin="24 : 16 : 1"
-+       id="perspective72" />
-+    <linearGradient
-+       inkscape:collect="always"
-+       id="linearGradient4356">
-+      <stop
-+         style="stop-color:#000000;stop-opacity:1;"
-+         offset="0"
-+         id="stop4358" />
-+      <stop
-+         style="stop-color:#000000;stop-opacity:0;"
-+         offset="1"
-+         id="stop4360" />
-+    </linearGradient>
-+    <linearGradient
-+       id="linearGradient4344">
-+      <stop
-+         style="stop-color:#727e0a;stop-opacity:1;"
-+         offset="0"
-+         id="stop4346" />
-+      <stop
-+         style="stop-color:#5b6508;stop-opacity:1.0000000;"
-+         offset="1.0000000"
-+         id="stop4348" />
-+    </linearGradient>
-+    <linearGradient
-+       id="linearGradient4338">
-+      <stop
-+         id="stop4340"
-+         offset="0.0000000"
-+         style="stop-color:#e9b15e;stop-opacity:1.0000000;" />
-+      <stop
-+         id="stop4342"
-+         offset="1.0000000"
-+         style="stop-color:#966416;stop-opacity:1.0000000;" />
-+    </linearGradient>
-+    <linearGradient
-+       id="linearGradient4163">
-+      <stop
-+         style="stop-color:#3b74bc;stop-opacity:1.0000000;"
-+         offset="0.0000000"
-+         id="stop4165" />
-+      <stop
-+         style="stop-color:#2d5990;stop-opacity:1.0000000;"
-+         offset="1.0000000"
-+         id="stop4167" />
-+    </linearGradient>
-+    <linearGradient
-+       id="linearGradient3824">
-+      <stop
-+         style="stop-color:#ffffff;stop-opacity:1;"
-+         offset="0"
-+         id="stop3826" />
-+      <stop
-+         style="stop-color:#c9c9c9;stop-opacity:1.0000000;"
-+         offset="1.0000000"
-+         id="stop3828" />
-+    </linearGradient>
-+    <linearGradient
-+       inkscape:collect="always"
-+       id="linearGradient3816">
-+      <stop
-+         style="stop-color:#000000;stop-opacity:1;"
-+         offset="0"
-+         id="stop3818" />
-+      <stop
-+         style="stop-color:#000000;stop-opacity:0;"
-+         offset="1"
-+         id="stop3820" />
-+    </linearGradient>
-+    <linearGradient
-+       id="linearGradient3800">
-+      <stop
-+         style="stop-color:#f4d9b1;stop-opacity:1.0000000;"
-+         offset="0.0000000"
-+         id="stop3802" />
-+      <stop
-+         style="stop-color:#df9725;stop-opacity:1.0000000;"
-+         offset="1.0000000"
-+         id="stop3804" />
-+    </linearGradient>
-+    <radialGradient
-+       inkscape:collect="always"
-+       xlink:href="#linearGradient3800"
-+       id="radialGradient3806"
-+       cx="29.344931"
-+       cy="17.064077"
-+       fx="29.344931"
-+       fy="17.064077"
-+       r="9.1620579"
-+       gradientUnits="userSpaceOnUse" />
-+    <radialGradient
-+       inkscape:collect="always"
-+       xlink:href="#linearGradient3816"
-+       id="radialGradient3822"
-+       cx="31.112698"
-+       cy="19.008621"
-+       fx="31.112698"
-+       fy="19.008621"
-+       r="8.6620579"
-+       gradientUnits="userSpaceOnUse" />
-+    <linearGradient
-+       inkscape:collect="always"
-+       xlink:href="#linearGradient3824"
-+       id="linearGradient3830"
-+       x1="30.935921"
-+       y1="29.553486"
-+       x2="30.935921"
-+       y2="35.803486"
-+       gradientUnits="userSpaceOnUse" />
-+    <radialGradient
-+       inkscape:collect="always"
-+       xlink:href="#linearGradient4163"
-+       id="radialGradient4169"
-+       cx="28.089741"
-+       cy="27.203083"
-+       fx="28.089741"
-+       fy="27.203083"
-+       r="13.565360"
-+       gradientTransform="matrix(1.297564,2.881172e-16,-1.964720e-16,0.884831,-8.358505,4.940469)"
-+       gradientUnits="userSpaceOnUse" />
-+    <radialGradient
-+       inkscape:collect="always"
-+       xlink:href="#linearGradient3800"
-+       id="radialGradient4171"
-+       gradientUnits="userSpaceOnUse"
-+       cx="29.344931"
-+       cy="17.064077"
-+       fx="29.344931"
-+       fy="17.064077"
-+       r="9.1620579"
-+       gradientTransform="matrix(0.787998,3.877637e-16,-3.877637e-16,0.787998,6.221198,3.617627)" />
-+    <linearGradient
-+       inkscape:collect="always"
-+       xlink:href="#linearGradient3824"
-+       id="linearGradient4175"
-+       gradientUnits="userSpaceOnUse"
-+       x1="30.935921"
-+       y1="29.553486"
-+       x2="30.935921"
-+       y2="35.803486"
-+       gradientTransform="translate(0.707108,0.000000)" />
-+    <radialGradient
-+       inkscape:collect="always"
-+       xlink:href="#linearGradient3816"
-+       id="radialGradient4179"
-+       gradientUnits="userSpaceOnUse"
-+       cx="31.112698"
-+       cy="19.008621"
-+       fx="31.112698"
-+       fy="19.008621"
-+       r="8.6620579" />
-+    <linearGradient
-+       inkscape:collect="always"
-+       xlink:href="#linearGradient3824"
-+       id="linearGradient4326"
-+       gradientUnits="userSpaceOnUse"
-+       gradientTransform="translate(-12.41789,-7.000000)"
-+       x1="30.935921"
-+       y1="29.553486"
-+       x2="30.935921"
-+       y2="35.803486" />
-+    <radialGradient
-+       inkscape:collect="always"
-+       xlink:href="#linearGradient4338"
-+       id="radialGradient4328"
-+       gradientUnits="userSpaceOnUse"
-+       gradientTransform="matrix(0.787998,3.877637e-16,-3.877637e-16,0.787998,6.221198,3.617627)"
-+       cx="29.344931"
-+       cy="17.064077"
-+       fx="29.344931"
-+       fy="17.064077"
-+       r="9.1620579" />
-+    <radialGradient
-+       inkscape:collect="always"
-+       xlink:href="#linearGradient3816"
-+       id="radialGradient4330"
-+       gradientUnits="userSpaceOnUse"
-+       cx="31.112698"
-+       cy="19.008621"
-+       fx="31.112698"
-+       fy="19.008621"
-+       r="8.6620579" />
-+    <linearGradient
-+       inkscape:collect="always"
-+       xlink:href="#linearGradient3824"
-+       id="linearGradient4332"
-+       gradientUnits="userSpaceOnUse"
-+       x1="30.935921"
-+       y1="29.553486"
-+       x2="30.935921"
-+       y2="35.803486"
-+       gradientTransform="translate(-13.12500,-7.000000)" />
-+    <radialGradient
-+       inkscape:collect="always"
-+       xlink:href="#linearGradient3816"
-+       id="radialGradient4336"
-+       gradientUnits="userSpaceOnUse"
-+       cx="31.112698"
-+       cy="19.008621"
-+       fx="31.112698"
-+       fy="19.008621"
-+       r="8.6620579" />
-+    <radialGradient
-+       inkscape:collect="always"
-+       xlink:href="#linearGradient4344"
-+       id="radialGradient4350"
-+       cx="16.214741"
-+       cy="19.836468"
-+       fx="16.214741"
-+       fy="19.836468"
-+       r="13.565360"
-+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.681917,0.000000,8.233773)"
-+       gradientUnits="userSpaceOnUse" />
-+    <linearGradient
-+       inkscape:collect="always"
-+       xlink:href="#linearGradient4356"
-+       id="linearGradient4362"
-+       x1="20.661695"
-+       y1="35.817974"
-+       x2="22.626925"
-+       y2="36.217758"
-+       gradientUnits="userSpaceOnUse"
-+       gradientTransform="matrix(0.983375,0.181588,-0.181588,0.983375,6.231716,-2.651466)" />
-+    <linearGradient
-+       inkscape:collect="always"
-+       xlink:href="#linearGradient4356"
-+       id="linearGradient4366"
-+       gradientUnits="userSpaceOnUse"
-+       x1="22.686766"
-+       y1="36.390400"
-+       x2="21.408455"
-+       y2="35.739632"
-+       gradientTransform="matrix(-0.977685,0.210075,0.210075,0.977685,55.10960,-3.945209)" />
-+    <linearGradient
-+       inkscape:collect="always"
-+       xlink:href="#linearGradient4356"
-+       id="linearGradient4372"
-+       gradientUnits="userSpaceOnUse"
-+       gradientTransform="matrix(0.983375,0.181588,-0.181588,0.983375,-7.072120,-9.824920)"
-+       x1="20.661695"
-+       y1="35.817974"
-+       x2="22.626925"
-+       y2="36.217758" />
-+    <linearGradient
-+       inkscape:collect="always"
-+       xlink:href="#linearGradient4356"
-+       id="linearGradient4374"
-+       gradientUnits="userSpaceOnUse"
-+       gradientTransform="matrix(-0.977685,0.210075,0.210075,0.977685,41.80576,-11.11866)"
-+       x1="22.686766"
-+       y1="36.390400"
-+       x2="21.408455"
-+       y2="35.739632" />
-+    <linearGradient
-+       inkscape:collect="always"
-+       xlink:href="#linearGradient4356"
-+       id="linearGradient1366"
-+       gradientUnits="userSpaceOnUse"
-+       gradientTransform="matrix(-0.977685,0.210075,0.210075,0.977685,41.80576,-11.11866)"
-+       x1="22.686766"
-+       y1="36.390400"
-+       x2="21.408455"
-+       y2="35.739632" />
-+    <linearGradient
-+       inkscape:collect="always"
-+       xlink:href="#linearGradient4356"
-+       id="linearGradient1369"
-+       gradientUnits="userSpaceOnUse"
-+       gradientTransform="matrix(0.983375,0.181588,-0.181588,0.983375,-7.072120,-9.824920)"
-+       x1="20.661695"
-+       y1="35.817974"
-+       x2="22.626925"
-+       y2="36.217758" />
-+    <linearGradient
-+       inkscape:collect="always"
-+       xlink:href="#linearGradient3824"
-+       id="linearGradient1372"
-+       gradientUnits="userSpaceOnUse"
-+       gradientTransform="translate(-12.41789,-7.000000)"
-+       x1="30.935921"
-+       y1="29.553486"
-+       x2="30.935921"
-+       y2="35.803486" />
-+    <radialGradient
-+       inkscape:collect="always"
-+       xlink:href="#linearGradient4344"
-+       id="radialGradient1381"
-+       gradientUnits="userSpaceOnUse"
-+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.681917,0.000000,8.233773)"
-+       cx="16.214741"
-+       cy="19.836468"
-+       fx="16.214741"
-+       fy="19.836468"
-+       r="13.565360" />
-+  </defs>
-+  <sodipodi:namedview
-+     inkscape:showpageshadow="false"
-+     id="base"
-+     pagecolor="#ffffff"
-+     bordercolor="#666666"
-+     borderopacity="1.0"
-+     inkscape:pageopacity="0.0"
-+     inkscape:pageshadow="2"
-+     inkscape:zoom="1"
-+     inkscape:cx="-130.79856"
-+     inkscape:cy="13.86274"
-+     inkscape:current-layer="layer2"
-+     showgrid="false"
-+     inkscape:grid-bbox="true"
-+     inkscape:document-units="px"
-+     fill="#9db029"
-+     stroke="#727e0a"
-+     inkscape:window-width="872"
-+     inkscape:window-height="815"
-+     inkscape:window-x="265"
-+     inkscape:window-y="33" />
-+  <metadata
-+     id="metadata4">
-+    <rdf:RDF>
-+      <cc:Work
-+         rdf:about="">
-+        <dc:format>image/svg+xml</dc:format>
-+        <dc:type
-+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-+        <dc:title>People</dc:title>
-+        <dc:creator>
-+          <cc:Agent>
-+            <dc:title>Jakub Steiner</dc:title>
-+          </cc:Agent>
-+        </dc:creator>
-+        <dc:source>http://jimmac.musichall.cz</dc:source>
-+        <dc:subject>
-+          <rdf:Bag>
-+            <rdf:li>users</rdf:li>
-+            <rdf:li>people</rdf:li>
-+          </rdf:Bag>
-+        </dc:subject>
-+        <cc:license
-+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-+      </cc:Work>
-+      <cc:License
-+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-+        <cc:permits
-+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-+        <cc:permits
-+           rdf:resource="http://creativecommons.org/ns#Distribution" />
-+        <cc:permits
-+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-+      </cc:License>
-+    </rdf:RDF>
-+  </metadata>
-+  <g
-+     id="layer1"
-+     inkscape:label="cipek"
-+     inkscape:groupmode="layer"
-+     style="display:inline">
-+    <path
-+       transform="matrix(1.775510,0.000000,0.000000,0.959183,-37.37822,11.77153)"
-+       sodipodi:type="arc"
-+       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient4336);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-+       id="path4177"
-+       sodipodi:cx="31.112698"
-+       sodipodi:cy="19.008621"
-+       sodipodi:rx="8.6620579"
-+       sodipodi:ry="8.6620579"
-+       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z" />
-+    <path
-+       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient1381);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#404604;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-+       d="M 12.861174,34.636039 L 23.467776,34.636039 C 26.472980,34.636039 29.448260,33.534107 30.538843,30.393398 C 31.574482,27.410922 30.715620,21.731340 23.998106,17.135146 L 11.446960,17.135146 C 4.7294460,21.377786 3.8899690,27.179977 5.4365530,30.570174 C 7.0121480,34.023964 9.6791930,34.636039 12.861174,34.636039 z "
-+       id="path2329"
-+       sodipodi:nodetypes="cczcczc" />
-+    <path
-+       sodipodi:nodetypes="cccc"
-+       id="path3812"
-+       d="M 17.932367,19.786797 C 17.932367,19.786797 15.781044,21.447132 15.966376,23.447330 C 13.925150,21.646536 13.866503,18.195806 13.866503,18.195806 L 17.932367,19.786797 z "
-+       style="opacity:1.0000000;color:#000000;fill:#9db029;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
-+    <path
-+       sodipodi:nodetypes="cczcczc"
-+       id="path3838"
-+       d="M 12.966639,33.571836 L 23.283309,33.571836 C 25.923032,33.571836 28.536470,32.603917 29.494421,29.845169 C 30.404110,27.225409 29.399699,22.236555 23.499142,18.199332 L 11.974417,18.199332 C 6.0738600,21.925999 5.0864770,27.022551 6.4449710,30.000446 C 7.8289490,33.034200 10.171638,33.571836 12.966639,33.571836 z "
-+       style="opacity:0.21518983;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99999976px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
-+    <path
-+       style="opacity:1.0000000;color:#000000;fill:#9db029;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-+       d="M 18.910795,19.786797 C 18.910795,19.786797 21.062118,21.447132 20.876786,23.447330 C 22.918012,21.646536 22.976659,18.195806 22.976659,18.195806 L 18.910795,19.786797 z "
-+       id="path3810"
-+       sodipodi:nodetypes="cccc" />
-+    <path
-+       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z"
-+       sodipodi:ry="8.6620579"
-+       sodipodi:rx="8.6620579"
-+       sodipodi:cy="19.008621"
-+       sodipodi:cx="31.112698"
-+       id="path3814"
-+       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient4330);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-+       sodipodi:type="arc"
-+       transform="translate(-13.25000,-3.500000)" />
-+    <path
-+       sodipodi:type="arc"
-+       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient4328);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#6f4709;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-+       id="path2327"
-+       sodipodi:cx="31.112698"
-+       sodipodi:cy="19.008621"
-+       sodipodi:rx="8.6620579"
-+       sodipodi:ry="8.6620579"
-+       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z"
-+       transform="translate(-13.12500,-7.000000)" />
-+    <path
-+       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z"
-+       sodipodi:ry="8.6620579"
-+       sodipodi:rx="8.6620579"
-+       sodipodi:cy="19.008621"
-+       sodipodi:cx="31.112698"
-+       id="path3834"
-+       style="opacity:0.12658228;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.1401283px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-+       sodipodi:type="arc"
-+       transform="matrix(0.877095,0.000000,0.000000,0.877095,-9.301073,-4.663733)" />
-+    <path
-+       style="opacity:1.0000000;color:#000000;fill:url(#linearGradient1372);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-+       d="M 22.583894,27.034641 L 26.826534,27.034641 L 24.351661,24.736544 L 23.821331,25.443651 L 23.291000,24.913321 L 22.583894,27.034641 z "
-+       id="path4173" />
-+    <path
-+       style="opacity:0.22784807;color:#000000;fill:url(#linearGradient1369);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-+       d="M 8.5479535,33.601747 C 7.3003465,33.056778 6.7419595,31.743470 6.7419595,31.743470 C 7.5832405,27.674334 10.461885,24.697254 10.461885,24.697254 C 10.461885,24.697254 8.1825635,31.108768 8.5479535,33.601747 z "
-+       id="path4368"
-+       sodipodi:nodetypes="cccc" />
-+    <path
-+       sodipodi:nodetypes="cccc"
-+       id="path4370"
-+       d="M 27.453661,32.743396 C 28.684912,32.162418 29.258041,30.741075 29.258041,30.741075 C 28.298921,26.698092 25.281892,23.898254 25.281892,23.898254 C 25.281892,23.898254 27.746485,30.240856 27.453661,32.743396 z "
-+       style="opacity:0.22784807;color:#000000;fill:url(#linearGradient1366);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
-+  </g>
-+  <g
-+     inkscape:groupmode="layer"
-+     id="layer2"
-+     inkscape:label="dalsi cipek"
-+     style="display:inline">
-+    <path
-+       transform="matrix(1.77551,0,0,0.583984,-24.25322,28.27856)"
-+       sodipodi:type="arc"
-+       style="opacity:1;color:black;fill:url(#radialGradient4179);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-+       id="path4306"
-+       sodipodi:cx="31.112698"
-+       sodipodi:cy="19.008621"
-+       sodipodi:rx="8.6620579"
-+       sodipodi:ry="8.6620579"
-+       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.45064,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z" />
-+    <path
-+       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient4169);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#204a87;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-+       d="M 25.986174,41.636039 L 36.592776,41.636039 C 39.597980,41.636039 42.573260,40.534107 43.663843,37.393398 C 44.699482,34.410922 43.840620,28.731340 37.123106,24.135146 L 24.571960,24.135146 C 17.854446,28.377786 17.014969,34.179977 18.561553,37.570174 C 20.137148,41.023964 22.804193,41.636039 25.986174,41.636039 z "
-+       id="path4308"
-+       sodipodi:nodetypes="cczcczc" />
-+    <path
-+       style="opacity:1.0000000;color:#000000;fill:url(#linearGradient3830);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-+       d="M 26.693281,25.726136 C 29.875261,28.554563 31.289475,38.807612 31.289475,38.807612 C 31.289475,38.807612 32.703688,28.554564 35.178562,25.549360 L 26.693281,25.726136 z "
-+       id="path4310"
-+       sodipodi:nodetypes="cccc" />
-+    <path
-+       sodipodi:nodetypes="cccc"
-+       id="path4312"
-+       d="M 28.972721,26.786797 C 28.972721,26.786797 26.821398,28.447132 27.006730,30.447330 C 24.965504,28.646536 24.906857,25.195806 24.906857,25.195806 L 28.972721,26.786797 z "
-+       style="opacity:1.0000000;color:#000000;fill:#729fcf;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
-+    <path
-+       sodipodi:nodetypes="cczcczc"
-+       id="path4314"
-+       d="M 25.914862,40.593933 L 36.408309,40.571836 C 39.048032,40.571836 41.661470,39.603917 42.619421,36.845169 C 43.529110,34.225409 42.524699,29.236555 36.624142,25.199332 L 25.099417,24.956264 C 19.198860,28.682931 18.056797,33.779483 19.437388,37.000446 C 20.817980,40.221409 22.832599,40.571836 25.914862,40.593933 z "
-+       style="opacity:0.21518983;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99999976px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
-+    <path
-+       style="opacity:1.0000000;color:#000000;fill:#729fcf;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-+       d="M 33.410795,26.786797 C 33.410795,26.786797 35.562118,28.447132 35.376786,30.447330 C 37.418012,28.646536 37.476659,25.195806 37.476659,25.195806 L 33.410795,26.786797 z "
-+       id="path4316"
-+       sodipodi:nodetypes="cccc" />
-+    <path
-+       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z"
-+       sodipodi:ry="8.6620579"
-+       sodipodi:rx="8.6620579"
-+       sodipodi:cy="19.008621"
-+       sodipodi:cx="31.112698"
-+       id="path4318"
-+       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient3822);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-+       sodipodi:type="arc"
-+       transform="translate(-0.125000,3.500000)" />
-+    <path
-+       sodipodi:type="arc"
-+       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient4171);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#c17d11;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-+       id="path4320"
-+       sodipodi:cx="31.112698"
-+       sodipodi:cy="19.008621"
-+       sodipodi:rx="8.6620579"
-+       sodipodi:ry="8.6620579"
-+       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z" />
-+    <path
-+       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z"
-+       sodipodi:ry="8.6620579"
-+       sodipodi:rx="8.6620579"
-+       sodipodi:cy="19.008621"
-+       sodipodi:cx="31.112698"
-+       id="path4322"
-+       style="opacity:0.19620253;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.1401283px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-+       sodipodi:type="arc"
-+       transform="matrix(0.877095,0.000000,0.000000,0.877095,3.823927,2.336267)" />
-+    <path
-+       style="opacity:0.22784807;color:#000000;fill:url(#linearGradient4362);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-+       d="M 21.851790,40.775197 C 20.604183,40.230228 20.045796,38.916920 20.045796,38.916920 C 20.887077,34.847784 23.765721,31.870704 23.765721,31.870704 C 23.765721,31.870704 21.486400,38.282218 21.851790,40.775197 z "
-+       id="path4354"
-+       sodipodi:nodetypes="cccc" />
-+    <path
-+       sodipodi:nodetypes="cccc"
-+       id="path4364"
-+       d="M 40.757497,39.916846 C 41.988748,39.335868 42.561877,37.914525 42.561877,37.914525 C 41.602757,33.871542 38.585728,31.071704 38.585728,31.071704 C 38.585728,31.071704 41.050321,37.414306 40.757497,39.916846 z "
-+       style="opacity:0.22784807;color:#000000;fill:url(#linearGradient4366);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
-+  </g>
-+</svg>
diff --git a/debian/patches/series b/debian/patches/series
index a127545..e69de29 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +0,0 @@
-01-dfsg-icons
commit 8c2f329fbf95a365b621306e483dd0ae8b1d1f1d
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Mon Oct 31 16:20:57 2011 +0100

    Merging upstream version 2.2.0.

diff --git a/CHANGELOG b/CHANGELOG
index a4e5381..40813dc 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,4 +1,4 @@
-Version 2.0.1 - 2011-10-01
+Version 2.2.0 - 2011-10-24
 * Bug fixes (see mercurial logs for details)
 
 Version 2.0.0 - 2011-04-27
diff --git a/MANIFEST.in b/MANIFEST.in
index 47da692..44a0685 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -6,6 +6,6 @@ include CHANGELOG
 include LICENSE
 include *.xml
 include *.odt
-include *.csv
+include locale/*.po
 include doc/*
 include icons/*
diff --git a/PKG-INFO b/PKG-INFO
index 20dcc7a..e3584ce 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,22 +1,24 @@
 Metadata-Version: 1.0
 Name: trytond_party
-Version: 2.0.1
+Version: 2.2.0
 Summary: Define parties, addresses and co.
 Home-page: http://www.tryton.org/
 Author: B2CK
 Author-email: info at b2ck.com
 License: GPL-3
-Download-URL: http://downloads.tryton.org/2.0/
+Download-URL: http://downloads.tryton.org/2.2/
 Description: UNKNOWN
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Environment :: Plugins
+Classifier: Framework :: Tryton
 Classifier: Intended Audience :: Developers
 Classifier: Intended Audience :: Financial and Insurance Industry
 Classifier: Intended Audience :: Legal Industry
 Classifier: Intended Audience :: Manufacturing
 Classifier: License :: OSI Approved :: GNU General Public License (GPL)
 Classifier: Natural Language :: Bulgarian
+Classifier: Natural Language :: Czech
 Classifier: Natural Language :: Dutch
 Classifier: Natural Language :: English
 Classifier: Natural Language :: French
@@ -24,7 +26,6 @@ Classifier: Natural Language :: German
 Classifier: Natural Language :: Russian
 Classifier: Natural Language :: Spanish
 Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: Python :: 2.5
 Classifier: Programming Language :: Python :: 2.6
 Classifier: Programming Language :: Python :: 2.7
 Classifier: Topic :: Office/Business
diff --git a/__tryton__.py b/__tryton__.py
index 892f559..50ed7a4 100644
--- a/__tryton__.py
+++ b/__tryton__.py
@@ -10,7 +10,7 @@
     'name_fr_FR': 'Tiers',
     'name_nl_NL': 'Relaties',
     'name_ru_RU': 'Контрагенты',
-    'version' : '2.0.1',
+    'version' : '2.2.0',
     'author' : 'B2CK',
     'email': 'info at b2ck.com',
     'website': 'http://www.tryton.org/',
@@ -35,12 +35,13 @@
         'configuration.xml',
     ],
     'translation': [
-        'bg_BG.csv',
-        'de_DE.csv',
-        'es_CO.csv',
-        'es_ES.csv',
-        'fr_FR.csv',
-        'nl_NL.csv',
-        'ru_RU.csv',
+        'locale/bg_BG.po',
+        'locale/cs_CZ.po',
+        'locale/de_DE.po',
+        'locale/es_CO.po',
+        'locale/es_ES.po',
+        'locale/fr_FR.po',
+        'locale/nl_NL.po',
+        'locale/ru_RU.po',
     ],
 }
diff --git a/address.py b/address.py
index aeed740..1558f40 100644
--- a/address.py
+++ b/address.py
@@ -2,11 +2,13 @@
 #this repository contains the full copyright notices and license terms.
 'Address'
 from trytond.model import ModelView, ModelSQL, fields
-from trytond.pyson import Not, Bool, Eval, If, Greater
+from trytond.pyson import Eval, If
+from trytond.pool import Pool
 
 STATES = {
-    'readonly': Not(Bool(Eval('active'))),
-}
+    'readonly': ~Eval('active'),
+    }
+DEPENDS = ['active']
 
 
 class Address(ModelSQL, ModelView):
@@ -14,21 +16,21 @@ class Address(ModelSQL, ModelView):
     _name = 'party.address'
     _description = __doc__
     party = fields.Many2One('party.party', 'Party', required=True,
-            ondelete='CASCADE', select=1,  states={
-                'readonly': If(Not(Bool(Eval('active'))),
-                    True, Greater(Eval('active_id', 0), 0)),
-            })
-    name = fields.Char('Name', states=STATES)
-    street = fields.Char('Street', states=STATES)
-    streetbis = fields.Char('Street (bis)', states=STATES)
+        ondelete='CASCADE', select=1,  states={
+            'readonly': If(~Eval('active'), True, Eval('id', 0) > 0),
+            },
+        depends=['active', 'id'])
+    name = fields.Char('Name', states=STATES, depends=DEPENDS)
+    street = fields.Char('Street', states=STATES, depends=DEPENDS)
+    streetbis = fields.Char('Street (bis)', states=STATES, depends=DEPENDS)
     zip = fields.Char('Zip', change_default=True,
-            states=STATES)
-    city = fields.Char('City', states=STATES)
+        states=STATES, depends=DEPENDS)
+    city = fields.Char('City', states=STATES, depends=DEPENDS)
     country = fields.Many2One('country.country', 'Country',
-        on_change=['country', 'subdivision'], states=STATES)
+        on_change=['country', 'subdivision'], states=STATES, depends=DEPENDS)
     subdivision = fields.Many2One("country.subdivision",
             'Subdivision', domain=[('country', '=', Eval('country'))],
-            states=STATES)
+            states=STATES, depends=['active', 'country'])
     active = fields.Boolean('Active')
     sequence = fields.Integer("Sequence")
     full_address = fields.Function(fields.Text('Full Address'),
@@ -110,7 +112,7 @@ class Address(ModelSQL, ModelView):
         return super(Address, self).write(ids, vals)
 
     def on_change_country(self, vals):
-        subdivision_obj = self.pool.get('country.subdivision')
+        subdivision_obj = Pool().get('country.subdivision')
         result = dict((k, vals.get(k, False))
             for k in ('country', 'subdivision'))
         if vals['subdivision']:
diff --git a/address.xml b/address.xml
index 078f062..d0d0d6d 100644
--- a/address.xml
+++ b/address.xml
@@ -9,15 +9,15 @@ this repository contains the full copyright notices and license terms. -->
             <field name="arch" type="xml">
                 <![CDATA[
                 <tree string="Addresses">
-                    <field name="party" select="1"/>
-                    <field name="name" select="1"/>
-                    <field name="street" select="2"/>
-                    <field name="streetbis" select="2"/>
-                    <field name="zip" select="2"/>
-                    <field name="city" select="2"/>
-                    <field name="country" select="1"/>
-                    <field name="subdivision" select="2"/>
-                    <field name="active" select="2"/>
+                    <field name="party"/>
+                    <field name="name"/>
+                    <field name="street"/>
+                    <field name="streetbis"/>
+                    <field name="zip"/>
+                    <field name="city"/>
+                    <field name="country"/>
+                    <field name="subdivision"/>
+                    <field name="active"/>
                 </tree>
                 ]]>
             </field>
@@ -74,22 +74,5 @@ this repository contains the full copyright notices and license terms. -->
         <menuitem name="Addresses" parent="menu_party"
               sequence="2" action="act_address_form"
               id="menu_address_form"/>
-        <record model="ir.action.act_window" id="act_address_form2">
-            <field name="name">Addresses</field>
-            <field name="res_model">party.address</field>
-        </record>
-        <record model="ir.action.act_window.view" id="act_address_form2_view1">
-            <field name="sequence" eval="10"/>
-            <field name="view" ref="address_view_form"/>
-            <field name="act_window" ref="act_address_form2"/>
-        </record>
-        <record model="ir.action.act_window.view" id="act_address_form2_view2">
-            <field name="sequence" eval="20"/>
-            <field name="view" ref="address_view_tree"/>
-            <field name="act_window" ref="act_address_form2"/>
-        </record>
-        <menuitem name="New Address" parent="menu_address_form"
-              action="act_address_form2"
-              id="menu_address_form2"/>
     </data>
 </tryton>
diff --git a/bg_BG.csv b/bg_BG.csv
deleted file mode 100644
index 74c989c..0000000
--- a/bg_BG.csv
+++ /dev/null
@@ -1,130 +0,0 @@
-type,name,res_id,src,value,fuzzy
-error,party.address,0,You can not modify the party of an address!,Не може да променяте партньора за адрес!,0
-error,party.category,0,The name of a party category must be unique by parent!,Името на категорията на партньора трябва да бъде уникална по родител!,0
-error,party.category,0,You can not create recursive categories!,Не може да създавате взаимно вложени категории!,0
-error,party.category,0,"You can not use "" / "" in name field!","В името на полето не може да има "" / ""!",0
-error,party.check_vies,0,"The VIES service is unavailable, try again later.","VIES услугата е недостъпна, опитайте отново по-късно.",0
-error,party.contact_mechanism,0,You can not modify the party of a contact mechanism!,Не може да променяте партньора за начин на контакт!,0
-error,party.party,0,Invalid VAT number!,Невалиден ДДС номер!,0
-error,party.party,0,The code of the party must be unique!,Кода на партньора трябва да е уникален!,0
-field,"party.address,active",0,Active,Активен,0
-field,"party.address,city",0,City,Град,0
-field,"party.address,country",0,Country,Държава,0
-field,"party.address,full_address",0,Full Address,Пълен адрес,0
-field,"party.address,name",0,Name,Име,0
-field,"party.address,party",0,Party,Партньор,0
-field,"party.address,rec_name",0,Name,Име,0
-field,"party.address,sequence",0,Sequence,Последователност,0
-field,"party.address,street",0,Street,Улица,0
-field,"party.address,streetbis",0,Street (bis),Улица 2,0
-field,"party.address,subdivision",0,Subdivision,Подразделение,0
-field,"party.address,zip",0,Zip,Пощ. код,0
-field,"party.category,active",0,Active,Активен,0
-field,"party.category,childs",0,Children,Деца,0
-field,"party.category,name",0,Name,Име,0
-field,"party.category,parent",0,Parent,Родител,0
-field,"party.category,rec_name",0,Name,Име,0
-field,"party.check_vies.check,parties_failed",0,Parties Failed,Партньора не е валиден,0
-field,"party.check_vies.check,parties_succeed",0,Parties Succeed,Валиден партньор,0
-field,"party.configuration,party_lang",0,Party Language,Език на партньор,0
-field,"party.configuration,party_sequence",0,Party Sequence,Последователност за партньор,0
-field,"party.configuration,rec_name",0,Name,Име,0
-field,"party.contact_mechanism,active",0,Active,Активен,0
-field,"party.contact_mechanism,comment",0,Comment,Коментар,0
-field,"party.contact_mechanism,email",0,E-Mail,E-Mail,0
-field,"party.contact_mechanism,other_value",0,Value,Стойност,0
-field,"party.contact_mechanism,party",0,Party,Партньор,0
-field,"party.contact_mechanism,rec_name",0,Name,Име,0
-field,"party.contact_mechanism,sequence",0,Sequence,Последователност,0
-field,"party.contact_mechanism,sip",0,SIP,SIP,0
-field,"party.contact_mechanism,skype",0,Skype,Skype,0
-field,"party.contact_mechanism,type",0,Type,Вид,0
-field,"party.contact_mechanism,value",0,Value,Стойност,0
-field,"party.contact_mechanism,website",0,Website,Website,0
-field,"party.party,active",0,Active,Активен,0
-field,"party.party,addresses",0,Addresses,Адреси,0
-field,"party.party,categories",0,Categories,Категории,0
-field,"party.party,code",0,Code,Код,0
-field,"party.party,code_length",0,Code Length,Дължина на кода,0
-field,"party.party,contact_mechanisms",0,Contact Mechanisms,Начини на контакт,0
-field,"party.party,email",0,E-Mail,E-Mail,0
-field,"party.party,fax",0,Fax,Факс,0
-field,"party.party,full_name",0,Full Name,Пълно име,0
-field,"party.party,lang",0,Language,Език,0
-field,"party.party,mobile",0,Mobile,Мобилен,0
-field,"party.party,name",0,Name,Име,0
-field,"party.party,phone",0,Phone,Телефон,0
-field,"party.party,rec_name",0,Name,Име,0
-field,"party.party,vat_code",0,VAT Code,ДДС код,0
-field,"party.party,vat_country",0,VAT Country,ДДС държава,0
-field,"party.party,vat_number",0,VAT Number,ДДС номер,0
-field,"party.party,website",0,Website,Website,0
-field,"party.party-party.category,category",0,Category,Категория,0
-field,"party.party-party.category,party",0,Party,Партньор,0
-field,"party.party-party.category,rec_name",0,Name,Име,0
-help,"party.configuration,party_lang",0,The value set on this field will preset the language on new parties,Стойността в това поле ще се използва за език при нови партньори.,0
-help,"party.party,vat_country",0,Setting VAT country will enable validation of the VAT number.,Оказвайки държава за ДДС ще позволи да се провери ДДС номера.,0
-help,"party.party,vat_number",0,Value Added Tax number,ДДС номер,0
-model,"ir.action,name",,Categories,Категории,0
-model,"ir.action,name",act_address_form,Addresses,Адреси,0
-model,"ir.action,name",act_address_form2,Addresses,Адреси,0
-model,"ir.action,name",act_category_form,Categories,Категории,0
-model,"ir.action,name",act_category_tree,Categories,Категории,0
-model,"ir.action,name",act_party_by_category,Parties by Category,Патньори по категория,0
-model,"ir.action,name",act_party_configuration_form,Party Configuration,Конфигуриране на партньор,0
-model,"ir.action,name",act_party_form,Parties,Партньори,0
-model,"ir.action,name",act_party_form2,Parties,Партньори,0
-model,"ir.action,name",report_label,Labels,Етикети,0
-model,"ir.action,name",wizard_check_vies,Check VIES,Провека в VIES,0
-model,"ir.sequence,name",sequence_party,Party,Партньор,0
-model,"ir.sequence.type,name",sequence_type_party,Party,Партньор,0
-model,"ir.ui.menu,name",,New category,Нова категория,0
-model,"ir.ui.menu,name",menu_address_form,Addresses,Адреси,0
-model,"ir.ui.menu,name",menu_address_form2,New Address,Нов адрес,0
-model,"ir.ui.menu,name",menu_category_form,New Category,Нова категория,0
-model,"ir.ui.menu,name",menu_category_tree,Categories,Категории,0
-model,"ir.ui.menu,name",menu_configuration,Configuration,Конфигурация,0
-model,"ir.ui.menu,name",menu_party,Party Management,Управление на партньор,0
-model,"ir.ui.menu,name",menu_party_configuration,Party Configuration,Конфигуриране на партньор,0
-model,"ir.ui.menu,name",menu_party_form,Parties,Партньори,0
-model,"ir.ui.menu,name",menu_party_form2,New Party,Нов партньор,0
-model,"party.address,name",0,Address,Адрес,0
-model,"party.category,name",0,Category,Категория,0
-model,"party.check_vies.check,name",0,Check VIES - Check,Проверка ДДС номер (VIES) - проверка,0
-model,"party.check_vies.no_check,name",0,Check VIES - No Check,Проверка ДДС номер (VIES) - без проверка,0
-model,"party.configuration,name",0,Party Configuration,Конфигуриране на партньор,0
-model,"party.contact_mechanism,name",0,Contact Mechanism,Начин на контакт,0
-model,"party.party,name",0,Party,Партньор,0
-model,"party.party-party.category,name",0,Party - Category,Партньор - Категория,0
-model,"res.group,name",group_party_admin,Party Administration,Управление на партньор,0
-selection,"party.contact_mechanism,type",0,E-Mail,E-Mail,0
-selection,"party.contact_mechanism,type",0,Fax,Факс,0
-selection,"party.contact_mechanism,type",0,IRC,IRC,0
-selection,"party.contact_mechanism,type",0,Jabber,Jabber,0
-selection,"party.contact_mechanism,type",0,Mobile,Мобилен,0
-selection,"party.contact_mechanism,type",0,Other,Друг,0
-selection,"party.contact_mechanism,type",0,Phone,Телефон,0
-selection,"party.contact_mechanism,type",0,SIP,SIP,0
-selection,"party.contact_mechanism,type",0,Skype,Skype,0
-selection,"party.contact_mechanism,type",0,Website,Website,0
-view,party.address,0,Addresses,Адреси,0
-view,party.category,0,Categories,Категории,0
-view,party.category,0,Category,Категория,0
-view,party.check_vies.check,0,Parties Failed,Партньора не е валиден,0
-view,party.check_vies.check,0,Parties Succeed,Валиден партньор,0
-view,party.check_vies.check,0,VAT Information Exchange System Results,Резултати от Система за обмен на инфиормация за ДДС,0
-view,party.check_vies.no_check,0,VAT Information Exchange System,Система за обмен на ДДС информация,0
-view,party.check_vies.no_check,0,"You must have a recent version of ""vatnumber"" installed!","Трябва да имате инсталирана последната версия на ""vatnumber""!",0
-view,party.configuration,0,Party Configuration,Конфигуриране на партньор,0
-view,party.contact_mechanism,0,Contact Mechanism,Начин на контакт,0
-view,party.contact_mechanism,0,Contact Mechanisms,Начини на контакт,0
-view,party.party,0,Accounting,Счетоводство,0
-view,party.party,0,Addresses,Адреси,0
-view,party.party,0,Categories,Категории,0
-view,party.party,0,Contact Mechanisms,Начини на контакт,0
-view,party.party,0,General,Основен,0
-view,party.party,0,Parties,Партньори,0
-view,party.party,0,Party,Партньор,0
-view,party.party,0,VAT,ДДС,0
-wizard_button,"party.check_vies,check,end",0,Ok,Добре,0
-wizard_button,"party.check_vies,no_check,end",0,Ok,Добре,0
diff --git a/category.py b/category.py
index 1dcae09..5db851b 100644
--- a/category.py
+++ b/category.py
@@ -1,11 +1,12 @@
 #This file is part of Tryton.  The COPYRIGHT file at the top level of
 #this repository contains the full copyright notices and license terms.
 from trytond.model import ModelView, ModelSQL, fields
-from trytond.pyson import Not, Bool, Eval
+from trytond.pyson import Eval
 
 STATES = {
-    'readonly': Not(Bool(Eval('active'))),
+    'readonly': ~Eval('active'),
 }
+DEPENDS = ['active']
 
 SEPARATOR = ' / '
 
@@ -14,11 +15,12 @@ class Category(ModelSQL, ModelView):
     "Category"
     _name = "party.category"
     _description = __doc__
-    name = fields.Char('Name', required=True, states=STATES)
+    name = fields.Char('Name', required=True, states=STATES, translate=True,
+        depends=DEPENDS)
     parent = fields.Many2One('party.category', 'Parent',
-           select=1, states=STATES)
+        select=1, states=STATES, depends=DEPENDS)
     childs = fields.One2Many('party.category', 'parent',
-       'Children', states=STATES)
+       'Children', states=STATES, depends=DEPENDS)
     active = fields.Boolean('Active')
 
     def __init__(self):
diff --git a/category.xml b/category.xml
index 12a691f..fe5e162 100644
--- a/category.xml
+++ b/category.xml
@@ -26,7 +26,7 @@ this repository contains the full copyright notices and license terms. -->
             <field name="arch" type="xml">
                 <![CDATA[
                 <tree string="Categories" fill="1" keyword_open="1">
-                    <field name="name" select="1"/>
+                    <field name="name"/>
                     <field name="parent" tree_invisible="1"/>
                     <field name="childs" tree_invisible="1"/>
                 </tree>
@@ -40,7 +40,7 @@ this repository contains the full copyright notices and license terms. -->
             <field name="arch" type="xml">
                 <![CDATA[
                 <tree string="Categories" fill="1">
-                    <field name="rec_name" select="1"/>
+                    <field name="rec_name"/>
                 </tree>
                 ]]>
             </field>
@@ -81,23 +81,6 @@ this repository contains the full copyright notices and license terms. -->
         <menuitem parent="menu_category_tree" action="act_category_list"
             id="menu_category_list"/>
 
-        <record model="ir.action.act_window" id="act_category_form">
-            <field name="name">Categories</field>
-            <field name="res_model">party.category</field>
-        </record>
-        <record model="ir.action.act_window.view" id="act_category_form_view1">
-            <field name="sequence" eval="10"/>
-            <field name="view" ref="category_view_form"/>
-            <field name="act_window" ref="act_category_form"/>
-        </record>
-        <record model="ir.action.act_window.view" id="act_category_form_view2">
-            <field name="sequence" eval="20"/>
-            <field name="view" ref="category_view_list"/>
-            <field name="act_window" ref="act_category_form"/>
-        </record>
-        <menuitem name="New Category" parent="menu_category_tree"
-              action="act_category_form" id="menu_category_form"/>
-
         <record model="ir.model.access" id="access_party_category">
             <field name="model" search="[('model', '=', 'party.category')]"/>
             <field name="perm_read" eval="True"/>
diff --git a/configuration.py b/configuration.py
index 120c090..349842e 100644
--- a/configuration.py
+++ b/configuration.py
@@ -1,7 +1,6 @@
 #This file is part of Tryton.  The COPYRIGHT file at the top level of
 #this repository contains the full copyright notices and license terms.
 from trytond.model import ModelView, ModelSQL, ModelSingleton, fields
-from trytond.pyson import Eval
 
 
 class Configuration(ModelSingleton, ModelSQL, ModelView):
@@ -10,10 +9,9 @@ class Configuration(ModelSingleton, ModelSQL, ModelView):
     _description = __doc__
 
     party_sequence = fields.Property(fields.Many2One('ir.sequence',
-        'Party Sequence', domain=[
-            ('company', 'in', [Eval('company'), False]),
-            ('code', '=', 'party.party'),
-        ], required=True))
+            'Party Sequence', domain=[
+                ('code', '=', 'party.party'),
+                ], required=True))
     party_lang = fields.Property(fields.Many2One("ir.lang", 'Party Language',
         help=('The value set on this field will preset the language on new '
             'parties')))
diff --git a/contact_mechanism.py b/contact_mechanism.py
index 19d1b29..691457e 100644
--- a/contact_mechanism.py
+++ b/contact_mechanism.py
@@ -1,11 +1,12 @@
 #This file is part of Tryton.  The COPYRIGHT file at the top level of
 #this repository contains the full copyright notices and license terms.
 from trytond.model import ModelView, ModelSQL, fields
-from trytond.pyson import Not, Bool, Eval, Equal, In
+from trytond.pyson import Eval
 
 STATES = {
-    'readonly': Not(Bool(Eval('active'))),
-}
+    'readonly': ~Eval('active'),
+    }
+DEPENDS = ['active']
 
 _TYPES = [
     ('phone', 'Phone'),
@@ -28,41 +29,42 @@ class ContactMechanism(ModelSQL, ModelView):
     _rec_name = 'value'
 
     type = fields.Selection(_TYPES, 'Type', required=True, states=STATES,
-            sort=False)
-    value = fields.Char('Value', select=1, states=STATES, on_change=['value'])
-    comment = fields.Text('Comment', states=STATES)
+        sort=False, depends=DEPENDS)
+    value = fields.Char('Value', select=1, states=STATES, on_change=['value'],
+        depends=DEPENDS)
+    comment = fields.Text('Comment', states=STATES, depends=DEPENDS)
     party = fields.Many2One('party.party', 'Party', required=True,
-            ondelete='CASCADE', states=STATES, select=1)
+        ondelete='CASCADE', states=STATES, select=1, depends=DEPENDS)
     active = fields.Boolean('Active', select=1)
     sequence = fields.Integer('Sequence')
     email = fields.Function(fields.Char('E-Mail', states={
-        'invisible': Not(Equal(Eval('type'), 'email')),
-        'required': Equal(Eval('type'), 'email'),
-        'readonly': Not(Bool(Eval('active'))),
+        'invisible': Eval('type') != 'email',
+        'required': Eval('type') == 'email',
+        'readonly': ~Eval('active', True),
         }, on_change=['email'], depends=['value', 'type', 'active']),
         'get_value', setter='set_value')
     website = fields.Function(fields.Char('Website', states={
-        'invisible': Not(Equal(Eval('type'), 'website')),
-        'required': Equal(Eval('type'), 'website'),
-        'readonly': Not(Bool(Eval('active'))),
+        'invisible': Eval('type') != 'website',
+        'required': Eval('type') == 'website',
+        'readonly': ~Eval('active', True),
         }, on_change=['website'], depends=['value', 'type', 'active']),
         'get_value', setter='set_value')
     skype = fields.Function(fields.Char('Skype',states={
-        'invisible': Not(Equal(Eval('type'), 'skype')),
-        'required': Equal(Eval('type'), 'skype'),
-        'readonly': Not(Bool(Eval('active'))),
+        'invisible': Eval('type') != 'skype',
+        'required': Eval('type') == 'skype',
+        'readonly': ~Eval('active', True),
         }, on_change=['skype'], depends=['value', 'type', 'active']),
         'get_value', setter='set_value')
     sip = fields.Function(fields.Char('SIP', states={
-        'invisible': Not(Equal(Eval('type'), 'sip')),
-        'required': Equal(Eval('type'), 'sip'),
-        'readonly': Not(Bool(Eval('active'))),
+        'invisible': Eval('type') != 'sip',
+        'required': Eval('type') == 'sip',
+        'readonly': ~Eval('active', True),
         }, on_change=['sip'], depends=['value', 'type', 'active']),
         'get_value', setter='set_value')
     other_value = fields.Function(fields.Char('Value', states={
-        'invisible': In(Eval('type'), ['email', 'website', 'skype', 'sip']),
-        'required': Not(In(Eval('type'), ['email', 'website'])),
-        'readonly': Not(Bool(Eval('active'))),
+        'invisible': Eval('type').in_(['email', 'website', 'skype', 'sip']),
+        'required': ~Eval('type').in_(['email', 'website']),
+        'readonly': ~Eval('active', True),
         }, on_change=['other_value'], depends=['value', 'type', 'active']),
         'get_value', setter='set_value')
 
diff --git a/contact_mechanism.xml b/contact_mechanism.xml
index cbf2f6c..e36f43a 100644
--- a/contact_mechanism.xml
+++ b/contact_mechanism.xml
@@ -10,9 +10,9 @@ this repository contains the full copyright notices and license terms. -->
             <field name="arch" type="xml">
                 <![CDATA[
                 <tree string="Contact Mechanisms">
-                    <field name="party" select="1"/>
-                    <field name="type" select="1"/>
-                    <field name="value" select="1"/>
+                    <field name="party"/>
+                    <field name="type"/>
+                    <field name="value"/>
                 </tree>
                 ]]>
             </field>
diff --git a/de_DE.csv b/de_DE.csv
deleted file mode 100644
index e694ed9..0000000
--- a/de_DE.csv
+++ /dev/null
@@ -1,182 +0,0 @@
-type,name,res_id,src,value,fuzzy
-error,party.address,0,You can not modify the party of an address!,Die Partei einer Adresse kann nicht geändert werden!,0
-error,party.category,0,The name of a party category must be unique by parent!,Der Name einer Parteikategorie kann pro Ãœbergeordneter Partei nur einmal vergeben werden!,0
-error,party.category,0,You can not create recursive categories!,Kategorien können nicht rekursiv angelegt werden!,0
-error,party.category,0,"You can not use "" / "" in name field!","In dem Namensfeld kann "" / "" nicht verwendet werden!",0
-error,party.check_vies,0,"The VIES service is unavailable, try again later.","VIES Dienst nicht erreichbar, bitte versuchen Sie es später noch einmal!",0
-error,party.contact_mechanism,0,You can not modify the party of a contact mechanism!,Die Partei einer Kontaktmöglichkeit kann nicht geändert werden!,0
-error,party.party,0,Invalid VAT number!,Ungültige USt-ID-Nummer!,0
-error,party.party,0,The code of the party must be unique!,Der Name einer Partei kann nur einmal vergeben werden!,0
-field,"party.address,active",0,Active,Aktiv,0
-field,"party.address,city",0,City,Stadt,0
-field,"party.address,country",0,Country,Staat,0
-field,"party.address,create_date",0,Creation date,Erstellungsdatum,0
-field,"party.address,create_uid",0,Creation user,Ersteller,0
-field,"party.address,full_address",0,Full Address,Vollständige Adresse,0
-field,"party.address,id",0,ID,ID,0
-field,"party.address,name",0,Name,Name,0
-field,"party.address,party",0,Party,Partei,0
-field,"party.address,rec_name",0,Name,Name,0
-field,"party.address,sequence",0,Sequence,Reihenfolge,0
-field,"party.address,street",0,Street,Anschrift 1,0
-field,"party.address,streetbis",0,Street (bis),Anschrift 2,0
-field,"party.address,subdivision",0,Subdivision,Subnationale Einheit,0
-field,"party.address,write_date",0,Last modification date,Zuletzt geändert am,0
-field,"party.address,write_uid",0,Last modification by,Zuletzt geändert von,0
-field,"party.address,zip",0,Zip,Postleitzahl,0
-field,"party.category,active",0,Active,Aktiv,0
-field,"party.category,childs",0,Children,Untergeordnet (Kategorien),0
-field,"party.category,create_date",0,Creation date,Erstellungsdatum,0
-field,"party.category,create_uid",0,Creation user,Ersteller,0
-field,"party.category,id",0,ID,ID,0
-field,"party.category,name",0,Name,Kategorie Name,0
-field,"party.category,parent",0,Parent,Ãœbergeordnet (Kategorie),0
-field,"party.category,rec_name",0,Name,Name,0
-field,"party.category,write_date",0,Last modification date,Zuletzt geändert am,0
-field,"party.category,write_uid",0,Last modification by,Zuletzt geändert von,0
-field,"party.check_vies.check,parties_failed",0,Parties Failed,Parteien mit fehlgeschlagener Überprüfung,0
-field,"party.check_vies.check,parties_succeed",0,Parties Succeed,Parteien mit erfolgreicher Überprüfung,0
-field,"party.configuration,party_lang",0,Party Language,Sprache Partei,0
-field,"party.configuration,party_sequence",0,Party Sequence,Nummernkreis Partei,0
-field,"party.configuration,rec_name",0,Name,Name,0
-field,"party.contact_mechanism,active",0,Active,Aktiv,0
-field,"party.contact_mechanism,comment",0,Comment,Kommentar,0
-field,"party.contact_mechanism,email",0,E-Mail,E-Mail,0
-field,"party.contact_mechanism,other_value",0,Value,Wert,0
-field,"party.contact_mechanism,party",0,Party,Partei,0
-field,"party.contact_mechanism,rec_name",0,Name,Name,0
-field,"party.contact_mechanism,sequence",0,Sequence,Reihenfolge,0
-field,"party.contact_mechanism,sip",0,SIP,SIP,0
-field,"party.contact_mechanism,skype",0,Skype,Skype,0
-field,"party.contact_mechanism,type",0,Type,Typ,0
-field,"party.contact_mechanism,value",0,Value,Wert,0
-field,"party.contact_mechanism,website",0,Website,Homepage,0
-field,"party.party,active",0,Active,Aktiv,0
-field,"party.party,addresses",0,Addresses,Adressen,0
-field,"party.party,categories",0,Categories,Kategorien,0
-field,"party.party,code",0,Code,Code Partei,0
-field,"party.party,code_length",0,Code Length,Code Länge,0
-field,"party.party,contact_mechanisms",0,Contact Mechanisms,Kontaktmöglichkeiten,0
-field,"party.party,create_date",0,Creation date,Erstellungsdatum,0
-field,"party.party,create_uid",0,Creation user,Ersteller,0
-field,"party.party,email",0,E-Mail,E-Mail,0
-field,"party.party,fax",0,Fax,Fax,0
-field,"party.party,full_name",0,Full Name,Vollständiger Name,0
-field,"party.party,id",0,ID,ID,0
-field,"party.party,lang",0,Language,Sprache,0
-field,"party.party,mobile",0,Mobile,Mobiltelefon,0
-field,"party.party,name",0,Name,Name,0
-field,"party.party,phone",0,Phone,Telefon,0
-field,"party.party,rec_name",0,Name,Name,0
-field,"party.party,vat_code",0,VAT Code,USt-ID-Nr.,0
-field,"party.party,vat_country",0,VAT Country,USt-ID Präfix,0
-field,"party.party,vat_number",0,VAT Number,USt-ID-Nr.,0
-field,"party.party,website",0,Website,Website,0
-field,"party.party,write_date",0,Last modification date,Zuletzt geändert am,0
-field,"party.party,write_uid",0,Last modification by,Zuletzt geändert von,0
-field,"party.party-party.category,category",0,Category,Kategorie,0
-field,"party.party-party.category,party",0,Party,Partei,0
-field,"party.party-party.category,rec_name",0,Name,Name,0
-help,"party.configuration,party_lang",0,The value set on this field will preset the language on new parties,Ein Wert in diesem Feld dient als Voreinstellung für die Sprache von neu angelegten Parteien,0
-help,"party.party,vat_country",0,Setting VAT country will enable validation of the VAT number.,Ein Eintrag in USt-ID-Präfix aktiviert die Überprüfung der USt-ID-Nr.,0
-help,"party.party,vat_number",0,Value Added Tax number,Umsatzsteueridentifikationsnummer,0
-model,"ir.action,name",act_address_form,Addresses,Adressen,0
-model,"ir.action,name",act_address_form2,Addresses,Adressen,0
-model,"ir.action,name",act_category_form,Categories,Kategorien,0
-model,"ir.action,name",act_category_list,Categories,Kategorien,0
-model,"ir.action,name",act_category_tree,Categories,Kategorien,0
-model,"ir.action,name",act_party_by_category,Parties by Category,Parteien nach Kategorie,0
-model,"ir.action,name",act_party_configuration_form,Party Configuration,Einstellungen Partei,0
-model,"ir.action,name",act_party_form,Parties,Parteien,0
-model,"ir.action,name",act_party_form2,Parties,Parteien,0
-model,"ir.action,name",report_label,Labels,Etiketten,0
-model,"ir.action,name",wizard_check_vies,Check VIES,USt-ID-Nr. per VIES überprüfen,0
-model,"ir.sequence,name",sequence_party,Party,Partei,0
-model,"ir.sequence.type,name",sequence_type_party,Party,Partei,0
-model,"ir.ui.menu,name",menu_address_form,Addresses,Adressen,0
-model,"ir.ui.menu,name",menu_address_form2,New Address,Neue Adresse,0
-model,"ir.ui.menu,name",menu_category_form,New Category,Neue Parteikategorie,0
-model,"ir.ui.menu,name",menu_category_list,Categories,Kategorien,0
-model,"ir.ui.menu,name",menu_category_tree,Categories,Parteikategorien,0
-model,"ir.ui.menu,name",menu_configuration,Configuration,Einstellungen,0
-model,"ir.ui.menu,name",menu_party,Party Management,Parteien,0
-model,"ir.ui.menu,name",menu_party_configuration,Party Configuration,Einstellungen Partei,0
-model,"ir.ui.menu,name",menu_party_form,Parties,Parteien,0
-model,"ir.ui.menu,name",menu_party_form2,New Party,Neue Partei,0
-model,"party.address,name",0,Address,Adresse,0
-model,"party.category,name",0,Category,Kategorie,0
-model,"party.check_vies.check,name",0,Check VIES - Check,Überprüfung VIES - Durchführen,0
-model,"party.check_vies.no_check,name",0,Check VIES - No Check,Überprüfung VIES - Nicht durchführen,0
-model,"party.configuration,name",0,Party Configuration,Einstellungen Partei,0
-model,"party.contact_mechanism,name",0,Contact Mechanism,Kontaktmöglichkeit,0
-model,"party.party,name",0,Party,Partei,0
-model,"party.party-party.category,name",0,Party - Category,Partei - Parteikategorie,0
-model,"res.group,name",group_party_admin,Party Administration,Parteien Administration,0
-selection,"party.contact_mechanism,type",0,E-Mail,E-Mail,0
-selection,"party.contact_mechanism,type",0,Fax,Fax,0
-selection,"party.contact_mechanism,type",0,IRC,IRC,0
-selection,"party.contact_mechanism,type",0,Jabber,Jabber,0
-selection,"party.contact_mechanism,type",0,Mobile,Mobiltelefon,0
-selection,"party.contact_mechanism,type",0,Other,Anderer Kontakt,0
-selection,"party.contact_mechanism,type",0,Phone,Telefon,0
-selection,"party.contact_mechanism,type",0,SIP,SIP,0
-selection,"party.contact_mechanism,type",0,Skype,Skype,0
-selection,"party.contact_mechanism,type",0,Website,Homepage,0
-selection,"party.party,vat_country",0,,,0
-selection,"party.party,vat_country",0,AL,AL,0
-selection,"party.party,vat_country",0,AT,AT,0
-selection,"party.party,vat_country",0,BE,BE,0
-selection,"party.party,vat_country",0,BG,BG,0
-selection,"party.party,vat_country",0,CY,CY,0
-selection,"party.party,vat_country",0,CZ,CZ,0
-selection,"party.party,vat_country",0,DE,DE,0
-selection,"party.party,vat_country",0,DK,DK,0
-selection,"party.party,vat_country",0,EE,EE,0
-selection,"party.party,vat_country",0,EL,EL,0
-selection,"party.party,vat_country",0,ES,ES,0
-selection,"party.party,vat_country",0,FI,FI,0
-selection,"party.party,vat_country",0,FR,FR,0
-selection,"party.party,vat_country",0,GB,GB,0
-selection,"party.party,vat_country",0,GR,GR,0
-selection,"party.party,vat_country",0,HU,HU,0
-selection,"party.party,vat_country",0,IE,IE,0
-selection,"party.party,vat_country",0,IT,IT,0
-selection,"party.party,vat_country",0,LT,LT,0
-selection,"party.party,vat_country",0,LU,LU,0
-selection,"party.party,vat_country",0,LV,LV,0
-selection,"party.party,vat_country",0,MT,MT,0
-selection,"party.party,vat_country",0,NL,NL,0
-selection,"party.party,vat_country",0,PL,PL,0
-selection,"party.party,vat_country",0,PT,PT,0
-selection,"party.party,vat_country",0,RO,RO,0
-selection,"party.party,vat_country",0,SE,SE,0
-selection,"party.party,vat_country",0,SI,SI,0
-selection,"party.party,vat_country",0,SK,SK,0
-selection,"party.party,vat_country",0,SM,SM,0
-selection,"party.party,vat_country",0,UA,UA,0
-selection,"party.party,vat_country",0,UK,UK,0
-view,party.address,0,Addresses,Adressen,0
-view,party.category,0,Categories,Kategorien,0
-view,party.category,0,Category,Kategorie,0
-view,party.check_vies.check,0,Parties Failed,Parteien mit fehlgeschlagener Überprüfung,0
-view,party.check_vies.check,0,Parties Succeed,Parteien mit erfolgreicher Überprüfung,0
-view,party.check_vies.check,0,VAT Information Exchange System Results,Ergebnisse des Überprüfungssystems für USt-ID-Nummern (VIES),0
-view,party.check_vies.no_check,0,VAT Information Exchange System,Überprüfungssystem für USt-ID-Nummern (VIES),0
-view,party.check_vies.no_check,0,"You must have a recent version of ""vatnumber"" installed!","Es muss eine aktuelle Version des Python-Moduls ""vatnumber"" installiert sein!",0
-view,party.configuration,0,Party Configuration,Einstellungen Partei,0
-view,party.contact_mechanism,0,Contact Mechanism,Kontaktmöglichkeit,0
-view,party.contact_mechanism,0,Contact Mechanisms,Kontaktmöglichkeiten,0
-view,party.party,0,Account,Konten,0
-view,party.party,0,Accounting,Buchhaltung,0
-view,party.party,0,Addresses,Adressen,0
-view,party.party,0,Categories,Kategorien,0
-view,party.party,0,Contact Mechanism,Kontaktmöglichkeit,0
-view,party.party,0,Contact Mechanisms,Kontaktmöglichkeiten,0
-view,party.party,0,General,Allgemein,0
-view,party.party,0,Parties,Parteien,0
-view,party.party,0,Party,Partei,0
-view,party.party,0,VAT,USt,0
-view,party.party,0,_Accounting,_Buchhaltung,0
-view,party.party,0,_General,_Allgemein,0
-wizard_button,"party.check_vies,check,end",0,Ok,OK,0
-wizard_button,"party.check_vies,no_check,end",0,Ok,OK,0
diff --git a/es_CO.csv b/es_CO.csv
deleted file mode 100644
index 5986e01..0000000
--- a/es_CO.csv
+++ /dev/null
@@ -1,131 +0,0 @@
-type,name,res_id,src,value,fuzzy
-error,party.address,0,You can not modify the party of an address!,No puede modificar el tercero de una dirección!,0
-error,party.category,0,The name of a party category must be unique by parent!,,0
-error,party.category,0,You can not create recursive categories!,No puede crear categorías recursivas!,0
-error,party.category,0,"You can not use "" / "" in name field!",,0
-error,party.check_vies,0,"The VIES service is unavailable, try again later.","El servicio VIES no está disponible, intente más tarde.",0
-error,party.contact_mechanism,0,You can not modify the party of a contact mechanism!,¡No puede modificar un tercero de un mecanismo de contacto!,0
-error,party.party,0,Invalid VAT number!,¡Número inválido!,0
-field,"party.address,active",0,Active,Activo,0
-field,"party.address,city",0,City,Ciudad,0
-field,"party.address,country",0,Country,País,0
-field,"party.address,full_address",0,,,0
-field,"party.address,name",0,Name,Nombre de Contacto,0
-field,"party.address,party",0,Party,Tercero,0
-field,"party.address,rec_name",0,Name,Nombre,0
-field,"party.address,sequence",0,Sequence,Secuencia,0
-field,"party.address,street",0,Street,Calle,0
-field,"party.address,streetbis",0,Street (bis),Calle (bis),0
-field,"party.address,subdivision",0,Subdivision,Subdivisión,0
-field,"party.address,zip",0,Zip,Código postal,0
-field,"party.category,active",0,Active,Activo,0
-field,"party.category,childs",0,Children,Hij at s,0
-field,"party.category,name",0,Name,Nombre,0
-field,"party.category,parent",0,Parent,Padre,0
-field,"party.category,rec_name",0,Name,Nombre,0
-field,"party.check_vies.check,parties_failed",0,Parties Failed,Los terceros fallaron,0
-field,"party.check_vies.check,parties_succeed",0,Parties Succeed,Terceros válidos,0
-field,"party.configuration,party_sequence",0,Party Reference Sequence,,0
-field,"party.configuration,rec_name",0,Name,Nombre de Contacto,1
-field,"party.contact_mechanism,active",0,Active,Activo,0
-field,"party.contact_mechanism,comment",0,Comment,Comentario,0
-field,"party.contact_mechanism,email",0,E-Mail,Correo electrónico,0
-field,"party.contact_mechanism,other_value",0,Value,Valor,0
-field,"party.contact_mechanism,party",0,Party,Tercero,0
-field,"party.contact_mechanism,rec_name",0,Name,Nombre,0
-field,"party.contact_mechanism,sequence",0,Sequence,Secuencia,0
-field,"party.contact_mechanism,sip",0,SIP,SIP,0
-field,"party.contact_mechanism,skype",0,Skype,Skype,0
-field,"party.contact_mechanism,type",0,Type,Tipo,0
-field,"party.contact_mechanism,value",0,Value,Valor,0
-field,"party.contact_mechanism,website",0,Website,Sitio Web,0
-field,"party.party,active",0,Active,Activo,0
-field,"party.party,addresses",0,Addresses,Direcciones,0
-field,"party.party,categories",0,Categories,Categorías,0
-field,"party.party,code",0,Code,Código,0
-field,"party.party,code_length",0,Code Length,Longitud del Código,0
-field,"party.party,contact_mechanisms",0,Contact Mechanisms,Mecanismos de contacto,0
-field,"party.party,email",0,E-Mail,Correo electrónico,0
-field,"party.party,fax",0,Fax,Fax,0
-field,"party.party,full_name",0,,,0
-field,"party.party,lang",0,Language,Idioma,0
-field,"party.party,mobile",0,Mobile,Celular,0
-field,"party.party,name",0,Name,Nombre,0
-field,"party.party-party.category,category",0,Category,Categoría,0
-field,"party.party-party.category,party",0,Party,Tercero,0
-field,"party.party-party.category,rec_name",0,Name,Nombre,0
-field,"party.party,phone",0,Phone,Teléfono,0
-field,"party.party,rec_name",0,Name,Nombre,0
-field,"party.party,vat_code",0,VAT Code,Código de IVA,0
-field,"party.party,vat_country",0,VAT Country,País,0
-field,"party.party,vat_number",0,VAT Number,Número,0
-field,"party.party,website",0,Website,Sitio Web,0
-help,"party.party,vat_country",0,Setting VAT country will enable validation of the VAT number.,Al especificar el país se habilitará la verificación del NIT.,0
-help,"party.party,vat_number",0,Value Added Tax number,Número de Impuesto de Valor Agregado,0
-model,"ir.action,name",act_address_form,Addresses,Direcciones,0
-model,"ir.action,name",act_address_form2,Addresses,Direcciones,0
-model,"ir.action,name",act_category_tree,Categories,Categorías,0
-model,"ir.action,name",act_category_form,Categories,Categorías,0
-model,"ir.action,name",act_category_form2,Categories,Categorías,0
-model,"ir.action,name",wizard_check_vies,Check VIES,Revisar VIES,0
-model,"ir.action,name",report_label,Labels,Etiquetas,0
-model,"ir.action,name",act_party_form,Parties,Terceros,0
-model,"ir.action,name",act_party_form2,Parties,Terceros,0
-model,"ir.action,name",act_party_by_category,Parties by Category,Terceros por Categoría,0
-model,"ir.action,name",act_party_configuration_form,Party Configuration,,0
-model,"ir.sequence,name",sequence_party,Party,Tercero,0
-model,"ir.sequence.type,name",sequence_type_party,Party,Tercero,0
-model,"ir.ui.menu,name",menu_address_form,Addresses,Direcciones,0
-model,"ir.ui.menu,name",menu_category_tree,Categories,Categorías,0
-model,"ir.ui.menu,name",menu_category_form,Categories,Categorías,0
-model,"ir.ui.menu,name",menu_configuration,Configuration,Configuración,0
-model,"ir.ui.menu,name",menu_address_form2,New Address,Nueva Dirección,0
-model,"ir.ui.menu,name",menu_category_form2,New category,Nueva Categoría,0
-model,"ir.ui.menu,name",menu_party_form2,New Party,Nuevo Tercero,0
-model,"ir.ui.menu,name",menu_party_form,Parties,Terceros,0
-model,"ir.ui.menu,name",menu_party_configuration,Party Configuration,,0
-model,"ir.ui.menu,name",menu_party,Party Management,Gestión de Terceros,0
-model,"party.address,name",0,Address,Dirección,0
-model,"party.category,name",0,Category,Categoría,0
-model,"party.check_vies.check,name",0,Check VIES - Check,Revisar VIES - Revisar,0
-model,"party.check_vies.no_check,name",0,Check VIES - No Check,Revisar VIES - NO revisar,0
-model,"party.configuration,name",0,party.configuration,,0
-model,"party.contact_mechanism,name",0,Contact Mechanism,Mecanismo de contacto,0
-model,"party.party,name",0,Party,Tercero,0
-model,"party.party-party.category,name",0,Party - Category,Tercero - Categoría,0
-model,"res.group,name",group_party_admin,Party Administration,Terceros,0
-selection,"party.contact_mechanism,type",0,E-Mail,Correo electrónico,0
-selection,"party.contact_mechanism,type",0,Fax,Fax,0
-selection,"party.contact_mechanism,type",0,IRC,Chat,0
-selection,"party.contact_mechanism,type",0,Jabber,Jabber,0
-selection,"party.contact_mechanism,type",0,Mobile,Celular,0
-selection,"party.contact_mechanism,type",0,Other,Otro,0
-selection,"party.contact_mechanism,type",0,Phone,Teléfono,0
-selection,"party.contact_mechanism,type",0,SIP,SIP,0
-selection,"party.contact_mechanism,type",0,Skype,Skype,0
-selection,"party.contact_mechanism,type",0,Website,Sitio Web,0
-selection,"party.party,vat_country",0,,,0
-view,party.address,0,Addresses,Direcciones,0
-view,party.category,0,Categories,Categorías,0
-view,party.category,0,Category,Categoría,0
-view,party.check_vies.check,0,Parties Failed,Los terceros fallaron,0
-view,party.check_vies.check,0,Parties Succeed,Los terceros fueron válidos,0
-view,party.check_vies.check,0,VAT Information Exchange System Results,Resultado de Sistema de Información de intercambio IVA,0
-view,party.check_vies.no_check,0,VAT Information Exchange System,Sistema de Información de Intercambio IVA,0
-view,party.check_vies.no_check,0,"You must have a recent version of ""vatnumber"" installed!","Debe tener una versión reciente de ""vatnumber"" instalada!",0
-view,party.configuration,0,Party Configuration,,0
-view,party.contact_mechanism,0,Contact Mechanism,Mecanismo de contacto,0
-view,party.contact_mechanism,0,Contact Mechanisms,Mecanismos de contacto,0
-view,party.party,0,Account,Cuenta,0
-view,party.party,0,Accounting,Contabilidad,0
-view,party.party,0,Addresses,Direcciones,0
-view,party.party,0,Categories,Categorías,0
-view,party.party,0,Contact Mechanism,Mecanismo de contacto,0
-view,party.party,0,Contact Mechanisms,Mecanismos de contacto,0
-view,party.party,0,General,General,0
-view,party.party,0,_General,_General,0
-view,party.party,0,Parties,Terceros,0
-view,party.party,0,Party,Tercero,0
-view,party.party,0,VAT,IVA,0
-wizard_button,"party.check_vies,check,end",0,Ok,Aceptar,0
-wizard_button,"party.check_vies,no_check,end",0,Ok,Aceptar,0
diff --git a/es_ES.csv b/es_ES.csv
deleted file mode 100644
index 1148d1d..0000000
--- a/es_ES.csv
+++ /dev/null
@@ -1,154 +0,0 @@
-type,name,res_id,src,value,fuzzy
-error,party.address,0,You can not modify the party of an address!,No puede modificar el tercero de una dirección,0
-error,party.category,0,You can not create recursive categories!,No puede crear categorías recursivas,0
-error,party.check_vies,0,"The VIES service is unavailable, try again later.","El servicio VIES no está disponible, inténtelo de nuevo más tarde",0
-error,party.contact_mechanism,0,You can not modify the party of a contact mechanism!,No puede modificar el tercero de un médio de contacto,0
-error,party.party,0,Invalid VAT number!,El NIF no es válido,0
-error,party.party,0,The code of the party must be unique!,El código del tercero debe ser único,0
-field,"party.address,active",0,Active,Activo,0
-field,"party.address,city",0,City,Ciudad,0
-field,"party.address,country",0,Country,País,0
-field,"party.address,full_address",0,,,0
-field,"party.address,name",0,Name,Contacto,0
-field,"party.address,party",0,Party,Tercero,0
-field,"party.address,rec_name",0,Name,Contacto,0
-field,"party.address,sequence",0,Sequence,Secuencia,0
-field,"party.address,street",0,Street,Calle,0
-field,"party.address,streetbis",0,Street (bis),Calle (bis),0
-field,"party.address,subdivision",0,Subdivision,Subdivisión,0
-field,"party.address,zip",0,Zip,Código postal,0
-field,"party.category,active",0,Active,Activo,0
-field,"party.category,childs",0,Children,Hijos,0
-field,"party.category,name",0,Name,Nombre,0
-field,"party.category,parent",0,Parent,Padre,0
-field,"party.category,rec_name",0,Name,Nombre,0
-field,"party.check_vies.check,parties_failed",0,Parties Failed,Terceros rechazados,0
-field,"party.check_vies.check,parties_succeed",0,Parties Succeed,Terceros aceptados,0
-field,"party.contact_mechanism,active",0,Active,Activo,0
-field,"party.contact_mechanism,comment",0,Comment,Comentario,0
-field,"party.contact_mechanism,email",0,E-Mail,Correo electrónico,0
-field,"party.contact_mechanism,other_value",0,Value,Valor,0
-field,"party.contact_mechanism,party",0,Party,Tercero,0
-field,"party.contact_mechanism,rec_name",0,Name,Nombre,0
-field,"party.contact_mechanism,sequence",0,Sequence,Secuencia,0
-field,"party.contact_mechanism,sip",0,SIP,SIP,0
-field,"party.contact_mechanism,skype",0,Skype,Skype,0
-field,"party.contact_mechanism,type",0,Type,Tipo,0
-field,"party.contact_mechanism,value",0,Value,Valor,0
-field,"party.contact_mechanism,website",0,Website,Sitio Web,0
-field,"party.party,active",0,Active,Activo,0
-field,"party.party,addresses",0,Addresses,Direcciones,0
-field,"party.party,categories",0,Categories,Categorías,0
-field,"party.party,code",0,Code,Código,0
-field,"party.party,code_length",0,Code Length,Dígitos del código,0
-field,"party.party,contact_mechanisms",0,Contact Mechanisms,Médios de contacto,0
-field,"party.party,email",0,E-Mail,Correo electrónico,0
-field,"party.party,fax",0,Fax,Fax,0
-field,"party.party,full_name",0,,,0
-field,"party.party,lang",0,Language,Idioma,0
-field,"party.party,mobile",0,Mobile,Móvil,0
-field,"party.party,name",0,Name,Nombre,0
-field,"party.party-party.category,category",0,Category,Categoría,0
-field,"party.party-party.category,party",0,Party,Tercero,0
-field,"party.party-party.category,rec_name",0,Name,Nombre,0
-field,"party.party,phone",0,Phone,Teléfono,0
-field,"party.party,rec_name",0,Name,Nombre,0
-field,"party.party,vat_code",0,VAT Code,NIF,0
-field,"party.party,vat_country",0,VAT Country,País del NIF,0
-field,"party.party,vat_number",0,VAT Number,NIF,0
-field,"party.party,website",0,Website,Sitio Web,0
-help,"party.party,vat_country",0,Setting VAT country will enable validation of the VAT number.,Al especificar el país del NIF se habilitará la verificación de dicho número.,0
-help,"party.party,vat_number",0,Value Added Tax number,Número de identificación fiscal,0
-model,"ir.action,name",act_address_form,Addresses,Direcciones,0
-model,"ir.action,name",act_address_form2,Addresses,Direcciones,0
-model,"ir.action,name",act_category_tree,Categories,Categorías,0
-model,"ir.action,name",act_category_form,Categories,Categorías,0
-model,"ir.action,name",act_category_form2,Categories,Categorías,0
-model,"ir.action,name",wizard_check_vies,Check VIES,Comprobar VIES,0
-model,"ir.action,name",report_label,Labels,Etiquetas,0
-model,"ir.action,name",act_party_form,Parties,Terceros,0
-model,"ir.action,name",act_party_form2,Parties,Terceros,0
-model,"ir.action,name",act_party_by_category,Parties by Category,Terceros por categoría,0
-model,"ir.sequence,name",sequence_party,Party,Tercero,0
-model,"ir.sequence.type,name",sequence_type_party,Party,Tercero,0
-model,"ir.ui.menu,name",menu_address_form,Addresses,Direcciones,0
-model,"ir.ui.menu,name",menu_category_tree,Categories,Categorías,0
-model,"ir.ui.menu,name",menu_category_form,Categories,Categorías,0
-model,"ir.ui.menu,name",menu_configuration,Configuration,Configuración,0
-model,"ir.ui.menu,name",menu_address_form2,New Address,Nueva dirección,0
-model,"ir.ui.menu,name",menu_category_form2,New category,Nueva categoría,0
-model,"ir.ui.menu,name",menu_party_form2,New Party,Nuevo tercero,0
-model,"ir.ui.menu,name",menu_party_form,Parties,Terceros,0
-model,"ir.ui.menu,name",menu_party,Party Management,Gestión de terceros,0
-model,"party.address,name",0,Address,Dirección,0
-model,"party.category,name",0,Category,Categoría,0
-model,"party.check_vies.check,name",0,Check VIES - Check,Comprobación VIES - Comprobar,0
-model,"party.check_vies.no_check,name",0,Check VIES - No Check,Comprobación VIES - No comprobar,0
-model,"party.contact_mechanism,name",0,Contact Mechanism,Médio de contacto,0
-model,"party.party,name",0,Party,Tercero,0
-model,"party.party-party.category,name",0,Party - Category,Tercero - Categoría,0
-model,"res.group,name",group_party_admin,Party Administration,Administración de terceros,0
-selection,"party.contact_mechanism,type",0,E-Mail,Correo electrónico,0
-selection,"party.contact_mechanism,type",0,Fax,Fax,0
-selection,"party.contact_mechanism,type",0,IRC,IRC,0
-selection,"party.contact_mechanism,type",0,Jabber,Jabber,0
-selection,"party.contact_mechanism,type",0,Mobile,Móvil,0
-selection,"party.contact_mechanism,type",0,Other,Otro,0
-selection,"party.contact_mechanism,type",0,Phone,Teléfono,0
-selection,"party.contact_mechanism,type",0,SIP,SIP,0
-selection,"party.contact_mechanism,type",0,Skype,Skype,0
-selection,"party.contact_mechanism,type",0,Website,Sitio Web,0
-selection,"party.party,vat_country",0,AL,AL,0
-selection,"party.party,vat_country",0,AT,AT,0
-selection,"party.party,vat_country",0,BE,BE,0
-selection,"party.party,vat_country",0,BG,BG,0
-selection,"party.party,vat_country",0,CY,CY,0
-selection,"party.party,vat_country",0,CZ,CZ,0
-selection,"party.party,vat_country",0,DE,DE,0
-selection,"party.party,vat_country",0,DK,DK,0
-selection,"party.party,vat_country",0,EE,EE,0
-selection,"party.party,vat_country",0,EL,EL,0
-selection,"party.party,vat_country",0,ES,ES,0
-selection,"party.party,vat_country",0,FI,FI,0
-selection,"party.party,vat_country",0,FR,FR,0
-selection,"party.party,vat_country",0,GB,GB,0
-selection,"party.party,vat_country",0,GR,GR,0
-selection,"party.party,vat_country",0,HU,HU,0
-selection,"party.party,vat_country",0,IE,IE,0
-selection,"party.party,vat_country",0,IT,IT,0
-selection,"party.party,vat_country",0,LT,LT,0
-selection,"party.party,vat_country",0,LU,LU,0
-selection,"party.party,vat_country",0,LV,LV,0
-selection,"party.party,vat_country",0,MT,MT,0
-selection,"party.party,vat_country",0,NL,NL,0
-selection,"party.party,vat_country",0,PL,PL,0
-selection,"party.party,vat_country",0,PT,PT,0
-selection,"party.party,vat_country",0,RO,RO,0
-selection,"party.party,vat_country",0,SE,SE,0
-selection,"party.party,vat_country",0,SI,SI,0
-selection,"party.party,vat_country",0,SK,SK,0
-selection,"party.party,vat_country",0,SM,SM,0
-selection,"party.party,vat_country",0,UA,UA,0
-selection,"party.party,vat_country",0,UK,UK,0
-view,party.address,0,Addresses,Direcciones,0
-view,party.category,0,Categories,Categorías,0
-view,party.category,0,Category,Categoría,0
-view,party.check_vies.check,0,Parties Failed,Terceros rechazados,0
-view,party.check_vies.check,0,Parties Succeed,Terceros aceptados,0
-view,party.check_vies.check,0,VAT Information Exchange System Results,Resultado del sistema de intercambio de información de IVA,0
-view,party.check_vies.no_check,0,VAT Information Exchange System,Sistema de intercambio de información de IVA,0
-view,party.check_vies.no_check,0,"You must have a recent version of ""vatnumber"" installed!",Necesita instalar una versión más actualizada de «vatnumber»,0
-view,party.contact_mechanism,0,Contact Mechanism,Médio de contacto,0
-view,party.contact_mechanism,0,Contact Mechanisms,Médios de contacto,0
-view,party.party,0,Account,Cuenta,0
-view,party.party,0,Accounting,Contabilidad,0
-view,party.party,0,Addresses,Direcciones,0
-view,party.party,0,Categories,Categorías,0
-view,party.party,0,Contact Mechanisms,Médios de contacto,0
-view,party.party,0,General,General,0
-view,party.party,0,_General,_General,0
-view,party.party,0,Parties,Terceros,0
-view,party.party,0,Party,Tercero,0
-view,party.party,0,VAT,NIF,0
-wizard_button,"party.check_vies,check,end",0,Ok,Aceptar,0
-wizard_button,"party.check_vies,no_check,end",0,Ok,Aceptar,0
diff --git a/fr_FR.csv b/fr_FR.csv
deleted file mode 100644
index ee5f9de..0000000
--- a/fr_FR.csv
+++ /dev/null
@@ -1,134 +0,0 @@
-type,name,res_id,src,value,fuzzy
-error,party.address,0,You can not modify the party of an address!,Vous ne pouvez pas modifier le tiers d'une addresse !,0
-error,party.category,0,The name of a party category must be unique by parent!,Le nom d'une catégorie de tiers doit être unique pour un même parent !,0
-error,party.category,0,You can not create recursive categories!,Vous ne pouvez pas créer des catégories récursives !,0
-error,party.category,0,"You can not use "" / "" in name field!","Vous ne pouvez pas utiliser "" / "" dans le champ Nom !",0
-error,party.check_vies,0,"The VIES service is unavailable, try again later.","Le service VIES n'est pas disponible, veuillez essayer plus tard.",0
-error,party.contact_mechanism,0,You can not modify the party of a contact mechanism!,Vous ne pouvez pas modifiez le tiers d'un moyen de contact.,0
-error,party.party,0,Invalid VAT number!,Numéro TVA non valide !,0
-error,party.party,0,The code of the party must be unique!,Le code du tiers doit être unique !,0
-field,"party.address,active",0,Active,Actif,0
-field,"party.address,city",0,City,Ville,0
-field,"party.address,country",0,Country,Pays,0
-field,"party.address,full_address",0,Full Address,Adresse complète,0
-field,"party.address,name",0,Name,Nom,0
-field,"party.address,party",0,Party,Tiers,0
-field,"party.address,rec_name",0,Name,Nom,0
-field,"party.address,sequence",0,Sequence,Séquence,0
-field,"party.address,street",0,Street,Rue,0
-field,"party.address,streetbis",0,Street (bis),Rue (bis),0
-field,"party.address,subdivision",0,Subdivision,Subdivision,0
-field,"party.address,zip",0,Zip,Code Postal,0
-field,"party.category,active",0,Active,Actif,0
-field,"party.category,childs",0,Children,Enfants,0
-field,"party.category,name",0,Name,Nom,0
-field,"party.category,parent",0,Parent,Parent,0
-field,"party.category,rec_name",0,Name,Nom,0
-field,"party.check_vies.check,parties_failed",0,Parties Failed,Tiers non validés,0
-field,"party.check_vies.check,parties_succeed",0,Parties Succeed,Tiers validés,0
-field,"party.configuration,party_lang",0,Party Language,Langue du tiers,1
-field,"party.configuration,party_sequence",0,Party Sequence,Séquence des tiers,0
-field,"party.configuration,rec_name",0,Name,Nom,0
-field,"party.contact_mechanism,active",0,Active,Actif,0
-field,"party.contact_mechanism,comment",0,Comment,Commentaire,0
-field,"party.contact_mechanism,email",0,E-Mail,E-mail,0
-field,"party.contact_mechanism,other_value",0,Value,Valeur,0
-field,"party.contact_mechanism,party",0,Party,Tiers,0
-field,"party.contact_mechanism,rec_name",0,Name,Nom,0
-field,"party.contact_mechanism,sequence",0,Sequence,Séquence,0
-field,"party.contact_mechanism,sip",0,SIP,SIP,0
-field,"party.contact_mechanism,skype",0,Skype,Skype,0
-field,"party.contact_mechanism,type",0,Type,Type,0
-field,"party.contact_mechanism,value",0,Value,Valeur,0
-field,"party.contact_mechanism,website",0,Website,Site web,0
-field,"party.party,active",0,Active,Actif,0
-field,"party.party,addresses",0,Addresses,Adresses,0
-field,"party.party,categories",0,Categories,Catégories,0
-field,"party.party,code",0,Code,Code,0
-field,"party.party,code_length",0,Code Length,Longueur du code,0
-field,"party.party,contact_mechanisms",0,Contact Mechanisms,Moyens de contact,0
-field,"party.party,email",0,E-Mail,E-Mail,0
-field,"party.party,fax",0,Fax,Fax,0
-field,"party.party,full_name",0,Full Name,Nom complet,0
-field,"party.party,lang",0,Language,Langue,0
-field,"party.party,mobile",0,Mobile,Mobile,0
-field,"party.party,name",0,Name,Nom,0
-field,"party.party,phone",0,Phone,Téléphone,0
-field,"party.party,rec_name",0,Name,Nom,0
-field,"party.party,vat_code",0,VAT Code,Code TVA,0
-field,"party.party,vat_country",0,VAT Country,Code Pays TVA,0
-field,"party.party,vat_number",0,VAT Number,Numéro de TVA,0
-field,"party.party,website",0,Website,Site web,0
-field,"party.party-party.category,category",0,Category,Catégorie,0
-field,"party.party-party.category,party",0,Party,Tiers,0
-field,"party.party-party.category,rec_name",0,Name,Nom,0
-help,"party.configuration,party_lang",0,The value set on this field will preset the language on new parties,La valeur de ce champs sera la valeur par défaut pour la langue des nouveaux tiers,0
-help,"party.party,vat_country",0,Setting VAT country will enable validation of the VAT number.,Ajouter un code pays TVA activera la vérification du numéro de TVA.,0
-help,"party.party,vat_number",0,Value Added Tax number,Numéro de taxe sur la valeur ajoutée,0
-model,"ir.action,name",act_address_form,Addresses,Adresses,0
-model,"ir.action,name",act_address_form2,Addresses,Adresses,0
-model,"ir.action,name",act_category_form,Categories,Catégories,0
-model,"ir.action,name",act_category_list,Categories,Catégories,1
-model,"ir.action,name",act_category_tree,Categories,Catégories,0
-model,"ir.action,name",act_party_by_category,Parties by Category,Tiers par catégorie,0
-model,"ir.action,name",act_party_configuration_form,Party Configuration,Configuration des relations,0
-model,"ir.action,name",act_party_form,Parties,Tiers,0
-model,"ir.action,name",act_party_form2,Parties,Tiers,0
-model,"ir.action,name",report_label,Labels,Étiquettes,0
-model,"ir.action,name",wizard_check_vies,Check VIES,Validation VIES,0
-model,"ir.sequence,name",sequence_party,Party,Tiers,0
-model,"ir.sequence.type,name",sequence_type_party,Party,Tiers,0
-model,"ir.ui.menu,name",menu_address_form,Addresses,Adresses,0
-model,"ir.ui.menu,name",menu_address_form2,New Address,Nouvelle adresse,0
-model,"ir.ui.menu,name",menu_category_form,New Category,Nouvelle catégorie,0
-model,"ir.ui.menu,name",menu_category_list,Categories,Catégories,1
-model,"ir.ui.menu,name",menu_category_tree,Categories,Catégories,0
-model,"ir.ui.menu,name",menu_configuration,Configuration,Configuration,0
-model,"ir.ui.menu,name",menu_party,Party Management,Gestion des relations,0
-model,"ir.ui.menu,name",menu_party_configuration,Party Configuration,Configuration des relations,0
-model,"ir.ui.menu,name",menu_party_form,Parties,Tiers,0
-model,"ir.ui.menu,name",menu_party_form2,New Party,Nouveau tiers,0
-model,"party.address,name",0,Address,Adresse,0
-model,"party.category,name",0,Category,Catégorie,0
-model,"party.check_vies.check,name",0,Check VIES - Check,Validation VIES - Validé,0
-model,"party.check_vies.no_check,name",0,Check VIES - No Check,Validation VIES - Non validé,0
-model,"party.configuration,name",0,Party Configuration,Configuration des relations,0
-model,"party.contact_mechanism,name",0,Contact Mechanism,Moyen de contact,0
-model,"party.party,name",0,Party,Tiers,0
-model,"party.party-party.category,name",0,Party - Category,Tiers - Catégorie,0
-model,"res.group,name",group_party_admin,Party Administration,Administration des tiers,0
-selection,"party.contact_mechanism,type",0,E-Mail,E-Mail,0
-selection,"party.contact_mechanism,type",0,Fax,Fax,0
-selection,"party.contact_mechanism,type",0,IRC,IRC,0
-selection,"party.contact_mechanism,type",0,Jabber,Jabber,0
-selection,"party.contact_mechanism,type",0,Mobile,Mobile,0
-selection,"party.contact_mechanism,type",0,Other,Autre,0
-selection,"party.contact_mechanism,type",0,Phone,Téléphone,0
-selection,"party.contact_mechanism,type",0,SIP,SIP,0
-selection,"party.contact_mechanism,type",0,Skype,Skype,0
-selection,"party.contact_mechanism,type",0,Website,Site web,0
-selection,"party.party,vat_country",0,,,0
-view,party.address,0,Addresses,Adresses,0
-view,party.category,0,Categories,Catégories,0
-view,party.category,0,Category,Catégorie,0
-view,party.check_vies.check,0,Parties Failed,Tiers non validés,0
-view,party.check_vies.check,0,Parties Succeed,Tiers validés,0
-view,party.check_vies.check,0,VAT Information Exchange System Results,Système d'échange d'information TVA - Résultats,0
-view,party.check_vies.no_check,0,VAT Information Exchange System,Système d'échange d'information TVA,0
-view,party.check_vies.no_check,0,"You must have a recent version of ""vatnumber"" installed!","Vous devez avoir une version récente de ""vatnumber"" installée !",0
-view,party.configuration,0,Party Configuration,Configuration des relations,0
-view,party.contact_mechanism,0,Contact Mechanism,Moyen de contact,0
-view,party.contact_mechanism,0,Contact Mechanisms,Moyens de contact,0
-view,party.party,0,Accounting,Comptabilité,0
-view,party.party,0,Addresses,Adresses,0
-view,party.party,0,Categories,Catégories,0
-view,party.party,0,Contact Mechanisms,Moyens de contact,0
-view,party.party,0,General,Général,0
-view,party.party,0,Parties,Tiers,0
-view,party.party,0,Party,Tiers,0
-view,party.party,0,Properties,Propriétés,0
-view,party.party,0,VAT,TVA,0
-view,party.party,0,_Accounting,Compt_abilité,0
-view,party.party,0,_General,_Général,0
-wizard_button,"party.check_vies,check,end",0,Ok,Ok,0
-wizard_button,"party.check_vies,no_check,end",0,Ok,Ok,0
diff --git a/icons/__init__.py b/icons/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/icons/tryton-party.svg b/icons/tryton-party.svg
new file mode 100644
index 0000000..7d628b8
--- /dev/null
+++ b/icons/tryton-party.svg
@@ -0,0 +1,539 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48px"
+   height="48px"
+   id="svg2108"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/apps"
+   sodipodi:docname="system-users.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective72" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4356">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop4358" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop4360" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4344">
+      <stop
+         style="stop-color:#727e0a;stop-opacity:1;"
+         offset="0"
+         id="stop4346" />
+      <stop
+         style="stop-color:#5b6508;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop4348" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4338">
+      <stop
+         id="stop4340"
+         offset="0.0000000"
+         style="stop-color:#e9b15e;stop-opacity:1.0000000;" />
+      <stop
+         id="stop4342"
+         offset="1.0000000"
+         style="stop-color:#966416;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4163">
+      <stop
+         style="stop-color:#3b74bc;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop4165" />
+      <stop
+         style="stop-color:#2d5990;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop4167" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3824">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop3826" />
+      <stop
+         style="stop-color:#c9c9c9;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3828" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3816">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop3818" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop3820" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3800">
+      <stop
+         style="stop-color:#f4d9b1;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop3802" />
+      <stop
+         style="stop-color:#df9725;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3804" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3800"
+       id="radialGradient3806"
+       cx="29.344931"
+       cy="17.064077"
+       fx="29.344931"
+       fy="17.064077"
+       r="9.1620579"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3816"
+       id="radialGradient3822"
+       cx="31.112698"
+       cy="19.008621"
+       fx="31.112698"
+       fy="19.008621"
+       r="8.6620579"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3824"
+       id="linearGradient3830"
+       x1="30.935921"
+       y1="29.553486"
+       x2="30.935921"
+       y2="35.803486"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4163"
+       id="radialGradient4169"
+       cx="28.089741"
+       cy="27.203083"
+       fx="28.089741"
+       fy="27.203083"
+       r="13.565360"
+       gradientTransform="matrix(1.297564,2.881172e-16,-1.964720e-16,0.884831,-8.358505,4.940469)"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3800"
+       id="radialGradient4171"
+       gradientUnits="userSpaceOnUse"
+       cx="29.344931"
+       cy="17.064077"
+       fx="29.344931"
+       fy="17.064077"
+       r="9.1620579"
+       gradientTransform="matrix(0.787998,3.877637e-16,-3.877637e-16,0.787998,6.221198,3.617627)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3824"
+       id="linearGradient4175"
+       gradientUnits="userSpaceOnUse"
+       x1="30.935921"
+       y1="29.553486"
+       x2="30.935921"
+       y2="35.803486"
+       gradientTransform="translate(0.707108,0.000000)" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3816"
+       id="radialGradient4179"
+       gradientUnits="userSpaceOnUse"
+       cx="31.112698"
+       cy="19.008621"
+       fx="31.112698"
+       fy="19.008621"
+       r="8.6620579" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3824"
+       id="linearGradient4326"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-12.41789,-7.000000)"
+       x1="30.935921"
+       y1="29.553486"
+       x2="30.935921"
+       y2="35.803486" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4338"
+       id="radialGradient4328"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.787998,3.877637e-16,-3.877637e-16,0.787998,6.221198,3.617627)"
+       cx="29.344931"
+       cy="17.064077"
+       fx="29.344931"
+       fy="17.064077"
+       r="9.1620579" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3816"
+       id="radialGradient4330"
+       gradientUnits="userSpaceOnUse"
+       cx="31.112698"
+       cy="19.008621"
+       fx="31.112698"
+       fy="19.008621"
+       r="8.6620579" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3824"
+       id="linearGradient4332"
+       gradientUnits="userSpaceOnUse"
+       x1="30.935921"
+       y1="29.553486"
+       x2="30.935921"
+       y2="35.803486"
+       gradientTransform="translate(-13.12500,-7.000000)" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3816"
+       id="radialGradient4336"
+       gradientUnits="userSpaceOnUse"
+       cx="31.112698"
+       cy="19.008621"
+       fx="31.112698"
+       fy="19.008621"
+       r="8.6620579" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4344"
+       id="radialGradient4350"
+       cx="16.214741"
+       cy="19.836468"
+       fx="16.214741"
+       fy="19.836468"
+       r="13.565360"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.681917,0.000000,8.233773)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4356"
+       id="linearGradient4362"
+       x1="20.661695"
+       y1="35.817974"
+       x2="22.626925"
+       y2="36.217758"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.983375,0.181588,-0.181588,0.983375,6.231716,-2.651466)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4356"
+       id="linearGradient4366"
+       gradientUnits="userSpaceOnUse"
+       x1="22.686766"
+       y1="36.390400"
+       x2="21.408455"
+       y2="35.739632"
+       gradientTransform="matrix(-0.977685,0.210075,0.210075,0.977685,55.10960,-3.945209)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4356"
+       id="linearGradient4372"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.983375,0.181588,-0.181588,0.983375,-7.072120,-9.824920)"
+       x1="20.661695"
+       y1="35.817974"
+       x2="22.626925"
+       y2="36.217758" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4356"
+       id="linearGradient4374"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.977685,0.210075,0.210075,0.977685,41.80576,-11.11866)"
+       x1="22.686766"
+       y1="36.390400"
+       x2="21.408455"
+       y2="35.739632" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4356"
+       id="linearGradient1366"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.977685,0.210075,0.210075,0.977685,41.80576,-11.11866)"
+       x1="22.686766"
+       y1="36.390400"
+       x2="21.408455"
+       y2="35.739632" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4356"
+       id="linearGradient1369"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.983375,0.181588,-0.181588,0.983375,-7.072120,-9.824920)"
+       x1="20.661695"
+       y1="35.817974"
+       x2="22.626925"
+       y2="36.217758" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3824"
+       id="linearGradient1372"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-12.41789,-7.000000)"
+       x1="30.935921"
+       y1="29.553486"
+       x2="30.935921"
+       y2="35.803486" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4344"
+       id="radialGradient1381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.681917,0.000000,8.233773)"
+       cx="16.214741"
+       cy="19.836468"
+       fx="16.214741"
+       fy="19.836468"
+       r="13.565360" />
+  </defs>
+  <sodipodi:namedview
+     inkscape:showpageshadow="false"
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="-130.79856"
+     inkscape:cy="13.86274"
+     inkscape:current-layer="layer2"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     fill="#9db029"
+     stroke="#727e0a"
+     inkscape:window-width="872"
+     inkscape:window-height="815"
+     inkscape:window-x="265"
+     inkscape:window-y="33" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>People</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://jimmac.musichall.cz</dc:source>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>users</rdf:li>
+            <rdf:li>people</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="cipek"
+     inkscape:groupmode="layer"
+     style="display:inline">
+    <path
+       transform="matrix(1.775510,0.000000,0.000000,0.959183,-37.37822,11.77153)"
+       sodipodi:type="arc"
+       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient4336);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       id="path4177"
+       sodipodi:cx="31.112698"
+       sodipodi:cy="19.008621"
+       sodipodi:rx="8.6620579"
+       sodipodi:ry="8.6620579"
+       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z" />
+    <path
+       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient1381);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#404604;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       d="M 12.861174,34.636039 L 23.467776,34.636039 C 26.472980,34.636039 29.448260,33.534107 30.538843,30.393398 C 31.574482,27.410922 30.715620,21.731340 23.998106,17.135146 L 11.446960,17.135146 C 4.7294460,21.377786 3.8899690,27.179977 5.4365530,30.570174 C 7.0121480,34.023964 9.6791930,34.636039 12.861174,34.636039 z "
+       id="path2329"
+       sodipodi:nodetypes="cczcczc" />
+    <path
+       sodipodi:nodetypes="cccc"
+       id="path3812"
+       d="M 17.932367,19.786797 C 17.932367,19.786797 15.781044,21.447132 15.966376,23.447330 C 13.925150,21.646536 13.866503,18.195806 13.866503,18.195806 L 17.932367,19.786797 z "
+       style="opacity:1.0000000;color:#000000;fill:#9db029;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cczcczc"
+       id="path3838"
+       d="M 12.966639,33.571836 L 23.283309,33.571836 C 25.923032,33.571836 28.536470,32.603917 29.494421,29.845169 C 30.404110,27.225409 29.399699,22.236555 23.499142,18.199332 L 11.974417,18.199332 C 6.0738600,21.925999 5.0864770,27.022551 6.4449710,30.000446 C 7.8289490,33.034200 10.171638,33.571836 12.966639,33.571836 z "
+       style="opacity:0.21518983;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99999976px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:1.0000000;color:#000000;fill:#9db029;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       d="M 18.910795,19.786797 C 18.910795,19.786797 21.062118,21.447132 20.876786,23.447330 C 22.918012,21.646536 22.976659,18.195806 22.976659,18.195806 L 18.910795,19.786797 z "
+       id="path3810"
+       sodipodi:nodetypes="cccc" />
+    <path
+       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z"
+       sodipodi:ry="8.6620579"
+       sodipodi:rx="8.6620579"
+       sodipodi:cy="19.008621"
+       sodipodi:cx="31.112698"
+       id="path3814"
+       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient4330);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc"
+       transform="translate(-13.25000,-3.500000)" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient4328);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#6f4709;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       id="path2327"
+       sodipodi:cx="31.112698"
+       sodipodi:cy="19.008621"
+       sodipodi:rx="8.6620579"
+       sodipodi:ry="8.6620579"
+       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z"
+       transform="translate(-13.12500,-7.000000)" />
+    <path
+       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z"
+       sodipodi:ry="8.6620579"
+       sodipodi:rx="8.6620579"
+       sodipodi:cy="19.008621"
+       sodipodi:cx="31.112698"
+       id="path3834"
+       style="opacity:0.12658228;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.1401283px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc"
+       transform="matrix(0.877095,0.000000,0.000000,0.877095,-9.301073,-4.663733)" />
+    <path
+       style="opacity:1.0000000;color:#000000;fill:url(#linearGradient1372);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       d="M 22.583894,27.034641 L 26.826534,27.034641 L 24.351661,24.736544 L 23.821331,25.443651 L 23.291000,24.913321 L 22.583894,27.034641 z "
+       id="path4173" />
+    <path
+       style="opacity:0.22784807;color:#000000;fill:url(#linearGradient1369);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       d="M 8.5479535,33.601747 C 7.3003465,33.056778 6.7419595,31.743470 6.7419595,31.743470 C 7.5832405,27.674334 10.461885,24.697254 10.461885,24.697254 C 10.461885,24.697254 8.1825635,31.108768 8.5479535,33.601747 z "
+       id="path4368"
+       sodipodi:nodetypes="cccc" />
+    <path
+       sodipodi:nodetypes="cccc"
+       id="path4370"
+       d="M 27.453661,32.743396 C 28.684912,32.162418 29.258041,30.741075 29.258041,30.741075 C 28.298921,26.698092 25.281892,23.898254 25.281892,23.898254 C 25.281892,23.898254 27.746485,30.240856 27.453661,32.743396 z "
+       style="opacity:0.22784807;color:#000000;fill:url(#linearGradient1366);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="dalsi cipek"
+     style="display:inline">
+    <path
+       transform="matrix(1.77551,0,0,0.583984,-24.25322,28.27856)"
+       sodipodi:type="arc"
+       style="opacity:1;color:black;fill:url(#radialGradient4179);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path4306"
+       sodipodi:cx="31.112698"
+       sodipodi:cy="19.008621"
+       sodipodi:rx="8.6620579"
+       sodipodi:ry="8.6620579"
+       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.45064,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z" />
+    <path
+       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient4169);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#204a87;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       d="M 25.986174,41.636039 L 36.592776,41.636039 C 39.597980,41.636039 42.573260,40.534107 43.663843,37.393398 C 44.699482,34.410922 43.840620,28.731340 37.123106,24.135146 L 24.571960,24.135146 C 17.854446,28.377786 17.014969,34.179977 18.561553,37.570174 C 20.137148,41.023964 22.804193,41.636039 25.986174,41.636039 z "
+       id="path4308"
+       sodipodi:nodetypes="cczcczc" />
+    <path
+       style="opacity:1.0000000;color:#000000;fill:url(#linearGradient3830);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       d="M 26.693281,25.726136 C 29.875261,28.554563 31.289475,38.807612 31.289475,38.807612 C 31.289475,38.807612 32.703688,28.554564 35.178562,25.549360 L 26.693281,25.726136 z "
+       id="path4310"
+       sodipodi:nodetypes="cccc" />
+    <path
+       sodipodi:nodetypes="cccc"
+       id="path4312"
+       d="M 28.972721,26.786797 C 28.972721,26.786797 26.821398,28.447132 27.006730,30.447330 C 24.965504,28.646536 24.906857,25.195806 24.906857,25.195806 L 28.972721,26.786797 z "
+       style="opacity:1.0000000;color:#000000;fill:#729fcf;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cczcczc"
+       id="path4314"
+       d="M 25.914862,40.593933 L 36.408309,40.571836 C 39.048032,40.571836 41.661470,39.603917 42.619421,36.845169 C 43.529110,34.225409 42.524699,29.236555 36.624142,25.199332 L 25.099417,24.956264 C 19.198860,28.682931 18.056797,33.779483 19.437388,37.000446 C 20.817980,40.221409 22.832599,40.571836 25.914862,40.593933 z "
+       style="opacity:0.21518983;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99999976px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:1.0000000;color:#000000;fill:#729fcf;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       d="M 33.410795,26.786797 C 33.410795,26.786797 35.562118,28.447132 35.376786,30.447330 C 37.418012,28.646536 37.476659,25.195806 37.476659,25.195806 L 33.410795,26.786797 z "
+       id="path4316"
+       sodipodi:nodetypes="cccc" />
+    <path
+       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z"
+       sodipodi:ry="8.6620579"
+       sodipodi:rx="8.6620579"
+       sodipodi:cy="19.008621"
+       sodipodi:cx="31.112698"
+       id="path4318"
+       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient3822);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc"
+       transform="translate(-0.125000,3.500000)" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient4171);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#c17d11;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       id="path4320"
+       sodipodi:cx="31.112698"
+       sodipodi:cy="19.008621"
+       sodipodi:rx="8.6620579"
+       sodipodi:ry="8.6620579"
+       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z" />
+    <path
+       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z"
+       sodipodi:ry="8.6620579"
+       sodipodi:rx="8.6620579"
+       sodipodi:cy="19.008621"
+       sodipodi:cx="31.112698"
+       id="path4322"
+       style="opacity:0.19620253;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.1401283px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc"
+       transform="matrix(0.877095,0.000000,0.000000,0.877095,3.823927,2.336267)" />
+    <path
+       style="opacity:0.22784807;color:#000000;fill:url(#linearGradient4362);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       d="M 21.851790,40.775197 C 20.604183,40.230228 20.045796,38.916920 20.045796,38.916920 C 20.887077,34.847784 23.765721,31.870704 23.765721,31.870704 C 23.765721,31.870704 21.486400,38.282218 21.851790,40.775197 z "
+       id="path4354"
+       sodipodi:nodetypes="cccc" />
+    <path
+       sodipodi:nodetypes="cccc"
+       id="path4364"
+       d="M 40.757497,39.916846 C 41.988748,39.335868 42.561877,37.914525 42.561877,37.914525 C 41.602757,33.871542 38.585728,31.071704 38.585728,31.071704 C 38.585728,31.071704 41.050321,37.414306 40.757497,39.916846 z "
+       style="opacity:0.22784807;color:#000000;fill:url(#linearGradient4366);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+  </g>
+</svg>
diff --git a/locale/bg_BG.po b/locale/bg_BG.po
new file mode 100644
index 0000000..81826ec
--- /dev/null
+++ b/locale/bg_BG.po
@@ -0,0 +1,498 @@
+# 
+msgid ""
+msgstr "Content-Type: text/plain; charset=utf-8\n"
+
+msgctxt "error:party.address:0"
+msgid "You can not modify the party of an address!"
+msgstr "Не може да променяте партньора за адрес!"
+
+msgctxt "error:party.category:0"
+msgid "The name of a party category must be unique by parent!"
+msgstr "Името на категорията на партньора трябва да бъде уникална по родител!"
+
+msgctxt "error:party.category:0"
+msgid "You can not create recursive categories!"
+msgstr "Не може да създавате взаимно вложени категории!"
+
+msgctxt "error:party.category:0"
+msgid "You can not use \" / \" in name field!"
+msgstr "В името на полето не може да има \" / \"!"
+
+msgctxt "error:party.check_vies:0"
+msgid "The VIES service is unavailable, try again later."
+msgstr "VIES услугата е недостъпна, опитайте отново по-късно."
+
+msgctxt "error:party.contact_mechanism:0"
+msgid "You can not modify the party of a contact mechanism!"
+msgstr "Не може да променяте партньора за начин на контакт!"
+
+msgctxt "error:party.party:0"
+msgid "Invalid VAT number!"
+msgstr "Невалиден ДДС номер!"
+
+msgctxt "error:party.party:0"
+msgid "The code of the party must be unique!"
+msgstr "Кода на партньора трябва да е уникален!"
+
+msgctxt "field:party.address,active:0"
+msgid "Active"
+msgstr "Активен"
+
+msgctxt "field:party.address,city:0"
+msgid "City"
+msgstr "Град"
+
+msgctxt "field:party.address,country:0"
+msgid "Country"
+msgstr "Държава"
+
+msgctxt "field:party.address,full_address:0"
+msgid "Full Address"
+msgstr "Пълен адрес"
+
+msgctxt "field:party.address,name:0"
+msgid "Name"
+msgstr "Име"
+
+msgctxt "field:party.address,party:0"
+msgid "Party"
+msgstr "Партньор"
+
+msgctxt "field:party.address,rec_name:0"
+msgid "Name"
+msgstr "Име"
+
+msgctxt "field:party.address,sequence:0"
+msgid "Sequence"
+msgstr "Последователност"
+
+msgctxt "field:party.address,street:0"
+msgid "Street"
+msgstr "Улица"
+
+msgctxt "field:party.address,streetbis:0"
+msgid "Street (bis)"
+msgstr "Улица 2"
+
+msgctxt "field:party.address,subdivision:0"
+msgid "Subdivision"
+msgstr "Подразделение"
+
+msgctxt "field:party.address,zip:0"
+msgid "Zip"
+msgstr "Пощ. код"
+
+msgctxt "field:party.category,active:0"
+msgid "Active"
+msgstr "Активен"
+
+msgctxt "field:party.category,childs:0"
+msgid "Children"
+msgstr "Деца"
+
+msgctxt "field:party.category,name:0"
+msgid "Name"
+msgstr "Име"
+
+msgctxt "field:party.category,parent:0"
+msgid "Parent"
+msgstr "Родител"
+
+msgctxt "field:party.category,rec_name:0"
+msgid "Name"
+msgstr "Име"
+
+msgctxt "field:party.check_vies.check,parties_failed:0"
+msgid "Parties Failed"
+msgstr "Партньора не е валиден"
+
+msgctxt "field:party.check_vies.check,parties_succeed:0"
+msgid "Parties Succeed"
+msgstr "Валиден партньор"
+
+msgctxt "field:party.configuration,party_lang:0"
+msgid "Party Language"
+msgstr "Език на партньор"
+
+msgctxt "field:party.configuration,party_sequence:0"
+msgid "Party Sequence"
+msgstr "Последователност за партньор"
+
+msgctxt "field:party.configuration,rec_name:0"
+msgid "Name"
+msgstr "Име"
+
+msgctxt "field:party.contact_mechanism,active:0"
+msgid "Active"
+msgstr "Активен"
+
+msgctxt "field:party.contact_mechanism,comment:0"
+msgid "Comment"
+msgstr "Коментар"
+
+msgctxt "field:party.contact_mechanism,email:0"
+msgid "E-Mail"
+msgstr "E-Mail"
+
+msgctxt "field:party.contact_mechanism,other_value:0"
+msgid "Value"
+msgstr "Стойност"
+
+msgctxt "field:party.contact_mechanism,party:0"
+msgid "Party"
+msgstr "Партньор"
+
+msgctxt "field:party.contact_mechanism,rec_name:0"
+msgid "Name"
+msgstr "Име"
+
+msgctxt "field:party.contact_mechanism,sequence:0"
+msgid "Sequence"
+msgstr "Последователност"
+
+msgctxt "field:party.contact_mechanism,sip:0"
+msgid "SIP"
+msgstr "SIP"
+
+msgctxt "field:party.contact_mechanism,skype:0"
+msgid "Skype"
+msgstr "Skype"
+
+msgctxt "field:party.contact_mechanism,type:0"
+msgid "Type"
+msgstr "Вид"
+
+msgctxt "field:party.contact_mechanism,value:0"
+msgid "Value"
+msgstr "Стойност"
+
+msgctxt "field:party.contact_mechanism,website:0"
+msgid "Website"
+msgstr "Website"
+
+msgctxt "field:party.party,active:0"
+msgid "Active"
+msgstr "Активен"
+
+msgctxt "field:party.party,addresses:0"
+msgid "Addresses"
+msgstr "Адреси"
+
+msgctxt "field:party.party,categories:0"
+msgid "Categories"
+msgstr "Категории"
+
+msgctxt "field:party.party,code:0"
+msgid "Code"
+msgstr "Код"
+
+msgctxt "field:party.party,code_length:0"
+msgid "Code Length"
+msgstr "Дължина на кода"
+
+msgctxt "field:party.party,contact_mechanisms:0"
+msgid "Contact Mechanisms"
+msgstr "Начини на контакт"
+
+msgctxt "field:party.party,email:0"
+msgid "E-Mail"
+msgstr "E-Mail"
+
+msgctxt "field:party.party,fax:0"
+msgid "Fax"
+msgstr "Факс"
+
+msgctxt "field:party.party,full_name:0"
+msgid "Full Name"
+msgstr "Пълно име"
+
+msgctxt "field:party.party,lang:0"
+msgid "Language"
+msgstr "Език"
+
+msgctxt "field:party.party,mobile:0"
+msgid "Mobile"
+msgstr "Мобилен"
+
+msgctxt "field:party.party,name:0"
+msgid "Name"
+msgstr "Име"
+
+msgctxt "field:party.party,phone:0"
+msgid "Phone"
+msgstr "Телефон"
+
+msgctxt "field:party.party,rec_name:0"
+msgid "Name"
+msgstr "Име"
+
+msgctxt "field:party.party,vat_code:0"
+msgid "VAT Code"
+msgstr "ДДС код"
+
+msgctxt "field:party.party,vat_country:0"
+msgid "VAT Country"
+msgstr "ДДС държава"
+
+msgctxt "field:party.party,vat_number:0"
+msgid "VAT Number"
+msgstr "ДДС номер"
+
+msgctxt "field:party.party,website:0"
+msgid "Website"
+msgstr "Website"
+
+msgctxt "field:party.party-party.category,category:0"
+msgid "Category"
+msgstr "Категория"
+
+msgctxt "field:party.party-party.category,party:0"
+msgid "Party"
+msgstr "Партньор"
+
+msgctxt "field:party.party-party.category,rec_name:0"
+msgid "Name"
+msgstr "Име"
+
+msgctxt "help:party.configuration,party_lang:0"
+msgid "The value set on this field will preset the language on new parties"
+msgstr "Стойността в това поле ще се използва за език при нови партньори."
+
+msgctxt "help:party.party,vat_country:0"
+msgid "Setting VAT country will enable validation of the VAT number."
+msgstr "Оказвайки държава за ДДС ще позволи да се провери ДДС номера."
+
+msgctxt "help:party.party,vat_number:0"
+msgid "Value Added Tax number"
+msgstr "ДДС номер"
+
+msgctxt "model:ir.action,name:act_address_form"
+msgid "Addresses"
+msgstr "Адреси"
+
+#, fuzzy
+msgctxt "model:ir.action,name:act_category_list"
+msgid "Categories"
+msgstr "Категории"
+
+msgctxt "model:ir.action,name:act_category_tree"
+msgid "Categories"
+msgstr "Категории"
+
+msgctxt "model:ir.action,name:act_party_by_category"
+msgid "Parties by Category"
+msgstr "Патньори по категория"
+
+msgctxt "model:ir.action,name:act_party_configuration_form"
+msgid "Party Configuration"
+msgstr "Конфигуриране на партньор"
+
+msgctxt "model:ir.action,name:act_party_form"
+msgid "Parties"
+msgstr "Партньори"
+
+msgctxt "model:ir.action,name:report_label"
+msgid "Labels"
+msgstr "Етикети"
+
+msgctxt "model:ir.action,name:wizard_check_vies"
+msgid "Check VIES"
+msgstr "Провека в VIES"
+
+msgctxt "model:ir.sequence,name:sequence_party"
+msgid "Party"
+msgstr "Партньор"
+
+msgctxt "model:ir.sequence.type,name:sequence_type_party"
+msgid "Party"
+msgstr "Партньор"
+
+msgctxt "model:ir.ui.menu,name:menu_address_form"
+msgid "Addresses"
+msgstr "Адреси"
+
+#, fuzzy
+msgctxt "model:ir.ui.menu,name:menu_category_list"
+msgid "Categories"
+msgstr "Категории"
+
+msgctxt "model:ir.ui.menu,name:menu_category_tree"
+msgid "Categories"
+msgstr "Категории"
+
+msgctxt "model:ir.ui.menu,name:menu_configuration"
+msgid "Configuration"
+msgstr "Конфигурация"
+
+#, fuzzy
+msgctxt "model:ir.ui.menu,name:menu_party"
+msgid "Party"
+msgstr "Управление на партньор"
+
+msgctxt "model:ir.ui.menu,name:menu_party_configuration"
+msgid "Party Configuration"
+msgstr "Конфигуриране на партньор"
+
+msgctxt "model:ir.ui.menu,name:menu_party_form"
+msgid "Parties"
+msgstr "Партньори"
+
+msgctxt "model:party.address,name:0"
+msgid "Address"
+msgstr "Адрес"
+
+msgctxt "model:party.category,name:0"
+msgid "Category"
+msgstr "Категория"
+
+msgctxt "model:party.check_vies.check,name:0"
+msgid "Check VIES - Check"
+msgstr "Проверка ДДС номер (VIES) - проверка"
+
+msgctxt "model:party.check_vies.no_check,name:0"
+msgid "Check VIES - No Check"
+msgstr "Проверка ДДС номер (VIES) - без проверка"
+
+msgctxt "model:party.configuration,name:0"
+msgid "Party Configuration"
+msgstr "Конфигуриране на партньор"
+
+msgctxt "model:party.contact_mechanism,name:0"
+msgid "Contact Mechanism"
+msgstr "Начин на контакт"
+
+msgctxt "model:party.party,name:0"
+msgid "Party"
+msgstr "Партньор"
+
+msgctxt "model:party.party-party.category,name:0"
+msgid "Party - Category"
+msgstr "Партньор - Категория"
+
+msgctxt "model:res.group,name:group_party_admin"
+msgid "Party Administration"
+msgstr "Управление на партньор"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "E-Mail"
+msgstr "E-Mail"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Fax"
+msgstr "Факс"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "IRC"
+msgstr "IRC"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Jabber"
+msgstr "Jabber"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Mobile"
+msgstr "Мобилен"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Other"
+msgstr "Друг"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Phone"
+msgstr "Телефон"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "SIP"
+msgstr "SIP"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Skype"
+msgstr "Skype"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Website"
+msgstr "Website"
+
+msgctxt "view:party.address:0"
+msgid "Addresses"
+msgstr "Адреси"
+
+msgctxt "view:party.category:0"
+msgid "Categories"
+msgstr "Категории"
+
+msgctxt "view:party.category:0"
+msgid "Category"
+msgstr "Категория"
+
+msgctxt "view:party.check_vies.check:0"
+msgid "Parties Failed"
+msgstr "Партньора не е валиден"
+
+msgctxt "view:party.check_vies.check:0"
+msgid "Parties Succeed"
+msgstr "Валиден партньор"
+
+msgctxt "view:party.check_vies.check:0"
+msgid "VAT Information Exchange System Results"
+msgstr "Резултати от Система за обмен на инфиормация за ДДС"
+
+msgctxt "view:party.check_vies.no_check:0"
+msgid "VAT Information Exchange System"
+msgstr "Система за обмен на ДДС информация"
+
+msgctxt "view:party.check_vies.no_check:0"
+msgid "You must have a recent version of \"vatnumber\" installed!"
+msgstr "Трябва да имате инсталирана последната версия на \"vatnumber\"!"
+
+msgctxt "view:party.configuration:0"
+msgid "Party Configuration"
+msgstr "Конфигуриране на партньор"
+
+msgctxt "view:party.contact_mechanism:0"
+msgid "Contact Mechanism"
+msgstr "Начин на контакт"
+
+msgctxt "view:party.contact_mechanism:0"
+msgid "Contact Mechanisms"
+msgstr "Начини на контакт"
+
+msgctxt "view:party.party:0"
+msgid "Accounting"
+msgstr "Счетоводство"
+
+msgctxt "view:party.party:0"
+msgid "Addresses"
+msgstr "Адреси"
+
+msgctxt "view:party.party:0"
+msgid "Categories"
+msgstr "Категории"
+
+msgctxt "view:party.party:0"
+msgid "Contact Mechanisms"
+msgstr "Начини на контакт"
+
+msgctxt "view:party.party:0"
+msgid "General"
+msgstr "Основен"
+
+msgctxt "view:party.party:0"
+msgid "Parties"
+msgstr "Партньори"
+
+msgctxt "view:party.party:0"
+msgid "Party"
+msgstr "Партньор"
+
+msgctxt "view:party.party:0"
+msgid "VAT"
+msgstr "ДДС"
+
+msgctxt "wizard_button:party.check_vies,check,end:0"
+msgid "Ok"
+msgstr "Добре"
+
+msgctxt "wizard_button:party.check_vies,no_check,end:0"
+msgid "Ok"
+msgstr "Добре"
diff --git a/locale/cs_CZ.po b/locale/cs_CZ.po
new file mode 100644
index 0000000..1f484b6
--- /dev/null
+++ b/locale/cs_CZ.po
@@ -0,0 +1,495 @@
+# 
+msgid ""
+msgstr "Content-Type: text/plain; charset=utf-8\n"
+
+msgctxt "error:party.address:0"
+msgid "You can not modify the party of an address!"
+msgstr ""
+
+msgctxt "error:party.category:0"
+msgid "The name of a party category must be unique by parent!"
+msgstr ""
+
+msgctxt "error:party.category:0"
+msgid "You can not create recursive categories!"
+msgstr ""
+
+msgctxt "error:party.category:0"
+msgid "You can not use \" / \" in name field!"
+msgstr ""
+
+msgctxt "error:party.check_vies:0"
+msgid "The VIES service is unavailable, try again later."
+msgstr ""
+
+msgctxt "error:party.contact_mechanism:0"
+msgid "You can not modify the party of a contact mechanism!"
+msgstr ""
+
+msgctxt "error:party.party:0"
+msgid "Invalid VAT number!"
+msgstr ""
+
+msgctxt "error:party.party:0"
+msgid "The code of the party must be unique!"
+msgstr ""
+
+msgctxt "field:party.address,active:0"
+msgid "Active"
+msgstr ""
+
+msgctxt "field:party.address,city:0"
+msgid "City"
+msgstr ""
+
+msgctxt "field:party.address,country:0"
+msgid "Country"
+msgstr ""
+
+msgctxt "field:party.address,full_address:0"
+msgid "Full Address"
+msgstr ""
+
+msgctxt "field:party.address,name:0"
+msgid "Name"
+msgstr ""
+
+msgctxt "field:party.address,party:0"
+msgid "Party"
+msgstr ""
+
+msgctxt "field:party.address,rec_name:0"
+msgid "Name"
+msgstr ""
+
+msgctxt "field:party.address,sequence:0"
+msgid "Sequence"
+msgstr ""
+
+msgctxt "field:party.address,street:0"
+msgid "Street"
+msgstr ""
+
+msgctxt "field:party.address,streetbis:0"
+msgid "Street (bis)"
+msgstr ""
+
+msgctxt "field:party.address,subdivision:0"
+msgid "Subdivision"
+msgstr ""
+
+msgctxt "field:party.address,zip:0"
+msgid "Zip"
+msgstr ""
+
+msgctxt "field:party.category,active:0"
+msgid "Active"
+msgstr ""
+
+msgctxt "field:party.category,childs:0"
+msgid "Children"
+msgstr ""
+
+msgctxt "field:party.category,name:0"
+msgid "Name"
+msgstr ""
+
+msgctxt "field:party.category,parent:0"
+msgid "Parent"
+msgstr ""
+
+msgctxt "field:party.category,rec_name:0"
+msgid "Name"
+msgstr ""
+
+msgctxt "field:party.check_vies.check,parties_failed:0"
+msgid "Parties Failed"
+msgstr ""
+
+msgctxt "field:party.check_vies.check,parties_succeed:0"
+msgid "Parties Succeed"
+msgstr ""
+
+msgctxt "field:party.configuration,party_lang:0"
+msgid "Party Language"
+msgstr ""
+
+msgctxt "field:party.configuration,party_sequence:0"
+msgid "Party Sequence"
+msgstr ""
+
+msgctxt "field:party.configuration,rec_name:0"
+msgid "Name"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,active:0"
+msgid "Active"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,comment:0"
+msgid "Comment"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,email:0"
+msgid "E-Mail"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,other_value:0"
+msgid "Value"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,party:0"
+msgid "Party"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,rec_name:0"
+msgid "Name"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,sequence:0"
+msgid "Sequence"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,sip:0"
+msgid "SIP"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,skype:0"
+msgid "Skype"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,type:0"
+msgid "Type"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,value:0"
+msgid "Value"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,website:0"
+msgid "Website"
+msgstr ""
+
+msgctxt "field:party.party,active:0"
+msgid "Active"
+msgstr ""
+
+msgctxt "field:party.party,addresses:0"
+msgid "Addresses"
+msgstr ""
+
+msgctxt "field:party.party,categories:0"
+msgid "Categories"
+msgstr ""
+
+msgctxt "field:party.party,code:0"
+msgid "Code"
+msgstr ""
+
+msgctxt "field:party.party,code_length:0"
+msgid "Code Length"
+msgstr ""
+
+msgctxt "field:party.party,contact_mechanisms:0"
+msgid "Contact Mechanisms"
+msgstr ""
+
+msgctxt "field:party.party,email:0"
+msgid "E-Mail"
+msgstr ""
+
+msgctxt "field:party.party,fax:0"
+msgid "Fax"
+msgstr ""
+
+msgctxt "field:party.party,full_name:0"
+msgid "Full Name"
+msgstr ""
+
+msgctxt "field:party.party,lang:0"
+msgid "Language"
+msgstr ""
+
+msgctxt "field:party.party,mobile:0"
+msgid "Mobile"
+msgstr ""
+
+msgctxt "field:party.party,name:0"
+msgid "Name"
+msgstr ""
+
+msgctxt "field:party.party,phone:0"
+msgid "Phone"
+msgstr ""
+
+msgctxt "field:party.party,rec_name:0"
+msgid "Name"
+msgstr ""
+
+msgctxt "field:party.party,vat_code:0"
+msgid "VAT Code"
+msgstr ""
+
+msgctxt "field:party.party,vat_country:0"
+msgid "VAT Country"
+msgstr ""
+
+msgctxt "field:party.party,vat_number:0"
+msgid "VAT Number"
+msgstr ""
+
+msgctxt "field:party.party,website:0"
+msgid "Website"
+msgstr ""
+
+msgctxt "field:party.party-party.category,category:0"
+msgid "Category"
+msgstr ""
+
+msgctxt "field:party.party-party.category,party:0"
+msgid "Party"
+msgstr ""
+
+msgctxt "field:party.party-party.category,rec_name:0"
+msgid "Name"
+msgstr ""
+
+msgctxt "help:party.configuration,party_lang:0"
+msgid "The value set on this field will preset the language on new parties"
+msgstr ""
+
+msgctxt "help:party.party,vat_country:0"
+msgid "Setting VAT country will enable validation of the VAT number."
+msgstr ""
+
+msgctxt "help:party.party,vat_number:0"
+msgid "Value Added Tax number"
+msgstr ""
+
+msgctxt "model:ir.action,name:act_address_form"
+msgid "Addresses"
+msgstr ""
+
+msgctxt "model:ir.action,name:act_category_list"
+msgid "Categories"
+msgstr ""
+
+msgctxt "model:ir.action,name:act_category_tree"
+msgid "Categories"
+msgstr ""
+
+msgctxt "model:ir.action,name:act_party_by_category"
+msgid "Parties by Category"
+msgstr ""
+
+msgctxt "model:ir.action,name:act_party_configuration_form"
+msgid "Party Configuration"
+msgstr ""
+
+msgctxt "model:ir.action,name:act_party_form"
+msgid "Parties"
+msgstr ""
+
+msgctxt "model:ir.action,name:report_label"
+msgid "Labels"
+msgstr ""
+
+msgctxt "model:ir.action,name:wizard_check_vies"
+msgid "Check VIES"
+msgstr ""
+
+msgctxt "model:ir.sequence,name:sequence_party"
+msgid "Party"
+msgstr ""
+
+msgctxt "model:ir.sequence.type,name:sequence_type_party"
+msgid "Party"
+msgstr ""
+
+msgctxt "model:ir.ui.menu,name:menu_address_form"
+msgid "Addresses"
+msgstr ""
+
+msgctxt "model:ir.ui.menu,name:menu_category_list"
+msgid "Categories"
+msgstr ""
+
+msgctxt "model:ir.ui.menu,name:menu_category_tree"
+msgid "Categories"
+msgstr ""
+
+msgctxt "model:ir.ui.menu,name:menu_configuration"
+msgid "Configuration"
+msgstr ""
+
+msgctxt "model:ir.ui.menu,name:menu_party"
+msgid "Party"
+msgstr ""
+
+msgctxt "model:ir.ui.menu,name:menu_party_configuration"
+msgid "Party Configuration"
+msgstr ""
+
+msgctxt "model:ir.ui.menu,name:menu_party_form"
+msgid "Parties"
+msgstr ""
+
+msgctxt "model:party.address,name:0"
+msgid "Address"
+msgstr ""
+
+msgctxt "model:party.category,name:0"
+msgid "Category"
+msgstr ""
+
+msgctxt "model:party.check_vies.check,name:0"
+msgid "Check VIES - Check"
+msgstr ""
+
+msgctxt "model:party.check_vies.no_check,name:0"
+msgid "Check VIES - No Check"
+msgstr ""
+
+msgctxt "model:party.configuration,name:0"
+msgid "Party Configuration"
+msgstr ""
+
+msgctxt "model:party.contact_mechanism,name:0"
+msgid "Contact Mechanism"
+msgstr ""
+
+msgctxt "model:party.party,name:0"
+msgid "Party"
+msgstr ""
+
+msgctxt "model:party.party-party.category,name:0"
+msgid "Party - Category"
+msgstr ""
+
+msgctxt "model:res.group,name:group_party_admin"
+msgid "Party Administration"
+msgstr ""
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "E-Mail"
+msgstr ""
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Fax"
+msgstr ""
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "IRC"
+msgstr ""
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Jabber"
+msgstr ""
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Mobile"
+msgstr ""
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Other"
+msgstr ""
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Phone"
+msgstr ""
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "SIP"
+msgstr ""
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Skype"
+msgstr ""
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Website"
+msgstr ""
+
+msgctxt "view:party.address:0"
+msgid "Addresses"
+msgstr ""
+
+msgctxt "view:party.category:0"
+msgid "Categories"
+msgstr ""
+
+msgctxt "view:party.category:0"
+msgid "Category"
+msgstr ""
+
+msgctxt "view:party.check_vies.check:0"
+msgid "Parties Failed"
+msgstr ""
+
+msgctxt "view:party.check_vies.check:0"
+msgid "Parties Succeed"
+msgstr ""
+
+msgctxt "view:party.check_vies.check:0"
+msgid "VAT Information Exchange System Results"
+msgstr ""
+
+msgctxt "view:party.check_vies.no_check:0"
+msgid "VAT Information Exchange System"
+msgstr ""
+
+msgctxt "view:party.check_vies.no_check:0"
+msgid "You must have a recent version of \"vatnumber\" installed!"
+msgstr ""
+
+msgctxt "view:party.configuration:0"
+msgid "Party Configuration"
+msgstr ""
+
+msgctxt "view:party.contact_mechanism:0"
+msgid "Contact Mechanism"
+msgstr ""
+
+msgctxt "view:party.contact_mechanism:0"
+msgid "Contact Mechanisms"
+msgstr ""
+
+msgctxt "view:party.party:0"
+msgid "Accounting"
+msgstr ""
+
+msgctxt "view:party.party:0"
+msgid "Addresses"
+msgstr ""
+
+msgctxt "view:party.party:0"
+msgid "Categories"
+msgstr ""
+
+msgctxt "view:party.party:0"
+msgid "Contact Mechanisms"
+msgstr ""
+
+msgctxt "view:party.party:0"
+msgid "General"
+msgstr ""
+
+msgctxt "view:party.party:0"
+msgid "Parties"
+msgstr ""
+
+msgctxt "view:party.party:0"
+msgid "Party"
+msgstr ""
+
+msgctxt "view:party.party:0"
+msgid "VAT"
+msgstr ""
+
+msgctxt "wizard_button:party.check_vies,check,end:0"
+msgid "Ok"
+msgstr ""
+
+msgctxt "wizard_button:party.check_vies,no_check,end:0"
+msgid "Ok"
+msgstr ""
diff --git a/locale/de_DE.po b/locale/de_DE.po
new file mode 100644
index 0000000..0dfa4e8
--- /dev/null
+++ b/locale/de_DE.po
@@ -0,0 +1,578 @@
+# 
+msgid ""
+msgstr "Content-Type: text/plain; charset=utf-8\n"
+
+msgctxt "error:party.address:0"
+msgid "You can not modify the party of an address!"
+msgstr "Die Partei einer Adresse kann nicht geändert werden!"
+
+msgctxt "error:party.category:0"
+msgid "The name of a party category must be unique by parent!"
+msgstr ""
+"Der Name einer Parteikategorie kann pro übergeordneter Kategorie nur einmal "
+"vergeben werden!"
+
+msgctxt "error:party.category:0"
+msgid "You can not create recursive categories!"
+msgstr "Kategorien können nicht rekursiv angelegt werden!"
+
+msgctxt "error:party.category:0"
+msgid "You can not use \" / \" in name field!"
+msgstr "In dem Namensfeld kann \" / \" nicht verwendet werden!"
+
+msgctxt "error:party.check_vies:0"
+msgid "The VIES service is unavailable, try again later."
+msgstr ""
+"VIES Dienst nicht erreichbar, bitte versuchen Sie es später noch einmal!"
+
+msgctxt "error:party.contact_mechanism:0"
+msgid "You can not modify the party of a contact mechanism!"
+msgstr "Die Partei einer Kontaktmöglichkeit kann nicht geändert werden!"
+
+msgctxt "error:party.party:0"
+msgid "Invalid VAT number!"
+msgstr "Ungültige USt-ID-Nummer!"
+
+msgctxt "error:party.party:0"
+msgid "The code of the party must be unique!"
+msgstr "Der Name einer Partei kann nur einmal vergeben werden!"
+
+msgctxt "field:party.address,active:0"
+msgid "Active"
+msgstr "Aktiv"
+
+msgctxt "field:party.address,city:0"
+msgid "City"
+msgstr "Stadt"
+
+msgctxt "field:party.address,country:0"
+msgid "Country"
+msgstr "Staat"
+
+msgctxt "field:party.address,create_date:0"
+msgid "Creation date"
+msgstr "Erstellungsdatum"
+
+msgctxt "field:party.address,create_uid:0"
+msgid "Creation user"
+msgstr "Ersteller"
+
+msgctxt "field:party.address,full_address:0"
+msgid "Full Address"
+msgstr "Vollständige Adresse"
+
+msgctxt "field:party.address,id:0"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.address,name:0"
+msgid "Name"
+msgstr "Name"
+
+msgctxt "field:party.address,party:0"
+msgid "Party"
+msgstr "Partei"
+
+msgctxt "field:party.address,rec_name:0"
+msgid "Name"
+msgstr "Name"
+
+msgctxt "field:party.address,sequence:0"
+msgid "Sequence"
+msgstr "Reihenfolge"
+
+msgctxt "field:party.address,street:0"
+msgid "Street"
+msgstr "Anschrift 1"
+
+msgctxt "field:party.address,streetbis:0"
+msgid "Street (bis)"
+msgstr "Anschrift 2"
+
+msgctxt "field:party.address,subdivision:0"
+msgid "Subdivision"
+msgstr "Subnationale Einheit"
+
+msgctxt "field:party.address,write_date:0"
+msgid "Last modification date"
+msgstr "Zuletzt geändert am"
+
+msgctxt "field:party.address,write_uid:0"
+msgid "Last modification by"
+msgstr "Zuletzt geändert von"
+
+msgctxt "field:party.address,zip:0"
+msgid "Zip"
+msgstr "Postleitzahl"
+
+msgctxt "field:party.category,active:0"
+msgid "Active"
+msgstr "Aktiv"
+
+msgctxt "field:party.category,childs:0"
+msgid "Children"
+msgstr "Untergeordnet (Kategorien)"
+
+msgctxt "field:party.category,create_date:0"
+msgid "Creation date"
+msgstr "Erstellungsdatum"
+
+msgctxt "field:party.category,create_uid:0"
+msgid "Creation user"
+msgstr "Ersteller"
+
+msgctxt "field:party.category,id:0"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.category,name:0"
+msgid "Name"
+msgstr "Kategorie Name"
+
+msgctxt "field:party.category,parent:0"
+msgid "Parent"
+msgstr "Ãœbergeordnet (Kategorie)"
+
+msgctxt "field:party.category,rec_name:0"
+msgid "Name"
+msgstr "Name"
+
+msgctxt "field:party.category,write_date:0"
+msgid "Last modification date"
+msgstr "Zuletzt geändert am"
+
+msgctxt "field:party.category,write_uid:0"
+msgid "Last modification by"
+msgstr "Zuletzt geändert von"
+
+msgctxt "field:party.check_vies.check,parties_failed:0"
+msgid "Parties Failed"
+msgstr "Parteien mit fehlgeschlagener Überprüfung"
+
+msgctxt "field:party.check_vies.check,parties_succeed:0"
+msgid "Parties Succeed"
+msgstr "Parteien mit erfolgreicher Überprüfung"
+
+msgctxt "field:party.configuration,party_lang:0"
+msgid "Party Language"
+msgstr "Sprache Partei"
+
+msgctxt "field:party.configuration,party_sequence:0"
+msgid "Party Sequence"
+msgstr "Nummernkreis Partei"
+
+msgctxt "field:party.configuration,rec_name:0"
+msgid "Name"
+msgstr "Name"
+
+msgctxt "field:party.contact_mechanism,active:0"
+msgid "Active"
+msgstr "Aktiv"
+
+msgctxt "field:party.contact_mechanism,comment:0"
+msgid "Comment"
+msgstr "Kommentar"
+
+msgctxt "field:party.contact_mechanism,email:0"
+msgid "E-Mail"
+msgstr "E-Mail"
+
+msgctxt "field:party.contact_mechanism,other_value:0"
+msgid "Value"
+msgstr "Wert"
+
+msgctxt "field:party.contact_mechanism,party:0"
+msgid "Party"
+msgstr "Partei"
+
+msgctxt "field:party.contact_mechanism,rec_name:0"
+msgid "Name"
+msgstr "Name"
+
+msgctxt "field:party.contact_mechanism,sequence:0"
+msgid "Sequence"
+msgstr "Reihenfolge"
+
+msgctxt "field:party.contact_mechanism,sip:0"
+msgid "SIP"
+msgstr "SIP"
+
+msgctxt "field:party.contact_mechanism,skype:0"
+msgid "Skype"
+msgstr "Skype"
+
+msgctxt "field:party.contact_mechanism,type:0"
+msgid "Type"
+msgstr "Typ"
+
+msgctxt "field:party.contact_mechanism,value:0"
+msgid "Value"
+msgstr "Wert"
+
+msgctxt "field:party.contact_mechanism,website:0"
+msgid "Website"
+msgstr "Homepage"
+
+msgctxt "field:party.party,active:0"
+msgid "Active"
+msgstr "Aktiv"
+
+msgctxt "field:party.party,addresses:0"
+msgid "Addresses"
+msgstr "Adressen"
+
+msgctxt "field:party.party,categories:0"
+msgid "Categories"
+msgstr "Kategorien"
+
+msgctxt "field:party.party,code:0"
+msgid "Code"
+msgstr "Code Partei"
+
+msgctxt "field:party.party,code_length:0"
+msgid "Code Length"
+msgstr "Code Länge"
+
+msgctxt "field:party.party,contact_mechanisms:0"
+msgid "Contact Mechanisms"
+msgstr "Kontaktmöglichkeiten"
+
+msgctxt "field:party.party,create_date:0"
+msgid "Creation date"
+msgstr "Erstellungsdatum"
+
+msgctxt "field:party.party,create_uid:0"
+msgid "Creation user"
+msgstr "Ersteller"
+
+msgctxt "field:party.party,email:0"
+msgid "E-Mail"
+msgstr "E-Mail"
+
+msgctxt "field:party.party,fax:0"
+msgid "Fax"
+msgstr "Fax"
+
+msgctxt "field:party.party,full_name:0"
+msgid "Full Name"
+msgstr "Vollständiger Name"
+
+msgctxt "field:party.party,id:0"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:party.party,lang:0"
+msgid "Language"
+msgstr "Sprache"
+
+msgctxt "field:party.party,mobile:0"
+msgid "Mobile"
+msgstr "Mobiltelefon"
+
+msgctxt "field:party.party,name:0"
+msgid "Name"
+msgstr "Name"
+
+msgctxt "field:party.party,phone:0"
+msgid "Phone"
+msgstr "Telefon"
+
+msgctxt "field:party.party,rec_name:0"
+msgid "Name"
+msgstr "Name"
+
+msgctxt "field:party.party,vat_code:0"
+msgid "VAT Code"
+msgstr "USt-ID-Nr."
+
+msgctxt "field:party.party,vat_country:0"
+msgid "VAT Country"
+msgstr "USt-ID-Präfix"
+
+msgctxt "field:party.party,vat_number:0"
+msgid "VAT Number"
+msgstr "USt-ID-Nr."
+
+msgctxt "field:party.party,website:0"
+msgid "Website"
+msgstr "Website"
+
+msgctxt "field:party.party,write_date:0"
+msgid "Last modification date"
+msgstr "Zuletzt geändert am"
+
+msgctxt "field:party.party,write_uid:0"
+msgid "Last modification by"
+msgstr "Zuletzt geändert von"
+
+msgctxt "field:party.party-party.category,category:0"
+msgid "Category"
+msgstr "Kategorie"
+
+msgctxt "field:party.party-party.category,party:0"
+msgid "Party"
+msgstr "Partei"
+
+msgctxt "field:party.party-party.category,rec_name:0"
+msgid "Name"
+msgstr "Name"
+
+msgctxt "help:party.configuration,party_lang:0"
+msgid "The value set on this field will preset the language on new parties"
+msgstr ""
+"Ein Wert in diesem Feld dient als Voreinstellung für die Sprache von neu "
+"angelegten Parteien"
+
+msgctxt "help:party.party,vat_country:0"
+msgid "Setting VAT country will enable validation of the VAT number."
+msgstr "Ein Eintrag in USt-ID-Präfix aktiviert die Überprüfung der USt-ID-Nr."
+
+msgctxt "help:party.party,vat_number:0"
+msgid "Value Added Tax number"
+msgstr "Umsatzsteueridentifikationsnummer"
+
+msgctxt "model:ir.action,name:act_address_form"
+msgid "Addresses"
+msgstr "Adressen"
+
+msgctxt "model:ir.action,name:act_category_list"
+msgid "Categories"
+msgstr "Kategorien"
+
+msgctxt "model:ir.action,name:act_category_tree"
+msgid "Categories"
+msgstr "Kategorien"
+
+msgctxt "model:ir.action,name:act_party_by_category"
+msgid "Parties by Category"
+msgstr "Parteien nach Kategorie"
+
+msgctxt "model:ir.action,name:act_party_configuration_form"
+msgid "Party Configuration"
+msgstr "Einstellungen Partei"
+
+msgctxt "model:ir.action,name:act_party_form"
+msgid "Parties"
+msgstr "Parteien"
+
+msgctxt "model:ir.action,name:report_label"
+msgid "Labels"
+msgstr "Etiketten"
+
+msgctxt "model:ir.action,name:wizard_check_vies"
+msgid "Check VIES"
+msgstr "USt-ID-Nr. per VIES überprüfen"
+
+msgctxt "model:ir.sequence,name:sequence_party"
+msgid "Party"
+msgstr "Partei"
+
+msgctxt "model:ir.sequence.type,name:sequence_type_party"
+msgid "Party"
+msgstr "Partei"
+
+msgctxt "model:ir.ui.menu,name:menu_address_form"
+msgid "Addresses"
+msgstr "Adressen"
+
+msgctxt "model:ir.ui.menu,name:menu_category_list"
+msgid "Categories"
+msgstr "Kategorien"
+
+msgctxt "model:ir.ui.menu,name:menu_category_tree"
+msgid "Categories"
+msgstr "Parteikategorien"
+
+msgctxt "model:ir.ui.menu,name:menu_configuration"
+msgid "Configuration"
+msgstr "Einstellungen"
+
+msgctxt "model:ir.ui.menu,name:menu_party"
+msgid "Party"
+msgstr "Parteien"
+
+msgctxt "model:ir.ui.menu,name:menu_party_configuration"
+msgid "Party Configuration"
+msgstr "Einstellungen Partei"
+
+msgctxt "model:ir.ui.menu,name:menu_party_form"
+msgid "Parties"
+msgstr "Parteien"
+
+msgctxt "model:party.address,name:0"
+msgid "Address"
+msgstr "Adresse"
+
+msgctxt "model:party.category,name:0"
+msgid "Category"
+msgstr "Kategorie"
+
+msgctxt "model:party.check_vies.check,name:0"
+msgid "Check VIES - Check"
+msgstr "Überprüfung VIES - Durchführen"
+
+msgctxt "model:party.check_vies.no_check,name:0"
+msgid "Check VIES - No Check"
+msgstr "Überprüfung VIES - Nicht durchführen"
+
+msgctxt "model:party.configuration,name:0"
+msgid "Party Configuration"
+msgstr "Einstellungen Partei"
+
+msgctxt "model:party.contact_mechanism,name:0"
+msgid "Contact Mechanism"
+msgstr "Kontaktmöglichkeit"
+
+msgctxt "model:party.party,name:0"
+msgid "Party"
+msgstr "Partei"
+
+msgctxt "model:party.party-party.category,name:0"
+msgid "Party - Category"
+msgstr "Partei - Parteikategorie"
+
+msgctxt "model:res.group,name:group_party_admin"
+msgid "Party Administration"
+msgstr "Parteien Administration"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "E-Mail"
+msgstr "E-Mail"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Fax"
+msgstr "Fax"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "IRC"
+msgstr "IRC"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Jabber"
+msgstr "Jabber"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Mobile"
+msgstr "Mobiltelefon"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Other"
+msgstr "Anderer Kontakt"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Phone"
+msgstr "Telefon"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "SIP"
+msgstr "SIP"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Skype"
+msgstr "Skype"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Website"
+msgstr "Homepage"
+
+msgctxt "view:party.address:0"
+msgid "Addresses"
+msgstr "Adressen"
+
+msgctxt "view:party.category:0"
+msgid "Categories"
+msgstr "Kategorien"
+
+msgctxt "view:party.category:0"
+msgid "Category"
+msgstr "Kategorie"
+
+msgctxt "view:party.check_vies.check:0"
+msgid "Parties Failed"
+msgstr "Parteien mit fehlgeschlagener Überprüfung"
+
+msgctxt "view:party.check_vies.check:0"
+msgid "Parties Succeed"
+msgstr "Parteien mit erfolgreicher Überprüfung"
+
+msgctxt "view:party.check_vies.check:0"
+msgid "VAT Information Exchange System Results"
+msgstr "Ergebnisse des Überprüfungssystems für USt-ID-Nummern (VIES)"
+
+msgctxt "view:party.check_vies.no_check:0"
+msgid "VAT Information Exchange System"
+msgstr "Überprüfungssystem für USt-ID-Nummern (VIES)"
+
+msgctxt "view:party.check_vies.no_check:0"
+msgid "You must have a recent version of \"vatnumber\" installed!"
+msgstr ""
+"Es muss eine aktuelle Version des Python-Moduls \"vatnumber\" installiert "
+"sein!"
+
+msgctxt "view:party.configuration:0"
+msgid "Party Configuration"
+msgstr "Einstellungen Partei"
+
+msgctxt "view:party.contact_mechanism:0"
+msgid "Contact Mechanism"
+msgstr "Kontaktmöglichkeit"
+
+msgctxt "view:party.contact_mechanism:0"
+msgid "Contact Mechanisms"
+msgstr "Kontaktmöglichkeiten"
+
+msgctxt "view:party.party:0"
+msgid "Account"
+msgstr "Konten"
+
+msgctxt "view:party.party:0"
+msgid "Accounting"
+msgstr "Buchhaltung"
+
+msgctxt "view:party.party:0"
+msgid "Addresses"
+msgstr "Adressen"
+
+msgctxt "view:party.party:0"
+msgid "Categories"
+msgstr "Kategorien"
+
+msgctxt "view:party.party:0"
+msgid "Contact Mechanism"
+msgstr "Kontaktmöglichkeit"
+
+msgctxt "view:party.party:0"
+msgid "Contact Mechanisms"
+msgstr "Kontaktmöglichkeiten"
+
+msgctxt "view:party.party:0"
+msgid "General"
+msgstr "Allgemein"
+
+msgctxt "view:party.party:0"
+msgid "Parties"
+msgstr "Parteien"
+
+msgctxt "view:party.party:0"
+msgid "Party"
+msgstr "Partei"
+
+msgctxt "view:party.party:0"
+msgid "VAT"
+msgstr "USt"
+
+msgctxt "view:party.party:0"
+msgid "_Accounting"
+msgstr "_Buchhaltung"
+
+msgctxt "view:party.party:0"
+msgid "_General"
+msgstr "_Allgemein"
+
+msgctxt "wizard_button:party.check_vies,check,end:0"
+msgid "Ok"
+msgstr "OK"
+
+msgctxt "wizard_button:party.check_vies,no_check,end:0"
+msgid "Ok"
+msgstr "OK"
diff --git a/locale/es_CO.po b/locale/es_CO.po
new file mode 100644
index 0000000..8d57ec0
--- /dev/null
+++ b/locale/es_CO.po
@@ -0,0 +1,512 @@
+# 
+msgid ""
+msgstr "Content-Type: text/plain; charset=utf-8\n"
+
+msgctxt "error:party.address:0"
+msgid "You can not modify the party of an address!"
+msgstr "No puede modificar el tercero de una dirección!"
+
+msgctxt "error:party.category:0"
+msgid "The name of a party category must be unique by parent!"
+msgstr ""
+
+msgctxt "error:party.category:0"
+msgid "You can not create recursive categories!"
+msgstr "No puede crear categorías recursivas!"
+
+msgctxt "error:party.category:0"
+msgid "You can not use \" / \" in name field!"
+msgstr ""
+
+msgctxt "error:party.check_vies:0"
+msgid "The VIES service is unavailable, try again later."
+msgstr "El servicio VIES no está disponible, intente más tarde."
+
+msgctxt "error:party.contact_mechanism:0"
+msgid "You can not modify the party of a contact mechanism!"
+msgstr "¡No puede modificar un tercero de un mecanismo de contacto!"
+
+msgctxt "error:party.party:0"
+msgid "Invalid VAT number!"
+msgstr "¡Número inválido!"
+
+msgctxt "error:party.party:0"
+msgid "The code of the party must be unique!"
+msgstr ""
+
+msgctxt "field:party.address,active:0"
+msgid "Active"
+msgstr "Activo"
+
+msgctxt "field:party.address,city:0"
+msgid "City"
+msgstr "Ciudad"
+
+msgctxt "field:party.address,country:0"
+msgid "Country"
+msgstr "País"
+
+msgctxt "field:party.address,full_address:0"
+msgid "Full Address"
+msgstr ""
+
+msgctxt "field:party.address,name:0"
+msgid "Name"
+msgstr "Nombre de Contacto"
+
+msgctxt "field:party.address,party:0"
+msgid "Party"
+msgstr "Tercero"
+
+msgctxt "field:party.address,rec_name:0"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:party.address,sequence:0"
+msgid "Sequence"
+msgstr "Secuencia"
+
+msgctxt "field:party.address,street:0"
+msgid "Street"
+msgstr "Calle"
+
+msgctxt "field:party.address,streetbis:0"
+msgid "Street (bis)"
+msgstr "Calle (bis)"
+
+msgctxt "field:party.address,subdivision:0"
+msgid "Subdivision"
+msgstr "Subdivisión"
+
+msgctxt "field:party.address,zip:0"
+msgid "Zip"
+msgstr "Código postal"
+
+msgctxt "field:party.category,active:0"
+msgid "Active"
+msgstr "Activo"
+
+msgctxt "field:party.category,childs:0"
+msgid "Children"
+msgstr "Hij at s"
+
+msgctxt "field:party.category,name:0"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:party.category,parent:0"
+msgid "Parent"
+msgstr "Padre"
+
+msgctxt "field:party.category,rec_name:0"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:party.check_vies.check,parties_failed:0"
+msgid "Parties Failed"
+msgstr "Los terceros fallaron"
+
+msgctxt "field:party.check_vies.check,parties_succeed:0"
+msgid "Parties Succeed"
+msgstr "Terceros válidos"
+
+#, fuzzy
+msgctxt "field:party.configuration,party_lang:0"
+msgid "Party Language"
+msgstr "Idioma del Tercero"
+
+msgctxt "field:party.configuration,party_sequence:0"
+msgid "Party Sequence"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:party.configuration,rec_name:0"
+msgid "Name"
+msgstr "Nombre de Contacto"
+
+msgctxt "field:party.contact_mechanism,active:0"
+msgid "Active"
+msgstr "Activo"
+
+msgctxt "field:party.contact_mechanism,comment:0"
+msgid "Comment"
+msgstr "Comentario"
+
+msgctxt "field:party.contact_mechanism,email:0"
+msgid "E-Mail"
+msgstr "Correo electrónico"
+
+msgctxt "field:party.contact_mechanism,other_value:0"
+msgid "Value"
+msgstr "Valor"
+
+msgctxt "field:party.contact_mechanism,party:0"
+msgid "Party"
+msgstr "Tercero"
+
+msgctxt "field:party.contact_mechanism,rec_name:0"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:party.contact_mechanism,sequence:0"
+msgid "Sequence"
+msgstr "Secuencia"
+
+msgctxt "field:party.contact_mechanism,sip:0"
+msgid "SIP"
+msgstr "SIP"
+
+msgctxt "field:party.contact_mechanism,skype:0"
+msgid "Skype"
+msgstr "Skype"
+
+msgctxt "field:party.contact_mechanism,type:0"
+msgid "Type"
+msgstr "Tipo"
+
+msgctxt "field:party.contact_mechanism,value:0"
+msgid "Value"
+msgstr "Valor"
+
+msgctxt "field:party.contact_mechanism,website:0"
+msgid "Website"
+msgstr "Sitio Web"
+
+msgctxt "field:party.party,active:0"
+msgid "Active"
+msgstr "Activo"
+
+msgctxt "field:party.party,addresses:0"
+msgid "Addresses"
+msgstr "Direcciones"
+
+msgctxt "field:party.party,categories:0"
+msgid "Categories"
+msgstr "Categorías"
+
+msgctxt "field:party.party,code:0"
+msgid "Code"
+msgstr "Código"
+
+msgctxt "field:party.party,code_length:0"
+msgid "Code Length"
+msgstr "Longitud del Código"
+
+msgctxt "field:party.party,contact_mechanisms:0"
+msgid "Contact Mechanisms"
+msgstr "Mecanismos de contacto"
+
+msgctxt "field:party.party,email:0"
+msgid "E-Mail"
+msgstr "Correo electrónico"
+
+msgctxt "field:party.party,fax:0"
+msgid "Fax"
+msgstr "Fax"
+
+msgctxt "field:party.party,full_name:0"
+msgid "Full Name"
+msgstr ""
+
+msgctxt "field:party.party,lang:0"
+msgid "Language"
+msgstr "Idioma"
+
+msgctxt "field:party.party,mobile:0"
+msgid "Mobile"
+msgstr "Celular"
+
+msgctxt "field:party.party,name:0"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:party.party,phone:0"
+msgid "Phone"
+msgstr "Teléfono"
+
+msgctxt "field:party.party,rec_name:0"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:party.party,vat_code:0"
+msgid "VAT Code"
+msgstr "Código de IVA"
+
+msgctxt "field:party.party,vat_country:0"
+msgid "VAT Country"
+msgstr "País"
+
+msgctxt "field:party.party,vat_number:0"
+msgid "VAT Number"
+msgstr "Número"
+
+msgctxt "field:party.party,website:0"
+msgid "Website"
+msgstr "Sitio Web"
+
+msgctxt "field:party.party-party.category,category:0"
+msgid "Category"
+msgstr "Categoría"
+
+msgctxt "field:party.party-party.category,party:0"
+msgid "Party"
+msgstr "Tercero"
+
+msgctxt "field:party.party-party.category,rec_name:0"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "help:party.configuration,party_lang:0"
+msgid "The value set on this field will preset the language on new parties"
+msgstr ""
+
+msgctxt "help:party.party,vat_country:0"
+msgid "Setting VAT country will enable validation of the VAT number."
+msgstr "Al especificar el país se habilitará la verificación del NIT."
+
+msgctxt "help:party.party,vat_number:0"
+msgid "Value Added Tax number"
+msgstr "Número de Impuesto de Valor Agregado"
+
+msgctxt "model:ir.action,name:act_address_form"
+msgid "Addresses"
+msgstr "Direcciones"
+
+#, fuzzy
+msgctxt "model:ir.action,name:act_category_list"
+msgid "Categories"
+msgstr "Categorías"
+
+msgctxt "model:ir.action,name:act_category_tree"
+msgid "Categories"
+msgstr "Categorías"
+
+msgctxt "model:ir.action,name:act_party_by_category"
+msgid "Parties by Category"
+msgstr "Terceros por Categoría"
+
+msgctxt "model:ir.action,name:act_party_configuration_form"
+msgid "Party Configuration"
+msgstr ""
+
+msgctxt "model:ir.action,name:act_party_form"
+msgid "Parties"
+msgstr "Terceros"
+
+msgctxt "model:ir.action,name:report_label"
+msgid "Labels"
+msgstr "Etiquetas"
+
+msgctxt "model:ir.action,name:wizard_check_vies"
+msgid "Check VIES"
+msgstr "Revisar VIES"
+
+msgctxt "model:ir.sequence,name:sequence_party"
+msgid "Party"
+msgstr "Tercero"
+
+msgctxt "model:ir.sequence.type,name:sequence_type_party"
+msgid "Party"
+msgstr "Tercero"
+
+msgctxt "model:ir.ui.menu,name:menu_address_form"
+msgid "Addresses"
+msgstr "Direcciones"
+
+#, fuzzy
+msgctxt "model:ir.ui.menu,name:menu_category_list"
+msgid "Categories"
+msgstr "Categorías"
+
+msgctxt "model:ir.ui.menu,name:menu_category_tree"
+msgid "Categories"
+msgstr "Categorías"
+
+msgctxt "model:ir.ui.menu,name:menu_configuration"
+msgid "Configuration"
+msgstr "Configuración"
+
+#, fuzzy
+msgctxt "model:ir.ui.menu,name:menu_party"
+msgid "Party"
+msgstr "Gestión de Terceros"
+
+msgctxt "model:ir.ui.menu,name:menu_party_configuration"
+msgid "Party Configuration"
+msgstr ""
+
+msgctxt "model:ir.ui.menu,name:menu_party_form"
+msgid "Parties"
+msgstr "Terceros"
+
+msgctxt "model:party.address,name:0"
+msgid "Address"
+msgstr "Dirección"
+
+msgctxt "model:party.category,name:0"
+msgid "Category"
+msgstr "Categoría"
+
+msgctxt "model:party.check_vies.check,name:0"
+msgid "Check VIES - Check"
+msgstr "Revisar VIES - Revisar"
+
+msgctxt "model:party.check_vies.no_check,name:0"
+msgid "Check VIES - No Check"
+msgstr "Revisar VIES - NO revisar"
+
+msgctxt "model:party.configuration,name:0"
+msgid "Party Configuration"
+msgstr ""
+
+msgctxt "model:party.contact_mechanism,name:0"
+msgid "Contact Mechanism"
+msgstr "Mecanismo de contacto"
+
+msgctxt "model:party.party,name:0"
+msgid "Party"
+msgstr "Tercero"
+
+msgctxt "model:party.party-party.category,name:0"
+msgid "Party - Category"
+msgstr "Tercero - Categoría"
+
+msgctxt "model:res.group,name:group_party_admin"
+msgid "Party Administration"
+msgstr "Terceros"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "E-Mail"
+msgstr "Correo electrónico"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Fax"
+msgstr "Fax"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "IRC"
+msgstr "Chat"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Jabber"
+msgstr "Jabber"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Mobile"
+msgstr "Celular"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Other"
+msgstr "Otro"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Phone"
+msgstr "Teléfono"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "SIP"
+msgstr "SIP"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Skype"
+msgstr "Skype"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Website"
+msgstr "Sitio Web"
+
+msgctxt "view:party.address:0"
+msgid "Addresses"
+msgstr "Direcciones"
+
+msgctxt "view:party.category:0"
+msgid "Categories"
+msgstr "Categorías"
+
+msgctxt "view:party.category:0"
+msgid "Category"
+msgstr "Categoría"
+
+msgctxt "view:party.check_vies.check:0"
+msgid "Parties Failed"
+msgstr "Los terceros fallaron"
+
+msgctxt "view:party.check_vies.check:0"
+msgid "Parties Succeed"
+msgstr "Los terceros fueron válidos"
+
+msgctxt "view:party.check_vies.check:0"
+msgid "VAT Information Exchange System Results"
+msgstr "Resultado de Sistema de Información de intercambio IVA"
+
+msgctxt "view:party.check_vies.no_check:0"
+msgid "VAT Information Exchange System"
+msgstr "Sistema de Información de Intercambio IVA"
+
+msgctxt "view:party.check_vies.no_check:0"
+msgid "You must have a recent version of \"vatnumber\" installed!"
+msgstr "Debe tener una versión reciente de \"vatnumber\" instalada!"
+
+msgctxt "view:party.configuration:0"
+msgid "Party Configuration"
+msgstr ""
+
+msgctxt "view:party.contact_mechanism:0"
+msgid "Contact Mechanism"
+msgstr "Mecanismo de contacto"
+
+msgctxt "view:party.contact_mechanism:0"
+msgid "Contact Mechanisms"
+msgstr "Mecanismos de contacto"
+
+msgctxt "view:party.party:0"
+msgid "Account"
+msgstr "Cuenta"
+
+msgctxt "view:party.party:0"
+msgid "Accounting"
+msgstr "Contabilidad"
+
+msgctxt "view:party.party:0"
+msgid "Addresses"
+msgstr "Direcciones"
+
+msgctxt "view:party.party:0"
+msgid "Categories"
+msgstr "Categorías"
+
+msgctxt "view:party.party:0"
+msgid "Contact Mechanism"
+msgstr "Mecanismo de contacto"
+
+msgctxt "view:party.party:0"
+msgid "Contact Mechanisms"
+msgstr "Mecanismos de contacto"
+
+msgctxt "view:party.party:0"
+msgid "General"
+msgstr "General"
+
+msgctxt "view:party.party:0"
+msgid "Parties"
+msgstr "Terceros"
+
+msgctxt "view:party.party:0"
+msgid "Party"
+msgstr "Tercero"
+
+msgctxt "view:party.party:0"
+msgid "VAT"
+msgstr "IVA"
+
+msgctxt "view:party.party:0"
+msgid "_General"
+msgstr "_General"
+
+msgctxt "wizard_button:party.check_vies,check,end:0"
+msgid "Ok"
+msgstr "Aceptar"
+
+msgctxt "wizard_button:party.check_vies,no_check,end:0"
+msgid "Ok"
+msgstr "Aceptar"
diff --git a/locale/es_ES.po b/locale/es_ES.po
new file mode 100644
index 0000000..f0643df
--- /dev/null
+++ b/locale/es_ES.po
@@ -0,0 +1,510 @@
+# 
+msgid ""
+msgstr "Content-Type: text/plain; charset=utf-8\n"
+
+msgctxt "error:party.address:0"
+msgid "You can not modify the party of an address!"
+msgstr "No puede modificar el tercero de una dirección"
+
+msgctxt "error:party.category:0"
+msgid "The name of a party category must be unique by parent!"
+msgstr ""
+
+msgctxt "error:party.category:0"
+msgid "You can not create recursive categories!"
+msgstr "No puede crear categorías recursivas"
+
+msgctxt "error:party.category:0"
+msgid "You can not use \" / \" in name field!"
+msgstr ""
+
+msgctxt "error:party.check_vies:0"
+msgid "The VIES service is unavailable, try again later."
+msgstr "El servicio VIES no está disponible, inténtelo de nuevo más tarde"
+
+msgctxt "error:party.contact_mechanism:0"
+msgid "You can not modify the party of a contact mechanism!"
+msgstr "No puede modificar el tercero de un médio de contacto"
+
+msgctxt "error:party.party:0"
+msgid "Invalid VAT number!"
+msgstr "El NIF no es válido"
+
+msgctxt "error:party.party:0"
+msgid "The code of the party must be unique!"
+msgstr "El código del tercero debe ser único"
+
+msgctxt "field:party.address,active:0"
+msgid "Active"
+msgstr "Activo"
+
+msgctxt "field:party.address,city:0"
+msgid "City"
+msgstr "Ciudad"
+
+msgctxt "field:party.address,country:0"
+msgid "Country"
+msgstr "País"
+
+msgctxt "field:party.address,full_address:0"
+msgid "Full Address"
+msgstr ""
+
+msgctxt "field:party.address,name:0"
+msgid "Name"
+msgstr "Contacto"
+
+msgctxt "field:party.address,party:0"
+msgid "Party"
+msgstr "Tercero"
+
+msgctxt "field:party.address,rec_name:0"
+msgid "Name"
+msgstr "Contacto"
+
+msgctxt "field:party.address,sequence:0"
+msgid "Sequence"
+msgstr "Secuencia"
+
+msgctxt "field:party.address,street:0"
+msgid "Street"
+msgstr "Calle"
+
+msgctxt "field:party.address,streetbis:0"
+msgid "Street (bis)"
+msgstr "Calle (bis)"
+
+msgctxt "field:party.address,subdivision:0"
+msgid "Subdivision"
+msgstr "Subdivisión"
+
+msgctxt "field:party.address,zip:0"
+msgid "Zip"
+msgstr "Código postal"
+
+msgctxt "field:party.category,active:0"
+msgid "Active"
+msgstr "Activo"
+
+msgctxt "field:party.category,childs:0"
+msgid "Children"
+msgstr "Hijos"
+
+msgctxt "field:party.category,name:0"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:party.category,parent:0"
+msgid "Parent"
+msgstr "Padre"
+
+msgctxt "field:party.category,rec_name:0"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:party.check_vies.check,parties_failed:0"
+msgid "Parties Failed"
+msgstr "Terceros rechazados"
+
+msgctxt "field:party.check_vies.check,parties_succeed:0"
+msgid "Parties Succeed"
+msgstr "Terceros aceptados"
+
+#, fuzzy
+msgctxt "field:party.configuration,party_lang:0"
+msgid "Party Language"
+msgstr "Idioma del tercero"
+
+msgctxt "field:party.configuration,party_sequence:0"
+msgid "Party Sequence"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:party.configuration,rec_name:0"
+msgid "Name"
+msgstr "Nombre del campo"
+
+msgctxt "field:party.contact_mechanism,active:0"
+msgid "Active"
+msgstr "Activo"
+
+msgctxt "field:party.contact_mechanism,comment:0"
+msgid "Comment"
+msgstr "Comentario"
+
+msgctxt "field:party.contact_mechanism,email:0"
+msgid "E-Mail"
+msgstr "Correo electrónico"
+
+msgctxt "field:party.contact_mechanism,other_value:0"
+msgid "Value"
+msgstr "Valor"
+
+msgctxt "field:party.contact_mechanism,party:0"
+msgid "Party"
+msgstr "Tercero"
+
+msgctxt "field:party.contact_mechanism,rec_name:0"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:party.contact_mechanism,sequence:0"
+msgid "Sequence"
+msgstr "Secuencia"
+
+msgctxt "field:party.contact_mechanism,sip:0"
+msgid "SIP"
+msgstr "SIP"
+
+msgctxt "field:party.contact_mechanism,skype:0"
+msgid "Skype"
+msgstr "Skype"
+
+msgctxt "field:party.contact_mechanism,type:0"
+msgid "Type"
+msgstr "Tipo"
+
+msgctxt "field:party.contact_mechanism,value:0"
+msgid "Value"
+msgstr "Valor"
+
+msgctxt "field:party.contact_mechanism,website:0"
+msgid "Website"
+msgstr "Sitio Web"
+
+msgctxt "field:party.party,active:0"
+msgid "Active"
+msgstr "Activo"
+
+msgctxt "field:party.party,addresses:0"
+msgid "Addresses"
+msgstr "Direcciones"
+
+msgctxt "field:party.party,categories:0"
+msgid "Categories"
+msgstr "Categorías"
+
+msgctxt "field:party.party,code:0"
+msgid "Code"
+msgstr "Código"
+
+msgctxt "field:party.party,code_length:0"
+msgid "Code Length"
+msgstr "Dígitos del código"
+
+msgctxt "field:party.party,contact_mechanisms:0"
+msgid "Contact Mechanisms"
+msgstr "Médios de contacto"
+
+msgctxt "field:party.party,email:0"
+msgid "E-Mail"
+msgstr "Correo electrónico"
+
+msgctxt "field:party.party,fax:0"
+msgid "Fax"
+msgstr "Fax"
+
+msgctxt "field:party.party,full_name:0"
+msgid "Full Name"
+msgstr ""
+
+msgctxt "field:party.party,lang:0"
+msgid "Language"
+msgstr "Idioma"
+
+msgctxt "field:party.party,mobile:0"
+msgid "Mobile"
+msgstr "Móvil"
+
+msgctxt "field:party.party,name:0"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:party.party,phone:0"
+msgid "Phone"
+msgstr "Teléfono"
+
+msgctxt "field:party.party,rec_name:0"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:party.party,vat_code:0"
+msgid "VAT Code"
+msgstr "NIF"
+
+msgctxt "field:party.party,vat_country:0"
+msgid "VAT Country"
+msgstr "País del NIF"
+
+msgctxt "field:party.party,vat_number:0"
+msgid "VAT Number"
+msgstr "NIF"
+
+msgctxt "field:party.party,website:0"
+msgid "Website"
+msgstr "Sitio Web"
+
+msgctxt "field:party.party-party.category,category:0"
+msgid "Category"
+msgstr "Categoría"
+
+msgctxt "field:party.party-party.category,party:0"
+msgid "Party"
+msgstr "Tercero"
+
+msgctxt "field:party.party-party.category,rec_name:0"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "help:party.configuration,party_lang:0"
+msgid "The value set on this field will preset the language on new parties"
+msgstr ""
+
+msgctxt "help:party.party,vat_country:0"
+msgid "Setting VAT country will enable validation of the VAT number."
+msgstr ""
+"Al especificar el país del NIF se habilitará la verificación de dicho "
+"número."
+
+msgctxt "help:party.party,vat_number:0"
+msgid "Value Added Tax number"
+msgstr "Número de identificación fiscal"
+
+msgctxt "model:ir.action,name:act_address_form"
+msgid "Addresses"
+msgstr "Direcciones"
+
+#, fuzzy
+msgctxt "model:ir.action,name:act_category_list"
+msgid "Categories"
+msgstr "Categorías"
+
+msgctxt "model:ir.action,name:act_category_tree"
+msgid "Categories"
+msgstr "Categorías"
+
+msgctxt "model:ir.action,name:act_party_by_category"
+msgid "Parties by Category"
+msgstr "Terceros por categoría"
+
+msgctxt "model:ir.action,name:act_party_configuration_form"
+msgid "Party Configuration"
+msgstr ""
+
+msgctxt "model:ir.action,name:act_party_form"
+msgid "Parties"
+msgstr "Terceros"
+
+msgctxt "model:ir.action,name:report_label"
+msgid "Labels"
+msgstr "Etiquetas"
+
+msgctxt "model:ir.action,name:wizard_check_vies"
+msgid "Check VIES"
+msgstr "Comprobar VIES"
+
+msgctxt "model:ir.sequence,name:sequence_party"
+msgid "Party"
+msgstr "Tercero"
+
+msgctxt "model:ir.sequence.type,name:sequence_type_party"
+msgid "Party"
+msgstr "Tercero"
+
+msgctxt "model:ir.ui.menu,name:menu_address_form"
+msgid "Addresses"
+msgstr "Direcciones"
+
+#, fuzzy
+msgctxt "model:ir.ui.menu,name:menu_category_list"
+msgid "Categories"
+msgstr "Categorías"
+
+msgctxt "model:ir.ui.menu,name:menu_category_tree"
+msgid "Categories"
+msgstr "Categorías"
+
+msgctxt "model:ir.ui.menu,name:menu_configuration"
+msgid "Configuration"
+msgstr "Configuración"
+
+#, fuzzy
+msgctxt "model:ir.ui.menu,name:menu_party"
+msgid "Party"
+msgstr "Gestión de terceros"
+
+msgctxt "model:ir.ui.menu,name:menu_party_configuration"
+msgid "Party Configuration"
+msgstr ""
+
+msgctxt "model:ir.ui.menu,name:menu_party_form"
+msgid "Parties"
+msgstr "Terceros"
+
+msgctxt "model:party.address,name:0"
+msgid "Address"
+msgstr "Dirección"
+
+msgctxt "model:party.category,name:0"
+msgid "Category"
+msgstr "Categoría"
+
+msgctxt "model:party.check_vies.check,name:0"
+msgid "Check VIES - Check"
+msgstr "Comprobación VIES - Comprobar"
+
+msgctxt "model:party.check_vies.no_check,name:0"
+msgid "Check VIES - No Check"
+msgstr "Comprobación VIES - No comprobar"
+
+msgctxt "model:party.configuration,name:0"
+msgid "Party Configuration"
+msgstr ""
+
+msgctxt "model:party.contact_mechanism,name:0"
+msgid "Contact Mechanism"
+msgstr "Médio de contacto"
+
+msgctxt "model:party.party,name:0"
+msgid "Party"
+msgstr "Tercero"
+
+msgctxt "model:party.party-party.category,name:0"
+msgid "Party - Category"
+msgstr "Tercero - Categoría"
+
+msgctxt "model:res.group,name:group_party_admin"
+msgid "Party Administration"
+msgstr "Administración de terceros"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "E-Mail"
+msgstr "Correo electrónico"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Fax"
+msgstr "Fax"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "IRC"
+msgstr "IRC"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Jabber"
+msgstr "Jabber"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Mobile"
+msgstr "Móvil"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Other"
+msgstr "Otro"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Phone"
+msgstr "Teléfono"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "SIP"
+msgstr "SIP"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Skype"
+msgstr "Skype"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Website"
+msgstr "Sitio Web"
+
+msgctxt "view:party.address:0"
+msgid "Addresses"
+msgstr "Direcciones"
+
+msgctxt "view:party.category:0"
+msgid "Categories"
+msgstr "Categorías"
+
+msgctxt "view:party.category:0"
+msgid "Category"
+msgstr "Categoría"
+
+msgctxt "view:party.check_vies.check:0"
+msgid "Parties Failed"
+msgstr "Terceros rechazados"
+
+msgctxt "view:party.check_vies.check:0"
+msgid "Parties Succeed"
+msgstr "Terceros aceptados"
+
+msgctxt "view:party.check_vies.check:0"
+msgid "VAT Information Exchange System Results"
+msgstr "Resultado del sistema de intercambio de información de IVA"
+
+msgctxt "view:party.check_vies.no_check:0"
+msgid "VAT Information Exchange System"
+msgstr "Sistema de intercambio de información de IVA"
+
+msgctxt "view:party.check_vies.no_check:0"
+msgid "You must have a recent version of \"vatnumber\" installed!"
+msgstr "Necesita instalar una versión más actualizada de «vatnumber»"
+
+msgctxt "view:party.configuration:0"
+msgid "Party Configuration"
+msgstr ""
+
+msgctxt "view:party.contact_mechanism:0"
+msgid "Contact Mechanism"
+msgstr "Médio de contacto"
+
+msgctxt "view:party.contact_mechanism:0"
+msgid "Contact Mechanisms"
+msgstr "Médios de contacto"
+
+msgctxt "view:party.party:0"
+msgid "Account"
+msgstr "Cuenta"
+
+msgctxt "view:party.party:0"
+msgid "Accounting"
+msgstr "Contabilidad"
+
+msgctxt "view:party.party:0"
+msgid "Addresses"
+msgstr "Direcciones"
+
+msgctxt "view:party.party:0"
+msgid "Categories"
+msgstr "Categorías"
+
+msgctxt "view:party.party:0"
+msgid "Contact Mechanisms"
+msgstr "Médios de contacto"
+
+msgctxt "view:party.party:0"
+msgid "General"
+msgstr "General"
+
+msgctxt "view:party.party:0"
+msgid "Parties"
+msgstr "Terceros"
+
+msgctxt "view:party.party:0"
+msgid "Party"
+msgstr "Tercero"
+
+msgctxt "view:party.party:0"
+msgid "VAT"
+msgstr "NIF"
+
+msgctxt "view:party.party:0"
+msgid "_General"
+msgstr "_General"
+
+msgctxt "wizard_button:party.check_vies,check,end:0"
+msgid "Ok"
+msgstr "Aceptar"
+
+msgctxt "wizard_button:party.check_vies,no_check,end:0"
+msgid "Ok"
+msgstr "Aceptar"
diff --git a/locale/fr_FR.po b/locale/fr_FR.po
new file mode 100644
index 0000000..109e025
--- /dev/null
+++ b/locale/fr_FR.po
@@ -0,0 +1,510 @@
+# 
+msgid ""
+msgstr "Content-Type: text/plain; charset=utf-8\n"
+
+msgctxt "error:party.address:0"
+msgid "You can not modify the party of an address!"
+msgstr "Vous ne pouvez pas modifier le tiers d'une addresse !"
+
+msgctxt "error:party.category:0"
+msgid "The name of a party category must be unique by parent!"
+msgstr ""
+"Le nom d'une catégorie de tiers doit être unique pour un même parent !"
+
+msgctxt "error:party.category:0"
+msgid "You can not create recursive categories!"
+msgstr "Vous ne pouvez pas créer des catégories récursives !"
+
+msgctxt "error:party.category:0"
+msgid "You can not use \" / \" in name field!"
+msgstr "Vous ne pouvez pas utiliser \" / \" dans le champ nom !"
+
+msgctxt "error:party.check_vies:0"
+msgid "The VIES service is unavailable, try again later."
+msgstr "Le service VIES n'est pas disponible, veuillez essayer plus tard."
+
+msgctxt "error:party.contact_mechanism:0"
+msgid "You can not modify the party of a contact mechanism!"
+msgstr "Vous ne pouvez pas modifiez le tiers d'un moyen de contact."
+
+msgctxt "error:party.party:0"
+msgid "Invalid VAT number!"
+msgstr "Numéro TVA non valide !"
+
+msgctxt "error:party.party:0"
+msgid "The code of the party must be unique!"
+msgstr "Le code du tiers doit être unique !"
+
+msgctxt "field:party.address,active:0"
+msgid "Active"
+msgstr "Actif"
+
+msgctxt "field:party.address,city:0"
+msgid "City"
+msgstr "Ville"
+
+msgctxt "field:party.address,country:0"
+msgid "Country"
+msgstr "Pays"
+
+msgctxt "field:party.address,full_address:0"
+msgid "Full Address"
+msgstr "Adresse complète"
+
+msgctxt "field:party.address,name:0"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:party.address,party:0"
+msgid "Party"
+msgstr "Tiers"
+
+msgctxt "field:party.address,rec_name:0"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:party.address,sequence:0"
+msgid "Sequence"
+msgstr "Séquence"
+
+msgctxt "field:party.address,street:0"
+msgid "Street"
+msgstr "Rue"
+
+msgctxt "field:party.address,streetbis:0"
+msgid "Street (bis)"
+msgstr "Rue (bis)"
+
+msgctxt "field:party.address,subdivision:0"
+msgid "Subdivision"
+msgstr "Subdivision"
+
+msgctxt "field:party.address,zip:0"
+msgid "Zip"
+msgstr "Code Postal"
+
+msgctxt "field:party.category,active:0"
+msgid "Active"
+msgstr "Actif"
+
+msgctxt "field:party.category,childs:0"
+msgid "Children"
+msgstr "Enfants"
+
+msgctxt "field:party.category,name:0"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:party.category,parent:0"
+msgid "Parent"
+msgstr "Parent"
+
+msgctxt "field:party.category,rec_name:0"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:party.check_vies.check,parties_failed:0"
+msgid "Parties Failed"
+msgstr "Tiers non validés"
+
+msgctxt "field:party.check_vies.check,parties_succeed:0"
+msgid "Parties Succeed"
+msgstr "Tiers validés"
+
+msgctxt "field:party.configuration,party_lang:0"
+msgid "Party Language"
+msgstr "Langue du tiers"
+
+msgctxt "field:party.configuration,party_sequence:0"
+msgid "Party Sequence"
+msgstr "Séquence des tiers"
+
+msgctxt "field:party.configuration,rec_name:0"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:party.contact_mechanism,active:0"
+msgid "Active"
+msgstr "Actif"
+
+msgctxt "field:party.contact_mechanism,comment:0"
+msgid "Comment"
+msgstr "Commentaire"
+
+msgctxt "field:party.contact_mechanism,email:0"
+msgid "E-Mail"
+msgstr "E-mail"
+
+msgctxt "field:party.contact_mechanism,other_value:0"
+msgid "Value"
+msgstr "Valeur"
+
+msgctxt "field:party.contact_mechanism,party:0"
+msgid "Party"
+msgstr "Tiers"
+
+msgctxt "field:party.contact_mechanism,rec_name:0"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:party.contact_mechanism,sequence:0"
+msgid "Sequence"
+msgstr "Séquence"
+
+msgctxt "field:party.contact_mechanism,sip:0"
+msgid "SIP"
+msgstr "SIP"
+
+msgctxt "field:party.contact_mechanism,skype:0"
+msgid "Skype"
+msgstr "Skype"
+
+msgctxt "field:party.contact_mechanism,type:0"
+msgid "Type"
+msgstr "Type"
+
+msgctxt "field:party.contact_mechanism,value:0"
+msgid "Value"
+msgstr "Valeur"
+
+msgctxt "field:party.contact_mechanism,website:0"
+msgid "Website"
+msgstr "Site web"
+
+msgctxt "field:party.party,active:0"
+msgid "Active"
+msgstr "Actif"
+
+msgctxt "field:party.party,addresses:0"
+msgid "Addresses"
+msgstr "Adresses"
+
+msgctxt "field:party.party,categories:0"
+msgid "Categories"
+msgstr "Catégories"
+
+msgctxt "field:party.party,code:0"
+msgid "Code"
+msgstr "Code"
+
+msgctxt "field:party.party,code_length:0"
+msgid "Code Length"
+msgstr "Longueur du code"
+
+msgctxt "field:party.party,contact_mechanisms:0"
+msgid "Contact Mechanisms"
+msgstr "Moyens de contact"
+
+msgctxt "field:party.party,email:0"
+msgid "E-Mail"
+msgstr "E-Mail"
+
+msgctxt "field:party.party,fax:0"
+msgid "Fax"
+msgstr "Fax"
+
+msgctxt "field:party.party,full_name:0"
+msgid "Full Name"
+msgstr "Nom complet"
+
+msgctxt "field:party.party,lang:0"
+msgid "Language"
+msgstr "Langue"
+
+msgctxt "field:party.party,mobile:0"
+msgid "Mobile"
+msgstr "Mobile"
+
+msgctxt "field:party.party,name:0"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:party.party,phone:0"
+msgid "Phone"
+msgstr "Téléphone"
+
+msgctxt "field:party.party,rec_name:0"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:party.party,vat_code:0"
+msgid "VAT Code"
+msgstr "Code TVA"
+
+msgctxt "field:party.party,vat_country:0"
+msgid "VAT Country"
+msgstr "Code Pays TVA"
+
+msgctxt "field:party.party,vat_number:0"
+msgid "VAT Number"
+msgstr "Numéro de TVA"
+
+msgctxt "field:party.party,website:0"
+msgid "Website"
+msgstr "Site web"
+
+msgctxt "field:party.party-party.category,category:0"
+msgid "Category"
+msgstr "Catégorie"
+
+msgctxt "field:party.party-party.category,party:0"
+msgid "Party"
+msgstr "Tiers"
+
+msgctxt "field:party.party-party.category,rec_name:0"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "help:party.configuration,party_lang:0"
+msgid "The value set on this field will preset the language on new parties"
+msgstr ""
+"La valeur de ce champs sera la valeur par défaut pour la langue des nouveaux"
+" tiers"
+
+msgctxt "help:party.party,vat_country:0"
+msgid "Setting VAT country will enable validation of the VAT number."
+msgstr "Ajouter un code pays TVA activera la vérification du numéro de TVA."
+
+msgctxt "help:party.party,vat_number:0"
+msgid "Value Added Tax number"
+msgstr "Numéro de taxe sur la valeur ajoutée"
+
+msgctxt "model:ir.action,name:act_address_form"
+msgid "Addresses"
+msgstr "Adresses"
+
+msgctxt "model:ir.action,name:act_category_list"
+msgid "Categories"
+msgstr "Catégories"
+
+msgctxt "model:ir.action,name:act_category_tree"
+msgid "Categories"
+msgstr "Catégories"
+
+msgctxt "model:ir.action,name:act_party_by_category"
+msgid "Parties by Category"
+msgstr "Tiers par catégorie"
+
+msgctxt "model:ir.action,name:act_party_configuration_form"
+msgid "Party Configuration"
+msgstr "Configuration des tiers"
+
+msgctxt "model:ir.action,name:act_party_form"
+msgid "Parties"
+msgstr "Tiers"
+
+msgctxt "model:ir.action,name:report_label"
+msgid "Labels"
+msgstr "Étiquettes"
+
+msgctxt "model:ir.action,name:wizard_check_vies"
+msgid "Check VIES"
+msgstr "Validation VIES"
+
+msgctxt "model:ir.sequence,name:sequence_party"
+msgid "Party"
+msgstr "Tiers"
+
+msgctxt "model:ir.sequence.type,name:sequence_type_party"
+msgid "Party"
+msgstr "Tiers"
+
+msgctxt "model:ir.ui.menu,name:menu_address_form"
+msgid "Addresses"
+msgstr "Adresses"
+
+msgctxt "model:ir.ui.menu,name:menu_category_list"
+msgid "Categories"
+msgstr "Catégories"
+
+msgctxt "model:ir.ui.menu,name:menu_category_tree"
+msgid "Categories"
+msgstr "Catégories"
+
+msgctxt "model:ir.ui.menu,name:menu_configuration"
+msgid "Configuration"
+msgstr "Configuration"
+
+msgctxt "model:ir.ui.menu,name:menu_party"
+msgid "Party"
+msgstr "Tiers"
+
+msgctxt "model:ir.ui.menu,name:menu_party_configuration"
+msgid "Party Configuration"
+msgstr "Configuration des tiers"
+
+msgctxt "model:ir.ui.menu,name:menu_party_form"
+msgid "Parties"
+msgstr "Tiers"
+
+msgctxt "model:party.address,name:0"
+msgid "Address"
+msgstr "Adresse"
+
+msgctxt "model:party.category,name:0"
+msgid "Category"
+msgstr "Catégorie"
+
+msgctxt "model:party.check_vies.check,name:0"
+msgid "Check VIES - Check"
+msgstr "Validation VIES - Validé"
+
+msgctxt "model:party.check_vies.no_check,name:0"
+msgid "Check VIES - No Check"
+msgstr "Validation VIES - Non validé"
+
+msgctxt "model:party.configuration,name:0"
+msgid "Party Configuration"
+msgstr "Configuration des tiers"
+
+msgctxt "model:party.contact_mechanism,name:0"
+msgid "Contact Mechanism"
+msgstr "Moyen de contact"
+
+msgctxt "model:party.party,name:0"
+msgid "Party"
+msgstr "Tiers"
+
+msgctxt "model:party.party-party.category,name:0"
+msgid "Party - Category"
+msgstr "Tiers - Catégorie"
+
+msgctxt "model:res.group,name:group_party_admin"
+msgid "Party Administration"
+msgstr "Administration des tiers"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "E-Mail"
+msgstr "E-Mail"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Fax"
+msgstr "Fax"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "IRC"
+msgstr "IRC"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Jabber"
+msgstr "Jabber"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Mobile"
+msgstr "Mobile"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Other"
+msgstr "Autre"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Phone"
+msgstr "Téléphone"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "SIP"
+msgstr "SIP"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Skype"
+msgstr "Skype"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Website"
+msgstr "Site web"
+
+msgctxt "view:party.address:0"
+msgid "Addresses"
+msgstr "Adresses"
+
+msgctxt "view:party.category:0"
+msgid "Categories"
+msgstr "Catégories"
+
+msgctxt "view:party.category:0"
+msgid "Category"
+msgstr "Catégorie"
+
+msgctxt "view:party.check_vies.check:0"
+msgid "Parties Failed"
+msgstr "Tiers non validés"
+
+msgctxt "view:party.check_vies.check:0"
+msgid "Parties Succeed"
+msgstr "Tiers validés"
+
+msgctxt "view:party.check_vies.check:0"
+msgid "VAT Information Exchange System Results"
+msgstr "Système d'échange d'information TVA - Résultats"
+
+msgctxt "view:party.check_vies.no_check:0"
+msgid "VAT Information Exchange System"
+msgstr "Système d'échange d'information TVA"
+
+msgctxt "view:party.check_vies.no_check:0"
+msgid "You must have a recent version of \"vatnumber\" installed!"
+msgstr "Vous devez avoir une version récente de \"vatnumber\" installée !"
+
+msgctxt "view:party.configuration:0"
+msgid "Party Configuration"
+msgstr "Configuration des tiers"
+
+msgctxt "view:party.contact_mechanism:0"
+msgid "Contact Mechanism"
+msgstr "Moyen de contact"
+
+msgctxt "view:party.contact_mechanism:0"
+msgid "Contact Mechanisms"
+msgstr "Moyens de contact"
+
+msgctxt "view:party.party:0"
+msgid "Accounting"
+msgstr "Comptabilité"
+
+msgctxt "view:party.party:0"
+msgid "Addresses"
+msgstr "Adresses"
+
+msgctxt "view:party.party:0"
+msgid "Categories"
+msgstr "Catégories"
+
+msgctxt "view:party.party:0"
+msgid "Contact Mechanisms"
+msgstr "Moyens de contact"
+
+msgctxt "view:party.party:0"
+msgid "General"
+msgstr "Général"
+
+msgctxt "view:party.party:0"
+msgid "Parties"
+msgstr "Tiers"
+
+msgctxt "view:party.party:0"
+msgid "Party"
+msgstr "Tiers"
+
+msgctxt "view:party.party:0"
+msgid "Properties"
+msgstr "Propriétés"
+
+msgctxt "view:party.party:0"
+msgid "VAT"
+msgstr "TVA"
+
+msgctxt "view:party.party:0"
+msgid "_Accounting"
+msgstr "Compt_abilité"
+
+msgctxt "view:party.party:0"
+msgid "_General"
+msgstr "_Général"
+
+msgctxt "wizard_button:party.check_vies,check,end:0"
+msgid "Ok"
+msgstr "Ok"
+
+msgctxt "wizard_button:party.check_vies,no_check,end:0"
+msgid "Ok"
+msgstr "Ok"
diff --git a/locale/nl_NL.po b/locale/nl_NL.po
new file mode 100644
index 0000000..e4ba9d2
--- /dev/null
+++ b/locale/nl_NL.po
@@ -0,0 +1,499 @@
+# 
+msgid ""
+msgstr "Content-Type: text/plain; charset=utf-8\n"
+
+msgctxt "error:party.address:0"
+msgid "You can not modify the party of an address!"
+msgstr "U kunt niet de relatie van een adres veranderen!"
+
+msgctxt "error:party.category:0"
+msgid "The name of a party category must be unique by parent!"
+msgstr "De naam van een relatie-categorie moet per niveau uniek zijn!"
+
+msgctxt "error:party.category:0"
+msgid "You can not create recursive categories!"
+msgstr "U kunt geen recursieve categorieën aanmaken!"
+
+msgctxt "error:party.category:0"
+msgid "You can not use \" / \" in name field!"
+msgstr "Het \"/\" teken mag niet gebruikt worden in een naam veld!"
+
+msgctxt "error:party.check_vies:0"
+msgid "The VIES service is unavailable, try again later."
+msgstr "De VIES is niet beschikbaar, probeer het later nog eens!"
+
+msgctxt "error:party.contact_mechanism:0"
+msgid "You can not modify the party of a contact mechanism!"
+msgstr "U kunt niet de relatie van een contactmogelijkheid veranderen!"
+
+msgctxt "error:party.party:0"
+msgid "Invalid VAT number!"
+msgstr "Ongeldig BTW nummer!"
+
+msgctxt "error:party.party:0"
+msgid "The code of the party must be unique!"
+msgstr "De relatie-code moet uniek zijn!"
+
+msgctxt "field:party.address,active:0"
+msgid "Active"
+msgstr "Actief"
+
+msgctxt "field:party.address,city:0"
+msgid "City"
+msgstr "Stad"
+
+msgctxt "field:party.address,country:0"
+msgid "Country"
+msgstr "Land"
+
+msgctxt "field:party.address,full_address:0"
+msgid "Full Address"
+msgstr "Volledig adres"
+
+msgctxt "field:party.address,name:0"
+msgid "Name"
+msgstr "Aanhef"
+
+msgctxt "field:party.address,party:0"
+msgid "Party"
+msgstr "Relatie"
+
+msgctxt "field:party.address,rec_name:0"
+msgid "Name"
+msgstr "Naam"
+
+msgctxt "field:party.address,sequence:0"
+msgid "Sequence"
+msgstr "Reeks"
+
+msgctxt "field:party.address,street:0"
+msgid "Street"
+msgstr "Straat"
+
+msgctxt "field:party.address,streetbis:0"
+msgid "Street (bis)"
+msgstr "Extra aanduiding"
+
+msgctxt "field:party.address,subdivision:0"
+msgid "Subdivision"
+msgstr "Provincie"
+
+msgctxt "field:party.address,zip:0"
+msgid "Zip"
+msgstr "Postcode"
+
+msgctxt "field:party.category,active:0"
+msgid "Active"
+msgstr "Actief"
+
+msgctxt "field:party.category,childs:0"
+msgid "Children"
+msgstr "Onderliggende niveaus"
+
+msgctxt "field:party.category,name:0"
+msgid "Name"
+msgstr "Naam"
+
+msgctxt "field:party.category,parent:0"
+msgid "Parent"
+msgstr "Bovenliggend niveau"
+
+msgctxt "field:party.category,rec_name:0"
+msgid "Name"
+msgstr "Naam"
+
+msgctxt "field:party.check_vies.check,parties_failed:0"
+msgid "Parties Failed"
+msgstr "Controle relatie mislukt"
+
+msgctxt "field:party.check_vies.check,parties_succeed:0"
+msgid "Parties Succeed"
+msgstr "Controle relatie gelukt"
+
+#, fuzzy
+msgctxt "field:party.configuration,party_lang:0"
+msgid "Party Language"
+msgstr "Taal relatie"
+
+msgctxt "field:party.configuration,party_sequence:0"
+msgid "Party Sequence"
+msgstr "Relatiecode"
+
+msgctxt "field:party.configuration,rec_name:0"
+msgid "Name"
+msgstr "Naam"
+
+msgctxt "field:party.contact_mechanism,active:0"
+msgid "Active"
+msgstr "Actief"
+
+msgctxt "field:party.contact_mechanism,comment:0"
+msgid "Comment"
+msgstr "Opmerking"
+
+msgctxt "field:party.contact_mechanism,email:0"
+msgid "E-Mail"
+msgstr "E-mail"
+
+msgctxt "field:party.contact_mechanism,other_value:0"
+msgid "Value"
+msgstr "Waarde"
+
+msgctxt "field:party.contact_mechanism,party:0"
+msgid "Party"
+msgstr "Relatie"
+
+msgctxt "field:party.contact_mechanism,rec_name:0"
+msgid "Name"
+msgstr "Naam"
+
+msgctxt "field:party.contact_mechanism,sequence:0"
+msgid "Sequence"
+msgstr "Reeks"
+
+msgctxt "field:party.contact_mechanism,sip:0"
+msgid "SIP"
+msgstr "SIP"
+
+msgctxt "field:party.contact_mechanism,skype:0"
+msgid "Skype"
+msgstr "Skype"
+
+msgctxt "field:party.contact_mechanism,type:0"
+msgid "Type"
+msgstr "Type"
+
+msgctxt "field:party.contact_mechanism,value:0"
+msgid "Value"
+msgstr "Waarde"
+
+msgctxt "field:party.contact_mechanism,website:0"
+msgid "Website"
+msgstr "Website"
+
+msgctxt "field:party.party,active:0"
+msgid "Active"
+msgstr "Actief"
+
+msgctxt "field:party.party,addresses:0"
+msgid "Addresses"
+msgstr "Adressen"
+
+msgctxt "field:party.party,categories:0"
+msgid "Categories"
+msgstr "Categorieën"
+
+msgctxt "field:party.party,code:0"
+msgid "Code"
+msgstr "Code"
+
+msgctxt "field:party.party,code_length:0"
+msgid "Code Length"
+msgstr "Lengte code"
+
+msgctxt "field:party.party,contact_mechanisms:0"
+msgid "Contact Mechanisms"
+msgstr "Contactmogelijkheden"
+
+msgctxt "field:party.party,email:0"
+msgid "E-Mail"
+msgstr "E-mail"
+
+msgctxt "field:party.party,fax:0"
+msgid "Fax"
+msgstr "Fax"
+
+msgctxt "field:party.party,full_name:0"
+msgid "Full Name"
+msgstr "Naam voluit"
+
+msgctxt "field:party.party,lang:0"
+msgid "Language"
+msgstr "Taal"
+
+msgctxt "field:party.party,mobile:0"
+msgid "Mobile"
+msgstr "Mobiel"
+
+msgctxt "field:party.party,name:0"
+msgid "Name"
+msgstr "Naam"
+
+msgctxt "field:party.party,phone:0"
+msgid "Phone"
+msgstr "Telefoon"
+
+msgctxt "field:party.party,rec_name:0"
+msgid "Name"
+msgstr "Naam"
+
+msgctxt "field:party.party,vat_code:0"
+msgid "VAT Code"
+msgstr "BTW-nummer"
+
+msgctxt "field:party.party,vat_country:0"
+msgid "VAT Country"
+msgstr "BTW-land"
+
+msgctxt "field:party.party,vat_number:0"
+msgid "VAT Number"
+msgstr "BTW-nummer"
+
+msgctxt "field:party.party,website:0"
+msgid "Website"
+msgstr "Website"
+
+msgctxt "field:party.party-party.category,category:0"
+msgid "Category"
+msgstr "Categorie"
+
+msgctxt "field:party.party-party.category,party:0"
+msgid "Party"
+msgstr "Relatie"
+
+msgctxt "field:party.party-party.category,rec_name:0"
+msgid "Name"
+msgstr "Naam"
+
+msgctxt "help:party.configuration,party_lang:0"
+msgid "The value set on this field will preset the language on new parties"
+msgstr ""
+
+msgctxt "help:party.party,vat_country:0"
+msgid "Setting VAT country will enable validation of the VAT number."
+msgstr "De keuze van een BTW land maakt controle van het BTW nummer mogelijk."
+
+msgctxt "help:party.party,vat_number:0"
+msgid "Value Added Tax number"
+msgstr "Nummer omzetbelasting"
+
+msgctxt "model:ir.action,name:act_address_form"
+msgid "Addresses"
+msgstr "Adressen"
+
+#, fuzzy
+msgctxt "model:ir.action,name:act_category_list"
+msgid "Categories"
+msgstr "Categorieën"
+
+msgctxt "model:ir.action,name:act_category_tree"
+msgid "Categories"
+msgstr "Categorieën"
+
+msgctxt "model:ir.action,name:act_party_by_category"
+msgid "Parties by Category"
+msgstr "Relaties per categorie"
+
+msgctxt "model:ir.action,name:act_party_configuration_form"
+msgid "Party Configuration"
+msgstr "Relatie instellingen"
+
+msgctxt "model:ir.action,name:act_party_form"
+msgid "Parties"
+msgstr "Relaties"
+
+msgctxt "model:ir.action,name:report_label"
+msgid "Labels"
+msgstr "Etiketten"
+
+msgctxt "model:ir.action,name:wizard_check_vies"
+msgid "Check VIES"
+msgstr "Check VIES"
+
+msgctxt "model:ir.sequence,name:sequence_party"
+msgid "Party"
+msgstr "Relatie"
+
+msgctxt "model:ir.sequence.type,name:sequence_type_party"
+msgid "Party"
+msgstr "Relatie"
+
+msgctxt "model:ir.ui.menu,name:menu_address_form"
+msgid "Addresses"
+msgstr "Adressen"
+
+#, fuzzy
+msgctxt "model:ir.ui.menu,name:menu_category_list"
+msgid "Categories"
+msgstr "Categorieën"
+
+msgctxt "model:ir.ui.menu,name:menu_category_tree"
+msgid "Categories"
+msgstr "Categorieën"
+
+msgctxt "model:ir.ui.menu,name:menu_configuration"
+msgid "Configuration"
+msgstr "Instellingen"
+
+#, fuzzy
+msgctxt "model:ir.ui.menu,name:menu_party"
+msgid "Party"
+msgstr "Relatiebeheer"
+
+msgctxt "model:ir.ui.menu,name:menu_party_configuration"
+msgid "Party Configuration"
+msgstr "Relatie instellingen"
+
+msgctxt "model:ir.ui.menu,name:menu_party_form"
+msgid "Parties"
+msgstr "Relaties"
+
+msgctxt "model:party.address,name:0"
+msgid "Address"
+msgstr "Adres"
+
+msgctxt "model:party.category,name:0"
+msgid "Category"
+msgstr "Categorie"
+
+msgctxt "model:party.check_vies.check,name:0"
+msgid "Check VIES - Check"
+msgstr "Check VIES - Oké"
+
+msgctxt "model:party.check_vies.no_check,name:0"
+msgid "Check VIES - No Check"
+msgstr "Check VIES - Mislukt"
+
+msgctxt "model:party.configuration,name:0"
+msgid "Party Configuration"
+msgstr "Relatie instellingen"
+
+msgctxt "model:party.contact_mechanism,name:0"
+msgid "Contact Mechanism"
+msgstr "Contactmogelijkheid"
+
+msgctxt "model:party.party,name:0"
+msgid "Party"
+msgstr "Relatie"
+
+msgctxt "model:party.party-party.category,name:0"
+msgid "Party - Category"
+msgstr "Relatie categorie"
+
+msgctxt "model:res.group,name:group_party_admin"
+msgid "Party Administration"
+msgstr "Relatiebeheer"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "E-Mail"
+msgstr "E-mail"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Fax"
+msgstr "Fax"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "IRC"
+msgstr "IRC"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Jabber"
+msgstr "Jabber"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Mobile"
+msgstr "Mobiel"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Other"
+msgstr "Overig"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Phone"
+msgstr "Telefoon"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "SIP"
+msgstr "SIP"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Skype"
+msgstr "Skype"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Website"
+msgstr "Website"
+
+msgctxt "view:party.address:0"
+msgid "Addresses"
+msgstr "Adressen"
+
+msgctxt "view:party.category:0"
+msgid "Categories"
+msgstr "Categorieën"
+
+msgctxt "view:party.category:0"
+msgid "Category"
+msgstr "Categorie"
+
+msgctxt "view:party.check_vies.check:0"
+msgid "Parties Failed"
+msgstr "Controle relatie mislukt"
+
+msgctxt "view:party.check_vies.check:0"
+msgid "Parties Succeed"
+msgstr "Controle relatie gelukt"
+
+msgctxt "view:party.check_vies.check:0"
+msgid "VAT Information Exchange System Results"
+msgstr "BTW Informatie Dienst"
+
+msgctxt "view:party.check_vies.no_check:0"
+msgid "VAT Information Exchange System"
+msgstr "BTW Informatie Dienst"
+
+msgctxt "view:party.check_vies.no_check:0"
+msgid "You must have a recent version of \"vatnumber\" installed!"
+msgstr "U moet een recente versie van \"python-vatnumber\" geïnstalleerd hebben!"
+
+msgctxt "view:party.configuration:0"
+msgid "Party Configuration"
+msgstr "Relatie instellingen"
+
+msgctxt "view:party.contact_mechanism:0"
+msgid "Contact Mechanism"
+msgstr "Contactmogelijkheid"
+
+msgctxt "view:party.contact_mechanism:0"
+msgid "Contact Mechanisms"
+msgstr "Contactmogelijkheden"
+
+msgctxt "view:party.party:0"
+msgid "Accounting"
+msgstr "Financieel"
+
+msgctxt "view:party.party:0"
+msgid "Addresses"
+msgstr "Adressen"
+
+msgctxt "view:party.party:0"
+msgid "Categories"
+msgstr "Categorieën"
+
+msgctxt "view:party.party:0"
+msgid "Contact Mechanisms"
+msgstr "Contactmogelijkheden"
+
+msgctxt "view:party.party:0"
+msgid "General"
+msgstr "Algemeen"
+
+msgctxt "view:party.party:0"
+msgid "Parties"
+msgstr "Relaties"
+
+msgctxt "view:party.party:0"
+msgid "Party"
+msgstr "Relatie"
+
+msgctxt "view:party.party:0"
+msgid "VAT"
+msgstr "Omzetbelasting"
+
+msgctxt "wizard_button:party.check_vies,check,end:0"
+msgid "Ok"
+msgstr "Oké"
+
+msgctxt "wizard_button:party.check_vies,no_check,end:0"
+msgid "Ok"
+msgstr "Oké"
diff --git a/locale/ru_RU.po b/locale/ru_RU.po
new file mode 100644
index 0000000..5e8bb40
--- /dev/null
+++ b/locale/ru_RU.po
@@ -0,0 +1,529 @@
+# 
+msgid ""
+msgstr "Content-Type: text/plain; charset=utf-8\n"
+
+msgctxt "error:party.address:0"
+msgid "You can not modify the party of an address!"
+msgstr ""
+
+msgctxt "error:party.category:0"
+msgid "The name of a party category must be unique by parent!"
+msgstr ""
+
+msgctxt "error:party.category:0"
+msgid "You can not create recursive categories!"
+msgstr "Вы не можете создавать рекурсивные категории!"
+
+msgctxt "error:party.category:0"
+msgid "You can not use \" / \" in name field!"
+msgstr ""
+
+msgctxt "error:party.check_vies:0"
+msgid "The VIES service is unavailable, try again later."
+msgstr ""
+
+msgctxt "error:party.contact_mechanism:0"
+msgid "You can not modify the party of a contact mechanism!"
+msgstr ""
+
+msgctxt "error:party.party:0"
+msgid "Invalid VAT number!"
+msgstr "Ошибка в номере ИНН"
+
+msgctxt "error:party.party:0"
+msgid "The code of the party must be unique!"
+msgstr "Код контрагента должен быть уникальным"
+
+msgctxt "field:party.address,active:0"
+msgid "Active"
+msgstr "Активный"
+
+msgctxt "field:party.address,city:0"
+msgid "City"
+msgstr "Город"
+
+msgctxt "field:party.address,country:0"
+msgid "Country"
+msgstr "Страна"
+
+#, fuzzy
+msgctxt "field:party.address,full_address:0"
+msgid "Full Address"
+msgstr "Полный адрес"
+
+msgctxt "field:party.address,name:0"
+msgid "Name"
+msgstr "Наименование"
+
+msgctxt "field:party.address,party:0"
+msgid "Party"
+msgstr "Контрагент"
+
+msgctxt "field:party.address,rec_name:0"
+msgid "Name"
+msgstr "Наименование"
+
+msgctxt "field:party.address,sequence:0"
+msgid "Sequence"
+msgstr "Последовательность"
+
+msgctxt "field:party.address,street:0"
+msgid "Street"
+msgstr "улица"
+
+msgctxt "field:party.address,streetbis:0"
+msgid "Street (bis)"
+msgstr "улица (доп.)"
+
+msgctxt "field:party.address,subdivision:0"
+msgid "Subdivision"
+msgstr "Подраздел"
+
+msgctxt "field:party.address,zip:0"
+msgid "Zip"
+msgstr "Индекс"
+
+msgctxt "field:party.category,active:0"
+msgid "Active"
+msgstr "Активный"
+
+msgctxt "field:party.category,childs:0"
+msgid "Children"
+msgstr "Подчиненый"
+
+msgctxt "field:party.category,name:0"
+msgid "Name"
+msgstr "Наименование"
+
+msgctxt "field:party.category,parent:0"
+msgid "Parent"
+msgstr "Основной"
+
+msgctxt "field:party.category,rec_name:0"
+msgid "Name"
+msgstr "Наименование"
+
+msgctxt "field:party.check_vies.check,parties_failed:0"
+msgid "Parties Failed"
+msgstr ""
+
+msgctxt "field:party.check_vies.check,parties_succeed:0"
+msgid "Parties Succeed"
+msgstr ""
+
+msgctxt "field:party.configuration,party_lang:0"
+msgid "Party Language"
+msgstr ""
+
+msgctxt "field:party.configuration,party_sequence:0"
+msgid "Party Sequence"
+msgstr ""
+
+msgctxt "field:party.configuration,rec_name:0"
+msgid "Name"
+msgstr "Наименование"
+
+msgctxt "field:party.contact_mechanism,active:0"
+msgid "Active"
+msgstr "Активный"
+
+msgctxt "field:party.contact_mechanism,comment:0"
+msgid "Comment"
+msgstr "Комментарии"
+
+msgctxt "field:party.contact_mechanism,email:0"
+msgid "E-Mail"
+msgstr "Эл.почта"
+
+msgctxt "field:party.contact_mechanism,other_value:0"
+msgid "Value"
+msgstr "Значение"
+
+msgctxt "field:party.contact_mechanism,party:0"
+msgid "Party"
+msgstr "Контрагент"
+
+msgctxt "field:party.contact_mechanism,rec_name:0"
+msgid "Name"
+msgstr "Наименование"
+
+msgctxt "field:party.contact_mechanism,sequence:0"
+msgid "Sequence"
+msgstr "Последовательность"
+
+msgctxt "field:party.contact_mechanism,sip:0"
+msgid "SIP"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,skype:0"
+msgid "Skype"
+msgstr ""
+
+msgctxt "field:party.contact_mechanism,type:0"
+msgid "Type"
+msgstr "Тип"
+
+msgctxt "field:party.contact_mechanism,value:0"
+msgid "Value"
+msgstr "Значение"
+
+msgctxt "field:party.contact_mechanism,website:0"
+msgid "Website"
+msgstr "Сайт"
+
+msgctxt "field:party.party,active:0"
+msgid "Active"
+msgstr "Активный"
+
+msgctxt "field:party.party,addresses:0"
+msgid "Addresses"
+msgstr "Адреса"
+
+msgctxt "field:party.party,categories:0"
+msgid "Categories"
+msgstr "Категория"
+
+msgctxt "field:party.party,code:0"
+msgid "Code"
+msgstr "Код"
+
+msgctxt "field:party.party,code_length:0"
+msgid "Code Length"
+msgstr "Длина Кода"
+
+msgctxt "field:party.party,contact_mechanisms:0"
+msgid "Contact Mechanisms"
+msgstr "Контактный способы"
+
+msgctxt "field:party.party,email:0"
+msgid "E-Mail"
+msgstr "Эл.почта"
+
+msgctxt "field:party.party,fax:0"
+msgid "Fax"
+msgstr "Факс"
+
+msgctxt "field:party.party,full_name:0"
+msgid "Full Name"
+msgstr "Полное наименование"
+
+msgctxt "field:party.party,lang:0"
+msgid "Language"
+msgstr "Язык"
+
+msgctxt "field:party.party,mobile:0"
+msgid "Mobile"
+msgstr "сот.телефон"
+
+#, fuzzy
+msgctxt "field:party.party,name:0"
+msgid "Name"
+msgstr "Наименование"
+
+msgctxt "field:party.party,phone:0"
+msgid "Phone"
+msgstr "Телефон"
+
+msgctxt "field:party.party,rec_name:0"
+msgid "Name"
+msgstr "Наименование"
+
+msgctxt "field:party.party,vat_code:0"
+msgid "VAT Code"
+msgstr "Код ИНН"
+
+msgctxt "field:party.party,vat_country:0"
+msgid "VAT Country"
+msgstr "Страна ИНН "
+
+msgctxt "field:party.party,vat_number:0"
+msgid "VAT Number"
+msgstr "ИНН"
+
+msgctxt "field:party.party,website:0"
+msgid "Website"
+msgstr "Сайт"
+
+msgctxt "field:party.party-party.category,category:0"
+msgid "Category"
+msgstr "Категории"
+
+msgctxt "field:party.party-party.category,party:0"
+msgid "Party"
+msgstr "Контрагент"
+
+msgctxt "field:party.party-party.category,rec_name:0"
+msgid "Name"
+msgstr "Наименование"
+
+msgctxt "help:party.configuration,party_lang:0"
+msgid "The value set on this field will preset the language on new parties"
+msgstr ""
+
+msgctxt "help:party.party,vat_country:0"
+msgid "Setting VAT country will enable validation of the VAT number."
+msgstr "Установите страну регистрации организации для проверки"
+
+msgctxt "help:party.party,vat_number:0"
+msgid "Value Added Tax number"
+msgstr "ИНН"
+
+msgctxt "model:ir.action,name:act_address_form"
+msgid "Addresses"
+msgstr "Адреса"
+
+#, fuzzy
+msgctxt "model:ir.action,name:act_category_list"
+msgid "Categories"
+msgstr "Категория"
+
+msgctxt "model:ir.action,name:act_category_tree"
+msgid "Categories"
+msgstr "Категория"
+
+msgctxt "model:ir.action,name:act_party_by_category"
+msgid "Parties by Category"
+msgstr "Контрагенты по категориям"
+
+msgctxt "model:ir.action,name:act_party_configuration_form"
+msgid "Party Configuration"
+msgstr "Настройка контрагентов"
+
+msgctxt "model:ir.action,name:act_party_form"
+msgid "Parties"
+msgstr "Контрагенты"
+
+msgctxt "model:ir.action,name:report_label"
+msgid "Labels"
+msgstr ""
+
+msgctxt "model:ir.action,name:wizard_check_vies"
+msgid "Check VIES"
+msgstr "Проверить VIES"
+
+msgctxt "model:ir.sequence,name:sequence_party"
+msgid "Party"
+msgstr "Контрагент"
+
+msgctxt "model:ir.sequence.type,name:sequence_type_party"
+msgid "Party"
+msgstr "Контрагент"
+
+msgctxt "model:ir.ui.menu,name:menu_address_form"
+msgid "Addresses"
+msgstr "Адреса"
+
+#, fuzzy
+msgctxt "model:ir.ui.menu,name:menu_category_list"
+msgid "Categories"
+msgstr "Категория"
+
+msgctxt "model:ir.ui.menu,name:menu_category_tree"
+msgid "Categories"
+msgstr "Категория"
+
+msgctxt "model:ir.ui.menu,name:menu_configuration"
+msgid "Configuration"
+msgstr "Конфигурация"
+
+#, fuzzy
+msgctxt "model:ir.ui.menu,name:menu_party"
+msgid "Party"
+msgstr "Организации"
+
+msgctxt "model:ir.ui.menu,name:menu_party_configuration"
+msgid "Party Configuration"
+msgstr "Настройка контрагентов"
+
+msgctxt "model:ir.ui.menu,name:menu_party_form"
+msgid "Parties"
+msgstr "Контрагенты"
+
+msgctxt "model:party.address,name:0"
+msgid "Address"
+msgstr "Адрес"
+
+msgctxt "model:party.category,name:0"
+msgid "Category"
+msgstr "Категории"
+
+msgctxt "model:party.check_vies.check,name:0"
+msgid "Check VIES - Check"
+msgstr "Проверить VIES - проверить"
+
+msgctxt "model:party.check_vies.no_check,name:0"
+msgid "Check VIES - No Check"
+msgstr "Проверить VIES - не проверять"
+
+msgctxt "model:party.configuration,name:0"
+msgid "Party Configuration"
+msgstr "Настройка контрагентов"
+
+#, fuzzy
+msgctxt "model:party.contact_mechanism,name:0"
+msgid "Contact Mechanism"
+msgstr "Контактный способ"
+
+msgctxt "model:party.party,name:0"
+msgid "Party"
+msgstr "Контрагент"
+
+msgctxt "model:party.party-party.category,name:0"
+msgid "Party - Category"
+msgstr "Контрагент - Категории"
+
+msgctxt "model:res.group,name:group_party_admin"
+msgid "Party Administration"
+msgstr "Администрирование контрагентов"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "E-Mail"
+msgstr "Эл.почта"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Fax"
+msgstr "Факс"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "IRC"
+msgstr ""
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Jabber"
+msgstr ""
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Mobile"
+msgstr "сот.телефон"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Other"
+msgstr "Прочий"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Phone"
+msgstr "Телефон"
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "SIP"
+msgstr ""
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Skype"
+msgstr ""
+
+msgctxt "selection:party.contact_mechanism,type:0"
+msgid "Website"
+msgstr "Сайт"
+
+msgctxt "view:party.address:0"
+msgid "Addresses"
+msgstr "Адреса"
+
+msgctxt "view:party.address:0"
+msgid "Job Function"
+msgstr "Должность"
+
+msgctxt "view:party.address:0"
+msgid "Notes"
+msgstr "Комментарии"
+
+msgctxt "view:party.category:0"
+msgid "Categories"
+msgstr "Категория"
+
+msgctxt "view:party.category:0"
+msgid "Category"
+msgstr "Категории"
+
+msgctxt "view:party.check_vies.check:0"
+msgid "Parties Failed"
+msgstr ""
+
+msgctxt "view:party.check_vies.check:0"
+msgid "Parties Succeed"
+msgstr ""
+
+msgctxt "view:party.check_vies.check:0"
+msgid "VAT Information Exchange System Results"
+msgstr "ИНН Система обмена информацией о результатах"
+
+msgctxt "view:party.check_vies.no_check:0"
+msgid "VAT Information Exchange System"
+msgstr "ИНН Система обмена информацией"
+
+msgctxt "view:party.check_vies.no_check:0"
+msgid "You must have a recent version of \"vatnumber\" installed!"
+msgstr ""
+
+msgctxt "view:party.configuration:0"
+msgid "Party Configuration"
+msgstr "Настройка контрагентов"
+
+msgctxt "view:party.contact_mechanism:0"
+msgid "Contact Mechanism"
+msgstr "Контактный способ"
+
+msgctxt "view:party.contact_mechanism:0"
+msgid "Contact Mechanisms"
+msgstr "Контактный способы"
+
+msgctxt "view:party.party:0"
+msgid "Account in Bank"
+msgstr "Счет в банке"
+
+msgctxt "view:party.party:0"
+msgid "Accounting"
+msgstr "Регистрационные данные"
+
+msgctxt "view:party.party:0"
+msgid "Accounts in Banks"
+msgstr "Счета в банках"
+
+msgctxt "view:party.party:0"
+msgid "Addresses"
+msgstr "Адреса"
+
+msgctxt "view:party.party:0"
+msgid "Categories"
+msgstr "Категория"
+
+msgctxt "view:party.party:0"
+msgid "Contact Mechanisms"
+msgstr "Контактный способы"
+
+msgctxt "view:party.party:0"
+msgid "Contacts"
+msgstr "Контактные лица"
+
+msgctxt "view:party.party:0"
+msgid "Document"
+msgstr "Документ"
+
+msgctxt "view:party.party:0"
+msgid "General"
+msgstr "Основной"
+
+msgctxt "view:party.party:0"
+msgid "Legal Document"
+msgstr "Регистрационный документ"
+
+msgctxt "view:party.party:0"
+msgid "Parties"
+msgstr "Контрагенты"
+
+msgctxt "view:party.party:0"
+msgid "Party"
+msgstr "Контрагент"
+
+msgctxt "view:party.party:0"
+msgid "VAT"
+msgstr "ИНН"
+
+msgctxt "wizard_button:party.check_vies,check,end:0"
+msgid "Ok"
+msgstr "Да"
+
+msgctxt "wizard_button:party.check_vies,no_check,end:0"
+msgid "Ok"
+msgstr "Да"
diff --git a/nl_NL.csv b/nl_NL.csv
deleted file mode 100644
index e6f6c3b..0000000
--- a/nl_NL.csv
+++ /dev/null
@@ -1,128 +0,0 @@
-type,name,res_id,src,value,fuzzy
-error,party.address,0,You can not modify the party of an address!,U kunt niet de relatie van een adres veranderen!,0
-error,party.category,0,The name of a party category must be unique by parent!,De naam van een relatie-categorie moet per niveau uniek zijn!,0
-error,party.category,0,You can not create recursive categories!,U kunt geen recursieve categorieën aanmaken!,0
-error,party.category,0,"You can not use "" / "" in name field!","Het ""/"" teken mag niet gebruikt worden in een naam veld!",0
-error,party.check_vies,0,"The VIES service is unavailable, try again later.","De VIES is niet beschikbaar, probeer het later nog eens!",0
-error,party.contact_mechanism,0,You can not modify the party of a contact mechanism!,U kunt niet de relatie van een contactmogelijkheid veranderen!,0
-error,party.party,0,Invalid VAT number!,Ongeldig BTW nummer!,0
-error,party.party,0,The code of the party must be unique!,De relatie-code moet uniek zijn!,0
-field,"party.address,active",0,Active,Actief,0
-field,"party.address,city",0,City,Stad,0
-field,"party.address,country",0,Country,Land,0
-field,"party.address,full_address",0,Full Address,Volledig adres,0
-field,"party.address,name",0,Name,Aanhef,0
-field,"party.address,party",0,Party,Relatie,0
-field,"party.address,rec_name",0,Name,Naam,0
-field,"party.address,sequence",0,Sequence,Reeks,0
-field,"party.address,street",0,Street,Straat,0
-field,"party.address,streetbis",0,Street (bis),Extra aanduiding,0
-field,"party.address,subdivision",0,Subdivision,Provincie,0
-field,"party.address,zip",0,Zip,Postcode,0
-field,"party.category,active",0,Active,Actief,0
-field,"party.category,childs",0,Children,Onderliggende niveaus,0
-field,"party.category,name",0,Name,Naam,0
-field,"party.category,parent",0,Parent,Bovenliggend niveau,0
-field,"party.category,rec_name",0,Name,Naam,0
-field,"party.check_vies.check,parties_failed",0,Parties Failed,Controle relatie mislukt,0
-field,"party.check_vies.check,parties_succeed",0,Parties Succeed,Controle relatie gelukt,0
-field,"party.configuration,party_sequence",0,Party Sequence,Relatiecode,0
-field,"party.configuration,rec_name",0,Name,Naam,0
-field,"party.contact_mechanism,active",0,Active,Actief,0
-field,"party.contact_mechanism,comment",0,Comment,Opmerking,0
-field,"party.contact_mechanism,email",0,E-Mail,E-mail,0
-field,"party.contact_mechanism,other_value",0,Value,Waarde,0
-field,"party.contact_mechanism,party",0,Party,Relatie,0
-field,"party.contact_mechanism,rec_name",0,Name,Naam,0
-field,"party.contact_mechanism,sequence",0,Sequence,Reeks,0
-field,"party.contact_mechanism,sip",0,SIP,SIP,0
-field,"party.contact_mechanism,skype",0,Skype,Skype,0
-field,"party.contact_mechanism,type",0,Type,Type,0
-field,"party.contact_mechanism,value",0,Value,Waarde,0
-field,"party.contact_mechanism,website",0,Website,Website,0
-field,"party.party,active",0,Active,Actief,0
-field,"party.party,addresses",0,Addresses,Adressen,0
-field,"party.party,categories",0,Categories,Categorieën,0
-field,"party.party,code",0,Code,Code,0
-field,"party.party,code_length",0,Code Length,Lengte code,0
-field,"party.party,contact_mechanisms",0,Contact Mechanisms,Contactmogelijkheden,0
-field,"party.party,email",0,E-Mail,E-mail,0
-field,"party.party,fax",0,Fax,Fax,0
-field,"party.party,full_name",0,Full Name,Naam voluit,0
-field,"party.party,lang",0,Language,Taal,0
-field,"party.party,mobile",0,Mobile,Mobiel,0
-field,"party.party,name",0,Name,Naam,0
-field,"party.party,phone",0,Phone,Telefoon,0
-field,"party.party,rec_name",0,Name,Naam,0
-field,"party.party,vat_code",0,VAT Code,BTW-nummer,0
-field,"party.party,vat_country",0,VAT Country,BTW-land,0
-field,"party.party,vat_number",0,VAT Number,BTW-nummer,0
-field,"party.party,website",0,Website,Website,0
-field,"party.party-party.category,category",0,Category,Categorie,0
-field,"party.party-party.category,party",0,Party,Relatie,0
-field,"party.party-party.category,rec_name",0,Name,Naam,0
-help,"party.party,vat_country",0,Setting VAT country will enable validation of the VAT number.,De keuze van een BTW land maakt controle van het BTW nummer mogelijk.,0
-help,"party.party,vat_number",0,Value Added Tax number,Nummer omzetbelasting,0
-model,"ir.action,name",act_address_form,Addresses,Adressen,0
-model,"ir.action,name",act_address_form2,Addresses,Adressen,0
-model,"ir.action,name",act_category_form,Categories,Categorieën,0
-model,"ir.action,name",act_category_form2,Categories,Categorieën,0
-model,"ir.action,name",act_category_tree,Categories,Categorieën,0
-model,"ir.action,name",act_party_by_category,Parties by Category,Relaties per categorie,0
-model,"ir.action,name",act_party_configuration_form,Party Configuration,Relatie instellingen,0
-model,"ir.action,name",act_party_form,Parties,Relaties,0
-model,"ir.action,name",act_party_form2,Parties,Relaties,0
-model,"ir.action,name",report_label,Labels,Etiketten,0
-model,"ir.action,name",wizard_check_vies,Check VIES,Check VIES,0
-model,"ir.sequence,name",sequence_party,Party,Relatie,0
-model,"ir.sequence.type,name",sequence_type_party,Party,Relatie,0
-model,"ir.ui.menu,name",menu_address_form,Addresses,Adressen,0
-model,"ir.ui.menu,name",menu_address_form2,New Address,Nieuw adres,0
-model,"ir.ui.menu,name",menu_category_form,Categories,Categorieën,0
-model,"ir.ui.menu,name",menu_category_form2,New category,Nieuwe categorie,0
-model,"ir.ui.menu,name",menu_category_tree,Categories,Categorieën,0
-model,"ir.ui.menu,name",menu_configuration,Configuration,Instellingen,0
-model,"ir.ui.menu,name",menu_party,Party Management,Relatiebeheer,0
-model,"ir.ui.menu,name",menu_party_configuration,Party Configuration,Relatie instellingen,0
-model,"ir.ui.menu,name",menu_party_form,Parties,Relaties,0
-model,"ir.ui.menu,name",menu_party_form2,New Party,Nieuwe relatie,0
-model,"party.address,name",0,Address,Adres,0
-model,"party.category,name",0,Category,Categorie,0
-model,"party.check_vies.check,name",0,Check VIES - Check,Check VIES - Oké,0
-model,"party.check_vies.no_check,name",0,Check VIES - No Check,Check VIES - Mislukt,0
-model,"party.configuration,name",0,Party Configuration,Relatie instellingen,0
-model,"party.contact_mechanism,name",0,Contact Mechanism,Contactmogelijkheid,0
-model,"party.party,name",0,Party,Relatie,0
-model,"party.party-party.category,name",0,Party - Category,Relatie categorie,0
-model,"res.group,name",group_party_admin,Party Administration,Relatiebeheer,0
-selection,"party.contact_mechanism,type",0,E-Mail,E-mail,0
-selection,"party.contact_mechanism,type",0,Fax,Fax,0
-selection,"party.contact_mechanism,type",0,IRC,IRC,0
-selection,"party.contact_mechanism,type",0,Jabber,Jabber,0
-selection,"party.contact_mechanism,type",0,Mobile,Mobiel,0
-selection,"party.contact_mechanism,type",0,Other,Overig,0
-selection,"party.contact_mechanism,type",0,Phone,Telefoon,0
-selection,"party.contact_mechanism,type",0,SIP,SIP,0
-selection,"party.contact_mechanism,type",0,Skype,Skype,0
-selection,"party.contact_mechanism,type",0,Website,Website,0
-view,party.address,0,Addresses,Adressen,0
-view,party.category,0,Categories,Categorieën,0
-view,party.category,0,Category,Categorie,0
-view,party.check_vies.check,0,Parties Failed,Controle relatie mislukt,0
-view,party.check_vies.check,0,Parties Succeed,Controle relatie gelukt,0
-view,party.check_vies.check,0,VAT Information Exchange System Results,BTW Informatie Dienst,0
-view,party.check_vies.no_check,0,VAT Information Exchange System,BTW Informatie Dienst,0
-view,party.check_vies.no_check,0,"You must have a recent version of ""vatnumber"" installed!","U moet een recente versie van ""python-vatnumber"" geïnstalleerd hebben!",0
-view,party.configuration,0,Party Configuration,Relatie instellingen,0
-view,party.contact_mechanism,0,Contact Mechanism,Contactmogelijkheid,0
-view,party.contact_mechanism,0,Contact Mechanisms,Contactmogelijkheden,0
-view,party.party,0,Accounting,Financieel,0
-view,party.party,0,Addresses,Adressen,0
-view,party.party,0,Categories,Categorieën,0
-view,party.party,0,Contact Mechanisms,Contactmogelijkheden,0
-view,party.party,0,General,Algemeen,0
-view,party.party,0,Parties,Relaties,0
-view,party.party,0,Party,Relatie,0
-view,party.party,0,VAT,Omzetbelasting,0
-wizard_button,"party.check_vies,check,end",0,Ok,Oké,0
-wizard_button,"party.check_vies,no_check,end",0,Ok,Oké,0
diff --git a/party.py b/party.py
index 2d27960..d5a3395 100644
--- a/party.py
+++ b/party.py
@@ -3,8 +3,9 @@
 import logging
 from trytond.model import ModelView, ModelSQL, fields
 from trytond.wizard import Wizard
-from trytond.pyson import Not, Bool, Eval
+from trytond.pyson import Bool, Eval
 from trytond.transaction import Transaction
+from trytond.pool import Pool
 
 HAS_VATNUMBER = False
 VAT_COUNTRIES = [('', '')]
@@ -18,8 +19,9 @@ except ImportError:
             'Unable to import vatnumber. VAT number validation disabled.')
 
 STATES = {
-    'readonly': Not(Bool(Eval('active'))),
+    'readonly': ~Eval('active', True),
 }
+DEPENDS = ['active']
 
 
 class Party(ModelSQL, ModelView):
@@ -28,29 +30,32 @@ class Party(ModelSQL, ModelView):
     _name = "party.party"
 
     name = fields.Char('Name', required=True, select=1,
-           states=STATES)
+        states=STATES, depends=DEPENDS)
     code = fields.Char('Code', required=True, select=1,
             readonly=True, order_field="%(table)s.code_length %(order)s, " \
                     "%(table)s.code %(order)s")
     code_length = fields.Integer('Code Length', select=1, readonly=True)
-    lang = fields.Many2One("ir.lang", 'Language', states=STATES)
+    lang = fields.Many2One("ir.lang", 'Language', states=STATES,
+        depends=DEPENDS)
     vat_number = fields.Char('VAT Number', help="Value Added Tax number",
-            states={
-                'readonly': Not(Bool(Eval('active'))),
-                'required': Bool(Eval('vat_country')),
-            })
+        states={
+            'readonly': ~Eval('active', True),
+            'required': Bool(Eval('vat_country')),
+            },
+        depends=['active', 'vat_country'])
     vat_country = fields.Selection(VAT_COUNTRIES, 'VAT Country', states=STATES,
+        depends=DEPENDS,
         help="Setting VAT country will enable validation of the VAT number.",
         translate=False)
     vat_code = fields.Function(fields.Char('VAT Code',
         on_change_with=['vat_number', 'vat_country']), 'get_vat_code',
         searcher='search_vat_code')
     addresses = fields.One2Many('party.address', 'party',
-           'Addresses', states=STATES)
+        'Addresses', states=STATES, depends=DEPENDS)
     contact_mechanisms = fields.One2Many('party.contact_mechanism', 'party',
-            'Contact Mechanisms', states=STATES)
+        'Contact Mechanisms', states=STATES, depends=DEPENDS)
     categories = fields.Many2Many('party.party-party.category',
-            'party', 'category', 'Categories', states=STATES)
+        'party', 'category', 'Categories', states=STATES, depends=DEPENDS)
     active = fields.Boolean('Active', select=1)
     full_name = fields.Function(fields.Char('Full Name'), 'get_full_name')
     phone = fields.Function(fields.Char('Phone'), 'get_mechanism')
@@ -80,7 +85,7 @@ class Party(ModelSQL, ModelView):
         return Transaction().context.get('categories', [])
 
     def default_addresses(self):
-        address_obj = self.pool.get('party.address')
+        address_obj = Pool().get('party.address')
         fields_names = list(x for x in set(address_obj._columns.keys()
                 + address_obj._inherit_fields.keys())
                 if x not in ['id', 'create_uid', 'create_date',
@@ -88,7 +93,7 @@ class Party(ModelSQL, ModelView):
         return [address_obj.default_get(fields_names)]
 
     def default_lang(self):
-        config_obj = self.pool.get('party.configuration')
+        config_obj = Pool().get('party.configuration')
         config = config_obj.browse(1)
         return config.party_lang.id
 
@@ -137,8 +142,8 @@ class Party(ModelSQL, ModelView):
         return res
 
     def create(self, values):
-        sequence_obj = self.pool.get('ir.sequence')
-        config_obj = self.pool.get('party.configuration')
+        sequence_obj = Pool().get('ir.sequence')
+        config_obj = Pool().get('party.configuration')
 
         values = values.copy()
         if not values.get('code'):
@@ -155,7 +160,7 @@ class Party(ModelSQL, ModelView):
         return super(Party, self).write(ids, vals)
 
     def copy(self, ids, default=None):
-        address_obj = self.pool.get('party.address')
+        address_obj = Pool().get('party.address')
 
         int_id = False
         if isinstance(ids, (int, long)):
@@ -192,7 +197,7 @@ class Party(ModelSQL, ModelView):
         Try to find an address for the given type, if no type match
         the first address is return.
         """
-        address_obj = self.pool.get("party.address")
+        address_obj = Pool().get("party.address")
         address_ids = address_obj.search(
             [("party", "=", party_id), ("active", "=", True)],
             order=[('sequence', 'ASC'), ('id', 'ASC')])
@@ -261,13 +266,13 @@ class CheckVIESCheck(ModelView):
     _name = 'party.check_vies.check'
     _description = __doc__
     parties_succeed = fields.Many2Many('party.party', None, None,
-            'Parties Succeed', readonly=True, states={
-                'invisible': Not(Bool(Eval('parties_succeed'))),
-                })
+        'Parties Succeed', readonly=True, states={
+            'invisible': ~Eval('parties_succeed'),
+            })
     parties_failed = fields.Many2Many('party.party', None, None,
-            'Parties Failed', readonly=True, states={
-                'invisible': Not(Bool(Eval('parties_failed'))),
-                })
+        'Parties Failed', readonly=True, states={
+            'invisible': ~Eval('parties_failed'),
+            })
 
 CheckVIESCheck()
 
@@ -316,7 +321,7 @@ class CheckVIES(Wizard):
         return 'check'
 
     def _check(self, data):
-        party_obj = self.pool.get('party.party')
+        party_obj = Pool().get('party.party')
         res = {
             'parties_succeed': [],
             'parties_failed': [],
diff --git a/party.xml b/party.xml
index c5602b6..a11cc55 100644
--- a/party.xml
+++ b/party.xml
@@ -6,23 +6,31 @@ this repository contains the full copyright notices and license terms. -->
         <record model="res.group" id="group_party_admin">
             <field name="name">Party Administration</field>
         </record>
-        <record model="res.user" id="res.user_admin">
-            <field name="groups" eval="[('add', ref('group_party_admin'))]"/>
+        <record model="res.user-res.group"
+            id="user_admin_group_party_admin">
+            <field name="user" ref="res.user_admin"/>
+            <field name="group" ref="group_party_admin"/>
         </record>
-        <record model="res.user" id="res.user_trigger">
-            <field name="groups" eval="[('add', ref('group_party_admin'))]"/>
+        <record model="res.user-res.group"
+            id="user_trigger_group_party_admin">
+            <field name="user" ref="res.user_trigger"/>
+            <field name="group" ref="group_party_admin"/>
         </record>
 
         <record model="ir.ui.icon" id="party_icon">
             <field name="name">tryton-party</field>
             <field name="path">icons/tryton-party.svg</field>
         </record>
-        <menuitem name="Party Management" sequence="0" id="menu_party"
+        <menuitem name="Party" sequence="0" id="menu_party"
             icon="tryton-party"/>
 
         <menuitem name="Configuration" parent="menu_party"
-            id="menu_configuration" groups="group_party_admin"
-            sequence="0" icon="tryton-preferences"/>
+            id="menu_configuration" sequence="0" icon="tryton-preferences"/>
+        <record model="ir.ui.menu-res.group"
+            id="menu_party_group_party_admin">
+            <field name="menu" ref="menu_configuration"/>
+            <field name="group" ref="group_party_admin"/>
+        </record>
 
         <record model="ir.ui.view" id="party_view_tree">
             <field name="model">party.party</field>
@@ -30,10 +38,10 @@ this repository contains the full copyright notices and license terms. -->
             <field name="arch" type="xml">
                 <![CDATA[
                 <tree string="Parties">
-                    <field name="code" select="1"/>
-                    <field name="name" select="1"/>
-                    <field name="lang" select="2"/>
-                    <field name="vat_code" select="1"/>
+                    <field name="code"/>
+                    <field name="name"/>
+                    <field name="lang"/>
+                    <field name="vat_code"/>
                 </tree>
                 ]]>
             </field>
@@ -79,14 +87,11 @@ this repository contains the full copyright notices and license terms. -->
                                     <field name="comment"/>
                                 </tree>
                             </field>
-                            <group col="1" colspan="2" id="categories">
-                                <separator string="Categories" id="categories"/>
-                                <field name="categories">
-                                    <tree string="Categories" fill="1">
-                                        <field name="rec_name" select="1"/>
-                                    </tree>
-                                </field>
-                            </group>
+                            <field name="categories" colspan="2">
+                                <tree string="Categories" fill="1">
+                                    <field name="rec_name"/>
+                                </tree>
+                            </field>
                         </page>
                         <page string="Accounting" id="accounting">
                             <separator string="VAT" colspan="4" id="vat"/>
@@ -116,22 +121,7 @@ this repository contains the full copyright notices and license terms. -->
         </record>
         <menuitem parent="menu_party" sequence="1"
             action="act_party_form" id="menu_party_form"/>
-        <record model="ir.action.act_window" id="act_party_form2">
-            <field name="name">Parties</field>
-            <field name="res_model">party.party</field>
-        </record>
-        <record model="ir.action.act_window.view" id="act_party_form2_view1">
-            <field name="sequence" eval="10"/>
-            <field name="view" ref="party_view_form"/>
-            <field name="act_window" ref="act_party_form2"/>
-        </record>
-        <record model="ir.action.act_window.view" id="act_party_form2_view2">
-            <field name="sequence" eval="20"/>
-            <field name="view" ref="party_view_tree"/>
-            <field name="act_window" ref="act_party_form2"/>
-        </record>
-        <menuitem name="New Party" parent="menu_party_form" sequence="1"
-            action="act_party_form2" id="menu_party_form2"/>
+
         <record model="ir.action.act_window" id="act_party_by_category">
             <field name="name">Parties by Category</field>
             <field name="res_model">party.party</field>
@@ -140,7 +130,7 @@ this repository contains the full copyright notices and license terms. -->
         </record>
         <record model="ir.action.keyword" id="act_party_by_category_keyword1">
             <field name="keyword">tree_open</field>
-            <field name="model">party.category,0</field>
+            <field name="model">party.category,-1</field>
             <field name="action" ref="act_party_by_category"/>
         </record>
         <record model="ir.action.report" id="report_label">
@@ -151,16 +141,25 @@ this repository contains the full copyright notices and license terms. -->
         </record>
         <record model="ir.action.keyword" id="report_label_party">
             <field name="keyword">form_print</field>
-            <field name="model">party.party,0</field>
+            <field name="model">party.party,-1</field>
             <field name="action" ref="report_label"/>
         </record>
 
         <record model="ir.sequence.type" id="sequence_type_party">
             <field name="name">Party</field>
             <field name="code">party.party</field>
-            <field name="groups"
-                eval="[('add', ref('res.group_admin')), ('add', ref('group_party_admin'))]"/>
         </record>
+        <record model="ir.sequence.type-res.group"
+            id="sequence_type_party_group_admin">
+            <field name="sequence_type" ref="sequence_type_party"/>
+            <field name="group" ref="res.group_admin"/>
+        </record>
+        <record model="ir.sequence.type-res.group"
+            id="sequence_type_party_group_party_admin">
+            <field name="sequence_type" ref="sequence_type_party"/>
+            <field name="group" ref="group_party_admin"/>
+        </record>
+
         <record model="ir.sequence" id="sequence_party">
             <field name="name">Party</field>
             <field name="code">party.party</field>
@@ -173,7 +172,7 @@ this repository contains the full copyright notices and license terms. -->
         </record>
         <record model="ir.action.keyword" id="check_vies_keyword">
             <field name="keyword">form_action</field>
-            <field name="model">party.party,0</field>
+            <field name="model">party.party,-1</field>
             <field name="action" ref="wizard_check_vies"/>
         </record>
 
@@ -183,7 +182,10 @@ this repository contains the full copyright notices and license terms. -->
             <field name="arch" type="xml">
                 <![CDATA[
                 <form string="VAT Information Exchange System">
-                    <label string="You must have a recent version of "vatnumber" installed!" id="vatnumber"/>
+                    <image name="tryton-dialog-information" xexpand="0" xfill="0"/>
+                    <label string="You must have a recent version of "vatnumber" installed!"
+                        id="vatnumber"
+                        yalign="0.0" xalign="0.0" xexpand="1"/>
                 </form>
                 ]]>
             </field>
@@ -195,7 +197,6 @@ this repository contains the full copyright notices and license terms. -->
             <field name="arch" type="xml">
                 <![CDATA[
                 <form string="VAT Information Exchange System Results" col="1">
-                    <separator name="parties_succeed"/>
                     <field name="parties_succeed">
                         <tree string="Parties Succeed" fill="1">
                             <field name="code"/>
@@ -203,7 +204,6 @@ this repository contains the full copyright notices and license terms. -->
                             <field name="vat_code"/>
                         </tree>
                     </field>
-                    <separator name="parties_failed"/>
                     <field name="parties_failed">
                         <tree string="Parties Failed" fill="1">
                             <field name="code"/>
diff --git a/ru_RU.csv b/ru_RU.csv
deleted file mode 100644
index e7fd108..0000000
--- a/ru_RU.csv
+++ /dev/null
@@ -1,204 +0,0 @@
-type,name,res_id,src,value,fuzzy
-error,party.address,0,You can not modify the party of an address!,,0
-error,party.category,0,You can not create recursive categories!,Вы не можете создавать рекурсивные категории!,0
-error,party.check_vies,0,"The VIES service is unavailable, try again later.",,0
-error,party.contact_mechanism,0,You can not modify the party of a contact mechanism!,,0
-error,party.party,0,Invalid VAT number!,Ошибка в номере ИНН,0
-error,party.party,0,The INN of the party must be unique!,ИНН должно быть уникальным,0
-error,party.party,0,The Name of the party must be unique!,,0
-error,party.party,0,The code of the party must be unique!,Код контрагента должен быть уникальным,0
-field,"party.address,active",0,Active,Активный,0
-field,"party.address,area_residence",0,Area of residence,Район проживания,0
-field,"party.address,city",0,City,Город,0
-field,"party.address,country",0,Country,Страна,0
-field,"party.address,date_end",0,Date End,Дата окончания,0
-field,"party.address,full_address",0,Full address,Полный адрес,0
-field,"party.address,name",0,Name,Наименование,0
-field,"party.address,party",0,Party,Контрагент,0
-field,"party.address,rec_name",0,Name,Наименование,0
-field,"party.address,sequence",0,Sequence,Последовательность,0
-field,"party.address,street",0,Street,улица,0
-field,"party.address,streetbis",0,Street (bis),улица (доп.),0
-field,"party.address,subdivision",0,Subdivision,Подраздел,0
-field,"party.address,zip",0,Zip,Индекс,0
-field,"party.category,active",0,Active,Активный,0
-field,"party.category,childs",0,Children,Подчиненый,0
-field,"party.category,name",0,Name,Наименование,0
-field,"party.category,parent",0,Parent,Основной,0
-field,"party.category,rec_name",0,Name,Наименование,0
-field,"party.check_vies.check,parties_failed",0,Parties Failed,,0
-field,"party.check_vies.check,parties_succeed",0,Parties Succeed,,0
-field,"party.configuration,party_sequence",0,Party Sequence,,0
-field,"party.configuration,rec_name",0,Name,Наименование,0
-field,"party.contact_mechanism,active",0,Active,Активный,0
-field,"party.contact_mechanism,comment",0,Comment,Комментарии,0
-field,"party.contact_mechanism,email",0,E-Mail,Эл.почта,0
-field,"party.contact_mechanism,other_value",0,Value,Значение,0
-field,"party.contact_mechanism,party",0,Party,Контрагент,0
-field,"party.contact_mechanism,rec_name",0,Name,Наименование,0
-field,"party.contact_mechanism,sequence",0,Sequence,Последовательность,0
-field,"party.contact_mechanism,sip",0,Sip phone,,0
-field,"party.contact_mechanism,skype",0,Skype,,0
-field,"party.contact_mechanism,type",0,Type,Тип,0
-field,"party.contact_mechanism,value",0,Value,Значение,0
-field,"party.contact_mechanism,website",0,Website,Сайт,0
-field,"party.party,active",0,Active,Активный,0
-field,"party.party,addresses",0,Addresses,Адреса,0
-field,"party.party,banks",0,Accounts in Banks,Счета в Банках,0
-field,"party.party,birthday",0,Birthday,День рождения,0
-field,"party.party,categories",0,Categories,Категория,0
-field,"party.party,code",0,Code,Код,0
-field,"party.party,code_length",0,Code Length,Длина Кода,0
-field,"party.party,contact_mechanisms",0,Contact Mechanisms,Контактный способы,0
-field,"party.party,contacts",0,Contact,Контактое лицо,0
-field,"party.party,customer",0,Customer,Заказчик,0
-field,"party.party,document",0,Legal Documents,Рег.документ,0
-field,"party.party,email",0,E-Mail,Эл.почта,0
-field,"party.party,fax",0,Fax,Факс,0
-field,"party.party,full_name",0,Full Name,Полное наименование,0
-field,"party.party,id_1c",0,ID import from 1C,,0
-field,"party.party,individual",0,Individual,Физ.лицо,0
-field,"party.party,kpp_number",0,Reason code setting,КПП,0
-field,"party.party,lang",0,Language,Язык,0
-field,"party.party,legal_form",0,Legal Form,,0
-field,"party.party,mobile",0,Mobile,сот.телефон,0
-field,"party.party,name",0,Full Name,Наименование,0
-field,"party.party,note",0,Notes,Комментарии,0
-field,"party.party,ogrn_number",0,OGRN registration number,ОГРН,0
-field,"party.party,okpo_number",0,OKPO registration number,ОКПО,0
-field,"party.party,okved_number",0,OKVED registration number,ОКВЭД,0
-field,"party.party,phone",0,Phone,Телефон,0
-field,"party.party,photo",0,Person Photo or Logo,Фотография или Логотип,0
-field,"party.party,photo_file",0,Person Photo or Logo,Фотография или Логотип,0
-field,"party.party,rec_name",0,Name,Наименование,0
-field,"party.party,shortcut",0,ShortCut,Кратко,0
-field,"party.party,shortname",0,Short Name,Кратко,0
-field,"party.party,supplier",0,Supplier,Поставщик,0
-field,"party.party,vat_code",0,VAT Code,Код ИНН,0
-field,"party.party,vat_country",0,VAT Country,Страна ИНН ,0
-field,"party.party,vat_number",0,VAT Number,ИНН,0
-field,"party.party,website",0,Website,Сайт,0
-field,"party.party-party.category,category",0,Category,Категории,0
-field,"party.party-party.category,party",0,Party,Контрагент,0
-field,"party.party-party.category,rec_name",0,Name,Наименование,0
-field,"party.person,birthday",0,Birthday,День рождения,0
-field,"party.person,party",0,Party,Контрагент,0
-field,"party.person,rec_name",0,Name,Наименование,0
-help,"party.party,customer",0,Check this box if the party is a Cusmomer.,"Отметьте, если это заказчик",0
-help,"party.party,individual",0,Check this box if the party is a Individual.,"Отметьте, если это физические лицо",0
-help,"party.party,supplier",0,Check this box if the party is a Supplier.,"Отметьте, если это поставщик",0
-help,"party.party,vat_country",0,Setting VAT country will enable validation of the VAT number.,Установите страну регистрации организации для проверки,0
-help,"party.party,vat_number",0,Value Added Tax number,ИНН,0
-model,"ir.action,name",act_address_form,Addresses,Адреса,0
-model,"ir.action,name",act_address_form2,Addresses,Адреса,0
-model,"ir.action,name",act_category_form,Categories,Категория,0
-model,"ir.action,name",act_category_form2,Categories,Категория,0
-model,"ir.action,name",act_category_tree,Categories,Категория,0
-model,"ir.action,name",act_party_by_category,Parties by Category,Контрагенты по категориям,0
-model,"ir.action,name",act_party_configuration_form,Party Configuration,Настройка контрагентов,0
-model,"ir.action,name",act_party_contact_form,Contact,Контактое лицо,0
-model,"ir.action,name",act_party_form,Parties,Контрагенты,0
-model,"ir.action,name",act_party_form2,Parties,Контрагенты,0
-model,"ir.action,name",report_label,Labels,,0
-model,"ir.action,name",wizard_check_vies,Check VIES,Проверить VIES,0
-model,"ir.lang,name",lang_ru,Russian,Русский,0
-model,"ir.sequence,name",sequence_party,Party,Контрагент,0
-model,"ir.sequence.type,name",sequence_type_party,Party,Контрагент,0
-model,"ir.ui.menu,name",menu_address_form,Addresses,Адреса,0
-model,"ir.ui.menu,name",menu_address_form2,New Address,Новый адрес,0
-model,"ir.ui.menu,name",menu_category_form,Categories,Категория,0
-model,"ir.ui.menu,name",menu_category_form2,New category,Новые категории,0
-model,"ir.ui.menu,name",menu_category_tree,Categories,Категория,0
-model,"ir.ui.menu,name",menu_configuration,Configuration,Конфигурация,0
-model,"ir.ui.menu,name",menu_party,Party Management,Организации,0
-model,"ir.ui.menu,name",menu_party_configuration,Party Configuration,Настройка контрагентов,0
-model,"ir.ui.menu,name",menu_party_contact_form,Contact,Контактое лицо,0
-model,"ir.ui.menu,name",menu_party_form,Parties,Контрагенты,0
-model,"ir.ui.menu,name",menu_party_form2,New Party,Новый контрагент,0
-model,"ir.ui.menu,name",menu_person_form,Persons,Физические лица,0
-model,"party.address,name",0,Address,Адрес,0
-model,"party.category,name",0,Category,Категории,0
-model,"party.check_vies.check,name",0,Check VIES - Check,Проверить VIES - проверить,0
-model,"party.check_vies.no_check,name",0,Check VIES - No Check,Проверить VIES - не проверять,0
-model,"party.configuration,name",0,Party Configuration,Настройка контрагентов,0
-model,"party.party,name",0,Party,Контрагент,0
-model,"party.party-party.category,name",0,Party - Category,Контрагент - Категории,0
-model,"res.group,name",group_party,Party (read),Организации (чтение),0
-model,"res.group,name",group_party_admin,Party Administration,Администрирование контрагентов,0
-model,"res.group,name",group_party_write,Party (write),Организации (запись) ,0
-selection,"party.contact_mechanism,type",0,E-Mail,Эл.почта,0
-selection,"party.contact_mechanism,type",0,Fax,Факс,0
-selection,"party.contact_mechanism,type",0,Home Phone,Домашний телефон,0
-selection,"party.contact_mechanism,type",0,IRC,,0
-selection,"party.contact_mechanism,type",0,Jabber,,0
-selection,"party.contact_mechanism,type",0,Mobile,сот.телефон,0
-selection,"party.contact_mechanism,type",0,Other,Прочий,0
-selection,"party.contact_mechanism,type",0,Phone,Телефон,0
-selection,"party.contact_mechanism,type",0,SIP,,0
-selection,"party.contact_mechanism,type",0,Skype,,0
-selection,"party.contact_mechanism,type",0,Website,Сайт,0
-selection,"party.contact_mechanism,type",0,Work Phone,Рабочий телефон,0
-selection,"party.party,vat_country",0,,Резервный счет,0
-selection,"party.party,vat_country",0,AL,,0
-selection,"party.party,vat_country",0,AT,,0
-selection,"party.party,vat_country",0,BE,,0
-selection,"party.party,vat_country",0,BG,,0
-selection,"party.party,vat_country",0,CL,,0
-selection,"party.party,vat_country",0,CO,,0
-selection,"party.party,vat_country",0,CY,,0
-selection,"party.party,vat_country",0,CZ,,0
-selection,"party.party,vat_country",0,DE,,0
-selection,"party.party,vat_country",0,DK,,0
-selection,"party.party,vat_country",0,EE,,0
-selection,"party.party,vat_country",0,EL,,0
-selection,"party.party,vat_country",0,ES,,0
-selection,"party.party,vat_country",0,FI,,0
-selection,"party.party,vat_country",0,FR,,0
-selection,"party.party,vat_country",0,GB,,0
-selection,"party.party,vat_country",0,GR,,0
-selection,"party.party,vat_country",0,HU,,0
-selection,"party.party,vat_country",0,IE,,0
-selection,"party.party,vat_country",0,IT,,0
-selection,"party.party,vat_country",0,LT,,0
-selection,"party.party,vat_country",0,LU,,0
-selection,"party.party,vat_country",0,LV,,0
-selection,"party.party,vat_country",0,MT,,0
-selection,"party.party,vat_country",0,NL,,0
-selection,"party.party,vat_country",0,PL,,0
-selection,"party.party,vat_country",0,PT,,0
-selection,"party.party,vat_country",0,RO,,0
-selection,"party.party,vat_country",0,RU,,0
-selection,"party.party,vat_country",0,SE,,0
-selection,"party.party,vat_country",0,SI,,0
-selection,"party.party,vat_country",0,SK,,0
-selection,"party.party,vat_country",0,SM,,0
-selection,"party.party,vat_country",0,UA,,0
-selection,"party.party,vat_country",0,UK,,0
-view,party.address,0,Addresses,Адреса,0
-view,party.address,0,Job Function,Должность,0
-view,party.address,0,Notes,Комментарии,0
-view,party.category,0,Categories,Категория,0
-view,party.category,0,Category,Категории,0
-view,party.check_vies.check,0,Parties Failed,,0
-view,party.check_vies.check,0,Parties Succeed,,0
-view,party.check_vies.check,0,VAT Information Exchange System Results,ИНН Система обмена информацией о результатах,0
-view,party.check_vies.no_check,0,VAT Information Exchange System,ИНН Система обмена информацией,0
-view,party.check_vies.no_check,0,"You must have a recent version of ""vatnumber"" installed!",,0
-view,party.configuration,0,Party Configuration,Настройка контрагентов,0
-view,party.contact_mechanism,0,Contact Mechanism,Контактный способ,0
-view,party.contact_mechanism,0,Contact Mechanisms,Контактный способы,0
-view,party.party,0,Account in Bank,Счет в банке,0
-view,party.party,0,Accounting,Регистрационные данные,0
-view,party.party,0,Accounts in Banks,Счета в банках,0
-view,party.party,0,Addresses,Адреса,0
-view,party.party,0,Categories,Категория,0
-view,party.party,0,Contact Mechanisms,Контактный способы,0
-view,party.party,0,Contacts,Контактные лица,0
-view,party.party,0,Document,Документ,0
-view,party.party,0,General,Основной,0
-view,party.party,0,Legal Document,Регистрационный документ,0
-view,party.party,0,Parties,Контрагенты,0
-view,party.party,0,Party,Контрагент,0
-view,party.party,0,VAT,ИНН,0
-wizard_button,"party.check_vies,check,end",0,Ok,Да,0
-wizard_button,"party.check_vies,no_check,end",0,Ok,Да,0
diff --git a/setup.py b/setup.py
index 0c7d529..f5fa9f6 100644
--- a/setup.py
+++ b/setup.py
@@ -31,23 +31,23 @@ setup(name='trytond_party',
     packages=[
         'trytond.modules.party',
         'trytond.modules.party.tests',
-        'trytond.modules.party.icons',
     ],
     package_data={
         'trytond.modules.party': info.get('xml', []) \
                 + info.get('translation', []) \
-                + ['label.odt'],
-        'trytond.modules.party.icons': ['tryton-party.svg'],
+                + ['*.odt', 'icons/*.svg'],
     },
     classifiers=[
         'Development Status :: 5 - Production/Stable',
         'Environment :: Plugins',
+        'Framework :: Tryton',
         'Intended Audience :: Developers',
         'Intended Audience :: Financial and Insurance Industry',
         'Intended Audience :: Legal Industry',
         'Intended Audience :: Manufacturing',
         'License :: OSI Approved :: GNU General Public License (GPL)',
         'Natural Language :: Bulgarian',
+        'Natural Language :: Czech',
         'Natural Language :: Dutch',
         'Natural Language :: English',
         'Natural Language :: French',
@@ -55,7 +55,6 @@ setup(name='trytond_party',
         'Natural Language :: Russian',
         'Natural Language :: Spanish',
         'Operating System :: OS Independent',
-        'Programming Language :: Python :: 2.5',
         'Programming Language :: Python :: 2.6',
         'Programming Language :: Python :: 2.7',
         'Topic :: Office/Business',
diff --git a/tests/test_party.py b/tests/test_party.py
index 35edb1d..ba3b974 100644
--- a/tests/test_party.py
+++ b/tests/test_party.py
@@ -1,7 +1,6 @@
 #!/usr/bin/env python
 #This file is part of Tryton.  The COPYRIGHT file at the top level of
 #this repository contains the full copyright notices and license terms.
-from __future__ import with_statement
 import sys, os
 DIR = os.path.abspath(os.path.normpath(os.path.join(__file__,
     '..', '..', '..', '..', '..', 'trytond')))
@@ -10,7 +9,8 @@ if os.path.isdir(DIR):
 
 import unittest
 import trytond.tests.test_tryton
-from trytond.tests.test_tryton import POOL, DB_NAME, USER, CONTEXT, test_view
+from trytond.tests.test_tryton import POOL, DB_NAME, USER, CONTEXT, test_view,\
+    test_depends
 from trytond.transaction import Transaction
 
 
@@ -31,6 +31,12 @@ class PartyTestCase(unittest.TestCase):
         '''
         test_view('party')
 
+    def test0006depends(self):
+        '''
+        Test depends.
+        '''
+        test_depends()
+
     def test0010category(self):
         '''
         Create category.
diff --git a/trytond_party.egg-info/PKG-INFO b/trytond_party.egg-info/PKG-INFO
index 989ed8a..618d9d9 100644
--- a/trytond_party.egg-info/PKG-INFO
+++ b/trytond_party.egg-info/PKG-INFO
@@ -1,22 +1,24 @@
 Metadata-Version: 1.0
 Name: trytond-party
-Version: 2.0.1
+Version: 2.2.0
 Summary: Define parties, addresses and co.
 Home-page: http://www.tryton.org/
 Author: B2CK
 Author-email: info at b2ck.com
 License: GPL-3
-Download-URL: http://downloads.tryton.org/2.0/
+Download-URL: http://downloads.tryton.org/2.2/
 Description: UNKNOWN
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Environment :: Plugins
+Classifier: Framework :: Tryton
 Classifier: Intended Audience :: Developers
 Classifier: Intended Audience :: Financial and Insurance Industry
 Classifier: Intended Audience :: Legal Industry
 Classifier: Intended Audience :: Manufacturing
 Classifier: License :: OSI Approved :: GNU General Public License (GPL)
 Classifier: Natural Language :: Bulgarian
+Classifier: Natural Language :: Czech
 Classifier: Natural Language :: Dutch
 Classifier: Natural Language :: English
 Classifier: Natural Language :: French
@@ -24,7 +26,6 @@ Classifier: Natural Language :: German
 Classifier: Natural Language :: Russian
 Classifier: Natural Language :: Spanish
 Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: Python :: 2.5
 Classifier: Programming Language :: Python :: 2.6
 Classifier: Programming Language :: Python :: 2.7
 Classifier: Topic :: Office/Business
diff --git a/trytond_party.egg-info/SOURCES.txt b/trytond_party.egg-info/SOURCES.txt
index 144218e..0fba1ee 100644
--- a/trytond_party.egg-info/SOURCES.txt
+++ b/trytond_party.egg-info/SOURCES.txt
@@ -5,18 +5,11 @@ LICENSE
 MANIFEST.in
 README
 address.xml
-bg_BG.csv
 category.xml
 configuration.xml
 contact_mechanism.xml
-de_DE.csv
-es_CO.csv
-es_ES.csv
-fr_FR.csv
 label.odt
-nl_NL.csv
 party.xml
-ru_RU.csv
 setup.py
 ./__init__.py
 ./__tryton__.py
@@ -25,13 +18,18 @@ setup.py
 ./configuration.py
 ./contact_mechanism.py
 ./party.py
-./icons/__init__.py
 ./tests/__init__.py
 ./tests/test_party.py
 doc/index.rst
-icons/LICENSE
-icons/__init__.py
 icons/tryton-party.svg
+locale/bg_BG.po
+locale/cs_CZ.po
+locale/de_DE.po
+locale/es_CO.po
+locale/es_ES.po
+locale/fr_FR.po
+locale/nl_NL.po
+locale/ru_RU.po
 trytond_party.egg-info/PKG-INFO
 trytond_party.egg-info/SOURCES.txt
 trytond_party.egg-info/dependency_links.txt
diff --git a/trytond_party.egg-info/requires.txt b/trytond_party.egg-info/requires.txt
index f9c54d1..37c0d8d 100644
--- a/trytond_party.egg-info/requires.txt
+++ b/trytond_party.egg-info/requires.txt
@@ -1,5 +1,5 @@
-trytond_country >= 2.0, < 2.1
-trytond >= 2.0, < 2.1
+trytond_country >= 2.2, < 2.3
+trytond >= 2.2, < 2.3
 
 [VAT]
 vatnumber
\ No newline at end of file
commit 2516ff21714f942eb2b7e09edd35914e01c567cb
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Mon Oct 3 15:05:44 2011 +0200

    Releasing debian version 2.0.1+dfsg-1.

diff --git a/debian/changelog b/debian/changelog
index c0f9832..364ad13 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,13 @@
+tryton-modules-party (2.0.1+dfsg-1) unstable; urgency=low
+
+  * Merging upstream version 2.0.1+dfsg.
+  * Removing tango-icon-theme from Depends.
+  * Adding Bug URL to dfsg-icons patch.
+  * Rediffing dfsg-icons patch.
+  * Reordering anf fixing license for public-domain.
+
+ -- Mathias Behrle <mathiasb at m9s.biz>  Mon, 03 Oct 2011 14:51:42 +0200
+
 tryton-modules-party (2.0.0+dfsg-3) unstable; urgency=low
 
   * Removing outdated Recommend to python-soappy.
commit c24fd8adba9f8058cb58448db05939bc26aa1bc5
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Mon Oct 3 14:43:00 2011 +0200

    Merging upstream version 2.0.1+dfsg.

diff --git a/CHANGELOG b/CHANGELOG
index 58380c4..a4e5381 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+Version 2.0.1 - 2011-10-01
+* Bug fixes (see mercurial logs for details)
+
 Version 2.0.0 - 2011-04-27
 * Bug fixes (see mercurial logs for details)
 
diff --git a/PKG-INFO b/PKG-INFO
index df191a0..20dcc7a 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.0
 Name: trytond_party
-Version: 2.0.0
+Version: 2.0.1
 Summary: Define parties, addresses and co.
 Home-page: http://www.tryton.org/
 Author: B2CK
diff --git a/__tryton__.py b/__tryton__.py
index 9e0f94d..892f559 100644
--- a/__tryton__.py
+++ b/__tryton__.py
@@ -10,7 +10,7 @@
     'name_fr_FR': 'Tiers',
     'name_nl_NL': 'Relaties',
     'name_ru_RU': 'Контрагенты',
-    'version' : '2.0.0',
+    'version' : '2.0.1',
     'author' : 'B2CK',
     'email': 'info at b2ck.com',
     'website': 'http://www.tryton.org/',
diff --git a/category.py b/category.py
index 471199d..1dcae09 100644
--- a/category.py
+++ b/category.py
@@ -73,6 +73,6 @@ class Category(ModelSQL, ModelView):
             ids = self.search(domain, order=[])
             return [('id', 'in', ids)]
         #TODO Handle list
-        return [('name',) + clause[1:]]
+        return [('name',) + tuple(clause[1:])]
 
 Category()
diff --git a/trytond_party.egg-info/PKG-INFO b/trytond_party.egg-info/PKG-INFO
index a893ba4..989ed8a 100644
--- a/trytond_party.egg-info/PKG-INFO
+++ b/trytond_party.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.0
 Name: trytond-party
-Version: 2.0.0
+Version: 2.0.1
 Summary: Define parties, addresses and co.
 Home-page: http://www.tryton.org/
 Author: B2CK
commit e715b6805fa4613cebc5943d8a5c2383701d308b
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Sun Aug 7 14:21:59 2011 +0200

    Removing tango-icon-theme from Depends.

diff --git a/debian/control b/debian/control
index 65e15f8..04fb2d6 100644
--- a/debian/control
+++ b/debian/control
@@ -15,7 +15,7 @@ Package: tryton-modules-party
 Architecture: all
 Depends:
  ${misc:Depends}, ${python:Depends}, tryton-server (>= 2.0),
- tryton-modules-country (>= 2.0), python-pkg-resources, tango-icon-theme
+ tryton-modules-country (>= 2.0), python-pkg-resources
 Recommends: python-vatnumber
 Description: Tryton Application Platform (Party Module)
  Tryton is a high-level general purpose application platform written in Python
commit b53ac9df13ca1e2f1a16fddc652ba7412f05f30f
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Sun Aug 7 14:21:17 2011 +0200

    Adding Bug URL to dfsg-icons patch.

diff --git a/debian/patches/01-dfsg-icons b/debian/patches/01-dfsg-icons
index 6c646f0..d78531c 100644
--- a/debian/patches/01-dfsg-icons
+++ b/debian/patches/01-dfsg-icons
@@ -1,5 +1,6 @@
 Author: Mathias Behrle <mathiasb at m9s.biz>
 Description: Add DFSG compatible icon as a replacement for the original icon.
+Bug: http://bugs.tryton.org/roundup/issue1996
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
 +++ tryton-modules-party/icons/tryton-party.svg	2011-08-07 14:20:17.958074502 +0200
 @@ -0,0 +1,539 @@
commit ea8b29db5ea9b60f2b7bfec1bb21265905bdd94d
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Sun Aug 7 14:20:51 2011 +0200

    Rediffing dfsg-icons patch.

diff --git a/debian/patches/01-dfsg-icons b/debian/patches/01-dfsg-icons
index d06ceba..6c646f0 100644
--- a/debian/patches/01-dfsg-icons
+++ b/debian/patches/01-dfsg-icons
@@ -1,7 +1,7 @@
 Author: Mathias Behrle <mathiasb at m9s.biz>
 Description: Add DFSG compatible icon as a replacement for the original icon.
---- /dev/null
-+++ b/icons/tryton-party.svg
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ tryton-modules-party/icons/tryton-party.svg	2011-08-07 14:20:17.958074502 +0200
 @@ -0,0 +1,539 @@
 +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 +<!-- Created with Inkscape (http://www.inkscape.org/) -->
commit 7e0640e964e8bae02de79fa8b7c833b5e277b834
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Wed Jul 27 13:20:05 2011 +0200

    Reordering anf fixing license for public-domain.

diff --git a/debian/copyright b/debian/copyright
index 5034e25..93f27e5 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -11,69 +11,7 @@ License: GPL-3+
 
 Files: icons/*
 Copyright: not applicable
-License: public domain
-
-The icons used to replace the original not DFSG compatible icons are taken
-from http://tango.freedesktop.org/releases/tango-icon-theme-0.8.90.tar.gz
-
-Upstream Authors:				2005-2009
-
-  Ulisse Perusin <uli.peru at gmail.com>
-  Steven Garrity <sgarrity at silverorange.com>
-  Lapo Calamandrei <calamandrei at gmail.com>
-  Ryan Collier <rcollier at novell.com>
-  Rodney Dawes <dobey at novell.com>
-  Andreas Nilsson <nisses.mail at home.se>
-  Tuomas Kuosmanen <tigert at tigert.com>
-  Garrett LeSage <garrett at novell.com>
-  Jakub Steiner <jimmac at novell.com>
-
-  In the preparation of the 0.8.90 release Novell took care of tracking
-  down all the contributors to get them to relicense their artwork
-  into Public Domain.
-
-  The COPYING file of the tarball states the following:
-  | The icons in this repository are herefore released into the Public Domain.
-
-  Additionally the copyright status of the files was tracked in the CVS and the
-  rdf properties of the SVGs adjusted for all files that were put into Public
-  Domain (see rdf:about and rdf:resource).  Both fields contain a link to the
-  Creative Commons Public Domain Dediciation[0] as reproduced below:
-  | Public Domain Dedication
-  |
-  | Copyright-Only Dedication (based on United States law) or Public Domain
-  | Certification
-  |
-  | The person or persons who have associated work with this document (the
-  | "Dedicator" or "Certifier") hereby either (a) certifies that, to the best
-  | of his knowledge, the work of authorship identified is in the public
-  | domain of the country from which the work is published, or (b)
-  | hereby dedicates whatever copyright the dedicators holds in the work
-  | of authorship identified below (the "Work") to the public domain. A
-  | certifier, moreover, dedicates any copyright interest he may have in
-  | the associated work, and for these purposes, is described as a
-  | "dedicator" below.
-  |
-  | A certifier has taken reasonable steps to verify the copyright
-  | status of this work. Certifier recognizes that his good faith efforts
-  | may not shield him from liability if in fact the work certified is not
-  | in the public domain.
-  |
-  | Dedicator makes this dedication for the benefit of the public at
-  | large and to the detriment of the Dedicator's heirs and successors.
-  | Dedicator intends this dedication to be an overt act of relinquishment
-  | in perpetuity of all present and future rights under copyright law,
-  | whether vested or contingent, in the Work. Dedicator understands that
-  | such relinquishment of all rights includes the relinquishment of all
-  | rights to enforce (by lawsuit or otherwise) those copyrights in the
-  | Work.
-  |
-  | Dedicator recognizes that, once placed in the public domain, the Work
-  | may be freely reproduced, distributed, transmitted, used, modified,
-  | built upon, or otherwise exploited by anyone for any purpose, commercial
-  | or non-commercial, and in any way, including by methods that have not
-  | yet been invented or conceived.
-  [0] http://creativecommons.org/licenses/publicdomain/
+License: public-domain
 
 Files: debian/*
 Copyright:
@@ -97,3 +35,66 @@ License: GPL-3+
  .
  The complete text of the GNU General Public License
  can be found in /usr/share/common-licenses/GPL-3 file.
+
+License: public-domain
+ The icons used to replace the original not DFSG compatible icons are taken
+ from http://tango.freedesktop.org/releases/tango-icon-theme-0.8.90.tar.gz
+ .
+ Upstream Authors:				2005-2009
+ .
+ Ulisse Perusin <uli.peru at gmail.com>
+ Steven Garrity <sgarrity at silverorange.com>
+ Lapo Calamandrei <calamandrei at gmail.com>
+ Ryan Collier <rcollier at novell.com>
+ Rodney Dawes <dobey at novell.com>
+ Andreas Nilsson <nisses.mail at home.se>
+ Tuomas Kuosmanen <tigert at tigert.com>
+ Garrett LeSage <garrett at novell.com>
+ Jakub Steiner <jimmac at novell.com>
+ .
+ In the preparation of the 0.8.90 release Novell took care of tracking
+ down all the contributors to get them to relicense their artwork
+ into Public Domain.
+ .
+ The COPYING file of the tarball states the following:
+ | The icons in this repository are herefore released into the Public Domain.
+ .
+ Additionally the copyright status of the files was tracked in the CVS and the
+ rdf properties of the SVGs adjusted for all files that were put into Public
+ Domain (see rdf:about and rdf:resource).  Both fields contain a link to the
+ Creative Commons Public Domain Dediciation[0] as reproduced below:
+ | Public Domain Dedication
+ |
+ | Copyright-Only Dedication (based on United States law) or Public Domain
+ | Certification
+ |
+ | The person or persons who have associated work with this document (the
+ | "Dedicator" or "Certifier") hereby either (a) certifies that, to the best
+ | of his knowledge, the work of authorship identified is in the public
+ | domain of the country from which the work is published, or (b)
+ | hereby dedicates whatever copyright the dedicators holds in the work
+ | of authorship identified below (the "Work") to the public domain. A
+ | certifier, moreover, dedicates any copyright interest he may have in
+ | the associated work, and for these purposes, is described as a
+ | "dedicator" below.
+ |
+ | A certifier has taken reasonable steps to verify the copyright
+ | status of this work. Certifier recognizes that his good faith efforts
+ | may not shield him from liability if in fact the work certified is not
+ | in the public domain.
+ |
+ | Dedicator makes this dedication for the benefit of the public at
+ | large and to the detriment of the Dedicator's heirs and successors.
+ | Dedicator intends this dedication to be an overt act of relinquishment
+ | in perpetuity of all present and future rights under copyright law,
+ | whether vested or contingent, in the Work. Dedicator understands that
+ | such relinquishment of all rights includes the relinquishment of all
+ | rights to enforce (by lawsuit or otherwise) those copyrights in the
+ | Work.
+ |
+ | Dedicator recognizes that, once placed in the public domain, the Work
+ | may be freely reproduced, distributed, transmitted, used, modified,
+ | built upon, or otherwise exploited by anyone for any purpose, commercial
+ | or non-commercial, and in any way, including by methods that have not
+ | yet been invented or conceived.
+ 0] http://creativecommons.org/licenses/publicdomain/
commit bbfb5c31ac73ecd05e501cf9506f448ca696970a
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Fri Jul 22 14:00:51 2011 +0200

    Releasing debian version 2.0.0+dfsg-3.

diff --git a/debian/changelog b/debian/changelog
index 40ec89a..c0f9832 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+tryton-modules-party (2.0.0+dfsg-3) unstable; urgency=low
+
+  * Removing outdated Recommend to python-soappy.
+  * Removing deprecated XB-Python-Version for dh_python2.
+  * Adding license for icons taken from tango project.
+  * Adding myself to debian copyright.
+
+ -- Mathias Behrle <mathiasb at m9s.biz>  Fri, 22 Jul 2011 14:00:35 +0200
+
 tryton-modules-party (2.0.0+dfsg-2) unstable; urgency=low
 
   * Patching in DFSG compatible icons instead of linking to them,
commit 4aa0e81c8a28c2a2c9342846c1076aef305dad0f
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Fri Jul 22 13:16:25 2011 +0200

    Adding myself to debian copyright.

diff --git a/debian/copyright b/debian/copyright
index b349983..5034e25 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -76,7 +76,9 @@ Upstream Authors:				2005-2009
   [0] http://creativecommons.org/licenses/publicdomain/
 
 Files: debian/*
-Copyright: (C) 2009-2011 Daniel Baumann <daniel at debian.org>
+Copyright:
+ (C) 2009-2011 Daniel Baumann <daniel at debian.org>
+ (C) 2011 Mathias Behrle <mathiasb at m9s.biz>
 License: GPL-3+
 
 License: GPL-3+
commit 857d0d13a0e71f2f1194729816d1a8f992bc3054
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Fri Jul 22 13:03:48 2011 +0200

    Adding license for icons taken from tango project.

diff --git a/debian/copyright b/debian/copyright
index 8cae45d..b349983 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -9,6 +9,72 @@ Copyright:
  (C) 2008-2011 virtual things
 License: GPL-3+
 
+Files: icons/*
+Copyright: not applicable
+License: public domain
+
+The icons used to replace the original not DFSG compatible icons are taken
+from http://tango.freedesktop.org/releases/tango-icon-theme-0.8.90.tar.gz
+
+Upstream Authors:				2005-2009
+
+  Ulisse Perusin <uli.peru at gmail.com>
+  Steven Garrity <sgarrity at silverorange.com>
+  Lapo Calamandrei <calamandrei at gmail.com>
+  Ryan Collier <rcollier at novell.com>
+  Rodney Dawes <dobey at novell.com>
+  Andreas Nilsson <nisses.mail at home.se>
+  Tuomas Kuosmanen <tigert at tigert.com>
+  Garrett LeSage <garrett at novell.com>
+  Jakub Steiner <jimmac at novell.com>
+
+  In the preparation of the 0.8.90 release Novell took care of tracking
+  down all the contributors to get them to relicense their artwork
+  into Public Domain.
+
+  The COPYING file of the tarball states the following:
+  | The icons in this repository are herefore released into the Public Domain.
+
+  Additionally the copyright status of the files was tracked in the CVS and the
+  rdf properties of the SVGs adjusted for all files that were put into Public
+  Domain (see rdf:about and rdf:resource).  Both fields contain a link to the
+  Creative Commons Public Domain Dediciation[0] as reproduced below:
+  | Public Domain Dedication
+  |
+  | Copyright-Only Dedication (based on United States law) or Public Domain
+  | Certification
+  |
+  | The person or persons who have associated work with this document (the
+  | "Dedicator" or "Certifier") hereby either (a) certifies that, to the best
+  | of his knowledge, the work of authorship identified is in the public
+  | domain of the country from which the work is published, or (b)
+  | hereby dedicates whatever copyright the dedicators holds in the work
+  | of authorship identified below (the "Work") to the public domain. A
+  | certifier, moreover, dedicates any copyright interest he may have in
+  | the associated work, and for these purposes, is described as a
+  | "dedicator" below.
+  |
+  | A certifier has taken reasonable steps to verify the copyright
+  | status of this work. Certifier recognizes that his good faith efforts
+  | may not shield him from liability if in fact the work certified is not
+  | in the public domain.
+  |
+  | Dedicator makes this dedication for the benefit of the public at
+  | large and to the detriment of the Dedicator's heirs and successors.
+  | Dedicator intends this dedication to be an overt act of relinquishment
+  | in perpetuity of all present and future rights under copyright law,
+  | whether vested or contingent, in the Work. Dedicator understands that
+  | such relinquishment of all rights includes the relinquishment of all
+  | rights to enforce (by lawsuit or otherwise) those copyrights in the
+  | Work.
+  |
+  | Dedicator recognizes that, once placed in the public domain, the Work
+  | may be freely reproduced, distributed, transmitted, used, modified,
+  | built upon, or otherwise exploited by anyone for any purpose, commercial
+  | or non-commercial, and in any way, including by methods that have not
+  | yet been invented or conceived.
+  [0] http://creativecommons.org/licenses/publicdomain/
+
 Files: debian/*
 Copyright: (C) 2009-2011 Daniel Baumann <daniel at debian.org>
 License: GPL-3+
commit 587f56ac4cedd6014d9f791d76625b57a1fa2567
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Fri Jul 22 12:50:06 2011 +0200

    Removing deprecated XB-Python-Version for dh_python2.

diff --git a/debian/control b/debian/control
index a560da6..65e15f8 100644
--- a/debian/control
+++ b/debian/control
@@ -17,7 +17,6 @@ Depends:
  ${misc:Depends}, ${python:Depends}, tryton-server (>= 2.0),
  tryton-modules-country (>= 2.0), python-pkg-resources, tango-icon-theme
 Recommends: python-vatnumber
-XB-Python-Version: ${python:Versions}
 Description: Tryton Application Platform (Party Module)
  Tryton is a high-level general purpose application platform written in Python
  and using PostgreSQL as database engine. It is the core base of a complete
commit 0f5ada568ca31c7670e5ddda1766724d76f83ccf
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Mon Jul 18 09:57:40 2011 +0200

    Removing outdated Recommend to python-soappy.

diff --git a/debian/control b/debian/control
index 7d0396c..a560da6 100644
--- a/debian/control
+++ b/debian/control
@@ -16,7 +16,7 @@ Architecture: all
 Depends:
  ${misc:Depends}, ${python:Depends}, tryton-server (>= 2.0),
  tryton-modules-country (>= 2.0), python-pkg-resources, tango-icon-theme
-Recommends: python-soappy, python-vatnumber
+Recommends: python-vatnumber
 XB-Python-Version: ${python:Versions}
 Description: Tryton Application Platform (Party Module)
  Tryton is a high-level general purpose application platform written in Python
commit 8ac09a8b4e6fde569a6e28e62ab830107b336fee
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Sat Jul 16 23:34:43 2011 +0200

    Releasing debian version 2.0.0+dfsg-2.

diff --git a/debian/changelog b/debian/changelog
index f7b4563..40ec89a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+tryton-modules-party (2.0.0+dfsg-2) unstable; urgency=low
+
+  * Patching in DFSG compatible icons instead of linking to them,
+    setup.py needs to find them.
+
+ -- Mathias Behrle <mathiasb at m9s.biz>  Sat, 16 Jul 2011 23:30:59 +0200
+
 tryton-modules-party (2.0.0+dfsg-1) unstable; urgency=low
 
   [ Daniel Baumann ]
commit b1f057c598db9251f6620f1704b0bc80222e01f9
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Sat Jul 16 23:27:27 2011 +0200

    Patching in DFSG compatible icons instead of linking to them, setup.py needs to find them.

diff --git a/debian/patches/01-dfsg-icons b/debian/patches/01-dfsg-icons
new file mode 100644
index 0000000..d06ceba
--- /dev/null
+++ b/debian/patches/01-dfsg-icons
@@ -0,0 +1,544 @@
+Author: Mathias Behrle <mathiasb at m9s.biz>
+Description: Add DFSG compatible icon as a replacement for the original icon.
+--- /dev/null
++++ b/icons/tryton-party.svg
+@@ -0,0 +1,539 @@
++<?xml version="1.0" encoding="UTF-8" standalone="no"?>
++<!-- Created with Inkscape (http://www.inkscape.org/) -->
++<svg
++   xmlns:dc="http://purl.org/dc/elements/1.1/"
++   xmlns:cc="http://creativecommons.org/ns#"
++   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
++   xmlns:svg="http://www.w3.org/2000/svg"
++   xmlns="http://www.w3.org/2000/svg"
++   xmlns:xlink="http://www.w3.org/1999/xlink"
++   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
++   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
++   width="48px"
++   height="48px"
++   id="svg2108"
++   sodipodi:version="0.32"
++   inkscape:version="0.46"
++   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/apps"
++   sodipodi:docname="system-users.svg"
++   inkscape:output_extension="org.inkscape.output.svg.inkscape">
++  <defs
++     id="defs3">
++    <inkscape:perspective
++       sodipodi:type="inkscape:persp3d"
++       inkscape:vp_x="0 : 24 : 1"
++       inkscape:vp_y="0 : 1000 : 0"
++       inkscape:vp_z="48 : 24 : 1"
++       inkscape:persp3d-origin="24 : 16 : 1"
++       id="perspective72" />
++    <linearGradient
++       inkscape:collect="always"
++       id="linearGradient4356">
++      <stop
++         style="stop-color:#000000;stop-opacity:1;"
++         offset="0"
++         id="stop4358" />
++      <stop
++         style="stop-color:#000000;stop-opacity:0;"
++         offset="1"
++         id="stop4360" />
++    </linearGradient>
++    <linearGradient
++       id="linearGradient4344">
++      <stop
++         style="stop-color:#727e0a;stop-opacity:1;"
++         offset="0"
++         id="stop4346" />
++      <stop
++         style="stop-color:#5b6508;stop-opacity:1.0000000;"
++         offset="1.0000000"
++         id="stop4348" />
++    </linearGradient>
++    <linearGradient
++       id="linearGradient4338">
++      <stop
++         id="stop4340"
++         offset="0.0000000"
++         style="stop-color:#e9b15e;stop-opacity:1.0000000;" />
++      <stop
++         id="stop4342"
++         offset="1.0000000"
++         style="stop-color:#966416;stop-opacity:1.0000000;" />
++    </linearGradient>
++    <linearGradient
++       id="linearGradient4163">
++      <stop
++         style="stop-color:#3b74bc;stop-opacity:1.0000000;"
++         offset="0.0000000"
++         id="stop4165" />
++      <stop
++         style="stop-color:#2d5990;stop-opacity:1.0000000;"
++         offset="1.0000000"
++         id="stop4167" />
++    </linearGradient>
++    <linearGradient
++       id="linearGradient3824">
++      <stop
++         style="stop-color:#ffffff;stop-opacity:1;"
++         offset="0"
++         id="stop3826" />
++      <stop
++         style="stop-color:#c9c9c9;stop-opacity:1.0000000;"
++         offset="1.0000000"
++         id="stop3828" />
++    </linearGradient>
++    <linearGradient
++       inkscape:collect="always"
++       id="linearGradient3816">
++      <stop
++         style="stop-color:#000000;stop-opacity:1;"
++         offset="0"
++         id="stop3818" />
++      <stop
++         style="stop-color:#000000;stop-opacity:0;"
++         offset="1"
++         id="stop3820" />
++    </linearGradient>
++    <linearGradient
++       id="linearGradient3800">
++      <stop
++         style="stop-color:#f4d9b1;stop-opacity:1.0000000;"
++         offset="0.0000000"
++         id="stop3802" />
++      <stop
++         style="stop-color:#df9725;stop-opacity:1.0000000;"
++         offset="1.0000000"
++         id="stop3804" />
++    </linearGradient>
++    <radialGradient
++       inkscape:collect="always"
++       xlink:href="#linearGradient3800"
++       id="radialGradient3806"
++       cx="29.344931"
++       cy="17.064077"
++       fx="29.344931"
++       fy="17.064077"
++       r="9.1620579"
++       gradientUnits="userSpaceOnUse" />
++    <radialGradient
++       inkscape:collect="always"
++       xlink:href="#linearGradient3816"
++       id="radialGradient3822"
++       cx="31.112698"
++       cy="19.008621"
++       fx="31.112698"
++       fy="19.008621"
++       r="8.6620579"
++       gradientUnits="userSpaceOnUse" />
++    <linearGradient
++       inkscape:collect="always"
++       xlink:href="#linearGradient3824"
++       id="linearGradient3830"
++       x1="30.935921"
++       y1="29.553486"
++       x2="30.935921"
++       y2="35.803486"
++       gradientUnits="userSpaceOnUse" />
++    <radialGradient
++       inkscape:collect="always"
++       xlink:href="#linearGradient4163"
++       id="radialGradient4169"
++       cx="28.089741"
++       cy="27.203083"
++       fx="28.089741"
++       fy="27.203083"
++       r="13.565360"
++       gradientTransform="matrix(1.297564,2.881172e-16,-1.964720e-16,0.884831,-8.358505,4.940469)"
++       gradientUnits="userSpaceOnUse" />
++    <radialGradient
++       inkscape:collect="always"
++       xlink:href="#linearGradient3800"
++       id="radialGradient4171"
++       gradientUnits="userSpaceOnUse"
++       cx="29.344931"
++       cy="17.064077"
++       fx="29.344931"
++       fy="17.064077"
++       r="9.1620579"
++       gradientTransform="matrix(0.787998,3.877637e-16,-3.877637e-16,0.787998,6.221198,3.617627)" />
++    <linearGradient
++       inkscape:collect="always"
++       xlink:href="#linearGradient3824"
++       id="linearGradient4175"
++       gradientUnits="userSpaceOnUse"
++       x1="30.935921"
++       y1="29.553486"
++       x2="30.935921"
++       y2="35.803486"
++       gradientTransform="translate(0.707108,0.000000)" />
++    <radialGradient
++       inkscape:collect="always"
++       xlink:href="#linearGradient3816"
++       id="radialGradient4179"
++       gradientUnits="userSpaceOnUse"
++       cx="31.112698"
++       cy="19.008621"
++       fx="31.112698"
++       fy="19.008621"
++       r="8.6620579" />
++    <linearGradient
++       inkscape:collect="always"
++       xlink:href="#linearGradient3824"
++       id="linearGradient4326"
++       gradientUnits="userSpaceOnUse"
++       gradientTransform="translate(-12.41789,-7.000000)"
++       x1="30.935921"
++       y1="29.553486"
++       x2="30.935921"
++       y2="35.803486" />
++    <radialGradient
++       inkscape:collect="always"
++       xlink:href="#linearGradient4338"
++       id="radialGradient4328"
++       gradientUnits="userSpaceOnUse"
++       gradientTransform="matrix(0.787998,3.877637e-16,-3.877637e-16,0.787998,6.221198,3.617627)"
++       cx="29.344931"
++       cy="17.064077"
++       fx="29.344931"
++       fy="17.064077"
++       r="9.1620579" />
++    <radialGradient
++       inkscape:collect="always"
++       xlink:href="#linearGradient3816"
++       id="radialGradient4330"
++       gradientUnits="userSpaceOnUse"
++       cx="31.112698"
++       cy="19.008621"
++       fx="31.112698"
++       fy="19.008621"
++       r="8.6620579" />
++    <linearGradient
++       inkscape:collect="always"
++       xlink:href="#linearGradient3824"
++       id="linearGradient4332"
++       gradientUnits="userSpaceOnUse"
++       x1="30.935921"
++       y1="29.553486"
++       x2="30.935921"
++       y2="35.803486"
++       gradientTransform="translate(-13.12500,-7.000000)" />
++    <radialGradient
++       inkscape:collect="always"
++       xlink:href="#linearGradient3816"
++       id="radialGradient4336"
++       gradientUnits="userSpaceOnUse"
++       cx="31.112698"
++       cy="19.008621"
++       fx="31.112698"
++       fy="19.008621"
++       r="8.6620579" />
++    <radialGradient
++       inkscape:collect="always"
++       xlink:href="#linearGradient4344"
++       id="radialGradient4350"
++       cx="16.214741"
++       cy="19.836468"
++       fx="16.214741"
++       fy="19.836468"
++       r="13.565360"
++       gradientTransform="matrix(1.000000,0.000000,0.000000,0.681917,0.000000,8.233773)"
++       gradientUnits="userSpaceOnUse" />
++    <linearGradient
++       inkscape:collect="always"
++       xlink:href="#linearGradient4356"
++       id="linearGradient4362"
++       x1="20.661695"
++       y1="35.817974"
++       x2="22.626925"
++       y2="36.217758"
++       gradientUnits="userSpaceOnUse"
++       gradientTransform="matrix(0.983375,0.181588,-0.181588,0.983375,6.231716,-2.651466)" />
++    <linearGradient
++       inkscape:collect="always"
++       xlink:href="#linearGradient4356"
++       id="linearGradient4366"
++       gradientUnits="userSpaceOnUse"
++       x1="22.686766"
++       y1="36.390400"
++       x2="21.408455"
++       y2="35.739632"
++       gradientTransform="matrix(-0.977685,0.210075,0.210075,0.977685,55.10960,-3.945209)" />
++    <linearGradient
++       inkscape:collect="always"
++       xlink:href="#linearGradient4356"
++       id="linearGradient4372"
++       gradientUnits="userSpaceOnUse"
++       gradientTransform="matrix(0.983375,0.181588,-0.181588,0.983375,-7.072120,-9.824920)"
++       x1="20.661695"
++       y1="35.817974"
++       x2="22.626925"
++       y2="36.217758" />
++    <linearGradient
++       inkscape:collect="always"
++       xlink:href="#linearGradient4356"
++       id="linearGradient4374"
++       gradientUnits="userSpaceOnUse"
++       gradientTransform="matrix(-0.977685,0.210075,0.210075,0.977685,41.80576,-11.11866)"
++       x1="22.686766"
++       y1="36.390400"
++       x2="21.408455"
++       y2="35.739632" />
++    <linearGradient
++       inkscape:collect="always"
++       xlink:href="#linearGradient4356"
++       id="linearGradient1366"
++       gradientUnits="userSpaceOnUse"
++       gradientTransform="matrix(-0.977685,0.210075,0.210075,0.977685,41.80576,-11.11866)"
++       x1="22.686766"
++       y1="36.390400"
++       x2="21.408455"
++       y2="35.739632" />
++    <linearGradient
++       inkscape:collect="always"
++       xlink:href="#linearGradient4356"
++       id="linearGradient1369"
++       gradientUnits="userSpaceOnUse"
++       gradientTransform="matrix(0.983375,0.181588,-0.181588,0.983375,-7.072120,-9.824920)"
++       x1="20.661695"
++       y1="35.817974"
++       x2="22.626925"
++       y2="36.217758" />
++    <linearGradient
++       inkscape:collect="always"
++       xlink:href="#linearGradient3824"
++       id="linearGradient1372"
++       gradientUnits="userSpaceOnUse"
++       gradientTransform="translate(-12.41789,-7.000000)"
++       x1="30.935921"
++       y1="29.553486"
++       x2="30.935921"
++       y2="35.803486" />
++    <radialGradient
++       inkscape:collect="always"
++       xlink:href="#linearGradient4344"
++       id="radialGradient1381"
++       gradientUnits="userSpaceOnUse"
++       gradientTransform="matrix(1.000000,0.000000,0.000000,0.681917,0.000000,8.233773)"
++       cx="16.214741"
++       cy="19.836468"
++       fx="16.214741"
++       fy="19.836468"
++       r="13.565360" />
++  </defs>
++  <sodipodi:namedview
++     inkscape:showpageshadow="false"
++     id="base"
++     pagecolor="#ffffff"
++     bordercolor="#666666"
++     borderopacity="1.0"
++     inkscape:pageopacity="0.0"
++     inkscape:pageshadow="2"
++     inkscape:zoom="1"
++     inkscape:cx="-130.79856"
++     inkscape:cy="13.86274"
++     inkscape:current-layer="layer2"
++     showgrid="false"
++     inkscape:grid-bbox="true"
++     inkscape:document-units="px"
++     fill="#9db029"
++     stroke="#727e0a"
++     inkscape:window-width="872"
++     inkscape:window-height="815"
++     inkscape:window-x="265"
++     inkscape:window-y="33" />
++  <metadata
++     id="metadata4">
++    <rdf:RDF>
++      <cc:Work
++         rdf:about="">
++        <dc:format>image/svg+xml</dc:format>
++        <dc:type
++           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
++        <dc:title>People</dc:title>
++        <dc:creator>
++          <cc:Agent>
++            <dc:title>Jakub Steiner</dc:title>
++          </cc:Agent>
++        </dc:creator>
++        <dc:source>http://jimmac.musichall.cz</dc:source>
++        <dc:subject>
++          <rdf:Bag>
++            <rdf:li>users</rdf:li>
++            <rdf:li>people</rdf:li>
++          </rdf:Bag>
++        </dc:subject>
++        <cc:license
++           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
++      </cc:Work>
++      <cc:License
++         rdf:about="http://creativecommons.org/licenses/publicdomain/">
++        <cc:permits
++           rdf:resource="http://creativecommons.org/ns#Reproduction" />
++        <cc:permits
++           rdf:resource="http://creativecommons.org/ns#Distribution" />
++        <cc:permits
++           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
++      </cc:License>
++    </rdf:RDF>
++  </metadata>
++  <g
++     id="layer1"
++     inkscape:label="cipek"
++     inkscape:groupmode="layer"
++     style="display:inline">
++    <path
++       transform="matrix(1.775510,0.000000,0.000000,0.959183,-37.37822,11.77153)"
++       sodipodi:type="arc"
++       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient4336);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
++       id="path4177"
++       sodipodi:cx="31.112698"
++       sodipodi:cy="19.008621"
++       sodipodi:rx="8.6620579"
++       sodipodi:ry="8.6620579"
++       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z" />
++    <path
++       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient1381);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#404604;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
++       d="M 12.861174,34.636039 L 23.467776,34.636039 C 26.472980,34.636039 29.448260,33.534107 30.538843,30.393398 C 31.574482,27.410922 30.715620,21.731340 23.998106,17.135146 L 11.446960,17.135146 C 4.7294460,21.377786 3.8899690,27.179977 5.4365530,30.570174 C 7.0121480,34.023964 9.6791930,34.636039 12.861174,34.636039 z "
++       id="path2329"
++       sodipodi:nodetypes="cczcczc" />
++    <path
++       sodipodi:nodetypes="cccc"
++       id="path3812"
++       d="M 17.932367,19.786797 C 17.932367,19.786797 15.781044,21.447132 15.966376,23.447330 C 13.925150,21.646536 13.866503,18.195806 13.866503,18.195806 L 17.932367,19.786797 z "
++       style="opacity:1.0000000;color:#000000;fill:#9db029;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
++    <path
++       sodipodi:nodetypes="cczcczc"
++       id="path3838"
++       d="M 12.966639,33.571836 L 23.283309,33.571836 C 25.923032,33.571836 28.536470,32.603917 29.494421,29.845169 C 30.404110,27.225409 29.399699,22.236555 23.499142,18.199332 L 11.974417,18.199332 C 6.0738600,21.925999 5.0864770,27.022551 6.4449710,30.000446 C 7.8289490,33.034200 10.171638,33.571836 12.966639,33.571836 z "
++       style="opacity:0.21518983;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99999976px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
++    <path
++       style="opacity:1.0000000;color:#000000;fill:#9db029;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
++       d="M 18.910795,19.786797 C 18.910795,19.786797 21.062118,21.447132 20.876786,23.447330 C 22.918012,21.646536 22.976659,18.195806 22.976659,18.195806 L 18.910795,19.786797 z "
++       id="path3810"
++       sodipodi:nodetypes="cccc" />
++    <path
++       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z"
++       sodipodi:ry="8.6620579"
++       sodipodi:rx="8.6620579"
++       sodipodi:cy="19.008621"
++       sodipodi:cx="31.112698"
++       id="path3814"
++       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient4330);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
++       sodipodi:type="arc"
++       transform="translate(-13.25000,-3.500000)" />
++    <path
++       sodipodi:type="arc"
++       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient4328);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#6f4709;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
++       id="path2327"
++       sodipodi:cx="31.112698"
++       sodipodi:cy="19.008621"
++       sodipodi:rx="8.6620579"
++       sodipodi:ry="8.6620579"
++       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z"
++       transform="translate(-13.12500,-7.000000)" />
++    <path
++       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z"
++       sodipodi:ry="8.6620579"
++       sodipodi:rx="8.6620579"
++       sodipodi:cy="19.008621"
++       sodipodi:cx="31.112698"
++       id="path3834"
++       style="opacity:0.12658228;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.1401283px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
++       sodipodi:type="arc"
++       transform="matrix(0.877095,0.000000,0.000000,0.877095,-9.301073,-4.663733)" />
++    <path
++       style="opacity:1.0000000;color:#000000;fill:url(#linearGradient1372);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
++       d="M 22.583894,27.034641 L 26.826534,27.034641 L 24.351661,24.736544 L 23.821331,25.443651 L 23.291000,24.913321 L 22.583894,27.034641 z "
++       id="path4173" />
++    <path
++       style="opacity:0.22784807;color:#000000;fill:url(#linearGradient1369);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
++       d="M 8.5479535,33.601747 C 7.3003465,33.056778 6.7419595,31.743470 6.7419595,31.743470 C 7.5832405,27.674334 10.461885,24.697254 10.461885,24.697254 C 10.461885,24.697254 8.1825635,31.108768 8.5479535,33.601747 z "
++       id="path4368"
++       sodipodi:nodetypes="cccc" />
++    <path
++       sodipodi:nodetypes="cccc"
++       id="path4370"
++       d="M 27.453661,32.743396 C 28.684912,32.162418 29.258041,30.741075 29.258041,30.741075 C 28.298921,26.698092 25.281892,23.898254 25.281892,23.898254 C 25.281892,23.898254 27.746485,30.240856 27.453661,32.743396 z "
++       style="opacity:0.22784807;color:#000000;fill:url(#linearGradient1366);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
++  </g>
++  <g
++     inkscape:groupmode="layer"
++     id="layer2"
++     inkscape:label="dalsi cipek"
++     style="display:inline">
++    <path
++       transform="matrix(1.77551,0,0,0.583984,-24.25322,28.27856)"
++       sodipodi:type="arc"
++       style="opacity:1;color:black;fill:url(#radialGradient4179);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
++       id="path4306"
++       sodipodi:cx="31.112698"
++       sodipodi:cy="19.008621"
++       sodipodi:rx="8.6620579"
++       sodipodi:ry="8.6620579"
++       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.45064,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z" />
++    <path
++       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient4169);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#204a87;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
++       d="M 25.986174,41.636039 L 36.592776,41.636039 C 39.597980,41.636039 42.573260,40.534107 43.663843,37.393398 C 44.699482,34.410922 43.840620,28.731340 37.123106,24.135146 L 24.571960,24.135146 C 17.854446,28.377786 17.014969,34.179977 18.561553,37.570174 C 20.137148,41.023964 22.804193,41.636039 25.986174,41.636039 z "
++       id="path4308"
++       sodipodi:nodetypes="cczcczc" />
++    <path
++       style="opacity:1.0000000;color:#000000;fill:url(#linearGradient3830);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
++       d="M 26.693281,25.726136 C 29.875261,28.554563 31.289475,38.807612 31.289475,38.807612 C 31.289475,38.807612 32.703688,28.554564 35.178562,25.549360 L 26.693281,25.726136 z "
++       id="path4310"
++       sodipodi:nodetypes="cccc" />
++    <path
++       sodipodi:nodetypes="cccc"
++       id="path4312"
++       d="M 28.972721,26.786797 C 28.972721,26.786797 26.821398,28.447132 27.006730,30.447330 C 24.965504,28.646536 24.906857,25.195806 24.906857,25.195806 L 28.972721,26.786797 z "
++       style="opacity:1.0000000;color:#000000;fill:#729fcf;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
++    <path
++       sodipodi:nodetypes="cczcczc"
++       id="path4314"
++       d="M 25.914862,40.593933 L 36.408309,40.571836 C 39.048032,40.571836 41.661470,39.603917 42.619421,36.845169 C 43.529110,34.225409 42.524699,29.236555 36.624142,25.199332 L 25.099417,24.956264 C 19.198860,28.682931 18.056797,33.779483 19.437388,37.000446 C 20.817980,40.221409 22.832599,40.571836 25.914862,40.593933 z "
++       style="opacity:0.21518983;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99999976px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
++    <path
++       style="opacity:1.0000000;color:#000000;fill:#729fcf;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
++       d="M 33.410795,26.786797 C 33.410795,26.786797 35.562118,28.447132 35.376786,30.447330 C 37.418012,28.646536 37.476659,25.195806 37.476659,25.195806 L 33.410795,26.786797 z "
++       id="path4316"
++       sodipodi:nodetypes="cccc" />
++    <path
++       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z"
++       sodipodi:ry="8.6620579"
++       sodipodi:rx="8.6620579"
++       sodipodi:cy="19.008621"
++       sodipodi:cx="31.112698"
++       id="path4318"
++       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient3822);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
++       sodipodi:type="arc"
++       transform="translate(-0.125000,3.500000)" />
++    <path
++       sodipodi:type="arc"
++       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient4171);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#c17d11;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
++       id="path4320"
++       sodipodi:cx="31.112698"
++       sodipodi:cy="19.008621"
++       sodipodi:rx="8.6620579"
++       sodipodi:ry="8.6620579"
++       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z" />
++    <path
++       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z"
++       sodipodi:ry="8.6620579"
++       sodipodi:rx="8.6620579"
++       sodipodi:cy="19.008621"
++       sodipodi:cx="31.112698"
++       id="path4322"
++       style="opacity:0.19620253;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.1401283px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
++       sodipodi:type="arc"
++       transform="matrix(0.877095,0.000000,0.000000,0.877095,3.823927,2.336267)" />
++    <path
++       style="opacity:0.22784807;color:#000000;fill:url(#linearGradient4362);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
++       d="M 21.851790,40.775197 C 20.604183,40.230228 20.045796,38.916920 20.045796,38.916920 C 20.887077,34.847784 23.765721,31.870704 23.765721,31.870704 C 23.765721,31.870704 21.486400,38.282218 21.851790,40.775197 z "
++       id="path4354"
++       sodipodi:nodetypes="cccc" />
++    <path
++       sodipodi:nodetypes="cccc"
++       id="path4364"
++       d="M 40.757497,39.916846 C 41.988748,39.335868 42.561877,37.914525 42.561877,37.914525 C 41.602757,33.871542 38.585728,31.071704 38.585728,31.071704 C 38.585728,31.071704 41.050321,37.414306 40.757497,39.916846 z "
++       style="opacity:0.22784807;color:#000000;fill:url(#linearGradient4366);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
++  </g>
++</svg>
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..a127545
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+01-dfsg-icons
diff --git a/debian/tryton-modules-party.links b/debian/tryton-modules-party.links
deleted file mode 100644
index 714b2f9..0000000
--- a/debian/tryton-modules-party.links
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/icons/Tango/scalable/apps/system-users.svg	/usr/share/pyshared/trytond/modules/party/icons/tryton-party.svg
commit d41fb8c5f43ac303c04b37aa64ed5b2f32144881
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Thu Jul 14 01:19:17 2011 +0200

    Releasing debian version 2.0.0+dfsg-1.

diff --git a/debian/changelog b/debian/changelog
index a55a65f..f7b4563 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,19 @@
+tryton-modules-party (2.0.0+dfsg-1) unstable; urgency=low
+
+  [ Daniel Baumann ]
+  * Removing for new source package version obsoleted README.source file.
+  * Adding options for source package.
+  * Compacting copyright file.
+  * Not wrapping uploaders field, it does not exceed 80 chars.
+
+  [ Mathias Behrle ]
+  * Merging upstream version 2.0.0+dfsg.
+  * Replacing non-DFSG compliant graphics by linking to tango-icon-theme.
+  * Moving from deprecated python-support to dh_python2, thanks to
+    Charlie Smotherman <cjsmo at cableone.net> (Closes: #632909).
+
+ -- Mathias Behrle <mathiasb at m9s.biz>  Thu, 14 Jul 2011 01:17:53 +0200
+
 tryton-modules-party (2.0.0-1) unstable; urgency=low
 
   * Updating to standards version 3.9.2.
commit 4aa731af46c650ab6c07c71ba6e658b13cb9ce5a
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Wed Jul 13 19:11:27 2011 +0200

    Moving from deprecated python-support to dh_python2, thanks to Charlie Smotherman <cjsmo at cableone.net> (Closes: #632909).

diff --git a/debian/control b/debian/control
index 48d06f6..7d0396c 100644
--- a/debian/control
+++ b/debian/control
@@ -4,11 +4,12 @@ Priority: optional
 Maintainer: Debian Tryton Maintainers <tryton at lists.debian-maintainers.org>
 Uploaders: Daniel Baumann <daniel at debian.org>, Mathias Behrle <mathiasb at m9s.biz>
 Dm-Upload-Allowed: yes
-Build-Depends: debhelper (>= 8), python, python-setuptools, python-support
+Build-Depends: debhelper (>= 8), python (>= 2.6.6-3~), python-setuptools
 Standards-Version: 3.9.2
 Homepage: http://www.tryton.org/
 Vcs-Browser: http://git.debian-maintainers.org/?p=tryton/tryton-modules-party.git
 Vcs-Git: git://git.debian-maintainers.org/git/tryton/tryton-modules-party.git
+X-Python-Version: >= 2.5
 
 Package: tryton-modules-party
 Architecture: all
diff --git a/debian/pycompat b/debian/pycompat
deleted file mode 100644
index 0cfbf08..0000000
--- a/debian/pycompat
+++ /dev/null
@@ -1 +0,0 @@
-2
diff --git a/debian/pyversions b/debian/pyversions
deleted file mode 100644
index b3dc41e..0000000
--- a/debian/pyversions
+++ /dev/null
@@ -1 +0,0 @@
-2.5-
diff --git a/debian/rules b/debian/rules
index 000210b..e32b791 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,4 +1,9 @@
 #!/usr/bin/make -f
 
 %:
-	dh ${@}
+	dh ${@} --with python2
+
+override_dh_auto_clean:
+	dh_auto_clean
+
+	rm -rf *.egg-info
commit ebbc34c2561d7c2febcd10374f4b6af6206033e6
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Wed Jul 13 13:49:13 2011 +0200

    Replacing non-DFSG compliant graphics by linking to tango-icon-theme.

diff --git a/debian/control b/debian/control
index 792d55f..48d06f6 100644
--- a/debian/control
+++ b/debian/control
@@ -14,7 +14,7 @@ Package: tryton-modules-party
 Architecture: all
 Depends:
  ${misc:Depends}, ${python:Depends}, tryton-server (>= 2.0),
- tryton-modules-country (>= 2.0), python-pkg-resources
+ tryton-modules-country (>= 2.0), python-pkg-resources, tango-icon-theme
 Recommends: python-soappy, python-vatnumber
 XB-Python-Version: ${python:Versions}
 Description: Tryton Application Platform (Party Module)
diff --git a/debian/tryton-modules-party.links b/debian/tryton-modules-party.links
new file mode 100644
index 0000000..714b2f9
--- /dev/null
+++ b/debian/tryton-modules-party.links
@@ -0,0 +1 @@
+/usr/share/icons/Tango/scalable/apps/system-users.svg	/usr/share/pyshared/trytond/modules/party/icons/tryton-party.svg
commit 36ad73bc38323bc1bc2375eb3a77a7aa1354bc88
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Tue Jul 12 17:09:06 2011 +0200

    Merging upstream version 2.0.0+dfsg.

diff --git a/icons/LICENSE b/icons/LICENSE
deleted file mode 100644
index 11782c0..0000000
--- a/icons/LICENSE
+++ /dev/null
@@ -1,264 +0,0 @@
-                            [1]Creative Commons
-
-                        Creative Commons Legal Code
-
-                         Attribution-ShareAlike 2.0
-   CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
-   LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN
-   ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
-   INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
-   REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR
-   DAMAGES RESULTING FROM ITS USE.
-
-   License
-
-   THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS
-   CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS
-   PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE
-   WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS
-   PROHIBITED.
-
-   BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND
-   AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. THE LICENSOR GRANTS
-   YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF
-   SUCH TERMS AND CONDITIONS.
-
-   1. Definitions
-    a. "Collective Work" means a work, such as a periodical issue,
-       anthology or encyclopedia, in which the Work in its entirety in
-       unmodified form, along with a number of other contributions,
-       constituting separate and independent works in themselves, are
-       assembled into a collective whole. A work that constitutes a
-       Collective Work will not be considered a Derivative Work (as
-       defined below) for the purposes of this License.
-    b. "Derivative Work" means a work based upon the Work or upon the
-       Work and other pre-existing works, such as a translation, musical
-       arrangement, dramatization, fictionalization, motion picture
-       version, sound recording, art reproduction, abridgment,
-       condensation, or any other form in which the Work may be recast,
-       transformed, or adapted, except that a work that constitutes a
-       Collective Work will not be considered a Derivative Work for the
-       purpose of this License. For the avoidance of doubt, where the
-       Work is a musical composition or sound recording, the
-       synchronization of the Work in timed-relation with a moving image
-       ("synching") will be considered a Derivative Work for the purpose
-       of this License.
-    c. "Licensor" means the individual or entity that offers the Work
-       under the terms of this License.
-    d. "Original Author" means the individual or entity who created the
-       Work.
-    e. "Work" means the copyrightable work of authorship offered under
-       the terms of this License.
-    f. "You" means an individual or entity exercising rights under this
-       License who has not previously violated the terms of this License
-       with respect to the Work, or who has received express permission
-       from the Licensor to exercise rights under this License despite a
-       previous violation.
-    g. "License Elements" means the following high-level license
-       attributes as selected by Licensor and indicated in the title of
-       this License: Attribution, ShareAlike.
-
-   2. Fair Use Rights. Nothing in this license is intended to reduce,
-   limit, or restrict any rights arising from fair use, first sale or
-   other limitations on the exclusive rights of the copyright owner under
-   copyright law or other applicable laws.
-
-   3. License Grant. Subject to the terms and conditions of this License,
-   Licensor hereby grants You a worldwide, royalty-free, non-exclusive,
-   perpetual (for the duration of the applicable copyright) license to
-   exercise the rights in the Work as stated below:
-    a. to reproduce the Work, to incorporate the Work into one or more
-       Collective Works, and to reproduce the Work as incorporated in the
-       Collective Works;
-    b. to create and reproduce Derivative Works;
-    c. to distribute copies or phonorecords of, display publicly, perform
-       publicly, and perform publicly by means of a digital audio
-       transmission the Work including as incorporated in Collective
-       Works;
-    d. to distribute copies or phonorecords of, display publicly, perform
-       publicly, and perform publicly by means of a digital audio
-       transmission Derivative Works.
-    e. For the avoidance of doubt, where the work is a musical
-       composition:
-         i. Performance Royalties Under Blanket Licenses. Licensor waives
-            the exclusive right to collect, whether individually or via a
-            performance rights society (e.g. ASCAP, BMI, SESAC),
-            royalties for the public performance or public digital
-            performance (e.g. webcast) of the Work.
-        ii. Mechanical Rights and Statutory Royalties. Licensor waives
-            the exclusive right to collect, whether individually or via a
-            music rights society or designated agent (e.g. Harry Fox
-            Agency), royalties for any phonorecord You create from the
-            Work ("cover version") and distribute, subject to the
-            compulsory license created by 17 USC Section 115 of the US
-            Copyright Act (or the equivalent in other jurisdictions).
-    f. Webcasting Rights and Statutory Royalties. For the avoidance of
-       doubt, where the Work is a sound recording, Licensor waives the
-       exclusive right to collect, whether individually or via a
-       performance-rights society (e.g. SoundExchange), royalties for the
-       public digital performance (e.g. webcast) of the Work, subject to
-       the compulsory license created by 17 USC Section 114 of the US
-       Copyright Act (or the equivalent in other jurisdictions).
-
-   The above rights may be exercised in all media and formats whether now
-   known or hereafter devised. The above rights include the right to make
-   such modifications as are technically necessary to exercise the rights
-   in other media and formats. All rights not expressly granted by
-   Licensor are hereby reserved.
-
-   4. Restrictions.The license granted in Section 3 above is expressly
-   made subject to and limited by the following restrictions:
-    a. You may distribute, publicly display, publicly perform, or
-       publicly digitally perform the Work only under the terms of this
-       License, and You must include a copy of, or the Uniform Resource
-       Identifier for, this License with every copy or phonorecord of the
-       Work You distribute, publicly display, publicly perform, or
-       publicly digitally perform. You may not offer or impose any terms
-       on the Work that alter or restrict the terms of this License or
-       the recipients' exercise of the rights granted hereunder. You may
-       not sublicense the Work. You must keep intact all notices that
-       refer to this License and to the disclaimer of warranties. You may
-       not distribute, publicly display, publicly perform, or publicly
-       digitally perform the Work with any technological measures that
-       control access or use of the Work in a manner inconsistent with
-       the terms of this License Agreement. The above applies to the Work
-       as incorporated in a Collective Work, but this does not require
-       the Collective Work apart from the Work itself to be made subject
-       to the terms of this License. If You create a Collective Work,
-       upon notice from any Licensor You must, to the extent practicable,
-       remove from the Collective Work any reference to such Licensor or
-       the Original Author, as requested. If You create a Derivative
-       Work, upon notice from any Licensor You must, to the extent
-       practicable, remove from the Derivative Work any reference to such
-       Licensor or the Original Author, as requested.
-    b. You may distribute, publicly display, publicly perform, or
-       publicly digitally perform a Derivative Work only under the terms
-       of this License, a later version of this License with the same
-       License Elements as this License, or a Creative Commons iCommons
-       license that contains the same License Elements as this License
-       (e.g. Attribution-ShareAlike 2.0 Japan). You must include a copy
-       of, or the Uniform Resource Identifier for, this License or other
-       license specified in the previous sentence with every copy or
-       phonorecord of each Derivative Work You distribute, publicly
-       display, publicly perform, or publicly digitally perform. You may
-       not offer or impose any terms on the Derivative Works that alter
-       or restrict the terms of this License or the recipients' exercise
-       of the rights granted hereunder, and You must keep intact all
-       notices that refer to this License and to the disclaimer of
-       warranties. You may not distribute, publicly display, publicly
-       perform, or publicly digitally perform the Derivative Work with
-       any technological measures that control access or use of the Work
-       in a manner inconsistent with the terms of this License Agreement.
-       The above applies to the Derivative Work as incorporated in a
-       Collective Work, but this does not require the Collective Work
-       apart from the Derivative Work itself to be made subject to the
-       terms of this License.
-    c. If you distribute, publicly display, publicly perform, or publicly
-       digitally perform the Work or any Derivative Works or Collective
-       Works, You must keep intact all copyright notices for the Work and
-       give the Original Author credit reasonable to the medium or means
-       You are utilizing by conveying the name (or pseudonym if
-       applicable) of the Original Author if supplied; the title of the
-       Work if supplied; to the extent reasonably practicable, the
-       Uniform Resource Identifier, if any, that Licensor specifies to be
-       associated with the Work, unless such URI does not refer to the
-       copyright notice or licensing information for the Work; and in the
-       case of a Derivative Work, a credit identifying the use of the
-       Work in the Derivative Work (e.g., "French translation of the Work
-       by Original Author," or "Screenplay based on original Work by
-       Original Author"). Such credit may be implemented in any
-       reasonable manner; provided, however, that in the case of a
-       Derivative Work or Collective Work, at a minimum such credit will
-       appear where any other comparable authorship credit appears and in
-       a manner at least as prominent as such other comparable authorship
-       credit.
-
-   5. Representations, Warranties and Disclaimer
-
-   UNLESS OTHERWISE AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS
-   THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND
-   CONCERNING THE MATERIALS, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE,
-   INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY,
-   FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF
-   LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF
-   ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW
-   THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY
-   TO YOU.
-
-   6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY
-   APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY
-   LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR
-   EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK,
-   EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
-   7. Termination
-    a. This License and the rights granted hereunder will terminate
-       automatically upon any breach by You of the terms of this License.
-       Individuals or entities who have received Derivative Works or
-       Collective Works from You under this License, however, will not
-       have their licenses terminated provided such individuals or
-       entities remain in full compliance with those licenses. Sections
-       1, 2, 5, 6, 7, and 8 will survive any termination of this License.
-    b. Subject to the above terms and conditions, the license granted
-       here is perpetual (for the duration of the applicable copyright in
-       the Work). Notwithstanding the above, Licensor reserves the right
-       to release the Work under different license terms or to stop
-       distributing the Work at any time; provided, however that any such
-       election will not serve to withdraw this License (or any other
-       license that has been, or is required to be, granted under the
-       terms of this License), and this License will continue in full
-       force and effect unless terminated as stated above.
-
-   8. Miscellaneous
-    a. Each time You distribute or publicly digitally perform the Work or
-       a Collective Work, the Licensor offers to the recipient a license
-       to the Work on the same terms and conditions as the license
-       granted to You under this License.
-    b. Each time You distribute or publicly digitally perform a
-       Derivative Work, Licensor offers to the recipient a license to the
-       original Work on the same terms and conditions as the license
-       granted to You under this License.
-    c. If any provision of this License is invalid or unenforceable under
-       applicable law, it shall not affect the validity or enforceability
-       of the remainder of the terms of this License, and without further
-       action by the parties to this agreement, such provision shall be
-       reformed to the minimum extent necessary to make such provision
-       valid and enforceable.
-    d. No term or provision of this License shall be deemed waived and no
-       breach consented to unless such waiver or consent shall be in
-       writing and signed by the party to be charged with such waiver or
-       consent.
-    e. This License constitutes the entire agreement between the parties
-       with respect to the Work licensed here. There are no
-       understandings, agreements or representations with respect to the
-       Work not specified here. Licensor shall not be bound by any
-       additional provisions that may appear in any communication from
-       You. This License may not be modified without the mutual written
-       agreement of the Licensor and You.
-
-   Creative Commons is not a party to this License, and makes no warranty
-   whatsoever in connection with the Work. Creative Commons will not be
-   liable to You or any party on any legal theory for any damages
-   whatsoever, including without limitation any general, special,
-   incidental or consequential damages arising in connection to this
-   license. Notwithstanding the foregoing two (2) sentences, if Creative
-   Commons has expressly identified itself as the Licensor hereunder, it
-   shall have all rights and obligations of Licensor.
-
-   Except for the limited purpose of indicating to the public that the
-   Work is licensed under the CCPL, neither party will use the trademark
-   "Creative Commons" or any related trademark or logo of Creative
-   Commons without the prior written consent of Creative Commons. Any
-   permitted use will be in compliance with Creative Commons'
-   then-current trademark usage guidelines, as may be published on its
-   website or otherwise made available upon request from time to time.
-
-   Creative Commons may be contacted at [2]http://creativecommons.org/.
-
-                                                [3]« Back to Commons Deed
-
-References
-
-   1. http://creativecommons.org/
-   2. http://creativecommons.org/
-   3. http://creativecommons.org/licenses/by-sa/2.0/
diff --git a/icons/tryton-party.svg b/icons/tryton-party.svg
deleted file mode 100644
index c686f2c..0000000
--- a/icons/tryton-party.svg
+++ /dev/null
@@ -1,537 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://web.resource.org/cc/"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48px"
-   height="48px"
-   id="svg2108"
-   sodipodi:version="0.32"
-   inkscape:version="0.43+devel"
-   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/apps"
-   sodipodi:docname="system-users.svg">
-  <defs
-     id="defs3">
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient4356">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop4358" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop4360" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4344">
-      <stop
-         style="stop-color:#727e0a;stop-opacity:1;"
-         offset="0"
-         id="stop4346" />
-      <stop
-         style="stop-color:#5b6508;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop4348" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4338">
-      <stop
-         id="stop4340"
-         offset="0.0000000"
-         style="stop-color:#e9b15e;stop-opacity:1.0000000;" />
-      <stop
-         id="stop4342"
-         offset="1.0000000"
-         style="stop-color:#966416;stop-opacity:1.0000000;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4163">
-      <stop
-         style="stop-color:#3b74bc;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop4165" />
-      <stop
-         style="stop-color:#2d5990;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop4167" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3824">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop3826" />
-      <stop
-         style="stop-color:#c9c9c9;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop3828" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient3816">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop3818" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop3820" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3800">
-      <stop
-         style="stop-color:#f4d9b1;stop-opacity:1.0000000;"
-         offset="0.0000000"
-         id="stop3802" />
-      <stop
-         style="stop-color:#df9725;stop-opacity:1.0000000;"
-         offset="1.0000000"
-         id="stop3804" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3800"
-       id="radialGradient3806"
-       cx="29.344931"
-       cy="17.064077"
-       fx="29.344931"
-       fy="17.064077"
-       r="9.1620579"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3816"
-       id="radialGradient3822"
-       cx="31.112698"
-       cy="19.008621"
-       fx="31.112698"
-       fy="19.008621"
-       r="8.6620579"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3824"
-       id="linearGradient3830"
-       x1="30.935921"
-       y1="29.553486"
-       x2="30.935921"
-       y2="35.803486"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4163"
-       id="radialGradient4169"
-       cx="28.089741"
-       cy="27.203083"
-       fx="28.089741"
-       fy="27.203083"
-       r="13.565360"
-       gradientTransform="matrix(1.297564,2.881172e-16,-1.964720e-16,0.884831,-8.358505,4.940469)"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3800"
-       id="radialGradient4171"
-       gradientUnits="userSpaceOnUse"
-       cx="29.344931"
-       cy="17.064077"
-       fx="29.344931"
-       fy="17.064077"
-       r="9.1620579"
-       gradientTransform="matrix(0.787998,3.877637e-16,-3.877637e-16,0.787998,6.221198,3.617627)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3824"
-       id="linearGradient4175"
-       gradientUnits="userSpaceOnUse"
-       x1="30.935921"
-       y1="29.553486"
-       x2="30.935921"
-       y2="35.803486"
-       gradientTransform="translate(0.707108,0.000000)" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3816"
-       id="radialGradient4179"
-       gradientUnits="userSpaceOnUse"
-       cx="31.112698"
-       cy="19.008621"
-       fx="31.112698"
-       fy="19.008621"
-       r="8.6620579" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3824"
-       id="linearGradient4326"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-12.41789,-7.000000)"
-       x1="30.935921"
-       y1="29.553486"
-       x2="30.935921"
-       y2="35.803486" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4338"
-       id="radialGradient4328"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.787998,3.877637e-16,-3.877637e-16,0.787998,6.221198,3.617627)"
-       cx="29.344931"
-       cy="17.064077"
-       fx="29.344931"
-       fy="17.064077"
-       r="9.1620579" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3816"
-       id="radialGradient4330"
-       gradientUnits="userSpaceOnUse"
-       cx="31.112698"
-       cy="19.008621"
-       fx="31.112698"
-       fy="19.008621"
-       r="8.6620579" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3824"
-       id="linearGradient4332"
-       gradientUnits="userSpaceOnUse"
-       x1="30.935921"
-       y1="29.553486"
-       x2="30.935921"
-       y2="35.803486"
-       gradientTransform="translate(-13.12500,-7.000000)" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3816"
-       id="radialGradient4336"
-       gradientUnits="userSpaceOnUse"
-       cx="31.112698"
-       cy="19.008621"
-       fx="31.112698"
-       fy="19.008621"
-       r="8.6620579" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4344"
-       id="radialGradient4350"
-       cx="16.214741"
-       cy="19.836468"
-       fx="16.214741"
-       fy="19.836468"
-       r="13.565360"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.681917,0.000000,8.233773)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4356"
-       id="linearGradient4362"
-       x1="20.661695"
-       y1="35.817974"
-       x2="22.626925"
-       y2="36.217758"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.983375,0.181588,-0.181588,0.983375,6.231716,-2.651466)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4356"
-       id="linearGradient4366"
-       gradientUnits="userSpaceOnUse"
-       x1="22.686766"
-       y1="36.390400"
-       x2="21.408455"
-       y2="35.739632"
-       gradientTransform="matrix(-0.977685,0.210075,0.210075,0.977685,55.10960,-3.945209)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4356"
-       id="linearGradient4372"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.983375,0.181588,-0.181588,0.983375,-7.072120,-9.824920)"
-       x1="20.661695"
-       y1="35.817974"
-       x2="22.626925"
-       y2="36.217758" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4356"
-       id="linearGradient4374"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.977685,0.210075,0.210075,0.977685,41.80576,-11.11866)"
-       x1="22.686766"
-       y1="36.390400"
-       x2="21.408455"
-       y2="35.739632" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4356"
-       id="linearGradient1366"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.977685,0.210075,0.210075,0.977685,41.80576,-11.11866)"
-       x1="22.686766"
-       y1="36.390400"
-       x2="21.408455"
-       y2="35.739632" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4356"
-       id="linearGradient1369"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.983375,0.181588,-0.181588,0.983375,-7.072120,-9.824920)"
-       x1="20.661695"
-       y1="35.817974"
-       x2="22.626925"
-       y2="36.217758" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3824"
-       id="linearGradient1372"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-12.41789,-7.000000)"
-       x1="30.935921"
-       y1="29.553486"
-       x2="30.935921"
-       y2="35.803486" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient4344"
-       id="radialGradient1381"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.681917,0.000000,8.233773)"
-       cx="16.214741"
-       cy="19.836468"
-       fx="16.214741"
-       fy="19.836468"
-       r="13.565360" />
-  </defs>
-  <sodipodi:namedview
-     inkscape:showpageshadow="false"
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1"
-     inkscape:cx="31.201438"
-     inkscape:cy="13.86274"
-     inkscape:current-layer="layer2"
-     showgrid="false"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     fill="#9db029"
-     stroke="#727e0a"
-     inkscape:window-width="872"
-     inkscape:window-height="815"
-     inkscape:window-x="265"
-     inkscape:window-y="121" />
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>People</dc:title>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:source>http://jimmac.musichall.cz</dc:source>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>users</rdf:li>
-            <rdf:li>people</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Reproduction" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/Distribution" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/Notice" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/Attribution" />
-        <cc:permits
-           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
-        <cc:requires
-           rdf:resource="http://web.resource.org/cc/ShareAlike" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1"
-     inkscape:label="cipek"
-     inkscape:groupmode="layer"
-     style="display:inline">
-    <path
-       transform="matrix(1.775510,0.000000,0.000000,0.959183,-37.37822,11.77153)"
-       sodipodi:type="arc"
-       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient4336);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-       id="path4177"
-       sodipodi:cx="31.112698"
-       sodipodi:cy="19.008621"
-       sodipodi:rx="8.6620579"
-       sodipodi:ry="8.6620579"
-       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z" />
-    <path
-       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient1381);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#404604;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-       d="M 12.861174,34.636039 L 23.467776,34.636039 C 26.472980,34.636039 29.448260,33.534107 30.538843,30.393398 C 31.574482,27.410922 30.715620,21.731340 23.998106,17.135146 L 11.446960,17.135146 C 4.7294460,21.377786 3.8899690,27.179977 5.4365530,30.570174 C 7.0121480,34.023964 9.6791930,34.636039 12.861174,34.636039 z "
-       id="path2329"
-       sodipodi:nodetypes="cczcczc" />
-    <path
-       sodipodi:nodetypes="cccc"
-       id="path3812"
-       d="M 17.932367,19.786797 C 17.932367,19.786797 15.781044,21.447132 15.966376,23.447330 C 13.925150,21.646536 13.866503,18.195806 13.866503,18.195806 L 17.932367,19.786797 z "
-       style="opacity:1.0000000;color:#000000;fill:#9db029;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
-    <path
-       sodipodi:nodetypes="cczcczc"
-       id="path3838"
-       d="M 12.966639,33.571836 L 23.283309,33.571836 C 25.923032,33.571836 28.536470,32.603917 29.494421,29.845169 C 30.404110,27.225409 29.399699,22.236555 23.499142,18.199332 L 11.974417,18.199332 C 6.0738600,21.925999 5.0864770,27.022551 6.4449710,30.000446 C 7.8289490,33.034200 10.171638,33.571836 12.966639,33.571836 z "
-       style="opacity:0.21518983;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99999976px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
-    <path
-       style="opacity:1.0000000;color:#000000;fill:#9db029;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-       d="M 18.910795,19.786797 C 18.910795,19.786797 21.062118,21.447132 20.876786,23.447330 C 22.918012,21.646536 22.976659,18.195806 22.976659,18.195806 L 18.910795,19.786797 z "
-       id="path3810"
-       sodipodi:nodetypes="cccc" />
-    <path
-       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z"
-       sodipodi:ry="8.6620579"
-       sodipodi:rx="8.6620579"
-       sodipodi:cy="19.008621"
-       sodipodi:cx="31.112698"
-       id="path3814"
-       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient4330);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-       sodipodi:type="arc"
-       transform="translate(-13.25000,-3.500000)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient4328);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#6f4709;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-       id="path2327"
-       sodipodi:cx="31.112698"
-       sodipodi:cy="19.008621"
-       sodipodi:rx="8.6620579"
-       sodipodi:ry="8.6620579"
-       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z"
-       transform="translate(-13.12500,-7.000000)" />
-    <path
-       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z"
-       sodipodi:ry="8.6620579"
-       sodipodi:rx="8.6620579"
-       sodipodi:cy="19.008621"
-       sodipodi:cx="31.112698"
-       id="path3834"
-       style="opacity:0.12658228;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.1401283px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-       sodipodi:type="arc"
-       transform="matrix(0.877095,0.000000,0.000000,0.877095,-9.301073,-4.663733)" />
-    <path
-       style="opacity:1.0000000;color:#000000;fill:url(#linearGradient1372);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-       d="M 22.583894,27.034641 L 26.826534,27.034641 L 24.351661,24.736544 L 23.821331,25.443651 L 23.291000,24.913321 L 22.583894,27.034641 z "
-       id="path4173" />
-    <path
-       style="opacity:0.22784807;color:#000000;fill:url(#linearGradient1369);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-       d="M 8.5479535,33.601747 C 7.3003465,33.056778 6.7419595,31.743470 6.7419595,31.743470 C 7.5832405,27.674334 10.461885,24.697254 10.461885,24.697254 C 10.461885,24.697254 8.1825635,31.108768 8.5479535,33.601747 z "
-       id="path4368"
-       sodipodi:nodetypes="cccc" />
-    <path
-       sodipodi:nodetypes="cccc"
-       id="path4370"
-       d="M 27.453661,32.743396 C 28.684912,32.162418 29.258041,30.741075 29.258041,30.741075 C 28.298921,26.698092 25.281892,23.898254 25.281892,23.898254 C 25.281892,23.898254 27.746485,30.240856 27.453661,32.743396 z "
-       style="opacity:0.22784807;color:#000000;fill:url(#linearGradient1366);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="dalsi cipek"
-     style="display:inline">
-    <path
-       transform="matrix(1.77551,0,0,0.583984,-24.25322,28.27856)"
-       sodipodi:type="arc"
-       style="opacity:1;color:black;fill:url(#radialGradient4179);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
-       id="path4306"
-       sodipodi:cx="31.112698"
-       sodipodi:cy="19.008621"
-       sodipodi:rx="8.6620579"
-       sodipodi:ry="8.6620579"
-       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.45064,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z" />
-    <path
-       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient4169);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#204a87;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-       d="M 25.986174,41.636039 L 36.592776,41.636039 C 39.597980,41.636039 42.573260,40.534107 43.663843,37.393398 C 44.699482,34.410922 43.840620,28.731340 37.123106,24.135146 L 24.571960,24.135146 C 17.854446,28.377786 17.014969,34.179977 18.561553,37.570174 C 20.137148,41.023964 22.804193,41.636039 25.986174,41.636039 z "
-       id="path4308"
-       sodipodi:nodetypes="cczcczc" />
-    <path
-       style="opacity:1.0000000;color:#000000;fill:url(#linearGradient3830);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-       d="M 26.693281,25.726136 C 29.875261,28.554563 31.289475,38.807612 31.289475,38.807612 C 31.289475,38.807612 32.703688,28.554564 35.178562,25.549360 L 26.693281,25.726136 z "
-       id="path4310"
-       sodipodi:nodetypes="cccc" />
-    <path
-       sodipodi:nodetypes="cccc"
-       id="path4312"
-       d="M 28.972721,26.786797 C 28.972721,26.786797 26.821398,28.447132 27.006730,30.447330 C 24.965504,28.646536 24.906857,25.195806 24.906857,25.195806 L 28.972721,26.786797 z "
-       style="opacity:1.0000000;color:#000000;fill:#729fcf;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
-    <path
-       sodipodi:nodetypes="cczcczc"
-       id="path4314"
-       d="M 25.914862,40.593933 L 36.408309,40.571836 C 39.048032,40.571836 41.661470,39.603917 42.619421,36.845169 C 43.529110,34.225409 42.524699,29.236555 36.624142,25.199332 L 25.099417,24.956264 C 19.198860,28.682931 18.056797,33.779483 19.437388,37.000446 C 20.817980,40.221409 22.832599,40.571836 25.914862,40.593933 z "
-       style="opacity:0.21518983;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99999976px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
-    <path
-       style="opacity:1.0000000;color:#000000;fill:#729fcf;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-       d="M 33.410795,26.786797 C 33.410795,26.786797 35.562118,28.447132 35.376786,30.447330 C 37.418012,28.646536 37.476659,25.195806 37.476659,25.195806 L 33.410795,26.786797 z "
-       id="path4316"
-       sodipodi:nodetypes="cccc" />
-    <path
-       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z"
-       sodipodi:ry="8.6620579"
-       sodipodi:rx="8.6620579"
-       sodipodi:cy="19.008621"
-       sodipodi:cx="31.112698"
-       id="path4318"
-       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient3822);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-       sodipodi:type="arc"
-       transform="translate(-0.125000,3.500000)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient4171);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#c17d11;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-       id="path4320"
-       sodipodi:cx="31.112698"
-       sodipodi:cy="19.008621"
-       sodipodi:rx="8.6620579"
-       sodipodi:ry="8.6620579"
-       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z" />
-    <path
-       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z"
-       sodipodi:ry="8.6620579"
-       sodipodi:rx="8.6620579"
-       sodipodi:cy="19.008621"
-       sodipodi:cx="31.112698"
-       id="path4322"
-       style="opacity:0.19620253;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.1401283px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-       sodipodi:type="arc"
-       transform="matrix(0.877095,0.000000,0.000000,0.877095,3.823927,2.336267)" />
-    <path
-       style="opacity:0.22784807;color:#000000;fill:url(#linearGradient4362);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
-       d="M 21.851790,40.775197 C 20.604183,40.230228 20.045796,38.916920 20.045796,38.916920 C 20.887077,34.847784 23.765721,31.870704 23.765721,31.870704 C 23.765721,31.870704 21.486400,38.282218 21.851790,40.775197 z "
-       id="path4354"
-       sodipodi:nodetypes="cccc" />
-    <path
-       sodipodi:nodetypes="cccc"
-       id="path4364"
-       d="M 40.757497,39.916846 C 41.988748,39.335868 42.561877,37.914525 42.561877,37.914525 C 41.602757,33.871542 38.585728,31.071704 38.585728,31.071704 C 38.585728,31.071704 41.050321,37.414306 40.757497,39.916846 z "
-       style="opacity:0.22784807;color:#000000;fill:url(#linearGradient4366);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
-  </g>
-</svg>
commit 85e6814ac592f177d0ddc1aae530d27d484f11e2
Author: Daniel Baumann <daniel at debian.org>
Date:   Sun Jul 10 16:01:11 2011 +0200

    Not wrapping uploaders field, it does not exceed 80 chars.

diff --git a/debian/control b/debian/control
index 0e67bf5..792d55f 100644
--- a/debian/control
+++ b/debian/control
@@ -2,9 +2,7 @@ Source: tryton-modules-party
 Section: python
 Priority: optional
 Maintainer: Debian Tryton Maintainers <tryton at lists.debian-maintainers.org>
-Uploaders:
- Daniel Baumann <daniel at debian.org>,
- Mathias Behrle <mathiasb at m9s.biz>
+Uploaders: Daniel Baumann <daniel at debian.org>, Mathias Behrle <mathiasb at m9s.biz>
 Dm-Upload-Allowed: yes
 Build-Depends: debhelper (>= 8), python, python-setuptools, python-support
 Standards-Version: 3.9.2
commit d5e78e88b1323d70392695df280674cc71b0c638
Author: Daniel Baumann <daniel at debian.org>
Date:   Sun Jul 10 15:54:39 2011 +0200

    Compacting copyright file.

diff --git a/debian/copyright b/debian/copyright
index 6afc0ff..8cae45d 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -1,8 +1,3 @@
-Upstream-Contact: Tryton project <tryton at googlegroups.com>
-Upstream-Homepage: http://downloads.tryton.org/
-Maintainer-Contact: Debian Tryton Maintainers <tryton at lists.debian-maintainers.org>
-Maintainer-Homepage: http://tryton.debian-maintainers.org/
-
 Files: *
 Copyright:
  (C) 2004-2008 Tiny SPRL
@@ -13,25 +8,12 @@ Copyright:
  (C) 2008-2011 Korbinian Preisler
  (C) 2008-2011 virtual things
 License: GPL-3+
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
- .
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- .
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- .
- On Debian systems, the complete text of the GNU General Public License
- can be found in /usr/share/common-licenses/GPL-3 file.
 
 Files: debian/*
 Copyright: (C) 2009-2011 Daniel Baumann <daniel at debian.org>
 License: GPL-3+
+
+License: GPL-3+
  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
@@ -45,5 +27,5 @@ License: GPL-3+
  You should have received a copy of the GNU General Public License
  along with this program. If not, see <http://www.gnu.org/licenses/>.
  .
- On Debian systems, the complete text of the GNU General Public License
+ The complete text of the GNU General Public License
  can be found in /usr/share/common-licenses/GPL-3 file.
commit e48165b5dd9d1825181185b433e572a68262fcfb
Author: Daniel Baumann <daniel at debian.org>
Date:   Sun Jul 10 15:38:55 2011 +0200

    Adding options for source package.

diff --git a/debian/source/options b/debian/source/options
new file mode 100644
index 0000000..d053b65
--- /dev/null
+++ b/debian/source/options
@@ -0,0 +1,2 @@
+compression = gzip
+compression-level = 9
commit c7c375b6f0bf92af3846ce33f78e89b9bdac640f
Author: Daniel Baumann <daniel at debian.org>
Date:   Sun Jul 10 15:38:02 2011 +0200

    Removing for new source package version obsoleted README.source file.

diff --git a/debian/README.source b/debian/README.source
deleted file mode 100644
index 18b6b24..0000000
--- a/debian/README.source
+++ /dev/null
@@ -1,37 +0,0 @@
-Package Repositories
---------------------
-
-Backports for the current stable debian distribution as well as snapshots of
-unreleased versions may be available in repositories listed on the maintainers
-homepage. The current URL of the maintainer homepage can be seen in
-debian/copyright.
-
-
-Source Access
--------------
-
-You can obtain the sources of this package with:
-
-  $ apt-get source ${PACKAGE}
-
-whereas '${PACKAGE}' has to be replaced with the actual name of the package.
-
-This package is maintained with the Git version control system. The current git
-source tree can be obtained with:
-
-  $ git clone ${GIT_URI}
-
-whereas '${GIT_URI}' has to be replaced with the actual URI for the Git
-repository. The current Git URI can be seen in debian/control in the extracted
-package sources.
-
-More information about Git can be found in the git-core package.
-
-This package may use the Quilt patch system to manage all modifications to the
-upstream source. Changes, if any, are stored in the source package as diffs in
-debian/diff and are applied during the build. Current modifications can be
-applied to the source tree with:
-
-  $ QUILT_PATCHES=debian/patches quilt push -a
-
-More information about Quilt can be found in the quilt package.
commit 9e14aca8303c6194e7cd525ffa7470a3151d48e8
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Tue May 24 21:40:03 2011 +0200

    Releasing debian version 2.0.0-1.

diff --git a/debian/changelog b/debian/changelog
index e26ffeb..a55a65f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+tryton-modules-party (2.0.0-1) unstable; urgency=low
+
+  * Updating to standards version 3.9.2.
+  * Merging upstream version 2.0.0.
+  * Updating Copyright.
+  * Updating versioned tryton depends to 2.0.
+
+ -- Mathias Behrle <mathiasb at m9s.biz>  Tue, 24 May 2011 21:34:42 +0200
+
 tryton-modules-party (1.8.0-2) unstable; urgency=low
 
   * Changing my email address.
commit 2ae67bb3e82f6ae4a822912a59b8ddbbfa93013f
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Tue May 24 21:21:34 2011 +0200

    Updating versioned tryton depends to 2.0.

diff --git a/debian/control b/debian/control
index 4d94863..0e67bf5 100644
--- a/debian/control
+++ b/debian/control
@@ -15,8 +15,8 @@ Vcs-Git: git://git.debian-maintainers.org/git/tryton/tryton-modules-party.git
 Package: tryton-modules-party
 Architecture: all
 Depends:
- ${misc:Depends}, ${python:Depends}, tryton-server (>= 1.8),
- tryton-modules-country (>= 1.8), python-pkg-resources
+ ${misc:Depends}, ${python:Depends}, tryton-server (>= 2.0),
+ tryton-modules-country (>= 2.0), python-pkg-resources
 Recommends: python-soappy, python-vatnumber
 XB-Python-Version: ${python:Versions}
 Description: Tryton Application Platform (Party Module)
commit 406387b913fb57e0d1a1cba22986e5896666a08f
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Tue May 24 20:40:03 2011 +0200

    Updating Copyright.

diff --git a/debian/copyright b/debian/copyright
index 00ed9c7..6afc0ff 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -6,12 +6,12 @@ Maintainer-Homepage: http://tryton.debian-maintainers.org/
 Files: *
 Copyright:
  (C) 2004-2008 Tiny SPRL
- (C) 2008-2010 Cedric Krier
- (C) 2008-2010 Bertrand Chenal
- (C) 2008-2010 B2CK SPRL
- (C) 2008-2010 Udo Spallek
- (C) 2008-2010 Korbinian Preisler
- (C) 2008-2010 virtual things
+ (C) 2008-2011 Cedric Krier
+ (C) 2008-2011 Bertrand Chenal
+ (C) 2008-2011 B2CK SPRL
+ (C) 2008-2011 Udo Spallek
+ (C) 2008-2011 Korbinian Preisler
+ (C) 2008-2011 virtual things
 License: GPL-3+
  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
commit 4cae41e4f2717822f577eb9c6e74b307252e4868
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Tue May 24 19:12:50 2011 +0200

    Merging upstream version 2.0.0.

diff --git a/CHANGELOG b/CHANGELOG
index 84b4452..58380c4 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+Version 2.0.0 - 2011-04-27
+* Bug fixes (see mercurial logs for details)
+
 Version 1.8.0 - 2010-11-01
 * Bug fixes (see mercurial logs for details)
 * Add default address on party
diff --git a/COPYRIGHT b/COPYRIGHT
index cc0e0c8..d4db09d 100644
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -1,10 +1,10 @@
+Copyright (C) 2008-2011 Cédric Krier.
+Copyright (C) 2008-2011 Bertrand Chenal.
+Copyright (C) 2008-2011 B2CK SPRL.
+Copyright (C) 2008-2011 Udo Spallek.
+Copyright (C) 2008-2011 Korbinian Preisler.
+Copyright (C) 2008-2011 virtual things.
 Copyright (C) 2004-2008 Tiny SPRL.
-Copyright (C) 2008-2010 Cédric Krier.
-Copyright (C) 2008-2010 Bertrand Chenal.
-Copyright (C) 2008-2010 B2CK SPRL.
-Copyright (C) 2008-2010 Udo Spallek.
-Copyright (C) 2008-2010 Korbinian Preisler.
-Copyright (C) 2008-2010 virtual things.
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
diff --git a/MANIFEST.in b/MANIFEST.in
index dcb2afa..47da692 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -8,3 +8,4 @@ include *.xml
 include *.odt
 include *.csv
 include doc/*
+include icons/*
diff --git a/PKG-INFO b/PKG-INFO
index c165573..df191a0 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 1.0
 Name: trytond_party
-Version: 1.8.0
+Version: 2.0.0
 Summary: Define parties, addresses and co.
 Home-page: http://www.tryton.org/
 Author: B2CK
 Author-email: info at b2ck.com
 License: GPL-3
-Download-URL: http://downloads.tryton.org/1.8/
+Download-URL: http://downloads.tryton.org/2.0/
 Description: UNKNOWN
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
@@ -16,10 +16,15 @@ Classifier: Intended Audience :: Financial and Insurance Industry
 Classifier: Intended Audience :: Legal Industry
 Classifier: Intended Audience :: Manufacturing
 Classifier: License :: OSI Approved :: GNU General Public License (GPL)
+Classifier: Natural Language :: Bulgarian
+Classifier: Natural Language :: Dutch
 Classifier: Natural Language :: English
 Classifier: Natural Language :: French
 Classifier: Natural Language :: German
+Classifier: Natural Language :: Russian
 Classifier: Natural Language :: Spanish
 Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2.5
+Classifier: Programming Language :: Python :: 2.6
+Classifier: Programming Language :: Python :: 2.7
 Classifier: Topic :: Office/Business
diff --git a/__tryton__.py b/__tryton__.py
index f2fd76d..9e0f94d 100644
--- a/__tryton__.py
+++ b/__tryton__.py
@@ -3,19 +3,25 @@
 #this repository contains the full copyright notices and license terms.
 {
     'name' : 'Party',
+    'name_bg_BG': 'Партньор',
     'name_de_DE': 'Parteien',
     'name_es_CO': 'Terceros',
     'name_es_ES': 'Terceros',
     'name_fr_FR': 'Tiers',
-    'version' : '1.8.0',
+    'name_nl_NL': 'Relaties',
+    'name_ru_RU': 'Контрагенты',
+    'version' : '2.0.0',
     'author' : 'B2CK',
     'email': 'info at b2ck.com',
     'website': 'http://www.tryton.org/',
     'description': 'Define parties, addresses and co.',
+    'description_bg_BG': 'Задаване на партньори, адреси и тн.',
     'description_de_DE': 'Ermöglicht die Erstellung von Parteien, Adressen, etc.',
     'description_es_CO': 'Definición de terceros, direcciones, etc.',
     'description_es_ES': 'Define terceros, direcciones, etc...',
     'description_fr_FR': 'Définit des tiers, des adresses, etc.',
+    'description_nl_NL': 'Definieert relaties, adressen en bedrijven.',
+    'description_ru_RU': 'Определение контрагентов, адресов и тп.',
     'depends' : [
         'ir',
         'res',
@@ -29,9 +35,12 @@
         'configuration.xml',
     ],
     'translation': [
+        'bg_BG.csv',
         'de_DE.csv',
         'es_CO.csv',
         'es_ES.csv',
         'fr_FR.csv',
+        'nl_NL.csv',
+        'ru_RU.csv',
     ],
 }
diff --git a/address.py b/address.py
index 155791a..aeed740 100644
--- a/address.py
+++ b/address.py
@@ -25,7 +25,7 @@ class Address(ModelSQL, ModelView):
             states=STATES)
     city = fields.Char('City', states=STATES)
     country = fields.Many2One('country.country', 'Country',
-            states=STATES)
+        on_change=['country', 'subdivision'], states=STATES)
     subdivision = fields.Many2One("country.subdivision",
             'Subdivision', domain=[('country', '=', Eval('country'))],
             states=STATES)
@@ -109,4 +109,14 @@ class Address(ModelSQL, ModelView):
                     self.raise_user_error('write_party')
         return super(Address, self).write(ids, vals)
 
+    def on_change_country(self, vals):
+        subdivision_obj = self.pool.get('country.subdivision')
+        result = dict((k, vals.get(k, False))
+            for k in ('country', 'subdivision'))
+        if vals['subdivision']:
+            subdivision = subdivision_obj.browse(vals['subdivision'])
+            if subdivision.country.id != vals['country']:
+                result['subdivision'] = False
+        return result
+
 Address()
diff --git a/address.xml b/address.xml
index f6d2e43..078f062 100644
--- a/address.xml
+++ b/address.xml
@@ -50,9 +50,9 @@ this repository contains the full copyright notices and license terms. -->
                     <field name="city"/>
                     <newline/>
                     <label name="country"/>
-                    <field name="country" completion="1"/>
+                    <field name="country" widget="selection"/>
                     <label name="subdivision"/>
-                    <field name="subdivision"/>
+                    <field name="subdivision" widget="selection"/>
                 </form>
                 ]]>
             </field>
@@ -60,7 +60,6 @@ this repository contains the full copyright notices and license terms. -->
         <record model="ir.action.act_window" id="act_address_form">
             <field name="name">Addresses</field>
             <field name="res_model">party.address</field>
-            <field name="view_type">form</field>
         </record>
         <record model="ir.action.act_window.view" id="act_address_form_view1">
             <field name="sequence" eval="10"/>
@@ -78,7 +77,6 @@ this repository contains the full copyright notices and license terms. -->
         <record model="ir.action.act_window" id="act_address_form2">
             <field name="name">Addresses</field>
             <field name="res_model">party.address</field>
-            <field name="view_type">form</field>
         </record>
         <record model="ir.action.act_window.view" id="act_address_form2_view1">
             <field name="sequence" eval="10"/>
diff --git a/bg_BG.csv b/bg_BG.csv
new file mode 100644
index 0000000..74c989c
--- /dev/null
+++ b/bg_BG.csv
@@ -0,0 +1,130 @@
+type,name,res_id,src,value,fuzzy
+error,party.address,0,You can not modify the party of an address!,Не може да променяте партньора за адрес!,0
+error,party.category,0,The name of a party category must be unique by parent!,Името на категорията на партньора трябва да бъде уникална по родител!,0
+error,party.category,0,You can not create recursive categories!,Не може да създавате взаимно вложени категории!,0
+error,party.category,0,"You can not use "" / "" in name field!","В името на полето не може да има "" / ""!",0
+error,party.check_vies,0,"The VIES service is unavailable, try again later.","VIES услугата е недостъпна, опитайте отново по-късно.",0
+error,party.contact_mechanism,0,You can not modify the party of a contact mechanism!,Не може да променяте партньора за начин на контакт!,0
+error,party.party,0,Invalid VAT number!,Невалиден ДДС номер!,0
+error,party.party,0,The code of the party must be unique!,Кода на партньора трябва да е уникален!,0
+field,"party.address,active",0,Active,Активен,0
+field,"party.address,city",0,City,Град,0
+field,"party.address,country",0,Country,Държава,0
+field,"party.address,full_address",0,Full Address,Пълен адрес,0
+field,"party.address,name",0,Name,Име,0
+field,"party.address,party",0,Party,Партньор,0
+field,"party.address,rec_name",0,Name,Име,0
+field,"party.address,sequence",0,Sequence,Последователност,0
+field,"party.address,street",0,Street,Улица,0
+field,"party.address,streetbis",0,Street (bis),Улица 2,0
+field,"party.address,subdivision",0,Subdivision,Подразделение,0
+field,"party.address,zip",0,Zip,Пощ. код,0
+field,"party.category,active",0,Active,Активен,0
+field,"party.category,childs",0,Children,Деца,0
+field,"party.category,name",0,Name,Име,0
+field,"party.category,parent",0,Parent,Родител,0
+field,"party.category,rec_name",0,Name,Име,0
+field,"party.check_vies.check,parties_failed",0,Parties Failed,Партньора не е валиден,0
+field,"party.check_vies.check,parties_succeed",0,Parties Succeed,Валиден партньор,0
+field,"party.configuration,party_lang",0,Party Language,Език на партньор,0
+field,"party.configuration,party_sequence",0,Party Sequence,Последователност за партньор,0
+field,"party.configuration,rec_name",0,Name,Име,0
+field,"party.contact_mechanism,active",0,Active,Активен,0
+field,"party.contact_mechanism,comment",0,Comment,Коментар,0
+field,"party.contact_mechanism,email",0,E-Mail,E-Mail,0
+field,"party.contact_mechanism,other_value",0,Value,Стойност,0
+field,"party.contact_mechanism,party",0,Party,Партньор,0
+field,"party.contact_mechanism,rec_name",0,Name,Име,0
+field,"party.contact_mechanism,sequence",0,Sequence,Последователност,0
+field,"party.contact_mechanism,sip",0,SIP,SIP,0
+field,"party.contact_mechanism,skype",0,Skype,Skype,0
+field,"party.contact_mechanism,type",0,Type,Вид,0
+field,"party.contact_mechanism,value",0,Value,Стойност,0
+field,"party.contact_mechanism,website",0,Website,Website,0
+field,"party.party,active",0,Active,Активен,0
+field,"party.party,addresses",0,Addresses,Адреси,0
+field,"party.party,categories",0,Categories,Категории,0
+field,"party.party,code",0,Code,Код,0
+field,"party.party,code_length",0,Code Length,Дължина на кода,0
+field,"party.party,contact_mechanisms",0,Contact Mechanisms,Начини на контакт,0
+field,"party.party,email",0,E-Mail,E-Mail,0
+field,"party.party,fax",0,Fax,Факс,0
+field,"party.party,full_name",0,Full Name,Пълно име,0
+field,"party.party,lang",0,Language,Език,0
+field,"party.party,mobile",0,Mobile,Мобилен,0
+field,"party.party,name",0,Name,Име,0
+field,"party.party,phone",0,Phone,Телефон,0
+field,"party.party,rec_name",0,Name,Име,0
+field,"party.party,vat_code",0,VAT Code,ДДС код,0
+field,"party.party,vat_country",0,VAT Country,ДДС държава,0
+field,"party.party,vat_number",0,VAT Number,ДДС номер,0
+field,"party.party,website",0,Website,Website,0
+field,"party.party-party.category,category",0,Category,Категория,0
+field,"party.party-party.category,party",0,Party,Партньор,0
+field,"party.party-party.category,rec_name",0,Name,Име,0
+help,"party.configuration,party_lang",0,The value set on this field will preset the language on new parties,Стойността в това поле ще се използва за език при нови партньори.,0
+help,"party.party,vat_country",0,Setting VAT country will enable validation of the VAT number.,Оказвайки държава за ДДС ще позволи да се провери ДДС номера.,0
+help,"party.party,vat_number",0,Value Added Tax number,ДДС номер,0
+model,"ir.action,name",,Categories,Категории,0
+model,"ir.action,name",act_address_form,Addresses,Адреси,0
+model,"ir.action,name",act_address_form2,Addresses,Адреси,0
+model,"ir.action,name",act_category_form,Categories,Категории,0
+model,"ir.action,name",act_category_tree,Categories,Категории,0
+model,"ir.action,name",act_party_by_category,Parties by Category,Патньори по категория,0
+model,"ir.action,name",act_party_configuration_form,Party Configuration,Конфигуриране на партньор,0
+model,"ir.action,name",act_party_form,Parties,Партньори,0
+model,"ir.action,name",act_party_form2,Parties,Партньори,0
+model,"ir.action,name",report_label,Labels,Етикети,0
+model,"ir.action,name",wizard_check_vies,Check VIES,Провека в VIES,0
+model,"ir.sequence,name",sequence_party,Party,Партньор,0
+model,"ir.sequence.type,name",sequence_type_party,Party,Партньор,0
+model,"ir.ui.menu,name",,New category,Нова категория,0
+model,"ir.ui.menu,name",menu_address_form,Addresses,Адреси,0
+model,"ir.ui.menu,name",menu_address_form2,New Address,Нов адрес,0
+model,"ir.ui.menu,name",menu_category_form,New Category,Нова категория,0
+model,"ir.ui.menu,name",menu_category_tree,Categories,Категории,0
+model,"ir.ui.menu,name",menu_configuration,Configuration,Конфигурация,0
+model,"ir.ui.menu,name",menu_party,Party Management,Управление на партньор,0
+model,"ir.ui.menu,name",menu_party_configuration,Party Configuration,Конфигуриране на партньор,0
+model,"ir.ui.menu,name",menu_party_form,Parties,Партньори,0
+model,"ir.ui.menu,name",menu_party_form2,New Party,Нов партньор,0
+model,"party.address,name",0,Address,Адрес,0
+model,"party.category,name",0,Category,Категория,0
+model,"party.check_vies.check,name",0,Check VIES - Check,Проверка ДДС номер (VIES) - проверка,0
+model,"party.check_vies.no_check,name",0,Check VIES - No Check,Проверка ДДС номер (VIES) - без проверка,0
+model,"party.configuration,name",0,Party Configuration,Конфигуриране на партньор,0
+model,"party.contact_mechanism,name",0,Contact Mechanism,Начин на контакт,0
+model,"party.party,name",0,Party,Партньор,0
+model,"party.party-party.category,name",0,Party - Category,Партньор - Категория,0
+model,"res.group,name",group_party_admin,Party Administration,Управление на партньор,0
+selection,"party.contact_mechanism,type",0,E-Mail,E-Mail,0
+selection,"party.contact_mechanism,type",0,Fax,Факс,0
+selection,"party.contact_mechanism,type",0,IRC,IRC,0
+selection,"party.contact_mechanism,type",0,Jabber,Jabber,0
+selection,"party.contact_mechanism,type",0,Mobile,Мобилен,0
+selection,"party.contact_mechanism,type",0,Other,Друг,0
+selection,"party.contact_mechanism,type",0,Phone,Телефон,0
+selection,"party.contact_mechanism,type",0,SIP,SIP,0
+selection,"party.contact_mechanism,type",0,Skype,Skype,0
+selection,"party.contact_mechanism,type",0,Website,Website,0
+view,party.address,0,Addresses,Адреси,0
+view,party.category,0,Categories,Категории,0
+view,party.category,0,Category,Категория,0
+view,party.check_vies.check,0,Parties Failed,Партньора не е валиден,0
+view,party.check_vies.check,0,Parties Succeed,Валиден партньор,0
+view,party.check_vies.check,0,VAT Information Exchange System Results,Резултати от Система за обмен на инфиормация за ДДС,0
+view,party.check_vies.no_check,0,VAT Information Exchange System,Система за обмен на ДДС информация,0
+view,party.check_vies.no_check,0,"You must have a recent version of ""vatnumber"" installed!","Трябва да имате инсталирана последната версия на ""vatnumber""!",0
+view,party.configuration,0,Party Configuration,Конфигуриране на партньор,0
+view,party.contact_mechanism,0,Contact Mechanism,Начин на контакт,0
+view,party.contact_mechanism,0,Contact Mechanisms,Начини на контакт,0
+view,party.party,0,Accounting,Счетоводство,0
+view,party.party,0,Addresses,Адреси,0
+view,party.party,0,Categories,Категории,0
+view,party.party,0,Contact Mechanisms,Начини на контакт,0
+view,party.party,0,General,Основен,0
+view,party.party,0,Parties,Партньори,0
+view,party.party,0,Party,Партньор,0
+view,party.party,0,VAT,ДДС,0
+wizard_button,"party.check_vies,check,end",0,Ok,Добре,0
+wizard_button,"party.check_vies,no_check,end",0,Ok,Добре,0
diff --git a/category.xml b/category.xml
index a90751e..12a691f 100644
--- a/category.xml
+++ b/category.xml
@@ -25,8 +25,22 @@ this repository contains the full copyright notices and license terms. -->
             <field name="field_childs">childs</field>
             <field name="arch" type="xml">
                 <![CDATA[
-                <tree string="Categories" fill="1">
+                <tree string="Categories" fill="1" keyword_open="1">
                     <field name="name" select="1"/>
+                    <field name="parent" tree_invisible="1"/>
+                    <field name="childs" tree_invisible="1"/>
+                </tree>
+                ]]>
+            </field>
+        </record>
+        <record model="ir.ui.view" id="category_view_list">
+            <field name="model">party.category</field>
+            <field name="type">tree</field>
+            <field name="priority" eval="10"/>
+            <field name="arch" type="xml">
+                <![CDATA[
+                <tree string="Categories" fill="1">
+                    <field name="rec_name" select="1"/>
                 </tree>
                 ]]>
             </field>
@@ -34,7 +48,6 @@ this repository contains the full copyright notices and license terms. -->
         <record model="ir.action.act_window" id="act_category_tree">
             <field name="name">Categories</field>
             <field name="res_model">party.category</field>
-            <field name="view_type">tree</field>
             <field name="domain">[('parent', '=', False)]</field>
         </record>
         <record model="ir.action.act_window.view" id="act_category_tree_view1">
@@ -42,43 +55,48 @@ this repository contains the full copyright notices and license terms. -->
             <field name="view" ref="category_view_tree"/>
             <field name="act_window" ref="act_category_tree"/>
         </record>
+        <record model="ir.action.act_window.view" id="act_category_tree_view2">
+            <field name="sequence" eval="20"/>
+            <field name="view" ref="category_view_form"/>
+            <field name="act_window" ref="act_category_tree"/>
+        </record>
+
         <menuitem parent="menu_party"
             action="act_category_tree" id="menu_category_tree"/>
 
-        <record model="ir.action.act_window" id="act_category_form">
+        <record model="ir.action.act_window" id="act_category_list">
             <field name="name">Categories</field>
             <field name="res_model">party.category</field>
-            <field name="view_type">form</field>
         </record>
-        <record model="ir.action.act_window.view" id="act_category_form_view1">
+        <record model="ir.action.act_window.view" id="act_category_list_view1">
             <field name="sequence" eval="10"/>
-            <field name="view" ref="category_view_tree"/>
-            <field name="act_window" ref="act_category_form"/>
+            <field name="view" ref="category_view_list"/>
+            <field name="act_window" ref="act_category_list"/>
         </record>
-        <record model="ir.action.act_window.view" id="act_category_form_view2">
+        <record model="ir.action.act_window.view" id="act_category_list_view2">
             <field name="sequence" eval="20"/>
             <field name="view" ref="category_view_form"/>
-            <field name="act_window" ref="act_category_form"/>
+            <field name="act_window" ref="act_category_list"/>
         </record>
-        <menuitem parent="menu_configuration"
-            action="act_category_form" id="menu_category_form" sequence="10"/>
-        <record model="ir.action.act_window" id="act_category_form2">
+        <menuitem parent="menu_category_tree" action="act_category_list"
+            id="menu_category_list"/>
+
+        <record model="ir.action.act_window" id="act_category_form">
             <field name="name">Categories</field>
             <field name="res_model">party.category</field>
-            <field name="view_type">form</field>
         </record>
-        <record model="ir.action.act_window.view" id="act_category_form2_view1">
+        <record model="ir.action.act_window.view" id="act_category_form_view1">
             <field name="sequence" eval="10"/>
             <field name="view" ref="category_view_form"/>
-            <field name="act_window" ref="act_category_form2"/>
+            <field name="act_window" ref="act_category_form"/>
         </record>
-        <record model="ir.action.act_window.view" id="act_category_form2_view2">
+        <record model="ir.action.act_window.view" id="act_category_form_view2">
             <field name="sequence" eval="20"/>
-            <field name="view" ref="category_view_tree"/>
-            <field name="act_window" ref="act_category_form2"/>
+            <field name="view" ref="category_view_list"/>
+            <field name="act_window" ref="act_category_form"/>
         </record>
-        <menuitem name="New category" parent="menu_category_form"
-              action="act_category_form2" id="menu_category_form2"/>
+        <menuitem name="New Category" parent="menu_category_tree"
+              action="act_category_form" id="menu_category_form"/>
 
         <record model="ir.model.access" id="access_party_category">
             <field name="model" search="[('model', '=', 'party.category')]"/>
diff --git a/configuration.py b/configuration.py
index 97e148d..120c090 100644
--- a/configuration.py
+++ b/configuration.py
@@ -14,5 +14,8 @@ class Configuration(ModelSingleton, ModelSQL, ModelView):
             ('company', 'in', [Eval('company'), False]),
             ('code', '=', 'party.party'),
         ], required=True))
+    party_lang = fields.Property(fields.Many2One("ir.lang", 'Party Language',
+        help=('The value set on this field will preset the language on new '
+            'parties')))
 
 Configuration()
diff --git a/configuration.xml b/configuration.xml
index 7fcb04d..06fb820 100644
--- a/configuration.xml
+++ b/configuration.xml
@@ -11,6 +11,8 @@ this repository contains the full copyright notices and license terms. -->
                 <form string="Party Configuration">
                     <label name="party_sequence"/>
                     <field name="party_sequence"/>
+                    <label name="party_lang" />
+                    <field name="party_lang" widget="selection" />
                 </form>
                 ]]>
             </field>
@@ -18,7 +20,6 @@ this repository contains the full copyright notices and license terms. -->
         <record model="ir.action.act_window" id="act_party_configuration_form">
             <field name="name">Party Configuration</field>
             <field name="res_model">party.configuration</field>
-            <field name="view_type">form</field>
         </record>
         <record model="ir.action.act_window.view"
             id="act_party_configuration_view1">
diff --git a/de_DE.csv b/de_DE.csv
index 9fdb16c..e694ed9 100644
--- a/de_DE.csv
+++ b/de_DE.csv
@@ -36,6 +36,7 @@ field,"party.category,write_date",0,Last modification date,Zuletzt geändert am,
 field,"party.category,write_uid",0,Last modification by,Zuletzt geändert von,0
 field,"party.check_vies.check,parties_failed",0,Parties Failed,Parteien mit fehlgeschlagener Überprüfung,0
 field,"party.check_vies.check,parties_succeed",0,Parties Succeed,Parteien mit erfolgreicher Überprüfung,0
+field,"party.configuration,party_lang",0,Party Language,Sprache Partei,0
 field,"party.configuration,party_sequence",0,Party Sequence,Nummernkreis Partei,0
 field,"party.configuration,rec_name",0,Name,Name,0
 field,"party.contact_mechanism,active",0,Active,Aktiv,0
@@ -76,12 +77,13 @@ field,"party.party,write_uid",0,Last modification by,Zuletzt geändert von,0
 field,"party.party-party.category,category",0,Category,Kategorie,0
 field,"party.party-party.category,party",0,Party,Partei,0
 field,"party.party-party.category,rec_name",0,Name,Name,0
+help,"party.configuration,party_lang",0,The value set on this field will preset the language on new parties,Ein Wert in diesem Feld dient als Voreinstellung für die Sprache von neu angelegten Parteien,0
 help,"party.party,vat_country",0,Setting VAT country will enable validation of the VAT number.,Ein Eintrag in USt-ID-Präfix aktiviert die Überprüfung der USt-ID-Nr.,0
 help,"party.party,vat_number",0,Value Added Tax number,Umsatzsteueridentifikationsnummer,0
 model,"ir.action,name",act_address_form,Addresses,Adressen,0
 model,"ir.action,name",act_address_form2,Addresses,Adressen,0
 model,"ir.action,name",act_category_form,Categories,Kategorien,0
-model,"ir.action,name",act_category_form2,Categories,Kategorien,0
+model,"ir.action,name",act_category_list,Categories,Kategorien,0
 model,"ir.action,name",act_category_tree,Categories,Kategorien,0
 model,"ir.action,name",act_party_by_category,Parties by Category,Parteien nach Kategorie,0
 model,"ir.action,name",act_party_configuration_form,Party Configuration,Einstellungen Partei,0
@@ -93,8 +95,8 @@ model,"ir.sequence,name",sequence_party,Party,Partei,0
 model,"ir.sequence.type,name",sequence_type_party,Party,Partei,0
 model,"ir.ui.menu,name",menu_address_form,Addresses,Adressen,0
 model,"ir.ui.menu,name",menu_address_form2,New Address,Neue Adresse,0
-model,"ir.ui.menu,name",menu_category_form,Categories,Parteikategorien,0
-model,"ir.ui.menu,name",menu_category_form2,New category,Neue Parteikategorie,0
+model,"ir.ui.menu,name",menu_category_form,New Category,Neue Parteikategorie,0
+model,"ir.ui.menu,name",menu_category_list,Categories,Kategorien,0
 model,"ir.ui.menu,name",menu_category_tree,Categories,Parteikategorien,0
 model,"ir.ui.menu,name",menu_configuration,Configuration,Einstellungen,0
 model,"ir.ui.menu,name",menu_party,Party Management,Parteien,0
diff --git a/fr_FR.csv b/fr_FR.csv
index 4dcb5e6..ee5f9de 100644
--- a/fr_FR.csv
+++ b/fr_FR.csv
@@ -26,6 +26,7 @@ field,"party.category,parent",0,Parent,Parent,0
 field,"party.category,rec_name",0,Name,Nom,0
 field,"party.check_vies.check,parties_failed",0,Parties Failed,Tiers non validés,0
 field,"party.check_vies.check,parties_succeed",0,Parties Succeed,Tiers validés,0
+field,"party.configuration,party_lang",0,Party Language,Langue du tiers,1
 field,"party.configuration,party_sequence",0,Party Sequence,Séquence des tiers,0
 field,"party.configuration,rec_name",0,Name,Nom,0
 field,"party.contact_mechanism,active",0,Active,Actif,0
@@ -61,12 +62,13 @@ field,"party.party,website",0,Website,Site web,0
 field,"party.party-party.category,category",0,Category,Catégorie,0
 field,"party.party-party.category,party",0,Party,Tiers,0
 field,"party.party-party.category,rec_name",0,Name,Nom,0
+help,"party.configuration,party_lang",0,The value set on this field will preset the language on new parties,La valeur de ce champs sera la valeur par défaut pour la langue des nouveaux tiers,0
 help,"party.party,vat_country",0,Setting VAT country will enable validation of the VAT number.,Ajouter un code pays TVA activera la vérification du numéro de TVA.,0
 help,"party.party,vat_number",0,Value Added Tax number,Numéro de taxe sur la valeur ajoutée,0
 model,"ir.action,name",act_address_form,Addresses,Adresses,0
 model,"ir.action,name",act_address_form2,Addresses,Adresses,0
 model,"ir.action,name",act_category_form,Categories,Catégories,0
-model,"ir.action,name",act_category_form2,Categories,Catégories,0
+model,"ir.action,name",act_category_list,Categories,Catégories,1
 model,"ir.action,name",act_category_tree,Categories,Catégories,0
 model,"ir.action,name",act_party_by_category,Parties by Category,Tiers par catégorie,0
 model,"ir.action,name",act_party_configuration_form,Party Configuration,Configuration des relations,0
@@ -78,8 +80,8 @@ model,"ir.sequence,name",sequence_party,Party,Tiers,0
 model,"ir.sequence.type,name",sequence_type_party,Party,Tiers,0
 model,"ir.ui.menu,name",menu_address_form,Addresses,Adresses,0
 model,"ir.ui.menu,name",menu_address_form2,New Address,Nouvelle adresse,0
-model,"ir.ui.menu,name",menu_category_form,Categories,Editer les catégories,0
-model,"ir.ui.menu,name",menu_category_form2,New category,Nouvelle catégorie,0
+model,"ir.ui.menu,name",menu_category_form,New Category,Nouvelle catégorie,0
+model,"ir.ui.menu,name",menu_category_list,Categories,Catégories,1
 model,"ir.ui.menu,name",menu_category_tree,Categories,Catégories,0
 model,"ir.ui.menu,name",menu_configuration,Configuration,Configuration,0
 model,"ir.ui.menu,name",menu_party,Party Management,Gestion des relations,0
diff --git a/icons/LICENSE b/icons/LICENSE
new file mode 100644
index 0000000..11782c0
--- /dev/null
+++ b/icons/LICENSE
@@ -0,0 +1,264 @@
+                            [1]Creative Commons
+
+                        Creative Commons Legal Code
+
+                         Attribution-ShareAlike 2.0
+   CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
+   LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN
+   ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
+   INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
+   REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR
+   DAMAGES RESULTING FROM ITS USE.
+
+   License
+
+   THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS
+   CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS
+   PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE
+   WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS
+   PROHIBITED.
+
+   BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND
+   AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. THE LICENSOR GRANTS
+   YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF
+   SUCH TERMS AND CONDITIONS.
+
+   1. Definitions
+    a. "Collective Work" means a work, such as a periodical issue,
+       anthology or encyclopedia, in which the Work in its entirety in
+       unmodified form, along with a number of other contributions,
+       constituting separate and independent works in themselves, are
+       assembled into a collective whole. A work that constitutes a
+       Collective Work will not be considered a Derivative Work (as
+       defined below) for the purposes of this License.
+    b. "Derivative Work" means a work based upon the Work or upon the
+       Work and other pre-existing works, such as a translation, musical
+       arrangement, dramatization, fictionalization, motion picture
+       version, sound recording, art reproduction, abridgment,
+       condensation, or any other form in which the Work may be recast,
+       transformed, or adapted, except that a work that constitutes a
+       Collective Work will not be considered a Derivative Work for the
+       purpose of this License. For the avoidance of doubt, where the
+       Work is a musical composition or sound recording, the
+       synchronization of the Work in timed-relation with a moving image
+       ("synching") will be considered a Derivative Work for the purpose
+       of this License.
+    c. "Licensor" means the individual or entity that offers the Work
+       under the terms of this License.
+    d. "Original Author" means the individual or entity who created the
+       Work.
+    e. "Work" means the copyrightable work of authorship offered under
+       the terms of this License.
+    f. "You" means an individual or entity exercising rights under this
+       License who has not previously violated the terms of this License
+       with respect to the Work, or who has received express permission
+       from the Licensor to exercise rights under this License despite a
+       previous violation.
+    g. "License Elements" means the following high-level license
+       attributes as selected by Licensor and indicated in the title of
+       this License: Attribution, ShareAlike.
+
+   2. Fair Use Rights. Nothing in this license is intended to reduce,
+   limit, or restrict any rights arising from fair use, first sale or
+   other limitations on the exclusive rights of the copyright owner under
+   copyright law or other applicable laws.
+
+   3. License Grant. Subject to the terms and conditions of this License,
+   Licensor hereby grants You a worldwide, royalty-free, non-exclusive,
+   perpetual (for the duration of the applicable copyright) license to
+   exercise the rights in the Work as stated below:
+    a. to reproduce the Work, to incorporate the Work into one or more
+       Collective Works, and to reproduce the Work as incorporated in the
+       Collective Works;
+    b. to create and reproduce Derivative Works;
+    c. to distribute copies or phonorecords of, display publicly, perform
+       publicly, and perform publicly by means of a digital audio
+       transmission the Work including as incorporated in Collective
+       Works;
+    d. to distribute copies or phonorecords of, display publicly, perform
+       publicly, and perform publicly by means of a digital audio
+       transmission Derivative Works.
+    e. For the avoidance of doubt, where the work is a musical
+       composition:
+         i. Performance Royalties Under Blanket Licenses. Licensor waives
+            the exclusive right to collect, whether individually or via a
+            performance rights society (e.g. ASCAP, BMI, SESAC),
+            royalties for the public performance or public digital
+            performance (e.g. webcast) of the Work.
+        ii. Mechanical Rights and Statutory Royalties. Licensor waives
+            the exclusive right to collect, whether individually or via a
+            music rights society or designated agent (e.g. Harry Fox
+            Agency), royalties for any phonorecord You create from the
+            Work ("cover version") and distribute, subject to the
+            compulsory license created by 17 USC Section 115 of the US
+            Copyright Act (or the equivalent in other jurisdictions).
+    f. Webcasting Rights and Statutory Royalties. For the avoidance of
+       doubt, where the Work is a sound recording, Licensor waives the
+       exclusive right to collect, whether individually or via a
+       performance-rights society (e.g. SoundExchange), royalties for the
+       public digital performance (e.g. webcast) of the Work, subject to
+       the compulsory license created by 17 USC Section 114 of the US
+       Copyright Act (or the equivalent in other jurisdictions).
+
+   The above rights may be exercised in all media and formats whether now
+   known or hereafter devised. The above rights include the right to make
+   such modifications as are technically necessary to exercise the rights
+   in other media and formats. All rights not expressly granted by
+   Licensor are hereby reserved.
+
+   4. Restrictions.The license granted in Section 3 above is expressly
+   made subject to and limited by the following restrictions:
+    a. You may distribute, publicly display, publicly perform, or
+       publicly digitally perform the Work only under the terms of this
+       License, and You must include a copy of, or the Uniform Resource
+       Identifier for, this License with every copy or phonorecord of the
+       Work You distribute, publicly display, publicly perform, or
+       publicly digitally perform. You may not offer or impose any terms
+       on the Work that alter or restrict the terms of this License or
+       the recipients' exercise of the rights granted hereunder. You may
+       not sublicense the Work. You must keep intact all notices that
+       refer to this License and to the disclaimer of warranties. You may
+       not distribute, publicly display, publicly perform, or publicly
+       digitally perform the Work with any technological measures that
+       control access or use of the Work in a manner inconsistent with
+       the terms of this License Agreement. The above applies to the Work
+       as incorporated in a Collective Work, but this does not require
+       the Collective Work apart from the Work itself to be made subject
+       to the terms of this License. If You create a Collective Work,
+       upon notice from any Licensor You must, to the extent practicable,
+       remove from the Collective Work any reference to such Licensor or
+       the Original Author, as requested. If You create a Derivative
+       Work, upon notice from any Licensor You must, to the extent
+       practicable, remove from the Derivative Work any reference to such
+       Licensor or the Original Author, as requested.
+    b. You may distribute, publicly display, publicly perform, or
+       publicly digitally perform a Derivative Work only under the terms
+       of this License, a later version of this License with the same
+       License Elements as this License, or a Creative Commons iCommons
+       license that contains the same License Elements as this License
+       (e.g. Attribution-ShareAlike 2.0 Japan). You must include a copy
+       of, or the Uniform Resource Identifier for, this License or other
+       license specified in the previous sentence with every copy or
+       phonorecord of each Derivative Work You distribute, publicly
+       display, publicly perform, or publicly digitally perform. You may
+       not offer or impose any terms on the Derivative Works that alter
+       or restrict the terms of this License or the recipients' exercise
+       of the rights granted hereunder, and You must keep intact all
+       notices that refer to this License and to the disclaimer of
+       warranties. You may not distribute, publicly display, publicly
+       perform, or publicly digitally perform the Derivative Work with
+       any technological measures that control access or use of the Work
+       in a manner inconsistent with the terms of this License Agreement.
+       The above applies to the Derivative Work as incorporated in a
+       Collective Work, but this does not require the Collective Work
+       apart from the Derivative Work itself to be made subject to the
+       terms of this License.
+    c. If you distribute, publicly display, publicly perform, or publicly
+       digitally perform the Work or any Derivative Works or Collective
+       Works, You must keep intact all copyright notices for the Work and
+       give the Original Author credit reasonable to the medium or means
+       You are utilizing by conveying the name (or pseudonym if
+       applicable) of the Original Author if supplied; the title of the
+       Work if supplied; to the extent reasonably practicable, the
+       Uniform Resource Identifier, if any, that Licensor specifies to be
+       associated with the Work, unless such URI does not refer to the
+       copyright notice or licensing information for the Work; and in the
+       case of a Derivative Work, a credit identifying the use of the
+       Work in the Derivative Work (e.g., "French translation of the Work
+       by Original Author," or "Screenplay based on original Work by
+       Original Author"). Such credit may be implemented in any
+       reasonable manner; provided, however, that in the case of a
+       Derivative Work or Collective Work, at a minimum such credit will
+       appear where any other comparable authorship credit appears and in
+       a manner at least as prominent as such other comparable authorship
+       credit.
+
+   5. Representations, Warranties and Disclaimer
+
+   UNLESS OTHERWISE AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS
+   THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND
+   CONCERNING THE MATERIALS, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE,
+   INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY,
+   FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF
+   LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF
+   ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW
+   THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY
+   TO YOU.
+
+   6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY
+   APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY
+   LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR
+   EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK,
+   EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+   7. Termination
+    a. This License and the rights granted hereunder will terminate
+       automatically upon any breach by You of the terms of this License.
+       Individuals or entities who have received Derivative Works or
+       Collective Works from You under this License, however, will not
+       have their licenses terminated provided such individuals or
+       entities remain in full compliance with those licenses. Sections
+       1, 2, 5, 6, 7, and 8 will survive any termination of this License.
+    b. Subject to the above terms and conditions, the license granted
+       here is perpetual (for the duration of the applicable copyright in
+       the Work). Notwithstanding the above, Licensor reserves the right
+       to release the Work under different license terms or to stop
+       distributing the Work at any time; provided, however that any such
+       election will not serve to withdraw this License (or any other
+       license that has been, or is required to be, granted under the
+       terms of this License), and this License will continue in full
+       force and effect unless terminated as stated above.
+
+   8. Miscellaneous
+    a. Each time You distribute or publicly digitally perform the Work or
+       a Collective Work, the Licensor offers to the recipient a license
+       to the Work on the same terms and conditions as the license
+       granted to You under this License.
+    b. Each time You distribute or publicly digitally perform a
+       Derivative Work, Licensor offers to the recipient a license to the
+       original Work on the same terms and conditions as the license
+       granted to You under this License.
+    c. If any provision of this License is invalid or unenforceable under
+       applicable law, it shall not affect the validity or enforceability
+       of the remainder of the terms of this License, and without further
+       action by the parties to this agreement, such provision shall be
+       reformed to the minimum extent necessary to make such provision
+       valid and enforceable.
+    d. No term or provision of this License shall be deemed waived and no
+       breach consented to unless such waiver or consent shall be in
+       writing and signed by the party to be charged with such waiver or
+       consent.
+    e. This License constitutes the entire agreement between the parties
+       with respect to the Work licensed here. There are no
+       understandings, agreements or representations with respect to the
+       Work not specified here. Licensor shall not be bound by any
+       additional provisions that may appear in any communication from
+       You. This License may not be modified without the mutual written
+       agreement of the Licensor and You.
+
+   Creative Commons is not a party to this License, and makes no warranty
+   whatsoever in connection with the Work. Creative Commons will not be
+   liable to You or any party on any legal theory for any damages
+   whatsoever, including without limitation any general, special,
+   incidental or consequential damages arising in connection to this
+   license. Notwithstanding the foregoing two (2) sentences, if Creative
+   Commons has expressly identified itself as the Licensor hereunder, it
+   shall have all rights and obligations of Licensor.
+
+   Except for the limited purpose of indicating to the public that the
+   Work is licensed under the CCPL, neither party will use the trademark
+   "Creative Commons" or any related trademark or logo of Creative
+   Commons without the prior written consent of Creative Commons. Any
+   permitted use will be in compliance with Creative Commons'
+   then-current trademark usage guidelines, as may be published on its
+   website or otherwise made available upon request from time to time.
+
+   Creative Commons may be contacted at [2]http://creativecommons.org/.
+
+                                                [3]« Back to Commons Deed
+
+References
+
+   1. http://creativecommons.org/
+   2. http://creativecommons.org/
+   3. http://creativecommons.org/licenses/by-sa/2.0/
diff --git a/icons/__init__.py b/icons/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/icons/tryton-party.svg b/icons/tryton-party.svg
new file mode 100644
index 0000000..c686f2c
--- /dev/null
+++ b/icons/tryton-party.svg
@@ -0,0 +1,537 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48px"
+   height="48px"
+   id="svg2108"
+   sodipodi:version="0.32"
+   inkscape:version="0.43+devel"
+   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/apps"
+   sodipodi:docname="system-users.svg">
+  <defs
+     id="defs3">
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4356">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop4358" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop4360" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4344">
+      <stop
+         style="stop-color:#727e0a;stop-opacity:1;"
+         offset="0"
+         id="stop4346" />
+      <stop
+         style="stop-color:#5b6508;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop4348" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4338">
+      <stop
+         id="stop4340"
+         offset="0.0000000"
+         style="stop-color:#e9b15e;stop-opacity:1.0000000;" />
+      <stop
+         id="stop4342"
+         offset="1.0000000"
+         style="stop-color:#966416;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4163">
+      <stop
+         style="stop-color:#3b74bc;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop4165" />
+      <stop
+         style="stop-color:#2d5990;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop4167" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3824">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop3826" />
+      <stop
+         style="stop-color:#c9c9c9;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3828" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3816">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop3818" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop3820" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3800">
+      <stop
+         style="stop-color:#f4d9b1;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop3802" />
+      <stop
+         style="stop-color:#df9725;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3804" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3800"
+       id="radialGradient3806"
+       cx="29.344931"
+       cy="17.064077"
+       fx="29.344931"
+       fy="17.064077"
+       r="9.1620579"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3816"
+       id="radialGradient3822"
+       cx="31.112698"
+       cy="19.008621"
+       fx="31.112698"
+       fy="19.008621"
+       r="8.6620579"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3824"
+       id="linearGradient3830"
+       x1="30.935921"
+       y1="29.553486"
+       x2="30.935921"
+       y2="35.803486"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4163"
+       id="radialGradient4169"
+       cx="28.089741"
+       cy="27.203083"
+       fx="28.089741"
+       fy="27.203083"
+       r="13.565360"
+       gradientTransform="matrix(1.297564,2.881172e-16,-1.964720e-16,0.884831,-8.358505,4.940469)"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3800"
+       id="radialGradient4171"
+       gradientUnits="userSpaceOnUse"
+       cx="29.344931"
+       cy="17.064077"
+       fx="29.344931"
+       fy="17.064077"
+       r="9.1620579"
+       gradientTransform="matrix(0.787998,3.877637e-16,-3.877637e-16,0.787998,6.221198,3.617627)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3824"
+       id="linearGradient4175"
+       gradientUnits="userSpaceOnUse"
+       x1="30.935921"
+       y1="29.553486"
+       x2="30.935921"
+       y2="35.803486"
+       gradientTransform="translate(0.707108,0.000000)" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3816"
+       id="radialGradient4179"
+       gradientUnits="userSpaceOnUse"
+       cx="31.112698"
+       cy="19.008621"
+       fx="31.112698"
+       fy="19.008621"
+       r="8.6620579" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3824"
+       id="linearGradient4326"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-12.41789,-7.000000)"
+       x1="30.935921"
+       y1="29.553486"
+       x2="30.935921"
+       y2="35.803486" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4338"
+       id="radialGradient4328"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.787998,3.877637e-16,-3.877637e-16,0.787998,6.221198,3.617627)"
+       cx="29.344931"
+       cy="17.064077"
+       fx="29.344931"
+       fy="17.064077"
+       r="9.1620579" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3816"
+       id="radialGradient4330"
+       gradientUnits="userSpaceOnUse"
+       cx="31.112698"
+       cy="19.008621"
+       fx="31.112698"
+       fy="19.008621"
+       r="8.6620579" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3824"
+       id="linearGradient4332"
+       gradientUnits="userSpaceOnUse"
+       x1="30.935921"
+       y1="29.553486"
+       x2="30.935921"
+       y2="35.803486"
+       gradientTransform="translate(-13.12500,-7.000000)" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3816"
+       id="radialGradient4336"
+       gradientUnits="userSpaceOnUse"
+       cx="31.112698"
+       cy="19.008621"
+       fx="31.112698"
+       fy="19.008621"
+       r="8.6620579" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4344"
+       id="radialGradient4350"
+       cx="16.214741"
+       cy="19.836468"
+       fx="16.214741"
+       fy="19.836468"
+       r="13.565360"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.681917,0.000000,8.233773)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4356"
+       id="linearGradient4362"
+       x1="20.661695"
+       y1="35.817974"
+       x2="22.626925"
+       y2="36.217758"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.983375,0.181588,-0.181588,0.983375,6.231716,-2.651466)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4356"
+       id="linearGradient4366"
+       gradientUnits="userSpaceOnUse"
+       x1="22.686766"
+       y1="36.390400"
+       x2="21.408455"
+       y2="35.739632"
+       gradientTransform="matrix(-0.977685,0.210075,0.210075,0.977685,55.10960,-3.945209)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4356"
+       id="linearGradient4372"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.983375,0.181588,-0.181588,0.983375,-7.072120,-9.824920)"
+       x1="20.661695"
+       y1="35.817974"
+       x2="22.626925"
+       y2="36.217758" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4356"
+       id="linearGradient4374"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.977685,0.210075,0.210075,0.977685,41.80576,-11.11866)"
+       x1="22.686766"
+       y1="36.390400"
+       x2="21.408455"
+       y2="35.739632" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4356"
+       id="linearGradient1366"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.977685,0.210075,0.210075,0.977685,41.80576,-11.11866)"
+       x1="22.686766"
+       y1="36.390400"
+       x2="21.408455"
+       y2="35.739632" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4356"
+       id="linearGradient1369"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.983375,0.181588,-0.181588,0.983375,-7.072120,-9.824920)"
+       x1="20.661695"
+       y1="35.817974"
+       x2="22.626925"
+       y2="36.217758" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3824"
+       id="linearGradient1372"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-12.41789,-7.000000)"
+       x1="30.935921"
+       y1="29.553486"
+       x2="30.935921"
+       y2="35.803486" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4344"
+       id="radialGradient1381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.681917,0.000000,8.233773)"
+       cx="16.214741"
+       cy="19.836468"
+       fx="16.214741"
+       fy="19.836468"
+       r="13.565360" />
+  </defs>
+  <sodipodi:namedview
+     inkscape:showpageshadow="false"
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="31.201438"
+     inkscape:cy="13.86274"
+     inkscape:current-layer="layer2"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     fill="#9db029"
+     stroke="#727e0a"
+     inkscape:window-width="872"
+     inkscape:window-height="815"
+     inkscape:window-x="265"
+     inkscape:window-y="121" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>People</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://jimmac.musichall.cz</dc:source>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>users</rdf:li>
+            <rdf:li>people</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Notice" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Attribution" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/ShareAlike" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="cipek"
+     inkscape:groupmode="layer"
+     style="display:inline">
+    <path
+       transform="matrix(1.775510,0.000000,0.000000,0.959183,-37.37822,11.77153)"
+       sodipodi:type="arc"
+       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient4336);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       id="path4177"
+       sodipodi:cx="31.112698"
+       sodipodi:cy="19.008621"
+       sodipodi:rx="8.6620579"
+       sodipodi:ry="8.6620579"
+       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z" />
+    <path
+       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient1381);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#404604;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       d="M 12.861174,34.636039 L 23.467776,34.636039 C 26.472980,34.636039 29.448260,33.534107 30.538843,30.393398 C 31.574482,27.410922 30.715620,21.731340 23.998106,17.135146 L 11.446960,17.135146 C 4.7294460,21.377786 3.8899690,27.179977 5.4365530,30.570174 C 7.0121480,34.023964 9.6791930,34.636039 12.861174,34.636039 z "
+       id="path2329"
+       sodipodi:nodetypes="cczcczc" />
+    <path
+       sodipodi:nodetypes="cccc"
+       id="path3812"
+       d="M 17.932367,19.786797 C 17.932367,19.786797 15.781044,21.447132 15.966376,23.447330 C 13.925150,21.646536 13.866503,18.195806 13.866503,18.195806 L 17.932367,19.786797 z "
+       style="opacity:1.0000000;color:#000000;fill:#9db029;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cczcczc"
+       id="path3838"
+       d="M 12.966639,33.571836 L 23.283309,33.571836 C 25.923032,33.571836 28.536470,32.603917 29.494421,29.845169 C 30.404110,27.225409 29.399699,22.236555 23.499142,18.199332 L 11.974417,18.199332 C 6.0738600,21.925999 5.0864770,27.022551 6.4449710,30.000446 C 7.8289490,33.034200 10.171638,33.571836 12.966639,33.571836 z "
+       style="opacity:0.21518983;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99999976px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:1.0000000;color:#000000;fill:#9db029;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       d="M 18.910795,19.786797 C 18.910795,19.786797 21.062118,21.447132 20.876786,23.447330 C 22.918012,21.646536 22.976659,18.195806 22.976659,18.195806 L 18.910795,19.786797 z "
+       id="path3810"
+       sodipodi:nodetypes="cccc" />
+    <path
+       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z"
+       sodipodi:ry="8.6620579"
+       sodipodi:rx="8.6620579"
+       sodipodi:cy="19.008621"
+       sodipodi:cx="31.112698"
+       id="path3814"
+       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient4330);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc"
+       transform="translate(-13.25000,-3.500000)" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient4328);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#6f4709;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       id="path2327"
+       sodipodi:cx="31.112698"
+       sodipodi:cy="19.008621"
+       sodipodi:rx="8.6620579"
+       sodipodi:ry="8.6620579"
+       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z"
+       transform="translate(-13.12500,-7.000000)" />
+    <path
+       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z"
+       sodipodi:ry="8.6620579"
+       sodipodi:rx="8.6620579"
+       sodipodi:cy="19.008621"
+       sodipodi:cx="31.112698"
+       id="path3834"
+       style="opacity:0.12658228;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.1401283px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc"
+       transform="matrix(0.877095,0.000000,0.000000,0.877095,-9.301073,-4.663733)" />
+    <path
+       style="opacity:1.0000000;color:#000000;fill:url(#linearGradient1372);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       d="M 22.583894,27.034641 L 26.826534,27.034641 L 24.351661,24.736544 L 23.821331,25.443651 L 23.291000,24.913321 L 22.583894,27.034641 z "
+       id="path4173" />
+    <path
+       style="opacity:0.22784807;color:#000000;fill:url(#linearGradient1369);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       d="M 8.5479535,33.601747 C 7.3003465,33.056778 6.7419595,31.743470 6.7419595,31.743470 C 7.5832405,27.674334 10.461885,24.697254 10.461885,24.697254 C 10.461885,24.697254 8.1825635,31.108768 8.5479535,33.601747 z "
+       id="path4368"
+       sodipodi:nodetypes="cccc" />
+    <path
+       sodipodi:nodetypes="cccc"
+       id="path4370"
+       d="M 27.453661,32.743396 C 28.684912,32.162418 29.258041,30.741075 29.258041,30.741075 C 28.298921,26.698092 25.281892,23.898254 25.281892,23.898254 C 25.281892,23.898254 27.746485,30.240856 27.453661,32.743396 z "
+       style="opacity:0.22784807;color:#000000;fill:url(#linearGradient1366);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="dalsi cipek"
+     style="display:inline">
+    <path
+       transform="matrix(1.77551,0,0,0.583984,-24.25322,28.27856)"
+       sodipodi:type="arc"
+       style="opacity:1;color:black;fill:url(#radialGradient4179);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path4306"
+       sodipodi:cx="31.112698"
+       sodipodi:cy="19.008621"
+       sodipodi:rx="8.6620579"
+       sodipodi:ry="8.6620579"
+       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.45064,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z" />
+    <path
+       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient4169);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#204a87;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       d="M 25.986174,41.636039 L 36.592776,41.636039 C 39.597980,41.636039 42.573260,40.534107 43.663843,37.393398 C 44.699482,34.410922 43.840620,28.731340 37.123106,24.135146 L 24.571960,24.135146 C 17.854446,28.377786 17.014969,34.179977 18.561553,37.570174 C 20.137148,41.023964 22.804193,41.636039 25.986174,41.636039 z "
+       id="path4308"
+       sodipodi:nodetypes="cczcczc" />
+    <path
+       style="opacity:1.0000000;color:#000000;fill:url(#linearGradient3830);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       d="M 26.693281,25.726136 C 29.875261,28.554563 31.289475,38.807612 31.289475,38.807612 C 31.289475,38.807612 32.703688,28.554564 35.178562,25.549360 L 26.693281,25.726136 z "
+       id="path4310"
+       sodipodi:nodetypes="cccc" />
+    <path
+       sodipodi:nodetypes="cccc"
+       id="path4312"
+       d="M 28.972721,26.786797 C 28.972721,26.786797 26.821398,28.447132 27.006730,30.447330 C 24.965504,28.646536 24.906857,25.195806 24.906857,25.195806 L 28.972721,26.786797 z "
+       style="opacity:1.0000000;color:#000000;fill:#729fcf;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cczcczc"
+       id="path4314"
+       d="M 25.914862,40.593933 L 36.408309,40.571836 C 39.048032,40.571836 41.661470,39.603917 42.619421,36.845169 C 43.529110,34.225409 42.524699,29.236555 36.624142,25.199332 L 25.099417,24.956264 C 19.198860,28.682931 18.056797,33.779483 19.437388,37.000446 C 20.817980,40.221409 22.832599,40.571836 25.914862,40.593933 z "
+       style="opacity:0.21518983;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99999976px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:1.0000000;color:#000000;fill:#729fcf;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       d="M 33.410795,26.786797 C 33.410795,26.786797 35.562118,28.447132 35.376786,30.447330 C 37.418012,28.646536 37.476659,25.195806 37.476659,25.195806 L 33.410795,26.786797 z "
+       id="path4316"
+       sodipodi:nodetypes="cccc" />
+    <path
+       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z"
+       sodipodi:ry="8.6620579"
+       sodipodi:rx="8.6620579"
+       sodipodi:cy="19.008621"
+       sodipodi:cx="31.112698"
+       id="path4318"
+       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient3822);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc"
+       transform="translate(-0.125000,3.500000)" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient4171);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#c17d11;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       id="path4320"
+       sodipodi:cx="31.112698"
+       sodipodi:cy="19.008621"
+       sodipodi:rx="8.6620579"
+       sodipodi:ry="8.6620579"
+       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z" />
+    <path
+       d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1  22.450640,19.008621 A 8.6620579 8.6620579 0 1 1  39.774755 19.008621 z"
+       sodipodi:ry="8.6620579"
+       sodipodi:rx="8.6620579"
+       sodipodi:cy="19.008621"
+       sodipodi:cx="31.112698"
+       id="path4322"
+       style="opacity:0.19620253;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.1401283px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc"
+       transform="matrix(0.877095,0.000000,0.000000,0.877095,3.823927,2.336267)" />
+    <path
+       style="opacity:0.22784807;color:#000000;fill:url(#linearGradient4362);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       d="M 21.851790,40.775197 C 20.604183,40.230228 20.045796,38.916920 20.045796,38.916920 C 20.887077,34.847784 23.765721,31.870704 23.765721,31.870704 C 23.765721,31.870704 21.486400,38.282218 21.851790,40.775197 z "
+       id="path4354"
+       sodipodi:nodetypes="cccc" />
+    <path
+       sodipodi:nodetypes="cccc"
+       id="path4364"
+       d="M 40.757497,39.916846 C 41.988748,39.335868 42.561877,37.914525 42.561877,37.914525 C 41.602757,33.871542 38.585728,31.071704 38.585728,31.071704 C 38.585728,31.071704 41.050321,37.414306 40.757497,39.916846 z "
+       style="opacity:0.22784807;color:#000000;fill:url(#linearGradient4366);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+  </g>
+</svg>
diff --git a/nl_NL.csv b/nl_NL.csv
new file mode 100644
index 0000000..e6f6c3b
--- /dev/null
+++ b/nl_NL.csv
@@ -0,0 +1,128 @@
+type,name,res_id,src,value,fuzzy
+error,party.address,0,You can not modify the party of an address!,U kunt niet de relatie van een adres veranderen!,0
+error,party.category,0,The name of a party category must be unique by parent!,De naam van een relatie-categorie moet per niveau uniek zijn!,0
+error,party.category,0,You can not create recursive categories!,U kunt geen recursieve categorieën aanmaken!,0
+error,party.category,0,"You can not use "" / "" in name field!","Het ""/"" teken mag niet gebruikt worden in een naam veld!",0
+error,party.check_vies,0,"The VIES service is unavailable, try again later.","De VIES is niet beschikbaar, probeer het later nog eens!",0
+error,party.contact_mechanism,0,You can not modify the party of a contact mechanism!,U kunt niet de relatie van een contactmogelijkheid veranderen!,0
+error,party.party,0,Invalid VAT number!,Ongeldig BTW nummer!,0
+error,party.party,0,The code of the party must be unique!,De relatie-code moet uniek zijn!,0
+field,"party.address,active",0,Active,Actief,0
+field,"party.address,city",0,City,Stad,0
+field,"party.address,country",0,Country,Land,0
+field,"party.address,full_address",0,Full Address,Volledig adres,0
+field,"party.address,name",0,Name,Aanhef,0
+field,"party.address,party",0,Party,Relatie,0
+field,"party.address,rec_name",0,Name,Naam,0
+field,"party.address,sequence",0,Sequence,Reeks,0
+field,"party.address,street",0,Street,Straat,0
+field,"party.address,streetbis",0,Street (bis),Extra aanduiding,0
+field,"party.address,subdivision",0,Subdivision,Provincie,0
+field,"party.address,zip",0,Zip,Postcode,0
+field,"party.category,active",0,Active,Actief,0
+field,"party.category,childs",0,Children,Onderliggende niveaus,0
+field,"party.category,name",0,Name,Naam,0
+field,"party.category,parent",0,Parent,Bovenliggend niveau,0
+field,"party.category,rec_name",0,Name,Naam,0
+field,"party.check_vies.check,parties_failed",0,Parties Failed,Controle relatie mislukt,0
+field,"party.check_vies.check,parties_succeed",0,Parties Succeed,Controle relatie gelukt,0
+field,"party.configuration,party_sequence",0,Party Sequence,Relatiecode,0
+field,"party.configuration,rec_name",0,Name,Naam,0
+field,"party.contact_mechanism,active",0,Active,Actief,0
+field,"party.contact_mechanism,comment",0,Comment,Opmerking,0
+field,"party.contact_mechanism,email",0,E-Mail,E-mail,0
+field,"party.contact_mechanism,other_value",0,Value,Waarde,0
+field,"party.contact_mechanism,party",0,Party,Relatie,0
+field,"party.contact_mechanism,rec_name",0,Name,Naam,0
+field,"party.contact_mechanism,sequence",0,Sequence,Reeks,0
+field,"party.contact_mechanism,sip",0,SIP,SIP,0
+field,"party.contact_mechanism,skype",0,Skype,Skype,0
+field,"party.contact_mechanism,type",0,Type,Type,0
+field,"party.contact_mechanism,value",0,Value,Waarde,0
+field,"party.contact_mechanism,website",0,Website,Website,0
+field,"party.party,active",0,Active,Actief,0
+field,"party.party,addresses",0,Addresses,Adressen,0
+field,"party.party,categories",0,Categories,Categorieën,0
+field,"party.party,code",0,Code,Code,0
+field,"party.party,code_length",0,Code Length,Lengte code,0
+field,"party.party,contact_mechanisms",0,Contact Mechanisms,Contactmogelijkheden,0
+field,"party.party,email",0,E-Mail,E-mail,0
+field,"party.party,fax",0,Fax,Fax,0
+field,"party.party,full_name",0,Full Name,Naam voluit,0
+field,"party.party,lang",0,Language,Taal,0
+field,"party.party,mobile",0,Mobile,Mobiel,0
+field,"party.party,name",0,Name,Naam,0
+field,"party.party,phone",0,Phone,Telefoon,0
+field,"party.party,rec_name",0,Name,Naam,0
+field,"party.party,vat_code",0,VAT Code,BTW-nummer,0
+field,"party.party,vat_country",0,VAT Country,BTW-land,0
+field,"party.party,vat_number",0,VAT Number,BTW-nummer,0
+field,"party.party,website",0,Website,Website,0
+field,"party.party-party.category,category",0,Category,Categorie,0
+field,"party.party-party.category,party",0,Party,Relatie,0
+field,"party.party-party.category,rec_name",0,Name,Naam,0
+help,"party.party,vat_country",0,Setting VAT country will enable validation of the VAT number.,De keuze van een BTW land maakt controle van het BTW nummer mogelijk.,0
+help,"party.party,vat_number",0,Value Added Tax number,Nummer omzetbelasting,0
+model,"ir.action,name",act_address_form,Addresses,Adressen,0
+model,"ir.action,name",act_address_form2,Addresses,Adressen,0
+model,"ir.action,name",act_category_form,Categories,Categorieën,0
+model,"ir.action,name",act_category_form2,Categories,Categorieën,0
+model,"ir.action,name",act_category_tree,Categories,Categorieën,0
+model,"ir.action,name",act_party_by_category,Parties by Category,Relaties per categorie,0
+model,"ir.action,name",act_party_configuration_form,Party Configuration,Relatie instellingen,0
+model,"ir.action,name",act_party_form,Parties,Relaties,0
+model,"ir.action,name",act_party_form2,Parties,Relaties,0
+model,"ir.action,name",report_label,Labels,Etiketten,0
+model,"ir.action,name",wizard_check_vies,Check VIES,Check VIES,0
+model,"ir.sequence,name",sequence_party,Party,Relatie,0
+model,"ir.sequence.type,name",sequence_type_party,Party,Relatie,0
+model,"ir.ui.menu,name",menu_address_form,Addresses,Adressen,0
+model,"ir.ui.menu,name",menu_address_form2,New Address,Nieuw adres,0
+model,"ir.ui.menu,name",menu_category_form,Categories,Categorieën,0
+model,"ir.ui.menu,name",menu_category_form2,New category,Nieuwe categorie,0
+model,"ir.ui.menu,name",menu_category_tree,Categories,Categorieën,0
+model,"ir.ui.menu,name",menu_configuration,Configuration,Instellingen,0
+model,"ir.ui.menu,name",menu_party,Party Management,Relatiebeheer,0
+model,"ir.ui.menu,name",menu_party_configuration,Party Configuration,Relatie instellingen,0
+model,"ir.ui.menu,name",menu_party_form,Parties,Relaties,0
+model,"ir.ui.menu,name",menu_party_form2,New Party,Nieuwe relatie,0
+model,"party.address,name",0,Address,Adres,0
+model,"party.category,name",0,Category,Categorie,0
+model,"party.check_vies.check,name",0,Check VIES - Check,Check VIES - Oké,0
+model,"party.check_vies.no_check,name",0,Check VIES - No Check,Check VIES - Mislukt,0
+model,"party.configuration,name",0,Party Configuration,Relatie instellingen,0
+model,"party.contact_mechanism,name",0,Contact Mechanism,Contactmogelijkheid,0
+model,"party.party,name",0,Party,Relatie,0
+model,"party.party-party.category,name",0,Party - Category,Relatie categorie,0
+model,"res.group,name",group_party_admin,Party Administration,Relatiebeheer,0
+selection,"party.contact_mechanism,type",0,E-Mail,E-mail,0
+selection,"party.contact_mechanism,type",0,Fax,Fax,0
+selection,"party.contact_mechanism,type",0,IRC,IRC,0
+selection,"party.contact_mechanism,type",0,Jabber,Jabber,0
+selection,"party.contact_mechanism,type",0,Mobile,Mobiel,0
+selection,"party.contact_mechanism,type",0,Other,Overig,0
+selection,"party.contact_mechanism,type",0,Phone,Telefoon,0
+selection,"party.contact_mechanism,type",0,SIP,SIP,0
+selection,"party.contact_mechanism,type",0,Skype,Skype,0
+selection,"party.contact_mechanism,type",0,Website,Website,0
+view,party.address,0,Addresses,Adressen,0
+view,party.category,0,Categories,Categorieën,0
+view,party.category,0,Category,Categorie,0
+view,party.check_vies.check,0,Parties Failed,Controle relatie mislukt,0
+view,party.check_vies.check,0,Parties Succeed,Controle relatie gelukt,0
+view,party.check_vies.check,0,VAT Information Exchange System Results,BTW Informatie Dienst,0
+view,party.check_vies.no_check,0,VAT Information Exchange System,BTW Informatie Dienst,0
+view,party.check_vies.no_check,0,"You must have a recent version of ""vatnumber"" installed!","U moet een recente versie van ""python-vatnumber"" geïnstalleerd hebben!",0
+view,party.configuration,0,Party Configuration,Relatie instellingen,0
+view,party.contact_mechanism,0,Contact Mechanism,Contactmogelijkheid,0
+view,party.contact_mechanism,0,Contact Mechanisms,Contactmogelijkheden,0
+view,party.party,0,Accounting,Financieel,0
+view,party.party,0,Addresses,Adressen,0
+view,party.party,0,Categories,Categorieën,0
+view,party.party,0,Contact Mechanisms,Contactmogelijkheden,0
+view,party.party,0,General,Algemeen,0
+view,party.party,0,Parties,Relaties,0
+view,party.party,0,Party,Relatie,0
+view,party.party,0,VAT,Omzetbelasting,0
+wizard_button,"party.check_vies,check,end",0,Ok,Oké,0
+wizard_button,"party.check_vies,no_check,end",0,Ok,Oké,0
diff --git a/party.py b/party.py
index 8e74a7c..2d27960 100644
--- a/party.py
+++ b/party.py
@@ -87,6 +87,11 @@ class Party(ModelSQL, ModelView):
                     'write_uid', 'write_date'])
         return [address_obj.default_get(fields_names)]
 
+    def default_lang(self):
+        config_obj = self.pool.get('party.configuration')
+        config = config_obj.browse(1)
+        return config.party_lang.id
+
     def on_change_with_vat_code(self, vals):
         return (vals.get('vat_country') or '') + (vals.get('vat_number') or '')
 
@@ -176,7 +181,7 @@ class Party(ModelSQL, ModelView):
         return new_ids
 
     def search_rec_name(self, name, clause):
-        ids = self.search([('code',) + clause[1:]], order=[]) 
+        ids = self.search([('code',) + clause[1:]], order=[])
         if ids:
             ids += self.search([('name',) + clause[1:]], order=[])
             return [('id', 'in', ids)]
diff --git a/party.xml b/party.xml
index b050c72..c5602b6 100644
--- a/party.xml
+++ b/party.xml
@@ -13,8 +13,12 @@ this repository contains the full copyright notices and license terms. -->
             <field name="groups" eval="[('add', ref('group_party_admin'))]"/>
         </record>
 
+        <record model="ir.ui.icon" id="party_icon">
+            <field name="name">tryton-party</field>
+            <field name="path">icons/tryton-party.svg</field>
+        </record>
         <menuitem name="Party Management" sequence="0" id="menu_party"
-            icon="tryton-users"/>
+            icon="tryton-party"/>
 
         <menuitem name="Configuration" parent="menu_party"
             id="menu_configuration" groups="group_party_admin"
@@ -44,8 +48,11 @@ this repository contains the full copyright notices and license terms. -->
                     <field name="name" xexpand="1"/>
                     <label name="code"/>
                     <field name="code"/>
-                    <label name="active"/>
-                    <field name="active" xexpand="0" width="100"/>
+                    <group col="20" colspan="2" id="checkboxes">
+                        <label name="active"/>
+                        <field name="active" xexpand="0" width="25"/>
+                        <!-- Add here some checkboxes ! -->
+                    </group>
                     <notebook colspan="6">
                         <page string="General" id="general">
                             <field name="addresses" mode="form,tree" colspan="4">
@@ -96,7 +103,6 @@ this repository contains the full copyright notices and license terms. -->
         <record model="ir.action.act_window" id="act_party_form">
             <field name="name">Parties</field>
             <field name="res_model">party.party</field>
-            <field name="view_type">form</field>
         </record>
         <record model="ir.action.act_window.view" id="act_party_form_view1">
             <field name="sequence" eval="10"/>
@@ -113,7 +119,6 @@ this repository contains the full copyright notices and license terms. -->
         <record model="ir.action.act_window" id="act_party_form2">
             <field name="name">Parties</field>
             <field name="res_model">party.party</field>
-            <field name="view_type">form</field>
         </record>
         <record model="ir.action.act_window.view" id="act_party_form2_view1">
             <field name="sequence" eval="10"/>
@@ -130,7 +135,6 @@ this repository contains the full copyright notices and license terms. -->
         <record model="ir.action.act_window" id="act_party_by_category">
             <field name="name">Parties by Category</field>
             <field name="res_model">party.party</field>
-            <field name="view_type">form</field>
             <field name="context">{'categories': [Eval('active_id')]}</field>
             <field name="domain">[('categories', 'child_of', [Eval('active_id')], 'parent')]</field>
         </record>
diff --git a/ru_RU.csv b/ru_RU.csv
new file mode 100644
index 0000000..e7fd108
--- /dev/null
+++ b/ru_RU.csv
@@ -0,0 +1,204 @@
+type,name,res_id,src,value,fuzzy
+error,party.address,0,You can not modify the party of an address!,,0
+error,party.category,0,You can not create recursive categories!,Вы не можете создавать рекурсивные категории!,0
+error,party.check_vies,0,"The VIES service is unavailable, try again later.",,0
+error,party.contact_mechanism,0,You can not modify the party of a contact mechanism!,,0
+error,party.party,0,Invalid VAT number!,Ошибка в номере ИНН,0
+error,party.party,0,The INN of the party must be unique!,ИНН должно быть уникальным,0
+error,party.party,0,The Name of the party must be unique!,,0
+error,party.party,0,The code of the party must be unique!,Код контрагента должен быть уникальным,0
+field,"party.address,active",0,Active,Активный,0
+field,"party.address,area_residence",0,Area of residence,Район проживания,0
+field,"party.address,city",0,City,Город,0
+field,"party.address,country",0,Country,Страна,0
+field,"party.address,date_end",0,Date End,Дата окончания,0
+field,"party.address,full_address",0,Full address,Полный адрес,0
+field,"party.address,name",0,Name,Наименование,0
+field,"party.address,party",0,Party,Контрагент,0
+field,"party.address,rec_name",0,Name,Наименование,0
+field,"party.address,sequence",0,Sequence,Последовательность,0
+field,"party.address,street",0,Street,улица,0
+field,"party.address,streetbis",0,Street (bis),улица (доп.),0
+field,"party.address,subdivision",0,Subdivision,Подраздел,0
+field,"party.address,zip",0,Zip,Индекс,0
+field,"party.category,active",0,Active,Активный,0
+field,"party.category,childs",0,Children,Подчиненый,0
+field,"party.category,name",0,Name,Наименование,0
+field,"party.category,parent",0,Parent,Основной,0
+field,"party.category,rec_name",0,Name,Наименование,0
+field,"party.check_vies.check,parties_failed",0,Parties Failed,,0
+field,"party.check_vies.check,parties_succeed",0,Parties Succeed,,0
+field,"party.configuration,party_sequence",0,Party Sequence,,0
+field,"party.configuration,rec_name",0,Name,Наименование,0
+field,"party.contact_mechanism,active",0,Active,Активный,0
+field,"party.contact_mechanism,comment",0,Comment,Комментарии,0
+field,"party.contact_mechanism,email",0,E-Mail,Эл.почта,0
+field,"party.contact_mechanism,other_value",0,Value,Значение,0
+field,"party.contact_mechanism,party",0,Party,Контрагент,0
+field,"party.contact_mechanism,rec_name",0,Name,Наименование,0
+field,"party.contact_mechanism,sequence",0,Sequence,Последовательность,0
+field,"party.contact_mechanism,sip",0,Sip phone,,0
+field,"party.contact_mechanism,skype",0,Skype,,0
+field,"party.contact_mechanism,type",0,Type,Тип,0
+field,"party.contact_mechanism,value",0,Value,Значение,0
+field,"party.contact_mechanism,website",0,Website,Сайт,0
+field,"party.party,active",0,Active,Активный,0
+field,"party.party,addresses",0,Addresses,Адреса,0
+field,"party.party,banks",0,Accounts in Banks,Счета в Банках,0
+field,"party.party,birthday",0,Birthday,День рождения,0
+field,"party.party,categories",0,Categories,Категория,0
+field,"party.party,code",0,Code,Код,0
+field,"party.party,code_length",0,Code Length,Длина Кода,0
+field,"party.party,contact_mechanisms",0,Contact Mechanisms,Контактный способы,0
+field,"party.party,contacts",0,Contact,Контактое лицо,0
+field,"party.party,customer",0,Customer,Заказчик,0
+field,"party.party,document",0,Legal Documents,Рег.документ,0
+field,"party.party,email",0,E-Mail,Эл.почта,0
+field,"party.party,fax",0,Fax,Факс,0
+field,"party.party,full_name",0,Full Name,Полное наименование,0
+field,"party.party,id_1c",0,ID import from 1C,,0
+field,"party.party,individual",0,Individual,Физ.лицо,0
+field,"party.party,kpp_number",0,Reason code setting,КПП,0
+field,"party.party,lang",0,Language,Язык,0
+field,"party.party,legal_form",0,Legal Form,,0
+field,"party.party,mobile",0,Mobile,сот.телефон,0
+field,"party.party,name",0,Full Name,Наименование,0
+field,"party.party,note",0,Notes,Комментарии,0
+field,"party.party,ogrn_number",0,OGRN registration number,ОГРН,0
+field,"party.party,okpo_number",0,OKPO registration number,ОКПО,0
+field,"party.party,okved_number",0,OKVED registration number,ОКВЭД,0
+field,"party.party,phone",0,Phone,Телефон,0
+field,"party.party,photo",0,Person Photo or Logo,Фотография или Логотип,0
+field,"party.party,photo_file",0,Person Photo or Logo,Фотография или Логотип,0
+field,"party.party,rec_name",0,Name,Наименование,0
+field,"party.party,shortcut",0,ShortCut,Кратко,0
+field,"party.party,shortname",0,Short Name,Кратко,0
+field,"party.party,supplier",0,Supplier,Поставщик,0
+field,"party.party,vat_code",0,VAT Code,Код ИНН,0
+field,"party.party,vat_country",0,VAT Country,Страна ИНН ,0
+field,"party.party,vat_number",0,VAT Number,ИНН,0
+field,"party.party,website",0,Website,Сайт,0
+field,"party.party-party.category,category",0,Category,Категории,0
+field,"party.party-party.category,party",0,Party,Контрагент,0
+field,"party.party-party.category,rec_name",0,Name,Наименование,0
+field,"party.person,birthday",0,Birthday,День рождения,0
+field,"party.person,party",0,Party,Контрагент,0
+field,"party.person,rec_name",0,Name,Наименование,0
+help,"party.party,customer",0,Check this box if the party is a Cusmomer.,"Отметьте, если это заказчик",0
+help,"party.party,individual",0,Check this box if the party is a Individual.,"Отметьте, если это физические лицо",0
+help,"party.party,supplier",0,Check this box if the party is a Supplier.,"Отметьте, если это поставщик",0
+help,"party.party,vat_country",0,Setting VAT country will enable validation of the VAT number.,Установите страну регистрации организации для проверки,0
+help,"party.party,vat_number",0,Value Added Tax number,ИНН,0
+model,"ir.action,name",act_address_form,Addresses,Адреса,0
+model,"ir.action,name",act_address_form2,Addresses,Адреса,0
+model,"ir.action,name",act_category_form,Categories,Категория,0
+model,"ir.action,name",act_category_form2,Categories,Категория,0
+model,"ir.action,name",act_category_tree,Categories,Категория,0
+model,"ir.action,name",act_party_by_category,Parties by Category,Контрагенты по категориям,0
+model,"ir.action,name",act_party_configuration_form,Party Configuration,Настройка контрагентов,0
+model,"ir.action,name",act_party_contact_form,Contact,Контактое лицо,0
+model,"ir.action,name",act_party_form,Parties,Контрагенты,0
+model,"ir.action,name",act_party_form2,Parties,Контрагенты,0
+model,"ir.action,name",report_label,Labels,,0
+model,"ir.action,name",wizard_check_vies,Check VIES,Проверить VIES,0
+model,"ir.lang,name",lang_ru,Russian,Русский,0
+model,"ir.sequence,name",sequence_party,Party,Контрагент,0
+model,"ir.sequence.type,name",sequence_type_party,Party,Контрагент,0
+model,"ir.ui.menu,name",menu_address_form,Addresses,Адреса,0
+model,"ir.ui.menu,name",menu_address_form2,New Address,Новый адрес,0
+model,"ir.ui.menu,name",menu_category_form,Categories,Категория,0
+model,"ir.ui.menu,name",menu_category_form2,New category,Новые категории,0
+model,"ir.ui.menu,name",menu_category_tree,Categories,Категория,0
+model,"ir.ui.menu,name",menu_configuration,Configuration,Конфигурация,0
+model,"ir.ui.menu,name",menu_party,Party Management,Организации,0
+model,"ir.ui.menu,name",menu_party_configuration,Party Configuration,Настройка контрагентов,0
+model,"ir.ui.menu,name",menu_party_contact_form,Contact,Контактое лицо,0
+model,"ir.ui.menu,name",menu_party_form,Parties,Контрагенты,0
+model,"ir.ui.menu,name",menu_party_form2,New Party,Новый контрагент,0
+model,"ir.ui.menu,name",menu_person_form,Persons,Физические лица,0
+model,"party.address,name",0,Address,Адрес,0
+model,"party.category,name",0,Category,Категории,0
+model,"party.check_vies.check,name",0,Check VIES - Check,Проверить VIES - проверить,0
+model,"party.check_vies.no_check,name",0,Check VIES - No Check,Проверить VIES - не проверять,0
+model,"party.configuration,name",0,Party Configuration,Настройка контрагентов,0
+model,"party.party,name",0,Party,Контрагент,0
+model,"party.party-party.category,name",0,Party - Category,Контрагент - Категории,0
+model,"res.group,name",group_party,Party (read),Организации (чтение),0
+model,"res.group,name",group_party_admin,Party Administration,Администрирование контрагентов,0
+model,"res.group,name",group_party_write,Party (write),Организации (запись) ,0
+selection,"party.contact_mechanism,type",0,E-Mail,Эл.почта,0
+selection,"party.contact_mechanism,type",0,Fax,Факс,0
+selection,"party.contact_mechanism,type",0,Home Phone,Домашний телефон,0
+selection,"party.contact_mechanism,type",0,IRC,,0
+selection,"party.contact_mechanism,type",0,Jabber,,0
+selection,"party.contact_mechanism,type",0,Mobile,сот.телефон,0
+selection,"party.contact_mechanism,type",0,Other,Прочий,0
+selection,"party.contact_mechanism,type",0,Phone,Телефон,0
+selection,"party.contact_mechanism,type",0,SIP,,0
+selection,"party.contact_mechanism,type",0,Skype,,0
+selection,"party.contact_mechanism,type",0,Website,Сайт,0
+selection,"party.contact_mechanism,type",0,Work Phone,Рабочий телефон,0
+selection,"party.party,vat_country",0,,Резервный счет,0
+selection,"party.party,vat_country",0,AL,,0
+selection,"party.party,vat_country",0,AT,,0
+selection,"party.party,vat_country",0,BE,,0
+selection,"party.party,vat_country",0,BG,,0
+selection,"party.party,vat_country",0,CL,,0
+selection,"party.party,vat_country",0,CO,,0
+selection,"party.party,vat_country",0,CY,,0
+selection,"party.party,vat_country",0,CZ,,0
+selection,"party.party,vat_country",0,DE,,0
+selection,"party.party,vat_country",0,DK,,0
+selection,"party.party,vat_country",0,EE,,0
+selection,"party.party,vat_country",0,EL,,0
+selection,"party.party,vat_country",0,ES,,0
+selection,"party.party,vat_country",0,FI,,0
+selection,"party.party,vat_country",0,FR,,0
+selection,"party.party,vat_country",0,GB,,0
+selection,"party.party,vat_country",0,GR,,0
+selection,"party.party,vat_country",0,HU,,0
+selection,"party.party,vat_country",0,IE,,0
+selection,"party.party,vat_country",0,IT,,0
+selection,"party.party,vat_country",0,LT,,0
+selection,"party.party,vat_country",0,LU,,0
+selection,"party.party,vat_country",0,LV,,0
+selection,"party.party,vat_country",0,MT,,0
+selection,"party.party,vat_country",0,NL,,0
+selection,"party.party,vat_country",0,PL,,0
+selection,"party.party,vat_country",0,PT,,0
+selection,"party.party,vat_country",0,RO,,0
+selection,"party.party,vat_country",0,RU,,0
+selection,"party.party,vat_country",0,SE,,0
+selection,"party.party,vat_country",0,SI,,0
+selection,"party.party,vat_country",0,SK,,0
+selection,"party.party,vat_country",0,SM,,0
+selection,"party.party,vat_country",0,UA,,0
+selection,"party.party,vat_country",0,UK,,0
+view,party.address,0,Addresses,Адреса,0
+view,party.address,0,Job Function,Должность,0
+view,party.address,0,Notes,Комментарии,0
+view,party.category,0,Categories,Категория,0
+view,party.category,0,Category,Категории,0
+view,party.check_vies.check,0,Parties Failed,,0
+view,party.check_vies.check,0,Parties Succeed,,0
+view,party.check_vies.check,0,VAT Information Exchange System Results,ИНН Система обмена информацией о результатах,0
+view,party.check_vies.no_check,0,VAT Information Exchange System,ИНН Система обмена информацией,0
+view,party.check_vies.no_check,0,"You must have a recent version of ""vatnumber"" installed!",,0
+view,party.configuration,0,Party Configuration,Настройка контрагентов,0
+view,party.contact_mechanism,0,Contact Mechanism,Контактный способ,0
+view,party.contact_mechanism,0,Contact Mechanisms,Контактный способы,0
+view,party.party,0,Account in Bank,Счет в банке,0
+view,party.party,0,Accounting,Регистрационные данные,0
+view,party.party,0,Accounts in Banks,Счета в банках,0
+view,party.party,0,Addresses,Адреса,0
+view,party.party,0,Categories,Категория,0
+view,party.party,0,Contact Mechanisms,Контактный способы,0
+view,party.party,0,Contacts,Контактные лица,0
+view,party.party,0,Document,Документ,0
+view,party.party,0,General,Основной,0
+view,party.party,0,Legal Document,Регистрационный документ,0
+view,party.party,0,Parties,Контрагенты,0
+view,party.party,0,Party,Контрагент,0
+view,party.party,0,VAT,ИНН,0
+wizard_button,"party.check_vies,check,end",0,Ok,Да,0
+wizard_button,"party.check_vies,no_check,end",0,Ok,Да,0
diff --git a/setup.py b/setup.py
index 5f9e659..0c7d529 100644
--- a/setup.py
+++ b/setup.py
@@ -31,11 +31,13 @@ setup(name='trytond_party',
     packages=[
         'trytond.modules.party',
         'trytond.modules.party.tests',
+        'trytond.modules.party.icons',
     ],
     package_data={
         'trytond.modules.party': info.get('xml', []) \
                 + info.get('translation', []) \
                 + ['label.odt'],
+        'trytond.modules.party.icons': ['tryton-party.svg'],
     },
     classifiers=[
         'Development Status :: 5 - Production/Stable',
@@ -45,12 +47,17 @@ setup(name='trytond_party',
         'Intended Audience :: Legal Industry',
         'Intended Audience :: Manufacturing',
         'License :: OSI Approved :: GNU General Public License (GPL)',
+        'Natural Language :: Bulgarian',
+        'Natural Language :: Dutch',
         'Natural Language :: English',
         'Natural Language :: French',
         'Natural Language :: German',
+        'Natural Language :: Russian',
         'Natural Language :: Spanish',
         'Operating System :: OS Independent',
-        'Programming Language :: Python',
+        'Programming Language :: Python :: 2.5',
+        'Programming Language :: Python :: 2.6',
+        'Programming Language :: Python :: 2.7',
         'Topic :: Office/Business',
     ],
     license='GPL-3',
diff --git a/trytond_party.egg-info/PKG-INFO b/trytond_party.egg-info/PKG-INFO
index 1c9f583..a893ba4 100644
--- a/trytond_party.egg-info/PKG-INFO
+++ b/trytond_party.egg-info/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 1.0
 Name: trytond-party
-Version: 1.8.0
+Version: 2.0.0
 Summary: Define parties, addresses and co.
 Home-page: http://www.tryton.org/
 Author: B2CK
 Author-email: info at b2ck.com
 License: GPL-3
-Download-URL: http://downloads.tryton.org/1.8/
+Download-URL: http://downloads.tryton.org/2.0/
 Description: UNKNOWN
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
@@ -16,10 +16,15 @@ Classifier: Intended Audience :: Financial and Insurance Industry
 Classifier: Intended Audience :: Legal Industry
 Classifier: Intended Audience :: Manufacturing
 Classifier: License :: OSI Approved :: GNU General Public License (GPL)
+Classifier: Natural Language :: Bulgarian
+Classifier: Natural Language :: Dutch
 Classifier: Natural Language :: English
 Classifier: Natural Language :: French
 Classifier: Natural Language :: German
+Classifier: Natural Language :: Russian
 Classifier: Natural Language :: Spanish
 Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2.5
+Classifier: Programming Language :: Python :: 2.6
+Classifier: Programming Language :: Python :: 2.7
 Classifier: Topic :: Office/Business
diff --git a/trytond_party.egg-info/SOURCES.txt b/trytond_party.egg-info/SOURCES.txt
index e6cde5c..144218e 100644
--- a/trytond_party.egg-info/SOURCES.txt
+++ b/trytond_party.egg-info/SOURCES.txt
@@ -5,6 +5,7 @@ LICENSE
 MANIFEST.in
 README
 address.xml
+bg_BG.csv
 category.xml
 configuration.xml
 contact_mechanism.xml
@@ -13,7 +14,9 @@ es_CO.csv
 es_ES.csv
 fr_FR.csv
 label.odt
+nl_NL.csv
 party.xml
+ru_RU.csv
 setup.py
 ./__init__.py
 ./__tryton__.py
@@ -22,9 +25,13 @@ setup.py
 ./configuration.py
 ./contact_mechanism.py
 ./party.py
+./icons/__init__.py
 ./tests/__init__.py
 ./tests/test_party.py
 doc/index.rst
+icons/LICENSE
+icons/__init__.py
+icons/tryton-party.svg
 trytond_party.egg-info/PKG-INFO
 trytond_party.egg-info/SOURCES.txt
 trytond_party.egg-info/dependency_links.txt
diff --git a/trytond_party.egg-info/requires.txt b/trytond_party.egg-info/requires.txt
index 95dfa23..f9c54d1 100644
--- a/trytond_party.egg-info/requires.txt
+++ b/trytond_party.egg-info/requires.txt
@@ -1,5 +1,5 @@
-trytond_country >= 1.8, < 1.9
-trytond >= 1.8, < 1.9
+trytond_country >= 2.0, < 2.1
+trytond >= 2.0, < 2.1
 
 [VAT]
 vatnumber
\ No newline at end of file
commit 27e4a73b73cbecce524cc74678411607a54fa865
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Tue Apr 26 21:08:54 2011 +0200

    Updating to standards version 3.9.2.

diff --git a/debian/control b/debian/control
index 14c26d1..4d94863 100644
--- a/debian/control
+++ b/debian/control
@@ -7,7 +7,7 @@ Uploaders:
  Mathias Behrle <mathiasb at m9s.biz>
 Dm-Upload-Allowed: yes
 Build-Depends: debhelper (>= 8), python, python-setuptools, python-support
-Standards-Version: 3.9.1
+Standards-Version: 3.9.2
 Homepage: http://www.tryton.org/
 Vcs-Browser: http://git.debian-maintainers.org/?p=tryton/tryton-modules-party.git
 Vcs-Git: git://git.debian-maintainers.org/git/tryton/tryton-modules-party.git
commit 2ff283ab33fd9cb927c6dd309f88a534447ca039
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Tue Feb 15 13:11:16 2011 +0100

    Releasing debian version 1.8.0-2.

diff --git a/debian/changelog b/debian/changelog
index 5820d07..e26ffeb 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+tryton-modules-party (1.8.0-2) unstable; urgency=low
+
+  * Changing my email address.
+  * Setting minimal Python version to 2.5.
+  * Updating Copyright.
+
+ -- Mathias Behrle <mathiasb at m9s.biz>  Tue, 15 Feb 2011 13:11:03 +0100
+
 tryton-modules-party (1.8.0-1) experimental; urgency=low
 
   * Updating standards version to 3.9.0.
commit 30f4fc2b5333235402fac269f226a730c9d1f4de
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Tue Feb 15 12:38:43 2011 +0100

    Updating Copyright.

diff --git a/debian/copyright b/debian/copyright
index 10d1236..00ed9c7 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -30,7 +30,7 @@ License: GPL-3+
  can be found in /usr/share/common-licenses/GPL-3 file.
 
 Files: debian/*
-Copyright: (C) 2009-2010 Daniel Baumann <daniel at debian.org>
+Copyright: (C) 2009-2011 Daniel Baumann <daniel at debian.org>
 License: GPL-3+
  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
commit 2d635f16df46a443a9e9bfb7f0182650c33146b4
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Sat Jan 15 17:27:18 2011 +0100

    Setting minimal Python version to 2.5.

diff --git a/debian/pyversions b/debian/pyversions
index 8b253bc..b3dc41e 100644
--- a/debian/pyversions
+++ b/debian/pyversions
@@ -1 +1 @@
-2.4-
+2.5-
commit d3c8bf2a1c7dce7857cbc8c6fedc767a431d712d
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Sat Nov 20 11:48:55 2010 +0100

    Changing my email address.

diff --git a/debian/control b/debian/control
index 24cbe7a..14c26d1 100644
--- a/debian/control
+++ b/debian/control
@@ -4,7 +4,7 @@ Priority: optional
 Maintainer: Debian Tryton Maintainers <tryton at lists.debian-maintainers.org>
 Uploaders:
  Daniel Baumann <daniel at debian.org>,
- Mathias Behrle <mathiasb at mbsolutions.selfip.biz>
+ Mathias Behrle <mathiasb at m9s.biz>
 Dm-Upload-Allowed: yes
 Build-Depends: debhelper (>= 8), python, python-setuptools, python-support
 Standards-Version: 3.9.1
commit b0ba06e9d2bc5e5452c2b4134abe2af54cf499d5
Author: Daniel Baumann <daniel at debian.org>
Date:   Fri Nov 12 13:04:51 2010 +0100

    Releasing debian version 1.8.0-1.

diff --git a/debian/changelog b/debian/changelog
index 6fa38e3..5820d07 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,14 @@
+tryton-modules-party (1.8.0-1) experimental; urgency=low
+
+  * Updating standards version to 3.9.0.
+  * Updating to debhelper version 8.
+  * Updating to standards version 3.9.1.
+  * Switching to source format 3.0 (quilt).
+  * Merging upstream version 1.8.0.
+  * Updating versioned tryton depends to 1.8.
+
+ -- Daniel Baumann <daniel at debian.org>  Fri, 12 Nov 2010 13:04:48 +0100
+
 tryton-modules-party (1.6.0-1) unstable; urgency=low
 
   [ Daniel Baumann ]
commit dcdf2df83803c976865ca0e0aedc40840b748e5a
Author: Daniel Baumann <daniel at debian.org>
Date:   Thu Nov 4 20:16:01 2010 +0100

    Updating versioned tryton depends to 1.8.

diff --git a/debian/control b/debian/control
index 063a305..24cbe7a 100644
--- a/debian/control
+++ b/debian/control
@@ -15,8 +15,8 @@ Vcs-Git: git://git.debian-maintainers.org/git/tryton/tryton-modules-party.git
 Package: tryton-modules-party
 Architecture: all
 Depends:
- ${misc:Depends}, ${python:Depends}, tryton-server (>= 1.6),
- tryton-modules-country (>= 1.6), python-pkg-resources
+ ${misc:Depends}, ${python:Depends}, tryton-server (>= 1.8),
+ tryton-modules-country (>= 1.8), python-pkg-resources
 Recommends: python-soappy, python-vatnumber
 XB-Python-Version: ${python:Versions}
 Description: Tryton Application Platform (Party Module)
commit 04a76b02ac77a2b784f7eeaa90b301f75d74938b
Author: Daniel Baumann <daniel at debian.org>
Date:   Thu Nov 4 20:13:24 2010 +0100

    Merging upstream version 1.8.0.

diff --git a/CHANGELOG b/CHANGELOG
index 5286b81..84b4452 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,7 @@
+Version 1.8.0 - 2010-11-01
+* Bug fixes (see mercurial logs for details)
+* Add default address on party
+
 Version 1.6.0 - 2010-05-10
 * Bug fixes (see mercurial logs for details)
 * Don't allow empty vat_number if vat_country is set
diff --git a/INSTALL b/INSTALL
index 7d489fd..86ff4bd 100644
--- a/INSTALL
+++ b/INSTALL
@@ -4,7 +4,7 @@ Installing trytond_party
 Prerequisites
 -------------
 
- * Python 2.4 or later (http://www.python.org/)
+ * Python 2.5 or later (http://www.python.org/)
  * trytond (http://www.tryton.org/)
  * trytond_country (http://www.tryton.org/)
  * Optional: vatnumber (http://code.google.com/p/vatnumber/)
diff --git a/PKG-INFO b/PKG-INFO
index f508e2c..c165573 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 1.0
 Name: trytond_party
-Version: 1.6.0
+Version: 1.8.0
 Summary: Define parties, addresses and co.
 Home-page: http://www.tryton.org/
 Author: B2CK
 Author-email: info at b2ck.com
 License: GPL-3
-Download-URL: http://downloads.tryton.org/1.6/
+Download-URL: http://downloads.tryton.org/1.8/
 Description: UNKNOWN
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
diff --git a/__tryton__.py b/__tryton__.py
index 7692d80..f2fd76d 100644
--- a/__tryton__.py
+++ b/__tryton__.py
@@ -7,7 +7,7 @@
     'name_es_CO': 'Terceros',
     'name_es_ES': 'Terceros',
     'name_fr_FR': 'Tiers',
-    'version' : '1.6.0',
+    'version' : '1.8.0',
     'author' : 'B2CK',
     'email': 'info at b2ck.com',
     'website': 'http://www.tryton.org/',
diff --git a/address.py b/address.py
index dbb178a..155791a 100644
--- a/address.py
+++ b/address.py
@@ -42,14 +42,14 @@ class Address(ModelSQL, ModelView):
             'write_party': 'You can not modify the party of an address!',
             })
 
-    def default_active(self, cursor, user, context=None):
+    def default_active(self):
         return True
 
-    def get_full_address(self, cursor, user, ids, name, context=None):
+    def get_full_address(self, ids, name):
         if not ids:
             return {}
         res = {}
-        for address in self.browse(cursor, user, ids, context=context):
+        for address in self.browse(ids):
             res[address.id] = ''
             if address.name:
                 res[address.id] += address.name
@@ -81,34 +81,32 @@ class Address(ModelSQL, ModelView):
                     res[address.id] += address.country.name
         return res
 
-    def get_rec_name(self, cursor, user, ids, name, context=None):
+    def get_rec_name(self, ids, name):
         if not ids:
             return {}
         res = {}
-        for address in self.browse(cursor, user, ids, context=context):
+        for address in self.browse(ids):
             res[address.id] = ", ".join(x for x in [address.name,
                 address.party.rec_name, address.zip, address.city] if x)
         return res
 
-    def search_rec_name(self, cursor, user, name, clause, context=None):
-        ids = self.search(cursor, user, ['OR',
+    def search_rec_name(self, name, clause):
+        ids = self.search(['OR',
             ('zip',) + clause[1:],
             ('city',) + clause[1:],
             ('name',) + clause[1:],
-            ], order=[], context=context)
+            ], order=[])
         if ids:
             return [('id', 'in', ids)]
         return [('party',) + clause[1:]]
 
-    def write(self, cursor, user, ids, vals, context=None):
+    def write(self, ids, vals):
         if 'party' in vals:
             if isinstance(ids, (int, long)):
                 ids = [ids]
-            for address in self.browse(cursor, user, ids, context=context):
+            for address in self.browse(ids):
                 if address.party.id != vals['party']:
-                    self.raise_user_error(cursor, 'write_party',
-                            context=context)
-        return super(Address, self).write(cursor, user, ids, vals,
-                context=context)
+                    self.raise_user_error('write_party')
+        return super(Address, self).write(ids, vals)
 
 Address()
diff --git a/category.py b/category.py
index 6338ad2..471199d 100644
--- a/category.py
+++ b/category.py
@@ -37,16 +37,16 @@ class Category(ModelSQL, ModelView):
         })
         self._order.insert(1, ('name', 'ASC'))
 
-    def default_active(self, cursor, user, context=None):
+    def default_active(self):
         return 1
 
-    def check_name(self, cursor, user, ids):
-        for category in self.browse(cursor, user, ids):
+    def check_name(self, ids):
+        for category in self.browse(ids):
             if SEPARATOR in category.name:
                 return False
         return True
 
-    def get_rec_name(self, cursor, user, ids, name, context=None):
+    def get_rec_name(self, ids, name):
         if not ids:
             return {}
         res = {}
@@ -57,11 +57,11 @@ class Category(ModelSQL, ModelView):
                 return _name(category.parent) + SEPARATOR + category.name
             else:
                 return category.name
-        for category in self.browse(cursor, user, ids, context=context):
+        for category in self.browse(ids):
             res[category.id] = _name(category)
         return res
 
-    def search_rec_name(self, cursor, user, name, clause, context=None):
+    def search_rec_name(self, name, clause):
         if isinstance(clause[2], basestring):
             values = clause[2].split(SEPARATOR)
             values.reverse()
@@ -70,7 +70,7 @@ class Category(ModelSQL, ModelView):
             for name in values:
                 domain.append((field, clause[1], name))
                 field = 'parent.' + field
-            ids = self.search(cursor, user, domain, order=[], context=context)
+            ids = self.search(domain, order=[])
             return [('id', 'in', ids)]
         #TODO Handle list
         return [('name',) + clause[1:]]
diff --git a/contact_mechanism.py b/contact_mechanism.py
index 61cae05..19d1b29 100644
--- a/contact_mechanism.py
+++ b/contact_mechanism.py
@@ -75,27 +75,27 @@ class ContactMechanism(ModelSQL, ModelView):
                     'a contact mechanism!',
             })
 
-    def default_type(self, cursor, user, context=None):
+    def default_type(self):
         return 'phone'
 
-    def default_active(self, cursor, user, context=None):
+    def default_active(self):
         return True
 
-    def get_value(self, cursor, user, ids, names, context=None):
+    def get_value(self, ids, names):
         res = {}
         for name in names:
             res[name] = {}
-        for mechanism in self.browse(cursor, user, ids, context=context):
+        for mechanism in self.browse(ids):
             for name in names:
                 res[name][mechanism.id] = mechanism.value
         return res
 
-    def set_value(self, cursor, user, ids, name, value, context=None):
-        self.write(cursor, user, ids, {
+    def set_value(self, ids, name, value):
+        self.write(ids, {
             'value': value,
-            }, context=context)
+            })
 
-    def _change_value(self, cursor, user, value, context=None):
+    def _change_value(self, value):
         return {
             'value': value,
             'website': value,
@@ -105,39 +105,31 @@ class ContactMechanism(ModelSQL, ModelView):
             'other_value': value,
         }
 
-    def on_change_value(self, cursor, user, vals, context=None):
-        return self._change_value(cursor, user, vals.get('value'),
-                context=context)
+    def on_change_value(self, vals):
+        return self._change_value(vals.get('value'))
 
-    def on_change_website(self, cursor, user, vals, context=None):
-        return self._change_value(cursor, user, vals.get('website'),
-                context=context)
+    def on_change_website(self, vals):
+        return self._change_value(vals.get('website'))
 
-    def on_change_email(self, cursor, user, vals, context=None):
-        return self._change_value(cursor, user, vals.get('email'),
-                context=context)
+    def on_change_email(self, vals):
+        return self._change_value(vals.get('email'))
 
-    def on_change_skype(self, cursor, user, vals, context=None):
-        return self._change_value(cursor, user, vals.get('skype'),
-                context=context)
+    def on_change_skype(self, vals):
+        return self._change_value(vals.get('skype'))
 
-    def on_change_sip(self, cursor, user, vals, context=None):
-        return self._change_value(cursor, user, vals.get('sip'),
-                context=context)
+    def on_change_sip(self, vals):
+        return self._change_value(vals.get('sip'))
 
-    def on_change_other_value(self, cursor, user, vals, context=None):
-        return self._change_value(cursor, user, vals.get('other_value'),
-                context=context)
+    def on_change_other_value(self, vals):
+        return self._change_value(vals.get('other_value'))
 
-    def write(self, cursor, user, ids, vals, context=None):
+    def write(self, ids, vals):
         if 'party' in vals:
             if isinstance(ids, (int, long)):
                 ids = [ids]
-            for mechanism in self.browse(cursor, user, ids, context=context):
+            for mechanism in self.browse(ids):
                 if mechanism.party.id != vals['party']:
-                    self.raise_user_error(cursor, 'write_party',
-                            context=context)
-        return super(ContactMechanism, self).write(cursor, user, ids, vals,
-                context=context)
+                    self.raise_user_error('write_party')
+        return super(ContactMechanism, self).write(ids, vals)
 
 ContactMechanism()
diff --git a/de_DE.csv b/de_DE.csv
index e1076c2..9fdb16c 100644
--- a/de_DE.csv
+++ b/de_DE.csv
@@ -1,12 +1,12 @@
 type,name,res_id,src,value,fuzzy
 error,party.address,0,You can not modify the party of an address!,Die Partei einer Adresse kann nicht geändert werden!,0
 error,party.category,0,The name of a party category must be unique by parent!,Der Name einer Parteikategorie kann pro Ãœbergeordneter Partei nur einmal vergeben werden!,0
-error,party.category,0,You can not create recursive categories!,Kategorien dürfen nicht rekursiv sein,0
+error,party.category,0,You can not create recursive categories!,Kategorien können nicht rekursiv angelegt werden!,0
 error,party.category,0,"You can not use "" / "" in name field!","In dem Namensfeld kann "" / "" nicht verwendet werden!",0
 error,party.check_vies,0,"The VIES service is unavailable, try again later.","VIES Dienst nicht erreichbar, bitte versuchen Sie es später noch einmal!",0
 error,party.contact_mechanism,0,You can not modify the party of a contact mechanism!,Die Partei einer Kontaktmöglichkeit kann nicht geändert werden!,0
 error,party.party,0,Invalid VAT number!,Ungültige USt-ID-Nummer!,0
-error,party.party,0,The code of the party must be unique!,Der Code für eine Partei kann nur einmal vergeben werden!,0
+error,party.party,0,The code of the party must be unique!,Der Name einer Partei kann nur einmal vergeben werden!,0
 field,"party.address,active",0,Active,Aktiv,0
 field,"party.address,city",0,City,Stadt,0
 field,"party.address,country",0,Country,Staat,0
@@ -65,9 +65,6 @@ field,"party.party,id",0,ID,ID,0
 field,"party.party,lang",0,Language,Sprache,0
 field,"party.party,mobile",0,Mobile,Mobiltelefon,0
 field,"party.party,name",0,Name,Name,0
-field,"party.party-party.category,category",0,Category,Kategorie,0
-field,"party.party-party.category,party",0,Party,Partei,0
-field,"party.party-party.category,rec_name",0,Name,Name,0
 field,"party.party,phone",0,Phone,Telefon,0
 field,"party.party,rec_name",0,Name,Name,0
 field,"party.party,vat_code",0,VAT Code,USt-ID-Nr.,0
@@ -76,31 +73,34 @@ field,"party.party,vat_number",0,VAT Number,USt-ID-Nr.,0
 field,"party.party,website",0,Website,Website,0
 field,"party.party,write_date",0,Last modification date,Zuletzt geändert am,0
 field,"party.party,write_uid",0,Last modification by,Zuletzt geändert von,0
+field,"party.party-party.category,category",0,Category,Kategorie,0
+field,"party.party-party.category,party",0,Party,Partei,0
+field,"party.party-party.category,rec_name",0,Name,Name,0
 help,"party.party,vat_country",0,Setting VAT country will enable validation of the VAT number.,Ein Eintrag in USt-ID-Präfix aktiviert die Überprüfung der USt-ID-Nr.,0
 help,"party.party,vat_number",0,Value Added Tax number,Umsatzsteueridentifikationsnummer,0
 model,"ir.action,name",act_address_form,Addresses,Adressen,0
 model,"ir.action,name",act_address_form2,Addresses,Adressen,0
-model,"ir.action,name",act_category_tree,Categories,Kategorien,0
 model,"ir.action,name",act_category_form,Categories,Kategorien,0
 model,"ir.action,name",act_category_form2,Categories,Kategorien,0
-model,"ir.action,name",wizard_check_vies,Check VIES,USt-ID-Nr. per VIES überprüfen,0
-model,"ir.action,name",report_label,Labels,Etiketten,0
-model,"ir.action,name",act_party_form,Parties,Parteien,0
-model,"ir.action,name",act_party_form2,Parties,Parteien,0
+model,"ir.action,name",act_category_tree,Categories,Kategorien,0
 model,"ir.action,name",act_party_by_category,Parties by Category,Parteien nach Kategorie,0
 model,"ir.action,name",act_party_configuration_form,Party Configuration,Einstellungen Partei,0
+model,"ir.action,name",act_party_form,Parties,Parteien,0
+model,"ir.action,name",act_party_form2,Parties,Parteien,0
+model,"ir.action,name",report_label,Labels,Etiketten,0
+model,"ir.action,name",wizard_check_vies,Check VIES,USt-ID-Nr. per VIES überprüfen,0
 model,"ir.sequence,name",sequence_party,Party,Partei,0
 model,"ir.sequence.type,name",sequence_type_party,Party,Partei,0
 model,"ir.ui.menu,name",menu_address_form,Addresses,Adressen,0
-model,"ir.ui.menu,name",menu_category_tree,Categories,Parteikategorien,0
-model,"ir.ui.menu,name",menu_category_form,Categories,Parteikategorien,0
-model,"ir.ui.menu,name",menu_configuration,Configuration,Einstellungen,0
 model,"ir.ui.menu,name",menu_address_form2,New Address,Neue Adresse,0
+model,"ir.ui.menu,name",menu_category_form,Categories,Parteikategorien,0
 model,"ir.ui.menu,name",menu_category_form2,New category,Neue Parteikategorie,0
-model,"ir.ui.menu,name",menu_party_form2,New Party,Neue Partei,0
-model,"ir.ui.menu,name",menu_party_form,Parties,Parteien,0
-model,"ir.ui.menu,name",menu_party_configuration,Party Configuration,Einstellungen Partei,0
+model,"ir.ui.menu,name",menu_category_tree,Categories,Parteikategorien,0
+model,"ir.ui.menu,name",menu_configuration,Configuration,Einstellungen,0
 model,"ir.ui.menu,name",menu_party,Party Management,Parteien,0
+model,"ir.ui.menu,name",menu_party_configuration,Party Configuration,Einstellungen Partei,0
+model,"ir.ui.menu,name",menu_party_form,Parties,Parteien,0
+model,"ir.ui.menu,name",menu_party_form2,New Party,Neue Partei,0
 model,"party.address,name",0,Address,Adresse,0
 model,"party.category,name",0,Category,Kategorie,0
 model,"party.check_vies.check,name",0,Check VIES - Check,Überprüfung VIES - Durchführen,0
@@ -166,15 +166,15 @@ view,party.contact_mechanism,0,Contact Mechanism,Kontaktmöglichkeit,0
 view,party.contact_mechanism,0,Contact Mechanisms,Kontaktmöglichkeiten,0
 view,party.party,0,Account,Konten,0
 view,party.party,0,Accounting,Buchhaltung,0
-view,party.party,0,_Accounting,_Buchhaltung,0
 view,party.party,0,Addresses,Adressen,0
 view,party.party,0,Categories,Kategorien,0
 view,party.party,0,Contact Mechanism,Kontaktmöglichkeit,0
 view,party.party,0,Contact Mechanisms,Kontaktmöglichkeiten,0
 view,party.party,0,General,Allgemein,0
-view,party.party,0,_General,_Allgemein,0
 view,party.party,0,Parties,Parteien,0
 view,party.party,0,Party,Partei,0
 view,party.party,0,VAT,USt,0
+view,party.party,0,_Accounting,_Buchhaltung,0
+view,party.party,0,_General,_Allgemein,0
 wizard_button,"party.check_vies,check,end",0,Ok,OK,0
 wizard_button,"party.check_vies,no_check,end",0,Ok,OK,0
diff --git a/fr_FR.csv b/fr_FR.csv
index cd59ab6..4dcb5e6 100644
--- a/fr_FR.csv
+++ b/fr_FR.csv
@@ -52,45 +52,45 @@ field,"party.party,full_name",0,Full Name,Nom complet,0
 field,"party.party,lang",0,Language,Langue,0
 field,"party.party,mobile",0,Mobile,Mobile,0
 field,"party.party,name",0,Name,Nom,0
-field,"party.party-party.category,category",0,Category,Catégorie,0
-field,"party.party-party.category,party",0,Party,Tiers,0
-field,"party.party-party.category,rec_name",0,Name,Nom,0
 field,"party.party,phone",0,Phone,Téléphone,0
 field,"party.party,rec_name",0,Name,Nom,0
 field,"party.party,vat_code",0,VAT Code,Code TVA,0
 field,"party.party,vat_country",0,VAT Country,Code Pays TVA,0
 field,"party.party,vat_number",0,VAT Number,Numéro de TVA,0
 field,"party.party,website",0,Website,Site web,0
+field,"party.party-party.category,category",0,Category,Catégorie,0
+field,"party.party-party.category,party",0,Party,Tiers,0
+field,"party.party-party.category,rec_name",0,Name,Nom,0
 help,"party.party,vat_country",0,Setting VAT country will enable validation of the VAT number.,Ajouter un code pays TVA activera la vérification du numéro de TVA.,0
 help,"party.party,vat_number",0,Value Added Tax number,Numéro de taxe sur la valeur ajoutée,0
 model,"ir.action,name",act_address_form,Addresses,Adresses,0
 model,"ir.action,name",act_address_form2,Addresses,Adresses,0
-model,"ir.action,name",act_category_tree,Categories,Catégories,0
 model,"ir.action,name",act_category_form,Categories,Catégories,0
 model,"ir.action,name",act_category_form2,Categories,Catégories,0
-model,"ir.action,name",wizard_check_vies,Check VIES,Validation VIES,0
-model,"ir.action,name",report_label,Labels,Étiquettes,0
-model,"ir.action,name",act_party_form,Parties,Tiers,0
-model,"ir.action,name",act_party_form2,Parties,Tiers,0
+model,"ir.action,name",act_category_tree,Categories,Catégories,0
 model,"ir.action,name",act_party_by_category,Parties by Category,Tiers par catégorie,0
 model,"ir.action,name",act_party_configuration_form,Party Configuration,Configuration des relations,0
+model,"ir.action,name",act_party_form,Parties,Tiers,0
+model,"ir.action,name",act_party_form2,Parties,Tiers,0
+model,"ir.action,name",report_label,Labels,Étiquettes,0
+model,"ir.action,name",wizard_check_vies,Check VIES,Validation VIES,0
 model,"ir.sequence,name",sequence_party,Party,Tiers,0
 model,"ir.sequence.type,name",sequence_type_party,Party,Tiers,0
 model,"ir.ui.menu,name",menu_address_form,Addresses,Adresses,0
-model,"ir.ui.menu,name",menu_category_tree,Categories,Catégories,0
-model,"ir.ui.menu,name",menu_category_form,Categories,Editer les catégories,0
-model,"ir.ui.menu,name",menu_configuration,Configuration,Configuration,0
 model,"ir.ui.menu,name",menu_address_form2,New Address,Nouvelle adresse,0
+model,"ir.ui.menu,name",menu_category_form,Categories,Editer les catégories,0
 model,"ir.ui.menu,name",menu_category_form2,New category,Nouvelle catégorie,0
-model,"ir.ui.menu,name",menu_party_form2,New Party,Nouveau tiers,0
-model,"ir.ui.menu,name",menu_party_form,Parties,Tiers,0
-model,"ir.ui.menu,name",menu_party_configuration,Party Configuration,Configuration des relations,0
+model,"ir.ui.menu,name",menu_category_tree,Categories,Catégories,0
+model,"ir.ui.menu,name",menu_configuration,Configuration,Configuration,0
 model,"ir.ui.menu,name",menu_party,Party Management,Gestion des relations,0
+model,"ir.ui.menu,name",menu_party_configuration,Party Configuration,Configuration des relations,0
+model,"ir.ui.menu,name",menu_party_form,Parties,Tiers,0
+model,"ir.ui.menu,name",menu_party_form2,New Party,Nouveau tiers,0
 model,"party.address,name",0,Address,Adresse,0
 model,"party.category,name",0,Category,Catégorie,0
 model,"party.check_vies.check,name",0,Check VIES - Check,Validation VIES - Validé,0
 model,"party.check_vies.no_check,name",0,Check VIES - No Check,Validation VIES - Non validé,0
-model,"party.configuration,name",0,party.configuration,,0
+model,"party.configuration,name",0,Party Configuration,Configuration des relations,0
 model,"party.contact_mechanism,name",0,Contact Mechanism,Moyen de contact,0
 model,"party.party,name",0,Party,Tiers,0
 model,"party.party-party.category,name",0,Party - Category,Tiers - Catégorie,0
@@ -118,15 +118,15 @@ view,party.configuration,0,Party Configuration,Configuration des relations,0
 view,party.contact_mechanism,0,Contact Mechanism,Moyen de contact,0
 view,party.contact_mechanism,0,Contact Mechanisms,Moyens de contact,0
 view,party.party,0,Accounting,Comptabilité,0
-view,party.party,0,_Accounting,Compt_abilité,0
 view,party.party,0,Addresses,Adresses,0
 view,party.party,0,Categories,Catégories,0
 view,party.party,0,Contact Mechanisms,Moyens de contact,0
 view,party.party,0,General,Général,0
-view,party.party,0,_General,_Général,0
 view,party.party,0,Parties,Tiers,0
 view,party.party,0,Party,Tiers,0
 view,party.party,0,Properties,Propriétés,0
 view,party.party,0,VAT,TVA,0
+view,party.party,0,_Accounting,Compt_abilité,0
+view,party.party,0,_General,_Général,0
 wizard_button,"party.check_vies,check,end",0,Ok,Ok,0
 wizard_button,"party.check_vies,no_check,end",0,Ok,Ok,0
diff --git a/party.py b/party.py
index 58ac835..8e74a7c 100644
--- a/party.py
+++ b/party.py
@@ -1,9 +1,10 @@
 #This file is part of Tryton.  The COPYRIGHT file at the top level of
 #this repository contains the full copyright notices and license terms.
+import logging
 from trytond.model import ModelView, ModelSQL, fields
 from trytond.wizard import Wizard
 from trytond.pyson import Not, Bool, Eval
-import logging
+from trytond.transaction import Transaction
 
 HAS_VATNUMBER = False
 VAT_COUNTRIES = [('', '')]
@@ -72,26 +73,32 @@ class Party(ModelSQL, ModelView):
         })
         self._order.insert(0, ('name', 'ASC'))
 
-    def default_active(self, cursor, user, context=None):
+    def default_active(self):
         return True
 
-    def default_categories(self, cursor, user, context=None):
-        if context is None:
-            context = {}
-        return context.get('categories', [])
+    def default_categories(self):
+        return Transaction().context.get('categories', [])
 
-    def on_change_with_vat_code(self, cursor, user, vals, context=None):
+    def default_addresses(self):
+        address_obj = self.pool.get('party.address')
+        fields_names = list(x for x in set(address_obj._columns.keys()
+                + address_obj._inherit_fields.keys())
+                if x not in ['id', 'create_uid', 'create_date',
+                    'write_uid', 'write_date'])
+        return [address_obj.default_get(fields_names)]
+
+    def on_change_with_vat_code(self, vals):
         return (vals.get('vat_country') or '') + (vals.get('vat_number') or '')
 
-    def get_vat_code(self, cursor, user, ids, name, context=None):
+    def get_vat_code(self, ids, name):
         if not ids:
             return []
         res = {}
-        for party in self.browse(cursor, user, ids, context=context):
+        for party in self.browse(ids):
             res[party.id] = (party.vat_country or '') + (party.vat_number or '')
         return res
 
-    def search_vat_code(self, cursor, user, name, clause, context=None):
+    def search_vat_code(self, name, clause):
         res = []
         value = clause[2]
         for country, _ in VAT_COUNTRIES:
@@ -104,19 +111,19 @@ class Party(ModelSQL, ModelView):
         res.append(('vat_number', clause[1], value))
         return res
 
-    def get_full_name(self, cursor, user, ids, name, context=None):
+    def get_full_name(self, ids, name):
         if not ids:
             return []
         res = {}
-        for party in self.browse(cursor, user, ids, context=context):
+        for party in self.browse(ids):
             res[party.id] = party.name
         return res
 
-    def get_mechanism(self, cursor, user, ids, name, context=None):
+    def get_mechanism(self, ids, name):
         if not ids:
             return []
         res = {}
-        for party in self.browse(cursor, user, ids, context=context):
+        for party in self.browse(ids):
             res[party.id] = ''
             for mechanism in party.contact_mechanisms:
                 if mechanism.type == name:
@@ -124,26 +131,25 @@ class Party(ModelSQL, ModelView):
                     break
         return res
 
-    def create(self, cursor, user, values, context=None):
+    def create(self, values):
         sequence_obj = self.pool.get('ir.sequence')
         config_obj = self.pool.get('party.configuration')
 
         values = values.copy()
         if not values.get('code'):
-            config = config_obj.browse(cursor, user, 1, context=context)
-            values['code'] = sequence_obj.get_id(cursor, user,
-                config.party_sequence.id, context=context)
+            config = config_obj.browse(1)
+            values['code'] = sequence_obj.get_id(config.party_sequence.id)
 
         values['code_length'] = len(values['code'])
-        return super(Party, self).create(cursor, user, values, context=context)
+        return super(Party, self).create(values)
 
-    def write(self, cursor, user, ids, vals, context=None):
+    def write(self, ids, vals):
         if vals.get('code'):
             vals = vals.copy()
             vals['code_length'] = len(vals['code'])
-        return super(Party, self).write(cursor, user, ids, vals, context=context)
+        return super(Party, self).write(ids, vals)
 
-    def copy(self, cursor, user, ids, default=None, context=None):
+    def copy(self, ids, default=None):
         address_obj = self.pool.get('party.address')
 
         int_id = False
@@ -157,56 +163,52 @@ class Party(ModelSQL, ModelView):
         default['code'] = False
         default['addresses'] = False
         new_ids = []
-        for party in self.browse(cursor, user, ids, context=context):
-            new_id = super(Party, self).copy(cursor, user, party.id,
-                    default=default, context=context)
-            address_obj.copy(cursor, user, [x.id for x in party.addresses],
+        for party in self.browse(ids):
+            new_id = super(Party, self).copy(party.id, default=default)
+            address_obj.copy([x.id for x in party.addresses],
                     default={
                         'party': new_id,
-                        }, context=context)
+                        })
             new_ids.append(new_id)
 
         if int_id:
             return new_ids[0]
         return new_ids
 
-    def search_rec_name(self, cursor, user, name, clause, context=None):
-        ids = self.search(cursor, user, [('code',) + clause[1:]],
-                order=[], context=context)
+    def search_rec_name(self, name, clause):
+        ids = self.search([('code',) + clause[1:]], order=[]) 
         if ids:
-            ids += self.search(cursor, user, [('name',) + clause[1:]],
-                    order=[], context=context)
+            ids += self.search([('name',) + clause[1:]], order=[])
             return [('id', 'in', ids)]
         return [('name',) + clause[1:]]
 
-    def address_get(self, cursor, user, party_id, type=None, context=None):
+    def address_get(self, party_id, type=None):
         """
         Try to find an address for the given type, if no type match
         the first address is return.
         """
         address_obj = self.pool.get("party.address")
         address_ids = address_obj.search(
-            cursor, user, [("party", "=", party_id), ("active", "=", True)],
-            order=[('sequence', 'ASC'), ('id', 'ASC')], context=context)
+            [("party", "=", party_id), ("active", "=", True)],
+            order=[('sequence', 'ASC'), ('id', 'ASC')])
         if not address_ids:
             return False
         default_address = address_ids[0]
         if not type:
             return default_address
-        for address in address_obj.browse(cursor, user, address_ids,
-                context=context):
+        for address in address_obj.browse(address_ids):
             if address[type]:
                     return address.id
         return default_address
 
-    def check_vat(self, cursor, user, ids):
+    def check_vat(self, ids):
         '''
         Check the VAT number depending of the country.
         http://sima-pc.com/nif.php
         '''
         if not HAS_VATNUMBER:
             return True
-        for party in self.browse(cursor, user, ids):
+        for party in self.browse(ids):
             vat_number = party.vat_number
 
             if not party.vat_country:
@@ -218,7 +220,7 @@ class Party(ModelSQL, ModelView):
                 #Check if user doesn't have put country code in number
                 if vat_number.startswith(party.vat_country):
                     vat_number = vat_number[len(party.vat_country):]
-                    self.write(cursor, user, party.id, {
+                    self.write(party.id, {
                         'vat_number': vat_number,
                         })
                 else:
@@ -303,18 +305,18 @@ class CheckVIES(Wizard):
                     'try again later.',
             })
 
-    def _choice(self, cursor, user, data, context=None):
+    def _choice(self, data):
         if not HAS_VATNUMBER or not hasattr(vatnumber, 'check_vies'):
             return 'no_check'
         return 'check'
 
-    def _check(self, cursor, user, data, context=None):
+    def _check(self, data):
         party_obj = self.pool.get('party.party')
         res = {
             'parties_succeed': [],
             'parties_failed': [],
         }
-        parties = party_obj.browse(cursor, user, data['ids'], context=context)
+        parties = party_obj.browse(data['ids'])
         for party in parties:
             if not party.vat_code:
                 continue
@@ -333,9 +335,8 @@ class CheckVIES(Wizard):
                             or e.faultstring.find('MS_UNAVAILABLE') \
                             or e.faultstring.find('TIMEOUT') \
                             or e.faultstring.find('SERVER_BUSY'):
-                        self.raise_user_error(cursor, 'vies_unavailable',
-                                context=context)
-                raise e
+                        self.raise_user_error('vies_unavailable')
+                raise
         return res
 
 CheckVIES()
diff --git a/party.xml b/party.xml
index cb1405a..b050c72 100644
--- a/party.xml
+++ b/party.xml
@@ -9,6 +9,9 @@ this repository contains the full copyright notices and license terms. -->
         <record model="res.user" id="res.user_admin">
             <field name="groups" eval="[('add', ref('group_party_admin'))]"/>
         </record>
+        <record model="res.user" id="res.user_trigger">
+            <field name="groups" eval="[('add', ref('group_party_admin'))]"/>
+        </record>
 
         <menuitem name="Party Management" sequence="0" id="menu_party"
             icon="tryton-users"/>
diff --git a/tests/__init__.pyc b/tests/__init__.pyc
deleted file mode 100644
index 89751e2..0000000
Binary files a/tests/__init__.pyc and /dev/null differ
diff --git a/tests/test_party.py b/tests/test_party.py
index 4d145e9..35edb1d 100644
--- a/tests/test_party.py
+++ b/tests/test_party.py
@@ -1,7 +1,7 @@
 #!/usr/bin/env python
 #This file is part of Tryton.  The COPYRIGHT file at the top level of
 #this repository contains the full copyright notices and license terms.
-
+from __future__ import with_statement
 import sys, os
 DIR = os.path.abspath(os.path.normpath(os.path.join(__file__,
     '..', '..', '..', '..', '..', 'trytond')))
@@ -10,7 +10,8 @@ if os.path.isdir(DIR):
 
 import unittest
 import trytond.tests.test_tryton
-from trytond.tests.test_tryton import POOL, DB, USER, CONTEXT, test_view
+from trytond.tests.test_tryton import POOL, DB_NAME, USER, CONTEXT, test_view
+from trytond.transaction import Transaction
 
 
 class PartyTestCase(unittest.TestCase):
@@ -23,87 +24,86 @@ class PartyTestCase(unittest.TestCase):
         self.category = POOL.get('party.category')
         self.party = POOL.get('party.party')
         self.address = POOL.get('party.address')
-        self.cursor = DB.cursor()
-
-    def tearDown(self):
-        self.cursor.commit()
-        self.cursor.close()
 
     def test0005views(self):
         '''
         Test views.
         '''
-        self.assertRaises(Exception, test_view('party'))
+        test_view('party')
 
     def test0010category(self):
         '''
         Create category.
         '''
-        category1_id = self.category.create(self.cursor, USER, {
-            'name': 'Category 1',
-            }, CONTEXT)
-        self.assert_(category1_id)
+        with Transaction().start(DB_NAME, USER, CONTEXT) as transaction:
+            category1_id = self.category.create({
+                'name': 'Category 1',
+                })
+            self.assert_(category1_id)
+            transaction.cursor.commit()
 
     def test0020category_recursion(self):
         '''
         Test category recursion.
         '''
-        category1_id = self.category.search(self.cursor, USER, [
-            ('name', '=', 'Category 1'),
-            ], 0, 1, None, CONTEXT)[0]
-
-        category2_id = self.category.create(self.cursor, USER, {
-            'name': 'Category 2',
-            'parent': category1_id,
-            }, CONTEXT)
-        self.assert_(category2_id)
-
-        self.failUnlessRaises(Exception, self.category.write, self.cursor,
-                USER, category1_id, {
-                    'parent': category2_id,
-                }, CONTEXT)
+        with Transaction().start(DB_NAME, USER, CONTEXT) as transaction:
+            category1_id = self.category.search([
+                ('name', '=', 'Category 1'),
+                ], limit=1)[0]
+
+            category2_id = self.category.create({
+                'name': 'Category 2',
+                'parent': category1_id,
+                })
+            self.assert_(category2_id)
+
+            self.failUnlessRaises(Exception, self.category.write, 
+                    category1_id, {
+                        'parent': category2_id,
+                    })
 
     def test0030party(self):
         '''
         Create party.
         '''
-        party1_id = self.party.create(self.cursor, USER, {
-            'name': 'Party 1',
-            }, CONTEXT)
-        self.assert_(party1_id)
+        with Transaction().start(DB_NAME, USER, CONTEXT) as transaction:
+            party1_id = self.party.create({
+                'name': 'Party 1',
+                })
+            self.assert_(party1_id)
+            transaction.cursor.commit()
 
     def test0040party_code(self):
         '''
         Test party code constraint.
         '''
-        party1_id = self.party.search(self.cursor, USER, [], 0, 1, None,
-                CONTEXT)[0]
+        with Transaction().start(DB_NAME, USER, CONTEXT) as transaction:
+            party1_id = self.party.search([], limit=1)[0]
 
-        code = self.party.read(self.cursor, USER, party1_id, ['code'],
-                CONTEXT)['code']
+            code = self.party.read(party1_id, ['code'])['code']
 
-        party2_id = self.party.create(self.cursor, USER, {
-            'name': 'Party 2',
-            }, CONTEXT)
+            party2_id = self.party.create({
+                'name': 'Party 2',
+                })
 
-        self.failUnlessRaises(Exception, self.party.write, self.cursor, USER,
-                party2_id, {
-                    'code': code,
-                }, CONTEXT)
+            self.failUnlessRaises(Exception, self.party.write, 
+                    party2_id, {
+                        'code': code,
+                    })
 
     def test0050address(self):
         '''
         Create address.
         '''
-        party1_id = self.party.search(self.cursor, USER, [], 0, 1, None,
-                CONTEXT)[0]
-
-        address1_id = self.address.create(self.cursor, USER, {
-            'party': party1_id,
-            'street': 'St sample, 15',
-            'city': 'City',
-            }, CONTEXT)
-        self.assert_(party1_id)
+        with Transaction().start(DB_NAME, USER, CONTEXT) as transaction:
+            party1_id = self.party.search([], limit=1)[0]
+
+            address1_id = self.address.create({
+                'party': party1_id,
+                'street': 'St sample, 15',
+                'city': 'City',
+                })
+            self.assert_(party1_id)
 
 def suite():
     suite = trytond.tests.test_tryton.suite()
diff --git a/tests/test_party.pyc b/tests/test_party.pyc
deleted file mode 100644
index f18347f..0000000
Binary files a/tests/test_party.pyc and /dev/null differ
diff --git a/trytond_party.egg-info/PKG-INFO b/trytond_party.egg-info/PKG-INFO
index 2405e42..1c9f583 100644
--- a/trytond_party.egg-info/PKG-INFO
+++ b/trytond_party.egg-info/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 1.0
 Name: trytond-party
-Version: 1.6.0
+Version: 1.8.0
 Summary: Define parties, addresses and co.
 Home-page: http://www.tryton.org/
 Author: B2CK
 Author-email: info at b2ck.com
 License: GPL-3
-Download-URL: http://downloads.tryton.org/1.6/
+Download-URL: http://downloads.tryton.org/1.8/
 Description: UNKNOWN
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
diff --git a/trytond_party.egg-info/SOURCES.txt b/trytond_party.egg-info/SOURCES.txt
index 50bb666..e6cde5c 100644
--- a/trytond_party.egg-info/SOURCES.txt
+++ b/trytond_party.egg-info/SOURCES.txt
@@ -25,10 +25,6 @@ setup.py
 ./tests/__init__.py
 ./tests/test_party.py
 doc/index.rst
-tests/__init__.py
-tests/__init__.pyc
-tests/test_party.py
-tests/test_party.pyc
 trytond_party.egg-info/PKG-INFO
 trytond_party.egg-info/SOURCES.txt
 trytond_party.egg-info/dependency_links.txt
diff --git a/trytond_party.egg-info/requires.txt b/trytond_party.egg-info/requires.txt
index 16aff0b..95dfa23 100644
--- a/trytond_party.egg-info/requires.txt
+++ b/trytond_party.egg-info/requires.txt
@@ -1,5 +1,5 @@
-trytond_country >= 1.6, < 1.7
-trytond >= 1.6, < 1.7
+trytond_country >= 1.8, < 1.9
+trytond >= 1.8, < 1.9
 
 [VAT]
 vatnumber
\ No newline at end of file
commit 2548105b8444843d1eeb5ae88957481f70287c8a
Author: Daniel Baumann <daniel at debian.org>
Date:   Tue Nov 2 14:26:56 2010 +0100

    Switching to source format 3.0 (quilt).

diff --git a/debian/source/format b/debian/source/format
index d3827e7..163aaf8 100644
--- a/debian/source/format
+++ b/debian/source/format
@@ -1 +1 @@
-1.0
+3.0 (quilt)
commit b364ef4fdad5c93c662b49ed63dafba7b3527cce
Author: Daniel Baumann <daniel at debian.org>
Date:   Thu Sep 30 01:05:32 2010 +0200

    Updating to standards version 3.9.1.

diff --git a/debian/control b/debian/control
index c199d6f..063a305 100644
--- a/debian/control
+++ b/debian/control
@@ -7,7 +7,7 @@ Uploaders:
  Mathias Behrle <mathiasb at mbsolutions.selfip.biz>
 Dm-Upload-Allowed: yes
 Build-Depends: debhelper (>= 8), python, python-setuptools, python-support
-Standards-Version: 3.9.0
+Standards-Version: 3.9.1
 Homepage: http://www.tryton.org/
 Vcs-Browser: http://git.debian-maintainers.org/?p=tryton/tryton-modules-party.git
 Vcs-Git: git://git.debian-maintainers.org/git/tryton/tryton-modules-party.git
commit a45ac46fd17b2b5a16ed5669eb1bff0633a05f40
Author: Daniel Baumann <daniel at debian.org>
Date:   Thu Sep 30 01:04:05 2010 +0200

    Updating to debhelper version 8.

diff --git a/debian/compat b/debian/compat
index 7f8f011..45a4fb7 100644
--- a/debian/compat
+++ b/debian/compat
@@ -1 +1 @@
-7
+8
diff --git a/debian/control b/debian/control
index 6835a47..c199d6f 100644
--- a/debian/control
+++ b/debian/control
@@ -6,7 +6,7 @@ Uploaders:
  Daniel Baumann <daniel at debian.org>,
  Mathias Behrle <mathiasb at mbsolutions.selfip.biz>
 Dm-Upload-Allowed: yes
-Build-Depends: debhelper (>= 7), python, python-setuptools, python-support
+Build-Depends: debhelper (>= 8), python, python-setuptools, python-support
 Standards-Version: 3.9.0
 Homepage: http://www.tryton.org/
 Vcs-Browser: http://git.debian-maintainers.org/?p=tryton/tryton-modules-party.git
commit 952b7747658c5d0678b7dcb07d61cbdffbcaca86
Author: Daniel Baumann <daniel at debian.org>
Date:   Mon Jun 28 20:35:30 2010 +0200

    Updating standards version to 3.9.0.

diff --git a/debian/control b/debian/control
index 428ec73..6835a47 100644
--- a/debian/control
+++ b/debian/control
@@ -7,7 +7,7 @@ Uploaders:
  Mathias Behrle <mathiasb at mbsolutions.selfip.biz>
 Dm-Upload-Allowed: yes
 Build-Depends: debhelper (>= 7), python, python-setuptools, python-support
-Standards-Version: 3.8.4
+Standards-Version: 3.9.0
 Homepage: http://www.tryton.org/
 Vcs-Browser: http://git.debian-maintainers.org/?p=tryton/tryton-modules-party.git
 Vcs-Git: git://git.debian-maintainers.org/git/tryton/tryton-modules-party.git
commit cd2a31f1558f6902b8792fb5030b9b80250d865c
Author: Mathias Behrle <mathiasb at mbsolutions.selfip.biz>
Date:   Thu May 13 12:16:31 2010 +0200

    Releasing debian version 1.6.0-1.

diff --git a/debian/changelog b/debian/changelog
index fa4c7d5..6fa38e3 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,15 @@
+tryton-modules-party (1.6.0-1) unstable; urgency=low
+
+  [ Daniel Baumann ]
+  * Adding Dm-Upload-Allowed in control in preparation for Mathias.
+
+  [ Mathias Behrle ]
+  * Merging upstream version 1.6.0.
+  * Updating copyright.
+  * Updating depends.
+
+ -- Mathias Behrle <mathiasb at mbsolutions.selfip.biz>  Thu, 13 May 2010 12:16:13 +0200
+
 tryton-modules-party (1.4.1-2) unstable; urgency=low
 
   * Updating year in copyright file.
commit 396eddc45aab1d66f01b69688d5124c083c202ef
Author: Mathias Behrle <mathiasb at mbsolutions.selfip.biz>
Date:   Thu May 13 12:04:23 2010 +0200

    Updating depends.

diff --git a/debian/control b/debian/control
index b127732..428ec73 100644
--- a/debian/control
+++ b/debian/control
@@ -15,8 +15,8 @@ Vcs-Git: git://git.debian-maintainers.org/git/tryton/tryton-modules-party.git
 Package: tryton-modules-party
 Architecture: all
 Depends:
- ${misc:Depends}, ${python:Depends}, tryton-server (>= 1.4),
- tryton-modules-country (>= 1.4), python-pkg-resources
+ ${misc:Depends}, ${python:Depends}, tryton-server (>= 1.6),
+ tryton-modules-country (>= 1.6), python-pkg-resources
 Recommends: python-soappy, python-vatnumber
 XB-Python-Version: ${python:Versions}
 Description: Tryton Application Platform (Party Module)
commit 9f85fbc6c86f22f7812a41fbd544069839c5ae03
Author: Mathias Behrle <mathiasb at mbsolutions.selfip.biz>
Date:   Thu May 13 12:04:21 2010 +0200

    Updating copyright.

diff --git a/debian/copyright b/debian/copyright
index 381a610..10d1236 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -6,12 +6,12 @@ Maintainer-Homepage: http://tryton.debian-maintainers.org/
 Files: *
 Copyright:
  (C) 2004-2008 Tiny SPRL
- (C) 2008-2009 Cedric Krier
- (C) 2008-2009 Bertrand Chenal
- (C) 2008-2009 B2CK SPRL
- (C) 2008 Udo Spallek
- (C) 2008 Korbinian Preisler
- (C) 2008 virtual things
+ (C) 2008-2010 Cedric Krier
+ (C) 2008-2010 Bertrand Chenal
+ (C) 2008-2010 B2CK SPRL
+ (C) 2008-2010 Udo Spallek
+ (C) 2008-2010 Korbinian Preisler
+ (C) 2008-2010 virtual things
 License: GPL-3+
  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
commit 15e6c6817d75fad280590323d66850ccbf12ba76
Author: Mathias Behrle <mathiasb at mbsolutions.selfip.biz>
Date:   Thu May 13 11:29:13 2010 +0200

    Merging upstream version 1.6.0.

diff --git a/CHANGELOG b/CHANGELOG
index 9b227af..5286b81 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,8 @@
-Version 1.4.1 - 2009-11-24
+Version 1.6.0 - 2010-05-10
 * Bug fixes (see mercurial logs for details)
+* Don't allow empty vat_number if vat_country is set
+* Use model singleton to define which party sequence to use
+* Improve search_rec_name of category to take care of separator
 
 Version 1.4.0 - 2009-10-19
 * Bug fixes (see mercurial logs for details)
diff --git a/COPYRIGHT b/COPYRIGHT
index f65c1d2..cc0e0c8 100644
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -1,10 +1,10 @@
 Copyright (C) 2004-2008 Tiny SPRL.
-Copyright (C) 2008-2009 Cédric Krier.
-Copyright (C) 2008-2009 Bertrand Chenal.
-Copyright (C) 2008-2009 B2CK SPRL.
-Copyright (C) 2008 Udo Spallek.
-Copyright (C) 2008 Korbinian Preisler.
-Copyright (C) 2008 virtual things.
+Copyright (C) 2008-2010 Cédric Krier.
+Copyright (C) 2008-2010 Bertrand Chenal.
+Copyright (C) 2008-2010 B2CK SPRL.
+Copyright (C) 2008-2010 Udo Spallek.
+Copyright (C) 2008-2010 Korbinian Preisler.
+Copyright (C) 2008-2010 virtual things.
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
diff --git a/MANIFEST.in b/MANIFEST.in
index b2a140e..dcb2afa 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -7,5 +7,4 @@ include LICENSE
 include *.xml
 include *.odt
 include *.csv
-include tests/*
 include doc/*
diff --git a/PKG-INFO b/PKG-INFO
index b5350c7..f508e2c 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 1.0
 Name: trytond_party
-Version: 1.4.1
+Version: 1.6.0
 Summary: Define parties, addresses and co.
 Home-page: http://www.tryton.org/
 Author: B2CK
 Author-email: info at b2ck.com
 License: GPL-3
-Download-URL: http://downloads.tryton.org/1.4/
+Download-URL: http://downloads.tryton.org/1.6/
 Description: UNKNOWN
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
diff --git a/__init__.py b/__init__.py
index e4fd59e..d36f1c0 100644
--- a/__init__.py
+++ b/__init__.py
@@ -5,3 +5,4 @@ from category import *
 from party import *
 from address import *
 from contact_mechanism import *
+from configuration import *
diff --git a/__tryton__.py b/__tryton__.py
index e284a9b..7692d80 100644
--- a/__tryton__.py
+++ b/__tryton__.py
@@ -7,7 +7,7 @@
     'name_es_CO': 'Terceros',
     'name_es_ES': 'Terceros',
     'name_fr_FR': 'Tiers',
-    'version' : '1.4.1',
+    'version' : '1.6.0',
     'author' : 'B2CK',
     'email': 'info at b2ck.com',
     'website': 'http://www.tryton.org/',
@@ -26,6 +26,7 @@
         'category.xml',
         'address.xml',
         'contact_mechanism.xml',
+        'configuration.xml',
     ],
     'translation': [
         'de_DE.csv',
diff --git a/address.py b/address.py
index 65f995e..dbb178a 100644
--- a/address.py
+++ b/address.py
@@ -2,9 +2,10 @@
 #this repository contains the full copyright notices and license terms.
 'Address'
 from trytond.model import ModelView, ModelSQL, fields
+from trytond.pyson import Not, Bool, Eval, If, Greater
 
 STATES = {
-    'readonly': "active == False",
+    'readonly': Not(Bool(Eval('active'))),
 }
 
 
@@ -14,7 +15,8 @@ class Address(ModelSQL, ModelView):
     _description = __doc__
     party = fields.Many2One('party.party', 'Party', required=True,
             ondelete='CASCADE', select=1,  states={
-                'readonly': "(active == False) or (active_id > 0)",
+                'readonly': If(Not(Bool(Eval('active'))),
+                    True, Greater(Eval('active_id', 0), 0)),
             })
     name = fields.Char('Name', states=STATES)
     street = fields.Char('Street', states=STATES)
@@ -25,10 +27,12 @@ class Address(ModelSQL, ModelView):
     country = fields.Many2One('country.country', 'Country',
             states=STATES)
     subdivision = fields.Many2One("country.subdivision",
-            'Subdivision', domain=["('country', '=', country)"], states=STATES)
+            'Subdivision', domain=[('country', '=', Eval('country'))],
+            states=STATES)
     active = fields.Boolean('Active')
     sequence = fields.Integer("Sequence")
-    full_address = fields.Function('get_full_address', type='text')
+    full_address = fields.Function(fields.Text('Full Address'),
+            'get_full_address')
 
     def __init__(self):
         super(Address, self).__init__()
@@ -41,7 +45,7 @@ class Address(ModelSQL, ModelView):
     def default_active(self, cursor, user, context=None):
         return True
 
-    def get_full_address(self, cursor, user, ids, name, arg, context=None):
+    def get_full_address(self, cursor, user, ids, name, context=None):
         if not ids:
             return {}
         res = {}
@@ -77,7 +81,7 @@ class Address(ModelSQL, ModelView):
                     res[address.id] += address.country.name
         return res
 
-    def get_rec_name(self, cursor, user, ids, name, arg, context=None):
+    def get_rec_name(self, cursor, user, ids, name, context=None):
         if not ids:
             return {}
         res = {}
@@ -86,21 +90,15 @@ class Address(ModelSQL, ModelView):
                 address.party.rec_name, address.zip, address.city] if x)
         return res
 
-    def search_rec_name(self, cursor, user, name, args, context=None):
-        args2 = []
-        i = 0
-        while i < len(args):
-            ids = self.search(cursor, user, ['OR',
-                ('zip', args[i][1], args[i][2]),
-                ('city', args[i][1], args[i][2]),
-                ('name', args[i][1], args[i][2]),
-                ], context=context)
-            if ids:
-                args2.append(('id', 'in', ids))
-            else:
-                args2.append(('party', args[i][1], args[i][2]))
-            i += 1
-        return args2
+    def search_rec_name(self, cursor, user, name, clause, context=None):
+        ids = self.search(cursor, user, ['OR',
+            ('zip',) + clause[1:],
+            ('city',) + clause[1:],
+            ('name',) + clause[1:],
+            ], order=[], context=context)
+        if ids:
+            return [('id', 'in', ids)]
+        return [('party',) + clause[1:]]
 
     def write(self, cursor, user, ids, vals, context=None):
         if 'party' in vals:
diff --git a/category.py b/category.py
index 6006bc5..6338ad2 100644
--- a/category.py
+++ b/category.py
@@ -1,11 +1,14 @@
 #This file is part of Tryton.  The COPYRIGHT file at the top level of
 #this repository contains the full copyright notices and license terms.
 from trytond.model import ModelView, ModelSQL, fields
+from trytond.pyson import Not, Bool, Eval
 
 STATES = {
-    'readonly': "active == False",
+    'readonly': Not(Bool(Eval('active'))),
 }
 
+SEPARATOR = ' / '
+
 
 class Category(ModelSQL, ModelView):
     "Category"
@@ -20,18 +23,30 @@ class Category(ModelSQL, ModelView):
 
     def __init__(self):
         super(Category, self).__init__()
+        self._sql_constraints = [
+            ('name_parent_uniq', 'UNIQUE(name, parent)',
+                'The name of a party category must be unique by parent!'),
+        ]
         self._constraints += [
             ('check_recursion', 'recursive_categories'),
+            ('check_name', 'wrong_name'),
         ]
         self._error_messages.update({
             'recursive_categories': 'You can not create recursive categories!',
+            'wrong_name': 'You can not use "%s" in name field!' % SEPARATOR,
         })
         self._order.insert(1, ('name', 'ASC'))
 
     def default_active(self, cursor, user, context=None):
         return 1
 
-    def get_rec_name(self, cursor, user, ids, name, arg, context=None):
+    def check_name(self, cursor, user, ids):
+        for category in self.browse(cursor, user, ids):
+            if SEPARATOR in category.name:
+                return False
+        return True
+
+    def get_rec_name(self, cursor, user, ids, name, context=None):
         if not ids:
             return {}
         res = {}
@@ -39,11 +54,25 @@ class Category(ModelSQL, ModelView):
             if category.id in res:
                 return res[category.id]
             elif category.parent:
-                return _name(category.parent) + ' / ' + category.name
+                return _name(category.parent) + SEPARATOR + category.name
             else:
                 return category.name
         for category in self.browse(cursor, user, ids, context=context):
             res[category.id] = _name(category)
         return res
 
+    def search_rec_name(self, cursor, user, name, clause, context=None):
+        if isinstance(clause[2], basestring):
+            values = clause[2].split(SEPARATOR)
+            values.reverse()
+            domain = []
+            field = 'name'
+            for name in values:
+                domain.append((field, clause[1], name))
+                field = 'parent.' + field
+            ids = self.search(cursor, user, domain, order=[], context=context)
+            return [('id', 'in', ids)]
+        #TODO Handle list
+        return [('name',) + clause[1:]]
+
 Category()
diff --git a/category.xml b/category.xml
index 79a9553..a90751e 100644
--- a/category.xml
+++ b/category.xml
@@ -61,7 +61,7 @@ this repository contains the full copyright notices and license terms. -->
             <field name="act_window" ref="act_category_form"/>
         </record>
         <menuitem parent="menu_configuration"
-            action="act_category_form" id="menu_category_form"/>
+            action="act_category_form" id="menu_category_form" sequence="10"/>
         <record model="ir.action.act_window" id="act_category_form2">
             <field name="name">Categories</field>
             <field name="res_model">party.category</field>
diff --git a/configuration.py b/configuration.py
new file mode 100644
index 0000000..97e148d
--- /dev/null
+++ b/configuration.py
@@ -0,0 +1,18 @@
+#This file is part of Tryton.  The COPYRIGHT file at the top level of
+#this repository contains the full copyright notices and license terms.
+from trytond.model import ModelView, ModelSQL, ModelSingleton, fields
+from trytond.pyson import Eval
+
+
+class Configuration(ModelSingleton, ModelSQL, ModelView):
+    'Party Configuration'
+    _name = 'party.configuration'
+    _description = __doc__
+
+    party_sequence = fields.Property(fields.Many2One('ir.sequence',
+        'Party Sequence', domain=[
+            ('company', 'in', [Eval('company'), False]),
+            ('code', '=', 'party.party'),
+        ], required=True))
+
+Configuration()
diff --git a/configuration.xml b/configuration.xml
new file mode 100644
index 0000000..7fcb04d
--- /dev/null
+++ b/configuration.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton.  The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<tryton>
+    <data>
+        <record model="ir.ui.view" id="party_configuration_view_form">
+            <field name="model">party.configuration</field>
+            <field name="type">form</field>
+            <field name="arch" type="xml">
+                <![CDATA[
+                <form string="Party Configuration">
+                    <label name="party_sequence"/>
+                    <field name="party_sequence"/>
+                </form>
+                ]]>
+            </field>
+        </record>
+        <record model="ir.action.act_window" id="act_party_configuration_form">
+            <field name="name">Party Configuration</field>
+            <field name="res_model">party.configuration</field>
+            <field name="view_type">form</field>
+        </record>
+        <record model="ir.action.act_window.view"
+            id="act_party_configuration_view1">
+            <field name="sequence" eval="1"/>
+            <field name="view" ref="party_configuration_view_form"/>
+            <field name="act_window" ref="act_party_configuration_form"/>
+        </record>
+        <menuitem parent="menu_configuration"
+            action="act_party_configuration_form"
+            id="menu_party_configuration"
+            sequence="0" icon="tryton-list"/>
+
+        <record model="ir.property" id="property_party_sequence">
+            <field name="name">party_sequence</field>
+            <field name="field"
+                search="[('model.model', '=', 'party.configuration'), ('name', '=', 'party_sequence')]"/>
+            <field name="value" eval="'ir.sequence,' + str(ref('sequence_party'))"/>
+        </record>
+    </data>
+</tryton>
diff --git a/contact_mechanism.py b/contact_mechanism.py
index 264533f..61cae05 100644
--- a/contact_mechanism.py
+++ b/contact_mechanism.py
@@ -1,9 +1,10 @@
 #This file is part of Tryton.  The COPYRIGHT file at the top level of
 #this repository contains the full copyright notices and license terms.
 from trytond.model import ModelView, ModelSQL, fields
+from trytond.pyson import Not, Bool, Eval, Equal, In
 
 STATES = {
-    'readonly': "active == False",
+    'readonly': Not(Bool(Eval('active'))),
 }
 
 _TYPES = [
@@ -34,36 +35,36 @@ class ContactMechanism(ModelSQL, ModelView):
             ondelete='CASCADE', states=STATES, select=1)
     active = fields.Boolean('Active', select=1)
     sequence = fields.Integer('Sequence')
-    email = fields.Function('get_value', fnct_inv='set_value', type='char',
-            string="E-Mail", states={
-                'invisible': "type != 'email'",
-                'required': "type == 'email'",
-                'readonly': "active == False",
-            }, on_change=['email'], depends=['value', 'type', 'active'])
-    website = fields.Function('get_value', fnct_inv='set_value', type='char',
-            string="Website", states={
-                'invisible': "type != 'website'",
-                'required': "type == 'website'",
-                'readonly': "active == False",
-            }, on_change=['website'], depends=['value', 'type', 'active'])
-    skype = fields.Function('get_value', fnct_inv='set_value', type='char',
-            string="Skype", states={
-                'invisible': "type != 'skype'",
-                'required': "type == 'skype'",
-                'readonly': "active == False",
-            }, on_change=['skype'], depends=['value', 'type', 'active'])
-    sip = fields.Function('get_value', fnct_inv='set_value', type='char',
-            string="SIP", states={
-                'invisible': "type != 'sip'",
-                'required': "type == 'sip'",
-                'readonly': "active == False",
-            }, on_change=['sip'], depends=['value', 'type', 'active'])
-    other_value = fields.Function('get_value', fnct_inv='set_value',
-            type='char', string='Value', states={
-                'invisible': "type in ('email', 'website', 'skype', 'sip')",
-                'required': "type not in ('email', 'website')",
-                'readonly': "active == False",
-            }, on_change=['other_value'], depends=['value', 'type', 'active'])
+    email = fields.Function(fields.Char('E-Mail', states={
+        'invisible': Not(Equal(Eval('type'), 'email')),
+        'required': Equal(Eval('type'), 'email'),
+        'readonly': Not(Bool(Eval('active'))),
+        }, on_change=['email'], depends=['value', 'type', 'active']),
+        'get_value', setter='set_value')
+    website = fields.Function(fields.Char('Website', states={
+        'invisible': Not(Equal(Eval('type'), 'website')),
+        'required': Equal(Eval('type'), 'website'),
+        'readonly': Not(Bool(Eval('active'))),
+        }, on_change=['website'], depends=['value', 'type', 'active']),
+        'get_value', setter='set_value')
+    skype = fields.Function(fields.Char('Skype',states={
+        'invisible': Not(Equal(Eval('type'), 'skype')),
+        'required': Equal(Eval('type'), 'skype'),
+        'readonly': Not(Bool(Eval('active'))),
+        }, on_change=['skype'], depends=['value', 'type', 'active']),
+        'get_value', setter='set_value')
+    sip = fields.Function(fields.Char('SIP', states={
+        'invisible': Not(Equal(Eval('type'), 'sip')),
+        'required': Equal(Eval('type'), 'sip'),
+        'readonly': Not(Bool(Eval('active'))),
+        }, on_change=['sip'], depends=['value', 'type', 'active']),
+        'get_value', setter='set_value')
+    other_value = fields.Function(fields.Char('Value', states={
+        'invisible': In(Eval('type'), ['email', 'website', 'skype', 'sip']),
+        'required': Not(In(Eval('type'), ['email', 'website'])),
+        'readonly': Not(Bool(Eval('active'))),
+        }, on_change=['other_value'], depends=['value', 'type', 'active']),
+        'get_value', setter='set_value')
 
     def __init__(self):
         super(ContactMechanism, self).__init__()
@@ -80,7 +81,7 @@ class ContactMechanism(ModelSQL, ModelView):
     def default_active(self, cursor, user, context=None):
         return True
 
-    def get_value(self, cursor, user, ids, names, arg, context=None):
+    def get_value(self, cursor, user, ids, names, context=None):
         res = {}
         for name in names:
             res[name] = {}
@@ -89,8 +90,8 @@ class ContactMechanism(ModelSQL, ModelView):
                 res[name][mechanism.id] = mechanism.value
         return res
 
-    def set_value(self, cursor, user, obj_id, name, value, arg, context=None):
-        self.write(cursor, user, obj_id, {
+    def set_value(self, cursor, user, ids, name, value, context=None):
+        self.write(cursor, user, ids, {
             'value': value,
             }, context=context)
 
@@ -104,27 +105,27 @@ class ContactMechanism(ModelSQL, ModelView):
             'other_value': value,
         }
 
-    def on_change_value(self, cursor, user, ids, vals, context=None):
+    def on_change_value(self, cursor, user, vals, context=None):
         return self._change_value(cursor, user, vals.get('value'),
                 context=context)
 
-    def on_change_website(self, cursor, user, ids, vals, context=None):
+    def on_change_website(self, cursor, user, vals, context=None):
         return self._change_value(cursor, user, vals.get('website'),
                 context=context)
 
-    def on_change_email(self, cursor, user, ids, vals, context=None):
+    def on_change_email(self, cursor, user, vals, context=None):
         return self._change_value(cursor, user, vals.get('email'),
                 context=context)
 
-    def on_change_skype(self, cursor, user, ids, vals, context=None):
+    def on_change_skype(self, cursor, user, vals, context=None):
         return self._change_value(cursor, user, vals.get('skype'),
                 context=context)
 
-    def on_change_sip(self, cursor, user, ids, vals, context=None):
+    def on_change_sip(self, cursor, user, vals, context=None):
         return self._change_value(cursor, user, vals.get('sip'),
                 context=context)
 
-    def on_change_other_value(self, cursor, user, ids, vals, context=None):
+    def on_change_other_value(self, cursor, user, vals, context=None):
         return self._change_value(cursor, user, vals.get('other_value'),
                 context=context)
 
diff --git a/contact_mechanism.xml b/contact_mechanism.xml
index 12af36e..cbf2f6c 100644
--- a/contact_mechanism.xml
+++ b/contact_mechanism.xml
@@ -23,11 +23,9 @@ this repository contains the full copyright notices and license terms. -->
             <field name="type">form</field>
             <field name="arch" type="xml">
                 <![CDATA[
-                <form string="Contact Mechanism">
+                <form string="Contact Mechanism" col="6">
                     <label name="party"/>
-                    <field name="party"/>
-                    <label name="active"/>
-                    <field name="active"/>
+                    <field name="party" colspan="5"/>
                     <label name="type"/>
                     <field name="type"/>
                     <group col="2" colspan="2" id="value">
@@ -42,8 +40,14 @@ this repository contains the full copyright notices and license terms. -->
                         <label name="sip"/>
                         <field name="sip" widget="sip"/>
                     </group>
-                    <separator name="comment" colspan="4"/>
-                    <field name="comment" colspan="4"/>
+                    <group col="20" colspan="2" id="checkboxes">
+                        <label name="active"/>
+                        <field name="active" 
+                            xexpand="0" width="25"/>
+                        <!-- Add here some checkboxes ! -->
+                    </group>
+                    <separator name="comment" colspan="6"/>
+                    <field name="comment" colspan="6"/>
                 </form>
                 ]]>
             </field>
diff --git a/de_DE.csv b/de_DE.csv
index 9ae39ef..e1076c2 100644
--- a/de_DE.csv
+++ b/de_DE.csv
@@ -1,20 +1,23 @@
 type,name,res_id,src,value,fuzzy
 error,party.address,0,You can not modify the party of an address!,Die Partei einer Adresse kann nicht geändert werden!,0
+error,party.category,0,The name of a party category must be unique by parent!,Der Name einer Parteikategorie kann pro Ãœbergeordneter Partei nur einmal vergeben werden!,0
 error,party.category,0,You can not create recursive categories!,Kategorien dürfen nicht rekursiv sein,0
+error,party.category,0,"You can not use "" / "" in name field!","In dem Namensfeld kann "" / "" nicht verwendet werden!",0
 error,party.check_vies,0,"The VIES service is unavailable, try again later.","VIES Dienst nicht erreichbar, bitte versuchen Sie es später noch einmal!",0
 error,party.contact_mechanism,0,You can not modify the party of a contact mechanism!,Die Partei einer Kontaktmöglichkeit kann nicht geändert werden!,0
 error,party.party,0,Invalid VAT number!,Ungültige USt-ID-Nummer!,0
+error,party.party,0,The code of the party must be unique!,Der Code für eine Partei kann nur einmal vergeben werden!,0
 field,"party.address,active",0,Active,Aktiv,0
 field,"party.address,city",0,City,Stadt,0
 field,"party.address,country",0,Country,Staat,0
 field,"party.address,create_date",0,Creation date,Erstellungsdatum,0
 field,"party.address,create_uid",0,Creation user,Ersteller,0
-field,"party.address,full_address",0,,,0
+field,"party.address,full_address",0,Full Address,Vollständige Adresse,0
 field,"party.address,id",0,ID,ID,0
 field,"party.address,name",0,Name,Name,0
 field,"party.address,party",0,Party,Partei,0
 field,"party.address,rec_name",0,Name,Name,0
-field,"party.address,sequence",0,Sequence,Sequenz,0
+field,"party.address,sequence",0,Sequence,Reihenfolge,0
 field,"party.address,street",0,Street,Anschrift 1,0
 field,"party.address,streetbis",0,Street (bis),Anschrift 2,0
 field,"party.address,subdivision",0,Subdivision,Subnationale Einheit,0
@@ -33,13 +36,15 @@ field,"party.category,write_date",0,Last modification date,Zuletzt geändert am,
 field,"party.category,write_uid",0,Last modification by,Zuletzt geändert von,0
 field,"party.check_vies.check,parties_failed",0,Parties Failed,Parteien mit fehlgeschlagener Überprüfung,0
 field,"party.check_vies.check,parties_succeed",0,Parties Succeed,Parteien mit erfolgreicher Überprüfung,0
+field,"party.configuration,party_sequence",0,Party Sequence,Nummernkreis Partei,0
+field,"party.configuration,rec_name",0,Name,Name,0
 field,"party.contact_mechanism,active",0,Active,Aktiv,0
 field,"party.contact_mechanism,comment",0,Comment,Kommentar,0
 field,"party.contact_mechanism,email",0,E-Mail,E-Mail,0
 field,"party.contact_mechanism,other_value",0,Value,Wert,0
 field,"party.contact_mechanism,party",0,Party,Partei,0
 field,"party.contact_mechanism,rec_name",0,Name,Name,0
-field,"party.contact_mechanism,sequence",0,Sequence,Sequenz,0
+field,"party.contact_mechanism,sequence",0,Sequence,Reihenfolge,0
 field,"party.contact_mechanism,sip",0,SIP,SIP,0
 field,"party.contact_mechanism,skype",0,Skype,Skype,0
 field,"party.contact_mechanism,type",0,Type,Typ,0
@@ -55,7 +60,7 @@ field,"party.party,create_date",0,Creation date,Erstellungsdatum,0
 field,"party.party,create_uid",0,Creation user,Ersteller,0
 field,"party.party,email",0,E-Mail,E-Mail,0
 field,"party.party,fax",0,Fax,Fax,0
-field,"party.party,full_name",0,,,0
+field,"party.party,full_name",0,Full Name,Vollständiger Name,0
 field,"party.party,id",0,ID,ID,0
 field,"party.party,lang",0,Language,Sprache,0
 field,"party.party,mobile",0,Mobile,Mobiltelefon,0
@@ -83,6 +88,7 @@ model,"ir.action,name",report_label,Labels,Etiketten,0
 model,"ir.action,name",act_party_form,Parties,Parteien,0
 model,"ir.action,name",act_party_form2,Parties,Parteien,0
 model,"ir.action,name",act_party_by_category,Parties by Category,Parteien nach Kategorie,0
+model,"ir.action,name",act_party_configuration_form,Party Configuration,Einstellungen Partei,0
 model,"ir.sequence,name",sequence_party,Party,Partei,0
 model,"ir.sequence.type,name",sequence_type_party,Party,Partei,0
 model,"ir.ui.menu,name",menu_address_form,Addresses,Adressen,0
@@ -93,11 +99,13 @@ model,"ir.ui.menu,name",menu_address_form2,New Address,Neue Adresse,0
 model,"ir.ui.menu,name",menu_category_form2,New category,Neue Parteikategorie,0
 model,"ir.ui.menu,name",menu_party_form2,New Party,Neue Partei,0
 model,"ir.ui.menu,name",menu_party_form,Parties,Parteien,0
+model,"ir.ui.menu,name",menu_party_configuration,Party Configuration,Einstellungen Partei,0
 model,"ir.ui.menu,name",menu_party,Party Management,Parteien,0
 model,"party.address,name",0,Address,Adresse,0
 model,"party.category,name",0,Category,Kategorie,0
 model,"party.check_vies.check,name",0,Check VIES - Check,Überprüfung VIES - Durchführen,0
 model,"party.check_vies.no_check,name",0,Check VIES - No Check,Überprüfung VIES - Nicht durchführen,0
+model,"party.configuration,name",0,Party Configuration,Einstellungen Partei,0
 model,"party.contact_mechanism,name",0,Contact Mechanism,Kontaktmöglichkeit,0
 model,"party.party,name",0,Party,Partei,0
 model,"party.party-party.category,name",0,Party - Category,Partei - Parteikategorie,0
@@ -153,6 +161,7 @@ view,party.check_vies.check,0,Parties Succeed,Parteien mit erfolgreicher Ãœberpr
 view,party.check_vies.check,0,VAT Information Exchange System Results,Ergebnisse des Überprüfungssystems für USt-ID-Nummern (VIES),0
 view,party.check_vies.no_check,0,VAT Information Exchange System,Überprüfungssystem für USt-ID-Nummern (VIES),0
 view,party.check_vies.no_check,0,"You must have a recent version of ""vatnumber"" installed!","Es muss eine aktuelle Version des Python-Moduls ""vatnumber"" installiert sein!",0
+view,party.configuration,0,Party Configuration,Einstellungen Partei,0
 view,party.contact_mechanism,0,Contact Mechanism,Kontaktmöglichkeit,0
 view,party.contact_mechanism,0,Contact Mechanisms,Kontaktmöglichkeiten,0
 view,party.party,0,Account,Konten,0
@@ -160,6 +169,7 @@ view,party.party,0,Accounting,Buchhaltung,0
 view,party.party,0,_Accounting,_Buchhaltung,0
 view,party.party,0,Addresses,Adressen,0
 view,party.party,0,Categories,Kategorien,0
+view,party.party,0,Contact Mechanism,Kontaktmöglichkeit,0
 view,party.party,0,Contact Mechanisms,Kontaktmöglichkeiten,0
 view,party.party,0,General,Allgemein,0
 view,party.party,0,_General,_Allgemein,0
diff --git a/es_CO.csv b/es_CO.csv
index 97363b0..5986e01 100644
--- a/es_CO.csv
+++ b/es_CO.csv
@@ -1,9 +1,11 @@
 type,name,res_id,src,value,fuzzy
 error,party.address,0,You can not modify the party of an address!,No puede modificar el tercero de una dirección!,0
+error,party.category,0,The name of a party category must be unique by parent!,,0
 error,party.category,0,You can not create recursive categories!,No puede crear categorías recursivas!,0
+error,party.category,0,"You can not use "" / "" in name field!",,0
 error,party.check_vies,0,"The VIES service is unavailable, try again later.","El servicio VIES no está disponible, intente más tarde.",0
 error,party.contact_mechanism,0,You can not modify the party of a contact mechanism!,¡No puede modificar un tercero de un mecanismo de contacto!,0
-error,party.party,0,Invalid VAT number!,¡Número de IVA inválido!,0
+error,party.party,0,Invalid VAT number!,¡Número inválido!,0
 field,"party.address,active",0,Active,Activo,0
 field,"party.address,city",0,City,Ciudad,0
 field,"party.address,country",0,Country,País,0
@@ -23,6 +25,8 @@ field,"party.category,parent",0,Parent,Padre,0
 field,"party.category,rec_name",0,Name,Nombre,0
 field,"party.check_vies.check,parties_failed",0,Parties Failed,Los terceros fallaron,0
 field,"party.check_vies.check,parties_succeed",0,Parties Succeed,Terceros válidos,0
+field,"party.configuration,party_sequence",0,Party Reference Sequence,,0
+field,"party.configuration,rec_name",0,Name,Nombre de Contacto,1
 field,"party.contact_mechanism,active",0,Active,Activo,0
 field,"party.contact_mechanism,comment",0,Comment,Comentario,0
 field,"party.contact_mechanism,email",0,E-Mail,Correo electrónico,0
@@ -53,10 +57,10 @@ field,"party.party-party.category,rec_name",0,Name,Nombre,0
 field,"party.party,phone",0,Phone,Teléfono,0
 field,"party.party,rec_name",0,Name,Nombre,0
 field,"party.party,vat_code",0,VAT Code,Código de IVA,0
-field,"party.party,vat_country",0,VAT Country,IVA de país,0
-field,"party.party,vat_number",0,VAT Number,Nombre de IVA,0
+field,"party.party,vat_country",0,VAT Country,País,0
+field,"party.party,vat_number",0,VAT Number,Número,0
 field,"party.party,website",0,Website,Sitio Web,0
-help,"party.party,vat_country",0,Setting VAT country will enable validation of the VAT number.,Al especificar el IVA de país se habilitará la verificación del número de IVA.,0
+help,"party.party,vat_country",0,Setting VAT country will enable validation of the VAT number.,Al especificar el país se habilitará la verificación del NIT.,0
 help,"party.party,vat_number",0,Value Added Tax number,Número de Impuesto de Valor Agregado,0
 model,"ir.action,name",act_address_form,Addresses,Direcciones,0
 model,"ir.action,name",act_address_form2,Addresses,Direcciones,0
@@ -68,6 +72,7 @@ model,"ir.action,name",report_label,Labels,Etiquetas,0
 model,"ir.action,name",act_party_form,Parties,Terceros,0
 model,"ir.action,name",act_party_form2,Parties,Terceros,0
 model,"ir.action,name",act_party_by_category,Parties by Category,Terceros por Categoría,0
+model,"ir.action,name",act_party_configuration_form,Party Configuration,,0
 model,"ir.sequence,name",sequence_party,Party,Tercero,0
 model,"ir.sequence.type,name",sequence_type_party,Party,Tercero,0
 model,"ir.ui.menu,name",menu_address_form,Addresses,Direcciones,0
@@ -78,11 +83,13 @@ model,"ir.ui.menu,name",menu_address_form2,New Address,Nueva Dirección,0
 model,"ir.ui.menu,name",menu_category_form2,New category,Nueva Categoría,0
 model,"ir.ui.menu,name",menu_party_form2,New Party,Nuevo Tercero,0
 model,"ir.ui.menu,name",menu_party_form,Parties,Terceros,0
+model,"ir.ui.menu,name",menu_party_configuration,Party Configuration,,0
 model,"ir.ui.menu,name",menu_party,Party Management,Gestión de Terceros,0
 model,"party.address,name",0,Address,Dirección,0
 model,"party.category,name",0,Category,Categoría,0
 model,"party.check_vies.check,name",0,Check VIES - Check,Revisar VIES - Revisar,0
 model,"party.check_vies.no_check,name",0,Check VIES - No Check,Revisar VIES - NO revisar,0
+model,"party.configuration,name",0,party.configuration,,0
 model,"party.contact_mechanism,name",0,Contact Mechanism,Mecanismo de contacto,0
 model,"party.party,name",0,Party,Tercero,0
 model,"party.party-party.category,name",0,Party - Category,Tercero - Categoría,0
@@ -106,12 +113,14 @@ view,party.check_vies.check,0,Parties Succeed,Los terceros fueron válidos,0
 view,party.check_vies.check,0,VAT Information Exchange System Results,Resultado de Sistema de Información de intercambio IVA,0
 view,party.check_vies.no_check,0,VAT Information Exchange System,Sistema de Información de Intercambio IVA,0
 view,party.check_vies.no_check,0,"You must have a recent version of ""vatnumber"" installed!","Debe tener una versión reciente de ""vatnumber"" instalada!",0
+view,party.configuration,0,Party Configuration,,0
 view,party.contact_mechanism,0,Contact Mechanism,Mecanismo de contacto,0
 view,party.contact_mechanism,0,Contact Mechanisms,Mecanismos de contacto,0
 view,party.party,0,Account,Cuenta,0
 view,party.party,0,Accounting,Contabilidad,0
 view,party.party,0,Addresses,Direcciones,0
 view,party.party,0,Categories,Categorías,0
+view,party.party,0,Contact Mechanism,Mecanismo de contacto,0
 view,party.party,0,Contact Mechanisms,Mecanismos de contacto,0
 view,party.party,0,General,General,0
 view,party.party,0,_General,_General,0
diff --git a/fr_FR.csv b/fr_FR.csv
index 71900ce..cd59ab6 100644
--- a/fr_FR.csv
+++ b/fr_FR.csv
@@ -1,14 +1,16 @@
 type,name,res_id,src,value,fuzzy
 error,party.address,0,You can not modify the party of an address!,Vous ne pouvez pas modifier le tiers d'une addresse !,0
+error,party.category,0,The name of a party category must be unique by parent!,Le nom d'une catégorie de tiers doit être unique pour un même parent !,0
 error,party.category,0,You can not create recursive categories!,Vous ne pouvez pas créer des catégories récursives !,0
+error,party.category,0,"You can not use "" / "" in name field!","Vous ne pouvez pas utiliser "" / "" dans le champ Nom !",0
 error,party.check_vies,0,"The VIES service is unavailable, try again later.","Le service VIES n'est pas disponible, veuillez essayer plus tard.",0
 error,party.contact_mechanism,0,You can not modify the party of a contact mechanism!,Vous ne pouvez pas modifiez le tiers d'un moyen de contact.,0
 error,party.party,0,Invalid VAT number!,Numéro TVA non valide !,0
-error,party.party,0,The code of the party must be unique!,Le code tu tiers doit être unique,0
+error,party.party,0,The code of the party must be unique!,Le code du tiers doit être unique !,0
 field,"party.address,active",0,Active,Actif,0
 field,"party.address,city",0,City,Ville,0
 field,"party.address,country",0,Country,Pays,0
-field,"party.address,full_address",0,,,0
+field,"party.address,full_address",0,Full Address,Adresse complète,0
 field,"party.address,name",0,Name,Nom,0
 field,"party.address,party",0,Party,Tiers,0
 field,"party.address,rec_name",0,Name,Nom,0
@@ -24,6 +26,8 @@ field,"party.category,parent",0,Parent,Parent,0
 field,"party.category,rec_name",0,Name,Nom,0
 field,"party.check_vies.check,parties_failed",0,Parties Failed,Tiers non validés,0
 field,"party.check_vies.check,parties_succeed",0,Parties Succeed,Tiers validés,0
+field,"party.configuration,party_sequence",0,Party Sequence,Séquence des tiers,0
+field,"party.configuration,rec_name",0,Name,Nom,0
 field,"party.contact_mechanism,active",0,Active,Actif,0
 field,"party.contact_mechanism,comment",0,Comment,Commentaire,0
 field,"party.contact_mechanism,email",0,E-Mail,E-mail,0
@@ -44,7 +48,7 @@ field,"party.party,code_length",0,Code Length,Longueur du code,0
 field,"party.party,contact_mechanisms",0,Contact Mechanisms,Moyens de contact,0
 field,"party.party,email",0,E-Mail,E-Mail,0
 field,"party.party,fax",0,Fax,Fax,0
-field,"party.party,full_name",0,,,0
+field,"party.party,full_name",0,Full Name,Nom complet,0
 field,"party.party,lang",0,Language,Langue,0
 field,"party.party,mobile",0,Mobile,Mobile,0
 field,"party.party,name",0,Name,Nom,0
@@ -69,6 +73,7 @@ model,"ir.action,name",report_label,Labels,Étiquettes,0
 model,"ir.action,name",act_party_form,Parties,Tiers,0
 model,"ir.action,name",act_party_form2,Parties,Tiers,0
 model,"ir.action,name",act_party_by_category,Parties by Category,Tiers par catégorie,0
+model,"ir.action,name",act_party_configuration_form,Party Configuration,Configuration des relations,0
 model,"ir.sequence,name",sequence_party,Party,Tiers,0
 model,"ir.sequence.type,name",sequence_type_party,Party,Tiers,0
 model,"ir.ui.menu,name",menu_address_form,Addresses,Adresses,0
@@ -79,14 +84,16 @@ model,"ir.ui.menu,name",menu_address_form2,New Address,Nouvelle adresse,0
 model,"ir.ui.menu,name",menu_category_form2,New category,Nouvelle catégorie,0
 model,"ir.ui.menu,name",menu_party_form2,New Party,Nouveau tiers,0
 model,"ir.ui.menu,name",menu_party_form,Parties,Tiers,0
+model,"ir.ui.menu,name",menu_party_configuration,Party Configuration,Configuration des relations,0
 model,"ir.ui.menu,name",menu_party,Party Management,Gestion des relations,0
 model,"party.address,name",0,Address,Adresse,0
 model,"party.category,name",0,Category,Catégorie,0
 model,"party.check_vies.check,name",0,Check VIES - Check,Validation VIES - Validé,0
 model,"party.check_vies.no_check,name",0,Check VIES - No Check,Validation VIES - Non validé,0
+model,"party.configuration,name",0,party.configuration,,0
 model,"party.contact_mechanism,name",0,Contact Mechanism,Moyen de contact,0
 model,"party.party,name",0,Party,Tiers,0
-model,"party.party-party.category,name",0,Party - Category,Tier - Catégorie,0
+model,"party.party-party.category,name",0,Party - Category,Tiers - Catégorie,0
 model,"res.group,name",group_party_admin,Party Administration,Administration des tiers,0
 selection,"party.contact_mechanism,type",0,E-Mail,E-Mail,0
 selection,"party.contact_mechanism,type",0,Fax,Fax,0
@@ -107,6 +114,7 @@ view,party.check_vies.check,0,Parties Succeed,Tiers validés,0
 view,party.check_vies.check,0,VAT Information Exchange System Results,Système d'échange d'information TVA - Résultats,0
 view,party.check_vies.no_check,0,VAT Information Exchange System,Système d'échange d'information TVA,0
 view,party.check_vies.no_check,0,"You must have a recent version of ""vatnumber"" installed!","Vous devez avoir une version récente de ""vatnumber"" installée !",0
+view,party.configuration,0,Party Configuration,Configuration des relations,0
 view,party.contact_mechanism,0,Contact Mechanism,Moyen de contact,0
 view,party.contact_mechanism,0,Contact Mechanisms,Moyens de contact,0
 view,party.party,0,Accounting,Comptabilité,0
diff --git a/party.py b/party.py
index 634fae0..58ac835 100644
--- a/party.py
+++ b/party.py
@@ -2,6 +2,7 @@
 #this repository contains the full copyright notices and license terms.
 from trytond.model import ModelView, ModelSQL, fields
 from trytond.wizard import Wizard
+from trytond.pyson import Not, Bool, Eval
 import logging
 
 HAS_VATNUMBER = False
@@ -16,7 +17,7 @@ except ImportError:
             'Unable to import vatnumber. VAT number validation disabled.')
 
 STATES = {
-    'readonly': "active == False",
+    'readonly': Not(Bool(Eval('active'))),
 }
 
 
@@ -33,12 +34,16 @@ class Party(ModelSQL, ModelView):
     code_length = fields.Integer('Code Length', select=1, readonly=True)
     lang = fields.Many2One("ir.lang", 'Language', states=STATES)
     vat_number = fields.Char('VAT Number', help="Value Added Tax number",
-            states=STATES)
+            states={
+                'readonly': Not(Bool(Eval('active'))),
+                'required': Bool(Eval('vat_country')),
+            })
     vat_country = fields.Selection(VAT_COUNTRIES, 'VAT Country', states=STATES,
         help="Setting VAT country will enable validation of the VAT number.",
         translate=False)
-    vat_code = fields.Function('get_vat_code', type='char', string="VAT Code",
-            fnct_search='search_vat_code')
+    vat_code = fields.Function(fields.Char('VAT Code',
+        on_change_with=['vat_number', 'vat_country']), 'get_vat_code',
+        searcher='search_vat_code')
     addresses = fields.One2Many('party.address', 'party',
            'Addresses', states=STATES)
     contact_mechanisms = fields.One2Many('party.contact_mechanism', 'party',
@@ -46,17 +51,12 @@ class Party(ModelSQL, ModelView):
     categories = fields.Many2Many('party.party-party.category',
             'party', 'category', 'Categories', states=STATES)
     active = fields.Boolean('Active', select=1)
-    full_name = fields.Function('get_full_name', type='char')
-    phone = fields.Function('get_mechanism', arg='phone', type='char',
-            string='Phone')
-    mobile = fields.Function('get_mechanism', arg='mobile', type='char',
-            string='Mobile')
-    fax = fields.Function('get_mechanism', arg='fax', type='char',
-            string='Fax')
-    email = fields.Function('get_mechanism', arg='email', type='char',
-            string='E-Mail')
-    website = fields.Function('get_mechanism', arg='website', type='char',
-            string='Website')
+    full_name = fields.Function(fields.Char('Full Name'), 'get_full_name')
+    phone = fields.Function(fields.Char('Phone'), 'get_mechanism')
+    mobile = fields.Function(fields.Char('Mobile'), 'get_mechanism')
+    fax = fields.Function(fields.Char('Fax'), 'get_mechanism')
+    email = fields.Function(fields.Char('E-Mail'), 'get_mechanism')
+    website = fields.Function(fields.Char('Website'), 'get_mechanism')
 
     def __init__(self):
         super(Party, self).__init__()
@@ -80,7 +80,10 @@ class Party(ModelSQL, ModelView):
             context = {}
         return context.get('categories', [])
 
-    def get_vat_code(self, cursor, user, ids, name, arg, context=None):
+    def on_change_with_vat_code(self, cursor, user, vals, context=None):
+        return (vals.get('vat_country') or '') + (vals.get('vat_number') or '')
+
+    def get_vat_code(self, cursor, user, ids, name, context=None):
         if not ids:
             return []
         res = {}
@@ -88,23 +91,20 @@ class Party(ModelSQL, ModelView):
             res[party.id] = (party.vat_country or '') + (party.vat_number or '')
         return res
 
-    def search_vat_code(self, cursor, user, name, args, context=None):
-        args2 = []
-        i = 0
-        while i < len(args):
-            value = args[i][2]
-            for country, _ in VAT_COUNTRIES:
-                if isinstance(value, basestring) \
-                        and country \
-                        and value.upper().startswith(country):
-                    args2.append(('vat_country', '=', country))
-                    value = value[len(country):]
-                    break
-            args2.append(('vat_number', args[i][1], value))
-            i += 1
-        return args2
+    def search_vat_code(self, cursor, user, name, clause, context=None):
+        res = []
+        value = clause[2]
+        for country, _ in VAT_COUNTRIES:
+            if isinstance(value, basestring) \
+                    and country \
+                    and value.upper().startswith(country):
+                res.append(('vat_country', '=', country))
+                value = value[len(country):]
+                break
+        res.append(('vat_number', clause[1], value))
+        return res
 
-    def get_full_name(self, cursor, user, ids, name, arg, context=None):
+    def get_full_name(self, cursor, user, ids, name, context=None):
         if not ids:
             return []
         res = {}
@@ -112,23 +112,28 @@ class Party(ModelSQL, ModelView):
             res[party.id] = party.name
         return res
 
-    def get_mechanism(self, cursor, user, ids, name, arg, context=None):
+    def get_mechanism(self, cursor, user, ids, name, context=None):
         if not ids:
             return []
         res = {}
         for party in self.browse(cursor, user, ids, context=context):
             res[party.id] = ''
             for mechanism in party.contact_mechanisms:
-                if mechanism.type == arg:
+                if mechanism.type == name:
                     res[party.id] = mechanism.value
                     break
         return res
 
     def create(self, cursor, user, values, context=None):
+        sequence_obj = self.pool.get('ir.sequence')
+        config_obj = self.pool.get('party.configuration')
+
         values = values.copy()
         if not values.get('code'):
-            values['code'] = self.pool.get('ir.sequence').get(
-                    cursor, user, 'party.party', context=context)
+            config = config_obj.browse(cursor, user, 1, context=context)
+            values['code'] = sequence_obj.get_id(cursor, user,
+                config.party_sequence.id, context=context)
+
         values['code_length'] = len(values['code'])
         return super(Party, self).create(cursor, user, values, context=context)
 
@@ -165,18 +170,14 @@ class Party(ModelSQL, ModelView):
             return new_ids[0]
         return new_ids
 
-    def search_rec_name(self, cursor, user, name, args, context=None):
-        args2 = []
-        i = 0
-        while i < len(args):
-            ids = self.search(cursor, user, [('code', args[i][1], args[i][2])],
-                    context=context)
-            if ids:
-                args2.append(('id', 'in', ids))
-            else:
-                args2.append(('name', args[i][1], args[i][2]))
-            i += 1
-        return args2
+    def search_rec_name(self, cursor, user, name, clause, context=None):
+        ids = self.search(cursor, user, [('code',) + clause[1:]],
+                order=[], context=context)
+        if ids:
+            ids += self.search(cursor, user, [('name',) + clause[1:]],
+                    order=[], context=context)
+            return [('id', 'in', ids)]
+        return [('name',) + clause[1:]]
 
     def address_get(self, cursor, user, party_id, type=None, context=None):
         """
@@ -208,7 +209,7 @@ class Party(ModelSQL, ModelView):
         for party in self.browse(cursor, user, ids):
             vat_number = party.vat_number
 
-            if not (vat_number and party.vat_country):
+            if not party.vat_country:
                 continue
 
             if not getattr(vatnumber, 'check_vat_' + \
@@ -254,11 +255,11 @@ class CheckVIESCheck(ModelView):
     _description = __doc__
     parties_succeed = fields.Many2Many('party.party', None, None,
             'Parties Succeed', readonly=True, states={
-                'invisible': "not bool(parties_succeed)",
+                'invisible': Not(Bool(Eval('parties_succeed'))),
                 })
     parties_failed = fields.Many2Many('party.party', None, None,
             'Parties Failed', readonly=True, states={
-                'invisible': "not bool(parties_failed)",
+                'invisible': Not(Bool(Eval('parties_failed'))),
                 })
 
 CheckVIESCheck()
diff --git a/party.xml b/party.xml
index 5b3d2e2..cb1405a 100644
--- a/party.xml
+++ b/party.xml
@@ -128,8 +128,8 @@ this repository contains the full copyright notices and license terms. -->
             <field name="name">Parties by Category</field>
             <field name="res_model">party.party</field>
             <field name="view_type">form</field>
-            <field name="context">{'categories': [active_id]}</field>
-            <field name="domain">[('categories', 'child_of', [active_id], 'parent')]</field>
+            <field name="context">{'categories': [Eval('active_id')]}</field>
+            <field name="domain">[('categories', 'child_of', [Eval('active_id')], 'parent')]</field>
         </record>
         <record model="ir.action.keyword" id="act_party_by_category_keyword1">
             <field name="keyword">tree_open</field>
@@ -151,6 +151,8 @@ this repository contains the full copyright notices and license terms. -->
         <record model="ir.sequence.type" id="sequence_type_party">
             <field name="name">Party</field>
             <field name="code">party.party</field>
+            <field name="groups"
+                eval="[('add', ref('res.group_admin')), ('add', ref('group_party_admin'))]"/>
         </record>
         <record model="ir.sequence" id="sequence_party">
             <field name="name">Party</field>
diff --git a/setup.py b/setup.py
index 8794138..5f9e659 100644
--- a/setup.py
+++ b/setup.py
@@ -2,19 +2,22 @@
 #This file is part of Tryton.  The COPYRIGHT file at the top level of
 #this repository contains the full copyright notices and license terms.
 
-from setuptools import setup, find_packages
+from setuptools import setup
 import re
 
-info = eval(file('__tryton__.py').read())
+info = eval(open('__tryton__.py').read())
+major_version, minor_version, _ = info.get('version', '0.0.1').split('.', 2)
+major_version = int(major_version)
+minor_version = int(minor_version)
 
 requires = []
 for dep in info.get('depends', []):
     if not re.match(r'(ir|res|workflow|webdav)(\W|$)', dep):
-        requires.append('trytond_' + dep)
-
-major_version, minor_version, _ = info.get('version', '0.0.1').split('.', 2)
-requires.append('trytond >= %s.%s' % (major_version, minor_version))
-requires.append('trytond < %s.%s' % (major_version, int(minor_version) + 1))
+        requires.append('trytond_%s >= %s.%s, < %s.%s' %
+                (dep, major_version, minor_version, major_version,
+                    minor_version + 1))
+requires.append('trytond >= %s.%s, < %s.%s' %
+        (major_version, minor_version, major_version, minor_version + 1))
 
 setup(name='trytond_party',
     version=info.get('version', '0.0.1'),
@@ -27,6 +30,7 @@ setup(name='trytond_party',
     package_dir={'trytond.modules.party': '.'},
     packages=[
         'trytond.modules.party',
+        'trytond.modules.party.tests',
     ],
     package_data={
         'trytond.modules.party': info.get('xml', []) \
@@ -59,4 +63,6 @@ setup(name='trytond_party',
     [trytond.modules]
     party = trytond.modules.party
     """,
+    test_suite='tests',
+    test_loader='trytond.test_loader:Loader',
 )
diff --git a/tests/__init__.py b/tests/__init__.py
index bc87a4f..1c2ce41 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -1,4 +1,4 @@
 #This file is part of Tryton.  The COPYRIGHT file at the top level of
 #this repository contains the full copyright notices and license terms.
 
-from test_party import *
+from test_party import suite
diff --git a/tests/__init__.pyc b/tests/__init__.pyc
new file mode 100644
index 0000000..89751e2
Binary files /dev/null and b/tests/__init__.pyc differ
diff --git a/tests/test_party.py b/tests/test_party.py
index f0db791..4d145e9 100644
--- a/tests/test_party.py
+++ b/tests/test_party.py
@@ -10,7 +10,7 @@ if os.path.isdir(DIR):
 
 import unittest
 import trytond.tests.test_tryton
-from trytond.tests.test_tryton import RPCProxy, CONTEXT, SOCK, test_view
+from trytond.tests.test_tryton import POOL, DB, USER, CONTEXT, test_view
 
 
 class PartyTestCase(unittest.TestCase):
@@ -20,10 +20,14 @@ class PartyTestCase(unittest.TestCase):
 
     def setUp(self):
         trytond.tests.test_tryton.install_module('party')
-        self.category = RPCProxy('party.category')
-        self.party = RPCProxy('party.party')
-        self.address = RPCProxy('party.address')
-        self.country = RPCProxy('country.country')
+        self.category = POOL.get('party.category')
+        self.party = POOL.get('party.party')
+        self.address = POOL.get('party.address')
+        self.cursor = DB.cursor()
+
+    def tearDown(self):
+        self.cursor.commit()
+        self.cursor.close()
 
     def test0005views(self):
         '''
@@ -35,7 +39,7 @@ class PartyTestCase(unittest.TestCase):
         '''
         Create category.
         '''
-        category1_id = self.category.create({
+        category1_id = self.category.create(self.cursor, USER, {
             'name': 'Category 1',
             }, CONTEXT)
         self.assert_(category1_id)
@@ -44,18 +48,18 @@ class PartyTestCase(unittest.TestCase):
         '''
         Test category recursion.
         '''
-        category1_id = self.category.search([
+        category1_id = self.category.search(self.cursor, USER, [
             ('name', '=', 'Category 1'),
             ], 0, 1, None, CONTEXT)[0]
 
-        category2_id = self.category.create({
+        category2_id = self.category.create(self.cursor, USER, {
             'name': 'Category 2',
             'parent': category1_id,
             }, CONTEXT)
         self.assert_(category2_id)
 
-        self.failUnlessRaises(Exception, self.category.write,
-                category1_id, {
+        self.failUnlessRaises(Exception, self.category.write, self.cursor,
+                USER, category1_id, {
                     'parent': category2_id,
                 }, CONTEXT)
 
@@ -63,7 +67,7 @@ class PartyTestCase(unittest.TestCase):
         '''
         Create party.
         '''
-        party1_id = self.party.create({
+        party1_id = self.party.create(self.cursor, USER, {
             'name': 'Party 1',
             }, CONTEXT)
         self.assert_(party1_id)
@@ -72,41 +76,39 @@ class PartyTestCase(unittest.TestCase):
         '''
         Test party code constraint.
         '''
-        party1_id = self.party.search([], 0, 1, None, CONTEXT)[0]
+        party1_id = self.party.search(self.cursor, USER, [], 0, 1, None,
+                CONTEXT)[0]
 
-        code = self.party.read(party1_id, ['code'], CONTEXT)['code']
+        code = self.party.read(self.cursor, USER, party1_id, ['code'],
+                CONTEXT)['code']
 
-        party2_id = self.party.create({
+        party2_id = self.party.create(self.cursor, USER, {
             'name': 'Party 2',
             }, CONTEXT)
 
-        self.failUnlessRaises(Exception, self.party.write, party2_id, {
-            'code': code,
-            }, CONTEXT)
+        self.failUnlessRaises(Exception, self.party.write, self.cursor, USER,
+                party2_id, {
+                    'code': code,
+                }, CONTEXT)
 
     def test0050address(self):
         '''
         Create address.
         '''
-        party1_id = self.party.search([], 0, 1, None, CONTEXT)[0]
-        belgium_id = self.country.search([
-            ('code', '=', 'BE'),
-            ], 0, 1, None, CONTEXT)[0]
+        party1_id = self.party.search(self.cursor, USER, [], 0, 1, None,
+                CONTEXT)[0]
 
-        address1_id = self.address.create({
+        address1_id = self.address.create(self.cursor, USER, {
             'party': party1_id,
             'street': 'St sample, 15',
             'city': 'City',
-            'country': belgium_id,
             }, CONTEXT)
         self.assert_(party1_id)
 
 def suite():
-    return unittest.TestLoader().loadTestsFromTestCase(PartyTestCase)
+    suite = trytond.tests.test_tryton.suite()
+    suite.addTests(unittest.TestLoader().loadTestsFromTestCase(PartyTestCase))
+    return suite
 
 if __name__ == '__main__':
-    suiteTrytond = trytond.tests.test_tryton.suite()
-    suiteParty = suite()
-    alltests = unittest.TestSuite([suiteTrytond, suiteParty])
-    unittest.TextTestRunner(verbosity=2).run(alltests)
-    SOCK.disconnect()
+    unittest.TextTestRunner(verbosity=2).run(suite())
diff --git a/tests/test_party.pyc b/tests/test_party.pyc
new file mode 100644
index 0000000..f18347f
Binary files /dev/null and b/tests/test_party.pyc differ
diff --git a/trytond_party.egg-info/PKG-INFO b/trytond_party.egg-info/PKG-INFO
index 288d824..2405e42 100644
--- a/trytond_party.egg-info/PKG-INFO
+++ b/trytond_party.egg-info/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 1.0
 Name: trytond-party
-Version: 1.4.1
+Version: 1.6.0
 Summary: Define parties, addresses and co.
 Home-page: http://www.tryton.org/
 Author: B2CK
 Author-email: info at b2ck.com
 License: GPL-3
-Download-URL: http://downloads.tryton.org/1.4/
+Download-URL: http://downloads.tryton.org/1.6/
 Description: UNKNOWN
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
diff --git a/trytond_party.egg-info/SOURCES.txt b/trytond_party.egg-info/SOURCES.txt
index 2a22242..50bb666 100644
--- a/trytond_party.egg-info/SOURCES.txt
+++ b/trytond_party.egg-info/SOURCES.txt
@@ -6,6 +6,7 @@ MANIFEST.in
 README
 address.xml
 category.xml
+configuration.xml
 contact_mechanism.xml
 de_DE.csv
 es_CO.csv
@@ -18,11 +19,16 @@ setup.py
 ./__tryton__.py
 ./address.py
 ./category.py
+./configuration.py
 ./contact_mechanism.py
 ./party.py
+./tests/__init__.py
+./tests/test_party.py
 doc/index.rst
 tests/__init__.py
+tests/__init__.pyc
 tests/test_party.py
+tests/test_party.pyc
 trytond_party.egg-info/PKG-INFO
 trytond_party.egg-info/SOURCES.txt
 trytond_party.egg-info/dependency_links.txt
diff --git a/trytond_party.egg-info/requires.txt b/trytond_party.egg-info/requires.txt
index fba03d5..16aff0b 100644
--- a/trytond_party.egg-info/requires.txt
+++ b/trytond_party.egg-info/requires.txt
@@ -1,6 +1,5 @@
-trytond_country
-trytond >= 1.4
-trytond < 1.5
+trytond_country >= 1.6, < 1.7
+trytond >= 1.6, < 1.7
 
 [VAT]
 vatnumber
\ No newline at end of file
commit a596515d9d0acdd7f785dc0b40c44a0bfa0e149b
Author: Daniel Baumann <daniel at debian.org>
Date:   Fri Apr 9 14:31:33 2010 +0200

    Adding Dm-Upload-Allowed in control in preparation for Mathias.

diff --git a/debian/control b/debian/control
index 13d6d1f..b127732 100644
--- a/debian/control
+++ b/debian/control
@@ -5,6 +5,7 @@ Maintainer: Debian Tryton Maintainers <tryton at lists.debian-maintainers.org>
 Uploaders:
  Daniel Baumann <daniel at debian.org>,
  Mathias Behrle <mathiasb at mbsolutions.selfip.biz>
+Dm-Upload-Allowed: yes
 Build-Depends: debhelper (>= 7), python, python-setuptools, python-support
 Standards-Version: 3.8.4
 Homepage: http://www.tryton.org/
commit ee3c1188bb18c963bf69ba2b0297d85216a7c641
Author: Daniel Baumann <daniel at debian.org>
Date:   Sat Feb 20 10:37:47 2010 +0100

    Releasing debian version 1.4.1-2.

diff --git a/debian/changelog b/debian/changelog
index 7bb6b3e..fa4c7d5 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+tryton-modules-party (1.4.1-2) unstable; urgency=low
+
+  * Updating year in copyright file.
+  * Removing unneeded python-all-dev from build-depends.
+  * Updating to standards 3.8.4.
+
+ -- Daniel Baumann <daniel at debian.org>  Sat, 20 Feb 2010 10:37:42 +0100
+
 tryton-modules-party (1.4.1-1) unstable; urgency=low
 
   * Making depends versioned for tryton 1.4.
commit 28f40223e4f90a51871381c22696e105d3006e7f
Author: Daniel Baumann <daniel at debian.org>
Date:   Thu Jan 28 07:53:21 2010 +0100

    Updating to standards 3.8.4.

diff --git a/debian/control b/debian/control
index ab1f665..13d6d1f 100644
--- a/debian/control
+++ b/debian/control
@@ -6,7 +6,7 @@ Uploaders:
  Daniel Baumann <daniel at debian.org>,
  Mathias Behrle <mathiasb at mbsolutions.selfip.biz>
 Build-Depends: debhelper (>= 7), python, python-setuptools, python-support
-Standards-Version: 3.8.3
+Standards-Version: 3.8.4
 Homepage: http://www.tryton.org/
 Vcs-Browser: http://git.debian-maintainers.org/?p=tryton/tryton-modules-party.git
 Vcs-Git: git://git.debian-maintainers.org/git/tryton/tryton-modules-party.git
commit b9b939d24fb1c62f8ebc9ef84226f8b8724b83fc
Author: Daniel Baumann <daniel at debian.org>
Date:   Mon Jan 25 10:12:28 2010 +0100

    Removing unneeded python-all-dev from build-depends.

diff --git a/debian/control b/debian/control
index 77b65ea..ab1f665 100644
--- a/debian/control
+++ b/debian/control
@@ -5,8 +5,7 @@ Maintainer: Debian Tryton Maintainers <tryton at lists.debian-maintainers.org>
 Uploaders:
  Daniel Baumann <daniel at debian.org>,
  Mathias Behrle <mathiasb at mbsolutions.selfip.biz>
-Build-Depends:
- debhelper (>= 7), python, python-all-dev, python-setuptools, python-support
+Build-Depends: debhelper (>= 7), python, python-setuptools, python-support
 Standards-Version: 3.8.3
 Homepage: http://www.tryton.org/
 Vcs-Browser: http://git.debian-maintainers.org/?p=tryton/tryton-modules-party.git
commit 9ecd4b603270ae949404820dff194aa57f165d13
Author: Daniel Baumann <daniel at debian.org>
Date:   Sat Jan 2 11:35:23 2010 +0100

    Updating year in copyright file.

diff --git a/debian/copyright b/debian/copyright
index 9d827a8..381a610 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -30,7 +30,7 @@ License: GPL-3+
  can be found in /usr/share/common-licenses/GPL-3 file.
 
 Files: debian/*
-Copyright: (C) 2009 Daniel Baumann <daniel at debian.org>
+Copyright: (C) 2009-2010 Daniel Baumann <daniel at debian.org>
 License: GPL-3+
  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
commit 0a9ffaf9dcb91702bf0c98411f1804a0a8410e1f
Author: Daniel Baumann <daniel at debian.org>
Date:   Wed Nov 25 13:08:49 2009 +0100

    Releasing debian version 1.4.1-1.

diff --git a/debian/changelog b/debian/changelog
index 7dba2cc..7bb6b3e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+tryton-modules-party (1.4.1-1) unstable; urgency=low
+
+  * Making depends versioned for tryton 1.4.
+  * Merging upstream version 1.4.1.
+  * Updating README.source.
+  * Adding explicit debian source version 1.0 until switch to 3.0.
+
+ -- Daniel Baumann <daniel at debian.org>  Wed, 25 Nov 2009 13:08:41 +0100
+
 tryton-modules-party (1.4.0-1) unstable; urgency=low
 
   * Merging upstream version 1.4.0.
commit 6f9ca7720c82ca2d173152b662df9dc0bca80089
Author: Daniel Baumann <daniel at debian.org>
Date:   Wed Nov 25 13:08:17 2009 +0100

    Adding explicit debian source version 1.0 until switch to 3.0.

diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..d3827e7
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+1.0
commit 7fb703ba5981a1a42253338e8f0f09417f3bb3b0
Author: Daniel Baumann <daniel at debian.org>
Date:   Wed Nov 25 13:08:09 2009 +0100

    Updating README.source.

diff --git a/debian/README.source b/debian/README.source
index dcc7ba3..18b6b24 100644
--- a/debian/README.source
+++ b/debian/README.source
@@ -32,6 +32,6 @@ upstream source. Changes, if any, are stored in the source package as diffs in
 debian/diff and are applied during the build. Current modifications can be
 applied to the source tree with:
 
-  $ quilt push -a
+  $ QUILT_PATCHES=debian/patches quilt push -a
 
 More information about Quilt can be found in the quilt package.
commit 47cd07f2f2308ec5d3a458d96c2356b9ae271de3
Author: Daniel Baumann <daniel at debian.org>
Date:   Wed Nov 25 13:07:56 2009 +0100

    Merging upstream version 1.4.1.

diff --git a/CHANGELOG b/CHANGELOG
index aa17064..9b227af 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+Version 1.4.1 - 2009-11-24
+* Bug fixes (see mercurial logs for details)
+
 Version 1.4.0 - 2009-10-19
 * Bug fixes (see mercurial logs for details)
 
diff --git a/PKG-INFO b/PKG-INFO
index 75f521c..b5350c7 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.0
 Name: trytond_party
-Version: 1.4.0
+Version: 1.4.1
 Summary: Define parties, addresses and co.
 Home-page: http://www.tryton.org/
 Author: B2CK
diff --git a/__tryton__.py b/__tryton__.py
index 7580a90..e284a9b 100644
--- a/__tryton__.py
+++ b/__tryton__.py
@@ -7,7 +7,7 @@
     'name_es_CO': 'Terceros',
     'name_es_ES': 'Terceros',
     'name_fr_FR': 'Tiers',
-    'version' : '1.4.0',
+    'version' : '1.4.1',
     'author' : 'B2CK',
     'email': 'info at b2ck.com',
     'website': 'http://www.tryton.org/',
diff --git a/party.py b/party.py
index 217f7ae..634fae0 100644
--- a/party.py
+++ b/party.py
@@ -169,7 +169,7 @@ class Party(ModelSQL, ModelView):
         args2 = []
         i = 0
         while i < len(args):
-            ids = self.search(cursor, user, [('code', '=', args[i][2])],
+            ids = self.search(cursor, user, [('code', args[i][1], args[i][2])],
                     context=context)
             if ids:
                 args2.append(('id', 'in', ids))
diff --git a/trytond_party.egg-info/PKG-INFO b/trytond_party.egg-info/PKG-INFO
index 36f08b1..288d824 100644
--- a/trytond_party.egg-info/PKG-INFO
+++ b/trytond_party.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.0
 Name: trytond-party
-Version: 1.4.0
+Version: 1.4.1
 Summary: Define parties, addresses and co.
 Home-page: http://www.tryton.org/
 Author: B2CK
commit dd942dcb97aeebb9bf57ba84d498942b20f71259
Author: Daniel Baumann <daniel at debian.org>
Date:   Wed Nov 4 12:22:20 2009 +0100

    Making depends versioned for tryton 1.4.

diff --git a/debian/control b/debian/control
index c02995c..77b65ea 100644
--- a/debian/control
+++ b/debian/control
@@ -15,8 +15,8 @@ Vcs-Git: git://git.debian-maintainers.org/git/tryton/tryton-modules-party.git
 Package: tryton-modules-party
 Architecture: all
 Depends:
- ${misc:Depends}, ${python:Depends}, tryton-server, tryton-modules-country,
- python-pkg-resources
+ ${misc:Depends}, ${python:Depends}, tryton-server (>= 1.4),
+ tryton-modules-country (>= 1.4), python-pkg-resources
 Recommends: python-soappy, python-vatnumber
 XB-Python-Version: ${python:Versions}
 Description: Tryton Application Platform (Party Module)
commit 96b73d514ea64cf1fce2c2493e6673a2e58fffc5
Author: Daniel Baumann <daniel at debian.org>
Date:   Mon Oct 19 22:12:55 2009 +0200

    Releasing debian version 1.4.0-1.

diff --git a/debian/changelog b/debian/changelog
index ef08893..7dba2cc 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+tryton-modules-party (1.4.0-1) unstable; urgency=low
+
+  * Merging upstream version 1.4.0.
+
+ -- Daniel Baumann <daniel at debian.org>  Mon, 19 Oct 2009 22:12:48 +0200
+
 tryton-modules-party (1.2.1-1) unstable; urgency=low
 
   * Updating to standards version 3.8.3.
commit 8802a59ff3800bfb6f826a43f444fc405bb97a39
Author: Daniel Baumann <daniel at debian.org>
Date:   Mon Oct 19 22:12:35 2009 +0200

    Merging upstream version 1.4.0.

diff --git a/CHANGELOG b/CHANGELOG
index f3c2944..aa17064 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,5 @@
-Version 1.2.1 - 2009-08-31
-* Some bug fixes (see mercurial logs for details)
+Version 1.4.0 - 2009-10-19
+* Bug fixes (see mercurial logs for details)
 
 Version 1.2.0 - 2009-04-20
 * Bug fixes (see mercurial logs for details)
diff --git a/PKG-INFO b/PKG-INFO
index ab1196e..75f521c 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 1.0
 Name: trytond_party
-Version: 1.2.1
+Version: 1.4.0
 Summary: Define parties, addresses and co.
 Home-page: http://www.tryton.org/
 Author: B2CK
 Author-email: info at b2ck.com
 License: GPL-3
-Download-URL: http://downloads.tryton.org/1.2/
+Download-URL: http://downloads.tryton.org/1.4/
 Description: UNKNOWN
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
diff --git a/__tryton__.py b/__tryton__.py
index 798c16b..7580a90 100644
--- a/__tryton__.py
+++ b/__tryton__.py
@@ -7,14 +7,14 @@
     'name_es_CO': 'Terceros',
     'name_es_ES': 'Terceros',
     'name_fr_FR': 'Tiers',
-    'version' : '1.2.1',
+    'version' : '1.4.0',
     'author' : 'B2CK',
     'email': 'info at b2ck.com',
     'website': 'http://www.tryton.org/',
     'description': 'Define parties, addresses and co.',
     'description_de_DE': 'Ermöglicht die Erstellung von Parteien, Adressen, etc.',
     'description_es_CO': 'Definición de terceros, direcciones, etc.',
-    'description_es_ES': 'Definición de terceros, direcciones, etc.',
+    'description_es_ES': 'Define terceros, direcciones, etc...',
     'description_fr_FR': 'Définit des tiers, des adresses, etc.',
     'depends' : [
         'ir',
diff --git a/address.py b/address.py
index 7a0eb80..65f995e 100644
--- a/address.py
+++ b/address.py
@@ -25,7 +25,7 @@ class Address(ModelSQL, ModelView):
     country = fields.Many2One('country.country', 'Country',
             states=STATES)
     subdivision = fields.Many2One("country.subdivision",
-            'Subdivision', domain="[('country', '=', country)]", states=STATES)
+            'Subdivision', domain=["('country', '=', country)"], states=STATES)
     active = fields.Boolean('Active')
     sequence = fields.Integer("Sequence")
     full_address = fields.Function('get_full_address', type='text')
@@ -91,8 +91,8 @@ class Address(ModelSQL, ModelView):
         i = 0
         while i < len(args):
             ids = self.search(cursor, user, ['OR',
-                ('zip', '=', args[i][2]),
-                ('city', '=', args[i][2]),
+                ('zip', args[i][1], args[i][2]),
+                ('city', args[i][1], args[i][2]),
                 ('name', args[i][1], args[i][2]),
                 ], context=context)
             if ids:
diff --git a/de_DE.csv b/de_DE.csv
index 414cff4..9ae39ef 100644
--- a/de_DE.csv
+++ b/de_DE.csv
@@ -4,7 +4,6 @@ error,party.category,0,You can not create recursive categories!,Kategorien dürf
 error,party.check_vies,0,"The VIES service is unavailable, try again later.","VIES Dienst nicht erreichbar, bitte versuchen Sie es später noch einmal!",0
 error,party.contact_mechanism,0,You can not modify the party of a contact mechanism!,Die Partei einer Kontaktmöglichkeit kann nicht geändert werden!,0
 error,party.party,0,Invalid VAT number!,Ungültige USt-ID-Nummer!,0
-error,party.party,0,The code of the party must be unique!,Der Name einer Partei kann nicht mehrfach vergeben werden!,0
 field,"party.address,active",0,Active,Aktiv,0
 field,"party.address,city",0,City,Stadt,0
 field,"party.address,country",0,Country,Staat,0
@@ -80,7 +79,7 @@ model,"ir.action,name",act_category_tree,Categories,Kategorien,0
 model,"ir.action,name",act_category_form,Categories,Kategorien,0
 model,"ir.action,name",act_category_form2,Categories,Kategorien,0
 model,"ir.action,name",wizard_check_vies,Check VIES,USt-ID-Nr. per VIES überprüfen,0
-model,"ir.action,name",report_label,La_bels,_Etiketten,0
+model,"ir.action,name",report_label,Labels,Etiketten,0
 model,"ir.action,name",act_party_form,Parties,Parteien,0
 model,"ir.action,name",act_party_form2,Parties,Parteien,0
 model,"ir.action,name",act_party_by_category,Parties by Category,Parteien nach Kategorie,0
@@ -102,7 +101,7 @@ model,"party.check_vies.no_check,name",0,Check VIES - No Check,Überprüfung VIE
 model,"party.contact_mechanism,name",0,Contact Mechanism,Kontaktmöglichkeit,0
 model,"party.party,name",0,Party,Partei,0
 model,"party.party-party.category,name",0,Party - Category,Partei - Parteikategorie,0
-model,"res.group,name",group_party_admin,Party Administration,Administration Kontakte,0
+model,"res.group,name",group_party_admin,Party Administration,Parteien Administration,0
 selection,"party.contact_mechanism,type",0,E-Mail,E-Mail,0
 selection,"party.contact_mechanism,type",0,Fax,Fax,0
 selection,"party.contact_mechanism,type",0,IRC,IRC,0
diff --git a/es_CO.csv b/es_CO.csv
index dfc6a85..97363b0 100644
--- a/es_CO.csv
+++ b/es_CO.csv
@@ -3,8 +3,7 @@ error,party.address,0,You can not modify the party of an address!,No puede modif
 error,party.category,0,You can not create recursive categories!,No puede crear categorías recursivas!,0
 error,party.check_vies,0,"The VIES service is unavailable, try again later.","El servicio VIES no está disponible, intente más tarde.",0
 error,party.contact_mechanism,0,You can not modify the party of a contact mechanism!,¡No puede modificar un tercero de un mecanismo de contacto!,0
-error,party.party,0,Invalid VAT number!,¡Número de VAT inválido!,0
-error,party.party,0,The code of the party must be unique!,El código del tercero debe ser único!,0
+error,party.party,0,Invalid VAT number!,¡Número de IVA inválido!,0
 field,"party.address,active",0,Active,Activo,0
 field,"party.address,city",0,City,Ciudad,0
 field,"party.address,country",0,Country,País,0
@@ -53,11 +52,11 @@ field,"party.party-party.category,party",0,Party,Tercero,0
 field,"party.party-party.category,rec_name",0,Name,Nombre,0
 field,"party.party,phone",0,Phone,Teléfono,0
 field,"party.party,rec_name",0,Name,Nombre,0
-field,"party.party,vat_code",0,VAT Code,Código de VAT,0
-field,"party.party,vat_country",0,VAT Country,VAT de país,0
-field,"party.party,vat_number",0,VAT Number,Nombre de VAT,0
+field,"party.party,vat_code",0,VAT Code,Código de IVA,0
+field,"party.party,vat_country",0,VAT Country,IVA de país,0
+field,"party.party,vat_number",0,VAT Number,Nombre de IVA,0
 field,"party.party,website",0,Website,Sitio Web,0
-help,"party.party,vat_country",0,Setting VAT country will enable validation of the VAT number.,Al especificar el VAT de país se habilitará la verificación del número de VAT.,0
+help,"party.party,vat_country",0,Setting VAT country will enable validation of the VAT number.,Al especificar el IVA de país se habilitará la verificación del número de IVA.,0
 help,"party.party,vat_number",0,Value Added Tax number,Número de Impuesto de Valor Agregado,0
 model,"ir.action,name",act_address_form,Addresses,Direcciones,0
 model,"ir.action,name",act_address_form2,Addresses,Direcciones,0
@@ -65,7 +64,7 @@ model,"ir.action,name",act_category_tree,Categories,Categorías,0
 model,"ir.action,name",act_category_form,Categories,Categorías,0
 model,"ir.action,name",act_category_form2,Categories,Categorías,0
 model,"ir.action,name",wizard_check_vies,Check VIES,Revisar VIES,0
-model,"ir.action,name",report_label,La_bels,Etiqueta_s,0
+model,"ir.action,name",report_label,Labels,Etiquetas,0
 model,"ir.action,name",act_party_form,Parties,Terceros,0
 model,"ir.action,name",act_party_form2,Parties,Terceros,0
 model,"ir.action,name",act_party_by_category,Parties by Category,Terceros por Categoría,0
@@ -99,45 +98,13 @@ selection,"party.contact_mechanism,type",0,SIP,SIP,0
 selection,"party.contact_mechanism,type",0,Skype,Skype,0
 selection,"party.contact_mechanism,type",0,Website,Sitio Web,0
 selection,"party.party,vat_country",0,,,0
-selection,"party.party,vat_country",0,AL,AL,0
-selection,"party.party,vat_country",0,AT,At,0
-selection,"party.party,vat_country",0,BE,BE,0
-selection,"party.party,vat_country",0,BG,BG,0
-selection,"party.party,vat_country",0,CY,CY,0
-selection,"party.party,vat_country",0,CZ,CZ,0
-selection,"party.party,vat_country",0,DE,DE,0
-selection,"party.party,vat_country",0,DK,DK,0
-selection,"party.party,vat_country",0,EE,EE,0
-selection,"party.party,vat_country",0,EL,EL,0
-selection,"party.party,vat_country",0,ES,ES,0
-selection,"party.party,vat_country",0,FI,FI,0
-selection,"party.party,vat_country",0,FR,FR,0
-selection,"party.party,vat_country",0,GB,GB,0
-selection,"party.party,vat_country",0,GR,GR,0
-selection,"party.party,vat_country",0,HU,HU,0
-selection,"party.party,vat_country",0,IE,IE,0
-selection,"party.party,vat_country",0,IT,IT,0
-selection,"party.party,vat_country",0,LT,LT,0
-selection,"party.party,vat_country",0,LU,LU,0
-selection,"party.party,vat_country",0,LV,LV,0
-selection,"party.party,vat_country",0,MT,MT,0
-selection,"party.party,vat_country",0,NL,NL,0
-selection,"party.party,vat_country",0,PL,PL,0
-selection,"party.party,vat_country",0,PT,PT,0
-selection,"party.party,vat_country",0,RO,RO,0
-selection,"party.party,vat_country",0,SE,SE,0
-selection,"party.party,vat_country",0,SI,SI,0
-selection,"party.party,vat_country",0,SK,SK,0
-selection,"party.party,vat_country",0,SM,SM,0
-selection,"party.party,vat_country",0,UA,UA,0
-selection,"party.party,vat_country",0,UK,UK,0
 view,party.address,0,Addresses,Direcciones,0
 view,party.category,0,Categories,Categorías,0
 view,party.category,0,Category,Categoría,0
 view,party.check_vies.check,0,Parties Failed,Los terceros fallaron,0
 view,party.check_vies.check,0,Parties Succeed,Los terceros fueron válidos,0
-view,party.check_vies.check,0,VAT Information Exchange System Results,Resultado de Sistema de Información de intercambio VAT,0
-view,party.check_vies.no_check,0,VAT Information Exchange System,Sistema de Información de Intercambio VAT,0
+view,party.check_vies.check,0,VAT Information Exchange System Results,Resultado de Sistema de Información de intercambio IVA,0
+view,party.check_vies.no_check,0,VAT Information Exchange System,Sistema de Información de Intercambio IVA,0
 view,party.check_vies.no_check,0,"You must have a recent version of ""vatnumber"" installed!","Debe tener una versión reciente de ""vatnumber"" instalada!",0
 view,party.contact_mechanism,0,Contact Mechanism,Mecanismo de contacto,0
 view,party.contact_mechanism,0,Contact Mechanisms,Mecanismos de contacto,0
@@ -150,6 +117,6 @@ view,party.party,0,General,General,0
 view,party.party,0,_General,_General,0
 view,party.party,0,Parties,Terceros,0
 view,party.party,0,Party,Tercero,0
-view,party.party,0,VAT,VAT,0
+view,party.party,0,VAT,IVA,0
 wizard_button,"party.check_vies,check,end",0,Ok,Aceptar,0
 wizard_button,"party.check_vies,no_check,end",0,Ok,Aceptar,0
diff --git a/es_ES.csv b/es_ES.csv
index 134f2c3..1148d1d 100644
--- a/es_ES.csv
+++ b/es_ES.csv
@@ -3,7 +3,7 @@ error,party.address,0,You can not modify the party of an address!,No puede modif
 error,party.category,0,You can not create recursive categories!,No puede crear categorías recursivas,0
 error,party.check_vies,0,"The VIES service is unavailable, try again later.","El servicio VIES no está disponible, inténtelo de nuevo más tarde",0
 error,party.contact_mechanism,0,You can not modify the party of a contact mechanism!,No puede modificar el tercero de un médio de contacto,0
-error,party.party,0,Invalid VAT number!,,0
+error,party.party,0,Invalid VAT number!,El NIF no es válido,0
 error,party.party,0,The code of the party must be unique!,El código del tercero debe ser único,0
 field,"party.address,active",0,Active,Activo,0
 field,"party.address,city",0,City,Ciudad,0
@@ -11,11 +11,11 @@ field,"party.address,country",0,Country,País,0
 field,"party.address,full_address",0,,,0
 field,"party.address,name",0,Name,Contacto,0
 field,"party.address,party",0,Party,Tercero,0
-field,"party.address,rec_name",0,Name,Nombre,0
+field,"party.address,rec_name",0,Name,Contacto,0
 field,"party.address,sequence",0,Sequence,Secuencia,0
 field,"party.address,street",0,Street,Calle,0
 field,"party.address,streetbis",0,Street (bis),Calle (bis),0
-field,"party.address,subdivision",0,Subdivision,Provincia,0
+field,"party.address,subdivision",0,Subdivision,Subdivisión,0
 field,"party.address,zip",0,Zip,Código postal,0
 field,"party.category,active",0,Active,Activo,0
 field,"party.category,childs",0,Children,Hijos,0
@@ -65,7 +65,7 @@ model,"ir.action,name",act_category_tree,Categories,Categorías,0
 model,"ir.action,name",act_category_form,Categories,Categorías,0
 model,"ir.action,name",act_category_form2,Categories,Categorías,0
 model,"ir.action,name",wizard_check_vies,Check VIES,Comprobar VIES,0
-model,"ir.action,name",report_label,La_bels,Etiqueta_s,0
+model,"ir.action,name",report_label,Labels,Etiquetas,0
 model,"ir.action,name",act_party_form,Parties,Terceros,0
 model,"ir.action,name",act_party_form2,Parties,Terceros,0
 model,"ir.action,name",act_party_by_category,Parties by Category,Terceros por categoría,0
@@ -85,7 +85,7 @@ model,"party.category,name",0,Category,Categoría,0
 model,"party.check_vies.check,name",0,Check VIES - Check,Comprobación VIES - Comprobar,0
 model,"party.check_vies.no_check,name",0,Check VIES - No Check,Comprobación VIES - No comprobar,0
 model,"party.contact_mechanism,name",0,Contact Mechanism,Médio de contacto,0
-model,"party.party,name",0,Party,Terceros,1
+model,"party.party,name",0,Party,Tercero,0
 model,"party.party-party.category,name",0,Party - Category,Tercero - Categoría,0
 model,"res.group,name",group_party_admin,Party Administration,Administración de terceros,0
 selection,"party.contact_mechanism,type",0,E-Mail,Correo electrónico,0
@@ -99,7 +99,7 @@ selection,"party.contact_mechanism,type",0,SIP,SIP,0
 selection,"party.contact_mechanism,type",0,Skype,Skype,0
 selection,"party.contact_mechanism,type",0,Website,Sitio Web,0
 selection,"party.party,vat_country",0,AL,AL,0
-selection,"party.party,vat_country",0,AT,At,0
+selection,"party.party,vat_country",0,AT,AT,0
 selection,"party.party,vat_country",0,BE,BE,0
 selection,"party.party,vat_country",0,BG,BG,0
 selection,"party.party,vat_country",0,CY,CY,0
@@ -139,7 +139,7 @@ view,party.check_vies.check,0,VAT Information Exchange System Results,Resultado
 view,party.check_vies.no_check,0,VAT Information Exchange System,Sistema de intercambio de información de IVA,0
 view,party.check_vies.no_check,0,"You must have a recent version of ""vatnumber"" installed!",Necesita instalar una versión más actualizada de «vatnumber»,0
 view,party.contact_mechanism,0,Contact Mechanism,Médio de contacto,0
-view,party.contact_mechanism,0,Contact Mechanisms,Médio de contacto,0
+view,party.contact_mechanism,0,Contact Mechanisms,Médios de contacto,0
 view,party.party,0,Account,Cuenta,0
 view,party.party,0,Accounting,Contabilidad,0
 view,party.party,0,Addresses,Direcciones,0
@@ -149,6 +149,6 @@ view,party.party,0,General,General,0
 view,party.party,0,_General,_General,0
 view,party.party,0,Parties,Terceros,0
 view,party.party,0,Party,Tercero,0
-view,party.party,0,VAT,IVA,0
+view,party.party,0,VAT,NIF,0
 wizard_button,"party.check_vies,check,end",0,Ok,Aceptar,0
 wizard_button,"party.check_vies,no_check,end",0,Ok,Aceptar,0
diff --git a/fr_FR.csv b/fr_FR.csv
index 66b5876..71900ce 100644
--- a/fr_FR.csv
+++ b/fr_FR.csv
@@ -65,7 +65,7 @@ model,"ir.action,name",act_category_tree,Categories,Catégories,0
 model,"ir.action,name",act_category_form,Categories,Catégories,0
 model,"ir.action,name",act_category_form2,Categories,Catégories,0
 model,"ir.action,name",wizard_check_vies,Check VIES,Validation VIES,0
-model,"ir.action,name",report_label,La_bels,É_tiquettes,0
+model,"ir.action,name",report_label,Labels,Étiquettes,0
 model,"ir.action,name",act_party_form,Parties,Tiers,0
 model,"ir.action,name",act_party_form2,Parties,Tiers,0
 model,"ir.action,name",act_party_by_category,Parties by Category,Tiers par catégorie,0
diff --git a/party.xml b/party.xml
index 43dca30..5b3d2e2 100644
--- a/party.xml
+++ b/party.xml
@@ -71,7 +71,11 @@ this repository contains the full copyright notices and license terms. -->
                             </field>
                             <group col="1" colspan="2" id="categories">
                                 <separator string="Categories" id="categories"/>
-                                <field name="categories"/>
+                                <field name="categories">
+                                    <tree string="Categories" fill="1">
+                                        <field name="rec_name" select="1"/>
+                                    </tree>
+                                </field>
                             </group>
                         </page>
                         <page string="Accounting" id="accounting">
@@ -133,7 +137,7 @@ this repository contains the full copyright notices and license terms. -->
             <field name="action" ref="act_party_by_category"/>
         </record>
         <record model="ir.action.report" id="report_label">
-            <field name="name">La_bels</field>
+            <field name="name">Labels</field>
             <field name="model">party.party</field>
             <field name="report_name">party.label</field>
             <field name="report">party/label.odt</field>
diff --git a/setup.py b/setup.py
index 55e4065..8794138 100644
--- a/setup.py
+++ b/setup.py
@@ -9,17 +9,12 @@ info = eval(file('__tryton__.py').read())
 
 requires = []
 for dep in info.get('depends', []):
-    match = re.compile(
-            '(ir|res|workflow|webdav)((\s|$|<|>|<=|>=|==|!=).*?$)').match(dep)
-    if match:
-        continue
-    else:
-        dep = 'trytond_' + dep
-    requires.append(dep)
+    if not re.match(r'(ir|res|workflow|webdav)(\W|$)', dep):
+        requires.append('trytond_' + dep)
 
 major_version, minor_version, _ = info.get('version', '0.0.1').split('.', 2)
 requires.append('trytond >= %s.%s' % (major_version, minor_version))
-requires.append('trytond < %s.%s' % (major_version, str(int(minor_version) + 1)))
+requires.append('trytond < %s.%s' % (major_version, int(minor_version) + 1))
 
 setup(name='trytond_party',
     version=info.get('version', '0.0.1'),
diff --git a/tests/test_party.py b/tests/test_party.py
index 0b68c8d..f0db791 100644
--- a/tests/test_party.py
+++ b/tests/test_party.py
@@ -10,7 +10,7 @@ if os.path.isdir(DIR):
 
 import unittest
 import trytond.tests.test_tryton
-from trytond.tests.test_tryton import RPCProxy, CONTEXT, SOCK
+from trytond.tests.test_tryton import RPCProxy, CONTEXT, SOCK, test_view
 
 
 class PartyTestCase(unittest.TestCase):
@@ -25,6 +25,12 @@ class PartyTestCase(unittest.TestCase):
         self.address = RPCProxy('party.address')
         self.country = RPCProxy('country.country')
 
+    def test0005views(self):
+        '''
+        Test views.
+        '''
+        self.assertRaises(Exception, test_view('party'))
+
     def test0010category(self):
         '''
         Create category.
diff --git a/trytond_party.egg-info/PKG-INFO b/trytond_party.egg-info/PKG-INFO
index 0f62e2c..36f08b1 100644
--- a/trytond_party.egg-info/PKG-INFO
+++ b/trytond_party.egg-info/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 1.0
 Name: trytond-party
-Version: 1.2.1
+Version: 1.4.0
 Summary: Define parties, addresses and co.
 Home-page: http://www.tryton.org/
 Author: B2CK
 Author-email: info at b2ck.com
 License: GPL-3
-Download-URL: http://downloads.tryton.org/1.2/
+Download-URL: http://downloads.tryton.org/1.4/
 Description: UNKNOWN
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
diff --git a/trytond_party.egg-info/requires.txt b/trytond_party.egg-info/requires.txt
index 94fd517..fba03d5 100644
--- a/trytond_party.egg-info/requires.txt
+++ b/trytond_party.egg-info/requires.txt
@@ -1,6 +1,6 @@
 trytond_country
-trytond >= 1.2
-trytond < 1.3
+trytond >= 1.4
+trytond < 1.5
 
 [VAT]
 vatnumber
\ No newline at end of file
commit 4f5833ab3540f32cbf0ccff09ea81dfc14f9145b
Author: Daniel Baumann <daniel at debian.org>
Date:   Sat Sep 5 09:41:46 2009 +0200

    Releasing debian version 1.2.1-1.

diff --git a/debian/changelog b/debian/changelog
index 4117615..ef08893 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,16 @@
+tryton-modules-party (1.2.1-1) unstable; urgency=low
+
+  * Updating to standards version 3.8.3.
+  * Adding maintainer homepage field to control.
+  * Adding README.source.
+  * Merging upstream version 1.2.1.
+  * Adding recommends to python-soappy.
+  * Moving maintainer homepage field to copyright.
+  * Updating README.source.
+  * Using ascii only characters in copyright.
+
+ -- Daniel Baumann <daniel at debian.org>  Sat, 05 Sep 2009 09:41:37 +0200
+
 tryton-modules-party (1.2.0-3) unstable; urgency=low
 
   * Updating maintainer field.
commit c6528210552441132d7b8f2e8bfbf4bcc020da56
Author: Daniel Baumann <daniel at debian.org>
Date:   Sat Sep 5 09:34:33 2009 +0200

    Using ascii only characters in copyright.

diff --git a/debian/copyright b/debian/copyright
index 59636f5..9d827a8 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -6,7 +6,7 @@ Maintainer-Homepage: http://tryton.debian-maintainers.org/
 Files: *
 Copyright:
  (C) 2004-2008 Tiny SPRL
- (C) 2008-2009 Cédric Krier
+ (C) 2008-2009 Cedric Krier
  (C) 2008-2009 Bertrand Chenal
  (C) 2008-2009 B2CK SPRL
  (C) 2008 Udo Spallek
commit a60d8206bc9ae5cc284226f51f305f87b0a9d470
Author: Daniel Baumann <daniel at debian.org>
Date:   Sat Sep 5 09:31:18 2009 +0200

    Updating README.source.

diff --git a/debian/README.source b/debian/README.source
index 259f923..dcc7ba3 100644
--- a/debian/README.source
+++ b/debian/README.source
@@ -4,7 +4,7 @@ Package Repositories
 Backports for the current stable debian distribution as well as snapshots of
 unreleased versions may be available in repositories listed on the maintainers
 homepage. The current URL of the maintainer homepage can be seen in
-debian/control.
+debian/copyright.
 
 
 Source Access
commit 3e53f9d8b70d42f12b9bf8bf025f74a9fc222c59
Author: Daniel Baumann <daniel at debian.org>
Date:   Sat Sep 5 09:27:58 2009 +0200

    Moving maintainer homepage field to copyright.

diff --git a/debian/control b/debian/control
index 551634c..c02995c 100644
--- a/debian/control
+++ b/debian/control
@@ -11,7 +11,6 @@ Standards-Version: 3.8.3
 Homepage: http://www.tryton.org/
 Vcs-Browser: http://git.debian-maintainers.org/?p=tryton/tryton-modules-party.git
 Vcs-Git: git://git.debian-maintainers.org/git/tryton/tryton-modules-party.git
-XSBC-Maintainer-Homepage: http://tryton.debian-maintainers.org/
 
 Package: tryton-modules-party
 Architecture: all
diff --git a/debian/copyright b/debian/copyright
index 4900e76..59636f5 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -1,5 +1,7 @@
-Author: Tryton Project <http://www.tryton.org/>
-Download: http://www.tryton.org/downloads.html
+Upstream-Contact: Tryton project <tryton at googlegroups.com>
+Upstream-Homepage: http://downloads.tryton.org/
+Maintainer-Contact: Debian Tryton Maintainers <tryton at lists.debian-maintainers.org>
+Maintainer-Homepage: http://tryton.debian-maintainers.org/
 
 Files: *
 Copyright:
commit ab24da54ba827319c3db08fe6c64af750fe84b57
Author: Daniel Baumann <daniel at debian.org>
Date:   Sat Sep 5 09:03:15 2009 +0200

    Adding recommends to python-soappy.

diff --git a/debian/control b/debian/control
index 9fa5a4a..551634c 100644
--- a/debian/control
+++ b/debian/control
@@ -18,7 +18,7 @@ Architecture: all
 Depends:
  ${misc:Depends}, ${python:Depends}, tryton-server, tryton-modules-country,
  python-pkg-resources
-Recommends: python-vatnumber
+Recommends: python-soappy, python-vatnumber
 XB-Python-Version: ${python:Versions}
 Description: Tryton Application Platform (Party Module)
  Tryton is a high-level general purpose application platform written in Python
commit dc3442b2cf783221d5e384cc809e006ae4a404df
Author: Daniel Baumann <daniel at debian.org>
Date:   Thu Sep 3 08:06:31 2009 +0200

    Merging upstream version 1.2.1.

diff --git a/CHANGELOG b/CHANGELOG
index dc130b0..f3c2944 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+Version 1.2.1 - 2009-08-31
+* Some bug fixes (see mercurial logs for details)
+
 Version 1.2.0 - 2009-04-20
 * Bug fixes (see mercurial logs for details)
 * Add CheckVIES wizard (VAT Information Exchange System)
diff --git a/INSTALL b/INSTALL
index c4c4b61..7d489fd 100644
--- a/INSTALL
+++ b/INSTALL
@@ -5,7 +5,7 @@ Prerequisites
 -------------
 
  * Python 2.4 or later (http://www.python.org/)
- * trytond 1.1.x (http://www.tryton.org/)
+ * trytond (http://www.tryton.org/)
  * trytond_country (http://www.tryton.org/)
  * Optional: vatnumber (http://code.google.com/p/vatnumber/)
 
diff --git a/MANIFEST.in b/MANIFEST.in
index c61b52d..b2a140e 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -8,3 +8,4 @@ include *.xml
 include *.odt
 include *.csv
 include tests/*
+include doc/*
diff --git a/PKG-INFO b/PKG-INFO
index b96a411..ab1196e 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.0
 Name: trytond_party
-Version: 1.2.0
+Version: 1.2.1
 Summary: Define parties, addresses and co.
 Home-page: http://www.tryton.org/
 Author: B2CK
diff --git a/__tryton__.py b/__tryton__.py
index f8572a9..798c16b 100644
--- a/__tryton__.py
+++ b/__tryton__.py
@@ -7,7 +7,7 @@
     'name_es_CO': 'Terceros',
     'name_es_ES': 'Terceros',
     'name_fr_FR': 'Tiers',
-    'version' : '1.2.0',
+    'version' : '1.2.1',
     'author' : 'B2CK',
     'email': 'info at b2ck.com',
     'website': 'http://www.tryton.org/',
diff --git a/category.py b/category.py
index 725ee77..6006bc5 100644
--- a/category.py
+++ b/category.py
@@ -35,13 +35,15 @@ class Category(ModelSQL, ModelView):
         if not ids:
             return {}
         res = {}
-        categories = self.browse(cursor, user, ids, context=context)
-        for category in categories:
-            if category.parent:
-                name = category.parent.name+' / '+ category.name
+        def _name(category):
+            if category.id in res:
+                return res[category.id]
+            elif category.parent:
+                return _name(category.parent) + ' / ' + category.name
             else:
-                name = category.name
-            res[category.id] = name
+                return category.name
+        for category in self.browse(cursor, user, ids, context=context):
+            res[category.id] = _name(category)
         return res
 
 Category()
diff --git a/doc/index.rst b/doc/index.rst
new file mode 100644
index 0000000..a428419
--- /dev/null
+++ b/doc/index.rst
@@ -0,0 +1,49 @@
+Party Module
+############
+
+The party module defines the concepts of party, category and contact
+mechanism. It also comes with reports to print labels and letters and
+a *Check VIES* wizard.
+
+
+Party
+*****
+
+A party can be a person, a company or any organisation that one want
+to consider as the same entity. A party is defined by a name, a code,
+a language, a VAT code, categories, contact mechanisms and a list of
+addresses.
+
+Two reports are available:
+
+- The *Labels* report creates a document with the names and addresses
+  of all selected parties which are preformatted to be printed on
+  labels that can be stuck on an envelope.
+- The *Letter* report create a document pre-filled with the company
+  header, the address of the recipient, a date, a greeting, an ending
+  and the signature of the current reader.
+
+The *Check VIES* wizard allow to check the VAT number of parties with
+the VIES web service.
+
+
+Address
+*******
+
+An address is made of a name, a street, a zip number, a city, a
+country, a subdivision. A sequence allow to order them.
+
+
+Contact Mechanism
+*****************
+
+A contact mechanism is made of a type, value and comment. Type can be
+*Phone*, *Mobile*, *Fax*, *E-Mail*, *Website*, *Skype*, *SIP*, *IRC*,
+*Jabber* or *Other*.
+
+
+Category
+********
+
+A Category is just composed of a name, thus constituting tags that can
+be associated to parties. Categories are organised in a tree structure.
diff --git a/trytond_party.egg-info/PKG-INFO b/trytond_party.egg-info/PKG-INFO
index 4d7d7ba..0f62e2c 100644
--- a/trytond_party.egg-info/PKG-INFO
+++ b/trytond_party.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.0
 Name: trytond-party
-Version: 1.2.0
+Version: 1.2.1
 Summary: Define parties, addresses and co.
 Home-page: http://www.tryton.org/
 Author: B2CK
diff --git a/trytond_party.egg-info/SOURCES.txt b/trytond_party.egg-info/SOURCES.txt
index 00372d1..2a22242 100644
--- a/trytond_party.egg-info/SOURCES.txt
+++ b/trytond_party.egg-info/SOURCES.txt
@@ -20,6 +20,7 @@ setup.py
 ./category.py
 ./contact_mechanism.py
 ./party.py
+doc/index.rst
 tests/__init__.py
 tests/test_party.py
 trytond_party.egg-info/PKG-INFO
commit bd3f092e6a4f94343806d1e9813a23952bd6f48c
Author: Daniel Baumann <daniel at debian.org>
Date:   Tue Aug 25 08:18:29 2009 +0200

    Adding README.source.

diff --git a/debian/README.source b/debian/README.source
new file mode 100644
index 0000000..259f923
--- /dev/null
+++ b/debian/README.source
@@ -0,0 +1,37 @@
+Package Repositories
+--------------------
+
+Backports for the current stable debian distribution as well as snapshots of
+unreleased versions may be available in repositories listed on the maintainers
+homepage. The current URL of the maintainer homepage can be seen in
+debian/control.
+
+
+Source Access
+-------------
+
+You can obtain the sources of this package with:
+
+  $ apt-get source ${PACKAGE}
+
+whereas '${PACKAGE}' has to be replaced with the actual name of the package.
+
+This package is maintained with the Git version control system. The current git
+source tree can be obtained with:
+
+  $ git clone ${GIT_URI}
+
+whereas '${GIT_URI}' has to be replaced with the actual URI for the Git
+repository. The current Git URI can be seen in debian/control in the extracted
+package sources.
+
+More information about Git can be found in the git-core package.
+
+This package may use the Quilt patch system to manage all modifications to the
+upstream source. Changes, if any, are stored in the source package as diffs in
+debian/diff and are applied during the build. Current modifications can be
+applied to the source tree with:
+
+  $ quilt push -a
+
+More information about Quilt can be found in the quilt package.
commit 29d8af4acdea015f1c80410c98471c89accb19bb
Author: Daniel Baumann <daniel at debian.org>
Date:   Mon Aug 24 17:50:01 2009 +0200

    Adding maintainer homepage field to control.

diff --git a/debian/control b/debian/control
index 2d974c0..9fa5a4a 100644
--- a/debian/control
+++ b/debian/control
@@ -11,6 +11,7 @@ Standards-Version: 3.8.3
 Homepage: http://www.tryton.org/
 Vcs-Browser: http://git.debian-maintainers.org/?p=tryton/tryton-modules-party.git
 Vcs-Git: git://git.debian-maintainers.org/git/tryton/tryton-modules-party.git
+XSBC-Maintainer-Homepage: http://tryton.debian-maintainers.org/
 
 Package: tryton-modules-party
 Architecture: all
commit eb3f064bf853bc5999626745179a9e2beb982e2c
Author: Daniel Baumann <daniel at debian.org>
Date:   Sun Aug 16 10:13:20 2009 +0200

    Updating to standards version 3.8.3.

diff --git a/debian/control b/debian/control
index 7dc1a75..2d974c0 100644
--- a/debian/control
+++ b/debian/control
@@ -7,7 +7,7 @@ Uploaders:
  Mathias Behrle <mathiasb at mbsolutions.selfip.biz>
 Build-Depends:
  debhelper (>= 7), python, python-all-dev, python-setuptools, python-support
-Standards-Version: 3.8.2
+Standards-Version: 3.8.3
 Homepage: http://www.tryton.org/
 Vcs-Browser: http://git.debian-maintainers.org/?p=tryton/tryton-modules-party.git
 Vcs-Git: git://git.debian-maintainers.org/git/tryton/tryton-modules-party.git
commit 0de39f05c651e4c6c371e1ad490eab1732b2c964
Author: Daniel Baumann <daniel at debian.org>
Date:   Mon Aug 10 20:16:24 2009 +0200

    Releasing debian version 1.2.0-3.

diff --git a/debian/changelog b/debian/changelog
index 9eef721..4117615 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+tryton-modules-party (1.2.0-3) unstable; urgency=low
+
+  * Updating maintainer field.
+  * Updating vcs fields.
+  * Wrapping lines in control.
+
+ -- Daniel Baumann <daniel at debian.org>  Mon, 10 Aug 2009 20:16:23 +0200
+
 tryton-modules-party (1.2.0-2) unstable; urgency=low
 
   * Updating package to standards version 3.8.2.
commit a26c413de68d099e3cad733b1d1e41b16077fdac
Author: Daniel Baumann <daniel at debian.org>
Date:   Mon Aug 10 20:16:20 2009 +0200

    Wrapping lines in control.

diff --git a/debian/control b/debian/control
index f660755..7dc1a75 100644
--- a/debian/control
+++ b/debian/control
@@ -2,7 +2,9 @@ Source: tryton-modules-party
 Section: python
 Priority: optional
 Maintainer: Debian Tryton Maintainers <tryton at lists.debian-maintainers.org>
-Uploaders: Daniel Baumann <daniel at debian.org>, Mathias Behrle <mathiasb at mbsolutions.selfip.biz>
+Uploaders:
+ Daniel Baumann <daniel at debian.org>,
+ Mathias Behrle <mathiasb at mbsolutions.selfip.biz>
 Build-Depends:
  debhelper (>= 7), python, python-all-dev, python-setuptools, python-support
 Standards-Version: 3.8.2
commit b7070d2cc2f5196d554aef9bfb98cb5ce2a01aa3
Author: Daniel Baumann <daniel at debian.org>
Date:   Sat Aug 8 23:26:50 2009 +0200

    Updating vcs fields.

diff --git a/debian/control b/debian/control
index 8a10c6b..f660755 100644
--- a/debian/control
+++ b/debian/control
@@ -7,8 +7,8 @@ Build-Depends:
  debhelper (>= 7), python, python-all-dev, python-setuptools, python-support
 Standards-Version: 3.8.2
 Homepage: http://www.tryton.org/
-Vcs-Browser: http://git.debian.net/?p=debian/tryton-modules-party.git
-Vcs-Git: git://git.debian.net/git/debian/tryton-modules-party.git
+Vcs-Browser: http://git.debian-maintainers.org/?p=tryton/tryton-modules-party.git
+Vcs-Git: git://git.debian-maintainers.org/git/tryton/tryton-modules-party.git
 
 Package: tryton-modules-party
 Architecture: all
commit e60bcdd57ca6ebf2b880f67cdc24bbd7286d41c1
Author: Daniel Baumann <daniel at debian.org>
Date:   Sat Aug 8 23:19:30 2009 +0200

    Updating maintainer field.

diff --git a/debian/control b/debian/control
index 56579c2..8a10c6b 100644
--- a/debian/control
+++ b/debian/control
@@ -1,8 +1,8 @@
 Source: tryton-modules-party
 Section: python
 Priority: optional
-Maintainer: Daniel Baumann <daniel at debian.org>
-Uploaders: Mathias Behrle <mathiasb at mbsolutions.selfip.biz>
+Maintainer: Debian Tryton Maintainers <tryton at lists.debian-maintainers.org>
+Uploaders: Daniel Baumann <daniel at debian.org>, Mathias Behrle <mathiasb at mbsolutions.selfip.biz>
 Build-Depends:
  debhelper (>= 7), python, python-all-dev, python-setuptools, python-support
 Standards-Version: 3.8.2
commit a4f1bcb57cc57d6b283457970f61b85926c9b5d1
Author: Daniel Baumann <daniel at debian.org>
Date:   Sun Jul 26 20:39:58 2009 +0200

    Releasing debian version 1.2.0-2.

diff --git a/debian/changelog b/debian/changelog
index 1446117..9eef721 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+tryton-modules-party (1.2.0-2) unstable; urgency=low
+
+  * Updating package to standards version 3.8.2.
+  * Minimizing rules file.
+
+ -- Daniel Baumann <daniel at debian.org>  Sun, 26 Jul 2009 20:39:55 +0200
+
 tryton-modules-party (1.2.0-1) unstable; urgency=low
 
   [ Daniel Baumann ]
commit c102a58ed55148cfe922a99764b60b6ab8b4444b
Author: Daniel Baumann <daniel at debian.org>
Date:   Sun Jul 26 20:39:43 2009 +0200

    Minimizing rules file.

diff --git a/debian/rules b/debian/rules
index 3beb02a..000210b 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,41 +1,4 @@
 #!/usr/bin/make -f
 
-clean:
-	dh_testdir
-	dh_testroot
-	rm -f build-stamp
-
-	python setup.py clean
-	rm -rf dist build trytond_party.egg-info
-
-	dh_clean
-
-build:
-
-install:
-	dh_testdir
-	dh_testroot
-	dh_prep
-
-	python setup.py install --single-version-externally-managed --root=$(CURDIR)/debian/tryton-modules-party --install-lib /usr/share/python-support/tryton-modules-party
-
-	find debian/tryton-modules-party -type f -name "*.pyc" | xargs rm -f
-
-binary: binary-indep
-
-binary-arch:
-
-binary-indep: install
-	dh_testdir
-	dh_testroot
-	dh_installchangelogs CHANGELOG
-	dh_installdocs
-	dh_pysupport
-	dh_compress
-	dh_fixperms
-	dh_installdeb
-	dh_gencontrol
-	dh_md5sums
-	dh_builddeb
-
-.PHONY: clean build install binary binary-arch binary-indep
+%:
+	dh ${@}
commit 99d8a2c5b2fc44f287772e569e9ca1765e49293e
Author: Daniel Baumann <daniel at debian.org>
Date:   Fri Jul 10 14:09:16 2009 +0200

    Updating package to standards version 3.8.2.

diff --git a/debian/control b/debian/control
index 0bc3a9f..56579c2 100644
--- a/debian/control
+++ b/debian/control
@@ -5,7 +5,7 @@ Maintainer: Daniel Baumann <daniel at debian.org>
 Uploaders: Mathias Behrle <mathiasb at mbsolutions.selfip.biz>
 Build-Depends:
  debhelper (>= 7), python, python-all-dev, python-setuptools, python-support
-Standards-Version: 3.8.1
+Standards-Version: 3.8.2
 Homepage: http://www.tryton.org/
 Vcs-Browser: http://git.debian.net/?p=debian/tryton-modules-party.git
 Vcs-Git: git://git.debian.net/git/debian/tryton-modules-party.git
commit fce677ee67df241033bdc77b03a3cd40387f3ae6
Author: Daniel Baumann <daniel at debian.org>
Date:   Tue Apr 21 20:50:21 2009 +0200

    Releasing debian version 1.2.0-1.

diff --git a/debian/changelog b/debian/changelog
index cbfb48d..1446117 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,18 @@
+tryton-modules-party (1.2.0-1) unstable; urgency=low
+
+  [ Daniel Baumann ]
+  * Merging upstream version 1.2.0.
+  * Tidy rules file.
+  * Updating copyright file for new upstream release.
+
+  [ Mathias Behrle ]
+  * Updating application and package description.
+
+  [ Daniel Baumann ]
+  * Correcting wrapping of control file.
+
+ -- Daniel Baumann <daniel at debian.org>  Tue, 21 Apr 2009 20:50:00 +0200
+
 tryton-modules-party (1.0.2-2) unstable; urgency=low
 
   * Adding Mathias to uploaders.
commit 02d4669030b4c830b788e3dbff11222e2b49c53f
Author: Daniel Baumann <daniel at debian.org>
Date:   Tue Apr 21 20:50:03 2009 +0200

    Correcting wrapping of control file.

diff --git a/debian/control b/debian/control
index fd8a731..0bc3a9f 100644
--- a/debian/control
+++ b/debian/control
@@ -3,7 +3,8 @@ Section: python
 Priority: optional
 Maintainer: Daniel Baumann <daniel at debian.org>
 Uploaders: Mathias Behrle <mathiasb at mbsolutions.selfip.biz>
-Build-Depends: debhelper (>= 7), python, python-all-dev, python-setuptools, python-support
+Build-Depends:
+ debhelper (>= 7), python, python-all-dev, python-setuptools, python-support
 Standards-Version: 3.8.1
 Homepage: http://www.tryton.org/
 Vcs-Browser: http://git.debian.net/?p=debian/tryton-modules-party.git
@@ -11,11 +12,14 @@ Vcs-Git: git://git.debian.net/git/debian/tryton-modules-party.git
 
 Package: tryton-modules-party
 Architecture: all
-Depends: ${misc:Depends}, ${python:Depends}, tryton-server, tryton-modules-country, python-pkg-resources
+Depends:
+ ${misc:Depends}, ${python:Depends}, tryton-server, tryton-modules-country,
+ python-pkg-resources
 Recommends: python-vatnumber
 XB-Python-Version: ${python:Versions}
 Description: Tryton Application Platform (Party Module)
  Tryton is a high-level general purpose application platform written in Python
- and using PostgreSQL as database engine. It is the core base of a complete business solution.
+ and using PostgreSQL as database engine. It is the core base of a complete
+ business solution.
  .
  This module provides the posssibility to define parties, addresses etc.
commit a5331b279840a7f871f03fc302a1b799d9c9ed62
Author: Mathias Behrle <mathiasb at mbsolutions.selfip.biz>
Date:   Tue Apr 21 17:32:02 2009 +0200

    Updating application and package description.

diff --git a/debian/control b/debian/control
index 7bf494d..fd8a731 100644
--- a/debian/control
+++ b/debian/control
@@ -16,6 +16,6 @@ Recommends: python-vatnumber
 XB-Python-Version: ${python:Versions}
 Description: Tryton Application Platform (Party Module)
  Tryton is a high-level general purpose application platform written in Python
- and using PostgreSQL as database engine. It is the core base of an ERP.
+ and using PostgreSQL as database engine. It is the core base of a complete business solution.
  .
- This module defines parties, addresses and co.
+ This module provides the posssibility to define parties, addresses etc.
commit e31e7243c60e6198347b0a0243d584ff6d8e00d8
Author: Daniel Baumann <daniel at debian.org>
Date:   Tue Apr 21 11:45:24 2009 +0200

    Updating copyright file for new upstream release.

diff --git a/debian/copyright b/debian/copyright
index 727f596..4900e76 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -4,9 +4,9 @@ Download: http://www.tryton.org/downloads.html
 Files: *
 Copyright:
  (C) 2004-2008 Tiny SPRL
- (C) 2008 Cedric Krier
- (C) 2008 Bertrand Chenal
- (C) 2008 B2CK SPRL
+ (C) 2008-2009 Cédric Krier
+ (C) 2008-2009 Bertrand Chenal
+ (C) 2008-2009 B2CK SPRL
  (C) 2008 Udo Spallek
  (C) 2008 Korbinian Preisler
  (C) 2008 virtual things
commit 639034b7671309fc3ecc0d6f85ad4c03ee9b0e68
Author: Daniel Baumann <daniel at debian.org>
Date:   Tue Apr 21 11:35:52 2009 +0200

    Tidy rules file.

diff --git a/debian/rules b/debian/rules
index f680751..3beb02a 100755
--- a/debian/rules
+++ b/debian/rules
@@ -16,7 +16,6 @@ install:
 	dh_testdir
 	dh_testroot
 	dh_prep
-	dh_installdirs
 
 	python setup.py install --single-version-externally-managed --root=$(CURDIR)/debian/tryton-modules-party --install-lib /usr/share/python-support/tryton-modules-party
 
commit 38a2d0478d7561f2814f90d51418abd07c724561
Author: Daniel Baumann <daniel at debian.org>
Date:   Tue Apr 21 11:03:42 2009 +0200

    Merging upstream version 1.2.0.

diff --git a/CHANGELOG b/CHANGELOG
index 4b867f8..dc130b0 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,7 +1,6 @@
-Version 1.0.2 - 2009-01-06
-* Some bug fixes (see mercurial logs for details)
-
-Version 1.0.1 - 2008-12-01
+Version 1.2.0 - 2009-04-20
+* Bug fixes (see mercurial logs for details)
+* Add CheckVIES wizard (VAT Information Exchange System)
 * Add default categories on party with context
 * Allow egg installation
 
diff --git a/COPYRIGHT b/COPYRIGHT
index d622f06..f65c1d2 100644
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -1,7 +1,7 @@
 Copyright (C) 2004-2008 Tiny SPRL.
-Copyright (C) 2008 Cédric Krier.
-Copyright (C) 2008 Bertrand Chenal.
-Copyright (C) 2008 B2CK SPRL.
+Copyright (C) 2008-2009 Cédric Krier.
+Copyright (C) 2008-2009 Bertrand Chenal.
+Copyright (C) 2008-2009 B2CK SPRL.
 Copyright (C) 2008 Udo Spallek.
 Copyright (C) 2008 Korbinian Preisler.
 Copyright (C) 2008 virtual things.
diff --git a/INSTALL b/INSTALL
index e35ca37..c4c4b61 100644
--- a/INSTALL
+++ b/INSTALL
@@ -5,14 +5,14 @@ Prerequisites
 -------------
 
  * Python 2.4 or later (http://www.python.org/)
- * trytond 0.0.x (http://www.tryton.org/)
+ * trytond 1.1.x (http://www.tryton.org/)
  * trytond_country (http://www.tryton.org/)
  * Optional: vatnumber (http://code.google.com/p/vatnumber/)
 
 Installation
 ------------
 
-Once you've downloaded and unpacked a trytond_party source release, enter the
+Once you've downloaded and unpacked the trytond_party source release, enter the
 directory where the archive was unpacked, and run:
 
     python setup.py install
diff --git a/PKG-INFO b/PKG-INFO
index 280d889..b96a411 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 1.0
 Name: trytond_party
-Version: 1.0.2
+Version: 1.2.0
 Summary: Define parties, addresses and co.
 Home-page: http://www.tryton.org/
 Author: B2CK
 Author-email: info at b2ck.com
 License: GPL-3
-Download-URL: http://downloads.tryton.org/1.0/
+Download-URL: http://downloads.tryton.org/1.2/
 Description: UNKNOWN
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
diff --git a/__tryton__.py b/__tryton__.py
index f8ff817..f8572a9 100644
--- a/__tryton__.py
+++ b/__tryton__.py
@@ -3,17 +3,19 @@
 #this repository contains the full copyright notices and license terms.
 {
     'name' : 'Party',
-    'name_fr_FR': 'Tiers',
-    'name_de_DE': 'Kontakte',
+    'name_de_DE': 'Parteien',
+    'name_es_CO': 'Terceros',
     'name_es_ES': 'Terceros',
-    'version' : '1.0.2',
+    'name_fr_FR': 'Tiers',
+    'version' : '1.2.0',
     'author' : 'B2CK',
     'email': 'info at b2ck.com',
     'website': 'http://www.tryton.org/',
     'description': 'Define parties, addresses and co.',
-    'description_fr_FR': 'Définit des tiers, des adresses, etc.',
-    'description_de_DE': 'Ermöglicht die Erstellung von Kontakten, Adressen, etc.',
+    'description_de_DE': 'Ermöglicht die Erstellung von Parteien, Adressen, etc.',
+    'description_es_CO': 'Definición de terceros, direcciones, etc.',
     'description_es_ES': 'Definición de terceros, direcciones, etc.',
+    'description_fr_FR': 'Définit des tiers, des adresses, etc.',
     'depends' : [
         'ir',
         'res',
@@ -26,8 +28,9 @@
         'contact_mechanism.xml',
     ],
     'translation': [
-        'fr_FR.csv',
         'de_DE.csv',
+        'es_CO.csv',
         'es_ES.csv',
+        'fr_FR.csv',
     ],
 }
diff --git a/address.py b/address.py
index 8e42a93..7a0eb80 100644
--- a/address.py
+++ b/address.py
@@ -1,27 +1,29 @@
 #This file is part of Tryton.  The COPYRIGHT file at the top level of
 #this repository contains the full copyright notices and license terms.
 'Address'
-from trytond.osv import fields, OSV
+from trytond.model import ModelView, ModelSQL, fields
 
 STATES = {
     'readonly': "active == False",
 }
 
 
-class Address(OSV):
+class Address(ModelSQL, ModelView):
     "Address"
     _name = 'party.address'
     _description = __doc__
     party = fields.Many2One('party.party', 'Party', required=True,
-           ondelete='cascade', select=1,  states=STATES)
+            ondelete='CASCADE', select=1,  states={
+                'readonly': "(active == False) or (active_id > 0)",
+            })
     name = fields.Char('Name', states=STATES)
     street = fields.Char('Street', states=STATES)
     streetbis = fields.Char('Street (bis)', states=STATES)
     zip = fields.Char('Zip', change_default=True,
-           states=STATES)
+            states=STATES)
     city = fields.Char('City', states=STATES)
     country = fields.Many2One('country.country', 'Country',
-           states=STATES)
+            states=STATES)
     subdivision = fields.Many2One("country.subdivision",
             'Subdivision', domain="[('country', '=', country)]", states=STATES)
     active = fields.Boolean('Active')
@@ -41,7 +43,7 @@ class Address(OSV):
 
     def get_full_address(self, cursor, user, ids, name, arg, context=None):
         if not ids:
-            return []
+            return {}
         res = {}
         for address in self.browse(cursor, user, ids, context=context):
             res[address.id] = ''
@@ -75,33 +77,30 @@ class Address(OSV):
                     res[address.id] += address.country.name
         return res
 
-    def name_get(self, cursor, user, ids, context=None):
+    def get_rec_name(self, cursor, user, ids, name, arg, context=None):
         if not ids:
-            return []
-        if isinstance(ids, (int, long)):
-            ids = [ids]
-        res = []
+            return {}
+        res = {}
         for address in self.browse(cursor, user, ids, context=context):
-            res.append((address.id, ", ".join(x for x in [address.name,
-                address.party.name, address.zip, address.city] if x)))
+            res[address.id] = ", ".join(x for x in [address.name,
+                address.party.rec_name, address.zip, address.city] if x)
         return res
 
-    def name_search(self, cursor, user, name, args=None, operator='ilike',
-                    context=None, limit=None):
-        if not args:
-            args=[]
-
-        ids = self.search(cursor, user, [('zip', '=', name)] + args,
-                          limit=limit, context=context)
-        if not ids:
-            ids = self.search(cursor, user, [('city', operator, name)] + args,
-                              limit=limit, context=context)
-        if name:
-            ids += self.search(cursor, user, [('name', operator, name)] + args,
-                               limit=limit, context=context)
-            ids += self.search(cursor, user, [('party', operator, name)] + args,
-                               limit=limit, context=context)
-        return self.name_get(cursor, user, ids, context=context)
+    def search_rec_name(self, cursor, user, name, args, context=None):
+        args2 = []
+        i = 0
+        while i < len(args):
+            ids = self.search(cursor, user, ['OR',
+                ('zip', '=', args[i][2]),
+                ('city', '=', args[i][2]),
+                ('name', args[i][1], args[i][2]),
+                ], context=context)
+            if ids:
+                args2.append(('id', 'in', ids))
+            else:
+                args2.append(('party', args[i][1], args[i][2]))
+            i += 1
+        return args2
 
     def write(self, cursor, user, ids, vals, context=None):
         if 'party' in vals:
diff --git a/address.xml b/address.xml
index 4d66c01..f6d2e43 100644
--- a/address.xml
+++ b/address.xml
@@ -17,7 +17,7 @@ this repository contains the full copyright notices and license terms. -->
                     <field name="city" select="2"/>
                     <field name="country" select="1"/>
                     <field name="subdivision" select="2"/>
-                    <field name="active" select="2" tree_invisible="1"/>
+                    <field name="active" select="2"/>
                 </tree>
                 ]]>
             </field>
@@ -32,7 +32,7 @@ this repository contains the full copyright notices and license terms. -->
                     <field name="party" colspan="5"/>
                     <label name="name"/>
                     <field name="name"/>
-                    <group colspan="2" col="20">
+                    <group colspan="2" col="20" id="checkboxes">
                         <label name="active"/>
                         <field name="active"
                             xexpand="0" width="25"/>
diff --git a/category.py b/category.py
index 81e7fdd..725ee77 100644
--- a/category.py
+++ b/category.py
@@ -1,23 +1,21 @@
 #This file is part of Tryton.  The COPYRIGHT file at the top level of
 #this repository contains the full copyright notices and license terms.
-from trytond.osv import fields, OSV
+from trytond.model import ModelView, ModelSQL, fields
 
 STATES = {
     'readonly': "active == False",
 }
 
 
-class Category(OSV):
+class Category(ModelSQL, ModelView):
     "Category"
     _name = "party.category"
     _description = __doc__
     name = fields.Char('Name', required=True, states=STATES)
     parent = fields.Many2One('party.category', 'Parent',
            select=1, states=STATES)
-    complete_name = fields.Function('get_complete_name',
-           type="char", string='Name', states=STATES)
     childs = fields.One2Many('party.category', 'parent',
-       'Childs', states=STATES)
+       'Children', states=STATES)
     active = fields.Boolean('Active')
 
     def __init__(self):
@@ -33,22 +31,17 @@ class Category(OSV):
     def default_active(self, cursor, user, context=None):
         return 1
 
-    def get_complete_name(self, cursor, user, ids, name, arg,
-            context=None):
-        res = self.name_get(cursor, user, ids, context)
-        return dict(res)
-
-    def name_get(self, cursor, user, ids, context=None):
+    def get_rec_name(self, cursor, user, ids, name, arg, context=None):
         if not ids:
-            return []
+            return {}
+        res = {}
         categories = self.browse(cursor, user, ids, context=context)
-        res = []
         for category in categories:
             if category.parent:
                 name = category.parent.name+' / '+ category.name
             else:
                 name = category.name
-            res.append((category.id, name))
+            res[category.id] = name
         return res
 
 Category()
diff --git a/category.xml b/category.xml
index 77e5c40..79a9553 100644
--- a/category.xml
+++ b/category.xml
@@ -27,7 +27,6 @@ this repository contains the full copyright notices and license terms. -->
                 <![CDATA[
                 <tree string="Categories" fill="1">
                     <field name="name" select="1"/>
-                    <field name="active" select="2" tree_invisible="1"/>
                 </tree>
                 ]]>
             </field>
@@ -43,8 +42,9 @@ this repository contains the full copyright notices and license terms. -->
             <field name="view" ref="category_view_tree"/>
             <field name="act_window" ref="act_category_tree"/>
         </record>
-        <menuitem parent="menu_party" sequence="3"
+        <menuitem parent="menu_party"
             action="act_category_tree" id="menu_category_tree"/>
+
         <record model="ir.action.act_window" id="act_category_form">
             <field name="name">Categories</field>
             <field name="res_model">party.category</field>
@@ -60,7 +60,7 @@ this repository contains the full copyright notices and license terms. -->
             <field name="view" ref="category_view_form"/>
             <field name="act_window" ref="act_category_form"/>
         </record>
-        <menuitem name="Edit Categories" parent="menu_category_tree"
+        <menuitem parent="menu_configuration"
             action="act_category_form" id="menu_category_form"/>
         <record model="ir.action.act_window" id="act_category_form2">
             <field name="name">Categories</field>
@@ -77,7 +77,7 @@ this repository contains the full copyright notices and license terms. -->
             <field name="view" ref="category_view_tree"/>
             <field name="act_window" ref="act_category_form2"/>
         </record>
-        <menuitem name="New category" parent="menu_category_tree"
+        <menuitem name="New category" parent="menu_category_form"
               action="act_category_form2" id="menu_category_form2"/>
 
         <record model="ir.model.access" id="access_party_category">
diff --git a/contact_mechanism.py b/contact_mechanism.py
index 3a1105c..264533f 100644
--- a/contact_mechanism.py
+++ b/contact_mechanism.py
@@ -1,7 +1,6 @@
 #This file is part of Tryton.  The COPYRIGHT file at the top level of
 #this repository contains the full copyright notices and license terms.
-
-from trytond.osv import OSV, fields
+from trytond.model import ModelView, ModelSQL, fields
 
 STATES = {
     'readonly': "active == False",
@@ -21,7 +20,7 @@ _TYPES = [
 ]
 
 
-class ContactMechanism(OSV):
+class ContactMechanism(ModelSQL, ModelView):
     "Contact Mechanism"
     _name = "party.contact_mechanism"
     _description = __doc__
@@ -29,12 +28,7 @@ class ContactMechanism(OSV):
 
     type = fields.Selection(_TYPES, 'Type', required=True, states=STATES,
             sort=False)
-    value = fields.Char('Value', select=1,
-            states={
-                'invisible': "type in ('email', 'website', 'skype', 'sip')",
-                'required': "type not in ('email', 'website')",
-                'readonly': "active == False",
-            }, on_change=['value'])
+    value = fields.Char('Value', select=1, states=STATES, on_change=['value'])
     comment = fields.Text('Comment', states=STATES)
     party = fields.Many2One('party.party', 'Party', required=True,
             ondelete='CASCADE', states=STATES, select=1)
@@ -45,25 +39,31 @@ class ContactMechanism(OSV):
                 'invisible': "type != 'email'",
                 'required': "type == 'email'",
                 'readonly': "active == False",
-            }, on_change=['email'])
+            }, on_change=['email'], depends=['value', 'type', 'active'])
     website = fields.Function('get_value', fnct_inv='set_value', type='char',
             string="Website", states={
                 'invisible': "type != 'website'",
                 'required': "type == 'website'",
                 'readonly': "active == False",
-            }, on_change=['website'])
+            }, on_change=['website'], depends=['value', 'type', 'active'])
     skype = fields.Function('get_value', fnct_inv='set_value', type='char',
             string="Skype", states={
                 'invisible': "type != 'skype'",
                 'required': "type == 'skype'",
                 'readonly': "active == False",
-            }, on_change=['skype'])
+            }, on_change=['skype'], depends=['value', 'type', 'active'])
     sip = fields.Function('get_value', fnct_inv='set_value', type='char',
             string="SIP", states={
                 'invisible': "type != 'sip'",
                 'required': "type == 'sip'",
                 'readonly': "active == False",
-            }, on_change=['sip'])
+            }, on_change=['sip'], depends=['value', 'type', 'active'])
+    other_value = fields.Function('get_value', fnct_inv='set_value',
+            type='char', string='Value', states={
+                'invisible': "type in ('email', 'website', 'skype', 'sip')",
+                'required': "type not in ('email', 'website')",
+                'readonly': "active == False",
+            }, on_change=['other_value'], depends=['value', 'type', 'active'])
 
     def __init__(self):
         super(ContactMechanism, self).__init__()
@@ -101,6 +101,7 @@ class ContactMechanism(OSV):
             'email': value,
             'skype': value,
             'sip': value,
+            'other_value': value,
         }
 
     def on_change_value(self, cursor, user, ids, vals, context=None):
@@ -123,6 +124,10 @@ class ContactMechanism(OSV):
         return self._change_value(cursor, user, vals.get('sip'),
                 context=context)
 
+    def on_change_other_value(self, cursor, user, ids, vals, context=None):
+        return self._change_value(cursor, user, vals.get('other_value'),
+                context=context)
+
     def write(self, cursor, user, ids, vals, context=None):
         if 'party' in vals:
             if isinstance(ids, (int, long)):
diff --git a/contact_mechanism.xml b/contact_mechanism.xml
index 05e50bc..12af36e 100644
--- a/contact_mechanism.xml
+++ b/contact_mechanism.xml
@@ -13,7 +13,6 @@ this repository contains the full copyright notices and license terms. -->
                     <field name="party" select="1"/>
                     <field name="type" select="1"/>
                     <field name="value" select="1"/>
-                    <field name="active" select="2" tree_invisible="1"/>
                 </tree>
                 ]]>
             </field>
@@ -31,9 +30,9 @@ this repository contains the full copyright notices and license terms. -->
                     <field name="active"/>
                     <label name="type"/>
                     <field name="type"/>
-                    <group col="2" colspan="2">
-                        <label name="value"/>
-                        <field name="value"/>
+                    <group col="2" colspan="2" id="value">
+                        <label name="other_value"/>
+                        <field name="other_value"/>
                         <label name="website"/>
                         <field name="website" widget="url"/>
                         <label name="email"/>
diff --git a/de_DE.csv b/de_DE.csv
index 7118f83..414cff4 100644
--- a/de_DE.csv
+++ b/de_DE.csv
@@ -1,18 +1,20 @@
 type,name,res_id,src,value,fuzzy
 error,party.address,0,You can not modify the party of an address!,Die Partei einer Adresse kann nicht geändert werden!,0
 error,party.category,0,You can not create recursive categories!,Kategorien dürfen nicht rekursiv sein,0
+error,party.check_vies,0,"The VIES service is unavailable, try again later.","VIES Dienst nicht erreichbar, bitte versuchen Sie es später noch einmal!",0
 error,party.contact_mechanism,0,You can not modify the party of a contact mechanism!,Die Partei einer Kontaktmöglichkeit kann nicht geändert werden!,0
+error,party.party,0,Invalid VAT number!,Ungültige USt-ID-Nummer!,0
 error,party.party,0,The code of the party must be unique!,Der Name einer Partei kann nicht mehrfach vergeben werden!,0
-error,party.party,0,Wrong VAT number!,USt-ID Nr. ungültig!,0
 field,"party.address,active",0,Active,Aktiv,0
 field,"party.address,city",0,City,Stadt,0
 field,"party.address,country",0,Country,Staat,0
 field,"party.address,create_date",0,Creation date,Erstellungsdatum,0
 field,"party.address,create_uid",0,Creation user,Ersteller,0
-field,"party.address,full_address",0,unknown,Unbekannt,0
+field,"party.address,full_address",0,,,0
 field,"party.address,id",0,ID,ID,0
 field,"party.address,name",0,Name,Name,0
 field,"party.address,party",0,Party,Partei,0
+field,"party.address,rec_name",0,Name,Name,0
 field,"party.address,sequence",0,Sequence,Sequenz,0
 field,"party.address,street",0,Street,Anschrift 1,0
 field,"party.address,streetbis",0,Street (bis),Anschrift 2,0
@@ -21,19 +23,23 @@ field,"party.address,write_date",0,Last modification date,Zuletzt geändert am,0
 field,"party.address,write_uid",0,Last modification by,Zuletzt geändert von,0
 field,"party.address,zip",0,Zip,Postleitzahl,0
 field,"party.category,active",0,Active,Aktiv,0
-field,"party.category,childs",0,Childs,Untergeordnet (Kategorien),0
-field,"party.category,complete_name",0,Name,Name,0
+field,"party.category,childs",0,Children,Untergeordnet (Kategorien),0
 field,"party.category,create_date",0,Creation date,Erstellungsdatum,0
 field,"party.category,create_uid",0,Creation user,Ersteller,0
 field,"party.category,id",0,ID,ID,0
 field,"party.category,name",0,Name,Kategorie Name,0
 field,"party.category,parent",0,Parent,Ãœbergeordnet (Kategorie),0
+field,"party.category,rec_name",0,Name,Name,0
 field,"party.category,write_date",0,Last modification date,Zuletzt geändert am,0
 field,"party.category,write_uid",0,Last modification by,Zuletzt geändert von,0
+field,"party.check_vies.check,parties_failed",0,Parties Failed,Parteien mit fehlgeschlagener Überprüfung,0
+field,"party.check_vies.check,parties_succeed",0,Parties Succeed,Parteien mit erfolgreicher Überprüfung,0
 field,"party.contact_mechanism,active",0,Active,Aktiv,0
 field,"party.contact_mechanism,comment",0,Comment,Kommentar,0
 field,"party.contact_mechanism,email",0,E-Mail,E-Mail,0
+field,"party.contact_mechanism,other_value",0,Value,Wert,0
 field,"party.contact_mechanism,party",0,Party,Partei,0
+field,"party.contact_mechanism,rec_name",0,Name,Name,0
 field,"party.contact_mechanism,sequence",0,Sequence,Sequenz,0
 field,"party.contact_mechanism,sip",0,SIP,SIP,0
 field,"party.contact_mechanism,skype",0,Skype,Skype,0
@@ -50,25 +56,30 @@ field,"party.party,create_date",0,Creation date,Erstellungsdatum,0
 field,"party.party,create_uid",0,Creation user,Ersteller,0
 field,"party.party,email",0,E-Mail,E-Mail,0
 field,"party.party,fax",0,Fax,Fax,0
-field,"party.party,full_name",0,unknown,Unbekannt,0
+field,"party.party,full_name",0,,,0
 field,"party.party,id",0,ID,ID,0
 field,"party.party,lang",0,Language,Sprache,0
 field,"party.party,mobile",0,Mobile,Mobiltelefon,0
 field,"party.party,name",0,Name,Name,0
+field,"party.party-party.category,category",0,Category,Kategorie,0
+field,"party.party-party.category,party",0,Party,Partei,0
+field,"party.party-party.category,rec_name",0,Name,Name,0
 field,"party.party,phone",0,Phone,Telefon,0
-field,"party.party,vat_code",0,VAT Code,USt-ID Nr.,0
+field,"party.party,rec_name",0,Name,Name,0
+field,"party.party,vat_code",0,VAT Code,USt-ID-Nr.,0
 field,"party.party,vat_country",0,VAT Country,USt-ID Präfix,0
-field,"party.party,vat_number",0,VAT Number,USt-ID Nr.,0
+field,"party.party,vat_number",0,VAT Number,USt-ID-Nr.,0
 field,"party.party,website",0,Website,Website,0
 field,"party.party,write_date",0,Last modification date,Zuletzt geändert am,0
 field,"party.party,write_uid",0,Last modification by,Zuletzt geändert von,0
-help,"party.party,vat_country",0,Setting VAT country will enable verification of the VAT number.,Ein Eintrag in USt-ID Präfix aktiviert die Überprüfung der USt-ID Nr.,0
+help,"party.party,vat_country",0,Setting VAT country will enable validation of the VAT number.,Ein Eintrag in USt-ID-Präfix aktiviert die Überprüfung der USt-ID-Nr.,0
 help,"party.party,vat_number",0,Value Added Tax number,Umsatzsteueridentifikationsnummer,0
 model,"ir.action,name",act_address_form,Addresses,Adressen,0
 model,"ir.action,name",act_address_form2,Addresses,Adressen,0
 model,"ir.action,name",act_category_tree,Categories,Kategorien,0
 model,"ir.action,name",act_category_form,Categories,Kategorien,0
 model,"ir.action,name",act_category_form2,Categories,Kategorien,0
+model,"ir.action,name",wizard_check_vies,Check VIES,USt-ID-Nr. per VIES überprüfen,0
 model,"ir.action,name",report_label,La_bels,_Etiketten,0
 model,"ir.action,name",act_party_form,Parties,Parteien,0
 model,"ir.action,name",act_party_form2,Parties,Parteien,0
@@ -76,25 +87,34 @@ model,"ir.action,name",act_party_by_category,Parties by Category,Parteien nach K
 model,"ir.sequence,name",sequence_party,Party,Partei,0
 model,"ir.sequence.type,name",sequence_type_party,Party,Partei,0
 model,"ir.ui.menu,name",menu_address_form,Addresses,Adressen,0
-model,"ir.ui.menu,name",menu_category_tree,Categories,Kategorien,0
-model,"ir.ui.menu,name",menu_category_form,Edit Categories,Kategorien bearbeiten,0
+model,"ir.ui.menu,name",menu_category_tree,Categories,Parteikategorien,0
+model,"ir.ui.menu,name",menu_category_form,Categories,Parteikategorien,0
+model,"ir.ui.menu,name",menu_configuration,Configuration,Einstellungen,0
 model,"ir.ui.menu,name",menu_address_form2,New Address,Neue Adresse,0
-model,"ir.ui.menu,name",menu_category_form2,New category,Neue Kategorie,0
+model,"ir.ui.menu,name",menu_category_form2,New category,Neue Parteikategorie,0
 model,"ir.ui.menu,name",menu_party_form2,New Party,Neue Partei,0
 model,"ir.ui.menu,name",menu_party_form,Parties,Parteien,0
-model,"ir.ui.menu,name",menu_party,Party Management,Kontakte,0
+model,"ir.ui.menu,name",menu_party,Party Management,Parteien,0
+model,"party.address,name",0,Address,Adresse,0
+model,"party.category,name",0,Category,Kategorie,0
+model,"party.check_vies.check,name",0,Check VIES - Check,Überprüfung VIES - Durchführen,0
+model,"party.check_vies.no_check,name",0,Check VIES - No Check,Überprüfung VIES - Nicht durchführen,0
+model,"party.contact_mechanism,name",0,Contact Mechanism,Kontaktmöglichkeit,0
+model,"party.party,name",0,Party,Partei,0
+model,"party.party-party.category,name",0,Party - Category,Partei - Parteikategorie,0
 model,"res.group,name",group_party_admin,Party Administration,Administration Kontakte,0
 selection,"party.contact_mechanism,type",0,E-Mail,E-Mail,0
 selection,"party.contact_mechanism,type",0,Fax,Fax,0
 selection,"party.contact_mechanism,type",0,IRC,IRC,0
 selection,"party.contact_mechanism,type",0,Jabber,Jabber,0
 selection,"party.contact_mechanism,type",0,Mobile,Mobiltelefon,0
-selection,"party.contact_mechanism,type",0,Other,Anderer,0
+selection,"party.contact_mechanism,type",0,Other,Anderer Kontakt,0
 selection,"party.contact_mechanism,type",0,Phone,Telefon,0
 selection,"party.contact_mechanism,type",0,SIP,SIP,0
 selection,"party.contact_mechanism,type",0,Skype,Skype,0
 selection,"party.contact_mechanism,type",0,Website,Homepage,0
 selection,"party.party,vat_country",0,,,0
+selection,"party.party,vat_country",0,AL,AL,0
 selection,"party.party,vat_country",0,AT,AT,0
 selection,"party.party,vat_country",0,BE,BE,0
 selection,"party.party,vat_country",0,BG,BG,0
@@ -123,17 +143,29 @@ selection,"party.party,vat_country",0,RO,RO,0
 selection,"party.party,vat_country",0,SE,SE,0
 selection,"party.party,vat_country",0,SI,SI,0
 selection,"party.party,vat_country",0,SK,SK,0
+selection,"party.party,vat_country",0,SM,SM,0
+selection,"party.party,vat_country",0,UA,UA,0
+selection,"party.party,vat_country",0,UK,UK,0
 view,party.address,0,Addresses,Adressen,0
 view,party.category,0,Categories,Kategorien,0
 view,party.category,0,Category,Kategorie,0
+view,party.check_vies.check,0,Parties Failed,Parteien mit fehlgeschlagener Überprüfung,0
+view,party.check_vies.check,0,Parties Succeed,Parteien mit erfolgreicher Überprüfung,0
+view,party.check_vies.check,0,VAT Information Exchange System Results,Ergebnisse des Überprüfungssystems für USt-ID-Nummern (VIES),0
+view,party.check_vies.no_check,0,VAT Information Exchange System,Überprüfungssystem für USt-ID-Nummern (VIES),0
+view,party.check_vies.no_check,0,"You must have a recent version of ""vatnumber"" installed!","Es muss eine aktuelle Version des Python-Moduls ""vatnumber"" installiert sein!",0
 view,party.contact_mechanism,0,Contact Mechanism,Kontaktmöglichkeit,0
 view,party.contact_mechanism,0,Contact Mechanisms,Kontaktmöglichkeiten,0
 view,party.party,0,Account,Konten,0
-view,party.party,0,_Accounting,,0
+view,party.party,0,Accounting,Buchhaltung,0
+view,party.party,0,_Accounting,_Buchhaltung,0
 view,party.party,0,Addresses,Adressen,0
 view,party.party,0,Categories,Kategorien,0
 view,party.party,0,Contact Mechanisms,Kontaktmöglichkeiten,0
+view,party.party,0,General,Allgemein,0
 view,party.party,0,_General,_Allgemein,0
 view,party.party,0,Parties,Parteien,0
 view,party.party,0,Party,Partei,0
 view,party.party,0,VAT,USt,0
+wizard_button,"party.check_vies,check,end",0,Ok,OK,0
+wizard_button,"party.check_vies,no_check,end",0,Ok,OK,0
diff --git a/es_ES.csv b/es_CO.csv
similarity index 69%
copy from es_ES.csv
copy to es_CO.csv
index e312437..dfc6a85 100644
--- a/es_ES.csv
+++ b/es_CO.csv
@@ -1,29 +1,35 @@
 type,name,res_id,src,value,fuzzy
 error,party.address,0,You can not modify the party of an address!,No puede modificar el tercero de una dirección!,0
 error,party.category,0,You can not create recursive categories!,No puede crear categorías recursivas!,0
-error,party.contact_mechanism,0,You can not modify the party of an contact mechanism!,No puede modificar el tercero de un mecanismo de contacto!,0
+error,party.check_vies,0,"The VIES service is unavailable, try again later.","El servicio VIES no está disponible, intente más tarde.",0
+error,party.contact_mechanism,0,You can not modify the party of a contact mechanism!,¡No puede modificar un tercero de un mecanismo de contacto!,0
+error,party.party,0,Invalid VAT number!,¡Número de VAT inválido!,0
 error,party.party,0,The code of the party must be unique!,El código del tercero debe ser único!,0
-error,party.party,0,Wrong VAT number!,Número de VAT erróneo!,0
 field,"party.address,active",0,Active,Activo,0
 field,"party.address,city",0,City,Ciudad,0
 field,"party.address,country",0,Country,País,0
-field,"party.address,full_address",0,unknown,desconocid@,0
+field,"party.address,full_address",0,,,0
 field,"party.address,name",0,Name,Nombre de Contacto,0
 field,"party.address,party",0,Party,Tercero,0
+field,"party.address,rec_name",0,Name,Nombre,0
 field,"party.address,sequence",0,Sequence,Secuencia,0
 field,"party.address,street",0,Street,Calle,0
 field,"party.address,streetbis",0,Street (bis),Calle (bis),0
 field,"party.address,subdivision",0,Subdivision,Subdivisión,0
 field,"party.address,zip",0,Zip,Código postal,0
 field,"party.category,active",0,Active,Activo,0
-field,"party.category,childs",0,Childs,Hij at s,0
-field,"party.category,complete_name",0,Name,Nombre,0
+field,"party.category,childs",0,Children,Hij at s,0
 field,"party.category,name",0,Name,Nombre,0
 field,"party.category,parent",0,Parent,Padre,0
+field,"party.category,rec_name",0,Name,Nombre,0
+field,"party.check_vies.check,parties_failed",0,Parties Failed,Los terceros fallaron,0
+field,"party.check_vies.check,parties_succeed",0,Parties Succeed,Terceros válidos,0
 field,"party.contact_mechanism,active",0,Active,Activo,0
 field,"party.contact_mechanism,comment",0,Comment,Comentario,0
 field,"party.contact_mechanism,email",0,E-Mail,Correo electrónico,0
+field,"party.contact_mechanism,other_value",0,Value,Valor,0
 field,"party.contact_mechanism,party",0,Party,Tercero,0
+field,"party.contact_mechanism,rec_name",0,Name,Nombre,0
 field,"party.contact_mechanism,sequence",0,Sequence,Secuencia,0
 field,"party.contact_mechanism,sip",0,SIP,SIP,0
 field,"party.contact_mechanism,skype",0,Skype,Skype,0
@@ -38,34 +44,50 @@ field,"party.party,code_length",0,Code Length,Longitud del Código,0
 field,"party.party,contact_mechanisms",0,Contact Mechanisms,Mecanismos de contacto,0
 field,"party.party,email",0,E-Mail,Correo electrónico,0
 field,"party.party,fax",0,Fax,Fax,0
-field,"party.party,full_name",0,unknown,desconocid@,0
+field,"party.party,full_name",0,,,0
 field,"party.party,lang",0,Language,Idioma,0
 field,"party.party,mobile",0,Mobile,Celular,0
 field,"party.party,name",0,Name,Nombre,0
+field,"party.party-party.category,category",0,Category,Categoría,0
+field,"party.party-party.category,party",0,Party,Tercero,0
+field,"party.party-party.category,rec_name",0,Name,Nombre,0
 field,"party.party,phone",0,Phone,Teléfono,0
+field,"party.party,rec_name",0,Name,Nombre,0
 field,"party.party,vat_code",0,VAT Code,Código de VAT,0
 field,"party.party,vat_country",0,VAT Country,VAT de país,0
 field,"party.party,vat_number",0,VAT Number,Nombre de VAT,0
 field,"party.party,website",0,Website,Sitio Web,0
-help,"party.party,vat_country",0,Setting VAT country will enable verification of the VAT number.,Al especificar el VAT de país se habilitará la verificación del número de VAT.,0
+help,"party.party,vat_country",0,Setting VAT country will enable validation of the VAT number.,Al especificar el VAT de país se habilitará la verificación del número de VAT.,0
 help,"party.party,vat_number",0,Value Added Tax number,Número de Impuesto de Valor Agregado,0
 model,"ir.action,name",act_address_form,Addresses,Direcciones,0
 model,"ir.action,name",act_address_form2,Addresses,Direcciones,0
 model,"ir.action,name",act_category_tree,Categories,Categorías,0
 model,"ir.action,name",act_category_form,Categories,Categorías,0
 model,"ir.action,name",act_category_form2,Categories,Categorías,0
+model,"ir.action,name",wizard_check_vies,Check VIES,Revisar VIES,0
 model,"ir.action,name",report_label,La_bels,Etiqueta_s,0
 model,"ir.action,name",act_party_form,Parties,Terceros,0
 model,"ir.action,name",act_party_form2,Parties,Terceros,0
 model,"ir.action,name",act_party_by_category,Parties by Category,Terceros por Categoría,0
+model,"ir.sequence,name",sequence_party,Party,Tercero,0
+model,"ir.sequence.type,name",sequence_type_party,Party,Tercero,0
 model,"ir.ui.menu,name",menu_address_form,Addresses,Direcciones,0
 model,"ir.ui.menu,name",menu_category_tree,Categories,Categorías,0
-model,"ir.ui.menu,name",menu_category_form,Edit Categories,Editar Categorías,0
+model,"ir.ui.menu,name",menu_category_form,Categories,Categorías,0
+model,"ir.ui.menu,name",menu_configuration,Configuration,Configuración,0
 model,"ir.ui.menu,name",menu_address_form2,New Address,Nueva Dirección,0
 model,"ir.ui.menu,name",menu_category_form2,New category,Nueva Categoría,0
 model,"ir.ui.menu,name",menu_party_form2,New Party,Nuevo Tercero,0
 model,"ir.ui.menu,name",menu_party_form,Parties,Terceros,0
-model,"ir.ui.menu,name",menu_party,Party Management,Manejo de Relaciones,0
+model,"ir.ui.menu,name",menu_party,Party Management,Gestión de Terceros,0
+model,"party.address,name",0,Address,Dirección,0
+model,"party.category,name",0,Category,Categoría,0
+model,"party.check_vies.check,name",0,Check VIES - Check,Revisar VIES - Revisar,0
+model,"party.check_vies.no_check,name",0,Check VIES - No Check,Revisar VIES - NO revisar,0
+model,"party.contact_mechanism,name",0,Contact Mechanism,Mecanismo de contacto,0
+model,"party.party,name",0,Party,Tercero,0
+model,"party.party-party.category,name",0,Party - Category,Tercero - Categoría,0
+model,"res.group,name",group_party_admin,Party Administration,Terceros,0
 selection,"party.contact_mechanism,type",0,E-Mail,Correo electrónico,0
 selection,"party.contact_mechanism,type",0,Fax,Fax,0
 selection,"party.contact_mechanism,type",0,IRC,Chat,0
@@ -112,15 +134,22 @@ selection,"party.party,vat_country",0,UK,UK,0
 view,party.address,0,Addresses,Direcciones,0
 view,party.category,0,Categories,Categorías,0
 view,party.category,0,Category,Categoría,0
+view,party.check_vies.check,0,Parties Failed,Los terceros fallaron,0
+view,party.check_vies.check,0,Parties Succeed,Los terceros fueron válidos,0
+view,party.check_vies.check,0,VAT Information Exchange System Results,Resultado de Sistema de Información de intercambio VAT,0
+view,party.check_vies.no_check,0,VAT Information Exchange System,Sistema de Información de Intercambio VAT,0
+view,party.check_vies.no_check,0,"You must have a recent version of ""vatnumber"" installed!","Debe tener una versión reciente de ""vatnumber"" instalada!",0
 view,party.contact_mechanism,0,Contact Mechanism,Mecanismo de contacto,0
 view,party.contact_mechanism,0,Contact Mechanisms,Mecanismos de contacto,0
 view,party.party,0,Account,Cuenta,0
+view,party.party,0,Accounting,Contabilidad,0
 view,party.party,0,Addresses,Direcciones,0
 view,party.party,0,Categories,Categorías,0
 view,party.party,0,Contact Mechanisms,Mecanismos de contacto,0
+view,party.party,0,General,General,0
 view,party.party,0,_General,_General,0
 view,party.party,0,Parties,Terceros,0
 view,party.party,0,Party,Tercero,0
 view,party.party,0,VAT,VAT,0
-view,party.party.type,0,Party Type,Tipo de Tercero,0
-view,party.party.type,0,Party Types,Tipos de Terceros,0
+wizard_button,"party.check_vies,check,end",0,Ok,Aceptar,0
+wizard_button,"party.check_vies,no_check,end",0,Ok,Aceptar,0
diff --git a/es_ES.csv b/es_ES.csv
index e312437..134f2c3 100644
--- a/es_ES.csv
+++ b/es_ES.csv
@@ -1,29 +1,35 @@
 type,name,res_id,src,value,fuzzy
-error,party.address,0,You can not modify the party of an address!,No puede modificar el tercero de una dirección!,0
-error,party.category,0,You can not create recursive categories!,No puede crear categorías recursivas!,0
-error,party.contact_mechanism,0,You can not modify the party of an contact mechanism!,No puede modificar el tercero de un mecanismo de contacto!,0
-error,party.party,0,The code of the party must be unique!,El código del tercero debe ser único!,0
-error,party.party,0,Wrong VAT number!,Número de VAT erróneo!,0
+error,party.address,0,You can not modify the party of an address!,No puede modificar el tercero de una dirección,0
+error,party.category,0,You can not create recursive categories!,No puede crear categorías recursivas,0
+error,party.check_vies,0,"The VIES service is unavailable, try again later.","El servicio VIES no está disponible, inténtelo de nuevo más tarde",0
+error,party.contact_mechanism,0,You can not modify the party of a contact mechanism!,No puede modificar el tercero de un médio de contacto,0
+error,party.party,0,Invalid VAT number!,,0
+error,party.party,0,The code of the party must be unique!,El código del tercero debe ser único,0
 field,"party.address,active",0,Active,Activo,0
 field,"party.address,city",0,City,Ciudad,0
 field,"party.address,country",0,Country,País,0
-field,"party.address,full_address",0,unknown,desconocid@,0
-field,"party.address,name",0,Name,Nombre de Contacto,0
+field,"party.address,full_address",0,,,0
+field,"party.address,name",0,Name,Contacto,0
 field,"party.address,party",0,Party,Tercero,0
+field,"party.address,rec_name",0,Name,Nombre,0
 field,"party.address,sequence",0,Sequence,Secuencia,0
 field,"party.address,street",0,Street,Calle,0
 field,"party.address,streetbis",0,Street (bis),Calle (bis),0
-field,"party.address,subdivision",0,Subdivision,Subdivisión,0
+field,"party.address,subdivision",0,Subdivision,Provincia,0
 field,"party.address,zip",0,Zip,Código postal,0
 field,"party.category,active",0,Active,Activo,0
-field,"party.category,childs",0,Childs,Hij at s,0
-field,"party.category,complete_name",0,Name,Nombre,0
+field,"party.category,childs",0,Children,Hijos,0
 field,"party.category,name",0,Name,Nombre,0
 field,"party.category,parent",0,Parent,Padre,0
+field,"party.category,rec_name",0,Name,Nombre,0
+field,"party.check_vies.check,parties_failed",0,Parties Failed,Terceros rechazados,0
+field,"party.check_vies.check,parties_succeed",0,Parties Succeed,Terceros aceptados,0
 field,"party.contact_mechanism,active",0,Active,Activo,0
 field,"party.contact_mechanism,comment",0,Comment,Comentario,0
 field,"party.contact_mechanism,email",0,E-Mail,Correo electrónico,0
+field,"party.contact_mechanism,other_value",0,Value,Valor,0
 field,"party.contact_mechanism,party",0,Party,Tercero,0
+field,"party.contact_mechanism,rec_name",0,Name,Nombre,0
 field,"party.contact_mechanism,sequence",0,Sequence,Secuencia,0
 field,"party.contact_mechanism,sip",0,SIP,SIP,0
 field,"party.contact_mechanism,skype",0,Skype,Skype,0
@@ -34,49 +40,64 @@ field,"party.party,active",0,Active,Activo,0
 field,"party.party,addresses",0,Addresses,Direcciones,0
 field,"party.party,categories",0,Categories,Categorías,0
 field,"party.party,code",0,Code,Código,0
-field,"party.party,code_length",0,Code Length,Longitud del Código,0
-field,"party.party,contact_mechanisms",0,Contact Mechanisms,Mecanismos de contacto,0
+field,"party.party,code_length",0,Code Length,Dígitos del código,0
+field,"party.party,contact_mechanisms",0,Contact Mechanisms,Médios de contacto,0
 field,"party.party,email",0,E-Mail,Correo electrónico,0
 field,"party.party,fax",0,Fax,Fax,0
-field,"party.party,full_name",0,unknown,desconocid@,0
+field,"party.party,full_name",0,,,0
 field,"party.party,lang",0,Language,Idioma,0
-field,"party.party,mobile",0,Mobile,Celular,0
+field,"party.party,mobile",0,Mobile,Móvil,0
 field,"party.party,name",0,Name,Nombre,0
+field,"party.party-party.category,category",0,Category,Categoría,0
+field,"party.party-party.category,party",0,Party,Tercero,0
+field,"party.party-party.category,rec_name",0,Name,Nombre,0
 field,"party.party,phone",0,Phone,Teléfono,0
-field,"party.party,vat_code",0,VAT Code,Código de VAT,0
-field,"party.party,vat_country",0,VAT Country,VAT de país,0
-field,"party.party,vat_number",0,VAT Number,Nombre de VAT,0
+field,"party.party,rec_name",0,Name,Nombre,0
+field,"party.party,vat_code",0,VAT Code,NIF,0
+field,"party.party,vat_country",0,VAT Country,País del NIF,0
+field,"party.party,vat_number",0,VAT Number,NIF,0
 field,"party.party,website",0,Website,Sitio Web,0
-help,"party.party,vat_country",0,Setting VAT country will enable verification of the VAT number.,Al especificar el VAT de país se habilitará la verificación del número de VAT.,0
-help,"party.party,vat_number",0,Value Added Tax number,Número de Impuesto de Valor Agregado,0
+help,"party.party,vat_country",0,Setting VAT country will enable validation of the VAT number.,Al especificar el país del NIF se habilitará la verificación de dicho número.,0
+help,"party.party,vat_number",0,Value Added Tax number,Número de identificación fiscal,0
 model,"ir.action,name",act_address_form,Addresses,Direcciones,0
 model,"ir.action,name",act_address_form2,Addresses,Direcciones,0
 model,"ir.action,name",act_category_tree,Categories,Categorías,0
 model,"ir.action,name",act_category_form,Categories,Categorías,0
 model,"ir.action,name",act_category_form2,Categories,Categorías,0
+model,"ir.action,name",wizard_check_vies,Check VIES,Comprobar VIES,0
 model,"ir.action,name",report_label,La_bels,Etiqueta_s,0
 model,"ir.action,name",act_party_form,Parties,Terceros,0
 model,"ir.action,name",act_party_form2,Parties,Terceros,0
-model,"ir.action,name",act_party_by_category,Parties by Category,Terceros por Categoría,0
+model,"ir.action,name",act_party_by_category,Parties by Category,Terceros por categoría,0
+model,"ir.sequence,name",sequence_party,Party,Tercero,0
+model,"ir.sequence.type,name",sequence_type_party,Party,Tercero,0
 model,"ir.ui.menu,name",menu_address_form,Addresses,Direcciones,0
 model,"ir.ui.menu,name",menu_category_tree,Categories,Categorías,0
-model,"ir.ui.menu,name",menu_category_form,Edit Categories,Editar Categorías,0
-model,"ir.ui.menu,name",menu_address_form2,New Address,Nueva Dirección,0
-model,"ir.ui.menu,name",menu_category_form2,New category,Nueva Categoría,0
-model,"ir.ui.menu,name",menu_party_form2,New Party,Nuevo Tercero,0
+model,"ir.ui.menu,name",menu_category_form,Categories,Categorías,0
+model,"ir.ui.menu,name",menu_configuration,Configuration,Configuración,0
+model,"ir.ui.menu,name",menu_address_form2,New Address,Nueva dirección,0
+model,"ir.ui.menu,name",menu_category_form2,New category,Nueva categoría,0
+model,"ir.ui.menu,name",menu_party_form2,New Party,Nuevo tercero,0
 model,"ir.ui.menu,name",menu_party_form,Parties,Terceros,0
-model,"ir.ui.menu,name",menu_party,Party Management,Manejo de Relaciones,0
+model,"ir.ui.menu,name",menu_party,Party Management,Gestión de terceros,0
+model,"party.address,name",0,Address,Dirección,0
+model,"party.category,name",0,Category,Categoría,0
+model,"party.check_vies.check,name",0,Check VIES - Check,Comprobación VIES - Comprobar,0
+model,"party.check_vies.no_check,name",0,Check VIES - No Check,Comprobación VIES - No comprobar,0
+model,"party.contact_mechanism,name",0,Contact Mechanism,Médio de contacto,0
+model,"party.party,name",0,Party,Terceros,1
+model,"party.party-party.category,name",0,Party - Category,Tercero - Categoría,0
+model,"res.group,name",group_party_admin,Party Administration,Administración de terceros,0
 selection,"party.contact_mechanism,type",0,E-Mail,Correo electrónico,0
 selection,"party.contact_mechanism,type",0,Fax,Fax,0
-selection,"party.contact_mechanism,type",0,IRC,Chat,0
+selection,"party.contact_mechanism,type",0,IRC,IRC,0
 selection,"party.contact_mechanism,type",0,Jabber,Jabber,0
-selection,"party.contact_mechanism,type",0,Mobile,Celular,0
+selection,"party.contact_mechanism,type",0,Mobile,Móvil,0
 selection,"party.contact_mechanism,type",0,Other,Otro,0
 selection,"party.contact_mechanism,type",0,Phone,Teléfono,0
 selection,"party.contact_mechanism,type",0,SIP,SIP,0
 selection,"party.contact_mechanism,type",0,Skype,Skype,0
 selection,"party.contact_mechanism,type",0,Website,Sitio Web,0
-selection,"party.party,vat_country",0,,,0
 selection,"party.party,vat_country",0,AL,AL,0
 selection,"party.party,vat_country",0,AT,At,0
 selection,"party.party,vat_country",0,BE,BE,0
@@ -112,15 +133,22 @@ selection,"party.party,vat_country",0,UK,UK,0
 view,party.address,0,Addresses,Direcciones,0
 view,party.category,0,Categories,Categorías,0
 view,party.category,0,Category,Categoría,0
-view,party.contact_mechanism,0,Contact Mechanism,Mecanismo de contacto,0
-view,party.contact_mechanism,0,Contact Mechanisms,Mecanismos de contacto,0
+view,party.check_vies.check,0,Parties Failed,Terceros rechazados,0
+view,party.check_vies.check,0,Parties Succeed,Terceros aceptados,0
+view,party.check_vies.check,0,VAT Information Exchange System Results,Resultado del sistema de intercambio de información de IVA,0
+view,party.check_vies.no_check,0,VAT Information Exchange System,Sistema de intercambio de información de IVA,0
+view,party.check_vies.no_check,0,"You must have a recent version of ""vatnumber"" installed!",Necesita instalar una versión más actualizada de «vatnumber»,0
+view,party.contact_mechanism,0,Contact Mechanism,Médio de contacto,0
+view,party.contact_mechanism,0,Contact Mechanisms,Médio de contacto,0
 view,party.party,0,Account,Cuenta,0
+view,party.party,0,Accounting,Contabilidad,0
 view,party.party,0,Addresses,Direcciones,0
 view,party.party,0,Categories,Categorías,0
-view,party.party,0,Contact Mechanisms,Mecanismos de contacto,0
+view,party.party,0,Contact Mechanisms,Médios de contacto,0
+view,party.party,0,General,General,0
 view,party.party,0,_General,_General,0
 view,party.party,0,Parties,Terceros,0
 view,party.party,0,Party,Tercero,0
-view,party.party,0,VAT,VAT,0
-view,party.party.type,0,Party Type,Tipo de Tercero,0
-view,party.party.type,0,Party Types,Tipos de Terceros,0
+view,party.party,0,VAT,IVA,0
+wizard_button,"party.check_vies,check,end",0,Ok,Aceptar,0
+wizard_button,"party.check_vies,no_check,end",0,Ok,Aceptar,0
diff --git a/fr_FR.csv b/fr_FR.csv
index fab4ef5..66b5876 100644
--- a/fr_FR.csv
+++ b/fr_FR.csv
@@ -1,30 +1,35 @@
 type,name,res_id,src,value,fuzzy
 error,party.address,0,You can not modify the party of an address!,Vous ne pouvez pas modifier le tiers d'une addresse !,0
 error,party.category,0,You can not create recursive categories!,Vous ne pouvez pas créer des catégories récursives !,0
+error,party.check_vies,0,"The VIES service is unavailable, try again later.","Le service VIES n'est pas disponible, veuillez essayer plus tard.",0
 error,party.contact_mechanism,0,You can not modify the party of a contact mechanism!,Vous ne pouvez pas modifiez le tiers d'un moyen de contact.,0
+error,party.party,0,Invalid VAT number!,Numéro TVA non valide !,0
 error,party.party,0,The code of the party must be unique!,Le code tu tiers doit être unique,0
-error,party.party,0,Wrong VAT number!,Mauvais numéro de TVA !,0
 field,"party.address,active",0,Active,Actif,0
 field,"party.address,city",0,City,Ville,0
 field,"party.address,country",0,Country,Pays,0
-field,"party.address,full_address",0,unknown,,0
+field,"party.address,full_address",0,,,0
 field,"party.address,name",0,Name,Nom,0
 field,"party.address,party",0,Party,Tiers,0
+field,"party.address,rec_name",0,Name,Nom,0
 field,"party.address,sequence",0,Sequence,Séquence,0
-field,"party.address,state",0,State,État,0
 field,"party.address,street",0,Street,Rue,0
 field,"party.address,streetbis",0,Street (bis),Rue (bis),0
 field,"party.address,subdivision",0,Subdivision,Subdivision,0
 field,"party.address,zip",0,Zip,Code Postal,0
 field,"party.category,active",0,Active,Actif,0
-field,"party.category,childs",0,Childs,Enfants,0
-field,"party.category,complete_name",0,Name,Nom,0
+field,"party.category,childs",0,Children,Enfants,0
 field,"party.category,name",0,Name,Nom,0
 field,"party.category,parent",0,Parent,Parent,0
+field,"party.category,rec_name",0,Name,Nom,0
+field,"party.check_vies.check,parties_failed",0,Parties Failed,Tiers non validés,0
+field,"party.check_vies.check,parties_succeed",0,Parties Succeed,Tiers validés,0
 field,"party.contact_mechanism,active",0,Active,Actif,0
 field,"party.contact_mechanism,comment",0,Comment,Commentaire,0
 field,"party.contact_mechanism,email",0,E-Mail,E-mail,0
-field,"party.contact_mechanism,party",0,Party,Tier,0
+field,"party.contact_mechanism,other_value",0,Value,Valeur,0
+field,"party.contact_mechanism,party",0,Party,Tiers,0
+field,"party.contact_mechanism,rec_name",0,Name,Nom,0
 field,"party.contact_mechanism,sequence",0,Sequence,Séquence,0
 field,"party.contact_mechanism,sip",0,SIP,SIP,0
 field,"party.contact_mechanism,skype",0,Skype,Skype,0
@@ -37,34 +42,52 @@ field,"party.party,categories",0,Categories,Catégories,0
 field,"party.party,code",0,Code,Code,0
 field,"party.party,code_length",0,Code Length,Longueur du code,0
 field,"party.party,contact_mechanisms",0,Contact Mechanisms,Moyens de contact,0
-field,"party.party,full_name",0,unknown,,0
+field,"party.party,email",0,E-Mail,E-Mail,0
+field,"party.party,fax",0,Fax,Fax,0
+field,"party.party,full_name",0,,,0
 field,"party.party,lang",0,Language,Langue,0
+field,"party.party,mobile",0,Mobile,Mobile,0
 field,"party.party,name",0,Name,Nom,0
-field,"party.party,type",0,Type,Type,0
-field,"party.party.type,name",0,Name,Nom,0
+field,"party.party-party.category,category",0,Category,Catégorie,0
+field,"party.party-party.category,party",0,Party,Tiers,0
+field,"party.party-party.category,rec_name",0,Name,Nom,0
+field,"party.party,phone",0,Phone,Téléphone,0
+field,"party.party,rec_name",0,Name,Nom,0
 field,"party.party,vat_code",0,VAT Code,Code TVA,0
 field,"party.party,vat_country",0,VAT Country,Code Pays TVA,0
 field,"party.party,vat_number",0,VAT Number,Numéro de TVA,0
 field,"party.party,website",0,Website,Site web,0
-help,"party.party,vat_country",0,Setting VAT country will enable verification of the VAT number.,Mettre un code pays TVA activera la vérification du numéro de TVA.,0
+help,"party.party,vat_country",0,Setting VAT country will enable validation of the VAT number.,Ajouter un code pays TVA activera la vérification du numéro de TVA.,0
 help,"party.party,vat_number",0,Value Added Tax number,Numéro de taxe sur la valeur ajoutée,0
 model,"ir.action,name",act_address_form,Addresses,Adresses,0
 model,"ir.action,name",act_address_form2,Addresses,Adresses,0
 model,"ir.action,name",act_category_tree,Categories,Catégories,0
 model,"ir.action,name",act_category_form,Categories,Catégories,0
 model,"ir.action,name",act_category_form2,Categories,Catégories,0
+model,"ir.action,name",wizard_check_vies,Check VIES,Validation VIES,0
 model,"ir.action,name",report_label,La_bels,É_tiquettes,0
 model,"ir.action,name",act_party_form,Parties,Tiers,0
 model,"ir.action,name",act_party_form2,Parties,Tiers,0
 model,"ir.action,name",act_party_by_category,Parties by Category,Tiers par catégorie,0
+model,"ir.sequence,name",sequence_party,Party,Tiers,0
+model,"ir.sequence.type,name",sequence_type_party,Party,Tiers,0
 model,"ir.ui.menu,name",menu_address_form,Addresses,Adresses,0
 model,"ir.ui.menu,name",menu_category_tree,Categories,Catégories,0
-model,"ir.ui.menu,name",menu_category_form,Edit Categories,Editer les Catégories,0
+model,"ir.ui.menu,name",menu_category_form,Categories,Editer les catégories,0
+model,"ir.ui.menu,name",menu_configuration,Configuration,Configuration,0
 model,"ir.ui.menu,name",menu_address_form2,New Address,Nouvelle adresse,0
 model,"ir.ui.menu,name",menu_category_form2,New category,Nouvelle catégorie,0
 model,"ir.ui.menu,name",menu_party_form2,New Party,Nouveau tiers,0
 model,"ir.ui.menu,name",menu_party_form,Parties,Tiers,0
 model,"ir.ui.menu,name",menu_party,Party Management,Gestion des relations,0
+model,"party.address,name",0,Address,Adresse,0
+model,"party.category,name",0,Category,Catégorie,0
+model,"party.check_vies.check,name",0,Check VIES - Check,Validation VIES - Validé,0
+model,"party.check_vies.no_check,name",0,Check VIES - No Check,Validation VIES - Non validé,0
+model,"party.contact_mechanism,name",0,Contact Mechanism,Moyen de contact,0
+model,"party.party,name",0,Party,Tiers,0
+model,"party.party-party.category,name",0,Party - Category,Tier - Catégorie,0
+model,"res.group,name",group_party_admin,Party Administration,Administration des tiers,0
 selection,"party.contact_mechanism,type",0,E-Mail,E-Mail,0
 selection,"party.contact_mechanism,type",0,Fax,Fax,0
 selection,"party.contact_mechanism,type",0,IRC,IRC,0
@@ -79,6 +102,11 @@ selection,"party.party,vat_country",0,,,0
 view,party.address,0,Addresses,Adresses,0
 view,party.category,0,Categories,Catégories,0
 view,party.category,0,Category,Catégorie,0
+view,party.check_vies.check,0,Parties Failed,Tiers non validés,0
+view,party.check_vies.check,0,Parties Succeed,Tiers validés,0
+view,party.check_vies.check,0,VAT Information Exchange System Results,Système d'échange d'information TVA - Résultats,0
+view,party.check_vies.no_check,0,VAT Information Exchange System,Système d'échange d'information TVA,0
+view,party.check_vies.no_check,0,"You must have a recent version of ""vatnumber"" installed!","Vous devez avoir une version récente de ""vatnumber"" installée !",0
 view,party.contact_mechanism,0,Contact Mechanism,Moyen de contact,0
 view,party.contact_mechanism,0,Contact Mechanisms,Moyens de contact,0
 view,party.party,0,Accounting,Comptabilité,0
@@ -91,6 +119,6 @@ view,party.party,0,_General,_Général,0
 view,party.party,0,Parties,Tiers,0
 view,party.party,0,Party,Tiers,0
 view,party.party,0,Properties,Propriétés,0
-view,party.party,0,VAT,,0
-view,party.party.type,0,Party Type,Type de Tiers,0
-view,party.party.type,0,Party Types,Types de Tiers,0
+view,party.party,0,VAT,TVA,0
+wizard_button,"party.check_vies,check,end",0,Ok,Ok,0
+wizard_button,"party.check_vies,no_check,end",0,Ok,Ok,0
diff --git a/label.odt b/label.odt
index 1b43909..154c9e6 100644
Binary files a/label.odt and b/label.odt differ
diff --git a/party.py b/party.py
index 5fc7f98..217f7ae 100644
--- a/party.py
+++ b/party.py
@@ -1,6 +1,7 @@
 #This file is part of Tryton.  The COPYRIGHT file at the top level of
 #this repository contains the full copyright notices and license terms.
-from trytond.osv import fields, OSV
+from trytond.model import ModelView, ModelSQL, fields
+from trytond.wizard import Wizard
 import logging
 
 HAS_VATNUMBER = False
@@ -12,14 +13,14 @@ try:
         VAT_COUNTRIES.append((country, country))
 except ImportError:
     logging.getLogger('party').warning(
-            'Unable to import vatnumber. VAT number validation disable.')
+            'Unable to import vatnumber. VAT number validation disabled.')
 
 STATES = {
     'readonly': "active == False",
 }
 
 
-class Party(OSV):
+class Party(ModelSQL, ModelView):
     "Party"
     _description = __doc__
     _name = "party.party"
@@ -34,17 +35,16 @@ class Party(OSV):
     vat_number = fields.Char('VAT Number', help="Value Added Tax number",
             states=STATES)
     vat_country = fields.Selection(VAT_COUNTRIES, 'VAT Country', states=STATES,
-        help="Setting VAT country will enable verification of the VAT number.")
+        help="Setting VAT country will enable validation of the VAT number.",
+        translate=False)
     vat_code = fields.Function('get_vat_code', type='char', string="VAT Code",
             fnct_search='search_vat_code')
     addresses = fields.One2Many('party.address', 'party',
            'Addresses', states=STATES)
     contact_mechanisms = fields.One2Many('party.contact_mechanism', 'party',
             'Contact Mechanisms', states=STATES)
-    categories = fields.Many2Many(
-            'party.category', 'party_category_rel',
-            'party', 'category', 'Categories',
-            states=STATES)
+    categories = fields.Many2Many('party.party-party.category',
+            'party', 'category', 'Categories', states=STATES)
     active = fields.Boolean('Active', select=1)
     full_name = fields.Function('get_full_name', type='char')
     phone = fields.Function('get_mechanism', arg='phone', type='char',
@@ -65,12 +65,12 @@ class Party(OSV):
              'The code of the party must be unique!')
         ]
         self._constraints += [
-            ('check_vat', 'wrong_vat'),
+            ('check_vat', 'invalid_vat'),
         ]
         self._error_messages.update({
-            'wrong_vat': 'Wrong VAT number!',
+            'invalid_vat': 'Invalid VAT number!',
         })
-        self._order.insert(0, ('name', 'DESC'))
+        self._order.insert(0, ('name', 'ASC'))
 
     def default_active(self, cursor, user, context=None):
         return True
@@ -94,7 +94,9 @@ class Party(OSV):
         while i < len(args):
             value = args[i][2]
             for country, _ in VAT_COUNTRIES:
-                if value.startswith(country) and country:
+                if isinstance(value, basestring) \
+                        and country \
+                        and value.upper().startswith(country):
                     args2.append(('vat_country', '=', country))
                     value = value[len(country):]
                     break
@@ -119,13 +121,14 @@ class Party(OSV):
             for mechanism in party.contact_mechanisms:
                 if mechanism.type == arg:
                     res[party.id] = mechanism.value
+                    break
         return res
 
     def create(self, cursor, user, values, context=None):
         values = values.copy()
         if not values.get('code'):
             values['code'] = self.pool.get('ir.sequence').get(
-                    cursor, user, 'party.party')
+                    cursor, user, 'party.party', context=context)
         values['code_length'] = len(values['code'])
         return super(Party, self).create(cursor, user, values, context=context)
 
@@ -135,24 +138,45 @@ class Party(OSV):
             vals['code_length'] = len(vals['code'])
         return super(Party, self).write(cursor, user, ids, vals, context=context)
 
-    def copy(self, cursor, user, object_id, default=None, context=None):
+    def copy(self, cursor, user, ids, default=None, context=None):
+        address_obj = self.pool.get('party.address')
+
+        int_id = False
+        if isinstance(ids, (int, long)):
+            int_id = True
+            ids = [ids]
+
         if default is None:
             default = {}
         default = default.copy()
         default['code'] = False
-        return super(Party, self).copy(cursor, user, object_id, default=default,
-                context=context)
-
-    def name_search(self, cursor, user, name, args=None, operator='ilike',
-            context=None, limit=None):
-        if not args:
-            args = []
-        ids = self.search(cursor, user, [('code', '=', name)] + args,
-                limit=limit, context=context)
-        if ids:
-            return self.name_get(cursor, user, ids, context=context)
-        return super(Party, self).name_search(cursor, user, name,
-                args=args, operator=operator, context=context, limit=limit)
+        default['addresses'] = False
+        new_ids = []
+        for party in self.browse(cursor, user, ids, context=context):
+            new_id = super(Party, self).copy(cursor, user, party.id,
+                    default=default, context=context)
+            address_obj.copy(cursor, user, [x.id for x in party.addresses],
+                    default={
+                        'party': new_id,
+                        }, context=context)
+            new_ids.append(new_id)
+
+        if int_id:
+            return new_ids[0]
+        return new_ids
+
+    def search_rec_name(self, cursor, user, name, args, context=None):
+        args2 = []
+        i = 0
+        while i < len(args):
+            ids = self.search(cursor, user, [('code', '=', args[i][2])],
+                    context=context)
+            if ids:
+                args2.append(('id', 'in', ids))
+            else:
+                args2.append(('name', args[i][1], args[i][2]))
+            i += 1
+        return args2
 
     def address_get(self, cursor, user, party_id, type=None, context=None):
         """
@@ -201,3 +225,116 @@ class Party(OSV):
         return True
 
 Party()
+
+
+class PartyCategory(ModelSQL):
+    'Party - Category'
+    _name = 'party.party-party.category'
+    _table = 'party_category_rel'
+    _description = __doc__
+    party = fields.Many2One('party.party', 'Party', ondelete='CASCADE',
+            required=True, select=1)
+    category = fields.Many2One('party.category', 'Category', ondelete='CASCADE',
+            required=True, select=1)
+
+PartyCategory()
+
+
+class CheckVIESNoCheck(ModelView):
+    'Check VIES - No Check'
+    _name = 'party.check_vies.no_check'
+    _description = __doc__
+
+CheckVIESNoCheck()
+
+
+class CheckVIESCheck(ModelView):
+    'Check VIES - Check'
+    _name = 'party.check_vies.check'
+    _description = __doc__
+    parties_succeed = fields.Many2Many('party.party', None, None,
+            'Parties Succeed', readonly=True, states={
+                'invisible': "not bool(parties_succeed)",
+                })
+    parties_failed = fields.Many2Many('party.party', None, None,
+            'Parties Failed', readonly=True, states={
+                'invisible': "not bool(parties_failed)",
+                })
+
+CheckVIESCheck()
+
+
+class CheckVIES(Wizard):
+    'Check VIES'
+    _name = 'party.check_vies'
+    states = {
+        'init': {
+            'result': {
+                'type': 'choice',
+                'next_state': '_choice',
+            },
+        },
+        'no_check': {
+            'result': {
+                'type': 'form',
+                'object': 'party.check_vies.no_check',
+                'state': [
+                    ('end', 'Ok', 'tryton-ok', True),
+                ],
+            },
+        },
+        'check': {
+            'actions': ['_check'],
+            'result': {
+                'type': 'form',
+                'object': 'party.check_vies.check',
+                'state': [
+                    ('end', 'Ok', 'tryton-ok', True),
+                ],
+            },
+        },
+    }
+
+    def __init__(self):
+        super(CheckVIES, self).__init__()
+        self._error_messages.update({
+            'vies_unavailable': 'The VIES service is unavailable, ' \
+                    'try again later.',
+            })
+
+    def _choice(self, cursor, user, data, context=None):
+        if not HAS_VATNUMBER or not hasattr(vatnumber, 'check_vies'):
+            return 'no_check'
+        return 'check'
+
+    def _check(self, cursor, user, data, context=None):
+        party_obj = self.pool.get('party.party')
+        res = {
+            'parties_succeed': [],
+            'parties_failed': [],
+        }
+        parties = party_obj.browse(cursor, user, data['ids'], context=context)
+        for party in parties:
+            if not party.vat_code:
+                continue
+            try:
+                if not vatnumber.check_vies(party.vat_code):
+                    res['parties_failed'].append(party.id)
+                else:
+                    res['parties_succeed'].append(party.id)
+            except Exception, e:
+                if hasattr(e, 'faultstring') \
+                        and hasattr(e.faultstring, 'find'):
+                    if e.faultstring.find('INVALID_INPUT'):
+                        res['parties_failed'].append(party.id)
+                        continue
+                    if e.faultstring.find('SERVICE_UNAVAILABLE') \
+                            or e.faultstring.find('MS_UNAVAILABLE') \
+                            or e.faultstring.find('TIMEOUT') \
+                            or e.faultstring.find('SERVER_BUSY'):
+                        self.raise_user_error(cursor, 'vies_unavailable',
+                                context=context)
+                raise e
+        return res
+
+CheckVIES()
diff --git a/party.xml b/party.xml
index d858ccb..43dca30 100644
--- a/party.xml
+++ b/party.xml
@@ -13,6 +13,10 @@ this repository contains the full copyright notices and license terms. -->
         <menuitem name="Party Management" sequence="0" id="menu_party"
             icon="tryton-users"/>
 
+        <menuitem name="Configuration" parent="menu_party"
+            id="menu_configuration" groups="group_party_admin"
+            sequence="0" icon="tryton-preferences"/>
+
         <record model="ir.ui.view" id="party_view_tree">
             <field name="model">party.party</field>
             <field name="type">tree</field>
@@ -23,9 +27,6 @@ this repository contains the full copyright notices and license terms. -->
                     <field name="name" select="1"/>
                     <field name="lang" select="2"/>
                     <field name="vat_code" select="1"/>
-                    <field name="active" select="2" tree_invisible="1"/>
-                    <field name="vat_country" select="2" tree_invisible="1"/>
-                    <field name="vat_number" select="2" tree_invisible="1"/>
                 </tree>
                 ]]>
             </field>
@@ -43,11 +44,10 @@ this repository contains the full copyright notices and license terms. -->
                     <label name="active"/>
                     <field name="active" xexpand="0" width="100"/>
                     <notebook colspan="6">
-                        <page string="_General">
+                        <page string="General" id="general">
                             <field name="addresses" mode="form,tree" colspan="4">
                                 <tree string="Addresses" sequence="sequence"
                                     fill="1">
-                                    <field name="sequence" tree_invisible="1"/>
                                     <field name="name"/>
                                     <field name="street"/>
                                     <field name="streetbis"/>
@@ -57,26 +57,25 @@ this repository contains the full copyright notices and license terms. -->
                                     <field name="subdivision"/>
                                 </tree>
                             </field>
-                            <group col="2" colspan="4">
+                            <group col="2" colspan="4" id="lang">
                                 <label name="lang"/>
                                 <field name="lang" widget="selection"/>
                             </group>
                             <field name="contact_mechanisms" colspan="2">
                                 <tree string="Contact Mechanisms" sequence="sequence"
                                     fill="1">
-                                    <field name="sequence" tree_invisible="1"/>
                                     <field name="type"/>
                                     <field name="value"/>
                                     <field name="comment"/>
                                 </tree>
                             </field>
-                            <group col="1" colspan="2">
-                                <separator string="Categories"/>
+                            <group col="1" colspan="2" id="categories">
+                                <separator string="Categories" id="categories"/>
                                 <field name="categories"/>
                             </group>
                         </page>
-                        <page string="_Accounting">
-                            <separator string="VAT" colspan="4"/>
+                        <page string="Accounting" id="accounting">
+                            <separator string="VAT" colspan="4" id="vat"/>
                             <label name="vat_country"/>
                             <field name="vat_country"/>
                             <label name="vat_number"/>
@@ -153,5 +152,56 @@ this repository contains the full copyright notices and license terms. -->
             <field name="name">Party</field>
             <field name="code">party.party</field>
         </record>
+
+        <record model="ir.action.wizard" id="wizard_check_vies">
+            <field name="name">Check VIES</field>
+            <field name="wiz_name">party.check_vies</field>
+            <field name="model">party.party</field>
+        </record>
+        <record model="ir.action.keyword" id="check_vies_keyword">
+            <field name="keyword">form_action</field>
+            <field name="model">party.party,0</field>
+            <field name="action" ref="wizard_check_vies"/>
+        </record>
+
+        <record model="ir.ui.view" id="check_vies_no_check">
+            <field name="model">party.check_vies.no_check</field>
+            <field name="type">form</field>
+            <field name="arch" type="xml">
+                <![CDATA[
+                <form string="VAT Information Exchange System">
+                    <label string="You must have a recent version of "vatnumber" installed!" id="vatnumber"/>
+                </form>
+                ]]>
+            </field>
+        </record>
+
+        <record model="ir.ui.view" id="check_vies_check">
+            <field name="model">party.check_vies.check</field>
+            <field name="type">form</field>
+            <field name="arch" type="xml">
+                <![CDATA[
+                <form string="VAT Information Exchange System Results" col="1">
+                    <separator name="parties_succeed"/>
+                    <field name="parties_succeed">
+                        <tree string="Parties Succeed" fill="1">
+                            <field name="code"/>
+                            <field name="name"/>
+                            <field name="vat_code"/>
+                        </tree>
+                    </field>
+                    <separator name="parties_failed"/>
+                    <field name="parties_failed">
+                        <tree string="Parties Failed" fill="1">
+                            <field name="code"/>
+                            <field name="name"/>
+                            <field name="vat_code"/>
+                        </tree>
+                    </field>
+                </form>
+                ]]>
+            </field>
+        </record>
+
     </data>
 </tryton>
diff --git a/tests/test_party.py b/tests/test_party.py
index 6912d07..0b68c8d 100644
--- a/tests/test_party.py
+++ b/tests/test_party.py
@@ -9,8 +9,8 @@ if os.path.isdir(DIR):
     sys.path.insert(0, os.path.dirname(DIR))
 
 import unittest
-import trytond.tests
-from trytond.tests import RPCProxy, CONTEXT, SOCK
+import trytond.tests.test_tryton
+from trytond.tests.test_tryton import RPCProxy, CONTEXT, SOCK
 
 
 class PartyTestCase(unittest.TestCase):
@@ -19,7 +19,7 @@ class PartyTestCase(unittest.TestCase):
     '''
 
     def setUp(self):
-        trytond.tests.install_module('party')
+        trytond.tests.test_tryton.install_module('party')
         self.category = RPCProxy('party.category')
         self.party = RPCProxy('party.party')
         self.address = RPCProxy('party.address')
@@ -99,7 +99,7 @@ def suite():
     return unittest.TestLoader().loadTestsFromTestCase(PartyTestCase)
 
 if __name__ == '__main__':
-    suiteTrytond = trytond.tests.suite()
+    suiteTrytond = trytond.tests.test_tryton.suite()
     suiteParty = suite()
     alltests = unittest.TestSuite([suiteTrytond, suiteParty])
     unittest.TextTestRunner(verbosity=2).run(alltests)
diff --git a/trytond_party.egg-info/PKG-INFO b/trytond_party.egg-info/PKG-INFO
index 8034c03..4d7d7ba 100644
--- a/trytond_party.egg-info/PKG-INFO
+++ b/trytond_party.egg-info/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 1.0
 Name: trytond-party
-Version: 1.0.2
+Version: 1.2.0
 Summary: Define parties, addresses and co.
 Home-page: http://www.tryton.org/
 Author: B2CK
 Author-email: info at b2ck.com
 License: GPL-3
-Download-URL: http://downloads.tryton.org/1.0/
+Download-URL: http://downloads.tryton.org/1.2/
 Description: UNKNOWN
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
diff --git a/trytond_party.egg-info/SOURCES.txt b/trytond_party.egg-info/SOURCES.txt
index 6b56dac..00372d1 100644
--- a/trytond_party.egg-info/SOURCES.txt
+++ b/trytond_party.egg-info/SOURCES.txt
@@ -8,6 +8,7 @@ address.xml
 category.xml
 contact_mechanism.xml
 de_DE.csv
+es_CO.csv
 es_ES.csv
 fr_FR.csv
 label.odt
diff --git a/trytond_party.egg-info/requires.txt b/trytond_party.egg-info/requires.txt
index b9524f8..94fd517 100644
--- a/trytond_party.egg-info/requires.txt
+++ b/trytond_party.egg-info/requires.txt
@@ -1,6 +1,6 @@
 trytond_country
-trytond >= 1.0
-trytond < 1.1
+trytond >= 1.2
+trytond < 1.3
 
 [VAT]
 vatnumber
\ No newline at end of file
commit 4bdfdb40156c072072ff0fb452a6b9c7fecdd3d0
Author: Daniel Baumann <daniel at debian.org>
Date:   Sat Mar 28 16:33:19 2009 +0100

    Releasing debian version 1.0.2-2.

diff --git a/debian/changelog b/debian/changelog
index db08658..cbfb48d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+tryton-modules-party (1.0.2-2) unstable; urgency=low
+
+  * Adding Mathias to uploaders.
+
+ -- Daniel Baumann <daniel at debian.org>  Sat, 28 Mar 2009 16:32:00 +0100
+
 tryton-modules-party (1.0.2-1) unstable; urgency=low
 
   * Merging upstream version 1.0.2.
commit 9223f8d3ac19398955aeb0337703adbd6a6bf446
Author: Daniel Baumann <daniel at debian.org>
Date:   Sat Mar 28 16:13:20 2009 +0100

    Adding Mathias to uploaders.

diff --git a/debian/control b/debian/control
index f93585f..7bf494d 100644
--- a/debian/control
+++ b/debian/control
@@ -2,6 +2,7 @@ Source: tryton-modules-party
 Section: python
 Priority: optional
 Maintainer: Daniel Baumann <daniel at debian.org>
+Uploaders: Mathias Behrle <mathiasb at mbsolutions.selfip.biz>
 Build-Depends: debhelper (>= 7), python, python-all-dev, python-setuptools, python-support
 Standards-Version: 3.8.1
 Homepage: http://www.tryton.org/
commit 011d8c260bde6f0162370b55c6c09c753657bf37
Author: Daniel Baumann <daniel at debian.org>
Date:   Mon Mar 23 07:08:53 2009 +0100

    Releasing debian version 1.0.2-1.

diff --git a/debian/changelog b/debian/changelog
index a26cb14..db08658 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+tryton-modules-party (1.0.2-1) unstable; urgency=low
+
+  * Merging upstream version 1.0.2.
+
+ -- Daniel Baumann <daniel at debian.org>  Mon, 23 Mar 2009 07:08:00 +0100
+
 tryton-modules-party (1.0.1-1) unstable; urgency=low
 
   * Merging upstream version 1.0.1.
commit 8c662c8b247edb13ab909831436cd419d694192f
Author: Daniel Baumann <daniel at debian.org>
Date:   Mon Mar 23 07:08:20 2009 +0100

    Merging upstream version 1.0.2.

diff --git a/CHANGELOG b/CHANGELOG
index 0e6e3da..4b867f8 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+Version 1.0.2 - 2009-01-06
+* Some bug fixes (see mercurial logs for details)
+
 Version 1.0.1 - 2008-12-01
 * Add default categories on party with context
 * Allow egg installation
diff --git a/PKG-INFO b/PKG-INFO
index 49c7632..280d889 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.0
 Name: trytond_party
-Version: 1.0.1
+Version: 1.0.2
 Summary: Define parties, addresses and co.
 Home-page: http://www.tryton.org/
 Author: B2CK
diff --git a/__tryton__.py b/__tryton__.py
index 78152fd..f8ff817 100644
--- a/__tryton__.py
+++ b/__tryton__.py
@@ -6,7 +6,7 @@
     'name_fr_FR': 'Tiers',
     'name_de_DE': 'Kontakte',
     'name_es_ES': 'Terceros',
-    'version' : '1.0.1',
+    'version' : '1.0.2',
     'author' : 'B2CK',
     'email': 'info at b2ck.com',
     'website': 'http://www.tryton.org/',
diff --git a/party.py b/party.py
index 9b8f516..5fc7f98 100644
--- a/party.py
+++ b/party.py
@@ -35,7 +35,8 @@ class Party(OSV):
             states=STATES)
     vat_country = fields.Selection(VAT_COUNTRIES, 'VAT Country', states=STATES,
         help="Setting VAT country will enable verification of the VAT number.")
-    vat_code = fields.Function('get_vat_code', type='char', string="VAT Code")
+    vat_code = fields.Function('get_vat_code', type='char', string="VAT Code",
+            fnct_search='search_vat_code')
     addresses = fields.One2Many('party.address', 'party',
            'Addresses', states=STATES)
     contact_mechanisms = fields.One2Many('party.contact_mechanism', 'party',
@@ -87,6 +88,20 @@ class Party(OSV):
             res[party.id] = (party.vat_country or '') + (party.vat_number or '')
         return res
 
+    def search_vat_code(self, cursor, user, name, args, context=None):
+        args2 = []
+        i = 0
+        while i < len(args):
+            value = args[i][2]
+            for country, _ in VAT_COUNTRIES:
+                if value.startswith(country) and country:
+                    args2.append(('vat_country', '=', country))
+                    value = value[len(country):]
+                    break
+            args2.append(('vat_number', args[i][1], value))
+            i += 1
+        return args2
+
     def get_full_name(self, cursor, user, ids, name, arg, context=None):
         if not ids:
             return []
diff --git a/trytond_party.egg-info/PKG-INFO b/trytond_party.egg-info/PKG-INFO
index bd4feda..8034c03 100644
--- a/trytond_party.egg-info/PKG-INFO
+++ b/trytond_party.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.0
 Name: trytond-party
-Version: 1.0.1
+Version: 1.0.2
 Summary: Define parties, addresses and co.
 Home-page: http://www.tryton.org/
 Author: B2CK
commit bb91cacf2108ef999cb4b8447a10d34622daa601
Author: Daniel Baumann <daniel at debian.org>
Date:   Sun Mar 22 23:21:42 2009 +0100

    Releasing debian version 1.0.1-1.

diff --git a/debian/changelog b/debian/changelog
index 9a1d194..a26cb14 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+tryton-modules-party (1.0.1-1) unstable; urgency=low
+
+  * Merging upstream version 1.0.1.
+  * Updating standards to 3.8.1.
+  * Making package arch all as it should be (Closes: #520803).
+
+ -- Daniel Baumann <daniel at debian.org>  Sun, 22 Mar 2009 23:21:00 +0100
+
 tryton-modules-party (1.0.0-1) unstable; urgency=low
 
   * Initial release (Closes: #506095).
commit bc65bb480d7149831c51a01a055d3da770579a0c
Author: Daniel Baumann <daniel at debian.org>
Date:   Sun Mar 22 23:21:18 2009 +0100

    Making package arch all as it should be (Closes: #520803).

diff --git a/debian/control b/debian/control
index 8c2f2c2..f93585f 100644
--- a/debian/control
+++ b/debian/control
@@ -9,7 +9,7 @@ Vcs-Browser: http://git.debian.net/?p=debian/tryton-modules-party.git
 Vcs-Git: git://git.debian.net/git/debian/tryton-modules-party.git
 
 Package: tryton-modules-party
-Architecture: any
+Architecture: all
 Depends: ${misc:Depends}, ${python:Depends}, tryton-server, tryton-modules-country, python-pkg-resources
 Recommends: python-vatnumber
 XB-Python-Version: ${python:Versions}
commit 248c8fecb16ab6aa979bfe2122a0577d58526194
Author: Daniel Baumann <daniel at debian.org>
Date:   Sun Mar 22 23:20:37 2009 +0100

    Updating standards to 3.8.1.

diff --git a/debian/control b/debian/control
index e5687f9..8c2f2c2 100644
--- a/debian/control
+++ b/debian/control
@@ -3,7 +3,7 @@ Section: python
 Priority: optional
 Maintainer: Daniel Baumann <daniel at debian.org>
 Build-Depends: debhelper (>= 7), python, python-all-dev, python-setuptools, python-support
-Standards-Version: 3.8.0
+Standards-Version: 3.8.1
 Homepage: http://www.tryton.org/
 Vcs-Browser: http://git.debian.net/?p=debian/tryton-modules-party.git
 Vcs-Git: git://git.debian.net/git/debian/tryton-modules-party.git
commit 1f43dae3bf7940757600156477c859174a922f24
Author: Daniel Baumann <daniel at debian.org>
Date:   Wed Jan 28 14:13:57 2009 +0100

    Merging upstream version 1.0.1.

diff --git a/CHANGELOG b/CHANGELOG
index eacaaef..0e6e3da 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,2 +1,6 @@
+Version 1.0.1 - 2008-12-01
+* Add default categories on party with context
+* Allow egg installation
+
 Version 1.0.0 - 2008-11-17
 * Initial release
diff --git a/PKG-INFO b/PKG-INFO
index 377fe88..49c7632 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,11 +1,12 @@
 Metadata-Version: 1.0
 Name: trytond_party
-Version: 1.0.0
+Version: 1.0.1
 Summary: Define parties, addresses and co.
 Home-page: http://www.tryton.org/
 Author: B2CK
 Author-email: info at b2ck.com
 License: GPL-3
+Download-URL: http://downloads.tryton.org/1.0/
 Description: UNKNOWN
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
diff --git a/__tryton__.py b/__tryton__.py
index 53a588e..78152fd 100644
--- a/__tryton__.py
+++ b/__tryton__.py
@@ -6,7 +6,7 @@
     'name_fr_FR': 'Tiers',
     'name_de_DE': 'Kontakte',
     'name_es_ES': 'Terceros',
-    'version' : '1.0.0',
+    'version' : '1.0.1',
     'author' : 'B2CK',
     'email': 'info at b2ck.com',
     'website': 'http://www.tryton.org/',
diff --git a/contact_mechanism.py b/contact_mechanism.py
index 05e0464..3a1105c 100644
--- a/contact_mechanism.py
+++ b/contact_mechanism.py
@@ -31,7 +31,7 @@ class ContactMechanism(OSV):
             sort=False)
     value = fields.Char('Value', select=1,
             states={
-                'invisible': "type in ('email', 'website')",
+                'invisible': "type in ('email', 'website', 'skype', 'sip')",
                 'required': "type not in ('email', 'website')",
                 'readonly': "active == False",
             }, on_change=['value'])
diff --git a/party.py b/party.py
index da7a4e6..9b8f516 100644
--- a/party.py
+++ b/party.py
@@ -74,6 +74,11 @@ class Party(OSV):
     def default_active(self, cursor, user, context=None):
         return True
 
+    def default_categories(self, cursor, user, context=None):
+        if context is None:
+            context = {}
+        return context.get('categories', [])
+
     def get_vat_code(self, cursor, user, ids, name, arg, context=None):
         if not ids:
             return []
diff --git a/party.xml b/party.xml
index 8d4777a..d858ccb 100644
--- a/party.xml
+++ b/party.xml
@@ -125,6 +125,7 @@ this repository contains the full copyright notices and license terms. -->
             <field name="name">Parties by Category</field>
             <field name="res_model">party.party</field>
             <field name="view_type">form</field>
+            <field name="context">{'categories': [active_id]}</field>
             <field name="domain">[('categories', 'child_of', [active_id], 'parent')]</field>
         </record>
         <record model="ir.action.keyword" id="act_party_by_category_keyword1">
diff --git a/setup.py b/setup.py
index 59c5d4a..55e4065 100644
--- a/setup.py
+++ b/setup.py
@@ -27,6 +27,8 @@ setup(name='trytond_party',
     author=info.get('author', ''),
     author_email=info.get('email', ''),
     url=info.get('website', ''),
+    download_url="http://downloads.tryton.org/" + \
+            info.get('version', '0.0.1').rsplit('.', 1)[0] + '/',
     package_dir={'trytond.modules.party': '.'},
     packages=[
         'trytond.modules.party',
@@ -57,4 +59,9 @@ setup(name='trytond_party',
     extras_require={
         'VAT': ['vatnumber'],
     },
+    zip_safe=False,
+    entry_points="""
+    [trytond.modules]
+    party = trytond.modules.party
+    """,
 )
diff --git a/trytond_party.egg-info/PKG-INFO b/trytond_party.egg-info/PKG-INFO
index c2800db..bd4feda 100644
--- a/trytond_party.egg-info/PKG-INFO
+++ b/trytond_party.egg-info/PKG-INFO
@@ -1,11 +1,12 @@
 Metadata-Version: 1.0
 Name: trytond-party
-Version: 1.0.0
+Version: 1.0.1
 Summary: Define parties, addresses and co.
 Home-page: http://www.tryton.org/
 Author: B2CK
 Author-email: info at b2ck.com
 License: GPL-3
+Download-URL: http://downloads.tryton.org/1.0/
 Description: UNKNOWN
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
diff --git a/trytond_party.egg-info/SOURCES.txt b/trytond_party.egg-info/SOURCES.txt
index 9802c27..6b56dac 100644
--- a/trytond_party.egg-info/SOURCES.txt
+++ b/trytond_party.egg-info/SOURCES.txt
@@ -24,5 +24,7 @@ tests/test_party.py
 trytond_party.egg-info/PKG-INFO
 trytond_party.egg-info/SOURCES.txt
 trytond_party.egg-info/dependency_links.txt
+trytond_party.egg-info/entry_points.txt
+trytond_party.egg-info/not-zip-safe
 trytond_party.egg-info/requires.txt
 trytond_party.egg-info/top_level.txt
\ No newline at end of file
diff --git a/trytond_party.egg-info/entry_points.txt b/trytond_party.egg-info/entry_points.txt
new file mode 100644
index 0000000..3c1012d
--- /dev/null
+++ b/trytond_party.egg-info/entry_points.txt
@@ -0,0 +1,4 @@
+
+    [trytond.modules]
+    party = trytond.modules.party
+    
\ No newline at end of file
diff --git a/trytond_party.egg-info/not-zip-safe b/trytond_party.egg-info/not-zip-safe
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/trytond_party.egg-info/not-zip-safe
@@ -0,0 +1 @@
+
commit 23218da015f2d8ef88a2a86cdd5af1268202083d
Author: Daniel Baumann <daniel at debian.org>
Date:   Tue Nov 18 13:05:55 2008 +0100

    Adding debian version 1.0.0-1.

diff --git a/CHANGELOG b/CHANGELOG
new file mode 100644
index 0000000..eacaaef
--- /dev/null
+++ b/CHANGELOG
@@ -0,0 +1,2 @@
+Version 1.0.0 - 2008-11-17
+* Initial release
diff --git a/COPYRIGHT b/COPYRIGHT
new file mode 100644
index 0000000..d622f06
--- /dev/null
+++ b/COPYRIGHT
@@ -0,0 +1,20 @@
+Copyright (C) 2004-2008 Tiny SPRL.
+Copyright (C) 2008 Cédric Krier.
+Copyright (C) 2008 Bertrand Chenal.
+Copyright (C) 2008 B2CK SPRL.
+Copyright (C) 2008 Udo Spallek.
+Copyright (C) 2008 Korbinian Preisler.
+Copyright (C) 2008 virtual things.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..e35ca37
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,31 @@
+Installing trytond_party
+========================
+
+Prerequisites
+-------------
+
+ * Python 2.4 or later (http://www.python.org/)
+ * trytond 0.0.x (http://www.tryton.org/)
+ * trytond_country (http://www.tryton.org/)
+ * Optional: vatnumber (http://code.google.com/p/vatnumber/)
+
+Installation
+------------
+
+Once you've downloaded and unpacked a trytond_party source release, enter the
+directory where the archive was unpacked, and run:
+
+    python setup.py install
+
+Note that you may need administrator/root privileges for this step, as
+this command will by default attempt to install module to the Python
+site-packages directory on your system.
+
+For advanced options, please refer to the easy_install and/or the distutils
+documentation:
+
+  http://peak.telecommunity.com/DevCenter/EasyInstall
+  http://docs.python.org/inst/inst.html
+
+To use without installation, extract the archive into ``trytond/modules`` with
+the directory name party.
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..94a9ed0
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,674 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  You must make sure that they, too, receive
+or can get the source code.  And you must show them these terms so they
+know their rights.
+
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Use with the GNU Affero General Public License.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+    <program>  Copyright (C) <year>  <name of author>
+    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+  The GNU General Public License does not permit incorporating your program
+into proprietary programs.  If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.  But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/MANIFEST.in b/MANIFEST.in
new file mode 100644
index 0000000..c61b52d
--- /dev/null
+++ b/MANIFEST.in
@@ -0,0 +1,10 @@
+include INSTALL
+include README
+include TODO
+include COPYRIGHT
+include CHANGELOG
+include LICENSE
+include *.xml
+include *.odt
+include *.csv
+include tests/*
diff --git a/PKG-INFO b/PKG-INFO
new file mode 100644
index 0000000..377fe88
--- /dev/null
+++ b/PKG-INFO
@@ -0,0 +1,24 @@
+Metadata-Version: 1.0
+Name: trytond_party
+Version: 1.0.0
+Summary: Define parties, addresses and co.
+Home-page: http://www.tryton.org/
+Author: B2CK
+Author-email: info at b2ck.com
+License: GPL-3
+Description: UNKNOWN
+Platform: UNKNOWN
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Environment :: Plugins
+Classifier: Intended Audience :: Developers
+Classifier: Intended Audience :: Financial and Insurance Industry
+Classifier: Intended Audience :: Legal Industry
+Classifier: Intended Audience :: Manufacturing
+Classifier: License :: OSI Approved :: GNU General Public License (GPL)
+Classifier: Natural Language :: English
+Classifier: Natural Language :: French
+Classifier: Natural Language :: German
+Classifier: Natural Language :: Spanish
+Classifier: Operating System :: OS Independent
+Classifier: Programming Language :: Python
+Classifier: Topic :: Office/Business
diff --git a/README b/README
new file mode 100644
index 0000000..2e6a715
--- /dev/null
+++ b/README
@@ -0,0 +1,36 @@
+trytond_party
+=============
+
+The party module of the Tryton application platform.
+See __tryton__.py
+
+Installing
+----------
+
+See INSTALL
+
+Support
+-------
+
+If you encounter any problems with Tryton, please don't hesitate to ask
+questions on the Tryton bug tracker, mailing list, wiki or IRC channel:
+
+  http://bugs.tryton.org/
+  http://groups.tryton.org/
+  http://wiki.tryton.org/
+  irc://irc.freenode.net/tryton
+
+License
+-------
+
+See LICENSE
+
+Copyright
+---------
+
+See COPYRIGHT
+
+
+For more information please visit the Tryton web site:
+
+  http://www.tryton.org/
diff --git a/__init__.py b/__init__.py
new file mode 100644
index 0000000..e4fd59e
--- /dev/null
+++ b/__init__.py
@@ -0,0 +1,7 @@
+#This file is part of Tryton.  The COPYRIGHT file at the top level of
+#this repository contains the full copyright notices and license terms.
+
+from category import *
+from party import *
+from address import *
+from contact_mechanism import *
diff --git a/__tryton__.py b/__tryton__.py
new file mode 100644
index 0000000..53a588e
--- /dev/null
+++ b/__tryton__.py
@@ -0,0 +1,33 @@
+# -*- coding: utf-8 -*-
+#This file is part of Tryton.  The COPYRIGHT file at the top level of
+#this repository contains the full copyright notices and license terms.
+{
+    'name' : 'Party',
+    'name_fr_FR': 'Tiers',
+    'name_de_DE': 'Kontakte',
+    'name_es_ES': 'Terceros',
+    'version' : '1.0.0',
+    'author' : 'B2CK',
+    'email': 'info at b2ck.com',
+    'website': 'http://www.tryton.org/',
+    'description': 'Define parties, addresses and co.',
+    'description_fr_FR': 'Définit des tiers, des adresses, etc.',
+    'description_de_DE': 'Ermöglicht die Erstellung von Kontakten, Adressen, etc.',
+    'description_es_ES': 'Definición de terceros, direcciones, etc.',
+    'depends' : [
+        'ir',
+        'res',
+        'country',
+    ],
+    'xml' : [
+        'party.xml',
+        'category.xml',
+        'address.xml',
+        'contact_mechanism.xml',
+    ],
+    'translation': [
+        'fr_FR.csv',
+        'de_DE.csv',
+        'es_ES.csv',
+    ],
+}
diff --git a/address.py b/address.py
new file mode 100644
index 0000000..8e42a93
--- /dev/null
+++ b/address.py
@@ -0,0 +1,117 @@
+#This file is part of Tryton.  The COPYRIGHT file at the top level of
+#this repository contains the full copyright notices and license terms.
+'Address'
+from trytond.osv import fields, OSV
+
+STATES = {
+    'readonly': "active == False",
+}
+
+
+class Address(OSV):
+    "Address"
+    _name = 'party.address'
+    _description = __doc__
+    party = fields.Many2One('party.party', 'Party', required=True,
+           ondelete='cascade', select=1,  states=STATES)
+    name = fields.Char('Name', states=STATES)
+    street = fields.Char('Street', states=STATES)
+    streetbis = fields.Char('Street (bis)', states=STATES)
+    zip = fields.Char('Zip', change_default=True,
+           states=STATES)
+    city = fields.Char('City', states=STATES)
+    country = fields.Many2One('country.country', 'Country',
+           states=STATES)
+    subdivision = fields.Many2One("country.subdivision",
+            'Subdivision', domain="[('country', '=', country)]", states=STATES)
+    active = fields.Boolean('Active')
+    sequence = fields.Integer("Sequence")
+    full_address = fields.Function('get_full_address', type='text')
+
+    def __init__(self):
+        super(Address, self).__init__()
+        self._order.insert(0, ('party', 'ASC'))
+        self._order.insert(1, ('sequence', 'ASC'))
+        self._error_messages.update({
+            'write_party': 'You can not modify the party of an address!',
+            })
+
+    def default_active(self, cursor, user, context=None):
+        return True
+
+    def get_full_address(self, cursor, user, ids, name, arg, context=None):
+        if not ids:
+            return []
+        res = {}
+        for address in self.browse(cursor, user, ids, context=context):
+            res[address.id] = ''
+            if address.name:
+                res[address.id] += address.name
+            if address.street:
+                if res[address.id]:
+                    res[address.id] += '\n'
+                res[address.id] += address.street
+            if address.streetbis:
+                if res[address.id]:
+                    res[address.id] += '\n'
+                res[address.id] += address.streetbis
+            if address.zip or address.city:
+                if res[address.id]:
+                    res[address.id] += '\n'
+                if address.zip:
+                    res[address.id] += address.zip
+                if address.city:
+                    if res[address.id][-1:] != '\n':
+                        res[address.id] += ' '
+                    res[address.id] += address.city
+            if address.country or address.subdivision:
+                if res[address.id]:
+                    res[address.id] += '\n'
+                if address.subdivision:
+                    res[address.id] += address.subdivision.name
+                if address.country:
+                    if res[address.id][-1:] != '\n':
+                        res[address.id] += ' '
+                    res[address.id] += address.country.name
+        return res
+
+    def name_get(self, cursor, user, ids, context=None):
+        if not ids:
+            return []
+        if isinstance(ids, (int, long)):
+            ids = [ids]
+        res = []
+        for address in self.browse(cursor, user, ids, context=context):
+            res.append((address.id, ", ".join(x for x in [address.name,
+                address.party.name, address.zip, address.city] if x)))
+        return res
+
+    def name_search(self, cursor, user, name, args=None, operator='ilike',
+                    context=None, limit=None):
+        if not args:
+            args=[]
+
+        ids = self.search(cursor, user, [('zip', '=', name)] + args,
+                          limit=limit, context=context)
+        if not ids:
+            ids = self.search(cursor, user, [('city', operator, name)] + args,
+                              limit=limit, context=context)
+        if name:
+            ids += self.search(cursor, user, [('name', operator, name)] + args,
+                               limit=limit, context=context)
+            ids += self.search(cursor, user, [('party', operator, name)] + args,
+                               limit=limit, context=context)
+        return self.name_get(cursor, user, ids, context=context)
+
+    def write(self, cursor, user, ids, vals, context=None):
+        if 'party' in vals:
+            if isinstance(ids, (int, long)):
+                ids = [ids]
+            for address in self.browse(cursor, user, ids, context=context):
+                if address.party.id != vals['party']:
+                    self.raise_user_error(cursor, 'write_party',
+                            context=context)
+        return super(Address, self).write(cursor, user, ids, vals,
+                context=context)
+
+Address()
diff --git a/address.xml b/address.xml
new file mode 100644
index 0000000..4d66c01
--- /dev/null
+++ b/address.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton.  The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<tryton>
+    <data>
+        <record model="ir.ui.view" id="address_view_tree">
+            <field name="model">party.address</field>
+            <field name="type">tree</field>
+            <field name="arch" type="xml">
+                <![CDATA[
+                <tree string="Addresses">
+                    <field name="party" select="1"/>
+                    <field name="name" select="1"/>
+                    <field name="street" select="2"/>
+                    <field name="streetbis" select="2"/>
+                    <field name="zip" select="2"/>
+                    <field name="city" select="2"/>
+                    <field name="country" select="1"/>
+                    <field name="subdivision" select="2"/>
+                    <field name="active" select="2" tree_invisible="1"/>
+                </tree>
+                ]]>
+            </field>
+        </record>
+        <record model="ir.ui.view" id="address_view_form">
+            <field name="model">party.address</field>
+            <field name="type">form</field>
+            <field name="arch" type="xml">
+                <![CDATA[
+                <form string="Addresses" col="6">
+                    <label name="party"/>
+                    <field name="party" colspan="5"/>
+                    <label name="name"/>
+                    <field name="name"/>
+                    <group colspan="2" col="20">
+                        <label name="active"/>
+                        <field name="active"
+                            xexpand="0" width="25"/>
+                        <!-- Add here some checkboxes ! -->
+                    </group>
+                    <newline/>
+                    <label name="street"/>
+                    <field name="street"/>
+                    <label name="streetbis"/>
+                    <field name="streetbis"/>
+                    <newline/>
+                    <label name="zip"/>
+                    <field name="zip"/>
+                    <label name="city"/>
+                    <field name="city"/>
+                    <newline/>
+                    <label name="country"/>
+                    <field name="country" completion="1"/>
+                    <label name="subdivision"/>
+                    <field name="subdivision"/>
+                </form>
+                ]]>
+            </field>
+        </record>
+        <record model="ir.action.act_window" id="act_address_form">
+            <field name="name">Addresses</field>
+            <field name="res_model">party.address</field>
+            <field name="view_type">form</field>
+        </record>
+        <record model="ir.action.act_window.view" id="act_address_form_view1">
+            <field name="sequence" eval="10"/>
+            <field name="view" ref="address_view_tree"/>
+            <field name="act_window" ref="act_address_form"/>
+        </record>
+        <record model="ir.action.act_window.view" id="act_address_form_view2">
+          <field name="sequence" eval="20"/>
+          <field name="view" ref="address_view_form"/>
+          <field name="act_window" ref="act_address_form"/>
+        </record>
+        <menuitem name="Addresses" parent="menu_party"
+              sequence="2" action="act_address_form"
+              id="menu_address_form"/>
+        <record model="ir.action.act_window" id="act_address_form2">
+            <field name="name">Addresses</field>
+            <field name="res_model">party.address</field>
+            <field name="view_type">form</field>
+        </record>
+        <record model="ir.action.act_window.view" id="act_address_form2_view1">
+            <field name="sequence" eval="10"/>
+            <field name="view" ref="address_view_form"/>
+            <field name="act_window" ref="act_address_form2"/>
+        </record>
+        <record model="ir.action.act_window.view" id="act_address_form2_view2">
+            <field name="sequence" eval="20"/>
+            <field name="view" ref="address_view_tree"/>
+            <field name="act_window" ref="act_address_form2"/>
+        </record>
+        <menuitem name="New Address" parent="menu_address_form"
+              action="act_address_form2"
+              id="menu_address_form2"/>
+    </data>
+</tryton>
diff --git a/category.py b/category.py
new file mode 100644
index 0000000..81e7fdd
--- /dev/null
+++ b/category.py
@@ -0,0 +1,54 @@
+#This file is part of Tryton.  The COPYRIGHT file at the top level of
+#this repository contains the full copyright notices and license terms.
+from trytond.osv import fields, OSV
+
+STATES = {
+    'readonly': "active == False",
+}
+
+
+class Category(OSV):
+    "Category"
+    _name = "party.category"
+    _description = __doc__
+    name = fields.Char('Name', required=True, states=STATES)
+    parent = fields.Many2One('party.category', 'Parent',
+           select=1, states=STATES)
+    complete_name = fields.Function('get_complete_name',
+           type="char", string='Name', states=STATES)
+    childs = fields.One2Many('party.category', 'parent',
+       'Childs', states=STATES)
+    active = fields.Boolean('Active')
+
+    def __init__(self):
+        super(Category, self).__init__()
+        self._constraints += [
+            ('check_recursion', 'recursive_categories'),
+        ]
+        self._error_messages.update({
+            'recursive_categories': 'You can not create recursive categories!',
+        })
+        self._order.insert(1, ('name', 'ASC'))
+
+    def default_active(self, cursor, user, context=None):
+        return 1
+
+    def get_complete_name(self, cursor, user, ids, name, arg,
+            context=None):
+        res = self.name_get(cursor, user, ids, context)
+        return dict(res)
+
+    def name_get(self, cursor, user, ids, context=None):
+        if not ids:
+            return []
+        categories = self.browse(cursor, user, ids, context=context)
+        res = []
+        for category in categories:
+            if category.parent:
+                name = category.parent.name+' / '+ category.name
+            else:
+                name = category.name
+            res.append((category.id, name))
+        return res
+
+Category()
diff --git a/category.xml b/category.xml
new file mode 100644
index 0000000..77e5c40
--- /dev/null
+++ b/category.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton.  The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<tryton>
+    <data>
+        <record model="ir.ui.view" id="category_view_form">
+            <field name="model">party.category</field>
+            <field name="type">form</field>
+            <field name="arch" type="xml">
+                <![CDATA[
+                <form string="Category">
+                    <label name="name"/>
+                    <field name="name"/>
+                    <label name="active"/>
+                    <field name="active"/>
+                    <label name="parent"/>
+                    <field name="parent"/>
+                </form>
+                ]]>
+            </field>
+        </record>
+        <record model="ir.ui.view" id="category_view_tree">
+            <field name="model">party.category</field>
+            <field name="type">tree</field>
+            <field name="field_childs">childs</field>
+            <field name="arch" type="xml">
+                <![CDATA[
+                <tree string="Categories" fill="1">
+                    <field name="name" select="1"/>
+                    <field name="active" select="2" tree_invisible="1"/>
+                </tree>
+                ]]>
+            </field>
+        </record>
+        <record model="ir.action.act_window" id="act_category_tree">
+            <field name="name">Categories</field>
+            <field name="res_model">party.category</field>
+            <field name="view_type">tree</field>
+            <field name="domain">[('parent', '=', False)]</field>
+        </record>
+        <record model="ir.action.act_window.view" id="act_category_tree_view1">
+            <field name="sequence" eval="10"/>
+            <field name="view" ref="category_view_tree"/>
+            <field name="act_window" ref="act_category_tree"/>
+        </record>
+        <menuitem parent="menu_party" sequence="3"
+            action="act_category_tree" id="menu_category_tree"/>
+        <record model="ir.action.act_window" id="act_category_form">
+            <field name="name">Categories</field>
+            <field name="res_model">party.category</field>
+            <field name="view_type">form</field>
+        </record>
+        <record model="ir.action.act_window.view" id="act_category_form_view1">
+            <field name="sequence" eval="10"/>
+            <field name="view" ref="category_view_tree"/>
+            <field name="act_window" ref="act_category_form"/>
+        </record>
+        <record model="ir.action.act_window.view" id="act_category_form_view2">
+            <field name="sequence" eval="20"/>
+            <field name="view" ref="category_view_form"/>
+            <field name="act_window" ref="act_category_form"/>
+        </record>
+        <menuitem name="Edit Categories" parent="menu_category_tree"
+            action="act_category_form" id="menu_category_form"/>
+        <record model="ir.action.act_window" id="act_category_form2">
+            <field name="name">Categories</field>
+            <field name="res_model">party.category</field>
+            <field name="view_type">form</field>
+        </record>
+        <record model="ir.action.act_window.view" id="act_category_form2_view1">
+            <field name="sequence" eval="10"/>
+            <field name="view" ref="category_view_form"/>
+            <field name="act_window" ref="act_category_form2"/>
+        </record>
+        <record model="ir.action.act_window.view" id="act_category_form2_view2">
+            <field name="sequence" eval="20"/>
+            <field name="view" ref="category_view_tree"/>
+            <field name="act_window" ref="act_category_form2"/>
+        </record>
+        <menuitem name="New category" parent="menu_category_tree"
+              action="act_category_form2" id="menu_category_form2"/>
+
+        <record model="ir.model.access" id="access_party_category">
+            <field name="model" search="[('model', '=', 'party.category')]"/>
+            <field name="perm_read" eval="True"/>
+            <field name="perm_write" eval="False"/>
+            <field name="perm_create" eval="False"/>
+            <field name="perm_delete" eval="False"/>
+        </record>
+        <record model="ir.model.access" id="access_party_category_admin">
+            <field name="model" search="[('model', '=', 'party.category')]"/>
+            <field name="group" ref="group_party_admin"/>
+            <field name="perm_read" eval="True"/>
+            <field name="perm_write" eval="True"/>
+            <field name="perm_create" eval="True"/>
+            <field name="perm_delete" eval="True"/>
+        </record>
+
+    </data>
+</tryton>
diff --git a/contact_mechanism.py b/contact_mechanism.py
new file mode 100644
index 0000000..05e0464
--- /dev/null
+++ b/contact_mechanism.py
@@ -0,0 +1,137 @@
+#This file is part of Tryton.  The COPYRIGHT file at the top level of
+#this repository contains the full copyright notices and license terms.
+
+from trytond.osv import OSV, fields
+
+STATES = {
+    'readonly': "active == False",
+}
+
+_TYPES = [
+    ('phone', 'Phone'),
+    ('mobile', 'Mobile'),
+    ('fax', 'Fax'),
+    ('email', 'E-Mail'),
+    ('website', 'Website'),
+    ('skype', 'Skype'),
+    ('sip', 'SIP'),
+    ('irc', 'IRC'),
+    ('jabber', 'Jabber'),
+    ('other', 'Other'),
+]
+
+
+class ContactMechanism(OSV):
+    "Contact Mechanism"
+    _name = "party.contact_mechanism"
+    _description = __doc__
+    _rec_name = 'value'
+
+    type = fields.Selection(_TYPES, 'Type', required=True, states=STATES,
+            sort=False)
+    value = fields.Char('Value', select=1,
+            states={
+                'invisible': "type in ('email', 'website')",
+                'required': "type not in ('email', 'website')",
+                'readonly': "active == False",
+            }, on_change=['value'])
+    comment = fields.Text('Comment', states=STATES)
+    party = fields.Many2One('party.party', 'Party', required=True,
+            ondelete='CASCADE', states=STATES, select=1)
+    active = fields.Boolean('Active', select=1)
+    sequence = fields.Integer('Sequence')
+    email = fields.Function('get_value', fnct_inv='set_value', type='char',
+            string="E-Mail", states={
+                'invisible': "type != 'email'",
+                'required': "type == 'email'",
+                'readonly': "active == False",
+            }, on_change=['email'])
+    website = fields.Function('get_value', fnct_inv='set_value', type='char',
+            string="Website", states={
+                'invisible': "type != 'website'",
+                'required': "type == 'website'",
+                'readonly': "active == False",
+            }, on_change=['website'])
+    skype = fields.Function('get_value', fnct_inv='set_value', type='char',
+            string="Skype", states={
+                'invisible': "type != 'skype'",
+                'required': "type == 'skype'",
+                'readonly': "active == False",
+            }, on_change=['skype'])
+    sip = fields.Function('get_value', fnct_inv='set_value', type='char',
+            string="SIP", states={
+                'invisible': "type != 'sip'",
+                'required': "type == 'sip'",
+                'readonly': "active == False",
+            }, on_change=['sip'])
+
+    def __init__(self):
+        super(ContactMechanism, self).__init__()
+        self._order.insert(0, ('party', 'ASC'))
+        self._order.insert(1, ('sequence', 'ASC'))
+        self._error_messages.update({
+            'write_party': 'You can not modify the party of ' \
+                    'a contact mechanism!',
+            })
+
+    def default_type(self, cursor, user, context=None):
+        return 'phone'
+
+    def default_active(self, cursor, user, context=None):
+        return True
+
+    def get_value(self, cursor, user, ids, names, arg, context=None):
+        res = {}
+        for name in names:
+            res[name] = {}
+        for mechanism in self.browse(cursor, user, ids, context=context):
+            for name in names:
+                res[name][mechanism.id] = mechanism.value
+        return res
+
+    def set_value(self, cursor, user, obj_id, name, value, arg, context=None):
+        self.write(cursor, user, obj_id, {
+            'value': value,
+            }, context=context)
+
+    def _change_value(self, cursor, user, value, context=None):
+        return {
+            'value': value,
+            'website': value,
+            'email': value,
+            'skype': value,
+            'sip': value,
+        }
+
+    def on_change_value(self, cursor, user, ids, vals, context=None):
+        return self._change_value(cursor, user, vals.get('value'),
+                context=context)
+
+    def on_change_website(self, cursor, user, ids, vals, context=None):
+        return self._change_value(cursor, user, vals.get('website'),
+                context=context)
+
+    def on_change_email(self, cursor, user, ids, vals, context=None):
+        return self._change_value(cursor, user, vals.get('email'),
+                context=context)
+
+    def on_change_skype(self, cursor, user, ids, vals, context=None):
+        return self._change_value(cursor, user, vals.get('skype'),
+                context=context)
+
+    def on_change_sip(self, cursor, user, ids, vals, context=None):
+        return self._change_value(cursor, user, vals.get('sip'),
+                context=context)
+
+    def write(self, cursor, user, ids, vals, context=None):
+        if 'party' in vals:
+            if isinstance(ids, (int, long)):
+                ids = [ids]
+            for mechanism in self.browse(cursor, user, ids, context=context):
+                if mechanism.party.id != vals['party']:
+                    self.raise_user_error(cursor, 'write_party',
+                            context=context)
+        return super(ContactMechanism, self).write(cursor, user, ids, vals,
+                context=context)
+
+ContactMechanism()
diff --git a/contact_mechanism.xml b/contact_mechanism.xml
new file mode 100644
index 0000000..05e50bc
--- /dev/null
+++ b/contact_mechanism.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton.  The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<tryton>
+    <data>
+
+        <record model="ir.ui.view" id="contact_mechanism_view_tree">
+            <field name="model">party.contact_mechanism</field>
+            <field name="type">tree</field>
+            <field name="arch" type="xml">
+                <![CDATA[
+                <tree string="Contact Mechanisms">
+                    <field name="party" select="1"/>
+                    <field name="type" select="1"/>
+                    <field name="value" select="1"/>
+                    <field name="active" select="2" tree_invisible="1"/>
+                </tree>
+                ]]>
+            </field>
+        </record>
+
+        <record model="ir.ui.view" id="contact_mechanism_view_form">
+            <field name="model">party.contact_mechanism</field>
+            <field name="type">form</field>
+            <field name="arch" type="xml">
+                <![CDATA[
+                <form string="Contact Mechanism">
+                    <label name="party"/>
+                    <field name="party"/>
+                    <label name="active"/>
+                    <field name="active"/>
+                    <label name="type"/>
+                    <field name="type"/>
+                    <group col="2" colspan="2">
+                        <label name="value"/>
+                        <field name="value"/>
+                        <label name="website"/>
+                        <field name="website" widget="url"/>
+                        <label name="email"/>
+                        <field name="email" widget="email"/>
+                        <label name="skype"/>
+                        <field name="skype" widget="callto"/>
+                        <label name="sip"/>
+                        <field name="sip" widget="sip"/>
+                    </group>
+                    <separator name="comment" colspan="4"/>
+                    <field name="comment" colspan="4"/>
+                </form>
+                ]]>
+            </field>
+        </record>
+
+    </data>
+</tryton>
diff --git a/de_DE.csv b/de_DE.csv
new file mode 100644
index 0000000..7118f83
--- /dev/null
+++ b/de_DE.csv
@@ -0,0 +1,139 @@
+type,name,res_id,src,value,fuzzy
+error,party.address,0,You can not modify the party of an address!,Die Partei einer Adresse kann nicht geändert werden!,0
+error,party.category,0,You can not create recursive categories!,Kategorien dürfen nicht rekursiv sein,0
+error,party.contact_mechanism,0,You can not modify the party of a contact mechanism!,Die Partei einer Kontaktmöglichkeit kann nicht geändert werden!,0
+error,party.party,0,The code of the party must be unique!,Der Name einer Partei kann nicht mehrfach vergeben werden!,0
+error,party.party,0,Wrong VAT number!,USt-ID Nr. ungültig!,0
+field,"party.address,active",0,Active,Aktiv,0
+field,"party.address,city",0,City,Stadt,0
+field,"party.address,country",0,Country,Staat,0
+field,"party.address,create_date",0,Creation date,Erstellungsdatum,0
+field,"party.address,create_uid",0,Creation user,Ersteller,0
+field,"party.address,full_address",0,unknown,Unbekannt,0
+field,"party.address,id",0,ID,ID,0
+field,"party.address,name",0,Name,Name,0
+field,"party.address,party",0,Party,Partei,0
+field,"party.address,sequence",0,Sequence,Sequenz,0
+field,"party.address,street",0,Street,Anschrift 1,0
+field,"party.address,streetbis",0,Street (bis),Anschrift 2,0
+field,"party.address,subdivision",0,Subdivision,Subnationale Einheit,0
+field,"party.address,write_date",0,Last modification date,Zuletzt geändert am,0
+field,"party.address,write_uid",0,Last modification by,Zuletzt geändert von,0
+field,"party.address,zip",0,Zip,Postleitzahl,0
+field,"party.category,active",0,Active,Aktiv,0
+field,"party.category,childs",0,Childs,Untergeordnet (Kategorien),0
+field,"party.category,complete_name",0,Name,Name,0
+field,"party.category,create_date",0,Creation date,Erstellungsdatum,0
+field,"party.category,create_uid",0,Creation user,Ersteller,0
+field,"party.category,id",0,ID,ID,0
+field,"party.category,name",0,Name,Kategorie Name,0
+field,"party.category,parent",0,Parent,Ãœbergeordnet (Kategorie),0
+field,"party.category,write_date",0,Last modification date,Zuletzt geändert am,0
+field,"party.category,write_uid",0,Last modification by,Zuletzt geändert von,0
+field,"party.contact_mechanism,active",0,Active,Aktiv,0
+field,"party.contact_mechanism,comment",0,Comment,Kommentar,0
+field,"party.contact_mechanism,email",0,E-Mail,E-Mail,0
+field,"party.contact_mechanism,party",0,Party,Partei,0
+field,"party.contact_mechanism,sequence",0,Sequence,Sequenz,0
+field,"party.contact_mechanism,sip",0,SIP,SIP,0
+field,"party.contact_mechanism,skype",0,Skype,Skype,0
+field,"party.contact_mechanism,type",0,Type,Typ,0
+field,"party.contact_mechanism,value",0,Value,Wert,0
+field,"party.contact_mechanism,website",0,Website,Homepage,0
+field,"party.party,active",0,Active,Aktiv,0
+field,"party.party,addresses",0,Addresses,Adressen,0
+field,"party.party,categories",0,Categories,Kategorien,0
+field,"party.party,code",0,Code,Code Partei,0
+field,"party.party,code_length",0,Code Length,Code Länge,0
+field,"party.party,contact_mechanisms",0,Contact Mechanisms,Kontaktmöglichkeiten,0
+field,"party.party,create_date",0,Creation date,Erstellungsdatum,0
+field,"party.party,create_uid",0,Creation user,Ersteller,0
+field,"party.party,email",0,E-Mail,E-Mail,0
+field,"party.party,fax",0,Fax,Fax,0
+field,"party.party,full_name",0,unknown,Unbekannt,0
+field,"party.party,id",0,ID,ID,0
+field,"party.party,lang",0,Language,Sprache,0
+field,"party.party,mobile",0,Mobile,Mobiltelefon,0
+field,"party.party,name",0,Name,Name,0
+field,"party.party,phone",0,Phone,Telefon,0
+field,"party.party,vat_code",0,VAT Code,USt-ID Nr.,0
+field,"party.party,vat_country",0,VAT Country,USt-ID Präfix,0
+field,"party.party,vat_number",0,VAT Number,USt-ID Nr.,0
+field,"party.party,website",0,Website,Website,0
+field,"party.party,write_date",0,Last modification date,Zuletzt geändert am,0
+field,"party.party,write_uid",0,Last modification by,Zuletzt geändert von,0
+help,"party.party,vat_country",0,Setting VAT country will enable verification of the VAT number.,Ein Eintrag in USt-ID Präfix aktiviert die Überprüfung der USt-ID Nr.,0
+help,"party.party,vat_number",0,Value Added Tax number,Umsatzsteueridentifikationsnummer,0
+model,"ir.action,name",act_address_form,Addresses,Adressen,0
+model,"ir.action,name",act_address_form2,Addresses,Adressen,0
+model,"ir.action,name",act_category_tree,Categories,Kategorien,0
+model,"ir.action,name",act_category_form,Categories,Kategorien,0
+model,"ir.action,name",act_category_form2,Categories,Kategorien,0
+model,"ir.action,name",report_label,La_bels,_Etiketten,0
+model,"ir.action,name",act_party_form,Parties,Parteien,0
+model,"ir.action,name",act_party_form2,Parties,Parteien,0
+model,"ir.action,name",act_party_by_category,Parties by Category,Parteien nach Kategorie,0
+model,"ir.sequence,name",sequence_party,Party,Partei,0
+model,"ir.sequence.type,name",sequence_type_party,Party,Partei,0
+model,"ir.ui.menu,name",menu_address_form,Addresses,Adressen,0
+model,"ir.ui.menu,name",menu_category_tree,Categories,Kategorien,0
+model,"ir.ui.menu,name",menu_category_form,Edit Categories,Kategorien bearbeiten,0
+model,"ir.ui.menu,name",menu_address_form2,New Address,Neue Adresse,0
+model,"ir.ui.menu,name",menu_category_form2,New category,Neue Kategorie,0
+model,"ir.ui.menu,name",menu_party_form2,New Party,Neue Partei,0
+model,"ir.ui.menu,name",menu_party_form,Parties,Parteien,0
+model,"ir.ui.menu,name",menu_party,Party Management,Kontakte,0
+model,"res.group,name",group_party_admin,Party Administration,Administration Kontakte,0
+selection,"party.contact_mechanism,type",0,E-Mail,E-Mail,0
+selection,"party.contact_mechanism,type",0,Fax,Fax,0
+selection,"party.contact_mechanism,type",0,IRC,IRC,0
+selection,"party.contact_mechanism,type",0,Jabber,Jabber,0
+selection,"party.contact_mechanism,type",0,Mobile,Mobiltelefon,0
+selection,"party.contact_mechanism,type",0,Other,Anderer,0
+selection,"party.contact_mechanism,type",0,Phone,Telefon,0
+selection,"party.contact_mechanism,type",0,SIP,SIP,0
+selection,"party.contact_mechanism,type",0,Skype,Skype,0
+selection,"party.contact_mechanism,type",0,Website,Homepage,0
+selection,"party.party,vat_country",0,,,0
+selection,"party.party,vat_country",0,AT,AT,0
+selection,"party.party,vat_country",0,BE,BE,0
+selection,"party.party,vat_country",0,BG,BG,0
+selection,"party.party,vat_country",0,CY,CY,0
+selection,"party.party,vat_country",0,CZ,CZ,0
+selection,"party.party,vat_country",0,DE,DE,0
+selection,"party.party,vat_country",0,DK,DK,0
+selection,"party.party,vat_country",0,EE,EE,0
+selection,"party.party,vat_country",0,EL,EL,0
+selection,"party.party,vat_country",0,ES,ES,0
+selection,"party.party,vat_country",0,FI,FI,0
+selection,"party.party,vat_country",0,FR,FR,0
+selection,"party.party,vat_country",0,GB,GB,0
+selection,"party.party,vat_country",0,GR,GR,0
+selection,"party.party,vat_country",0,HU,HU,0
+selection,"party.party,vat_country",0,IE,IE,0
+selection,"party.party,vat_country",0,IT,IT,0
+selection,"party.party,vat_country",0,LT,LT,0
+selection,"party.party,vat_country",0,LU,LU,0
+selection,"party.party,vat_country",0,LV,LV,0
+selection,"party.party,vat_country",0,MT,MT,0
+selection,"party.party,vat_country",0,NL,NL,0
+selection,"party.party,vat_country",0,PL,PL,0
+selection,"party.party,vat_country",0,PT,PT,0
+selection,"party.party,vat_country",0,RO,RO,0
+selection,"party.party,vat_country",0,SE,SE,0
+selection,"party.party,vat_country",0,SI,SI,0
+selection,"party.party,vat_country",0,SK,SK,0
+view,party.address,0,Addresses,Adressen,0
+view,party.category,0,Categories,Kategorien,0
+view,party.category,0,Category,Kategorie,0
+view,party.contact_mechanism,0,Contact Mechanism,Kontaktmöglichkeit,0
+view,party.contact_mechanism,0,Contact Mechanisms,Kontaktmöglichkeiten,0
+view,party.party,0,Account,Konten,0
+view,party.party,0,_Accounting,,0
+view,party.party,0,Addresses,Adressen,0
+view,party.party,0,Categories,Kategorien,0
+view,party.party,0,Contact Mechanisms,Kontaktmöglichkeiten,0
+view,party.party,0,_General,_Allgemein,0
+view,party.party,0,Parties,Parteien,0
+view,party.party,0,Party,Partei,0
+view,party.party,0,VAT,USt,0
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..9a1d194
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,5 @@
+tryton-modules-party (1.0.0-1) unstable; urgency=low
+
+  * Initial release (Closes: #506095).
+
+ -- Daniel Baumann <daniel at debian.org>  Mon, 12 Jan 2009 15:49:00 -0500
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..7f8f011
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+7
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..e5687f9
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,20 @@
+Source: tryton-modules-party
+Section: python
+Priority: optional
+Maintainer: Daniel Baumann <daniel at debian.org>
+Build-Depends: debhelper (>= 7), python, python-all-dev, python-setuptools, python-support
+Standards-Version: 3.8.0
+Homepage: http://www.tryton.org/
+Vcs-Browser: http://git.debian.net/?p=debian/tryton-modules-party.git
+Vcs-Git: git://git.debian.net/git/debian/tryton-modules-party.git
+
+Package: tryton-modules-party
+Architecture: any
+Depends: ${misc:Depends}, ${python:Depends}, tryton-server, tryton-modules-country, python-pkg-resources
+Recommends: python-vatnumber
+XB-Python-Version: ${python:Versions}
+Description: Tryton Application Platform (Party Module)
+ Tryton is a high-level general purpose application platform written in Python
+ and using PostgreSQL as database engine. It is the core base of an ERP.
+ .
+ This module defines parties, addresses and co.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..727f596
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,47 @@
+Author: Tryton Project <http://www.tryton.org/>
+Download: http://www.tryton.org/downloads.html
+
+Files: *
+Copyright:
+ (C) 2004-2008 Tiny SPRL
+ (C) 2008 Cedric Krier
+ (C) 2008 Bertrand Chenal
+ (C) 2008 B2CK SPRL
+ (C) 2008 Udo Spallek
+ (C) 2008 Korbinian Preisler
+ (C) 2008 virtual things
+License: GPL-3+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ .
+ On Debian systems, the complete text of the GNU General Public License
+ can be found in /usr/share/common-licenses/GPL-3 file.
+
+Files: debian/*
+Copyright: (C) 2009 Daniel Baumann <daniel at debian.org>
+License: GPL-3+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ .
+ On Debian systems, the complete text of the GNU General Public License
+ can be found in /usr/share/common-licenses/GPL-3 file.
diff --git a/debian/pycompat b/debian/pycompat
new file mode 100644
index 0000000..0cfbf08
--- /dev/null
+++ b/debian/pycompat
@@ -0,0 +1 @@
+2
diff --git a/debian/pyversions b/debian/pyversions
new file mode 100644
index 0000000..8b253bc
--- /dev/null
+++ b/debian/pyversions
@@ -0,0 +1 @@
+2.4-
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..f680751
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,42 @@
+#!/usr/bin/make -f
+
+clean:
+	dh_testdir
+	dh_testroot
+	rm -f build-stamp
+
+	python setup.py clean
+	rm -rf dist build trytond_party.egg-info
+
+	dh_clean
+
+build:
+
+install:
+	dh_testdir
+	dh_testroot
+	dh_prep
+	dh_installdirs
+
+	python setup.py install --single-version-externally-managed --root=$(CURDIR)/debian/tryton-modules-party --install-lib /usr/share/python-support/tryton-modules-party
+
+	find debian/tryton-modules-party -type f -name "*.pyc" | xargs rm -f
+
+binary: binary-indep
+
+binary-arch:
+
+binary-indep: install
+	dh_testdir
+	dh_testroot
+	dh_installchangelogs CHANGELOG
+	dh_installdocs
+	dh_pysupport
+	dh_compress
+	dh_fixperms
+	dh_installdeb
+	dh_gencontrol
+	dh_md5sums
+	dh_builddeb
+
+.PHONY: clean build install binary binary-arch binary-indep
diff --git a/es_ES.csv b/es_ES.csv
new file mode 100644
index 0000000..e312437
--- /dev/null
+++ b/es_ES.csv
@@ -0,0 +1,126 @@
+type,name,res_id,src,value,fuzzy
+error,party.address,0,You can not modify the party of an address!,No puede modificar el tercero de una dirección!,0
+error,party.category,0,You can not create recursive categories!,No puede crear categorías recursivas!,0
+error,party.contact_mechanism,0,You can not modify the party of an contact mechanism!,No puede modificar el tercero de un mecanismo de contacto!,0
+error,party.party,0,The code of the party must be unique!,El código del tercero debe ser único!,0
+error,party.party,0,Wrong VAT number!,Número de VAT erróneo!,0
+field,"party.address,active",0,Active,Activo,0
+field,"party.address,city",0,City,Ciudad,0
+field,"party.address,country",0,Country,País,0
+field,"party.address,full_address",0,unknown,desconocid@,0
+field,"party.address,name",0,Name,Nombre de Contacto,0
+field,"party.address,party",0,Party,Tercero,0
+field,"party.address,sequence",0,Sequence,Secuencia,0
+field,"party.address,street",0,Street,Calle,0
+field,"party.address,streetbis",0,Street (bis),Calle (bis),0
+field,"party.address,subdivision",0,Subdivision,Subdivisión,0
+field,"party.address,zip",0,Zip,Código postal,0
+field,"party.category,active",0,Active,Activo,0
+field,"party.category,childs",0,Childs,Hij at s,0
+field,"party.category,complete_name",0,Name,Nombre,0
+field,"party.category,name",0,Name,Nombre,0
+field,"party.category,parent",0,Parent,Padre,0
+field,"party.contact_mechanism,active",0,Active,Activo,0
+field,"party.contact_mechanism,comment",0,Comment,Comentario,0
+field,"party.contact_mechanism,email",0,E-Mail,Correo electrónico,0
+field,"party.contact_mechanism,party",0,Party,Tercero,0
+field,"party.contact_mechanism,sequence",0,Sequence,Secuencia,0
+field,"party.contact_mechanism,sip",0,SIP,SIP,0
+field,"party.contact_mechanism,skype",0,Skype,Skype,0
+field,"party.contact_mechanism,type",0,Type,Tipo,0
+field,"party.contact_mechanism,value",0,Value,Valor,0
+field,"party.contact_mechanism,website",0,Website,Sitio Web,0
+field,"party.party,active",0,Active,Activo,0
+field,"party.party,addresses",0,Addresses,Direcciones,0
+field,"party.party,categories",0,Categories,Categorías,0
+field,"party.party,code",0,Code,Código,0
+field,"party.party,code_length",0,Code Length,Longitud del Código,0
+field,"party.party,contact_mechanisms",0,Contact Mechanisms,Mecanismos de contacto,0
+field,"party.party,email",0,E-Mail,Correo electrónico,0
+field,"party.party,fax",0,Fax,Fax,0
+field,"party.party,full_name",0,unknown,desconocid@,0
+field,"party.party,lang",0,Language,Idioma,0
+field,"party.party,mobile",0,Mobile,Celular,0
+field,"party.party,name",0,Name,Nombre,0
+field,"party.party,phone",0,Phone,Teléfono,0
+field,"party.party,vat_code",0,VAT Code,Código de VAT,0
+field,"party.party,vat_country",0,VAT Country,VAT de país,0
+field,"party.party,vat_number",0,VAT Number,Nombre de VAT,0
+field,"party.party,website",0,Website,Sitio Web,0
+help,"party.party,vat_country",0,Setting VAT country will enable verification of the VAT number.,Al especificar el VAT de país se habilitará la verificación del número de VAT.,0
+help,"party.party,vat_number",0,Value Added Tax number,Número de Impuesto de Valor Agregado,0
+model,"ir.action,name",act_address_form,Addresses,Direcciones,0
+model,"ir.action,name",act_address_form2,Addresses,Direcciones,0
+model,"ir.action,name",act_category_tree,Categories,Categorías,0
+model,"ir.action,name",act_category_form,Categories,Categorías,0
+model,"ir.action,name",act_category_form2,Categories,Categorías,0
+model,"ir.action,name",report_label,La_bels,Etiqueta_s,0
+model,"ir.action,name",act_party_form,Parties,Terceros,0
+model,"ir.action,name",act_party_form2,Parties,Terceros,0
+model,"ir.action,name",act_party_by_category,Parties by Category,Terceros por Categoría,0
+model,"ir.ui.menu,name",menu_address_form,Addresses,Direcciones,0
+model,"ir.ui.menu,name",menu_category_tree,Categories,Categorías,0
+model,"ir.ui.menu,name",menu_category_form,Edit Categories,Editar Categorías,0
+model,"ir.ui.menu,name",menu_address_form2,New Address,Nueva Dirección,0
+model,"ir.ui.menu,name",menu_category_form2,New category,Nueva Categoría,0
+model,"ir.ui.menu,name",menu_party_form2,New Party,Nuevo Tercero,0
+model,"ir.ui.menu,name",menu_party_form,Parties,Terceros,0
+model,"ir.ui.menu,name",menu_party,Party Management,Manejo de Relaciones,0
+selection,"party.contact_mechanism,type",0,E-Mail,Correo electrónico,0
+selection,"party.contact_mechanism,type",0,Fax,Fax,0
+selection,"party.contact_mechanism,type",0,IRC,Chat,0
+selection,"party.contact_mechanism,type",0,Jabber,Jabber,0
+selection,"party.contact_mechanism,type",0,Mobile,Celular,0
+selection,"party.contact_mechanism,type",0,Other,Otro,0
+selection,"party.contact_mechanism,type",0,Phone,Teléfono,0
+selection,"party.contact_mechanism,type",0,SIP,SIP,0
+selection,"party.contact_mechanism,type",0,Skype,Skype,0
+selection,"party.contact_mechanism,type",0,Website,Sitio Web,0
+selection,"party.party,vat_country",0,,,0
+selection,"party.party,vat_country",0,AL,AL,0
+selection,"party.party,vat_country",0,AT,At,0
+selection,"party.party,vat_country",0,BE,BE,0
+selection,"party.party,vat_country",0,BG,BG,0
+selection,"party.party,vat_country",0,CY,CY,0
+selection,"party.party,vat_country",0,CZ,CZ,0
+selection,"party.party,vat_country",0,DE,DE,0
+selection,"party.party,vat_country",0,DK,DK,0
+selection,"party.party,vat_country",0,EE,EE,0
+selection,"party.party,vat_country",0,EL,EL,0
+selection,"party.party,vat_country",0,ES,ES,0
+selection,"party.party,vat_country",0,FI,FI,0
+selection,"party.party,vat_country",0,FR,FR,0
+selection,"party.party,vat_country",0,GB,GB,0
+selection,"party.party,vat_country",0,GR,GR,0
+selection,"party.party,vat_country",0,HU,HU,0
+selection,"party.party,vat_country",0,IE,IE,0
+selection,"party.party,vat_country",0,IT,IT,0
+selection,"party.party,vat_country",0,LT,LT,0
+selection,"party.party,vat_country",0,LU,LU,0
+selection,"party.party,vat_country",0,LV,LV,0
+selection,"party.party,vat_country",0,MT,MT,0
+selection,"party.party,vat_country",0,NL,NL,0
+selection,"party.party,vat_country",0,PL,PL,0
+selection,"party.party,vat_country",0,PT,PT,0
+selection,"party.party,vat_country",0,RO,RO,0
+selection,"party.party,vat_country",0,SE,SE,0
+selection,"party.party,vat_country",0,SI,SI,0
+selection,"party.party,vat_country",0,SK,SK,0
+selection,"party.party,vat_country",0,SM,SM,0
+selection,"party.party,vat_country",0,UA,UA,0
+selection,"party.party,vat_country",0,UK,UK,0
+view,party.address,0,Addresses,Direcciones,0
+view,party.category,0,Categories,Categorías,0
+view,party.category,0,Category,Categoría,0
+view,party.contact_mechanism,0,Contact Mechanism,Mecanismo de contacto,0
+view,party.contact_mechanism,0,Contact Mechanisms,Mecanismos de contacto,0
+view,party.party,0,Account,Cuenta,0
+view,party.party,0,Addresses,Direcciones,0
+view,party.party,0,Categories,Categorías,0
+view,party.party,0,Contact Mechanisms,Mecanismos de contacto,0
+view,party.party,0,_General,_General,0
+view,party.party,0,Parties,Terceros,0
+view,party.party,0,Party,Tercero,0
+view,party.party,0,VAT,VAT,0
+view,party.party.type,0,Party Type,Tipo de Tercero,0
+view,party.party.type,0,Party Types,Tipos de Terceros,0
diff --git a/fr_FR.csv b/fr_FR.csv
new file mode 100644
index 0000000..fab4ef5
--- /dev/null
+++ b/fr_FR.csv
@@ -0,0 +1,96 @@
+type,name,res_id,src,value,fuzzy
+error,party.address,0,You can not modify the party of an address!,Vous ne pouvez pas modifier le tiers d'une addresse !,0
+error,party.category,0,You can not create recursive categories!,Vous ne pouvez pas créer des catégories récursives !,0
+error,party.contact_mechanism,0,You can not modify the party of a contact mechanism!,Vous ne pouvez pas modifiez le tiers d'un moyen de contact.,0
+error,party.party,0,The code of the party must be unique!,Le code tu tiers doit être unique,0
+error,party.party,0,Wrong VAT number!,Mauvais numéro de TVA !,0
+field,"party.address,active",0,Active,Actif,0
+field,"party.address,city",0,City,Ville,0
+field,"party.address,country",0,Country,Pays,0
+field,"party.address,full_address",0,unknown,,0
+field,"party.address,name",0,Name,Nom,0
+field,"party.address,party",0,Party,Tiers,0
+field,"party.address,sequence",0,Sequence,Séquence,0
+field,"party.address,state",0,State,État,0
+field,"party.address,street",0,Street,Rue,0
+field,"party.address,streetbis",0,Street (bis),Rue (bis),0
+field,"party.address,subdivision",0,Subdivision,Subdivision,0
+field,"party.address,zip",0,Zip,Code Postal,0
+field,"party.category,active",0,Active,Actif,0
+field,"party.category,childs",0,Childs,Enfants,0
+field,"party.category,complete_name",0,Name,Nom,0
+field,"party.category,name",0,Name,Nom,0
+field,"party.category,parent",0,Parent,Parent,0
+field,"party.contact_mechanism,active",0,Active,Actif,0
+field,"party.contact_mechanism,comment",0,Comment,Commentaire,0
+field,"party.contact_mechanism,email",0,E-Mail,E-mail,0
+field,"party.contact_mechanism,party",0,Party,Tier,0
+field,"party.contact_mechanism,sequence",0,Sequence,Séquence,0
+field,"party.contact_mechanism,sip",0,SIP,SIP,0
+field,"party.contact_mechanism,skype",0,Skype,Skype,0
+field,"party.contact_mechanism,type",0,Type,Type,0
+field,"party.contact_mechanism,value",0,Value,Valeur,0
+field,"party.contact_mechanism,website",0,Website,Site web,0
+field,"party.party,active",0,Active,Actif,0
+field,"party.party,addresses",0,Addresses,Adresses,0
+field,"party.party,categories",0,Categories,Catégories,0
+field,"party.party,code",0,Code,Code,0
+field,"party.party,code_length",0,Code Length,Longueur du code,0
+field,"party.party,contact_mechanisms",0,Contact Mechanisms,Moyens de contact,0
+field,"party.party,full_name",0,unknown,,0
+field,"party.party,lang",0,Language,Langue,0
+field,"party.party,name",0,Name,Nom,0
+field,"party.party,type",0,Type,Type,0
+field,"party.party.type,name",0,Name,Nom,0
+field,"party.party,vat_code",0,VAT Code,Code TVA,0
+field,"party.party,vat_country",0,VAT Country,Code Pays TVA,0
+field,"party.party,vat_number",0,VAT Number,Numéro de TVA,0
+field,"party.party,website",0,Website,Site web,0
+help,"party.party,vat_country",0,Setting VAT country will enable verification of the VAT number.,Mettre un code pays TVA activera la vérification du numéro de TVA.,0
+help,"party.party,vat_number",0,Value Added Tax number,Numéro de taxe sur la valeur ajoutée,0
+model,"ir.action,name",act_address_form,Addresses,Adresses,0
+model,"ir.action,name",act_address_form2,Addresses,Adresses,0
+model,"ir.action,name",act_category_tree,Categories,Catégories,0
+model,"ir.action,name",act_category_form,Categories,Catégories,0
+model,"ir.action,name",act_category_form2,Categories,Catégories,0
+model,"ir.action,name",report_label,La_bels,É_tiquettes,0
+model,"ir.action,name",act_party_form,Parties,Tiers,0
+model,"ir.action,name",act_party_form2,Parties,Tiers,0
+model,"ir.action,name",act_party_by_category,Parties by Category,Tiers par catégorie,0
+model,"ir.ui.menu,name",menu_address_form,Addresses,Adresses,0
+model,"ir.ui.menu,name",menu_category_tree,Categories,Catégories,0
+model,"ir.ui.menu,name",menu_category_form,Edit Categories,Editer les Catégories,0
+model,"ir.ui.menu,name",menu_address_form2,New Address,Nouvelle adresse,0
+model,"ir.ui.menu,name",menu_category_form2,New category,Nouvelle catégorie,0
+model,"ir.ui.menu,name",menu_party_form2,New Party,Nouveau tiers,0
+model,"ir.ui.menu,name",menu_party_form,Parties,Tiers,0
+model,"ir.ui.menu,name",menu_party,Party Management,Gestion des relations,0
+selection,"party.contact_mechanism,type",0,E-Mail,E-Mail,0
+selection,"party.contact_mechanism,type",0,Fax,Fax,0
+selection,"party.contact_mechanism,type",0,IRC,IRC,0
+selection,"party.contact_mechanism,type",0,Jabber,Jabber,0
+selection,"party.contact_mechanism,type",0,Mobile,Mobile,0
+selection,"party.contact_mechanism,type",0,Other,Autre,0
+selection,"party.contact_mechanism,type",0,Phone,Téléphone,0
+selection,"party.contact_mechanism,type",0,SIP,SIP,0
+selection,"party.contact_mechanism,type",0,Skype,Skype,0
+selection,"party.contact_mechanism,type",0,Website,Site web,0
+selection,"party.party,vat_country",0,,,0
+view,party.address,0,Addresses,Adresses,0
+view,party.category,0,Categories,Catégories,0
+view,party.category,0,Category,Catégorie,0
+view,party.contact_mechanism,0,Contact Mechanism,Moyen de contact,0
+view,party.contact_mechanism,0,Contact Mechanisms,Moyens de contact,0
+view,party.party,0,Accounting,Comptabilité,0
+view,party.party,0,_Accounting,Compt_abilité,0
+view,party.party,0,Addresses,Adresses,0
+view,party.party,0,Categories,Catégories,0
+view,party.party,0,Contact Mechanisms,Moyens de contact,0
+view,party.party,0,General,Général,0
+view,party.party,0,_General,_Général,0
+view,party.party,0,Parties,Tiers,0
+view,party.party,0,Party,Tiers,0
+view,party.party,0,Properties,Propriétés,0
+view,party.party,0,VAT,,0
+view,party.party.type,0,Party Type,Type de Tiers,0
+view,party.party.type,0,Party Types,Types de Tiers,0
diff --git a/label.odt b/label.odt
new file mode 100644
index 0000000..1b43909
Binary files /dev/null and b/label.odt differ
diff --git a/party.py b/party.py
new file mode 100644
index 0000000..da7a4e6
--- /dev/null
+++ b/party.py
@@ -0,0 +1,183 @@
+#This file is part of Tryton.  The COPYRIGHT file at the top level of
+#this repository contains the full copyright notices and license terms.
+from trytond.osv import fields, OSV
+import logging
+
+HAS_VATNUMBER = False
+VAT_COUNTRIES = [('', '')]
+try:
+    import vatnumber
+    HAS_VATNUMBER = True
+    for country in vatnumber.countries():
+        VAT_COUNTRIES.append((country, country))
+except ImportError:
+    logging.getLogger('party').warning(
+            'Unable to import vatnumber. VAT number validation disable.')
+
+STATES = {
+    'readonly': "active == False",
+}
+
+
+class Party(OSV):
+    "Party"
+    _description = __doc__
+    _name = "party.party"
+
+    name = fields.Char('Name', required=True, select=1,
+           states=STATES)
+    code = fields.Char('Code', required=True, select=1,
+            readonly=True, order_field="%(table)s.code_length %(order)s, " \
+                    "%(table)s.code %(order)s")
+    code_length = fields.Integer('Code Length', select=1, readonly=True)
+    lang = fields.Many2One("ir.lang", 'Language', states=STATES)
+    vat_number = fields.Char('VAT Number', help="Value Added Tax number",
+            states=STATES)
+    vat_country = fields.Selection(VAT_COUNTRIES, 'VAT Country', states=STATES,
+        help="Setting VAT country will enable verification of the VAT number.")
+    vat_code = fields.Function('get_vat_code', type='char', string="VAT Code")
+    addresses = fields.One2Many('party.address', 'party',
+           'Addresses', states=STATES)
+    contact_mechanisms = fields.One2Many('party.contact_mechanism', 'party',
+            'Contact Mechanisms', states=STATES)
+    categories = fields.Many2Many(
+            'party.category', 'party_category_rel',
+            'party', 'category', 'Categories',
+            states=STATES)
+    active = fields.Boolean('Active', select=1)
+    full_name = fields.Function('get_full_name', type='char')
+    phone = fields.Function('get_mechanism', arg='phone', type='char',
+            string='Phone')
+    mobile = fields.Function('get_mechanism', arg='mobile', type='char',
+            string='Mobile')
+    fax = fields.Function('get_mechanism', arg='fax', type='char',
+            string='Fax')
+    email = fields.Function('get_mechanism', arg='email', type='char',
+            string='E-Mail')
+    website = fields.Function('get_mechanism', arg='website', type='char',
+            string='Website')
+
+    def __init__(self):
+        super(Party, self).__init__()
+        self._sql_constraints = [
+            ('code_uniq', 'UNIQUE(code)',
+             'The code of the party must be unique!')
+        ]
+        self._constraints += [
+            ('check_vat', 'wrong_vat'),
+        ]
+        self._error_messages.update({
+            'wrong_vat': 'Wrong VAT number!',
+        })
+        self._order.insert(0, ('name', 'DESC'))
+
+    def default_active(self, cursor, user, context=None):
+        return True
+
+    def get_vat_code(self, cursor, user, ids, name, arg, context=None):
+        if not ids:
+            return []
+        res = {}
+        for party in self.browse(cursor, user, ids, context=context):
+            res[party.id] = (party.vat_country or '') + (party.vat_number or '')
+        return res
+
+    def get_full_name(self, cursor, user, ids, name, arg, context=None):
+        if not ids:
+            return []
+        res = {}
+        for party in self.browse(cursor, user, ids, context=context):
+            res[party.id] = party.name
+        return res
+
+    def get_mechanism(self, cursor, user, ids, name, arg, context=None):
+        if not ids:
+            return []
+        res = {}
+        for party in self.browse(cursor, user, ids, context=context):
+            res[party.id] = ''
+            for mechanism in party.contact_mechanisms:
+                if mechanism.type == arg:
+                    res[party.id] = mechanism.value
+        return res
+
+    def create(self, cursor, user, values, context=None):
+        values = values.copy()
+        if not values.get('code'):
+            values['code'] = self.pool.get('ir.sequence').get(
+                    cursor, user, 'party.party')
+        values['code_length'] = len(values['code'])
+        return super(Party, self).create(cursor, user, values, context=context)
+
+    def write(self, cursor, user, ids, vals, context=None):
+        if vals.get('code'):
+            vals = vals.copy()
+            vals['code_length'] = len(vals['code'])
+        return super(Party, self).write(cursor, user, ids, vals, context=context)
+
+    def copy(self, cursor, user, object_id, default=None, context=None):
+        if default is None:
+            default = {}
+        default = default.copy()
+        default['code'] = False
+        return super(Party, self).copy(cursor, user, object_id, default=default,
+                context=context)
+
+    def name_search(self, cursor, user, name, args=None, operator='ilike',
+            context=None, limit=None):
+        if not args:
+            args = []
+        ids = self.search(cursor, user, [('code', '=', name)] + args,
+                limit=limit, context=context)
+        if ids:
+            return self.name_get(cursor, user, ids, context=context)
+        return super(Party, self).name_search(cursor, user, name,
+                args=args, operator=operator, context=context, limit=limit)
+
+    def address_get(self, cursor, user, party_id, type=None, context=None):
+        """
+        Try to find an address for the given type, if no type match
+        the first address is return.
+        """
+        address_obj = self.pool.get("party.address")
+        address_ids = address_obj.search(
+            cursor, user, [("party", "=", party_id), ("active", "=", True)],
+            order=[('sequence', 'ASC'), ('id', 'ASC')], context=context)
+        if not address_ids:
+            return False
+        default_address = address_ids[0]
+        if not type:
+            return default_address
+        for address in address_obj.browse(cursor, user, address_ids,
+                context=context):
+            if address[type]:
+                    return address.id
+        return default_address
+
+    def check_vat(self, cursor, user, ids):
+        '''
+        Check the VAT number depending of the country.
+        http://sima-pc.com/nif.php
+        '''
+        if not HAS_VATNUMBER:
+            return True
+        for party in self.browse(cursor, user, ids):
+            vat_number = party.vat_number
+
+            if not (vat_number and party.vat_country):
+                continue
+
+            if not getattr(vatnumber, 'check_vat_' + \
+                    party.vat_country.lower())(vat_number):
+
+                #Check if user doesn't have put country code in number
+                if vat_number.startswith(party.vat_country):
+                    vat_number = vat_number[len(party.vat_country):]
+                    self.write(cursor, user, party.id, {
+                        'vat_number': vat_number,
+                        })
+                else:
+                    return False
+        return True
+
+Party()
diff --git a/party.xml b/party.xml
new file mode 100644
index 0000000..8d4777a
--- /dev/null
+++ b/party.xml
@@ -0,0 +1,156 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton.  The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<tryton>
+    <data>
+        <record model="res.group" id="group_party_admin">
+            <field name="name">Party Administration</field>
+        </record>
+        <record model="res.user" id="res.user_admin">
+            <field name="groups" eval="[('add', ref('group_party_admin'))]"/>
+        </record>
+
+        <menuitem name="Party Management" sequence="0" id="menu_party"
+            icon="tryton-users"/>
+
+        <record model="ir.ui.view" id="party_view_tree">
+            <field name="model">party.party</field>
+            <field name="type">tree</field>
+            <field name="arch" type="xml">
+                <![CDATA[
+                <tree string="Parties">
+                    <field name="code" select="1"/>
+                    <field name="name" select="1"/>
+                    <field name="lang" select="2"/>
+                    <field name="vat_code" select="1"/>
+                    <field name="active" select="2" tree_invisible="1"/>
+                    <field name="vat_country" select="2" tree_invisible="1"/>
+                    <field name="vat_number" select="2" tree_invisible="1"/>
+                </tree>
+                ]]>
+            </field>
+        </record>
+        <record model="ir.ui.view" id="party_view_form">
+            <field name="model">party.party</field>
+            <field name="type">form</field>
+            <field name="arch" type="xml">
+                <![CDATA[
+                <form string="Party" col="6">
+                    <label name="name"/>
+                    <field name="name" xexpand="1"/>
+                    <label name="code"/>
+                    <field name="code"/>
+                    <label name="active"/>
+                    <field name="active" xexpand="0" width="100"/>
+                    <notebook colspan="6">
+                        <page string="_General">
+                            <field name="addresses" mode="form,tree" colspan="4">
+                                <tree string="Addresses" sequence="sequence"
+                                    fill="1">
+                                    <field name="sequence" tree_invisible="1"/>
+                                    <field name="name"/>
+                                    <field name="street"/>
+                                    <field name="streetbis"/>
+                                    <field name="zip"/>
+                                    <field name="city"/>
+                                    <field name="country"/>
+                                    <field name="subdivision"/>
+                                </tree>
+                            </field>
+                            <group col="2" colspan="4">
+                                <label name="lang"/>
+                                <field name="lang" widget="selection"/>
+                            </group>
+                            <field name="contact_mechanisms" colspan="2">
+                                <tree string="Contact Mechanisms" sequence="sequence"
+                                    fill="1">
+                                    <field name="sequence" tree_invisible="1"/>
+                                    <field name="type"/>
+                                    <field name="value"/>
+                                    <field name="comment"/>
+                                </tree>
+                            </field>
+                            <group col="1" colspan="2">
+                                <separator string="Categories"/>
+                                <field name="categories"/>
+                            </group>
+                        </page>
+                        <page string="_Accounting">
+                            <separator string="VAT" colspan="4"/>
+                            <label name="vat_country"/>
+                            <field name="vat_country"/>
+                            <label name="vat_number"/>
+                            <field name="vat_number"/>
+                        </page>
+                    </notebook>
+                </form>
+                ]]>
+            </field>
+        </record>
+        <record model="ir.action.act_window" id="act_party_form">
+            <field name="name">Parties</field>
+            <field name="res_model">party.party</field>
+            <field name="view_type">form</field>
+        </record>
+        <record model="ir.action.act_window.view" id="act_party_form_view1">
+            <field name="sequence" eval="10"/>
+            <field name="view" ref="party_view_tree"/>
+            <field name="act_window" ref="act_party_form"/>
+        </record>
+        <record model="ir.action.act_window.view" id="act_party_form_view2">
+            <field name="sequence" eval="20"/>
+            <field name="view" ref="party_view_form"/>
+            <field name="act_window" ref="act_party_form"/>
+        </record>
+        <menuitem parent="menu_party" sequence="1"
+            action="act_party_form" id="menu_party_form"/>
+        <record model="ir.action.act_window" id="act_party_form2">
+            <field name="name">Parties</field>
+            <field name="res_model">party.party</field>
+            <field name="view_type">form</field>
+        </record>
+        <record model="ir.action.act_window.view" id="act_party_form2_view1">
+            <field name="sequence" eval="10"/>
+            <field name="view" ref="party_view_form"/>
+            <field name="act_window" ref="act_party_form2"/>
+        </record>
+        <record model="ir.action.act_window.view" id="act_party_form2_view2">
+            <field name="sequence" eval="20"/>
+            <field name="view" ref="party_view_tree"/>
+            <field name="act_window" ref="act_party_form2"/>
+        </record>
+        <menuitem name="New Party" parent="menu_party_form" sequence="1"
+            action="act_party_form2" id="menu_party_form2"/>
+        <record model="ir.action.act_window" id="act_party_by_category">
+            <field name="name">Parties by Category</field>
+            <field name="res_model">party.party</field>
+            <field name="view_type">form</field>
+            <field name="domain">[('categories', 'child_of', [active_id], 'parent')]</field>
+        </record>
+        <record model="ir.action.keyword" id="act_party_by_category_keyword1">
+            <field name="keyword">tree_open</field>
+            <field name="model">party.category,0</field>
+            <field name="action" ref="act_party_by_category"/>
+        </record>
+        <record model="ir.action.report" id="report_label">
+            <field name="name">La_bels</field>
+            <field name="model">party.party</field>
+            <field name="report_name">party.label</field>
+            <field name="report">party/label.odt</field>
+        </record>
+        <record model="ir.action.keyword" id="report_label_party">
+            <field name="keyword">form_print</field>
+            <field name="model">party.party,0</field>
+            <field name="action" ref="report_label"/>
+        </record>
+
+        <record model="ir.sequence.type" id="sequence_type_party">
+            <field name="name">Party</field>
+            <field name="code">party.party</field>
+        </record>
+        <record model="ir.sequence" id="sequence_party">
+            <field name="name">Party</field>
+            <field name="code">party.party</field>
+        </record>
+    </data>
+</tryton>
diff --git a/setup.cfg b/setup.cfg
new file mode 100644
index 0000000..861a9f5
--- /dev/null
+++ b/setup.cfg
@@ -0,0 +1,5 @@
+[egg_info]
+tag_build = 
+tag_date = 0
+tag_svn_revision = 0
+
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000..59c5d4a
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,60 @@
+#!/usr/bin/env python
+#This file is part of Tryton.  The COPYRIGHT file at the top level of
+#this repository contains the full copyright notices and license terms.
+
+from setuptools import setup, find_packages
+import re
+
+info = eval(file('__tryton__.py').read())
+
+requires = []
+for dep in info.get('depends', []):
+    match = re.compile(
+            '(ir|res|workflow|webdav)((\s|$|<|>|<=|>=|==|!=).*?$)').match(dep)
+    if match:
+        continue
+    else:
+        dep = 'trytond_' + dep
+    requires.append(dep)
+
+major_version, minor_version, _ = info.get('version', '0.0.1').split('.', 2)
+requires.append('trytond >= %s.%s' % (major_version, minor_version))
+requires.append('trytond < %s.%s' % (major_version, str(int(minor_version) + 1)))
+
+setup(name='trytond_party',
+    version=info.get('version', '0.0.1'),
+    description=info.get('description', ''),
+    author=info.get('author', ''),
+    author_email=info.get('email', ''),
+    url=info.get('website', ''),
+    package_dir={'trytond.modules.party': '.'},
+    packages=[
+        'trytond.modules.party',
+    ],
+    package_data={
+        'trytond.modules.party': info.get('xml', []) \
+                + info.get('translation', []) \
+                + ['label.odt'],
+    },
+    classifiers=[
+        'Development Status :: 5 - Production/Stable',
+        'Environment :: Plugins',
+        'Intended Audience :: Developers',
+        'Intended Audience :: Financial and Insurance Industry',
+        'Intended Audience :: Legal Industry',
+        'Intended Audience :: Manufacturing',
+        'License :: OSI Approved :: GNU General Public License (GPL)',
+        'Natural Language :: English',
+        'Natural Language :: French',
+        'Natural Language :: German',
+        'Natural Language :: Spanish',
+        'Operating System :: OS Independent',
+        'Programming Language :: Python',
+        'Topic :: Office/Business',
+    ],
+    license='GPL-3',
+    install_requires=requires,
+    extras_require={
+        'VAT': ['vatnumber'],
+    },
+)
diff --git a/tests/__init__.py b/tests/__init__.py
new file mode 100644
index 0000000..bc87a4f
--- /dev/null
+++ b/tests/__init__.py
@@ -0,0 +1,4 @@
+#This file is part of Tryton.  The COPYRIGHT file at the top level of
+#this repository contains the full copyright notices and license terms.
+
+from test_party import *
diff --git a/tests/test_party.py b/tests/test_party.py
new file mode 100644
index 0000000..6912d07
--- /dev/null
+++ b/tests/test_party.py
@@ -0,0 +1,106 @@
+#!/usr/bin/env python
+#This file is part of Tryton.  The COPYRIGHT file at the top level of
+#this repository contains the full copyright notices and license terms.
+
+import sys, os
+DIR = os.path.abspath(os.path.normpath(os.path.join(__file__,
+    '..', '..', '..', '..', '..', 'trytond')))
+if os.path.isdir(DIR):
+    sys.path.insert(0, os.path.dirname(DIR))
+
+import unittest
+import trytond.tests
+from trytond.tests import RPCProxy, CONTEXT, SOCK
+
+
+class PartyTestCase(unittest.TestCase):
+    '''
+    Test Party module.
+    '''
+
+    def setUp(self):
+        trytond.tests.install_module('party')
+        self.category = RPCProxy('party.category')
+        self.party = RPCProxy('party.party')
+        self.address = RPCProxy('party.address')
+        self.country = RPCProxy('country.country')
+
+    def test0010category(self):
+        '''
+        Create category.
+        '''
+        category1_id = self.category.create({
+            'name': 'Category 1',
+            }, CONTEXT)
+        self.assert_(category1_id)
+
+    def test0020category_recursion(self):
+        '''
+        Test category recursion.
+        '''
+        category1_id = self.category.search([
+            ('name', '=', 'Category 1'),
+            ], 0, 1, None, CONTEXT)[0]
+
+        category2_id = self.category.create({
+            'name': 'Category 2',
+            'parent': category1_id,
+            }, CONTEXT)
+        self.assert_(category2_id)
+
+        self.failUnlessRaises(Exception, self.category.write,
+                category1_id, {
+                    'parent': category2_id,
+                }, CONTEXT)
+
+    def test0030party(self):
+        '''
+        Create party.
+        '''
+        party1_id = self.party.create({
+            'name': 'Party 1',
+            }, CONTEXT)
+        self.assert_(party1_id)
+
+    def test0040party_code(self):
+        '''
+        Test party code constraint.
+        '''
+        party1_id = self.party.search([], 0, 1, None, CONTEXT)[0]
+
+        code = self.party.read(party1_id, ['code'], CONTEXT)['code']
+
+        party2_id = self.party.create({
+            'name': 'Party 2',
+            }, CONTEXT)
+
+        self.failUnlessRaises(Exception, self.party.write, party2_id, {
+            'code': code,
+            }, CONTEXT)
+
+    def test0050address(self):
+        '''
+        Create address.
+        '''
+        party1_id = self.party.search([], 0, 1, None, CONTEXT)[0]
+        belgium_id = self.country.search([
+            ('code', '=', 'BE'),
+            ], 0, 1, None, CONTEXT)[0]
+
+        address1_id = self.address.create({
+            'party': party1_id,
+            'street': 'St sample, 15',
+            'city': 'City',
+            'country': belgium_id,
+            }, CONTEXT)
+        self.assert_(party1_id)
+
+def suite():
+    return unittest.TestLoader().loadTestsFromTestCase(PartyTestCase)
+
+if __name__ == '__main__':
+    suiteTrytond = trytond.tests.suite()
+    suiteParty = suite()
+    alltests = unittest.TestSuite([suiteTrytond, suiteParty])
+    unittest.TextTestRunner(verbosity=2).run(alltests)
+    SOCK.disconnect()
diff --git a/trytond_party.egg-info/PKG-INFO b/trytond_party.egg-info/PKG-INFO
new file mode 100644
index 0000000..c2800db
--- /dev/null
+++ b/trytond_party.egg-info/PKG-INFO
@@ -0,0 +1,24 @@
+Metadata-Version: 1.0
+Name: trytond-party
+Version: 1.0.0
+Summary: Define parties, addresses and co.
+Home-page: http://www.tryton.org/
+Author: B2CK
+Author-email: info at b2ck.com
+License: GPL-3
+Description: UNKNOWN
+Platform: UNKNOWN
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Environment :: Plugins
+Classifier: Intended Audience :: Developers
+Classifier: Intended Audience :: Financial and Insurance Industry
+Classifier: Intended Audience :: Legal Industry
+Classifier: Intended Audience :: Manufacturing
+Classifier: License :: OSI Approved :: GNU General Public License (GPL)
+Classifier: Natural Language :: English
+Classifier: Natural Language :: French
+Classifier: Natural Language :: German
+Classifier: Natural Language :: Spanish
+Classifier: Operating System :: OS Independent
+Classifier: Programming Language :: Python
+Classifier: Topic :: Office/Business
diff --git a/trytond_party.egg-info/SOURCES.txt b/trytond_party.egg-info/SOURCES.txt
new file mode 100644
index 0000000..9802c27
--- /dev/null
+++ b/trytond_party.egg-info/SOURCES.txt
@@ -0,0 +1,28 @@
+CHANGELOG
+COPYRIGHT
+INSTALL
+LICENSE
+MANIFEST.in
+README
+address.xml
+category.xml
+contact_mechanism.xml
+de_DE.csv
+es_ES.csv
+fr_FR.csv
+label.odt
+party.xml
+setup.py
+./__init__.py
+./__tryton__.py
+./address.py
+./category.py
+./contact_mechanism.py
+./party.py
+tests/__init__.py
+tests/test_party.py
+trytond_party.egg-info/PKG-INFO
+trytond_party.egg-info/SOURCES.txt
+trytond_party.egg-info/dependency_links.txt
+trytond_party.egg-info/requires.txt
+trytond_party.egg-info/top_level.txt
\ No newline at end of file
diff --git a/trytond_party.egg-info/dependency_links.txt b/trytond_party.egg-info/dependency_links.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/trytond_party.egg-info/dependency_links.txt
@@ -0,0 +1 @@
+
diff --git a/trytond_party.egg-info/requires.txt b/trytond_party.egg-info/requires.txt
new file mode 100644
index 0000000..b9524f8
--- /dev/null
+++ b/trytond_party.egg-info/requires.txt
@@ -0,0 +1,6 @@
+trytond_country
+trytond >= 1.0
+trytond < 1.1
+
+[VAT]
+vatnumber
\ No newline at end of file
diff --git a/trytond_party.egg-info/top_level.txt b/trytond_party.egg-info/top_level.txt
new file mode 100644
index 0000000..93df119
--- /dev/null
+++ b/trytond_party.egg-info/top_level.txt
@@ -0,0 +1 @@
+trytond
-- 
tryton-modules-party



More information about the tryton-debian-vcs mailing list