Estrutura

Estrutura módulo

Um módulo poderá conter os seguintes elementos:

Objeto de Negócios : declarado como classes Python estendendo o osv.Model classe, a persistência destes recursos é completamente gerenciado pelo ORM do OpenERP.

Dados : Os arquivos XML / CSV com meta-dados (pontos de vista e declaração de fluxos de trabalho), os dados de configuração (módulos de parametrização) e dados de demonstração (opcional, mas recomendado para o teste),

Relatórios : RML (formato XML). HTML / MAKO ou OpenOffice modelos de relatório, a ser mesclado com qualquer tipo de dados de negócios, além de gerar HTML, ODT ou relatórios em PDF.

Cada módulo está contido em seu próprio diretório dentro ou o / bin / addons do servidor ou outro diretório de addons, configurado na instalação do servidor. Para criar um novo módulo, por exemplo, o módulo 'OpenAcademy', são necessárias as seguintes etapas:

  • Criar um
    openacademy
    subdiretório no diretório de origem / addons
  • Criar o arquivo de importação módulo
    __init__.py
  • Criar o arquivo Manifield módulo
    __openerp__.py
  • Criar Python arquivos contendo objetos
  • Criar. xml segurando os dados do módulo, como visualizações, entradas de menu ou dados de demonstração
  • Opcionalmente, criar relatórios ou workflows

Arquivo de importação Python __ init__.py

O

__init__.py

arquivo é o arquivo de importação Python, porque um módulo OpenERP também é um módulo Python regular. O arquivo deve importar todos os outros arquivos python ou submódulos. Por exemplo, se um módulo contém um único arquivo python chamado

openacademy.py

, o arquivo deve ser parecido:

openacademy importação

Arquivo de manifesto __ openerp__.py

No diretório do módulo criado, você deve adicionar um

__openerp__.py

arquivo. Esse arquivo, que deve ser um dicionário Python literal, é responsável por

determinar os arquivos XML que serão analisados ​​durante a inicialização do servidor, e também para determinar as dependências do módulo criado. declarar metadados adicionais Este arquivo deve conter um dicionário Python com os seguintes valores:

name        O nome do módulo em Inglês.      
version          A versão do módulo. 
summary          resumo descrição ou palavras-chave 
description      A descrição do módulo (texto).
category         A categoria do módulo 
author           O autor do módulo.
website          URL do site do módulo
license          A licença do módulo (default: AGPL-3).
depends          Lista de módulos em que este módulo depende ao lado de base. 
data             Lista de arquivos XML para carregar quando o módulo é instalado ou atualizado.
demo             Lista de arquivos xml adicional. para carregar quando o módulo é 
                 instalado ou atualizado e bandeira de demonstração está ativo.
installable      Verdadeiro ou Falso. Determina se o módulo é instalado 
                 ou não.
auto_install     Verdadeiro ou Falso (padrão: False). Se definido como "É verdade", o 
                 módulo é um link. Ele será instalado assim 
                 como todas as suas dependências estão instaladas.


Para o

openacademy

módulo, aqui está um exemplo de

__openerp__.py

arquivo de declaração:


{
    'name' : "OpenAcademy",
    'version' : "1.0",
    'author' : "OpenERP SA",
    'category' : "Tools",
    'depends' : ['mail'],
    'data' : [
        'openacademy_view.xml',
        'openacademy_data.xml',
        'report/module_report.xml',
        'wizard/module_wizard.xml',
    ],
    'demo' : [
        'openacademy_demo.xml'
    ],
    'installable': True,
}

Objetos

Todos os recursos são objetos OpenERP: faturas, parceiros. Metadados são também objeto também: menus, ações, relatórios ... Nomes de objeto são hierárquicos, como nos exemplos a seguir:


  • account.transfer: a transferência de dinheiro
  • account.invoice: uma factura
  • account.invoice.line: uma linha de factura

Geralmente, a primeira palavra é o nome do módulo: conta, estoque, venda.

Aqueles objeto são declaradas em python ser subclasse osv.Model

O ORM do OpenERP é construído sobre PostgreSQL. Assim, é possível consultar o objeto usado pelo OpenERP utilizando a interface de objeto (ORM) ou usando diretamente instruções SQL.

Mas é perigoso para escrever ou ler diretamente no banco de dados PostgreSQL, como você vai atalho passos importantes, como as restrições de verificação ou de modificação de fluxo de trabalho.

Arquivos XML