详解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正则表达式判断字符串是否是全部小写示例
Dec 25 Python
Python读写Redis数据库操作示例
Mar 18 Python
python利用beautifulSoup实现爬虫
Sep 29 Python
将Emacs打造成强大的Python代码编辑工具
Nov 20 Python
如何利用Pyecharts可视化微信好友
Jul 04 Python
Python多叉树的构造及取出节点数据(treelib)的方法
Aug 09 Python
Python3的unicode编码转换成中文的问题及解决方案
Dec 10 Python
pandas使用之宽表变窄表的实现
Apr 12 Python
JupyterNotebook 输出窗口的显示效果调整方法
Apr 13 Python
基于打开pycharm有带图片md文件卡死问题的解决
Apr 24 Python
浅谈如何使用python抓取网页中的动态数据实现
Aug 17 Python
matplotlib 三维图表绘制方法简介
Sep 20 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实现框架(一)
2006/10/09 PHP
Joomla调用系统自带编辑器的实现方法
2016/05/05 PHP
Smarty日期时间操作方法示例
2016/11/15 PHP
PHP实现数组根据某个单元字段排序操作示例
2018/08/01 PHP
IE bug table元素的innerHTML
2010/01/11 Javascript
基于Jquery的文字自动截取(提供源代码)
2011/08/09 Javascript
jquery.fileEveryWhere.js 一个跨浏览器的file显示插件
2011/10/24 Javascript
js防止表单重复提交实现代码
2012/09/05 Javascript
javascipt匹配单行和多行注释的正则表达式
2013/11/20 Javascript
Javascript加载速度慢的解决方案
2014/03/11 Javascript
jQuery代码实现表格中点击相应行变色功能
2016/05/09 Javascript
iscroll.js滚动加载实例详解
2017/07/18 Javascript
微信小程序使用progress组件实现显示进度功能【附源码下载】
2017/12/12 Javascript
jQuery实现获取选中复选框的值实例详解
2018/06/28 jQuery
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
2018/08/25 Javascript
vue实现动态显示与隐藏底部导航的方法分析
2019/02/11 Javascript
详解js加减乘除精确计算
2019/03/19 Javascript
vue自定义指令之面板拖拽的实现
2019/04/14 Javascript
如何测量vue应用运行时的性能
2019/06/21 Javascript
node删除、复制文件或文件夹示例代码
2019/08/13 Javascript
vue请求服务器数据后绑定不上的解决方法
2019/10/30 Javascript
[05:14]辉夜杯主赛事第二日 RECAP精彩回顾
2015/12/27 DOTA
Python利用IPython提高开发效率
2016/08/10 Python
Linux CentOS Python开发环境搭建教程
2018/11/28 Python
解决keras使用cov1D函数的输入问题
2020/06/29 Python
python实现图像外边界跟踪操作
2020/07/13 Python
如何用python实现一个HTTP连接池
2021/01/14 Python
HTML+CSS3 模仿Windows7 桌面效果
2010/06/17 HTML / CSS
学生喝酒检讨书
2014/02/06 职场文书
自主招生教师推荐信
2014/05/10 职场文书
2014领导班子正风肃纪思想汇报
2014/09/18 职场文书
领导班子整改措施
2014/10/24 职场文书
销售会议开幕词
2016/03/04 职场文书
导游词之北京明十三陵
2019/10/28 职场文书
详解 TypeScript 枚举类型
2021/11/02 Javascript
instantclient客户端 连接oracle数据库
2022/04/26 Oracle