Intoduction to the Preset-Manager

Syntax definition of yaml:
https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html

A preset is a yaml file describing an object, that has to be created in new erp site.

Each preset consists of at least the following elements:

  • Name of the object to create
    The name is descriptive only, but should hint at what the objects usage is.
  • model
    This is the erp model used to create the new object
  • model_help
    an explanation of the object
  • handler (optional)
    This is the name of the method that is used to create the object. It needs to be accessible within the manager. If no handler is provided, a simple base handler is used.

Example:

# in the erp-site create a an object ot typ "bank"
bank:
    # use the model "res.bank"
    model: 'res.bank'
    # provide some help to the person providing thae data
    model_help: 'Hier werden Daten zur Bank der von der Firma genutzten Banken erfasst'
    # use the preset-hmanager handler 'read_bank_yaml'
    # this handler is in the folder pointed to by the preset-hmanager configuration
    # run presets/
    handler: 'read_bank_yaml'

Dependant handlers:

A handler can depend from an other handler. Such a handler usualy uses objects that have been created by the parent handler.

I the following example, creates a parent handler two bank objects. The dependant handler adds a bank account for each of them.

The dependant handler can access the objects created by the parent handler using the parents result.

all handler depend on the base_preset, and can assume, that all elements it is responsible for have been created.

Example with dependant handler:

parent:

bank:
    model: 'res.bank'
    model_help: 'Hier werden Daten zur Bank der von der Firma genutzten Banken erfasst'
    handler: 'read_yaml_bank'

banks:
    bank1:
        name_help: 'Wähle die Bank aus der Liste der Banken. Diese ist auf banks.redo2oo.ch zu finden'
        name: 'Bank1'
    bank2:
        name_help: 'Wähle die Bank aus der Liste der Banken. Diese ist auf banks.redo2oo.ch zu finden'
        name: 'Bank2'

dependent:

bankaccount:
    model: 'res.partner.bank'
    model_help: 'Angaben zu den Bankkonten'
    handler: 'read_yaml_bankaccount'
    depends: 'read_yaml_bank'

    accounts:
        account1:
            bank_id_help: 'Wähle eine der oben definierten Banken. Die erste heisst bank1'
            bank_id: 'bank1'

            bank_name_help: 'Unter diesem Namen erscheint die Bank im Odoo-Backend'
            bank_name: 'Valiant Bank Breitenrain'

            acc_number_help: 'IBAN Konto-Nummer'
            acc_number: 'CH36 0000 0000 0000 0000 0'

        account2:
            bank_id_help: 'Wähle eine der oben definierten Banken. Die zwite heisst bank2'
            bank_id: 'bank2'

            bank_name_help: 'Unter diesem Namen erscheint die Bank im Odoo-Backend'
            bank_name: 'Postfinance'

            acc_number_help: 'IBAN Konto-Nummer'
            acc_number: 'CH26 0000 0000 0000 0000 0'