2015-07-29 1 views
0

Я пытаюсь добавить дополнительную строку в заказе клиента между общей неоплаченной стоимостью и общая сумма налогов. При взгляде на на report_saleorder.xml моя линия должна быть добавлена ​​в следующем коде:odoo - добавить таблетку в общем заказе на поставку

<div class="row"> 
       <div class="col-xs-4 pull-right"> 
        <table class="table table-condensed"> 
         <tr class="border-black"> 
          <td><strong>Total Without Taxes</strong></td> 
          <td class="text-right"> 
           <span t-field="o.amount_untaxed" 
            t-field-options='{"widget": "monetary", "display_currency": "o.pricelist_id.currency_id"}'/> 
          </td> 
         </tr> 
         <tr> 
          <td>Taxes</td> 
          <td class="text-right"> 
           <span t-field="o.amount_tax" 
            t-field-options='{"widget": "monetary", "display_currency": "o.pricelist_id.currency_id"}'/> 
          </td> 
         </tr> 
         <tr class="border-black"> 
          <td><strong>Total</strong></td> 
          <td class="text-right"> 
           <span t-field="o.amount_total" 
            t-field-options='{"widget": "monetary", "display_currency": "o.pricelist_id.currency_id"}'/> 
          </td> 
         </tr> 
        </table> 
       </div> 
      </div> 

Поскольку редактирование Core XML не вариант мне было интересно, если можно было бы сделать это с помощью <xpath>, но я не уверен, как чтобы сделать это. Я уже создал field в моем файле sale.py и глядя на своем коде мой XML должно быть что-то вроде

<tr> 
    <td>Insurance</td> 
    <td class="text-right"> 
     <span t-field="o.amount_insurance" t-field-options='{"widget": "monetary", "display_currency": "o.pricelist_id.currency_id"}'/> 
    </td> 
</tr> 

Любая помощь о том, как я мог бы сделать это будет очень ценится

ответ

0

Да вы абсолютно правы, модифицируя существующий код, это не очень хорошая идея, так как при обновлении модуля вы потеряете изменения, поэтому правильный путь не наследует представление, и в этом случае вам нужно наследовать шаблон вида report_saleorder_document и добавить требуемое поле в качестве желаемое поле с использованием тега xpath:

Если вы работаете в интерфейсе, его elf создать новую запись вида со следующим синтаксисом и наследовать ее от report_saleorder_document.

<?xml version="1.0"?> 

<data inherit_id="sale.report_saleorder_document"> 
    <xpath expr="//div[@class='col-xs-4 pull-right']/table/tr[2]" position="after"> 
    <tr> 
     <td>Insurance</td> 
      <td class="text-right"> 
      <span t-field="o.amount_insurance" t-field-options='{"widget": "monetary", "display_currency": "o.pricelist_id.currency_id"}'/> 
     </td> 
    </tr> 
    </xpath> 
</data> 

И если вы делаете код, то добавьте унаследованное определение определения. он должен выглядеть следующим образом:

enter image description here

Для изменения кода через создать новый файл и добавьте следующий код:

<?xml version="1.0" encoding="utf-8"?> 
<openerp> 
<data> 
    <template id="report_saleorder_insurance_inherit" inherit_id="sale.report_saleorder_document"> 
     <xpath expr="//div[@class='col-xs-4 pull-right']/table/tr[2]" position="after"> 
     <tr> 
      <td>Insurance</td> 
       <td class="text-right"> 
       <span t-field="o.amount_insurance" t-field-options='{"widget": "monetary", "display_currency": "o.pricelist_id.currency_id"}'/> 
      </td> 
     </tr> 
     </xpath> 
</template> 
</data> 
</openerp> 

и не забудьте зарегистрировать наш файл под манифеста

Bests

+0

Изображение u показать, что мне нужно! Но я не совсем понимаю, где я должен разместить свой код. Просто создайте для него новый xml-файл или поместите его в существующий? Я попробовал оба, но он дает мне «AssertionError: не ожидал, что элемент xpath есть» – ThomasS

+0

@ThomasS: Обновлен ответ с более подробной информацией о файле кода, который вы хотите сделать. после добавления нового обновления файла список модулей и модуль. или используйте параметр -u -d из терминала. –

+0

Я положил код, который вы мне дали в файле serparate xml, и добавил этот файл к '__openerp __. Py', но я не вижу никаких новых изменений. Я перезапустил службу, и модуль обновился без проблем. Есть что-то, что я пропустил или какая-то идея, почему кажется, что xml не используется? Большое спасибо за помощь до сих пор! – ThomasS

 Смежные вопросы

  • Нет связанных вопросов^_^