I'm new to odoo development .I'd like to create a function on my model 'hotel.room' to show number of rooms created which is of type " Dormitory" .However, I have no idea of how to do it. Please help me if you know how I could do it. When I create a new room and select the bedtype as "Dormitory " It should show the number of rooms that is already created as type "Dormitory" . The count should be visible in the form view.
My Model :
class HotelRoom(models.Model):
_name = 'hotel.room'
_description = 'hotel room'
_rec_name = 'room_number'
room_number = fields.Integer('Room Number', required=True)
currency_id = fields.Many2one('res.currency', string='Currency')
room_rent = fields.Monetary('Room Rent')
tag = fields.Many2many('hotel.tags', string='Facilities')
bed_type = fields.Selection([
('single', 'Single'),
('double', 'Double'),
('dormitory', 'Dormitory')
], required=True, default='other')
Form view : I need to show the count here .
<record id="room_create_form" model="ir.ui.view">
<field name="name">hotel.room.form</field>
<field name="model">hotel.room</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<group>
<field name="room_number"/>
<field name="currency_id"/>
<field name="room_rent"/>
</group>
<group>
<field name="bed_type"/>
<field name="tag" widget="many2many_tags"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
You can do like create a method which will call on change
of field
bed_type
@api.onchange('bed_type')
def count_dormitory(self)
total_bed = self.env['hotel.room'].search_count([('bed_type', '=', 'dormitory')])
return total_bed
But here is a question where you want to display your total count in some other field if yes then create another field
and assign this field a value like following.
@api.onchange('bed_type')
def count_dormitory(self)
total_bed = self.env['hotel.room'].search_count([('bed_type', '=', 'dormitory')])
self.another_field = total_bed