odoo通过actions.client进行自定义页面

  一、使用原因
  由于odoo自带页面在项目开发过程中无法满足使用,需要使用到动作ir.actions.client进行自定义视图的开发,实现自定义的xml视图开发。
 
  二、实现目标
 
  三、开发过程
 
  1、项目目录:这里主要运用到三个文件:web.js、web.xml、vehicle_police.xml、base_views.xml
 
  2、vehicle_police.xml文件中使用ir.actions.client动作视图定义了一个自定义动作。
 
  <recordid="vehicle_police_action_client"model="ir.actions.client">
 
  <fieldname="name">自定义页面</field>
 
  <fieldname="tag">web.main</field>
 
  </record>
 
  <menuitemid="menuitem_vehicle_police_client"name="自定义页面"sequence="1"parent="menu_vehicle_monitoring"
 
  action="vehicle_police_action_client"/>
 
  3、web.js
 
  odoo.define('web',function(require){
 
  "usestrict";
 
  varcore=require('web.core');
 
  varWidget=require('web.Widget');
 
  varModel=require('web.Model');
 
  varsession=require('web.session');
 
  varPlannerCommon=require('web.planner.common');
 
  varframework=require('web.framework');
 
  varwebclient=require('web.web_client');
 
  varPlannerDialog=PlannerCommon.PlannerDialog;
 
  varQWeb=core.qweb;
 
  var_t=core._t;
 
  varDashboard=Widget.extend({
 
  template:'web',
 
  init:function(parent,data){
 
  returnthis._super.apply(this,arguments);
 
  },
 
  start:function(){
 
  returntrue;
 
  },
 
  });
 
  core.action_registry.add('web.main',Dashboard);
 
  return{
 
  Dashboard:Dashboard,
 
  };
 
  });
 
  4、web.xml,这里使用一个iframe嵌套一个网页。本来想使用html代码,由于没有使用过,需要研究如何使用html自定义页面。
 
  <?xmlversion="1.0"encoding="UTF-8"?>
 
  <templatesxml:space="preserve">
 
  <tt-name="web">
 
  <iframemarginheight="0"marginwidth="0"width="100%"height="910"src="https://www.baidu.com"frameborder="0"allowfullscreen="True"></iframe>
 
  </t>
 
  </templates>
 
  5、base_views.xml文件,用与引入js加载进odoo
 
  <?xmlversion="1.0"encoding="utf-8"?>
 
  <odoo>
 
  <templateid="assets_backend"inherit_id="web.assets_backend">
 
  <scripttype="text/javascript"src="/urban/static/src/js/web.js"/>
 
  </xpath>
 
  </template>
 
  </odoo>
 
  6、最后在__mainfest__.py中引入web.xml文件。
 
  'qweb':['static/src/xml/web.xml'],
 
  

推荐阅读