Документы отчета не отображают стили и заголовок в PDF, но находятся в версии HTML (после миграции с Odoo 8 на Odoo 10) - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь использовать мои унаследованные шаблоны, которые я сделал на Odoo 8, для моей только что перенесенной базы данных Odoo 10.Неожиданно исчез заголовок и нет стилей.Я проверил журналы и внес некоторые изменения, но я не вижу заголовок, нижний колонтитул или стили в PDF-файлах, но, если я «печатаю» как HTML, я вижу это.

У меня есть этот дополнительный контент для внешнего макета:

<template id="dentaltix_report_layout_styles" inherit_id="report.assets_editor">
        <xpath expr="." position="inside">
            <link rel="stylesheet" type="text/css" href="/dentaltix_core_changes/static/src/css/dentaltix_report.css"/>
        </xpath>
    </template>

    <template id="dentaltix_external_layout_header" inherit_id="report.external_layout_header">
        <xpath expr="//div[@class='header']/div[@class='row'][2]/div[@class='col-xs-6']" position="replace">
            <div class="col-xs-6">
                <div t-field="company.partner_id" 
                     t-field-options='{"widget": "contact", "fields": ["name"], "no_marker": True}' />
                <div t-if="company.partner_id.vat">TIN: <span t-field="company.partner_id.vat"/></div>
                <div t-field="company.partner_id" 
                     t-field-options='{"widget": "contact", "fields": ["address"], "no_marker": True}' />
            </div>
            <div class="col-xs-6 text-right">
                <div t-field="company.partner_id" 
                     t-field-options='{"widget": "contact", "fields": ["phone","email"], "no_marker": False}' />
            </div>
        </xpath>
    </template>

И следующее содержимое для шаблона report_saleorder_document:

<template id="report_saleorder_document_ext" inherit_id="sale.report_saleorder_document">
    <xpath expr="//div[@class='page']/div[@class='row'][1]" position="replace">
        <div class="col-xs-12">
            <h6><strong>Invoice and shipping address:</strong></h6>
            <div class="row">
                <div class="col-xs-5 col-xs-offset-1">
                    <div t-if="doc.partner_id.parent_id and doc.partner_id.parent_id.id &gt; 0"><span t-field="doc.partner_id.parent_id.name"/></div>
                    <div t-if="not doc.partner_id.parent_id"><span t-field="doc.partner_id.name"/></div>
                    <div t-if="doc.partner_id.vat">VAT: <span t-field="doc.partner_id.vat"/></div>
                    <div t-field="doc.partner_id" t-options='{"widget": "contact", "fields": ["address", "phone", "email"], "no_marker": False, "phone_icons": True}'/>
                </div>
                <div class="col-xs-5 col-xs-offset-1">
                    <div t-field="doc.ship_addr_name"/>
                    <div>
                        <div t-field="doc.ship_addr_street"/>
                        <div>
                            <span t-field="doc.ship_addr_zip"/>
                            <span t-field="doc.ship_addr_city"/>,
                            <span t-field="doc.ship_addr_state"/>.
                        </div>
                        <span t-field="doc.ship_addr_country"/>
                    </div>
                    <div t-field="doc.ship_addr_phone"/>
                    <div t-field="doc.ship_addr_extra_info"/>
                </div>
            </div>
        </div>
    </xpath>

    <xpath expr="//div[@id='informations']/div[3]" position="replace"/>

    <xpath expr="//div[@class='page']/h2" position="replace">
        <div class="row">
            <div class="col-xs-12">
                <h4><strong>
                    <span t-if="doc.state not in ['draft','sent']">Order N° </span>
                    <span t-if="doc.state in ['draft','sent']">Quotation N° </span>
                    <span t-field="doc.name"/>
                </strong></h4>
            </div>
        </div>
    </xpath>

    <xpath expr="//div[@class='page']/t[2]/table" position="replace">
        <table class="table table-condensed">
            <thead>
                <tr>
                    <th class="text-center">Reference</th>
                    <th class="text-center">Description</th>
                    <th class="text-center">Taxes</th>
                    <th class="text-center">Quantity</th>
                    <th class="text-center">Unit Price</th>
                    <th class="text-center">Discount (%)</th>
                    <th class="text-center">Price</th>
                </tr>
            </thead>
            <tbody class="sale_tbody">
                <tr t-foreach="doc.order_line" t-as="l">
                    <td><span t-field="l.product_id.default_code"/></td>
                    <td><span t-field="l.name"/></td>
                    <td><span t-esc="', '.join(map(lambda x: x.name, l.tax_id))"/></td>
                    <td class="text-right">
                        <span t-esc="l.product_uom_qty"/>
                        <span groups="product.group_uom" t-field="l.product_uom"/> ut.
                    </td>
                    <td class="text-right">
                        <span t-field="l.price_unit"
                            t-field-options='{"widget": "monetary", "display_currency": doc.currency_id}'/>
                    </td>
                    <td class="text-right"><span t-esc="l.discount"/>%</td>
                    <td class="text-right">
                        <span t-field="l.price_subtotal"
                            t-field-options='{"widget": "monetary", "display_currency": doc.pricelist_id.currency_id}'/>
                    </td>
                </tr>
            </tbody>
        </table>
    </xpath>

    <xpath expr="//div[@class='page']/div[@class='oe_structure'][2]" position="before">
        <div t-if="doc.payment_method and doc.payment_method == 'bank_transfer' and doc.payment_method != ''" id="payment_method_note" class="row" style="font-size: 10px;">
            <div class="col-xs-12">
                <h6><strong>Payment method:</strong></h6>
                    <div t-field="doc.ship_addr_phone"/>
                <p><strong>
                    To process this order is necessary you pay the total amount <br/>
                    making a transfer to the next bank account number:
                </strong></p>
                <div t-foreach="doc.company_id.partner_id.bank_ids" t-as="b">
                    <span>Account owner:</span> <span t-field="b.partner_id.name"/><br/>
                    <span t-field="b.acc_country_id"/>: <span t-field="b.acc_number"/><br/>
                    <span>BIC / SWIFT Code:</span> <span t-field="b.bank_bic"/><br/>
                    <span>Bank:</span> <span t-field="b.bank_name"/><br/>
                </div>
            </div>
        </div>
    </xpath>
</template>

<template id="report_saleorder_ext">
    <t t-call="report.html_container">
        <t t-foreach="docs" t-as="doc">
            <t t-call="sale.report_saleorder_document" t-lang="doc.partner_id.lang"/>
        </t>
    </t>
</template>

Есть ли другие изменения, которые я теряю?

Пользовательский заголовок был установлен через представление настроек Odoo 8 ираньше работало.Если вам это нужно, просто скажите мне, и я вставлю это сюда.

1 Ответ

0 голосов
/ 03 октября 2018

Это была ошибка , о которой сообщалось , но по неизвестной причине она не сработала в первый раз.Я сделал это снова, и это работает.

Возможные причины, по которым он не мог работать:

  1. Вы используете другой порт.Параметр report.url должен иметь порт, указанный в odoo.conf (по умолчанию: 8069).
  2. Вы используете прокси.Затем вы должны использовать внутренний порт (по умолчанию: 8069), а не внешний / публичный.
  3. В ветке ошибок они предлагают различные варианты имени ключа.Я работаю (успешно) с report.url.
  4. Попробуйте сначала использовать localhost, а не домен.
...