Skip to content

Commit

Permalink
Merge pull request #1299 from OCA/18.0
Browse files Browse the repository at this point in the history
Syncing from upstream OCA/partner-contact (18.0)
  • Loading branch information
bt-admin authored Oct 25, 2024
2 parents b3300f5 + 796e83d commit d302542
Show file tree
Hide file tree
Showing 87 changed files with 8,728 additions and 1 deletion.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ Available addons
----------------
addon | version | maintainers | summary
--- | --- | --- | ---
[partner_firstname](partner_firstname/) | 18.0.1.0.0 | | Split first name and last name for non company partners
[partner_pricelist_search](partner_pricelist_search/) | 18.0.1.0.0 | | Partner pricelist search
[partner_ref_unique](partner_ref_unique/) | 18.0.1.0.0 | | Add an unique constraint to partner ref field
[partner_tz](partner_tz/) | 18.0.1.0.0 | | Remove partner timezone default value and display on form
Expand Down
151 changes: 151 additions & 0 deletions partner_firstname/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
================================
Partner first name and last name
================================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:075778657e1c3f85e692ee27d79ddd90739b55dde9df3b94533c2d1cc09090a4
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpartner--contact-lightgray.png?logo=github
:target: https://github.com/OCA/partner-contact/tree/18.0/partner_firstname
:alt: OCA/partner-contact
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/partner-contact-18-0/partner-contact-18-0-partner_firstname
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/partner-contact&target_branch=18.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This module was written to extend the functionality of contacts to
support having separate last name and first name.

**Table of contents**

.. contents::
:local:

Configuration
=============

You can configure some common name patterns for the inverse function in
Settings > General settings:

- Lastname Firstname: For example 'Anderson Robert'
- Lastname, Firstname: For example 'Anderson, Robert'
- Firstname Lastname: For example 'Robert Anderson'

After applying the changes, you can recalculate all partners name
clicking "Recalculate names" button. Note: This process could take so
much time depending how many partners there are in database.

You can use *\_get_inverse_name* method to get lastname and firstname
from a simple string and also *\_get_computed_name* to get a name form
the lastname and firstname. These methods can be overridden to change
the format specified above.

Usage
=====

The field *name* becomes a stored function field concatenating the *last
name* and the *first name*. This avoids breaking compatibility with
other modules.

Users should fulfill manually the separate fields for *last name* and
*first name*, but in case you edit just the *name* field in some
unexpected module, there is an inverse function that tries to split that
automatically. It assumes that you write the *name* in format configured
(*"Lastname Firstname"*, by default), but it could lead to wrong
splitting (because it's just blindly trying to guess what you meant), so
you better specify it manually.

For the same reason, after installing, previous names for contacts will
stay in the *name* field, and the first time you edit any of them you
will be asked to supply the *last name* and *first name* (just once per
contact).

Known issues / Roadmap
======================

Patterns for the inverse function are configurable only at system level.
Maybe this configuration could depend on partner language, country or
company, as discussed at `this OCA
issue <https://github.com/OCA/partner-contact/issues/210>`__

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/partner-contact/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/partner-contact/issues/new?body=module:%20partner_firstname%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* Camptocamp
* Grupo ESOC Ingeniería de Servicios
* Tecnativa
* LasLabs
* ACSONE SA/NV
* DynApps NV

Contributors
------------

- Nicolas Bessi <nicolas.bessi@camptocamp.com>
- Yannick Vaucher <yannick.vaucher@camptocamp.com>
- Vincent Renaville <vincent.renaville@camptocamp.com>
- Guewen Baconnier <guewen.baconnier@camptocamp.com>
- Holger Brunn <hbrunn@terp.nl>
- Jonathan Nemry <jonathan.nemry@acsone.eu>
- Olivier Laurent <olivier.laurent@acsone.eu>
- Sandy Carter <sandy.carter@savoirfairelinux.com>
- Alexis de Lattre <alexis.delattre@akretion.fr>
- Lorenzo Battistini <lorenzo.battistini@agilebg.com>
- Hans Henrik Gabelgaard <hhg@gabelgaard.org>
- Jairo Llopis <j.llopis@grupoesoc.es>
- Adrien Peiffer <adrien.peiffer@acsone.eu>
- Ronald Portier <ronald@therp.nl>
- Sylvain Van Hoof
- Pedro Baeza <pedro.baeza@serviciosbaeza.com>
- Dave Lasley <dave@laslabs.com>
- Graeme Gellatly <graeme@o4sb.com>
- Laurent Mignon <laurent.mignon@acsone.eu>
- Bjorn Billen <bjorn.billen@dynapps.be>
- Aion Tech <https://aiontech.company/>:

- Simone Rubino <simone.rubino@aion-tech.it>

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

This module is part of the `OCA/partner-contact <https://github.com/OCA/partner-contact/tree/18.0/partner_firstname>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
2 changes: 2 additions & 0 deletions partner_firstname/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
from . import models
from .hooks import post_init_hook
30 changes: 30 additions & 0 deletions partner_firstname/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Copyright 2013 Nicolas Bessi (Camptocamp SA)
# Copyright 2014 Agile Business Group (<http://www.agilebg.com>)
# Copyright 2015 Grupo ESOC (<http://www.grupoesoc.es>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

{
"name": "Partner first name and last name",
"summary": "Split first name and last name for non company partners",
"version": "18.0.1.0.0",
"author": "Camptocamp, "
"Grupo ESOC Ingeniería de Servicios, "
"Tecnativa, "
"LasLabs, "
"ACSONE SA/NV, "
"DynApps NV, "
"Odoo Community Association (OCA)",
"license": "AGPL-3",
"maintainer": "Camptocamp, Acsone",
"category": "Extra Tools",
"website": "https://github.com/OCA/partner-contact",
"depends": ["base_setup"],
"post_init_hook": "post_init_hook",
"data": [
"views/base_config_view.xml",
"views/res_partner.xml",
"views/res_user.xml",
],
"auto_install": False,
"installable": True,
}
12 changes: 12 additions & 0 deletions partner_firstname/exceptions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Copyright 2014-2015 Grupo ESOC (<http://www.grupoesoc.es>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import exceptions


class EmptyNamesError(exceptions.ValidationError):
def __init__(self, record, env, value=None):
value = value or env._("No name is set.")
self.record = record
self._value = value
self._name = env._("Error(s) with partner %d's name.") % record.id
self.args = (self._name, value)
6 changes: 6 additions & 0 deletions partner_firstname/hooks.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Copyright 2017 LasLabs Inc.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).


def post_init_hook(env):
env["res.partner"]._install_partner_firstname()
124 changes: 124 additions & 0 deletions partner_firstname/i18n/am.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * partner_firstname
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-03-10 03:39+0000\n"
"PO-Revision-Date: 2017-03-10 03:39+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Amharic (https://www.transifex.com/oca/teams/23907/am/)\n"
"Language: am\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

#. module: partner_firstname
#. odoo-python
#: code:addons/partner_firstname/models/res_users.py:0
msgid "%(login)s (copy)"
msgstr ""

#. module: partner_firstname
#. odoo-python
#: code:addons/partner_firstname/models/res_users.py:0
msgid "%(name)s (copy)"
msgstr ""

#. module: partner_firstname
#. odoo-python
#: code:addons/partner_firstname/models/res_partner.py:0
msgid "%s (copy)"
msgstr ""

#. module: partner_firstname
#. odoo-python
#: code:addons/partner_firstname/models/res_partner.py:0
msgid "(copy)"
msgstr ""

#. module: partner_firstname
#: model:ir.model,name:partner_firstname.model_res_config_settings
msgid "Config Settings"
msgstr ""

#. module: partner_firstname
#: model:ir.model,name:partner_firstname.model_res_partner
msgid "Contact"
msgstr ""

#. module: partner_firstname
#: model:ir.model.constraint,message:partner_firstname.constraint_res_partner_check_name
msgid "Contacts require a name."
msgstr ""

#. module: partner_firstname
#. odoo-python
#: code:addons/partner_firstname/exceptions.py:0
msgid "Error(s) with partner %d's name."
msgstr ""

#. module: partner_firstname
#: model:ir.model.fields,field_description:partner_firstname.field_res_partner__firstname
#: model:ir.model.fields,field_description:partner_firstname.field_res_users__firstname
msgid "First name"
msgstr ""

#. module: partner_firstname
#: model:ir.model.fields,field_description:partner_firstname.field_res_partner__lastname
#: model:ir.model.fields,field_description:partner_firstname.field_res_users__lastname
msgid "Last name"
msgstr ""

#. module: partner_firstname
#: model:ir.model.fields,field_description:partner_firstname.field_res_partner__name
#: model:ir.model.fields,field_description:partner_firstname.field_res_users__name
msgid "Name"
msgstr ""

#. module: partner_firstname
#. odoo-python
#: code:addons/partner_firstname/exceptions.py:0
msgid "No name is set."
msgstr ""

#. module: partner_firstname
#: model:ir.model.fields,help:partner_firstname.field_res_config_settings__partner_names_order
msgid "Order to compose partner fullname"
msgstr ""

#. module: partner_firstname
#: model:ir.model.fields,field_description:partner_firstname.field_res_config_settings__partner_names_order
#: model_terms:ir.ui.view,arch_db:partner_firstname.res_config_settings_view_form
msgid "Partner Names Order"
msgstr ""

#. module: partner_firstname
#: model:ir.model.fields,field_description:partner_firstname.field_res_config_settings__partner_names_order_changed
msgid "Partner Names Order Changed"
msgstr ""

#. module: partner_firstname
#: model_terms:ir.ui.view,arch_db:partner_firstname.res_config_settings_view_form
msgid "Recalculate names"
msgstr ""

#. module: partner_firstname
#: model_terms:ir.ui.view,arch_db:partner_firstname.res_config_settings_view_form
msgid ""
"Recalculate names for all partners. This process could take so much time if "
"there are more than 10,000 active partners"
msgstr ""

#. module: partner_firstname
#: model:ir.model,name:partner_firstname.model_res_users
msgid "User"
msgstr ""

#~ msgid "Partner"
#~ msgstr "ተባባሪ"
Loading

0 comments on commit d302542

Please sign in to comment.