odoo libro tecnico
DESCRIPTION
OdooTRANSCRIPT
1. introduction2. BajareinstalarOdoo8enUbuntu14.04Server
Tabladecontenido
Odoo-libroTecnico
2
Enestemanualqueremosmostrarcomodesarrollarunmoduloparaopenerpqueabranjaunagranpartedelconocimientonecesarioparaadministrarnuevosdesarrollos.
TodovaestarbasadoenlaversióndeOdoo8.0elmoduloquevamosadesarrollarvallamarseopenacademyqueseráunsistemaparaelcontroldeloscursosministradosenOdooconsusparticipantes.
TambiénqueremosmostrarelusodelGithubycontrolarnuestranuevasversiónesporelperonoserámuyavanzado,solamentedaremossuambitogeneral.
1Introducción
Odoo-libroTecnico
3introduction
PormasquequeramostenertodolistoparautilizarydesarrollarenOdooparawindowssiemprelomejorvasertenertodobajolinux,yaqueessuprincipalfuentededesarrolloytodoesprobadoyfuncionamejorconel.
TenemosunscriptautomatizadorparainstalarOdooporcompletoenunUbuntu14.04Servercontodossusdependencias,ydejandoyacorriendocomoservicio.Eslamaneramasrapidadeinstalar.ElmismoScriptfuedisponibilizadoPor:AndréSchenkels,ICTSTUDIO2014
ElrepositoriodeGithubeshttps://github.com/aschenkels-ictstudio/openerp-install-scriptsdentrodeesterepositoriotenemoslosscriptsparaelOdoo8.Parafacilitardejoelcomandoparabajarelscriptsinelusodelgithubpropriamente.
wgethttps://raw.githubusercontent.com/aschenkels-ictstudio/openerp-install-scripts/master/odoo-v8/ubuntu-14-04/odoo_install.sh-Oodoo_install.sh
sudoshodoo_install.sh
ComoreferenciaenlaslineasinicialesdelscripttenemosalgunosparametrosquesonparaconfigurarporejemplolacontraseñadelusuarioadministradorparacrearlasbasededatosdeOdooporejemplo:
##fixedparameters
#openerp
OE_USER="odoo"
OE_HOME="/opt/$OE_USER"
OE_HOME_EXT="/opt/$OE_USER/$OE_USER-server"
#Enterversionforcheckout"8.0"forversion8.0,"7.0(version7),
#saas-4,saas-5(opendaysversion)and"master"fortrunk
OE_VERSION="8.0"
#setthesuperadminpassword
OE_SUPERADMIN="superadminpassword"
OE_CONFIG="$OE_USER-server"
Paso1:InstalarUbuntu14.04Paso2:AbrirelterminallinuxcomorootPaso3:ActualizarElsistemacompletamente
sudoapt-getupdate;sudoapt-getupgrade-y
Paso4:InstalarelGithubyelPostgresql
sudoapt-getinstallgitpostgresql
Paso5:Vamosacrearelusuariodelinuxquevacorrerelodooyaquenoespermitidoejecutarelodoocomoroot.
Bajareinstalarodoo8enubuntu14.04.
InstalaciónAutomatizadaporunscript
InstalaciónManualpasoapasoUbuntu14.04
Odoo-libroTecnico
4BajareinstalarOdoo8enUbuntu14.04Server
sudouseradd-m-U-Gsudo-s/bin/bash--home=/home/odooodoo
Enestecomandopasamoslosparametros-mparacrearelhomedelusuario,el-Uparaquecreeelgrupodelpropiousuario-Gsudoparaqueelusuariopuedaexecutarcomandosudoyelparametro-s/bin/bashdefiniendoelterminaldeesteusuarioy--home=/home/odooparadefinirdondeestaraelhomedelusuario,algunaspersonasponen/opt/odooporejemplo.
Paso6:Cambiamoslacontaseñadeesteusuario
sudopasswdodoo
guardarestacontraseñaquedigitasparausarleenelpaso10
Paso7:Creamoselusuarioahoradelabasededadospostgres
Enalgunasocasionesencontramosproblemadeenlainstalacióndeposgresdebidoanohaberindicadoun"locales"dellinuxelpostgresqlnoinicializalasbasededatosparagarantizarqueestainicializadoejecutamoselcomando
LC_ALL=en_US.UTF-8pg_createcluster9.3main--start
sudosu-postgres-c"createuser-sodoo"2>/dev/null
Conelcomandolinuxmultiploejecutaelcomandocreateuser-sodooconlospermisosdelusuariopostgresytodalasmensagessonenviadosal/dev/nullqueesabujeronegroenlinux:)
Paso8:Instalamostodaslasdependenciasdelosmodulosdeodoodelsistemaoperativolinux
sudoapt-getinstallpython-dateutilpython-feedparser/
python-gdatapython-ldappython-libxslt1python-lxml/
python-makopython-openidpython-psycopg2python-pybabel/
python-pychartpython-pydotpython-pyparsing/
python-reportlabpython-simplejsonpython-tz/
python-vatnumberpython-vobjectpython-webdav/
python-werkzeugpython-xlwtpython-yamlpython-zsi/
python-docutilspython-psutilwgetpython-unittest2/
python-mockpython-jinja2python-devlibpq-dev/
poppler-utilspython-pdftoolsantiwordpy/
python-setuptoolspython-pybabelpython-decorator/
python-pippostgresql-server-dev-9.3
Paso9:CambiamosalusuarioodooynosmovemosalacarpetadelusuarioodooparabajarlosfuentesdeOdoo
sudosu-odoo
Paso10:Tenemosqueinstalarunaultimoapendenciadeodooquenotieneenelrepositoriodeubuntuparaelusodelosserviciosdegoogle.
wgethttp://gdata-python-client.googlecode.com/files/gdata-2.0.18.tar.gz
tarxzvfgdata-2.0.18.tar.gz
cdgdata-2.0.18/
sudopythonsetup.pyinstall
cd~/
Odoo-libroTecnico
5BajareinstalarOdoo8enUbuntu14.04Server
Paso11:PorfinbajamoselcodigofuentedeOdoodesurepositorioyantescrearunacarpetadedesarrollo.
mkdirodoo-dev
cdodoo-dev
gitclonehttps://github.com/odoo/odoo.git-b8.0--depth1
Atentosalosparametrospasadoralgitclone-b8.0quedeterminaquebajelaversión8.0ypasamoselsegundoparametro--depth1quedeterminaelnumeroderevisionesquevaabajardelrepositorioreduciendomucholosmegabitesbajadosdeinternet.Saqueesteparametrosinecesitasbajartodosloshistorialesderevisionesdelodoo.
Paso12:Creandoarchivodeconfiguraciónparaelservidor.
/home/odoo/odoo-dev/odoo/odoo.py--addons-path=/home/odoo/odoo-dev/odoo/addons\
-rodoo--stop-after-init--save
Salidaquedeberetornarelcomandoarriba:
2015-04-1123:39:54,78431613INFO?openerp:OpenERPversion8.0
2015-04-1123:39:54,78431613INFO?openerp:addonspaths:['/home/odoo/.local/share/Odoo/addons/8.0',u'/home/odoo/odoo-dev/odoo/addons','/home/odoo/odoo-dev/odoo/openerp/addons']
2015-04-1123:39:54,78431613INFO?openerp:databasehostname:localhost
2015-04-1123:39:54,78431613INFO?openerp:databaseport:5432
2015-04-1123:39:54,78431613INFO?openerp:databaseuser:odoo
2015-04-1123:39:54,87331613INFO?openerp.service.server:Initiatingshutdown
2015-04-1123:39:54,87331613INFO?openerp.service.server:HitCTRL-Cagainorsendasecondsignaltoforcetheshutdown.
SitenemosalgunerrorenelcomandoarribaalgodiferentedelabajomostratoejecutarestasesionsinoseguimosenfrenteconlasesiondeabajoPaso13:
Puedequepasealgunerrorporejemplodealgunmodoincluyenalgunadependenciadepythonquenoexistahastaestarevisióndeestelibro.Puedenverificartodaslasdependenciasenunarchivotxtconelnombrerequirements.txtqueseencuentraenlacarpetaraizdelrepositoriodeodoosito/home/odoo/odoo-dev/odoo/requirements.txt,podemosusarelcomandopipparainstalarestasdependenciasdirectamentedelrepositoriopip.
sudoapt-getbuild-deppython-imaging
sudoapt-getinstalllibxml2-devlibxslt1-devlibldap2-devlibsasl2-dev
sudopipinstall-r/home/odoo/odoo-dev/odoo/requirements.txt
Elproblemadeestecomandoesquevaquererbajartodaslasdependenciasdepythonymuchasdeellasyabajamosenelpaso8
Paso13:Verificandoelarchivodeconfiguración
Paratenerunarchivodeconfiguraciónbiencompletoejecutamoselproprioservidorodooconelparametro--saveparaqueseacreadounarchivodeconfiguraciónenelhomedeusuarioconelnombreoculto.openerp_serverrcparaverelconteudodeestearchivo.
more/home/odoo/.openerp_serverrc
Paso14:Copiarelarchivodeconfiguraciónalacarpeta/etc/
sudomkdir/etc/odoo
Odoo-libroTecnico
6BajareinstalarOdoo8enUbuntu14.04Server
sudochown$(whoami)/etc/odoo
cp/home/odoo/.openerp_serverrc/etc/odoo/openerp-server.conf
Paso15:Carpetasparaloslogsdelservidor.
sudomkdir/var/log/odoo
sudochown$(whoami)/var/log/odoo
sudocp/home/odoo/odoo-dev/odoo/debian/init/etc/init.d/odoo
sudochmod+x/etc/init.d/odoo
sudoln-s/home/odoo/odoo-dev/odoo/odoo.py/usr/bin/openerp-server
sudoln-s/home/odoo/odoo-dev/odoo/odoo.py/usr/bin/odoo.py
sudochown$(whoami)/usr/bin/openerp-server
Paso16:Comprobandositodocorrebien.
sudo/etc/init.d/odoostart
curlhttp://localhost:8069
<html><head><script>window.location='/web'+location.hash;</script></head></html>
Paso17:Ahoraponemoselscriptparacorrerautomaticamenteenelbootdellinux.
sudoupdate-rc.dodoodefaults
ElpropioservidorodoonosayudaainstalarendebianyderivadorsusdependenciasylabasededadosPostgresql.Economizandobastantetiempoenelprocedimientoarribamencionado.
Paso1:InstalarUbuntu14.04Paso2:AbrirelterminallinuxcomorootPaso3:ActualizarElsistemacompletamentePaso4:InstalarelGithubyelPostgresqlPaso5:Vamosacrearelusuariodelinuxquevacorrerelodooyaquenoespermitidoejecutarelodoocomoroot.Paso6:Cambiamoslacontaseñadeesteusuario
#Paso3actualizarelsistemacompletamente
sudoapt-getupdate;sudoapt-getupgrade-y
#Paso4Instalarelgithubypostgresql
sudoapt-getinstallgitpostgresql-y
#siaquiapareceunmensagedeerrorquenopude
#crearelclusterdepostgresdebidoaalgunerrordelocales
sudoLC_ALL=en_US.UTF-8pg_createcluster9.3main--start
#Paso5Creamoselusuariodelinux
sudouseradd-m-U-Gsudo-s/bin/bash--home=/home/odooodoo
#Paso6Modificamossucontraseña
sudopasswdodoo
BajamoselCodigofuentedeOdoo.
#mudamosalusuarioOdooynospediralasenhadelusuarioqueesta
#corriendoEnlaterminal.
InstalaciónusandoelServidorOdoo
Odoo-libroTecnico
7BajareinstalarOdoo8enUbuntu14.04Server
su-odoo
cd~
mkdirodoo-dev
cdodoo-dev
gitclonehttps://github.com/odoo/odoo.git-b8.0--depth1
BajamoslasdependenciasdelSistemaoperativoyconfiguraciondelusuariodebasededatos.
/home/odoo/odoo-dev/odoo/odoo.pysetup_deps
/home/odoo/odoo-dev/odoo/odoo.pysetup_pg
Repetimoslospasos12,13,14,15,16,17.
VeremosalgunosdelosprincipalesparametrosdelarchivodeconfiguracióndeodooqueparanotenerquecambiarlosscriptsdeinicializacióndeOdoo.
Elarchivodeconfiguracióndeodoocuandonoestadefinidocomoparametroenelcomandoparalevantarelservidortipo:
/home/odoo/odoo-dev/odoo/odoo.py-c/etc/odoo/openerp-server.conf
Elscriptutilizaelarchivoqueseencuentraocultoenlacarpetadelusuarioquecorreelodoollamado".openerp_serverrc"el'.'adelanteenlinuxeslareferenciadequeesunarchivooculoysolamenteseveraconelconelparametro-aenells.
ls/home/odoo/-a
..bash_logout.links2odoo-dev.profile
...bashrc.local.openerp_serverrc
addons_path=VariableresponsabledepasaralservidorloslocalesdeondevaaleerlosaddonsdisponiblesenestaestanciadeOdoo,esposibletener2omascarpetasseparadospor","comomostradoabajo,tomarencuentanodejarespacioentreloscomas.Ejemplo:
addons_path=/home/odoo/odoo-dev/odoo/addons,/opt/addons
admin_password=Eslacontraseñademantenimientodeodooeslaqueseusaparapoderhacerbackup,restore,crearbasesdedatosnuevosetc.
log_level=[info][debug_rpc]sondosopcionesprincipales,laprimerainfoesladefaultimonstrainformacionesdelservidorbasico,ladebug_rpcesparamostrarinformacionesmasdetalladadondepodriamosdetectarporejemploperformancedelsistema.
xmlrpc_port=VariableparadefinirelpuertoquevaresponderelOdoopordefiniciónesel8069.
proxy_mode=Siutilizamosunproxyreversoparaelservidorweb,esnecesariodefinirestavariableaverdadero.
xmlrpc_interface=Cuandodefinimoslavariableproxy_modepara"True"esquenoqueremosqueseautilizadoeservidorquenoseaporelproxy,lavariablexmlrpc_interfaceesparadefiniraqueclasedeipoaqueipespecificoelservidorrespondera,defaultes0.0.0.0sitrabajamosenproxy_modeseriainteresantequeesterespondiendoalocalhosto
Archivodeconfiguraciónopenerp-server.conf
Odoo-libroTecnico
8BajareinstalarOdoo8enUbuntu14.04Server
sea127.0.0.1
dbfilter=EsparadefinirquebasededatosvaquedardisponibleparalistarenOdoo,puedeutilizarexpresionesregulares.porexempo^v8db$quelistalasbasededatosqueelnombreempiezaporv8dbycualquirterminación.
data_dir=Carpetaqueguardalosarchivosadjuntosquenoseencuentranenlabasededatos,esPRIMORDIALQUESEHAGABACKUPjuntamenteconlabasededatos.Podedefiniciónestandartguardalosdadosenlacarpetaoculta.local/share/Odooenlacarpetadelusuarioquecorreelservidor.
without_demo=Trueparaquenotengadisponibleenlacreacióndenuevasbasededatoslosdatosdemostrativos.
logrotate=TrueParaquecompacteyhagalarotacióndeloslogsdeOdooesimportanteparaquenollenenuestrodisco.
Tenemostodoinstaladoconnuestroservidorcorriendoqueesunaperfectainstalaciónparacomoservidordeproducciónentramosenelnavegadorconladirecciónipdelamaquinaseguidode:8069queeselpuertoestandartdeOdooynosencontramosconlapantallaabajoparapodercrearnuestraprimerbasededatos:
SinoApareceestapantallaesquetenemosyaalgunabasededatosOdooinstaladoytenemosqueseleccionarmanagerdatabasesparacrearunanueva.
Nospedirálacontraseñamaestrayacompletadacomoadminqueeselestandartyennombredelabasededatoquelepusimosprimer_banco_fullluegosiqueremosqueseancargadoslosdatosdedemostracióndeOdooellenguajeprincipalyunacontraseñaparaelusuarioadmindeestabasededatos.
Instalacióndemódulosycreacióndeunabasededatos.
Odoo-libroTecnico
9BajareinstalarOdoo8enUbuntu14.04Server
ClicamosenelbotónCrear.
DespuésdeunratoOdooyavaentrardirectamentealaaplicacióndejandolapantallabajodisponibleparaquetengamoslaoportunidaddeinstalarlosmódulosnecesarios.
ParaverlograndiosoqueeselOdoovamosinstalartodoslosmódulosparaesosolamentetendremosqueclicareninstalarencadaunodelosarribamostrados.ParainstalartodoslosmodulosdeunavezutilizamoselmenudebusquedaparafiltrarsolamentelosprogramasyaquetenemostambiénprogramasqueagreganocambianalgunasfuncionalidadesdeOdoo.Enelmenudebusquedaeleccionamosaplicacionesenelfiltro.
Luegocambiamoslavistaenqueestamostrabajandoenestemomentoqueeslakanbanyseleccionamoslavistalistacomomostradoabajo.
Odoo-libroTecnico
10BajareinstalarOdoo8enUbuntu14.04Server
ParainstalarlosotrosmódulosenOdoomarcamoselcheckboxarribaenlacabeceradelalistaquevaseleccionartodasynosvaaparecerarribadelacabeceraalgunasopcionesotambiénllamadadeacciones.Deaivamosaseleccionarmodulodeinstalacióninmediatacomomostradoenelmenúabajo.
Despuésdeunlargoratotendremoslosmódulosinstaladostenemosquesalirevolveraentrarparacargarlosmismos.ParaesousamoselmenúCerrarsesiónqueseencuentraaladosuperiorderechoclicandoenadministrador.
Alvolveraentrarconelusuarioadminycontraseñaquedefinimosalcrearlabasededadostendremostodoslosmódulosinstalado.Enprimerotenemoselpaneldemensajesoemaildelusuarioytodaslasmensajesyalteracionesenlosdatosdeinterésdelusuario.
Unodelosprincipalesproblemasaldesarrollarmódulosoinclusoconocerelfuncionamientodemódulosespoderdepurarelcódigopythonparasaberlosvaloresdelasvariablesysabersilosretornossonlosesperados.Unadelasformasdedepuraciónesdirectoenelcodigoutilizarelmetodo_logger.info(mensagey/ovariables)quenostraeraunmensagemenelconsoleoenelarchivosdelogdeodoo.Peroesmuytrabajosoyaquetenemosqueestarcodificandoparacada
DepuracióndecódigopythonconWinpdbRemoto
Odoo-libroTecnico
11BajareinstalarOdoo8enUbuntu14.04Server
variableoinformacionesquenecesitemosylogicamentenopodremosseguirlaejecuciónlineaalineadelcodigo.OtraformaesutilizandoelentornodedesarrolloEclipseperoeslento.OtraformacreadaporlagentedelaempresaCLEARCORPS.A.DeCostaRicawww.clearcorp.co.cresunmodulodeopenerpquefuncionaconlaversión6.1,7.0y8deOdoojuntamenteconelwinpdbquecorreenlinux.Primerovamosabajarlosfuentesdeestemoduloquetenemosquebajardelgithubjuntamenteconotrosmodulosdesarrolladosporellos.
su-odoo
cdodoo-dev/odoo/
gitclonehttps://github.com/Vauxoo/addons-vauxoo.git--depth=1
cdaddons
ln-s../addons-vauxoo/winpdb_debugger
Tenemosquehacerunoscambiosenelxmldelmenudeestemoduloparaquefuncioneenlaversión7y8deOdooyaqueexijequetendamos2nivelesenblancodemenu.Podremosponerenelmenuconfiguraciones.Cambiamoslalineadearquivowindpdb_debugger_view.xml
<menuitemname="StarWinpdbdebugger"
action="winpdb_debugger_open_wizard"
id="winpdb_debugger_menu"
parent="base.menu_administration"
sequence="100"
/>
Ycambiamosporesta:
<menuitemname="StarWinpdbdebugger"
action="winpdb_debugger_open_wizard"
id="winpdb_debugger_menu"
parent="base.menu_config"
sequence="100"
/>
Notamosquecambiamosnomaelnombredelmenuparentdebase.menu_administrationparabase.menu_config.Estosevenecesarioyaqueenlaversión7y8elsegundonivelgeneraldelmenuesunstringsinacciónpordefiniciónencoredeopenerpdiferentedelaversionesanteriores.
Tambientenemosqueeditarelarchivowinpdb_debugger.pyparaqueacepteconeccionesremotas.
defaction_start_debugger(self,cr,uid,data,context):
rpdb2.start_embedded_debugger(config['admin_passwd'])
para:
defaction_start_debugger(self,cr,uid,data,context):
rpdb2.start_embedded_debugger(config['admin_passwd'],fAllowRemote=True)
TenemosqueInstalarlaspedendenciasenpythondeestemoduloqueesrpdb2tenemosqueinstalartambienenesteservidorelwinpdb
sudoapt-getinstallwinpdb
Odoo-libroTecnico
12BajareinstalarOdoo8enUbuntu14.04Server
Elwinpdbdebeserinstaladotambienenlamaquinacliente.
Odoo-libroTecnico
13BajareinstalarOdoo8enUbuntu14.04Server