详解Python odoo中嵌入html简单的分页功能


Posted in Python onMay 29, 2019

在odoo中,通过iframe嵌入 html,页面数据则通过controllers获取,使用jinja2模板传值渲染

html页面分页内容,这里写了判断逻辑

<!-- 分页 -->
<ul id="ty_paging">
  <li class="home" id="home"><a href="/car/budget/report/1" rel="external nofollow" ></a>首页</li>
  {% if current_page == 1 %}
  <li class="prev" id="prev"><</li>
  {% else %}
  <li class="prev" id="prev"><a href="/car/budget/report/{{current_page - 1}}" rel="external nofollow" ><</a></li>
  {% endif %}
  {% if current_page == total_page %}
  <li class="next" id="next">></li>
  {% else %}
  <li class="next" id="next"><a href="/car/budget/report/{{current_page + 1}}" rel="external nofollow" >></a></li>
  {% endif %}
  <li class="max">共{{total_page}}页</li>
  <li class="max">第{{current_page}}页</li>
  <input type="number" min="1" value="1" class="inputPage" id="inputPage"/>
  <li class="jump" id="jump"><a id="add" href="javascript:void(0)" rel="external nofollow" onclick="subNmbr()">跳转</a></li>

</ul>

在,odoo的controllers中的逻辑

class CarBudgetReport(http.Controller):
  @http.route('/car/budget/report/<int:page>', auth='public')
  def index(self, page=1, **kw):
    data1 = request.env['lims.car.scheme'].get_first_budget()
    total_page = int(len(data1) / 10) + 1
    if page > total_page:
      data = []
    else:
      data = data1[(page - 1) * 10: page * 10]
    return env.get_template(HTML_FIEL_NAME).render({'data': data, 'current_page': page, 'total_page': total_page})

 CSS文件:

/* 分页功能的通用样式 */
#ty_paging {
 overflow: hidden;
 display: block;
 width: 100%;
 margin-top: 20px;
 text-align: center;
 user-select: none;
 -webkit-user-select: none;
 -moz-user-select: none;
 -ms-user-select: none;
 font-size: 14px;
 color: #000000;
 background-color: #FFFFFF;
}
#ty_paging li {
 display: inline-block;
 height: 32px;
 width: 32px;
 line-height: 32px;
 margin: 0px 5px;
 padding: 0px;
 border: 1px solid #ddd;
 border-radius: 2px;
 cursor: pointer;
 vertical-align: top;
 text-align: center;
}
#ty_paging .home,#ty_paging .jump {
 width: 56px;
 height: 32px;
}
#ty_paging .max {
 width: 60px;
 border: none;
}
#ty_paging .inputPage {
 height: 32px;
 width: 56px;
 border: 1px solid #ddd;
 border-radius: 2px;
 text-align: center;
 color: #000000;
}

 在后台xml中需要将路由设置默认为1

<?xml version="1.0" encoding="UTF-8"?>
<templates id="template" xml:space="preserve">
    <t t-name="BudgettIframe">
      <iframe src="car/budget/report/1" marginheight="0" marginwidth="0" width="100%" height="100%" />
    </t>
</templates>

html 分页js代码

<script>
  // 悬浮样式
  $('#home, #jump').mouseover(function () {
    // if ($(this).val() == ty_currentPage) return;
    $(this).css({
      'border-color': '#2db71a',
      'color': '#000000',
      // 'background-color': '#337ab7',
    });
  });
  $('#home, #prev, #next, #jump').mouseout(function () {
    // if ($(this).val() == ty_currentPage) return;
    $(this).css({
      'border-color': "#ddd",
      'color': '#666',
      // 'background-color': '#ffffff',
    });
  });
  $('#up, #down').mouseover(function () {
    // if ($(this).val() == ty_currentPage) return;
    $(this).css({
      'border-color': '#337ab7',
      'color': '#ffffff',
      'background-color': '#2db71a',
    });
  });
  $('#up, #down').mouseout(function () {
    // if ($(this).val() == ty_currentPage) return;
    $(this).css({
      'border-color': "#000000",
      'color': '#000000',
      'background-color': '#ffffff',
    });
  });
  // 点击跳转页面需要用到方法
  function subNmbr() {
    // 先获取到页面上input输入框中的值
    var subNmbr = document.getElementById('inputPage').value;
    // console.log(subNmbr);
    // 在获取li的id,在点击时做一个动作
    document.getElementById("jump").onclick = function () {
      //根据a标签的id获取链接,设置href属性
      var aObj = document.getElementById("add");
      // 把要跳转的页面连接传入href
      aObj.href = "/car/budget/report/" + subNmbr;
      //根据id获取超链接,设置文字内容
      aObj.innerText = "跳转";
    };
  }
</script>

之后便可以进行数据的简单分页

详解Python odoo中嵌入html简单的分页功能

总结

以上所述是小编给大家介绍的Python odoo中嵌入html简单的分页功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python之wxPython菜单使用详解
Sep 28 Python
Python标准库内置函数complex介绍
Nov 25 Python
在Apache服务器上同时运行多个Django程序的方法
Jul 22 Python
Python随机生成均匀分布在三角形内或者任意多边形内的点
Dec 14 Python
解决Python print 输出文本显示 gbk 编码错误问题
Jul 13 Python
pytorch 调整某一维度数据顺序的方法
Dec 08 Python
解决pytorch GPU 计算过程中出现内存耗尽的问题
Aug 19 Python
Python 70行代码实现简单算式计算器解析
Aug 30 Python
python生成特定分布数的实例
Dec 05 Python
scrapy结合selenium解析动态页面的实现
Sep 28 Python
python搜索算法原理及实例讲解
Nov 18 Python
python实现双向链表原理
May 25 Python
Python 3.8中实现functools.cached_property功能
May 29 #Python
Python3+Pycharm+PyQt5环境搭建步骤图文详解
May 29 #Python
Python安装与基本数据类型教程详解
May 29 #Python
python登录WeChat 实现自动回复实例详解
May 28 #Python
Python语言进阶知识点总结
May 28 #Python
python图像和办公文档处理总结
May 28 #Python
python网络应用开发知识点浅析
May 28 #Python
You might like
PHP 数字左侧自动补0
2008/03/31 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
2010/08/01 PHP
PHP编译安装时常见错误解决办法
2015/05/28 PHP
php  单例模式详细介绍及实现源码
2016/11/05 PHP
phpcms的分类名称和类别名称的调用
2017/01/05 PHP
彻底搞懂JS无缝滚动代码
2007/01/03 Javascript
jQuery在vs2008及js文件中的无智能提示的解决方法
2010/12/30 Javascript
关于Javascript作用域链的八点总结
2013/12/06 Javascript
jquery 页眉单行信息滚动显示实现思路及代码
2014/06/26 Javascript
Javascript实现的Map集合工具类完整实例
2015/07/31 Javascript
深入解析JavaScript中函数的Currying柯里化
2016/03/19 Javascript
原生js的数组除重复简单实例
2016/05/24 Javascript
input输入密码变黑点密文的实现方法
2017/01/09 Javascript
bootstrap 表单验证使用方法
2017/01/11 Javascript
使用prop解决一个checkbox选中后再次选中失效的问题
2017/07/05 Javascript
JS实现unicode和UTF-8之间的互相转换互转
2017/07/05 Javascript
基于vue-cli3创建libs库的实现方法
2019/12/04 Javascript
JavaScript实现左右滚动电影画布
2020/02/06 Javascript
JavaScript实现HSL拾色器
2020/05/21 Javascript
使用Python神器对付12306变态验证码
2016/01/05 Python
分析Python中解析构建数据知识
2018/01/20 Python
在python plt图表中文字大小调节的方法
2019/07/08 Python
关于Python核心框架tornado的异步协程的2种方法详解
2019/08/28 Python
keras 模型参数,模型保存,中间结果输出操作
2020/07/06 Python
CSS3径向渐变之大鱼吃小鱼之孤单的大鱼
2016/04/26 HTML / CSS
土木工程专业大学毕业生求职信
2013/10/13 职场文书
《孙权劝学》教学反思
2014/04/23 职场文书
取保候审保证书
2014/04/30 职场文书
工程造价专业求职信
2014/07/17 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
党的群众路线调研报告
2014/11/03 职场文书
初中家长评语大全
2014/12/26 职场文书
小学语文国培研修日志
2015/11/13 职场文书
创业者如何撰写出一份打动投资人的商业计划书?
2019/07/02 职场文书
golang 比较浮点数的大小方式
2021/05/02 Golang
阿里云国际版 使用Nginx作为HTTPS转发代理服务器
2022/05/11 Servers