2026-09-25 18:00:58 +05:30

106 lines
5.0 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_hostel_member_list" model="ir.ui.view">
<field name="name">education.hostel.member.list</field>
<field name="model">education.hostel.member</field>
<field name="arch" type="xml">
<list string="Hostel Allocations"
decoration-success="status == 'active'"
decoration-muted="status in ('exited','cancelled')"
decoration-warning="status == 'pending'">
<field name="name"/>
<field name="student_id"/>
<field name="hostel_id"/>
<field name="room_id"/>
<field name="bed_id"/>
<field name="allocation_date"/>
<field name="expected_exit_date"/>
<field name="status" widget="badge"
decoration-success="status == 'active'"
decoration-warning="status == 'pending'"
decoration-info="status == 'transferred'"
decoration-muted="status in ('exited','cancelled')"/>
</list>
</field>
</record>
<record id="view_hostel_member_form" model="ir.ui.view">
<field name="name">education.hostel.member.form</field>
<field name="model">education.hostel.member</field>
<field name="arch" type="xml">
<form string="Hostel Allocation">
<header>
<button name="action_activate" string="Activate" type="object"
class="btn-primary"
invisible="status != 'pending'"/>
<button name="action_exit" string="Mark Exited" type="object"
invisible="status != 'active'"/>
<button name="action_cancel" string="Cancel" type="object"
invisible="status in ('exited','cancelled')"/>
<field name="status" widget="statusbar"
statusbar_visible="pending,active,exited"/>
</header>
<sheet>
<div class="oe_title">
<h1><field name="name" readonly="1"/></h1>
</div>
<group>
<group string="Student">
<field name="student_id"/>
<field name="allocated_by" readonly="1"/>
<field name="allocation_date"/>
<field name="expected_exit_date"/>
<field name="actual_exit_date" readonly="1"/>
</group>
<group string="Accommodation">
<field name="hostel_id"/>
<field name="room_id"
domain="[('hostel_id', '=', hostel_id)]"/>
<field name="bed_id"
domain="[('room_id', '=', room_id), ('status', 'in', ['available','reserved'])]"/>
</group>
</group>
<group string="Guardian/Emergency">
<group>
<field name="guardian_name"/>
<field name="guardian_phone"/>
</group>
<group>
<field name="emergency_contact"/>
</group>
</group>
<field name="notes" placeholder="Notes"/>
</sheet>
<chatter/>
</form>
</field>
</record>
<record id="view_hostel_member_search" model="ir.ui.view">
<field name="name">education.hostel.member.search</field>
<field name="model">education.hostel.member</field>
<field name="arch" type="xml">
<search string="Search Allocations">
<field name="student_id"/>
<field name="hostel_id"/>
<field name="room_id"/>
<filter name="active" string="Active" domain="[('status','=','active')]"/>
<filter name="pending" string="Pending" domain="[('status','=','pending')]"/>
<filter name="exited" string="Exited" domain="[('status','=','exited')]"/>
<group>
<filter name="group_hostel" string="Hostel" context="{'group_by': 'hostel_id'}"/>
<filter name="group_status" string="Status" context="{'group_by': 'status'}"/>
</group>
</search>
</field>
</record>
<record id="action_hostel_member_list" model="ir.actions.act_window">
<field name="name">Hostel Allocations</field>
<field name="res_model">education.hostel.member</field>
<field name="view_mode">list,form</field>
<field name="search_view_id" ref="view_hostel_member_search"/>
<field name="context">{'search_default_active': 1}</field>
</record>
</odoo>