Files
gzth/room/views/room_booking_views.xml
T
2026-05-15 16:13:20 +08:00

260 lines
13 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="room_booking_view_search" model="ir.ui.view">
<field name="name">Bookings search view</field>
<field name="model">room.booking</field>
<field name="arch" type="xml">
<search string="Booking">
<field name="name" string="Meeting name"/>
<field name="organizer_id"/>
<field name="room_id"/>
<field name="office_id"/>
<filter name="organizer_id" string="My Meetings" domain="[('organizer_id', '=', uid)]"/>
<filter name="group_by_organizer_id" context="{'group_by': 'organizer_id'}"/>
<filter name="group_by_room_id" context="{'group_by': 'room_id'}"/>
<filter name="group_by_office_id" context="{'group_by': 'office_id'}"/>
</search>
</field>
</record>
<record id="room_booking_view_gantt" model="ir.ui.view">
<field name="name">room.booking.view.gantt</field>
<field name="model">room.booking</field>
<field name="arch" type="xml">
<gantt js_class="room_booking_gantt"
date_start="start_datetime"
date_stop="stop_datetime"
default_group_by="room_id"
precision="{'day': 'hour:quarter', 'week': 'day:half', 'month': 'day:half', 'year': 'day:full'}"
default_scale="day"
dynamic_range="1"
color="organizer_id"
string="Bookings"
plan="0">
<templates>
<field name="name"/>
<field name="room_users_names"/>
<div t-name="gantt-popover">
<div class="o_gantt_popover">
<ul class="ps-1 mb-0 list-unstyled">
<li>
<strong>创建人:</strong>
<t t-out="organizer_id[1]"/>
</li>
<li class="o_gantt_popover_content_item mt-2">
<t t-out="start_datetime.toFormat('f ')"/>
<i class="fa fa-long-arrow-right" title="Until"/>
<t t-out="stop_datetime.toFormat(' f')"/>
</li>
<li>
<strong>参会人员:</strong>
<t t-out="room_users_names"/>
</li>
</ul>
</div>
</div>
</templates>
</gantt>
</field>
</record>
<record id="room_booking_view_calendar" model="ir.ui.view">
<field name="name">room.booking.view.calendar</field>
<field name="model">room.booking</field>
<field name="arch" type="xml">
<calendar date_start="start_datetime" date_stop="stop_datetime" color="room_id" quick_create="0"
event_open_popup="1">
<field name="room_id"/>
</calendar>
</field>
</record>
<record id="room_booking_view_list" model="ir.ui.view">
<field name="name">room.booking.view.list</field>
<field name="model">room.booking</field>
<field name="arch" type="xml">
<tree duplicate="0">
<field name="start_datetime"/>
<field name="stop_datetime"/>
<field name="name" string="Name"/>
<field name="room_id"/>
<field name="organizer_id" widget="many2one_avatar_user"/>
</tree>
</field>
</record>
<record id="room_booking_view_kanban" model="ir.ui.view">
<field name="name">room.booking.view.kanban</field>
<field name="model">room.booking</field>
<field name="arch" type="xml">
<kanban>
<templates>
<t t-name="kanban-box">
<div class="oe_kanban_global_click">
<div class="o_kanban_record_top">
<strong class="o_kanban_record_title">
<field name="display_name"/>
</strong>
</div>
<div class="oe_kanban_content">
<ul class="ps-1 mb-0 list-unstyled">
<li>
<strong>Room:</strong>
<field name="room_id"/>
</li>
<li>
<strong>Date:</strong>
<field name="start_datetime"/>
<i class="fa fa-long-arrow-right mx-1" title="Until"/>
<field name="stop_datetime"/>
</li>
</ul>
</div>
<div class="o_kanban_record_bottom">
<div class="oe_kanban_bottom_left"/>
<div class="oe_kanban_bottom_right">
<field name="organizer_id" widget="many2one_avatar_user"/>
</div>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</record>
<record id="room_booking_view_form" model="ir.ui.view">
<field name="name">room.booking.view.form</field>
<field name="model">room.booking</field>
<field name="arch" type="xml">
<form duplicate="0">
<sheet>
<header>
<button name="meet_notice" string="会议通知" type="object" class="oe_highlight" invisible="not work_end"/>
<button name="meeting_sign_in" string="签到" invisible="meeting_type != 'down' or not work_end " type="object"
class="oe_highlight"/>
<button name="meeting_partner_create" string="录入" invisible="meeting_type != 'down' or not work_end"
type="object" class="oe_highlight"/>
<button name="sync_wechat_room" string="同步企业微信" type="object" class="oe_highlight" invisible="not work_end"/>
<button name="action_print_room_booking_agenda" string="打印" type="object" class="btn-primary"/>
</header>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
</group>
<div class="col-12 text-center">
<h1>
<field name="name_title" readonly="1"/>
</h1>
</div>
<div class="oe_title">
<label for="name"/>
<h1>
<field name="name" required="1" string="标题"/>
</h1>
</div>
<group col="2">
<group>
<field name="stop_datetime" invisible="1"/>
<field name="start_datetime" string="会议时间" widget="daterange"
options="{'end_date_field': 'stop_datetime'}"/>
</group>
<group/>
</group>
<group>
<group>
<field name="user_id" invisible="1"/>
<field name="state" invisible="1"/>
<field name="is_back" invisible="1"/>
<field name="work_end" invisible="1"/>
<field name="organizer_id" options="{'no_create': True}"/>
<field name="meeting_type"/>
<field name="driver" invisible="meeting_type != 'exterior'"/>
<field name="fleet_id" invisible="meeting_type != 'exterior'"/>
<field name="meeting_place" invisible="meeting_type != 'exterior'"/>
<field name="room_id" string="会议地点" domain=""/>
</group>
<group>
<label for="is_this_company"/>
<div><field name="is_this_company"/></div>
</group>
<group>
<field name="department_id" widget="ztree_select" options="{'no_create': True}"/>
<field name="company_id" invisible="1"/>
<field name="meeting_type_id" required="1" domain="[('company_id', '=', company_id)]" options="{'no_create': True}"/>
</group>
</group>
<group col="2">
<group>
<field name="host" domain = "[('company_id', '=', company_id), ('user_id.name', '!=', 'Administrator')] if is_this_company else []" options="{'no_create': True}"/>
</group>
<group/>
</group>
<group>
<label for="stationed_group"/>
<div><field name="stationed_group"/></div>
</group>
<group>
<field name="room_users_ids" widget="many2many_tags" domain = "[('company_id', '=', company_id), ('name', '!=', 'Administrator')] if is_this_company else []" options="{'no_create': True}"/>
<field name="recorder_ids" widget="many2many_tags" domain="[('user_role_ids.name', 'ilike', '会议记录员')]" options="{'no_create': True}"/>
<field name="other_company_user_ids" widget="many2many_tags" readonly="0"/>
<field name="partner_ids" widget="many2many_tags" force_save="1" invisible="1"/>
<field name="is_meeting" invisible="1"/>
</group>
<group>
<label for="is_notice"/>
<div><field name="is_notice"/></div>
<label for="task_time_ids" invisible="not is_notice"/>
<div><field name="task_time_ids" invisible="not is_notice" widget="many2many_tags"/></div>
</group>
<notebook>
<page name="sign" string="签到详情">
<group>
<group>
<field name="should_user"/>
</group>
<group>
<field name="right_user"/>
</group>
<field name="meeting_sing_ids">
<tree delete="0" create="0">
<field name="room_booking_id" column_invisible="1"/>
<field name="sign_user_name"/>
<field name="partner_name"/>
<field name="job"/>
<field name="mobile"/>
<field name="user_type"/>
<field name="sign_type"/>
<field name="sign_time"/>
</tree>
</field>
</group>
</page>
<page name="meeting_html" string="会议说明">
<button name="button_meeting_data" string="座位排列" type="object" class="oe_highlight"/>
<field name="meeting_data" widget="tinymce"/>
</page>
<page string="附件" invisible="is_meeting">
<field name="documents_ids" widget="preview_many2many"/>
</page>
</notebook>
</sheet>
<!-- <div class="oe_chatter">-->
<!-- <field name="message_follower_ids"/>-->
<!-- <field name="message_ids"/>-->
<!-- </div>-->
</form>
</field>
</record>
<record id="room_booking_action" model="ir.actions.act_window">
<field name="name">Bookings</field>
<field name="res_model">room.booking</field>
<field name="view_mode">list,kanban,form,search</field>
</record>
</odoo>