Odoo10.0asuiteofopen-sourcebusinessappswritteninPythonandreleasedundertheAGPLlicensezhoujiang@liandisys.com.cn1Menu22014September3SystemStructureInstallationDeloyment(docker)34WebSiteDevelopmet5ApplicationDevelopmetTechnialStructureDataDriverTechnicalRoadmap2017September3Postgres9.4Python2.7AGPLGTK+QWebSOABPMDocker++++TechnicalStructure2017September3InstallationInstallation2017September31423OnlineDemoSourceInstall(windowslocal)SaaS(Official)Packagedinstallers(windowslocal)5dockerimage6ActivethedevelopermodeInstallation-Demo2017September3–SaaS(Official)2017September3–PackageInstall(win)2017September3://zhuanlan.zhihu.com/p/29019457OfficialPackageGreenPackageSetup–Sourceinstall(win)2017September31423InstallingPython2.7pythonodoo-bin-wodoo-rodoo--addons-path=addons,../mymodules--db-filter=mydb$InstallingPostgreSQL9.4gitclone://localhost:8069Installation–dockerimage2017September312InstallingDocker-tools(win7)/Docker-for-windows(win10)Createavm(runinQT)VisualBoxKetimaticQuickstartTerminalInstallation–dockerimage2017September33RemotetovmRemotebyenvcommandRemotebysshcommandInstallation–dockerimage2017September34installimages5Startinstance$dockerrun-d-ePOSTGRES_USER=odoo-ePOSTGRES_PASSWORD=odoo--namedbpostgres:9.4$dockerrun-p8069:8069--nameodoo--linkdb:db-todooInstallation–dockerimage2017September36Visitodoo“Id”:”sha256…Inspectodoo:10.0“8071/tcp”:{}“8069/tcp”:{}/etc/odoo/odoo.conf/mnt/extra-addons/var/lib/odoo–Activedevelopermode2017September3DeploymentDeployment–dockercompose2017September3DockerDockerMachineDockerComposeDockerSwarmDockerHubDeployment–deploystructure2017September3HOSTmanagernodeImageOdoo10.0ImagePostgres9.4ContainerOdooContainerdbaddonsdataOdoo.conf/path/to/addonsodoo_db_.*/path/to/configWorknodeImageOdoo10.0ContainerOdooWorknodeImageOdoo10.0ContainerOdooWorknodeImagePostgres9.4ContainerdbWorknodeImagePostgres9.4ContainerdbDockerSwarmdockerFileDeployment–dockerswarm2017September3Toaddaworkertothisswarm,runthefollowingcommand:dockerswarmjoin\--tokenSWMTKN-1-3z5rzoey0u6onkvvm58f7vgkser5d7z8sfshlu7s4oz2gztlvj-c036gwrakjejql06klrfc585r\192.168.99.100:2377Toaddamanagertothisswarm,run'dockerswarmjoin-tokenmanager'andfollowtheinstructions.docker-machinesshmanager1dockernodelsdocker-machinesshmanager1dockerswarminit--listen-addr192.168.99.100:2377--advertise-addr192.168.99.100Deployment–dockerrun2017September3dockerrun-v/path/to/config:/etc/odoo-p8069:8069--nameodoo--linkdb:db-todoodockerrun-v/path/to/addons:/mnt/extra-addons-p8069:8069--nameodoo--linkdb:db-todoodockerrun-p8069:8069--nameodoo--linkdb:db-todoo----db-filter=odoo_db_.*Deployment–dockerrun2017September3dockerrun-v/path/to/config:/etc/odoo-p8069:8069--nameodoo--linkdb:db-todoodockerrun-v/path/to/addons:/mnt/extra-addons-p8069:8069--nameodoo--linkdb:db-todoodockerrun-p8069:8069--nameodoo--linkdb:db-todoo----db-filter=odoo_db_.*Deployment–dockercompose2017September3docker-compose.ymldocker-composeup-ddocker-composepsDocker-composelogs–pagestructure2017September3OdooPagecross-pagesuniquethemesHeaderFooterSnippetStructureFeatureEffectContentlayoutcolorfontMainSnippettemplateDevelopment–modulestructure2017September3__manifest__.py__init__.pyviewslayout.xmlpage.xmlsnippets.xmlThememodulestaticimageDevelopment–createanewpage2017September3–customizesnippet2017September3{'name':'Tutorialtheme','version':'1.0','author':'jiangzhou','data':['views/layout.xml','views/pages.xml','views/snippets.xml'],'category':'Theme/Creative','depends':['website'],}__manifest__.pytemplateid=snippet_testimonialname=Testimonialsnippetsectionclass=snippet_testimonial…/section/templatetemplateid=place_into_barinherit_id=website.snippetsname=Placeintobarxpathexpr=//div[@id='snippet_content']/div[@class='o_panel_body']position=inside/xpath/template__manifest__.pyDevelopment–customizesnippet2017September3AppDevelopmentAppDevelopment2017September3312ExtendexistingappmodulestructureCreateanewappAppDevelop–modulestructure2017September3__manifest__.py__init__.pymodelsviewscontrollerssecuritydemo__init__.pycontrollers.pydemo.xml__init__.pymodels.pyir.model.access.csvviews.xmltemplates.xmlAppmoduleAppDevelop–createnewapp2017September3'depends':['base'],'data':['views/views.xml','views/templates.xml',],__manifest__.pymenuitemname=Listid=qingjia.menu_1_listparent=qingjia.menu_1action=qingjia.action_window/recordmodel=ir.actions.act_windowid=qingjia.action_windowfieldname=nameqingjiawindow/fieldfieldname=res_modelqingjia.qingjia/fieldfieldname=view_modetree,form/field/recordView.xmltemplateid=listingull