Files
view/Document views.xml
2026-08-13 14:40:34 +00:00

357 lines
20 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- LIST VIEW -->
<record id="view_secretariat_document_list" model="ir.ui.view">
<field name="name">secretariat.document.list</field>
<field name="model">secretariat.document</field>
<field name="arch" type="xml">
<list string="اسناد و نامه‌ها" sample="1"
decoration-danger="security_level == 'secret'"
decoration-warning="priority == '1' and state != 'archived'"
decoration-muted="state == 'archived'"
decoration-success="state == 'answered'">
<field name="indicator_number"/>
<field name="name"/>
<field name="letter_type" widget="badge"/>
<field name="category_id"/>
<field name="department_id"/>
<field name="sender_partner_id"/>
<field name="recipient_partner_id"/>
<field name="responsible_user_id" widget="many2one_avatar_user"/>
<field name="receive_date" optional="show"/>
<field name="send_date" optional="hide"/>
<field name="deadline"/>
<field name="priority" widget="priority"/>
<field name="security_level" optional="hide"/>
<field name="has_attachment" widget="boolean_toggle" string="پیوست"/>
<field name="state" widget="badge"
decoration-info="state in ('draft','registered')"
decoration-warning="state == 'in_progress'"
decoration-success="state == 'answered'"
decoration-muted="state in ('archived','cancel')"/>
</list>
</field>
</record>
<!-- FORM VIEW -->
<record id="view_secretariat_document_form" model="ir.ui.view">
<field name="name">secretariat.document.form</field>
<field name="model">secretariat.document</field>
<field name="arch" type="xml">
<form string="سند / نامه">
<header>
<button name="action_register" string="ثبت سند" type="object" class="btn-primary" invisible="state != 'draft'"/>
<button name="action_start_process" string="شروع فرآیند ارجاع" type="object" class="btn-primary" invisible="state != 'registered'"/>
<button name="action_mark_answered" string="پاسخ داده شد" type="object" class="btn-success" invisible="state != 'in_progress'"/>
<button name="action_archive_document" string="بایگانی" type="object" invisible="state not in ('answered',)"/>
<button name="action_cancel" string="لغو سند" type="object" invisible="state in ('archived','cancel')"/>
<field name="state" widget="statusbar" statusbar_visible="draft,registered,in_progress,answered,archived"/>
</header>
<sheet>
<widget name="web_ribbon" title="محرمانه" bg_color="text-bg-danger" invisible="security_level != 'confidential'"/>
<widget name="web_ribbon" title="سری" bg_color="text-bg-danger" invisible="security_level != 'secret'"/>
<widget name="web_ribbon" title="لغو شده" bg_color="text-bg-danger" invisible="state != 'cancel'"/>
<div class="oe_button_box" name="button_box">
<button name="action_view_references" type="object" class="oe_stat_button" icon="fa-share-square-o">
<field name="reference_ids" widget="statinfo" string="ارجاعات"/>
</button>
<button name="action_view_versions" type="object" class="oe_stat_button" icon="fa-history">
<field name="version_ids" widget="statinfo" string="نسخه‌ها"/>
</button>
</div>
<div class="oe_title">
<label for="name"/>
<h1>
<field name="name" placeholder="عنوان نامه/سند..."/>
</h1>
<h3>
<field name="indicator_number" placeholder="شماره اندیکاتور..."/>
</h3>
</div>
<group>
<group string="اطلاعات پایه">
<field name="letter_type" widget="badge"/>
<field name="category_id" options="{'no_create': True}"/>
<field name="department_id" options="{'no_create': True}"/>
<field name="priority" widget="priority"/>
<field name="security_level" widget="badge"
decoration-danger="security_level == 'secret'"
decoration-warning="security_level == 'confidential'"/>
</group>
<group string="طرفین">
<field name="sender_partner_id"/>
<field name="recipient_partner_id"/>
<field name="responsible_user_id" widget="many2one_avatar_user"/>
</group>
</group>
<group>
<group string="نامه خارجی" invisible="letter_type != 'incoming'">
<field name="external_number"/>
<field name="external_date"/>
</group>
<group string="تاریخ‌ها">
<field name="receive_date"/>
<field name="send_date"/>
<field name="deadline"/>
</group>
</group>
<group>
<group string="ارسال/تحویل">
<field name="delivery_method"/>
<field name="page_count"/>
</group>
</group>
<notebook>
<page string="متن سند" name="content">
<field name="content" widget="html" nolabel="1" placeholder="متن کامل نامه/سند..."/>
</page>
<page string="پیوست‌ها و پیش‌نویس" name="attachments">
<group>
<group string="پیوست‌های نهایی">
<field name="attachment_ids" widget="many2many_binary" nolabel="1"/>
</group>
<group string="پیش‌نویس">
<field name="draft_attachment_id" widget="binary"/>
<field name="draft_upload_date" readonly="1"/>
<field name="draft_uploaded_by" widget="many2one_avatar_user" readonly="1"/>
</group>
</group>
</page>
<page string="امضا و تأیید" name="signature">
<group>
<field name="digital_signature" widget="signature"/>
<field name="signature_by" widget="many2one_avatar_user" readonly="1"/>
<field name="signature_date" readonly="1"/>
</group>
</page>
<page string="ارجاعات" name="references">
<field name="reference_ids">
<list string="ارجاعات درجا" editable="bottom"
decoration-warning="state in ('sent','read')"
decoration-success="state == 'done'">
<field name="sender_id"/>
<field name="receiver_id"/>
<field name="action_type"/>
<field name="is_cc" widget="boolean_toggle"/>
<field name="deadline"/>
<field name="is_read" widget="boolean_toggle"/>
<field name="state" widget="badge"/>
</list>
</field>
</page>
<page string="تاریخچه نسخه‌ها" name="versions">
<field name="version_ids" readonly="1">
<list string="نسخه‌ها">
<field name="version_number"/>
<field name="change_summary"/>
<field name="state_snapshot" widget="badge"/>
<field name="create_uid" widget="many2one_avatar_user"/>
<field name="create_date"/>
</list>
</field>
</page>
<page string="اطلاعات سیستمی" name="system_info">
<group>
<group string="ایجاد">
<field name="create_uid" widget="many2one_avatar_user" readonly="1"/>
<field name="create_date" readonly="1"/>
</group>
<group string="آخرین بروزرسانی">
<field name="write_uid" widget="many2one_avatar_user" readonly="1"/>
<field name="write_date" readonly="1"/>
</group>
</group>
</page>
</notebook>
</sheet>
<chatter/>
</form>
</field>
</record>
<!-- KANBAN VIEW -->
<record id="view_secretariat_document_kanban" model="ir.ui.view">
<field name="name">secretariat.document.kanban</field>
<field name="model">secretariat.document</field>
<field name="arch" type="xml">
<kanban default_group_by="state" class="o_kanban_small_column" sample="1">
<field name="name"/>
<field name="indicator_number"/>
<field name="letter_type"/>
<field name="priority"/>
<field name="security_level"/>
<field name="deadline"/>
<field name="responsible_user_id"/>
<field name="has_attachment"/>
<field name="state"/>
<progressbar field="state"
colors='{"draft": "muted", "registered": "info", "in_progress": "warning", "answered": "success", "archived": "muted"}'/>
<templates>
<t t-name="card">
<div class="oe_kanban_global_click">
<div class="d-flex justify-content-between">
<strong><field name="indicator_number"/></strong>
<field name="letter_type" widget="badge"/>
</div>
<div class="fw-bold">
<field name="name"/>
</div>
<div class="text-muted">
<field name="category_id"/>
</div>
<div class="d-flex justify-content-between mt-2">
<field name="deadline"/>
<field name="has_attachment" invisible="not has_attachment">
<i class="fa fa-paperclip" title="دارای پیوست"/>
</field>
</div>
<div class="d-flex justify-content-between align-items-center mt-2">
<field name="priority" widget="priority"/>
<field name="responsible_user_id" widget="many2one_avatar_user"/>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</record>
<!-- CALENDAR VIEW -->
<record id="view_secretariat_document_calendar" model="ir.ui.view">
<field name="name">secretariat.document.calendar</field>
<field name="model">secretariat.document</field>
<field name="arch" type="xml">
<calendar string="تقویم مهلت اسناد" date_start="deadline" color="letter_type" mode="month" quick_create="0">
<field name="name"/>
<field name="indicator_number"/>
<field name="responsible_user_id" avatar_field="avatar_128"/>
<field name="state"/>
</calendar>
</field>
</record>
<!-- CALENDAR VIEW - REFERENCES -->
<record id="view_secretariat_reference_calendar" model="ir.ui.view">
<field name="name">secretariat.reference.calendar</field>
<field name="model">secretariat.reference</field>
<field name="arch" type="xml">
<calendar string="تقویم مهلت ارجاعات" date_start="deadline" color="state" mode="month" quick_create="0">
<field name="document_id"/>
<field name="receiver_id" avatar_field="avatar_128"/>
<field name="state"/>
</calendar>
</field>
</record>
<!-- SEARCH VIEW -->
<record id="view_secretariat_document_search" model="ir.ui.view">
<field name="name">secretariat.document.search</field>
<field name="model">secretariat.document</field>
<field name="arch" type="xml">
<search string="جستجوی اسناد">
<field name="name" string="سند"
filter_domain="['|','|', ('name','ilike',self), ('indicator_number','ilike',self), ('external_number','ilike',self)]"/>
<field name="category_id"/>
<field name="department_id"/>
<field name="sender_partner_id"/>
<field name="recipient_partner_id"/>
<field name="responsible_user_id"/>
<filter string="وارده" name="incoming" domain="[('letter_type','=','incoming')]"/>
<filter string="صادره" name="outgoing" domain="[('letter_type','=','outgoing')]"/>
<filter string="داخلی" name="internal" domain="[('letter_type','=','internal')]"/>
<separator/>
<filter string="محرمانه" name="confidential" domain="[('security_level','=','confidential')]"/>
<filter string="سری" name="secret" domain="[('security_level','=','secret')]"/>
<separator/>
<filter string="فوری" name="urgent" domain="[('priority','=','1')]"/>
<filter string="دارای تأخیر در پاسخ" name="overdue"
domain="[('deadline','&lt;', context_today().strftime('%Y-%m-%d')), ('state','not in',('answered','archived','cancel'))]"/>
<filter string="دارای پیوست" name="has_attachment" domain="[('has_attachment','=',True)]"/>
<separator/>
<filter string="مهلت امروز" name="deadline_today"
domain="[('deadline','=', context_today().strftime('%Y-%m-%d'))]"/>
<filter string="مسئول من" name="my_documents" domain="[('responsible_user_id','=',uid)]"/>
<separator/>
<filter string="پیش‌نویس" name="state_draft" domain="[('state','=','draft')]"/>
<filter string="ثبت شده" name="state_registered" domain="[('state','=','registered')]"/>
<filter string="در حال ارجاع" name="state_in_progress" domain="[('state','=','in_progress')]"/>
<filter string="پاسخ داده شده" name="state_answered" domain="[('state','=','answered')]"/>
<filter string="بایگانی شده" name="state_archived" domain="[('state','=','archived')]"/>
<group expand="0" string="گروه‌بندی">
<filter string="نوع نامه" name="group_letter_type" context="{'group_by':'letter_type'}"/>
<filter string="دسته‌بندی" name="group_category" context="{'group_by':'category_id'}"/>
<filter string="دپارتمان" name="group_department" context="{'group_by':'department_id'}"/>
<filter string="مسئول" name="group_responsible" context="{'group_by':'responsible_user_id'}"/>
<filter string="سطح امنیتی" name="group_security" context="{'group_by':'security_level'}"/>
<filter string="وضعیت" name="group_state" context="{'group_by':'state'}"/>
<filter string="تاریخ دریافت" name="group_receive_date" context="{'group_by':'receive_date'}"/>
</group>
</search>
</field>
</record>
<!-- MAIN ACTION -->
<record id="action_secretariat_document" model="ir.actions.act_window">
<field name="name">اسناد و نامه‌ها</field>
<field name="res_model">secretariat.document</field>
<field name="view_mode">kanban,list,form,calendar</field>
<field name="search_view_id" ref="view_secretariat_document_search"/>
<field name="context">{'search_default_my_documents': 0}</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
اولین سند یا نامه دبیرخانه را ثبت کنید
</p>
</field>
</record>
<!-- FILTERED ACTIONS (INCOMING/OUTGOING/INTERNAL) -->
<record id="action_secretariat_document_incoming" model="ir.actions.act_window">
<field name="name">نامه‌های وارده</field>
<field name="res_model">secretariat.document</field>
<field name="view_mode">list,kanban,form,calendar</field>
<field name="search_view_id" ref="view_secretariat_document_search"/>
<field name="domain">[('letter_type','=','incoming')]</field>
<field name="context">{'default_letter_type': 'incoming'}</field>
</record>
<record id="action_secretariat_document_outgoing" model="ir.actions.act_window">
<field name="name">نامه‌های صادره</field>
<field name="res_model">secretariat.document</field>
<field name="view_mode">list,kanban,form,calendar</field>
<field name="search_view_id" ref="view_secretariat_document_search"/>
<field name="domain">[('letter_type','=','outgoing')]</field>
<field name="context">{'default_letter_type': 'outgoing'}</field>
</record>
<record id="action_secretariat_document_internal" model="ir.actions.act_window">
<field name="name">نامه‌های داخلی</field>
<field name="res_model">secretariat.document</field>
<field name="view_mode">list,kanban,form,calendar</field>
<field name="search_view_id" ref="view_secretariat_document_search"/>
<field name="domain">[('letter_type','=','internal')]</field>
<field name="context">{'default_letter_type': 'internal'}</field>
</record>
<!-- CALENDAR-ONLY ACTION -->
<record id="action_secretariat_document_calendar" model="ir.actions.act_window">
<field name="name">تقویم پیگیری مهلت‌ها</field>
<field name="res_model">secretariat.document</field>
<field name="view_mode">calendar,list,form</field>
<field name="search_view_id" ref="view_secretariat_document_search"/>
</record>
</odoo>