terça-feira, 3 de novembro de 2015

Encontro Odoo Brasil

Segue link do 1º encontro Odoo Brasil em São Paulo.

Infelizmente não poderei participar do mesmo, mas fica o convite para quem mora em SP participar.

http://openerpbrasil.org/event/encontro-odoo-brasil-2015-11-06-1/register

quinta-feira, 8 de outubro de 2015

Utilizando o git e github para publicar suas melhorias no Odoo-brazil

Continuando a série de vídeos e posts de como ajudar a desenvolver e corrigir bugs em projetos Open Source, neste vídeo explico um pouco sobre o github, nele faço um fork de um repositório efetuo as modificações necessárias, e após crio um Pull Request com as modificações.




Espero que tirem proveito do vídeo para corrigir seu próximo bug :)

sábado, 3 de outubro de 2015

Descobrindo o Odoo e o Odoo no Brasil

O Odoo hoje é considerado o melhor software Open Source do mundo.Possui uma comunidade muito ativa e global, com vários módulos prontos.
Neste vídeo eu falo um pouco sobre o mesmo, sobre o código e um pouco da localização Brasileira.




Link da apresentação:
www.trustcode.com.br/slides/slide/conhecendo-a-estrutura-do-odoo-1

quarta-feira, 30 de setembro de 2015

Criação da associação Odoo Brasil

Peço aos frequentadores deste blog que respondam a um questionário referente a criação de uma associação para difundir o uso do Odoo no Brasil:

http://goo.gl/forms/6NmDZIOJ1G

Mais informações em:

https://brasil.odoo.com/

sábado, 19 de setembro de 2015

Descobrindo o melhor software Open Source do mundo

O Odoo hoje é considerado o melhor software Open Source do mundo.
Possui uma comunidade muito ativa e global, com vários módulos prontos, nesta apresentação eu mostro um pouco onde achar esses módulos e também quem é responsável pelo software.

Em breve um vídeo sobre os slides explicando em detalhes a localização brasileira e OCA.


 

quinta-feira, 17 de setembro de 2015

Guia básico sobre o git


Link muito bom com alguns comandos básicos sobre o git

http://rogerdudler.github.io/git-guide/index.pt_BR.html

Repositório
O repositório é a pasta do projeto. Todo repositório tem uma pasta oculta .git. Isso é o que mostra para o git e para você que existe um repositório naquela pasta.

Commit

Um commit é um grupo de alterações no código. Toda vez que você quiser "salvar" as alterações feitas por você no repositório, você commita essas mudanças. Um commit contém as alterações que foram feitas nele e uma mensagem descritiva, além de informações meta (data, autor, etc).
Faça commit de alterações já completas ou que possam ser completadas por alguém. Nunca separe alterações em pequenos commits de poucas mudanças.

Branches

Branches são separações de código. O branch padrão do projeto no Odoo é a versão atual sempre. Branches normalmente são utilizados para separar alterações grandes ou novas funcionalidades do projeto, por exemplo: Existe um projeto de blog, os desenvolvedores já fizeram quase toda a parte do blog, mas existem alterações para fazer no sistema de usuários do blog e algumas a fazer no sistema de posts do blog. Para isso, cria se uma branch "usuarios" e uma "posts" (ou algo do tipo) e fazem-se as alterações nessas branches, um time trabalha em cada uma dessas branches, enquanto isso, outro time continua trabalhando em pequenas mudanças ou bugfixes na branch master.

Merge

Um merge é a união de duas branches, normalmente, merges são feitos na branch master. No exemplo do blog, quando a alteração do blog for terminada, alguém vai unir essas alterações na branch master para que elas possam finalmente fazer parte do projeto de fato.
Os merges costumam dar bastante problema, pois os códigos podem (e provavelmente vão entrar em conflito). Se houverem alterações no mesmo arquivo ou o git não conseguir definir se alguma linha deve ou não entrar no projeto por motivo de conflito, essas alterações deverão ser corrigidas manualmente.

Clone

Um clone de um repositório funciona como uma branch de um repositório online em um repositório local. Ou seja, quando se deseja trabalhar em um repositório hospedado no github, clona-se esse repositório para o seu computador, para poder trabalhar nele.

Pull

É uma atualização do repositório local. Se estiver trabalhando com vários desenvolvedores chega um momento que você necessita buscar as modificações que eles fizeram, um pull baixa as últimas alterações remotas para o seu computador.

Push

Envia (ou tenta enviar) o código para o repositório online.

Fork

O fork é como um clone, porém dentro do github. Isso quer dizer que o repositório não vai ser baixado para seu computador, vai ser feita uma cópia para a sua conta, no fork é possível fazer qualquer modificação.

Pull Request

Um pull request é um pedido que se faz ao dono do repositório para que esse atualize o código dele com o seu código. Ou seja, você pede para que o dono do projeto ao qual você quer contribuir adicione suas modificações ao projeto oficial.

quarta-feira, 16 de setembro de 2015

Colaborando com a localização Brasileira

Antes de continuar com este artigo você deve ter instalado o git, se não sabe como faze-lo acesse este link para as instruções de instalação:

No momento de escrita deste post temos duas versões da localização brasileira do Odoo.

https://github.com/odoo-brazil  - Mais atualizada e funcionando

e

https://github.com/OCA/l10n-brazil  - Ainda em processo de migração.

Qualquer ajuda nas duas versões são bem vindas..

Bom vamos lá, se você estiver pensando: "Não sei o que fazer, não tenho nenhuma necessidade de desenvolvimento" então o 1º Passo é acessar a lista de Pull Request e Issues do github:



Issues - seriam os problemas que existem em aberto na localização, necessitam ainda o desenvolvimento para se resolver, podem ser tanto bugs ou apenas melhorias e novas funcionalidades.

Pull Requests - são melhorias propostas por desenvolvedores para serem aceitas ao código oficial, estão ali porque necessitam que outros desenvolvedores ou pessoas testem e validem que aquilo está correto. Podem ainda estar associadas a algum "Issue" aberto, significando que aquele código corrige aquele problema.


Bom, agora já sei no que trabalhar, mãos a obra.

Agora que você já sabe o que vai fazer é bom deixar um comentário no 'Issue' que pretende trabalhar, ou mesmo que for algo novo, criar uma issue de melhoria para comunicar aos mantenedores do projeto que você está trabalhando nele, sempre tem alguém que pode lhe dar dicas.

Agora vamos criar nossa conta no github se ainda não possuir, e após isso vamos fazer um "Fork" do projeto:

O fork significa pegar uma cópia do projeto atual, com esta cópia temos o poder de alterar e enviar nossas correções novamente ao github diretamente em nosso "Fork" para posteriormente enviar ao repositório principal com as devidas correções.

Feito o Fork vamos clonar o projeto para a maquina localmente e começar a trabalhar no mesmo, para isso copiamos a seguinte url:


Hora de abrir o terminal:


Após o download vamos fazer nossas correções, mexemos na cor do link, corrigimos aquele bug complicado, etc.

Quando estiver tudo ok com as nossas mudanças voltamos ao terminal e acessamos a pasta onde foi feito o download e digitamos "git status"



Podemos notar que o git nos mostra quais arquivos foram modificados, se estiver ok vamos continuar.

Agora devemos efetuar o envio das modificações, para isto precisamo de três comandos:
git add    -- Adiciona os arquivos  que vão entrar no commit
git commit   -- Aplica as alterações e cria um histórico
git push   -- Envia as alterações para o github.



Após o git push devemos digitar nosso email e senha cadastrados no github, hora de acessar o github e ver se as nossa mudanças foram enviadas corretamente, lembre-se que fizemos um Fork, e clonamos o fork, então as mudanças foram enviadas para lá.



Chegou a hora de criamos nosso Pull Request:




Clicamos no link Pulll Request, verificamos se está tudo certo o que fizemos e após em "Create Pull Request",


Agora é só esperar que alguém que mantém a localização ver e testar o seu Pull Request.
Enquanto isso você pode ir testando os outros PR e dar um +1 quando estiver tudo certo.





terça-feira, 15 de setembro de 2015

Instalando e configurando o git - Básico

Usando o git em três passos básicos:

1º Download e instalação

  • Windows - https://git-scm.com/download/win
  • Ubuntu - digitar na linha de comando: "sudo apt-get install git"
  • Fedora - "sudo dnf install git"
2º Configurar seu nome de usuário:

git config --global user.name "John Doe"

3º Configurar seu email:

git config --global user.email johndoe@example.com

É importante que o email configurado no terceiro passo seja o mesmo que o usado para criar sua conta no github ou bitbucket.
Após isso já pode começar a usar o git:


segunda-feira, 3 de agosto de 2015

Utilizando a consulta de CEP do Odoo

Neste simples video, explico como utilizar a pesquisa de CEPs do Odoo.
É possível tanto efetuar a pesquisa do endereço por CEP, como também pesquisar o CEP através dos dados de Rua, e Município.

Em breve será feita a integração com uma base online de CEPs, sem a necessidade de se instalar o módulo com os dados de CEP, deixando a base de dados mais leve.


quarta-feira, 8 de julho de 2015

Hangout da localização brasileira



No dia 17 de junho de 2015 aconteceu o segundo hangout sobre a localização brasileira do Odoo,
nela apresentei como efetuar a instalação do Odoo e utilizar o eclipse para usar com o Odoo.



Acompanhe no site da Trust-Code o calendário dos próximos eventos sobre o Odoo.



terça-feira, 7 de julho de 2015

Criando um novo módulo para o Odoo

Este vai ser um simples tutorial de como criar um módulo simples.
Problema:
  • Com o advento da NF-e 3.10 tem se a necessidade de adicionar um campo a mais na NF-e que é o campo "ind_final" , que indica se a transação está sendo efetuada com um consumidor final ou não.
  • Necessita-se criar no Odoo na tela de cotações um campo a mais que o usuário possa escolher se é consumidor final ou não.
  • É necessário criar este campo no banco de dados para salvar a informação cadastrada pelo usuário.
 Pré-requisitos para este tutorial:
  • Estar com o Odoo instalado e rodando via eclipse, caso não tenha configurado veja esta série de videos: Tutorial de instalação
 Termos utilizados:
  • View - qualquer tela, formulário, que aparece no sistema, ela é responsável pela organização dos campos.
  • Models - classe python que define novos campos, e contém métodos que podem ser executados.

Primeiro passo criar uma pasta que irá guardar nossos módulos, e depois criar uma pasta para o nosso novo módulo:
A pasta trust-exemplos poderá conter vários módulos, a pasta simple_module será efetivamente o módulo que iremos criar. O próximo passo é adicionar a pasta trust-exemplos ao nosso addons_path no arquivo de configuração para que o Odoo encontre nosso módulo.
Cada pasta deve ser separada por vírgula, pode ser tanto o caminho completo como relativo ao local do arquivo de configuração.
Próximo passo é criar a estrutura básica de um módulo:


Para este módulo você precisa criar apenas as pastas views e models, as outras servem para diferentes propósitos e serão explicadas em outros tutorias. Na pasta models iremos criar nossos modelos python, e as views conterão o xml que modifica a view de cotação.

Agora vamos começar pelo arquivo __openerp__.py, nele criamos as informações básicas sobre nosso módulo, o arquivo deve ficar como  a seguir:

#coding=utf-8

{
    'name': 'Simple Module',
    'category': 'Sale',
    'summary': 'Adiciona novo campo consumidor final a cotação',
    'version': '1.0',
    'description': "Adiciona novo campo consumidor final a cotação",
    'author': 'Danimar Ribeiro',
    'depends': ['sale'],
    'data': [
        'views/sale_order.xml',
    ],
    'installable': True,
}

As tags mais importantes são 'depends', onde dizemos quais módulos nosso módulo depende, e a tag 'data' onde adicionamos os arquivos xml utilizados por nosso módulo.

Agora vamos iniciar nossa aplicação para ver se o módulo vai aparecer. Acessamos o sistema e vamos para o menu "Configurações -> Atualizar lista de módulos" , se o mesmo não estiver aparecendo lembre-se de editar o usuário e habilitar "Procedimentos técnicos" para o mesmo, e após atualize a página.
Agora podemos pesquisar o mesmo em "Módulos locais":

Já podemos instalar o mesmo, porém toda vez que efetuarmos uma modificação em algum arquivo xml de nosso módulo, para que o mesmo tenha as alterações aplicadas devemos acessar o módulo e clicar em atualizar:

Vamos agora escrever nosso modelo, mais informações sobre como escrever os módulos aqui: Odoo

sale_order.py
#coding=utf-8

from openerp import fields, api, models


class SaleOrder(models.Model):
    _inherit = 'sale.order'

    ind_final = fields.Selection([
        ('0', u'Não'),
        ('1', u'Consumidor final')],
        string=u'Operação com Consumidor final', required=False,
        help=u'Indica operação com Consumidor final.', default='0') 

__init__.py
from . import models 

models/__init__.py
from . import sale_order

O arquivo sale_order.py deve estar com o código acima, nele criamos uma nova classe que herda de models.Model (python inheritance) e também adicionar a variável '_inherit' (odoo inheritance) para dizer que queremos extender a classe sale.order.  Criamos então o campo ind_final do tipo selection com duas opções, mas informações sobre os tipos de campos no link acima.
Reiniciamos a aplicação e podemos atualizar novamente o módulo, após a atualização o campo já foi criado no banco de dados.



Por último devemos atualizar a view de cotações para adicionar o campo recém criado, mas antes disso necessitamos de algumas informações para modificar a view corretamente, basicamente necessitamos descobrir qual a view correta que devemos modificar, e o local onde o novo campo vai ser posicionado.

  • Habilitar o modo debug na aplicação -clique sobre o usuário no canto superior direito e "Sobre o Odoo" e habilite.
  • Vá para a tela de cotações e clique na opção "Editar form visão"
  •  Nela temos a informação do Id desta view que vamos precisar, e também informações sobre todas as views que herdam, bem como o xml associado a view. Vamos guardar este id: sale.view_order_form
  • Após voltamos a tela anterior e vamos tentar posicionar nosso novo campo após o campo cliente, para isso vamos inspecionar o nome do mesmo posicionando o mouse sobre o mesmo:

  • O campo possui o nome de partner_id, então vamos utilizar este id para posicionar nosso campo após este.
 Vamos a edição do xml:

views/sale_order.xml

<?xml version='1.0' encoding='UTF-8' ?>
<openerp>
   <data>  
     <record id="simple_module_sale_order_form" model="ir.ui.view">
        <field name="name">simple_module.order.form</field>
        <field name="model">sale.order</field>
        <field name="inherit_id" ref="sale.view_order_form"/>
        <field name="arch" type="xml">
            <field name="partner_id" position="after">
              <field name="ind_final" />
            </field>            
        </field>
     </record>
   </data>
</openerp>


Partes importantes do xml acima:
  • inherit_id: é o id da view que estamos herdando para modificar o comportamento da mesma, achamos esse id anteriormente inspecionando a view.
  • partner_id: é o campo que vamos usar como referencia para adicionar o nosso conteudo após ele: "position='after'"
  • model: esse é o modelo, deve ser o mesmo modelo da classe criada no arquivo .py
Atualizamos novamente nosso módulo e ualáá, temos o nosso campo.


O código desde tutorial está em: https://github.com/Trust-Code/trust-exemplos



sexta-feira, 12 de junho de 2015

Lista de links atualizados + Odoo + Localização Brasileira + Odoo 8.0


Blog em novo endereço:
http://www.odooerpnews.com.br/2015/06/12/lista-de-links-atualizados-odoo-localizacao-brasileira-odoo-8-0/

Segue links atualizados (12/06/2015), para todos os links utilizar a branch 8.0.
Para efetuar o download usar o git com o seguinte comando:

"git clone url_repositorio"

Core do Odoo
 https://github.com/OCA/OCB.git

Localização Brasileira
https://github.com/Trust-Code/l10n-brazil.git

NF-e
https://github.com/Trust-Code/odoo-brazil-eletronic-documents.git

PySped necessário para emissão de NF-e automática
https://github.com/Trust-Code/PySPED.git

Dependência da localização
https://github.com/Trust-Code/server-tools.git

Dependência da localização - Permite criar regras fiscais
https://github.com/Trust-Code/account-fiscal-rule.git

Após o download configurar a propriedade addons_path no arquivo de configuração para apontar para todos os repositorios baixados.


quarta-feira, 18 de março de 2015

Dicas de debug no eclipse

Seguindo os videos sobre a instalação do Odoo, fiz mais um pequeno video com dicas para usar o eclipse e rodar o Odoo.





Não se esqueçam de olhar os três primeiros vídeos da série sobre a instalação.