【问题标题】:Odoo: how to edit invoice / quote layout CSSOdoo:如何编辑发票/报价布局 CSS
【发布时间】:2020-04-25 17:41:46
【问题描述】:

我们正在构建一个 Odoo 13 EE/CE 安装,并希望对 PDF 报价单和发票进行一些小改动。有一些小问题很容易通过编辑 CSS 文件来解决。它们是:

  • 增加客户徽标的大小(左上角)
  • 缩小发件人姓名和地址的字体大小,因为它们溢出到 多行
  • 修复收件人姓名的文本区域过小 和地址是。修改它在右上角的位置 (以上报价#S000003)
  • 为通用术语添加样式和 条件(小字)

来自Settings -> General -> Business Documents -> Layout,我们可以看到这个PDF正在使用external_layout_standard QView,我们可以访问这个报告的XML架构。但是,以 Odoo 管理员身份编辑此视图不允许访问 CSS 文件,我们可以在其中修改 <DIV class> 属性,如字体大小和元素大小。

此服务器托管在 Odoo.sh 平台上,因此我们无权访问文件系统。我们的选择是修改系统参数或创建一个全新的扩展。后者似乎有点矫枉过正,因为更改太小了,我们实际上需要修改所有 Odoo 生成的 PDF,如报价单、订单确认、采购订单、维修订单等。

那么,任何人都可以建议修改这些 Odoo 生成的 PDF 的正确方法是什么以及如何访问它们的 CSS?

说明问题的屏幕截图:

https://snipboard.io/9UYmBd.jpg

https://snipboard.io/8pIjB9.jpg

【问题讨论】:

  • 尽可能添加内联 CSS。

标签: css odoo


【解决方案1】:

感谢@Ex4 的想法。快速而肮脏的解决方案正是为 DIV 部分添加样式属性。这几乎不是理想的解决方案,但解决了中间问题。

要应用 QnD 解决方案,请按以下步骤操作:

  1. Settings 开启开发者模式 -> Edit document layout 在业务文档下

  2. 查找部分

<div class="col-6" name="company_address">
    <div t-field="company.partner_id" t-options="{&quot;widget&quot;: &quot;contact&quot;, &quot;fields&quot;: [&quot;address&quot;, &quot;name&quot;], &quot;no_marker&quot;: true}"/>
</div>

为内部&lt;div&gt;添加样式属性(style="font-size:14px"):

<div class="col-6" name="company_address">
    <div t-field="company.partner_id" style="font-size:14px" t-options="{&quot;widget&quot;: &quot;contact&quot;, &quot;fields&quot;: [&quot;address&quot;, &quot;name&quot;], &quot;no_marker&quot;: true}"/>
</div>
  1. 这会更改发件人公司地址的字体大小。我们仍然需要更改收件人地址的字体大小。
  2. 导航到Settings -> Technical -> Views(在用户界面下)
  3. 搜索address_layout
  4. 为部分添加相同样式的属性 (style="font-size:14px"):
<div style="font-size:14px" name="address" t-att-class="colclass">
    <t t-raw="address"/>
</div>

最终结果不是世界上最漂亮的布局,但它确实有效: https://snipboard.io/oDicR7.jpg

正确的方法显然是继承'account.report_invoice_document'然后更改模板代码。因此,仅使用 Odoo 管理 UI 是不可能的。它需要编写一个小扩展。

【讨论】:

  • 你的最后一部分是不对的。 account.report_invoice_documentir.ui.view 的记录,因此可以在 Settings/Technical/...Views 下继承。您可以在那里创建ir.ui.view 记录,这些记录可以关联(继承)到另一个视图。这个 QnD 解决方案有一个非常大的问题:在更新它来自的模块或其他模块之后,它将更新此模块(帐户),您的更改将消失,除非您更改 ir.model.data(外部 ID)条目对于 account.report_invoice_document 并将“不可更新”设置为 true。
【解决方案2】:

我也遇到了这个问题,感谢 Ossi Mantylahti 向我指出了这个帖子,我已经设法更改了地址格式,还包括采购订单和 RFQ pdf 文档,以使它们更容易被接受

为采购订单修改此文件 技术 -> 视图 -> report_purchaseorder_document 找到该部分

询价#
        <h4 t-if="o.state in ['sent', 'to approve']">Purchase Order #<span t-field="o.name"/></h4>
        <h4 t-if="o.state in ['purchase', 'done']">Purchase Order #<span t-field="o.name"/></h4>
        <h4 t-if="o.state == 'cancel'">Cancelled Purchase Order #<span t-field="o.name"/></h4>

对于询价修改 视图 -> report_purchasequotation_document 询价

注意这些标题标签是 h2 的

【讨论】:

    【解决方案3】:

    作为一个快速的“n脏”解决方案,您能否将style 属性赋予一个元素。

    据我所知,您无法从用户界面修改 CSS。您必须创建一个自定义模块并安装它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多