Metadata-Version: 1.2
Name: clodoo
Version: 2.0.7
Summary: Do massive operations on Odoo Cloud
Home-page: https://github.com/zeroincombenze/tools
Author: Antonio Maria Vigliotti
Author-email: <info@shs-av.com>
License: Affero GPL
Project-URL: Source, https://github.com/zeroincombenze/tools/tree/master/clodoo
Project-URL: Documentation, https://zeroincombenze-tools.readthedocs.io/en/latest/zerobug
Project-URL: Changelog, https://github.com/zeroincombenze/tools/blob/master/clodoo/egg-info/CHANGELOG.rst
Description: 
        ============
        clodoo 2.0.7
        ============
        
        
        
        |Maturity| |license gpl|
        
        
        
        
        Overview
        ========
        
        Introduction
        ------------
        
        Clodoo is a set of tools to manage to manage multiple Odoo installations with many DBs.
        
        With clodoo you can do massive operations on 1 or more Odoo databases based on
        different Odoo versions. Main operation are:
        
        * create consistent database to run tests
        * repeat consistent action on many db with same or different Odoo version
        * repeat above actions on every new database
        
        clodoo is also a PYPI package to simplify RPC connection to Odoo.
        The PYPI package is a hub to oerplib and odoorpc packages, so generic python client
        can execute any command to any Odoo version server (from 6.1 to 13.0)
        
        Available commands & features are:
        
        +----------------------------------------------+-----------------------------------------+
        | Function                                     | Note                                    |
        +----------------------------------------------+-----------------------------------------+
        | Add new repository                           | odoo_install_repository                 |
        +----------------------------------------------+-----------------------------------------+
        | Update paid invoice                          | inv2draft_n_restore.py                  |
        +----------------------------------------------+-----------------------------------------+
        | List requirement of Odoo                     | list_requirements.py                    |
        +----------------------------------------------+-----------------------------------------+
        | Create full configurated Odoo DB             | manage_db                               |
        +----------------------------------------------+-----------------------------------------+
        | Manage Odoo installation                     | manage_odoo                             |
        +----------------------------------------------+-----------------------------------------+
        | Set Odoo Skin (backoffice)                   | odoo_skin.sh                            |
        +----------------------------------------------+-----------------------------------------+
        | Run Odoo instance to debug                   | run_odoo_debug                          |
        +----------------------------------------------+-----------------------------------------+
        | Manage version depending names               | transodoo.py                            |
        +----------------------------------------------+-----------------------------------------+
        | General Purpose RPC                          | clodoo.py                               |
        +----------------------------------------------+-----------------------------------------+
        | Export Odoo model to test file               | export_db_model.py                      |
        +----------------------------------------------+-----------------------------------------+
        | Migrate Odoo                                 | migrate_odoo.py (deprecated)            |
        +----------------------------------------------+-----------------------------------------+
        | Examples                                     | example*.py                             |
        +----------------------------------------------+-----------------------------------------+
        
        
        
        
        
        clodoo.py: general Purpose RPC
        ------------------------------
        
        clodoo.py ia general purpose xmlrpc / json interface.
        It is called by bash console, there is no funcional web/GUI interface.
        
        
            $ usage: clodoo.py [-h] [-A actions] [-b version] [-c file] [-d regex] [-D]
                         [-l iso_lang] [-n] [-p dir] [-P password] [-q] [-r port]
                         [-U username] [-u list] [-v] [-V] [-x]
        
            optional arguments:
              -h, --help            show this help message and exit
              -A actions, --action-to-do actions
                                    action to do (use help to dir)
              -b version, --odoo-branch version
                                    talk server Odoo version
              -c file, --config file
                                    configuration command file
              -d regex, --dbfilter regex
                                    DB filter
              -D, --with-demo       create db with demo data
              -l iso_lang, --lang iso_lang
                                    user language
              -n, --dry-run         test execution mode
              -p dir, --data-path dir
                                    Import file path
              -P password, --pwd password
                                    login password
              -q, --quiet           run silently
              -r port, --xmlrpc-port port
                                    xmlrpc port
              -U username, --user username
                                    login username
              -u list, --upgrade-modules list
                                    Module list to upgrade
              -v, --verbose         run with debugging output
              -V, --version         show program's version number and exit
              -x, --exit-on-error   exit on error
        
        
        
        Import_file
        ~~~~~~~~~~~
        
        Import file loads data from a csv file into DB. This action works as standard
        Odoo but has some enhanced features.
        Field value may be:
        
        * external identifier, format module.name (as Odoo standard)
          i.e. 'base.main_company'
        * text with macros, format ${macro} (no Odoo standard), dictionary passed
          i.e. '${company_id}'
          text may contains one or more macros
        * text with DB extraction, format ${model:values} (w/o company, no Odoo std)
          i.e. '${res.company:your company}'
          data is searched by name
        * text with DB extraction, format ${model::values} (with company, no Odoo std)
          i.e. '${res.partner::Odoo SA}'
          data is searched by name, company from ctx['company_id']
        * text with DB extraction, format ${model(params):values} (w/o company)
          i.e. '${res.company(zip):1010}'
          data is searched by param(s)
        * text with function, format ${function(params)::values} (add company)
          i.e. '${res.partner(zip)::1010}'
          data is searched by param(s), company from ctx['company_id']
        * full text function, format ${function[field](params):values} (w/o company)
          full text function, format ${function[field](params)::values} (add company)
          i.e. '${res.partner[name](zip)::1010}'
          data is searched as in above function;
          returned value is not id but `field`
        * crypted data, begins with $1$!
          i.e '$1$!abc'
        * expression, begin with = (deprecated)
        * odoo multiversion text, format model.constant.0 (in model replace '.' by '_')
          i.e. 'res_groups.SALES.0'
        * odoo versioned value, format model.value.majversion
          i.e. 'res_groups.Sales.8'
        
        Predefines macros (in ctx):
        
                company_id     default company_id
                company_name   name of default company (if company_id not valid)
                country_code   ISO-3166 default country (see def_country_id)
                customer-supplier if field contains 'customer' or 'client' set customer=True if it contains 'supplier' or 'vendor' or 'fornitore' set supplier=True
                def_country_id default country id (from company or from user)
                def_email      default mail; format: {username}{majversion}@example.com
                full_model     load all field values, even if not in csv
                header_id      id of header when import header/details files
                lang           language, format lang_COUNTRY, i.e. it_IT (default en_US)
                name2          if present, is merged with name
                name_first     if present with name last, are merged to compose name
                name_last      if present with name first, are merged to compose name
                street2        if present and just numeric, is merged with street
                zeroadm_mail   default user mail from conf file or <def_mail> if -D switch
                zeroadm_login  default admin username from conf file
                oneadm_mail    default user2 mail from conf file or <def_mail> if -D switch
                oneadm_login   default admin2 username from conf file
                botadm_mail    default bot user mail from conf file or <def_mail> if -D switch
                botadm_login   default bot username from conf file
                _today         date.today()
                _current_year  date.today().year
                _last_year'    date.today().year - 1
                TNL_DICT       dictionary with field translation, format csv_name: field_name; i.e {'partner_name': 'name'} or csv_position: field_name, i.e. {'0': 'name'}
                TNL_VALUE      dictionary with value translation for field; format is field_name: {csv_value: field_value, ...} i.e. {'country': {'Inghilterra': 'Regno Unito'}} special value '$BOOLEAN' return True or False
                DEFAULT        dictionary with default value, format field_name: value
                EXPR           evaluate value from expression, format csv_name: expression; expression can refer to other fields of csv record in format csv[field_name] or other fields of record in format row[field_name] i.e. {'is_company': 'row["ref"] != ""'} {'is_company': 'csv["CustomerRef"] != ""'}
                MANDATORY      dictionary with mandatory field names
        
        
        Import searches for existing data (this behavior differs from Odoo standard)
        Search is based on <o_model> dictionary;
        default field to search is 'name' or 'id', if passed.
        
        ::
        
            File csv can contain some special fields:
            db_type: select record if DB name matches db type; values are
                'D' for demo,
                'T' for test,
                'Z' for zeroincombenze production,
                'V' for VG7 customers
                'C' other customers
            oe_versions: select record if matches Odoo version
                i.e  +11.0+10.0 => select record if Odoo 11.0 or 10.0
                i.e  -6.1-7.0 => select record if Odoo is not 6.1 and not 7.0
        
        
        odoo_install_repository: manage repositories
        --------------------------------------------
        
        ::
        
            Usage: odoo_install_repository [-h][-b branch][-c file][-CDjLmn][-O git-org][-o path][-qrU][-u username][-Vvy1] git_repo odoo_vid new_odoo_vid
            Add or duplicate odoo repository into local filesystem
             -h              this help
             -b branch       default odoo branch
             -c file         configuration file (def .travis.conf)
             -C              do not touch configuration file (conflict with -D)
             -D              update default values in /etc configuration file before creating script (conflict with -C)
             -j              install only repository owned by git organization
             -L              create symbolic link rather copy files (if new_odoo_ver supplied)
             -m              multi-version odoo environment
             -n              do nothing (dry-run)
             -O git-org      git organization, one of oca oia[-git|-http] zero[-git|-http] (def zero)
             -o path         odoo directory
             -q              silent mode
             -r              do just update remote info (if no new_odoo_ver supplied)
             -U              do not install, do upgrade
             -u username     execute as username (def=odoo)
             -V              show version
             -v              verbose mode
             -y              assume yes
             -1              if clone depth=1
        
        
        odoorc: general purpose bash function
        -------------------------------------
        
        The bash file odoorc is a general purpose Odoo library. It supplies some Odoo values from odoo_vid or from odoo directory.
        Some values may depends by environment:
        
        - ODOO_DB_USER is the rule to return db username (def odoo%(MAJVER)s)
        - ODOO_GIT_HOSTNAME is the git hostname (def github.com)
        - ODOO_GIT_SHORT -> regex of git organizzations with vid short name (def /(oca)/, see odoo-vid)
        
        Usage:
        
            . odoorc
            RES=$(build_odoo_param PARAM odoo_vid [(search|DEBUG|default|tree|SERVER|<rptname>|<modname>)] [oca|zero|zero-http|zero-git|librerp|flectra] [(search|DEBUG|default|tree|SERVER)])
        
        where:
        
            PARAM is one of (ALL|BIN|CONFN|DB_USER|DDIR|FLOG|FPID|FULLVER|FULL_SVCNAME|GIT_BRANCH|GIT_OPTS|GIT_ORG|GIT_ORGNM|GIT_PROT|GIT_URL|HOME|INVALID_MODNAMES|INVALID_MODNAMES_RE|LICENSE|LCONFN|MAJVER|MANIFEST|OCB_SUBDIRS|OCB_SUBDIRS_RE|OPTS_ASM|PARENTDIR|PKGNAME|PKGPATH|REPOS|ROOT|RORIGIN|RPCPORT|RUPSTREAM|SVCNAME|UPSTREAM|URL|URL_BRANCH|USER|VCS|VDIR|VENV)
        
        
        |
        |
        
        Getting started
        ===============
        
        N/A
        
        Prerequisites
        -------------
        
        Zeroincombenze tools require:
        
        * Linux Centos 7/8 or Debian 9/10 or Ubuntu 18/20/22
        * python 2.7+, some tools require python 3.6+
        * bash 5.0+
        
        
        Installation
        ------------
        
        N/A
        
        
        Stable version via Python Package
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        
        ::
        
            pip install clodoo
        
        |
        
        Current version via Git
        ~~~~~~~~~~~~~~~~~~~~~~~
        
        ::
        
            cd $HOME
            git clone https://github.com/zeroincombenze/tools.git
            cd ./tools
            ./install_tools.sh -p
            source $HOME/devel/activate_tools
        
        
        
        Upgrade
        -------
        
        
        Stable version via Python Package
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        
        ::
        
            pip install clodoo -U
        
        |
        
        Current version via Git
        ~~~~~~~~~~~~~~~~~~~~~~~
        
        ::
        
            cd $HOME
            ./install_tools.sh -U
            source $HOME/devel/activate_tools
        
        
        
        ChangeLog History
        -----------------
        
        2.0.7 (2023-09-26)
        ~~~~~~~~~~~~~~~~~~
        
        * [FIX] Some fixes due old wrong code (id -> name)
        
        2.0.7.0.7
        ~~~~~~~~~
        
        * [IMP] Incorporated new pypi oerlib3
        * [IMP] Discriminate http_port and xmlrpc_port to avoid mistake
        * [IMP] New param IS_MULTI
        
        2.0.7.0.7
        ~~~~~~~~~
        
        * [FIX] clodoo.py: minor fixes
        * [IMP] odoorc: odoo version 16.0
        
        2.0.7.0.7
        ~~~~~~~~~
        
        * [IMP] odoorc: minor improvements
        * [IMP] odoorc: test for Odoo 16.0
        * [IMP] transodoo.py: minor improvements
        
        2.0.7.0.7
        ~~~~~~~~~
        
        * [FIX] odoorc: GIT_BRANCH sometimes fails
        
        
        |
        |
        
        Credits
        =======
        
        Copyright
        ---------
        
        SHS-AV s.r.l. <https://www.shs-av.com/>
        
        
        |
        
        Authors
        -------
        
        * `Antonio Maria Vigliotti <False>`__
        * `SHS-AV s.r.l. <https://www.zeroincombenze.it>`__
        
        Contributors
        ------------
        
        Antonio M. Vigliotti <antoniomaria.vigliotti@gmail.com>
        
        
        
        |
        
        This module is part of tools project.
        
        Last Update / Ultimo aggiornamento: 2023-10-27
        
        .. |Maturity| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
            :target: https://odoo-community.org/page/development-status
            :alt: 
        .. |license gpl| image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
            :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
            :alt: License: AGPL-3
        .. |license opl| image:: https://img.shields.io/badge/licence-OPL-7379c3.svg
            :target: https://www.odoo.com/documentation/user/9.0/legal/licenses/licenses.html
            :alt: License: OPL
        .. |Tech Doc| image:: https://www.zeroincombenze.it/wp-content/uploads/ci-ct/prd/button-docs-2.svg
            :target: https://wiki.zeroincombenze.org/en/Odoo/2.0.7/dev
            :alt: Technical Documentation
        .. |Help| image:: https://www.zeroincombenze.it/wp-content/uploads/ci-ct/prd/button-help-2.svg
            :target: https://wiki.zeroincombenze.org/it/Odoo/2.0.7/man
            :alt: Technical Documentation
        .. |Try Me| image:: https://www.zeroincombenze.it/wp-content/uploads/ci-ct/prd/button-try-it-2.svg
            :target: https://erp2.zeroincombenze.it
            :alt: Try Me
        .. |Zeroincombenze| image:: https://avatars0.githubusercontent.com/u/6972555?s=460&v=4
           :target: https://www.zeroincombenze.it/
           :alt: Zeroincombenze
        .. |en| image:: https://raw.githubusercontent.com/zeroincombenze/grymb/master/flags/en_US.png
           :target: https://www.facebook.com/Zeroincombenze-Software-gestionale-online-249494305219415/
        .. |it| image:: https://raw.githubusercontent.com/zeroincombenze/grymb/master/flags/it_IT.png
           :target: https://www.facebook.com/Zeroincombenze-Software-gestionale-online-249494305219415/
        .. |check| image:: https://raw.githubusercontent.com/zeroincombenze/grymb/master/awesome/check.png
        .. |no_check| image:: https://raw.githubusercontent.com/zeroincombenze/grymb/master/awesome/no_check.png
        .. |menu| image:: https://raw.githubusercontent.com/zeroincombenze/grymb/master/awesome/menu.png
        .. |right_do| image:: https://raw.githubusercontent.com/zeroincombenze/grymb/master/awesome/right_do.png
        .. |exclamation| image:: https://raw.githubusercontent.com/zeroincombenze/grymb/master/awesome/exclamation.png
        .. |warning| image:: https://raw.githubusercontent.com/zeroincombenze/grymb/master/awesome/warning.png
        .. |same| image:: https://raw.githubusercontent.com/zeroincombenze/grymb/master/awesome/same.png
        .. |late| image:: https://raw.githubusercontent.com/zeroincombenze/grymb/master/awesome/late.png
        .. |halt| image:: https://raw.githubusercontent.com/zeroincombenze/grymb/master/awesome/halt.png
        .. |info| image:: https://raw.githubusercontent.com/zeroincombenze/grymb/master/awesome/info.png
        .. |xml_schema| image:: https://raw.githubusercontent.com/zeroincombenze/grymb/master/certificates/iso/icons/xml-schema.png
           :target: https://github.com/zeroincombenze/grymb/blob/master/certificates/iso/scope/xml-schema.md
        .. |DesktopTelematico| image:: https://raw.githubusercontent.com/zeroincombenze/grymb/master/certificates/ade/icons/DesktopTelematico.png
           :target: https://github.com/zeroincombenze/grymb/blob/master/certificates/ade/scope/Desktoptelematico.md
        .. |FatturaPA| image:: https://raw.githubusercontent.com/zeroincombenze/grymb/master/certificates/ade/icons/fatturapa.png
           :target: https://github.com/zeroincombenze/grymb/blob/master/certificates/ade/scope/fatturapa.md
        .. |chat_with_us| image:: https://www.shs-av.com/wp-content/chat_with_us.gif
           :target: https://t.me/Assitenza_clienti_powERP
        
        
        
Keywords: odoo
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development
