Odoo 10: Как сделать отдельные строки адреса в представлении контактной формы? - PullRequest
0 голосов
/ 05 октября 2018

Мой адрес выглядит следующим образом:

enter image description here

, и я хочу, чтобы адрес отображался в разных строках, например:

laubachstr.1

laubastr.2

белрин

Ханбург

12345

Германия

Я пробовал этот метод, ноне работает:

https://www.odoo.com/es_ES/forum/ayuda-1/question/how-can-i-change-address-format-in-customer-form-view-17056

Ниже мой формат:

%(street)s

%(street2)s

%(city)s

%(state_id)s

%(zip)s 

%(country_id)s

Как сделать так, чтобы данные этого адреса отображались в разных строках ??

Информация : поле моего адреса в представлении формы:

<div>
                                                    <div class="o_address_format" name="div_address">
                                                        <field name="street" placeholder="Street..." class="o_address_street"/>
                                                        <field name="street2" placeholder="Street 2..." class="o_address_street"/>
                                                        <field name="city" placeholder="City" class="o_address_city"/>
                                                        <field name="state_id" class="o_address_state" placeholder="State" options="{&quot;no_open&quot;: True}" context="{'country_id': country_id, 'zip': zip}"/>
                                                        <field name="zip" placeholder="ZIP" class="o_address_zip"/>
                                                        <field name="country_id" placeholder="Country" class="o_address_country" options="{&quot;no_open&quot;: True, &quot;no_create&quot;: True}"/>
                                                    </div>
                                                </div>

Ответы [ 2 ]

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

Удалить div из группы полей и class = "o_address_street" из ваших полей.Это может дать вам ожидаемый результат.

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

Если вы используете свой браузер для проверки сгенерированного HTML-кода для представления формы, вы обнаружите, что поля city, state_id и zip имеют класс o_field_widget, который, в свою очередь, имеет display: block-inline,но вы хотите, чтобы оно было display: block.

Итак, если у вас есть модуль с именем my_module, одно из решений будет следующим:

  1. Создание нового CSSучебный класс.Я добавил его в my_module/static/src/less/style.less

    
    .my_display_block {
      display: block !important;
    }
    
  2. Добавьте ваш файл стиля в ваши внутренние ресурсы.Я добавил его в my_module/templates/assets.xml:

    
    <?xml version="1.0" encoding="utf-8"?>
    <odoo>
        <data>
            <template id="assets_backend" name="my module backend assets" inherit_id="web.assets_backend">
                <xpath expr="//script[last()]" position="after">
                    <link rel="stylesheet" href="/my_module/static/src/less/style.less"/>
                </xpath>
            </template>
        </data>
    </odoo>
    
  3. Измените контактную форму.Я добавил следующее к my_module/views/res_partner.xml

    
    <?xml version="1.0" encoding="utf-8"?>
    <odoo>
      <data>
        <record id="address_in_block_form" model="ir.ui.view">
          <field name="name">Display address in block style
          <field name="model">res.partner
          <field name="inherit_id" ref="base.view_partner_form"/>
          <field name="arch" type="xml">
            <xpath expr="//field[@name='city']" position="attributes">
          <attribute name="class" add="my_display_block" separator=" "/>
            </xpath>
            <xpath expr="//field[@name='state_id']" position="attributes">
          <attribute name="class" add="my_display_block" separator=" "/>
            </xpath>
            <xpath expr="//field[@name='zip']" position="attributes">
          <attribute name="class" add="my_display_block" separator=" "/>
            </xpath>
          </field>
        </record>
      </data>
    </odoo>
    
  4. Наконец, убедитесь, что ваши шаблоны и представления вызываются из __manifest__.py

    
        'data': [
            'templates/assets.xml',
            'views/res_partner.xml',
            # 'security/ir.model.access.csv',
        ],
    

Вы можете клонировать минимальный модуль со всем вышеперечисленным из https://github.com/AdanCortes/stackoverflow/tree/q52668609

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...