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 ดังภาพ

มีข้อผิดพลาดในการสร้างรูปย่อ: ไฟล์สูญหาย