Public release from ruodoo-project: 19.0 - 2026-11-01 22:52:25 UTC
This commit is contained in:
292
mklab_dms_document/views/views.xml
Normal file
292
mklab_dms_document/views/views.xml
Normal file
@@ -0,0 +1,292 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
|
||||
<!-- Кнопки документов в карточке контакта -->
|
||||
<record id="res_partner_inherit" model="ir.ui.view">
|
||||
<field name="name">mklab_dms_document.res_partner_inherit</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="inherit_id" ref="base.view_partner_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//div[@name='button_box']" position="inside">
|
||||
<button class="oe_stat_button" type="object" icon="fa-inbox"
|
||||
name="action_show_document_incoming"
|
||||
string="Входящие"/>
|
||||
<button class="oe_stat_button" type="object" icon="fa-paper-plane"
|
||||
name="action_show_document_outgoing"
|
||||
string="Исходящие"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Мультикомпанийное правило -->
|
||||
<record id="rule_company_document" model="ir.rule">
|
||||
<field name="name">Документы: мультикомпания</field>
|
||||
<field name="model_id" ref="model_dms_document"/>
|
||||
<field name="global" eval="True"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
|
||||
</record>
|
||||
|
||||
<!-- Визард выбора шаблона -->
|
||||
<record model="ir.ui.view" id="form_template_wiz">
|
||||
<field name="name">dms.choise_template.form</field>
|
||||
<field name="model">dms.choise_template</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Выбор шаблона">
|
||||
<sheet>
|
||||
<group>
|
||||
<field name="temp_id"/>
|
||||
<field name="doc_id" invisible="1"/>
|
||||
<field name="company_id" invisible="1"/>
|
||||
</group>
|
||||
</sheet>
|
||||
<footer>
|
||||
<button string="Выбрать" name="get_choise" type="object"
|
||||
class="btn-primary"/>
|
||||
<button string="Отмена" class="btn-secondary" special="cancel"/>
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Шаблоны: список и форма -->
|
||||
<record model="ir.ui.view" id="list_template">
|
||||
<field name="name">dms.template.list</field>
|
||||
<field name="model">dms.template</field>
|
||||
<field name="arch" type="xml">
|
||||
<list string="Шаблоны документов">
|
||||
<field name="name"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="form_template">
|
||||
<field name="name">dms.template.form</field>
|
||||
<field name="model">dms.template</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Шаблон документа">
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<label for="name"/>
|
||||
<h1><field name="name" placeholder="Наименование шаблона"/></h1>
|
||||
</div>
|
||||
<field name="text"/>
|
||||
<group>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</group>
|
||||
</sheet>
|
||||
<chatter/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Документы: список -->
|
||||
<record model="ir.ui.view" id="list">
|
||||
<field name="name">dms.document.list</field>
|
||||
<field name="model">dms.document</field>
|
||||
<field name="arch" type="xml">
|
||||
<list string="Документы"
|
||||
decoration-muted="state == 'done'">
|
||||
<field name="name"/>
|
||||
<field name="date"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="type_document"/>
|
||||
<field name="state" widget="badge"
|
||||
decoration-info="state == 'draft'"
|
||||
decoration-success="state == 'done'"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Документы: поиск -->
|
||||
<record model="ir.ui.view" id="search_document">
|
||||
<field name="name">dms.document.search</field>
|
||||
<field name="model">dms.document</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Поиск документов">
|
||||
<field name="name"/>
|
||||
<field name="partner_id"/>
|
||||
<filter name="draft" string="Черновики"
|
||||
domain="[('state', '=', 'draft')]"/>
|
||||
<filter name="done" string="В хранилище"
|
||||
domain="[('state', '=', 'done')]"/>
|
||||
<separator/>
|
||||
<filter name="incoming" string="Входящие"
|
||||
domain="[('type_document', '=', 'incoming')]"/>
|
||||
<filter name="outgoing" string="Исходящие"
|
||||
domain="[('type_document', '=', 'outgoing')]"/>
|
||||
<filter name="internal" string="Внутренние"
|
||||
domain="[('type_document', '=', 'internal')]"/>
|
||||
<separator/>
|
||||
<filter name="group_type" string="Тип"
|
||||
context="{'group_by': 'type_document'}"/>
|
||||
<filter name="group_partner" string="Контакт"
|
||||
context="{'group_by': 'partner_id'}"/>
|
||||
<filter name="group_state" string="Статус"
|
||||
context="{'group_by': 'state'}"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Документы: форма -->
|
||||
<record model="ir.ui.view" id="form">
|
||||
<field name="name">dms.document.form</field>
|
||||
<field name="model">dms.document</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Документ">
|
||||
<header>
|
||||
<button name="open_choise_template" type="object"
|
||||
string="Текст из шаблона" class="btn-secondary"
|
||||
invisible="type_document != 'outgoing' or state == 'done'"/>
|
||||
<button name="create_pdf" type="object"
|
||||
string="Сформировать PDF и записать в хранилище"
|
||||
class="btn-primary"
|
||||
invisible="type_document != 'outgoing' or state == 'done'"/>
|
||||
<button name="create_pdf" type="object"
|
||||
string="Записать в хранилище" class="btn-primary"
|
||||
invisible="type_document == 'outgoing' or state == 'done'"/>
|
||||
<button name="request_validation" type="object"
|
||||
string="Запросить согласование"
|
||||
invisible="need_validation != True or rejected == True or state not in ['draft']"/>
|
||||
<button name="restart_validation" type="object"
|
||||
string="Перезапустить согласование"
|
||||
invisible="not review_ids or state not in ['draft']"/>
|
||||
<field name="state" widget="statusbar"
|
||||
statusbar_visible="draft,done"/>
|
||||
</header>
|
||||
<field name="need_validation" invisible="1"/>
|
||||
<field name="validated" invisible="1"/>
|
||||
<field name="rejected" invisible="1"/>
|
||||
<field name="review_ids" invisible="1"/>
|
||||
<field name="can_review" invisible="1"/>
|
||||
<div class="alert alert-warning" role="alert"
|
||||
invisible="validated == True or state not in ['draft'] or rejected == True or not review_ids">
|
||||
<span><i class="fa fa-info-circle" title="Информация"/> Требуется согласование.</span>
|
||||
<button name="validate_tier" string="Согласовать"
|
||||
invisible="can_review == False" type="object"
|
||||
class="oe_inline btn-success" icon="fa-thumbs-up"/>
|
||||
<button name="reject_tier" string="Отклонить"
|
||||
invisible="can_review == False" type="object"
|
||||
class="oe_inline btn-danger" icon="fa-thumbs-down"/>
|
||||
</div>
|
||||
<div class="alert alert-success" role="alert"
|
||||
invisible="validated != True or state not in ['draft'] or not review_ids">
|
||||
<span><i class="fa fa-thumbs-up" title="Согласовано"/> <b>Согласование пройдено.</b></span>
|
||||
</div>
|
||||
<div class="alert alert-danger" role="alert"
|
||||
invisible="rejected != True or state not in ['draft'] or not review_ids">
|
||||
<span><i class="fa fa-thumbs-down" title="Отклонено"/> Согласование <b>отклонено.</b></span>
|
||||
</div>
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<label for="name"/>
|
||||
<h1><field name="name" readonly="state == 'done'"
|
||||
placeholder="Присвоится автоматически"/></h1>
|
||||
</div>
|
||||
<group>
|
||||
<group string="Основное">
|
||||
<field name="type_document" readonly="state != 'draft'"/>
|
||||
<field name="date" readonly="state == 'done'"/>
|
||||
<field name="partner_id" readonly="state == 'done'"/>
|
||||
<field name="print_head" readonly="state == 'done'"/>
|
||||
<field name="company_id" groups="base.group_multi_company"
|
||||
readonly="state == 'done'"/>
|
||||
</group>
|
||||
<group string="Хранение и связи">
|
||||
<field name="directory_id" readonly="state == 'done'"/>
|
||||
<field name="file" readonly="state == 'done'"/>
|
||||
<field name="parent_id" readonly="state == 'done'"/>
|
||||
<field name="link_model" readonly="state == 'done'"/>
|
||||
<field name="res_id" readonly="state == 'done'"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page name="page_document" string="Документ">
|
||||
<field name="text"
|
||||
invisible="type_document != 'outgoing'"
|
||||
readonly="state == 'done'"/>
|
||||
<field name="text_str" invisible="1"/>
|
||||
<field name="text_render" invisible="1"/>
|
||||
<group>
|
||||
<field name="incoming_file_type"
|
||||
invisible="type_document == 'outgoing'"
|
||||
readonly="state == 'done'"/>
|
||||
<field name="incoming_file"
|
||||
invisible="type_document == 'outgoing' or incoming_file_type != 'pdf'"
|
||||
readonly="state == 'done'" widget="pdf_viewer"/>
|
||||
<field name="incoming_file" string="Сформированный документ"
|
||||
invisible="type_document != 'outgoing' or state != 'done'"
|
||||
readonly="1" widget="pdf_viewer"/>
|
||||
<field name="incoming_file_other"
|
||||
invisible="type_document == 'outgoing' or incoming_file_type == 'pdf'"
|
||||
readonly="state == 'done'"/>
|
||||
</group>
|
||||
</page>
|
||||
<page name="page_chain_document" string="Цепочка документов">
|
||||
<field name="child_ids" readonly="state == 'done'">
|
||||
<list>
|
||||
<field name="name"/>
|
||||
<field name="date"/>
|
||||
<field name="type_document"/>
|
||||
<field name="state"/>
|
||||
</list>
|
||||
</field>
|
||||
</page>
|
||||
</notebook>
|
||||
<field name="review_ids" widget="tier_validation"
|
||||
invisible="not review_ids"/>
|
||||
</sheet>
|
||||
<chatter/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Действия -->
|
||||
<record model="ir.actions.act_window" id="action_window_template">
|
||||
<field name="name">Шаблоны</field>
|
||||
<field name="res_model">dms.template</field>
|
||||
<field name="view_mode">list,form</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_window_incoming">
|
||||
<field name="name">Входящие</field>
|
||||
<field name="res_model">dms.document</field>
|
||||
<field name="view_mode">list,form</field>
|
||||
<field name="search_view_id" ref="search_document"/>
|
||||
<field name="context">{'default_type_document': 'incoming'}</field>
|
||||
<field name="domain">[('type_document', '=', 'incoming')]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_window_outgoing">
|
||||
<field name="name">Исходящие</field>
|
||||
<field name="res_model">dms.document</field>
|
||||
<field name="view_mode">list,form</field>
|
||||
<field name="search_view_id" ref="search_document"/>
|
||||
<field name="context">{'default_type_document': 'outgoing'}</field>
|
||||
<field name="domain">[('type_document', '=', 'outgoing')]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_window_internal">
|
||||
<field name="name">Внутренние</field>
|
||||
<field name="res_model">dms.document</field>
|
||||
<field name="view_mode">list,form</field>
|
||||
<field name="search_view_id" ref="search_document"/>
|
||||
<field name="context">{'default_type_document': 'internal'}</field>
|
||||
<field name="domain">[('type_document', '=', 'internal')]</field>
|
||||
</record>
|
||||
|
||||
<!-- Меню -->
|
||||
<menuitem name="Документы" id="documents" parent="dms.main_menu_dms"/>
|
||||
<menuitem name="Входящие" id="incoming" parent="documents"
|
||||
action="action_window_incoming" sequence="10"/>
|
||||
<menuitem name="Исходящие" id="outgoing" parent="documents"
|
||||
action="action_window_outgoing" sequence="20"/>
|
||||
<menuitem name="Внутренние" id="internal" parent="documents"
|
||||
action="action_window_internal" sequence="30"/>
|
||||
<menuitem name="Шаблоны" id="template_menu" parent="documents"
|
||||
action="action_window_template" sequence="40"/>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user