详解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基于xml parse实现解析cdatasection数据
Sep 30 Python
Python for Informatics 第11章之正则表达式(四)
Apr 21 Python
Python使用回溯法子集树模板解决爬楼梯问题示例
Sep 08 Python
Python基于identicon库创建类似Github上用的头像功能
Sep 25 Python
浅谈Python脚本开头及导包注释自动添加方法
Oct 27 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
Jan 04 Python
元组列表字典(莫烦python基础)
Apr 03 Python
如何将你的应用迁移到Python3的三个步骤
Dec 22 Python
opencv+python实现鼠标点击图像,输出该点的RGB和HSV值
Jun 02 Python
PyQT5 实现快捷键复制表格数据的方法示例
Jun 19 Python
python属于哪种语言
Aug 16 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 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
构建简单的Webmail系统
2006/10/09 PHP
php读取mysql的简单实例
2014/01/15 PHP
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
2014/04/08 PHP
页面利用渐进式JPEG来提升用户体验度
2014/12/01 PHP
基于thinkPHP3.2实现微信接入及查询token值的方法
2017/04/18 PHP
PHP中16个高危函数整理
2019/09/19 PHP
javascript jQuery插件练习
2008/12/24 Javascript
js 获取class的元素的方法 以及创建方法getElementsByClassName
2013/03/11 Javascript
JS实现可改变列宽的table实例
2013/07/02 Javascript
jQuery插件jQuery-JSONP开发ajax调用使用注意事项
2013/11/22 Javascript
javascript如何创建表格(javascript绘制表格的二种方法)
2013/12/10 Javascript
nodejs中的fiber(纤程)库详解
2015/03/24 NodeJs
每天一篇javascript学习小结(Array数组)
2015/11/11 Javascript
JavaScript浏览器对象之一Window对象详解
2016/06/03 Javascript
JS实现n秒后自动跳转的两种方法
2020/11/30 Javascript
jquery获取easyui日期控件的值实现方法
2016/11/09 Javascript
React创建组件的三种方式及其区别
2017/01/12 Javascript
JS实现动态添加DOM节点和事件的方法示例
2017/04/28 Javascript
浅析JS中常用类型转换及运算符表达式
2017/07/23 Javascript
Vue实现按钮级权限方案
2019/11/21 Javascript
VUE异步更新DOM - 用$nextTick解决DOM视图的问题
2020/11/06 Javascript
python self,cls,decorator的理解
2009/07/13 Python
Python字符串拼接的几种方法整理
2017/08/02 Python
Python实现按照指定要求逆序输出一个数字的方法
2018/04/19 Python
Python的高阶函数用法实例分析
2019/04/11 Python
python使用KNN算法识别手写数字
2019/04/25 Python
Python多线程及其基本使用方法实例分析
2019/10/29 Python
利用python实现AR教程
2019/11/20 Python
如何学习Python time模块
2020/06/03 Python
CSS3属性box-shadow使用详细教程
2012/01/21 HTML / CSS
详解canvas.toDataURL()报错的解决方案全都在这了
2020/03/31 HTML / CSS
班长岗位职责
2013/11/10 职场文书
小学数学国培感言
2014/03/10 职场文书
客户经理岗位职责大全
2015/04/09 职场文书
社区党建工作总结2015
2015/05/13 职场文书
全民创业工作总结
2015/08/13 职场文书