Tutorial Odoo 9.0 Part 7 : Computed fields and default values
จาก Morange Wiki
รุ่นแก้ไขเมื่อ 05:06, 15 กรกฎาคม 2559 โดย Sirawich (คุย | มีส่วนร่วม) (หน้าที่ถูกสร้างด้วย ' <h2>Computed fields and default values</h2> * <h3>Dependencies</h3> แก้ไขไฟล์ดังนี้ <br/><br/> openacade...')
Computed fields and default values
Dependencies
แก้ไขไฟล์ดังนี้
openacademy/models.py
course_id = fields.Many2one('openacademy.course', ondelete='cascade', string="Course", required=True) attendee_ids = fields.Many2many('res.partner', string="Attendees") taken_seats = fields.Float(string="Taken seats", compute='_taken_seats') @api.depends('seats', 'attendee_ids') def _taken_seats(self): for r in self: if not r.seats: r.taken_seats = 0.0 else: r.taken_seats = 100.0 * len(r.attendee_ids) / r.seats
ส่วนนี้ จะเป็นการสร้าง method เพื่อคำนวนค่าของ taken seats
โดยจะคำนวนจาก จำนวน attendee (ผู้ที่ลงทะเบียน) ใน session นั้นๆ และ seats (จำนวนที่นั่งสูงสุด) ที่รองรับ ของ session นั้นๆ
จากนั้นทำการคิดเป็นเปอร์เซ็นต์
มีข้อผิดพลาดในการสร้างรูปย่อ: ไฟล์สูญหาย
openacademy/views/openacademy.xml
<field name="start_date"/> <field name="duration"/> <field name="seats"/> <field name="taken_seats" widget="progressbar"/> </group> </group> <label for="attendee_ids"/>
ส่วนนี้เป็นการเพิ่ม taken seats ใน form ของ session ดังภาพ
มีข้อผิดพลาดในการสร้างรูปย่อ: ไฟล์สูญหาย
openacademy/views/openacademy.xml
<tree string="Session Tree"> <field name="name"/> <field name="course_id"/> <field name="taken_seats" widget="progressbar"/> </tree> </field> </record>
และส่วนนี้เป็นการเพิ่ม taken seats ใน tree view ของ session ดังภาพ
มีข้อผิดพลาดในการสร้างรูปย่อ: ไฟล์สูญหาย