2017-02-21 7 views
0

Я хочу создать гистограмму (график) в odoo 10, которая может отображать количество студентов, обучающихся в каждом курсе. С этой базой данных python, как я могу ее реализовать? В этом типе просмотра нет примеров кода в Интернете.Создать диаграмму в odoo 10.0

class Student(models.Model): 
    _name = "studentmanagement.student" 

    id= fields.Char(required=True, index=True) 
    full_name= fields.Char(required=True, index=True) 
    gender = fields.Char() 
    birthday = fields.Char(required=True) 
    address = fields.Char(required=True) 
    course_inscription = fields.Many2many('studentmanagement.course',string = 'inscription') 
    _sql_constraints = [('id_unique', 'UNIQUE(id)', 'Two students can not have the same ID!')] 


class course(models.Model): 
    _name = "studentmanagement.course" 

    code = fields.Char(required=True, index=True) 
    course_name = fields.Char(required=True, index=True) 
    credits = fields.Integer(required=True) 
    nstudent= fields.Integer(compute='_compute_percentage_students_course', store=True) 
    _sql_constraints = [('code_unique', 'UNIQUE(code)', 'Two courses can not have the same ID!')] 

    @api.depends('percentage','course_inscription') 
    def _compute_percentage_students_course(self): 
     for record in self: 
      record.nstudent = len(record.course_inscription) 

Большое спасибо за помощь!

ответ

1

Это вид графика:

<graph string="Sales Orders"> 
        <field name="partner_id"/> 
        <field name="amount_total" type="measure"/> 
</graph> 

Этот вид графа имеет два поля. В зависимости от типа диаграммы они будут отображаться соответственно.

Вы должны создать поле, которое будет будет содержать вычисленный процент, как:

percentage = fields.Float(compute='_compute_percentage_students_course' store=True)

В пределах этого _compute_percentage_students_course вы рассчитаете и установить расчет будет значение percentage поля (проверка вычисленного раздел полей на официальном documentation о том, как правильно создать вычисленное поле)

Кроме того, отметьте documentation на графических представлениях, в которых рассказывается, как создается граф, типы графиков, которые вы можете иметь и т. д. T он ниже должен работать для вас:

<graph string="Sales Orders"> 
         <field name="full_name"/> 
         <field name="percentage" type="measure"/> 
    </graph> 
+0

Защиту _compute_percentage_students_course (Я): для г в себя: nostudent = Len (r.course_inscription) r.percentage = nostudent/100 Она не работает, в других целях конечно, формы, все его достоинства равны 0! –

+0

Я не знаю, почему этот код не работает! –

+1

Графическое представление работает, если вычисленные поля сохраняются. Поэтому убедитесь, что вы положили 'store = True' в определение вашего вычисленного поля. –

Смежные вопросы