Как добавить файлы css в пользовательский модуль в Odoo?

Как я могу добавить файлы css в свой пользовательский модуль, чтобы изменить представления xml? Я нашел это сообщение но решение не работает.

Я хочу изменить все элементы из моего модуля, такие как формы, списки, входы и т. д.


person aispobla    schedule 29.09.2015    source источник


Ответы (1)


  1. Вы должны создать файл css по этому маршруту: /module_name/static/src/css/module_name.css. Пример файла:

     .openerp .classname{
         margin: 12px 0px 12px 0px;
     }
    
  2. Создайте файл /module_name/views/module_name.xml со следующим содержимым:

     <?xml version="1.0"?>
     <openerp>
         <data>
             <template id="assets_backend" name="module_name assets" inherit_id="web.assets_backend">
                 <xpath expr="." position="inside">
                     <link rel="stylesheet" href="/module_name/static/src/css/module_name.css"/>
                 </xpath>
             </template>
         </data>     
     </openerp>
    
  3. Добавьте файл xml в свой __openerp.__py

     'data': [
         'views/module_name.xml',
     ],
    
  4. Добавьте класс к элементам в представлении

     <div class="classname">                            
         <field name="field_name" class="other_class"/>
     </div>
    
person ChesuCR    schedule 29.09.2015
comment
Спасибо ChesuCR, все работает. Другой вопрос, обязательно ставится inherit_id=web.assets_backend? И всегда есть web.assets_backend? Атрибут имени является условным, запись «module_name assets» или «assets» не является обязательной? - person aispobla; 30.09.2015
comment
inherit_id="web.assets_backend" является обязательным, если вы хотите добавить стили в отчеты, например, вы должны наследовать от другого шаблона. Я думаю поле имени не обязательно так писать, но если проверить как пишется в остальных модулях, то большинство из них такие - person ChesuCR; 30.09.2015
comment
Он будет применяться ко всей ERP, включая все виды форм и все виды дерева, как ограничить его только одним модулем? - person Sabir Mustafa; 27.07.2017
comment
Вы можете добавить классы css к объектам, которые вы хотели бы изменить, как я написал в своем ответе. - person ChesuCR; 27.07.2017