OpenEduCat Timetable

openeducat_timetable
REPOSITORY
REPOSITORYOCA/vertical-education
GIT
GIThttps://github.com/OCA/vertical-education.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/vertical-education/tree/10.0/openeducat_timetable
VERSION
VERSION 3.0.0
CATEGORY
CATEGORYEducation
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTech Receptives
MAINTAINERS
MAINTAINERSTech Receptives
COMMITTERS
COMMITTERSMaxime Chambreuil, Pedro M. Baeza, Stéphane Bidoul (ACSONE), Parthiv Patel, ajaychauhan727, Ajay Chauhan
WEBSITE
WEBSITEhttp://www.openeducat.org
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:20:03
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/vertical-education:
    - openeducat_classroom
    - openeducat_core
    - openeducat_facility
odoo/odoo:
    - board
    - base
    - web
    - document
    - hr
    - base_setup
    - web_kanban
    - mail
    - bus
    - web_tour
    - resource
    - website
    - web_editor
    - web_planner
    - product
    - decimal_precision
    - report
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (18)
XML IDNameModelTypeStatus
report_timetable_student_generate report_timetable_student_generate ir.ui.view qweb New
report_timetable_teacher_generate report_timetable_teacher_generate ir.ui.view qweb New
session_faculty_dashboard_form_view board.faculty.form board.board xpath Inherits openeducat_core.board_faculty_form
session_student_dashboard_form_view board.student.form board.board xpath Inherits openeducat_core.board_student_form
view_gen_time_table_line_form gen.time.table.line.form gen.time.table.line form New
view_gen_time_table_line_tree gen.time.table.line.tree gen.time.table.line tree New
view_generate_time_table_form generate.time.table.form generate.time.table form New
view_op_faculty_form_session_inherit op.faculty.form.session.inherit op.faculty notebook Inherits openeducat_core.view_op_faculty_form
view_op_session_calendar op.session.calendar op.session calendar New
view_op_session_form op.session.form op.session form New
view_op_session_search op.session.search op.session search New
view_op_session_tree op.session.tree op.session tree New
view_op_timing_form op.timing.form op.timing form New
view_op_timing_search op.timing.search op.timing search New
view_op_timing_tree op.timing.tree op.timing tree New
view_session_confirmation_form session.confirmation.form session.confirmation form New
view_session_kanban session.kanban op.session kanban New
view_time_table_report_form time.table.report.form time.table.report form New
Models touched (9)

New fields (6)
  • classroom_id Many2one → op.classroom
    args: 'op.classroom', 'Classroom'
  • day Selection
    required=True args: [('0', <expr>), ('1', <expr>), ('2', <expr>), ('3', <expr>), ('4', <expr>), ('5', <expr>)], 'Day'
  • faculty_id Many2one → op.faculty
    required=True args: 'op.faculty', 'Faculty'
  • gen_time_table Many2one → generate.time.table
    required=True args: 'generate.time.table', 'Time Table'
  • subject_id Many2one → op.subject
    required=True args: 'op.subject', 'Subject'
  • timing_id Many2one → op.timing
    required=True args: 'op.timing', 'Timing'
Public methods (0)

No public methods.

New fields (11)
  • 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'
  • start_date Date
    default=time.strftime('%Y-%m-01') required=True args: 'Start Date'
  • time_table_lines One2many → gen.time.table.line
    args: 'gen.time.table.line', 'gen_time_table', 'Time Table Lines'
  • time_table_lines_1 One2many → gen.time.table.line
    domain=[('day', '=', '0')] args: 'gen.time.table.line', 'gen_time_table', 'Time Table Lines'
  • time_table_lines_2 One2many → gen.time.table.line
    domain=[('day', '=', '1')] args: 'gen.time.table.line', 'gen_time_table', 'Time Table Lines'
  • time_table_lines_3 One2many → gen.time.table.line
    domain=[('day', '=', '2')] args: 'gen.time.table.line', 'gen_time_table', 'Time Table Lines'
  • time_table_lines_4 One2many → gen.time.table.line
    domain=[('day', '=', '3')] args: 'gen.time.table.line', 'gen_time_table', 'Time Table Lines'
  • time_table_lines_5 One2many → gen.time.table.line
    domain=[('day', '=', '4')] args: 'gen.time.table.line', 'gen_time_table', 'Time Table Lines'
  • time_table_lines_6 One2many → gen.time.table.line
    domain=[('day', '=', '5')] args: 'gen.time.table.line', 'gen_time_table', 'Time Table Lines'
Public methods (3)
  • act_gen_time_table(self)
    @api.multi
  • check_dates(self)
    @api.constrains('start_date', 'end_date')
  • onchange_course(self)
    @api.onchange('course_id')

New fields (1)
  • session_ids One2many → op.session
    args: 'op.session', 'faculty_id', 'Sessions'
Public methods (0)

No public methods.

New fields (13)
  • batch_id Many2one → op.batch
    required=True args: 'op.batch', 'Batch'
  • classroom_id Many2one → op.classroom
    args: 'op.classroom', 'Classroom'
  • color Integer
    args: 'Color Index'
  • course_id Many2one → op.course
    required=True args: 'op.course', 'Course'
  • end_datetime Datetime
    required=True args: 'End Time'
  • faculty_id Many2one → op.faculty
    required=True args: 'op.faculty', 'Faculty'
  • name Char
    compute='_compute_name' store=True string='Name'
  • start_datetime Datetime
    default=<expr> required=True args: 'Start Time'
  • state Selection
    default='draft' args: [('draft', 'Draft'), ('confirm', 'Confirmed'), ('done', 'Done'), ('cancel', 'Canceled')], 'Status'
  • subject_id Many2one → op.subject
    required=True args: 'op.subject', 'Subject'
  • timing_id Many2one → op.timing
    required=True track_visibility='onchange' args: 'op.timing', 'Timing'
  • type Selection
    translate=True args: week_days, 'Days'
  • user_ids Many2many → res.users
    compute='_compute_batch_users' store=True string='Users' args: 'res.users'
Public methods (11)
  • create(self, values)
    @api.model
  • get_emails(self, follower_ids)
    @api.multi
  • get_subject(self)
    @api.multi
  • lecture_cancel(self)
    @api.multi
  • lecture_confirm(self)
    @api.multi
  • lecture_done(self)
    @api.multi
  • lecture_draft(self)
    @api.multi
  • notify_user(self)
    @api.multi
  • onchange_course(self)
    @api.onchange('course_id')
  • onchange_start_date(self)
    @api.onchange('start_datetime')
  • write(self, vals)
    @api.multi@api.model

New fields (6)
  • am_pm Selection
    required=True args: [('am', 'AM'), ('pm', 'PM')], 'AM/PM'
  • duration Float
    args: 'Duration'
  • hour Selection
    required=True args: [('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10'), ('11', '11'), ('12', '12')], 'Hours'
  • minute Selection
    required=True args: [('00', '00'), ('15', '15'), ('30', '30'), ('45', '45')], 'Minute'
  • name Char
    required=True size=16 args: 'Name'
  • sequence Integer
    args: 'Sequence'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (4)
  • get_heading(self)
  • get_object(self, data)
  • render_html(self, docids, data=None)
    @api.model
  • sort_tt(self, data_list)

New fields (0)

No new fields.

Public methods (5)
  • get_full_name(self, data)
  • get_heading(self)
  • get_object(self, data)
  • render_html(self, docids, data=None)
    @api.model
  • sort_tt(self, data_list)

New fields (0)

No new fields.

Public methods (1)
  • state_confirmation(self)
    @api.multi

New fields (6)
  • batch_id Many2one → op.batch
    args: 'op.batch', 'Batch'
  • course_id Many2one → op.course
    args: 'op.course', 'Course'
  • end_date Date
    default=<expr>.strftime('%Y-%m-%d') required=True args: 'End Date'
  • faculty_id Many2one → op.faculty
    args: 'op.faculty', 'Faculty'
  • start_date Date
    default=<expr>.strftime('%Y-%m-%d') required=True args: 'Start Date'
  • state Selection
    default='faculty' required=True string='Select' args: [('faculty', 'Faculty'), ('student', 'Student')]
Public methods (2)
  • gen_time_table_report(self)
    @api.multi
  • onchange_course(self)
    @api.onchange('course_id')
REPOSITORY
REPOSITORYOCA/vertical-education
GIT
GIThttps://github.com/OCA/vertical-education.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/vertical-education/tree/9.0/openeducat_timetable
VERSION
VERSION 2.4.0
CATEGORY
CATEGORYOpenerp Education
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTech Receptives
MAINTAINERS
MAINTAINERSTech Receptives
COMMITTERS
COMMITTERSStéphane Bidoul (ACSONE), ajaychauhan727, siddharth-techreceptives
WEBSITE
WEBSITEhttp://www.openeducat.org
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:25
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/vertical-education:
    - openeducat_core
odoo/odoo:
    - board
    - base
    - web
    - document
    - hr
    - base_setup
    - web_kanban
    - mail
    - bus
    - resource
    - web_tip
    - website
    - web_editor
    - web_planner
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
        This module provide feature of Timetable.

    

Code Analysis

Views touched (17)
XML IDNameModelTypeStatus
report_timetable_student_generate report_timetable_student_generate ir.ui.view qweb New
report_timetable_teacher_generate report_timetable_teacher_generate ir.ui.view qweb New
timetable_faculty_dashboard_form_view board.faculty.form board.board xpath Inherits openeducat_core.board_faculty_form
timetable_student_dashboard_form_view board.faculty.form board.board xpath Inherits openeducat_core.board_student_form
view_gen_time_table_line_form gen.time.table.line.form gen.time.table.line form New
view_gen_time_table_line_tree gen.time.table.line.tree gen.time.table.line tree New
view_generate_time_table_form generate.time.table.form generate.time.table form New
view_op_faculty_form_timetable_inherit op.faculty.form.timetable.inherit op.faculty notebook Inherits openeducat_core.view_op_faculty_form
view_op_period_form op.period.form op.period form New
view_op_period_search op.period.search op.period search New
view_op_period_tree op.period.tree op.period tree New
view_op_timetable_calendar op.timetable.calendar op.timetable calendar New
view_op_timetable_form op.timetable.form op.timetable form New
view_op_timetable_search op.timetable.search op.timetable search New
view_op_timetable_tree op.timetable.tree op.timetable tree New
view_time_table_report_form time.table.report.form time.table.report form New
view_timetable_kanban timetable.kanban op.timetable kanban New
Models touched (8)

New fields (5)
  • day Selection
    required=True args: [('1', 'Monday'), ('2', 'Tuesday'), ('3', 'Wednesday'), ('4', 'Thursday'), ('5', 'Friday'), ('6', 'Saturday')], 'Day'
  • faculty_id Many2one → op.faculty
    required=True args: 'op.faculty', 'Faculty'
  • gen_time_table Many2one → generate.time.table
    required=True args: 'generate.time.table', 'Time Table'
  • period_id Many2one → op.period
    required=True args: 'op.period', 'Period'
  • subject_id Many2one → op.subject
    required=True args: 'op.subject', 'Subject'
Public methods (0)

No public methods.

New fields (11)
  • 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'
  • start_date Date
    default=time.strftime('%Y-%m-01') required=True args: 'Start Date'
  • time_table_lines One2many → gen.time.table.line
    args: 'gen.time.table.line', 'gen_time_table', 'Time Table Lines'
  • time_table_lines_1 One2many → gen.time.table.line
    domain=[('day', '=', '1')] args: 'gen.time.table.line', 'gen_time_table', 'Time Table Lines'
  • time_table_lines_2 One2many → gen.time.table.line
    domain=[('day', '=', '2')] args: 'gen.time.table.line', 'gen_time_table', 'Time Table Lines'
  • time_table_lines_3 One2many → gen.time.table.line
    domain=[('day', '=', '3')] args: 'gen.time.table.line', 'gen_time_table', 'Time Table Lines'
  • time_table_lines_4 One2many → gen.time.table.line
    domain=[('day', '=', '4')] args: 'gen.time.table.line', 'gen_time_table', 'Time Table Lines'
  • time_table_lines_5 One2many → gen.time.table.line
    domain=[('day', '=', '5')] args: 'gen.time.table.line', 'gen_time_table', 'Time Table Lines'
  • time_table_lines_6 One2many → gen.time.table.line
    domain=[('day', '=', '6')] args: 'gen.time.table.line', 'gen_time_table', 'Time Table Lines'
Public methods (4)
  • act_gen_time_table(self)
    @api.one
  • check_dates(self)
    @api.constrains('start_date', 'end_date')
  • gen_datewise(self, line, st_date, en_date, self_obj)
    @api.one
  • onchange_course(self)
    @api.onchange('course_id')

New fields (1)
  • timetable_ids One2many → op.timetable
    args: 'op.timetable', 'faculty_id', 'TimeTables'
Public methods (0)

No public methods.

New fields (6)
  • am_pm Selection
    required=True args: [('am', 'AM'), ('pm', 'PM')], 'AM/PM'
  • duration Float
    args: 'Duration'
  • hour Selection
    required=True args: [('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10'), ('11', '11'), ('12', '12')], 'Hours'
  • minute Selection
    required=True args: [('00', '00'), ('15', '15'), ('30', '30'), ('45', '45')], 'Minute'
  • name Char
    required=True size=16 args: 'Name'
  • sequence Integer
    args: 'Sequence'
Public methods (0)

No public methods.

New fields (9)
  • batch_id Many2one → op.batch
    required=True args: 'op.batch', 'Batch'
  • color Integer
    args: 'Color Index'
  • course_id Many2one → op.course
    required=True args: 'op.course', 'Course'
  • end_datetime Datetime
    required=True args: 'End Time'
  • faculty_id Many2one → op.faculty
    required=True args: 'op.faculty', 'Faculty'
  • period_id Many2one → op.period
    required=True args: 'op.period', 'Period'
  • start_datetime Datetime
    default=<expr> required=True args: 'Start Time'
  • subject_id Many2one → op.subject
    required=True args: 'op.subject', 'Subject'
  • type Selection
    args: [('Monday', 'Monday'), ('Tuesday', 'Tuesday'), ('Wednesday', 'Wednesday'), ('Thursday', 'Thursday'), ('Friday', 'Friday'), ('Saturday', 'Saturday')], 'Days'
Public methods (2)
  • onchange_course(self)
    @api.onchange('course_id')
  • onchange_start_date(self)
    @api.onchange('start_datetime')

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (6)
  • batch_id Many2one → op.batch
    args: 'op.batch', 'Batch'
  • course_id Many2one → op.course
    args: 'op.course', 'Course'
  • end_date Date
    default=<expr>.strftime('%Y-%m-%d') required=True args: 'End Date'
  • faculty_id Many2one → op.faculty
    args: 'op.faculty', 'Faculty'
  • start_date Date
    default=<expr>.strftime('%Y-%m-%d') required=True args: 'Start Date'
  • state Selection
    default='faculty' required=True string='Select' args: [('faculty', 'Faculty'), ('student', 'Student')]
Public methods (2)
  • gen_time_table_report(self)
    @api.multi
  • onchange_course(self)
    @api.onchange('course_id')