| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/vertical-education |
| GIT | |
| GIT | https://github.com/OCA/vertical-education.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/vertical-education/tree/10.0/openeducat_library |
| VERSION | |
| VERSION | 3.0.0 |
| CATEGORY | |
| CATEGORY | Education |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tech Receptives |
| MAINTAINERS | |
| MAINTAINERS | Tech Receptives |
| COMMITTERS | |
| COMMITTERS | Maxime Chambreuil, Pedro M. Baeza, Stéphane Bidoul (ACSONE), Parthiv Patel, ajaychauhan727, Ajay Chauhan |
| WEBSITE | |
| WEBSITE | http://www.openeducat.org |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:20:03 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/vertical-education: - openeducat_core - openeducat_activity odoo/odoo: - board - base - web - document - hr - base_setup - web_kanban - bus - web_tour - resource - website - web_editor - web_planner - account_accountant - account - product - decimal_precision - report - analytic |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
issue_media_form |
issue.media.form | issue.media | form | New |
library_student_dashboard_form_view |
board.faculty.form | board.board | xpath | 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 | notebook | 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 | notebook | 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 | field | 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 |
No new fields.
Public methods (1)action_invoice_paid(self)
faculty_id
Many2one → op.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
type
Selection
default='student'
required=True
args: [('student', 'Student'), ('faculty', 'Faculty')], 'Type'
check_max_issue(self, student_id, library_card_id)
do_issue(self)
onchange_library_card_id(self)
address
Many2one → res.partner
media_ids
Many2many → op.media
string='media(s)'
args: 'op.media'
name
Char
required=True
size=128
args: 'Name'
No public methods.
library_card_id
Many2one → op.library.card
media_movement_lines
One2many → op.media.movement
No public methods.
faculty_id
Many2one → op.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
type
Selection
default='student'
required=True
args: [('student', 'Student'), ('faculty', 'Faculty')], 'Type'
create(self, vals)
onchange_student_faculty(self)
onchange_type(self)
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'
check_details(self)
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
edition
Char
internal_code
Char
size=64
args: 'Internal Code'
isbn
Char
size=64
args: 'ISBN Code'
media_type_id
Many2one → op.media.type
movement_line
One2many → op.media.movement
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
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
No public methods.
actual_return_date
Date
faculty_id
Many2one → op.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
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
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'
calculate_penalty(self)
check_actual_return_date(self)
create_penalty_invoice(self)
issue_media(self)
onchange_library_card_id(self)
onchange_media_unit_id(self)
return_media(self, return_date)
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
media_type_id
Many2one → op.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'
act_accept(self)
act_reject(self)
act_requested(self)
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
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'
create(self, vals)
do_accept(self)
do_reject(self)
do_request_again(self)
onchange_user(self)
code
Char
required=True
size=64
args: 'Code'
name
Char
required=True
size=64
args: 'Name'
No public methods.
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
name
Char
required=True
args: 'Name'
state
Selection
default='available'
track_visibility='onchange'
args: [('available', 'Available'), ('issue', 'Issued')], 'State'
create(self, vals)
name_search(self, name, args=None, operator='ilike', limit=100)
address_id
Many2one → res.partner
media_ids
Many2many → op.media
string='media(s)'
args: 'op.media'
name
Char
required=True
size=20
args: 'Name'
No public methods.
library_card_id
Many2one → op.library.card
media_movement_lines
One2many → op.media.movement
No public methods.
name
Char
required=True
size=64
args: 'Name'
No public methods.
No new fields.
Public methods (2)get_barcode(self, type, value, width=350, height=60, hr=1)
render_html(self, docids, data=None)
No new fields.
Public methods (2)get_barcode(self, type, value, width=350, height=60, hr=1)
render_html(self, docids, data=None)
partner_id
Many2one → res.partner
required=True
args: 'res.partner'
set_partner(self)
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'
do_return(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/vertical-education |
| GIT | |
| GIT | https://github.com/OCA/vertical-education.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/vertical-education/tree/9.0/openeducat_library |
| VERSION | |
| VERSION | 2.4.0 |
| CATEGORY | |
| CATEGORY | Openerp Education |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tech Receptives |
| MAINTAINERS | |
| MAINTAINERS | Tech Receptives |
| COMMITTERS | |
| COMMITTERS | Stéphane Bidoul (ACSONE), ajaychauhan727, siddharth-techreceptives |
| WEBSITE | |
| WEBSITE | http://www.openeducat.org |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-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 - 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 Library Management.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
board_libray_form |
board.libray.form | board.board | form | New |
issue_book_form |
issue.book.form | issue.book | form | New |
report_book_barcode |
report_book_barcode | ir.ui.view | qweb | New |
report_student_library_card |
report_student_library_card | ir.ui.view | qweb | New |
reserve_book_form |
reserve.book.form | reserve.book | form | New |
return_book_form |
return.book.form | return.book | form | New |
return_date_form |
return.date.form | return.date | form | New |
view_book_unit_form |
op.book.unit.form | op.book.unit | form | New |
view_book_unit_search |
op.book.unit.search | op.book.unit | search | New |
view_book_unit_tree |
op.book.unit.tree | op.book.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_book_form |
op.book.form | op.book | form | New |
view_op_book_movement_form |
op.book.movement.form | op.book.movement | form | New |
view_op_book_movement_search |
op.book.movement.search | op.book.movement | search | New |
view_op_book_movement_tree |
op.book.movement.tree | op.book.movement | tree | New |
view_op_book_queue_form |
op.book.queue.form | op.book.queue | form | New |
view_op_book_queue_search |
op.book.queue.search | op.book.queue | search | New |
view_op_book_queue_tree |
op.book.queue.tree | op.book.queue | tree | New |
view_op_book_search |
op.book.search | op.book | search | New |
view_op_book_tree |
op.book.tree | op.book | tree | New |
view_op_faculty_form_library_inherit |
op.faculty.form.library.inherit | op.faculty | notebook | 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_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.book.purchase.form | op.book.purchase | form | New |
view_op_purchase_search |
op.book.purchase.search | op.book.purchase | search | New |
view_op_purchase_tree |
op.book.purchase.tree | op.book.purchase | tree | New |
view_op_student_form_library_inherit |
op.student.form.library.inherit | op.student | notebook | Inherits openeducat_core.view_op_student_form |
view_op_student_tree_library_inherit |
op.student.tree.library.inherit | op.student | field | 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 |
book_id
Many2one → op.book
required=True
args: 'op.book', 'Book'
book_unit_id
Many2one → op.book.unit
required=True
args: 'op.book.unit', 'Book Unit'
faculty_id
Many2one → op.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'
return_date
Date
required=True
args: 'Return Date'
student_id
Many2one → op.student
type
Selection
default='student'
required=True
args: [('student', 'Student'), ('faculty', 'Faculty')], 'Type'
check_max_issue(self, student_id, library_card_id)
do_issue(self)
onchange_library_card_id(self)
address
Many2one → res.partner
book_ids
Many2many → op.book
string='Book(s)'
args: 'op.book'
name
Char
required=True
size=128
args: 'Name'
No public methods.
author_ids
Many2many → op.author
required=True
string='Author(s)'
args: 'op.author'
course_ids
Many2many → op.course
required=True
string='Course'
args: 'op.course'
description
Text
edition
Char
internal_code
Char
size=64
args: 'Internal Code'
isbn
Char
size=64
args: 'ISBN Code'
movement_line
One2many → op.book.movement
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.book.queue
subject_ids
Many2many → op.subject
required=True
string='Subjects'
args: 'op.subject'
tags
Many2many → op.tag
string='Tag(s)'
args: 'op.tag'
unit_ids
One2many → op.book.unit
No public methods.
actual_return_date
Date
book_id
Many2one → op.book
required=True
args: 'op.book', 'Book'
book_unit_id
Many2one → op.book.unit
required=True
track_visibility='onchange'
args: 'op.book.unit', 'Book Unit'
faculty_id
Many2one → op.faculty
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'
partner_id
Many2one → res.partner
track_visibility='onchange'
args: 'res.partner', 'Person'
penalty
Float
reserver_name
Char
size=256
args: 'Person Name'
return_date
Date
required=True
args: 'Return Date'
state
Selection
default='available'
track_visibility='onchange'
args: [('available', 'Available'), ('reserve', 'Reserved'), ('issue', 'Issued'), ('lost', 'Lost'), ('return', 'Returned')], 'Status'
student_id
Many2one → op.student
type
Selection
required=True
args: [('student', 'Student'), ('faculty', 'Faculty')], 'Student/Faculty'
calculate_penalty(self)
check_actual_return_date(self)
do_book_reservation(self)
issue_book(self)
onchange_book_unit_id(self)
onchange_library_card_id(self)
return_book(self)
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
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
select=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'
act_accept(self)
act_reject(self)
act_requested(self)
book_id
Many2one → op.book
required=True
track_visibility='onchange'
args: 'op.book', 'Book'
date_from
Date
default=fields.Date.today()
required=True
args: 'From Date'
date_to
Date
required=True
args: 'To Date'
name
Char
copy=False
default='/'
readonly=True
args: 'Sequence No'
partner_id
Many2one → res.partner
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'
create(self, vals)
do_accept(self)
do_reject(self)
do_request_again(self)
onchange_user(self)
barcode
Char
size=20
args: 'Barcode'
book_id
Many2one → op.book
required=True
track_visibility='onchange'
args: 'op.book', 'Book'
movement_lines
One2many → op.book.movement
name
Char
required=True
args: 'Name'
state
Selection
default='available'
track_visibility='onchange'
args: unit_states, 'State'
No public methods.
book_movement_lines
One2many → op.book.movement
library_card_id
Many2one → op.library.card
No public methods.
faculty_id
Many2one → op.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
required=True
size=256
args: 'Number'
partner_id
Many2one → res.partner
required=True
args: 'res.partner', 'Student/Faculty'
student_id
Many2one → op.student
type
Selection
default='student'
required=True
args: [('student', 'Student'), ('faculty', 'Faculty')], 'Type'
No public methods.
allow_book
Integer
required=True
size=10
args: 'No of Books 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'
check_details(self)
address_id
Many2one → res.partner
book_ids
Many2many → op.book
string='Book(s)'
args: 'op.book'
name
Char
required=True
size=20
args: 'Name'
No public methods.
book_movement_lines
One2many → op.book.movement
library_card_id
Many2one → op.library.card
No public methods.
name
Char
required=True
size=64
args: 'Name'
No public methods.
No new fields.
Public methods (0)No public methods.
partner_id
Many2one → res.partner
required=True
args: 'res.partner'
set_partner(self)
actual_return_date
Date
default=<expr>
required=True
args: 'Actual Return Date'
book_id
Many2one → op.book
readonly=True
args: 'op.book', 'Book'
book_unit_id
Many2one → op.book.unit
readonly=True
required=True
args: 'op.book.unit', 'Book Unit'
do_return(self)
actual_return_date
Date
default=<expr>
required=True
args: 'Actual Return Date'
assign_return_date(self)