Repository
OCA/vertical-education · module folder · Try on Runboat
Module version
3.0.0
Category
Education
Folder size
0.46 MB
License
LGPL-3
Application
Yes
Auto-installable
No
Website
http://www.openeducat.org
Last tracking update
2026-08-07 07:17:52
Authors
Tech Receptives
Maintainers
Tech Receptives
Committers
Maxime Chambreuil, Pedro M. Baeza, Stéphane Bidoul (ACSONE), Parthiv Patel, Ajay Chauhan, ajaychauhan727
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
openeducat_erp
Description

Code Analysis

Views touched (35)
XML IDNameModelTypeStatus
report_exam_student_lable report_exam_student_lable ir.ui.view qweb New
report_marksheet_report report_marksheet_report ir.ui.view qweb New
report_ticket report_ticket ir.ui.view qweb New
student_hall_ticket_form student.hall.ticket.form student.hall.ticket form New
view_op_exam_attendees_form op.exam.attendees.form op.exam.attendees form New
view_op_exam_attendees_search op.exam.attendees.search op.exam.attendees search New
view_op_exam_attendees_tree op.exam.attendees.tree op.exam.attendees tree New
view_op_exam_form op.exam.form op.exam form New
view_op_exam_room_form op.exam.room.form op.exam.room form New
view_op_exam_room_search op.exam.room.search op.exam.room search New
view_op_exam_room_tree op.exam.room.tree op.exam.room tree New
view_op_exam_search op.exam.search op.exam search New
view_op_exam_session_form op.exam.session.form op.exam.session form New
view_op_exam_session_search op.exam.session.search op.exam.session search New
view_op_exam_session_tree op.exam.session.tree op.exam.session tree New
view_op_exam_tree op.exam.tree op.exam tree New
view_op_exam_type_form op.exam.type.form op.exam.type form New
view_op_exam_type_search op.exam.type.search op.exam.type search New
view_op_exam_type_tree op.exam.type.tree op.exam.type tree New
view_op_grade_configuration_form op.grade.configuration.form op.grade.configuration form New
view_op_grade_configuration_tree op.grade.configuration.tree op.grade.configuration tree New
view_op_held_exam_form op.held.exam.form op.held.exam form New
view_op_marksheet_line_form op.marksheet.line.form op.marksheet.line form New
view_op_marksheet_line_search op.marksheet.line.search op.marksheet.line search New
view_op_marksheet_line_tree op.marksheet.line.tree op.marksheet.line tree New
view_op_marksheet_register_form op.marksheet.register.form op.marksheet.register form New
view_op_marksheet_register_search op.marksheet.register.search op.marksheet.register search New
view_op_marksheet_register_tree op.marksheet.register.tree op.marksheet.register tree New
view_op_result_line_form op.result.line.form op.result.line form New
view_op_result_line_search op.result.line.search op.result.line search New
view_op_result_line_tree op.result.line.tree op.result.line tree New
view_op_result_template_form op.result.template.form op.result.template form New
view_op_result_template_search op.result.template.search op.result.template search New
view_op_result_template_tree op.result.template.tree op.result.template tree New
view_op_room_distribution_form op.room.distribution.form op.room.distribution form New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (16)

New fields (12)
  • attendees_line One2many → op.exam.attendees
    readonly=True args: 'op.exam.attendees', 'exam_id', 'Attendees'
  • end_time Datetime
    required=True args: 'End Time'
  • exam_code Char
    required=True size=8 args: 'Exam Code'
  • min_marks Integer
    required=True args: 'Passing Marks'
  • name Char
    required=True size=256 args: 'Exam'
  • note Text
    args: 'Note'
  • responsible_id Many2many → op.faculty
    string='Responsible' args: 'op.faculty'
  • session_id Many2one → op.exam.session
    args: 'op.exam.session', 'Exam Session'
  • start_time Datetime
    required=True args: 'Start Time'
  • state Selection
    default='draft' readonly=True track_visibility='onchange' args: [('draft', 'Draft'), ('schedule', 'Scheduled'), ('held', 'Held'), ('result_updated', 'Result Updated'), ('cancel', 'Cancelled'), ('done', 'Done')], 'State'
  • subject_id Many2one → op.subject
    required=True args: 'op.subject', 'Subject'
  • total_marks Integer
    required=True args: 'Total Marks'
Public methods (4)
  • act_cancel(self)
    @api.multi
  • act_done(self)
    @api.multi
  • act_draft(self)
    @api.multi
  • act_result_updated(self)
    @api.multi

New fields (8)
  • batch_id Many2one → op.batch
    readonly=True args: 'op.batch', 'Batch'
  • course_id Many2one → op.course
    readonly=True args: 'op.course', 'Course'
  • exam_id Many2one → op.exam
    required=True args: 'op.exam', 'Exam'
  • marks Integer
    args: 'Marks'
  • note Text
    args: 'Note'
  • room_id Many2one → op.exam.room
    args: 'op.exam.room', 'Room'
  • status Selection
    default='present' required=True args: [('present', 'Present'), ('absent', 'Absent')], 'Status'
  • student_id Many2one → op.student
    required=True args: 'op.student', 'Student'
Public methods (1)
  • onchange_exam(self)
    @api.onchange('exam_id')

New fields (3)
  • capacity Integer
    required=True args: 'Capacity'
  • classroom_id Many2one → op.classroom
    required=True args: 'op.classroom', 'Classroom'
  • name Char
    required=True size=256 args: 'Name'
Public methods (2)
  • check_capacity(self)
    @api.constrains('capacity')
  • onchange_classroom(self)
    @api.onchange('classroom_id')

New fields (10)
  • batch_id Many2one → op.batch
    required=True args: 'op.batch', 'Batch'
  • course_id Many2one → op.course
    required=True args: 'op.course', 'Course'
  • end_date Date
    required=True args: 'End Date'
  • evolution_type Selection
    default='normal' required=True args: [('normal', 'Normal'), ('grade', 'Grade')], 'Evolution type'
  • exam_code Char
    required=True size=8 args: 'Exam Session Code'
  • exam_ids One2many → op.exam
    args: 'op.exam', 'session_id', 'Exam(s)'
  • exam_type Many2one → op.exam.type
    required=True args: 'op.exam.type', 'Exam Type'
  • name Char
    required=True size=256 args: 'Exam Session'
  • start_date Date
    required=True args: 'Start Date'
  • venue Many2one → res.partner
    args: 'res.partner', 'Venue'
Public methods (1)
  • onchange_course(self)
    @api.onchange('course_id')

New fields (2)
  • code Char
    required=True size=4 args: 'Code'
  • name Char
    required=True size=256 args: 'Name'
Public methods (0)

No public methods.

New fields (3)
  • max_per Integer
    required=True args: 'Maximum Percentage'
  • min_per Integer
    required=True args: 'Minimum Percentage'
  • result Char
    required=True args: 'Result to Display'
Public methods (0)

No public methods.

New fields (5)
  • attendees_line Many2many → op.exam.attendees
    string='Attendees' args: 'op.exam.attendees'
  • batch_id Many2one → op.batch
    args: 'op.batch', 'Batch'
  • course_id Many2one → op.course
    args: 'op.course', 'Course'
  • exam_id Many2one → op.exam
    args: 'op.exam', 'Exam'
  • subject_id Many2one → op.subject
    args: 'op.subject', 'Subject'
Public methods (2)
  • default_get(self, fields)
    @api.model
  • held_exam(self)
    @api.multi

New fields (8)
  • evolution_type Selection
    related='marksheet_reg_id.exam_session_id.evolution_type' store=True
  • grade Char
    compute='_compute_grade' readonly=True args: 'Grade'
  • marksheet_reg_id Many2one → op.marksheet.register
    args: 'op.marksheet.register', 'Marksheet Register'
  • percentage Float
    compute='_compute_percentage' args: 'Percentage'
  • result_line One2many → op.result.line
    args: 'op.result.line', 'marksheet_line_id', 'Results'
  • status Selection
    compute='_compute_status' args: [('pass', 'Pass'), ('fail', 'Fail')], 'Status'
  • student_id Many2one → op.student
    required=True args: 'op.student', 'Student'
  • total_marks Integer
    compute='_compute_total_marks' args: 'Total Marks'
Public methods (0)

No public methods.

New fields (9)
  • exam_session_id Many2one → op.exam.session
    required=True args: 'op.exam.session', 'Exam Session'
  • generated_by Many2one → res.users
    default=<expr> required=True args: 'res.users', 'Generated By'
  • generated_date Date
    default=fields.Date.today() required=True args: 'Generated Date'
  • marksheet_line One2many → op.marksheet.line
    args: 'op.marksheet.line', 'marksheet_reg_id', 'Marksheets'
  • name Char
    required=True size=256 args: 'Marksheet Register'
  • result_template_id Many2one → op.result.template
    required=True args: 'op.result.template', 'Result Template'
  • status Selection
    default='draft' required=True args: [('draft', 'Draft'), ('validated', 'Validated'), ('cancelled', 'Cancelled')], 'Status'
  • total_failed Integer
    compute='_compute_total_failed' args: 'Total Fail'
  • total_pass Integer
    compute='_compute_total_pass' args: 'Total Pass'
Public methods (0)

No public methods.

New fields (7)
  • evolution_type Selection
    related='exam_id.session_id.evolution_type' store=True
  • exam_id Many2one → op.exam
    required=True args: 'op.exam', 'Exam'
  • grade Char
    compute='_compute_grade' readonly=True args: 'Grade'
  • marks Integer
    required=True args: 'Marks'
  • marksheet_line_id Many2one → op.marksheet.line
    ondelete='cascade' args: 'op.marksheet.line', 'Marksheet Line'
  • status Selection
    compute='_compute_status' args: [('pass', 'Pass'), ('fail', 'Fail')], 'Status'
  • student_id Many2one → op.student
    required=True args: 'op.student', 'Student'
Public methods (0)

No public methods.

New fields (6)
  • evolution_type Selection
    related='exam_session_id.evolution_type' store=True
  • exam_session_id Many2one → op.exam.session
    required=True args: 'op.exam.session', 'Exam Session'
  • grade_ids Many2many → op.grade.configuration
    string='Grade Configuration' args: 'op.grade.configuration'
  • name Char
    required=True size=254 args: 'Name'
  • result_date Date
    default=fields.Date.today() required=True args: 'Result Date'
  • state Selection
    default='draft' args: [('draft', 'Draft'), ('result_generated', 'Result Generated')], 'State'
Public methods (1)
  • generate_result(self)
    @api.multi

New fields (12)
  • batch_id Many2one → op.batch
    args: 'op.batch', 'Batch'
  • course_id Many2one → op.course
    args: 'op.course', 'Course'
  • end_time Datetime
    args: 'End Time'
  • exam_id Many2one → op.exam
    args: 'op.exam', 'Exam'
  • exam_session Many2one → op.exam.session
    args: 'op.exam.session', 'Exam Session'
  • name Char
    args: 'Exam'
  • room_capacity Integer
    compute='_compute_get_room_capacity' args: 'Room Capacity'
  • room_ids Many2many → op.exam.room
    string='Exam Rooms' args: 'op.exam.room'
  • start_time Datetime
    args: 'Start Time'
  • student_ids Many2many → op.student
    String='Student' args: 'op.student'
  • subject_id Many2one → op.subject
    args: 'op.subject', 'Subject'
  • total_student Integer
    compute='_compute_get_total_student' args: 'Total Student'
Public methods (2)
  • default_get(self, fields)
    @api.model
  • schedule_exam(self)
    @api.multi

New fields (0)

No new fields.

Public methods (3)
  • format_list(self, temp_list)
  • get_student_data(self, docs)
  • render_html(self, docids, data=None)
    @api.model

New fields (0)

No new fields.

Public methods (5)
  • get_date(self, date)
  • get_lines(self, obj)
  • get_objects(self, objects)
  • get_total(self, marksheet_line)
  • render_html(self, docids, data=None)
    @api.model

New fields (0)

No new fields.

Public methods (4)
  • get_data(self, data)
  • get_date(self, exam_line)
  • get_subject(self, exam_session)
  • render_html(self, docids, data=None)
    @api.model

New fields (1)
  • exam_session_id Many2one → op.exam.session
    required=True args: 'op.exam.session', 'Exam Session'
Public methods (1)
  • print_report(self)
    @api.multi

Loading…