Public release from ruodoo-project: 19.0 - 2026-05-10 21:19:01 UTC

This commit is contained in:
CI Publish Bot
2026-05-10 21:19:11 +00:00
commit cbf9e6e6d6
1213 changed files with 183945 additions and 0 deletions

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<!-- Верхнеуровневое меню. Ставим sequence=20, чтобы идти вторым после "Общение" -->
<menuitem id="menu_premium_root" name="Премиум" sequence="20"/>
<record id="action_premium_services" model="ir.actions.act_window">
<field name="name">Премиум</field>
<field name="res_model">premium.service</field>
<field name="view_mode">kanban,list,form</field>
<field name="context">{'search_default_group_by_category': 1}</field>
<field name="help">Создайте или откройте карточку сервиса</field>
</record>
<menuitem id="menu_premium_services" name="Сервисы" parent="menu_premium_root" action="action_premium_services" sequence="1"/>
</odoo>

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<record id="premium_order_wizard_view_form" model="ir.ui.view">
<field name="name">premium.order.wizard.form</field>
<field name="model">premium.order.wizard</field>
<field name="arch" type="xml">
<form string="Заявка на сервис">
<group>
<field name="service_id" invisible="1"/>
<field name="company_name" required="1"/>
<field name="inn"/>
<field name="email" required="1"/>
<field name="phone_telegram"/>
<field name="contact_person"/>
</group>
<footer>
<button name="action_submit" type="object" string="Отправить" class="btn-primary"/>
<button string="Отмена" class="btn-secondary" special="cancel"/>
</footer>
</form>
</field>
</record>
</odoo>

View File

@ -0,0 +1,113 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<!-- Поиск с группировкой -->
<record id="premium_service_view_search" model="ir.ui.view">
<field name="name">premium.service.search</field>
<field name="model">premium.service</field>
<field name="arch" type="xml">
<search string="Поиск сервисов">
<filter name="group_by_category" string="Категория" context="{'group_by': 'category'}"/>
<field name="name"/>
<field name="category"/>
</search>
</field>
</record>
<!-- Вид списка (list), а не tree -->
<record id="premium_service_view_tree" model="ir.ui.view">
<field name="name">premium.service.tree</field>
<field name="model">premium.service</field>
<field name="arch" type="xml">
<list>
<field name="sequence"/>
<field name="name"/>
<field name="category"/>
</list>
</field>
</record>
<record id="premium_service_view_kanban" model="ir.ui.view">
<field name="name">premium.service.kanban</field>
<field name="model">premium.service</field>
<field name="arch" type="xml">
<kanban default_group_by="category">
<templates>
<t t-name="card">
<div class="oe_kanban_global_click o_kanban_record">
<!-- Заголовок по центру -->
<div class="text-center mb-2">
<strong class="o_kanban_title">
<field name="name"/>
</strong>
</div>
<!-- Изображение слева, текст справа с большим отступом -->
<div class="d-flex align-items-center mb-2">
<field name="image"
widget="image"
options="{'size': [80, 80]}"
class="mr-6" /> <!-- mr-6 = 4rem = 64px → очень большой отступ -->
<div>
<div class="text-muted o_kanban_body">
<field name="short_description"/>
</div>
</div>
</div>
<!-- Кнопка "Подробнее" -->
<div class="o_kanban_buttons mt-2">
<button type="object" name="action_open_form" class="btn btn-primary btn-sm">
<span>Подробнее</span>
</button>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</record>
<!-- Единая форма (контроль прав будет в Python) -->
<record id="premium_service_view_form" model="ir.ui.view">
<field name="name">premium.service.form</field>
<field name="model">premium.service</field>
<field name="arch" type="xml">
<form string="Сервис">
<sheet>
<!-- Заголовок -->
<div class="oe_title">
<h1><field name="name"/></h1>
</div>
<!-- Изображение слева, данные справа -->
<div class="row mt-3">
<div class="col-md-4">
<field name="image" widget="image" class="w-100"/>
</div>
<div class="col-md-8">
<group>
<field name="category"/>
<field name="author_url" widget="url"/>
</group>
<notebook>
<page string="Описание">
<field name="description" widget="html"/>
</page>
</notebook>
</div>
</div>
<!-- Кнопка "Заказать" справа под описанием - увеличенная зеленая -->
<div class="mt-4 d-flex justify-content-end">
<button name="action_open_order_wizard"
type="object"
class="btn btn-success btn-lg"
string="Заказать"
style="padding: 20px 50px; font-size: 22px; font-weight: bold; border-radius: 10px;"/>
</div>
</sheet>
</form>
</field>
</record>
</odoo>

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<record id="res_config_settings_view_form_premium" model="ir.ui.view">
<field name="name">res.config.settings.view.form.premium</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="base_setup.res_config_settings_view_form"/>
<field name="arch" type="xml">
<xpath expr="//block[@name='integration']" position="inside">
<setting string="Премиум" help="URL обслуживающего партнера" id="premium_integration_setting">
<div class="content-group" id="premium_settings">
<div class="mt16 row">
<label for="premium_project_api_url" string="API URL" class="col-3 o_light_label"/>
<field name="premium_project_api_url" placeholder="API URL" class="w-100"/>
</div>
<div class="mt16 row">
<label for="premium_project_api_token" string="API Token" class="col-3 o_light_label"/>
<field name="premium_project_api_token" password="True" class="w-100"/>
</div>
</div>
</setting>
</xpath>
</field>
</record>
</odoo>