From 53c479b29504ab46cbc61662b81ba428aca2adc0 Mon Sep 17 00:00:00 2001 From: Jan Floyd Benedict <135410007+BennyCodes26@users.noreply.github.com> Date: Wed, 11 Feb 2026 06:18:45 +0000 Subject: [PATCH 1/3] Here are the changes I made to do the Pre Assessment Excercise. --- addons_library/library_extensions/__init__.py | 3 ++ .../library_extensions/__manifest__.py | 27 ++++++++++++ .../library_extensions/models/__init__.py | 4 ++ .../library_extensions/models/library_book.py | 44 +++++++++++++++++++ .../models/library_book_category.py | 14 ++++++ .../security/ir.model.access.csv | 3 ++ .../views/library_book_category_views.xml | 18 ++++++++ .../views/library_book_views.xml | 26 +++++++++++ .../views/library_menus.xml | 9 ++++ config/odoo.conf | 1 + 10 files changed, 149 insertions(+) create mode 100644 addons_library/library_extensions/__init__.py create mode 100644 addons_library/library_extensions/__manifest__.py create mode 100644 addons_library/library_extensions/models/__init__.py create mode 100644 addons_library/library_extensions/models/library_book.py create mode 100644 addons_library/library_extensions/models/library_book_category.py create mode 100644 addons_library/library_extensions/security/ir.model.access.csv create mode 100644 addons_library/library_extensions/views/library_book_category_views.xml create mode 100644 addons_library/library_extensions/views/library_book_views.xml create mode 100644 addons_library/library_extensions/views/library_menus.xml diff --git a/addons_library/library_extensions/__init__.py b/addons_library/library_extensions/__init__.py new file mode 100644 index 0000000..cde864b --- /dev/null +++ b/addons_library/library_extensions/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import models diff --git a/addons_library/library_extensions/__manifest__.py b/addons_library/library_extensions/__manifest__.py new file mode 100644 index 0000000..711392b --- /dev/null +++ b/addons_library/library_extensions/__manifest__.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +{ + "name": "Library Extensions", #Changed from Library + "version": "17.0.1.0", + "depends": [ + "base", + "library" + + ], + "external_dependencies": {}, + "author": "Odev Solutions", + "website": "https://www.odevsolutions.com", + "summary": """Library""", + "description": """ + Library + """, + "category": "Extra Tools", + "data": [ + "security/ir.model.access.csv", + "views/library_book_category_views.xml", # Added + "views/library_book_views.xml", + "views/library_menus.xml", + + ], + "installable": True, + "application": False, +} diff --git a/addons_library/library_extensions/models/__init__.py b/addons_library/library_extensions/models/__init__.py new file mode 100644 index 0000000..07a8257 --- /dev/null +++ b/addons_library/library_extensions/models/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- + +from . import library_book +from . import library_book_category \ No newline at end of file diff --git a/addons_library/library_extensions/models/library_book.py b/addons_library/library_extensions/models/library_book.py new file mode 100644 index 0000000..78d0ae2 --- /dev/null +++ b/addons_library/library_extensions/models/library_book.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- + +from odoo import models, fields, api + + +class LibraryBook(models.Model): + _inherit = "library.book" + + # Task 2: Added Author field + author_id = fields.Many2one( + 'res.partner', + string="Author", + required=True + ) + + # Task 3: Added Category field + category_ids = fields.Many2many( + 'library.book.category', + string="Categories" + ) + + ###################### + # Fields declaration # + ###################### + + ############################## + # Compute and search methods # + ############################## + + ############################ + # Constrains and onchanges # + ############################ + + ######################### + # CRUD method overrides # + ######################### + + ################## + # Action methods # + ################## + + #################### + # Business methods # + #################### diff --git a/addons_library/library_extensions/models/library_book_category.py b/addons_library/library_extensions/models/library_book_category.py new file mode 100644 index 0000000..356271c --- /dev/null +++ b/addons_library/library_extensions/models/library_book_category.py @@ -0,0 +1,14 @@ +# -*- coding: utf-8 -*- +from odoo import models, fields + +class LibraryBookCategory(models.Model): + _name = "library.book.category" + _description = "Book Category" + + name = fields.Char(string="Name", required=True) + # Added to fix error when adding category for adding a book entry. + color = fields.Integer(string="Color Index") + + _sql_constraints = [ + ('name_unique', 'unique(name)', 'The category name must be unique!') + ] \ No newline at end of file diff --git a/addons_library/library_extensions/security/ir.model.access.csv b/addons_library/library_extensions/security/ir.model.access.csv new file mode 100644 index 0000000..ddf2c71 --- /dev/null +++ b/addons_library/library_extensions/security/ir.model.access.csv @@ -0,0 +1,3 @@ +id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink +access_library_book_admin,access.library.book.admin,model_library_book,base.group_system,1,1,1,1 +access_library_book_category_admin,access.library.book.category.admin,model_library_book_category,base.group_system,1,1,1,1 \ No newline at end of file diff --git a/addons_library/library_extensions/views/library_book_category_views.xml b/addons_library/library_extensions/views/library_book_category_views.xml new file mode 100644 index 0000000..b28f3b3 --- /dev/null +++ b/addons_library/library_extensions/views/library_book_category_views.xml @@ -0,0 +1,18 @@ + + + + library.book.category.view.tree + library.book.category + + + + + + + + + Book Categories + library.book.category + tree,form + + \ No newline at end of file diff --git a/addons_library/library_extensions/views/library_book_views.xml b/addons_library/library_extensions/views/library_book_views.xml new file mode 100644 index 0000000..503992d --- /dev/null +++ b/addons_library/library_extensions/views/library_book_views.xml @@ -0,0 +1,26 @@ + + + + library.book.view.tree.inherit + library.book + + + + + + + + + + + library.book.view.form.inherit + library.book + + + + + + + + + \ No newline at end of file diff --git a/addons_library/library_extensions/views/library_menus.xml b/addons_library/library_extensions/views/library_menus.xml new file mode 100644 index 0000000..789f453 --- /dev/null +++ b/addons_library/library_extensions/views/library_menus.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/config/odoo.conf b/config/odoo.conf index f521d20..584d9f1 100644 --- a/config/odoo.conf +++ b/config/odoo.conf @@ -2,4 +2,5 @@ addons_path = /mnt/addons_library data_dir = /var/lib/odoo proxy_mode = True +admin_passwd = $pbkdf2-sha512$600000$qzVGiBFCKGXs/d8bw7hXSg$UGyJ64Y/mFFkfgR3anPkDmOeX5CSoOHSogy5dEEnUz96zpW5q34gTPr21/SAka/5XFPpTlfpdo0E9VWqXjjA4w From e117d4bb1661dad977297f58df54da448292e44c Mon Sep 17 00:00:00 2001 From: Jan Floyd Benedict <135410007+BennyCodes26@users.noreply.github.com> Date: Thu, 12 Feb 2026 06:58:22 +0000 Subject: [PATCH 2/3] Fix: implemented random default color for categories --- .../library_extensions/models/library_book_category.py | 5 ++++- .../library_extensions/views/library_book_views.xml | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/addons_library/library_extensions/models/library_book_category.py b/addons_library/library_extensions/models/library_book_category.py index 356271c..9d6330a 100644 --- a/addons_library/library_extensions/models/library_book_category.py +++ b/addons_library/library_extensions/models/library_book_category.py @@ -7,7 +7,10 @@ class LibraryBookCategory(models.Model): name = fields.Char(string="Name", required=True) # Added to fix error when adding category for adding a book entry. - color = fields.Integer(string="Color Index") + color = fields.Integer( + string="Color Index", + default=lambda self: random.randint(1, 11) + ) _sql_constraints = [ ('name_unique', 'unique(name)', 'The category name must be unique!') diff --git a/addons_library/library_extensions/views/library_book_views.xml b/addons_library/library_extensions/views/library_book_views.xml index 503992d..ebef440 100644 --- a/addons_library/library_extensions/views/library_book_views.xml +++ b/addons_library/library_extensions/views/library_book_views.xml @@ -7,7 +7,7 @@ - + From a9b4608d016f3c5ccbbfe65cbd48bcae79a78163 Mon Sep 17 00:00:00 2001 From: Jan Floyd Benedict <135410007+BennyCodes26@users.noreply.github.com> Date: Fri, 13 Feb 2026 04:36:48 +0000 Subject: [PATCH 3/3] added import random in the library_book_category.py to fix the error when creating a new book category. --- .../library_extensions/models/library_book_category.py | 1 + 1 file changed, 1 insertion(+) diff --git a/addons_library/library_extensions/models/library_book_category.py b/addons_library/library_extensions/models/library_book_category.py index 9d6330a..8c6e0ff 100644 --- a/addons_library/library_extensions/models/library_book_category.py +++ b/addons_library/library_extensions/models/library_book_category.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- +import random # <--- #Newly Added Import from odoo import models, fields class LibraryBookCategory(models.Model):