Repository
OCA/vertical-education · module folder · Try on Runboat
Module version
3.0.0
Category
Education
Folder size
0.62 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 (44)
XML IDNameModelTypeStatus
issue_media_form issue.media.form issue.media form New
library_student_dashboard_form_view board.faculty.form board.board form Inherits openeducat_core.board_student_form
report_library_card_barcode report_library_card_barcode ir.ui.view qweb New
report_media_barcode report_media_barcode ir.ui.view qweb New
report_student_library_card report_student_library_card ir.ui.view qweb New
reserve_media_form reserve.media.form reserve.media form New
return_media_form return.media.form return.media form New
view_media_unit_form op.media.unit.form op.media.unit form New
view_media_unit_search op.media.unit.search op.media.unit search New
view_media_unit_tree op.media.unit.tree op.media.unit tree New
view_op_author_form op.author.form op.author form New
view_op_author_search op.author.search op.author search New
view_op_author_tree op.author.tree op.author tree New
view_op_faculty_form_library_inherit op.faculty.form.library.inherit op.faculty form Inherits openeducat_core.view_op_faculty_form
view_op_library_card_form op.library.card.form op.library.card form New
view_op_library_card_search op.library.card.search op.library.card search New
view_op_library_card_tree op.library.card.tree op.library.card tree New
view_op_library_card_type_form op.library.card.type.form op.library.card.type form New
view_op_library_card_type_search op.library.card.type.search op.library.card.type search New
view_op_library_card_type_tree op.library.card.type.tree op.library.card.type tree New
view_op_media_form op.media.form op.media form New
view_op_media_movement_form op.media.movement.form op.media.movement form New
view_op_media_movement_search op.media.movement.search op.media.movement search New
view_op_media_movement_tree op.media.movement.tree op.media.movement tree New
view_op_media_queue_form op.media.queue.form op.media.queue form New
view_op_media_queue_search op.media.queue.search op.media.queue search New
view_op_media_queue_tree op.media.queue.tree op.media.queue tree New
view_op_media_search op.media.search op.media search New
view_op_media_tree op.media.tree op.media tree New
view_op_media_type_form op.media.type.form op.media.type form New
view_op_media_type_search op.media.type.search op.media.type search New
view_op_media_type_tree op.media.type.tree op.media.type tree New
view_op_publisher_form op.publisher.form op.publisher form New
view_op_publisher_search op.publisher.search op.publisher search New
view_op_publisher_tree op.publisher.tree op.publisher tree New
view_op_purchase_form op.media.purchase.form op.media.purchase form New
view_op_purchase_search op.media.purchase.search op.media.purchase search New
view_op_purchase_tree op.media.purchase.tree op.media.purchase tree New
view_op_student_form_library_inherit op.student.form.library.inherit op.student form Inherits openeducat_core.view_op_student_form
view_op_student_library_form op.student.form op.student form New
view_op_student_tree_library_inherit op.student.tree.library.inherit op.student tree Inherits openeducat_core.view_op_student_tree
view_op_tag_form op.tag.form op.tag form New
view_op_tag_search op.tag.search op.tag search New
view_op_tag_tree op.tag.tree op.tag tree New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (19)

New fields (0)

No new fields.

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

New fields (8)
  • faculty_id Many2one → op.faculty
    args: 'op.faculty', 'Faculty'
  • issued_date Date
    default=fields.Date.today() required=True args: 'Issued Date'
  • library_card_id Many2one → op.library.card
    required=True args: 'op.library.card', 'Library Card'
  • media_id Many2one → op.media
    required=True args: 'op.media', 'Media'
  • media_unit_id Many2one → op.media.unit
    required=True args: 'op.media.unit', 'Media Unit'
  • return_date Date
    required=True args: 'Return Date'
  • student_id Many2one → op.student
    args: 'op.student', 'Student'
  • type Selection
    default='student' required=True args: [('student', 'Student'), ('faculty', 'Faculty')], 'Type'
Public methods (3)
  • check_max_issue(self, student_id, library_card_id)
  • do_issue(self)
    @api.multi
  • onchange_library_card_id(self)
    @api.onchange('library_card_id')

New fields (3)
  • address Many2one → res.partner
    args: 'res.partner', 'Address'
  • media_ids Many2many → op.media
    string='media(s)' args: 'op.media'
  • name Char
    required=True size=128 args: 'Name'
Public methods (0)

No public methods.

New fields (2)
  • library_card_id Many2one → op.library.card
    args: 'op.library.card', 'Library Card'
  • media_movement_lines One2many → op.media.movement
    args: 'op.media.movement', 'faculty_id', 'Movements'
Public methods (0)

No public methods.

New fields (7)
  • faculty_id Many2one → op.faculty
    args: 'op.faculty', 'Faculty'
  • issue_date Date
    default=fields.Date.today() required=True args: 'Issue Date'
  • library_card_type_id Many2one → op.library.card.type
    required=True args: 'op.library.card.type', 'Card Type'
  • number Char
    readonly=True size=256 args: 'Number'
  • partner_id Many2one → res.partner
    required=True args: 'res.partner', 'Student/Faculty'
  • student_id Many2one → op.student
    args: 'op.student', 'Student'
  • type Selection
    default='student' required=True args: [('student', 'Student'), ('faculty', 'Faculty')], 'Type'
Public methods (3)
  • create(self, vals)
    @api.model
  • onchange_student_faculty(self)
    @api.onchange('student_id', 'faculty_id')
  • onchange_type(self)
    @api.onchange('type')

New fields (4)
  • allow_media Integer
    required=True size=10 args: 'No of medias Allowed'
  • duration Integer
    help='Duration in terms of Number of Lead Days' required=True args: 'Duration'
  • name Char
    required=True size=256 args: 'Name'
  • penalty_amt_per_day Float
    required=True args: 'Penalty Amount per Day'
Public methods (1)
  • check_details(self)
    @api.constrains('allow_media', 'duration', 'penalty_amt_per_day')

New fields (14)
  • author_ids Many2many → op.author
    required=True string='Author(s)' args: 'op.author'
  • course_ids Many2many → op.course
    string='Course' args: 'op.course'
  • description Text
    args: 'Description'
  • edition Char
    args: 'Edition'
  • internal_code Char
    size=64 args: 'Internal Code'
  • isbn Char
    size=64 args: 'ISBN Code'
  • media_type_id Many2one → op.media.type
    args: 'op.media.type', 'Media Type'
  • movement_line One2many → op.media.movement
    args: 'op.media.movement', 'media_id', 'Movements'
  • name Char
    required=True size=128 args: 'Title'
  • publisher_ids Many2many → op.publisher
    required=True string='Publisher(s)' args: 'op.publisher'
  • queue_ids One2many → op.media.queue
    args: 'op.media.queue', 'media_id', 'Media Queue'
  • subject_ids Many2many → op.subject
    string='Subjects' args: 'op.subject'
  • tags Many2many → op.tag
    string='Tag(s)' args: 'op.tag'
  • unit_ids One2many → op.media.unit
    args: 'op.media.unit', 'media_id', 'Units'
Public methods (0)

No public methods.

New fields (16)
  • actual_return_date Date
    args: 'Actual Return Date'
  • faculty_id Many2one → op.faculty
    args: 'op.faculty', 'Faculty'
  • invoice_id Many2one → account.invoice
    readonly=True args: 'account.invoice', 'Invoice'
  • issued_date Date
    default=fields.Date.today() required=True args: 'Issued Date'
  • library_card_id Many2one → op.library.card
    required=True track_visibility='onchange' args: 'op.library.card', 'Library Card'
  • media_id Many2one → op.media
    required=True args: 'op.media', 'Media'
  • media_type_id Many2one
    related='media_id.media_type_id' store=True string='Media Type'
  • media_unit_id Many2one → op.media.unit
    required=True track_visibility='onchange' args: 'op.media.unit', 'Media Unit'
  • partner_id Many2one → res.partner
    track_visibility='onchange' args: 'res.partner', 'Person'
  • penalty Float
    args: 'Penalty'
  • reserver_name Char
    size=256 args: 'Person Name'
  • return_date Date
    required=True args: 'Due Date'
  • state Selection
    default='available' track_visibility='onchange' args: [('available', 'Available'), ('reserve', 'Reserved'), ('issue', 'Issued'), ('lost', 'Lost'), ('return', 'Returned'), ('return_done', 'Returned Done')], 'Status'
  • student_id Many2one → op.student
    args: 'op.student', 'Student'
  • type Selection
    required=True args: [('student', 'Student'), ('faculty', 'Faculty')], 'Student/Faculty'
  • user_id Many2one → res.users
    related='student_id.user_id' string='Users' args: 'res.users'
Public methods (7)
  • calculate_penalty(self)
    @api.multi
  • check_actual_return_date(self)
    @api.constrains('issued_date', 'actual_return_date')
  • create_penalty_invoice(self)
    @api.multi
  • issue_media(self)
    @api.multi
    function to issue media
  • onchange_library_card_id(self)
    @api.onchange('library_card_id')
  • onchange_media_unit_id(self)
    @api.onchange('media_unit_id')
  • return_media(self, return_date)
    @api.multi

New fields (9)
  • author Char
    required=True size=256 track_visibility='onchange' args: 'Author(s)'
  • course_ids Many2one → op.course
    required=True track_visibility='onchange' args: 'op.course', 'Course'
  • edition Char
    args: 'Edition'
  • media_type_id Many2one → op.media.type
    args: 'op.media.type', 'Media Type'
  • name Char
    required=True size=128 args: 'Title'
  • publisher Char
    size=256 args: 'Publisher(s)'
  • requested_id Many2one → res.partner
    default=<expr> args: 'res.partner', 'Requested By'
  • state Selection
    default='draft' readonly=True track_visibility='onchange' args: [('draft', 'Draft'), ('request', 'Requested'), ('reject', 'Rejected'), ('accept', 'Accepted')], 'State'
  • subject_ids Many2one → op.subject
    required=True track_visibility='onchange' args: 'op.subject', 'Subject'
Public methods (3)
  • act_accept(self)
    @api.multi
  • act_reject(self)
    @api.multi
  • act_requested(self)
    @api.multi

New fields (7)
  • date_from Date
    default=fields.Date.today() required=True args: 'From Date'
  • date_to Date
    required=True args: 'To Date'
  • media_id Many2one → op.media
    required=True track_visibility='onchange' args: 'op.media', 'Media'
  • name Char
    copy=False default='/' readonly=True args: 'Sequence No'
  • partner_id Many2one → res.partner
    args: 'res.partner', 'Student/Faculty'
  • state Selection
    copy=False default='request' track_visibility='onchange' args: [('request', 'Request'), ('accept', 'Accepted'), ('reject', 'Rejected')], 'Status'
  • user_id Many2one → res.users
    default=<expr> readonly=True args: 'res.users', 'User'
Public methods (5)
  • create(self, vals)
    @api.model
  • do_accept(self)
    @api.multi
  • do_reject(self)
    @api.multi
  • do_request_again(self)
    @api.multi
  • onchange_user(self)
    @api.onchange('user_id')

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

No public methods.

New fields (6)
  • barcode Char
    size=20 args: 'Barcode'
  • media_id Many2one → op.media
    required=True track_visibility='onchange' args: 'op.media', 'Media'
  • media_type_id Many2one
    related='media_id.media_type_id' store=True string='Media Type'
  • movement_lines One2many → op.media.movement
    args: 'op.media.movement', 'media_unit_id', 'Movements'
  • name Char
    required=True args: 'Name'
  • state Selection
    default='available' track_visibility='onchange' args: [('available', 'Available'), ('issue', 'Issued')], 'State'
Public methods (2)
  • create(self, vals)
    @api.model
  • name_search(self, name, args=None, operator='ilike', limit=100)
    @api.model

New fields (3)
  • address_id Many2one → res.partner
    args: 'res.partner', 'Address'
  • media_ids Many2many → op.media
    string='media(s)' args: 'op.media'
  • name Char
    required=True size=20 args: 'Name'
Public methods (0)

No public methods.

New fields (2)
  • library_card_id Many2one → op.library.card
    args: 'op.library.card', 'Library Card'
  • media_movement_lines One2many → op.media.movement
    args: 'op.media.movement', 'student_id', 'Movements'
Public methods (0)

No public methods.

New fields (1)
  • name Char
    required=True size=64 args: 'Name'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • get_barcode(self, type, value, width=350, height=60, hr=1)
    genrating image for barcode
  • render_html(self, docids, data=None)
    @api.model

New fields (0)

No new fields.

Public methods (2)
  • get_barcode(self, type, value, width=350, height=60, hr=1)
    genrating image for barcode
  • render_html(self, docids, data=None)
    @api.model

New fields (1)
  • partner_id Many2one → res.partner
    required=True args: 'res.partner'
Public methods (1)
  • set_partner(self)
    @api.multi

New fields (3)
  • actual_return_date Date
    default=<expr> required=True args: 'Actual Return Date'
  • media_id Many2one → op.media
    readonly=True args: 'op.media', 'Media'
  • media_unit_id Many2one → op.media.unit
    readonly=True required=True args: 'op.media.unit', 'Media Unit'
Public methods (1)
  • do_return(self)
    @api.multi

Loading…