diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..ba2a6c0
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,4 @@
+{
+ "python-envs.defaultEnvManager": "ms-python.python:system",
+ "python-envs.pythonProjects": []
+}
\ No newline at end of file
diff --git a/addons_library/library/models/library_book.py b/addons_library/library/models/library_book.py
index a4f5fa1..9cc50d8 100644
--- a/addons_library/library/models/library_book.py
+++ b/addons_library/library/models/library_book.py
@@ -1,44 +1,19 @@
# -*- coding: utf-8 -*-
-
-from odoo import models, fields, api
-
+from odoo import models, fields
class LibraryBook(models.Model):
- ######################
- # Private attributes #
- ######################
_name = "library.book"
_description = "Book"
_order = "name"
- ###################
- # Default methods #
- ###################
- name = fields.Char(string="Name",
- required=True)
- isbn_13 = fields.Char(string="ISBN 13",
- required=True)
-
- ######################
- # Fields declaration #
- ######################
-
- ##############################
- # Compute and search methods #
- ##############################
-
- ############################
- # Constrains and onchanges #
- ############################
-
- #########################
- # CRUD method overrides #
- #########################
-
- ##################
- # Action methods #
- ##################
-
- ####################
- # Business methods #
- ####################
+ name = fields.Char(string="Name", required=True)
+ isbn_13 = fields.Char(string="ISBN 13", required=True)
+ author_id = fields.Many2one(
+ 'res.partner',
+ string='Author',
+ domain=[('is_company', '=', False)]
+ )
+ category_id = fields.Many2one(
+ 'library.book.category',
+ string='Category'
+ )
diff --git a/addons_library/library_extensions/__init__.py b/addons_library/library_extensions/__init__.py
new file mode 100644
index 0000000..77bbdbd
--- /dev/null
+++ b/addons_library/library_extensions/__init__.py
@@ -0,0 +1,4 @@
+# -*- 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..3db94ff
--- /dev/null
+++ b/addons_library/library_extensions/__manifest__.py
@@ -0,0 +1,14 @@
+{
+ 'name': 'Library Extensions',
+ 'version': '1.0',
+ 'author': 'Your Name',
+ 'depends': ['library', 'contacts'],
+ 'data': [
+ 'security/ir.model.access.csv',
+ 'views/library_book_views.xml',
+ 'views/library_book_category_views.xml',
+],
+
+ 'installable': True,
+ 'application': False,
+}
diff --git a/addons_library/library_extensions/config/odoo.conf b/addons_library/library_extensions/config/odoo.conf
new file mode 100644
index 0000000..09b2604
--- /dev/null
+++ b/addons_library/library_extensions/config/odoo.conf
@@ -0,0 +1,6 @@
+[options]
+addons_path = /mnt/addons_library
+data_dir = /var/lib/odoo
+proxy_mode = True
+admin_passwd = $pbkdf2-sha512$600000$WCuF8B6DcC5lTInRWusdYw$EK.4CpFjAl2yFIDWRxz1sE/KXQ2oHh7m5YqIDaRO7WGxGlcTNNN5Z4UW1/qO8ms/XzHAlMfDvuUifhXu03MS.g
+
diff --git a/addons_library/library_extensions/models/__init__.py b/addons_library/library_extensions/models/__init__.py
new file mode 100644
index 0000000..dd2113e
--- /dev/null
+++ b/addons_library/library_extensions/models/__init__.py
@@ -0,0 +1,2 @@
+from . import library_book_category
+from . import library_book_inherit
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..a6ac10a
--- /dev/null
+++ b/addons_library/library_extensions/models/library_book_category.py
@@ -0,0 +1,14 @@
+# -*- coding: utf-8 -*-
+from odoo import models, fields, api
+from odoo.exceptions import ValidationError
+
+class LibraryBookCategory(models.Model):
+ _name = "library.book.category"
+ _description = "Book Category"
+ _order = "name"
+
+ name = fields.Char(string="Category Name", required=True)
+
+ _sql_constraints = [
+ ('unique_category_name', 'unique(name)', 'Category name must be unique!')
+ ]
diff --git a/addons_library/library_extensions/models/library_book_inherit.py b/addons_library/library_extensions/models/library_book_inherit.py
new file mode 100644
index 0000000..e725ba9
--- /dev/null
+++ b/addons_library/library_extensions/models/library_book_inherit.py
@@ -0,0 +1,14 @@
+from odoo import models, fields
+
+class LibraryBook(models.Model):
+ _inherit = 'library.book'
+
+ author_id = fields.Many2one(
+ 'res.partner',
+ string='Author'
+ )
+
+ category_id = fields.Many2many(
+ 'library.book.category',
+ string='Categories'
+ )
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..9586d31
--- /dev/null
+++ b/addons_library/library_extensions/security/ir.model.access.csv
@@ -0,0 +1,2 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_library_book_category,access.library.book.category,model_library_book_category,,1,1,1,1
diff --git a/addons_library/library_extensions/views/library_book_category.py b/addons_library/library_extensions/views/library_book_category.py
new file mode 100644
index 0000000..a3067ea
--- /dev/null
+++ b/addons_library/library_extensions/views/library_book_category.py
@@ -0,0 +1,11 @@
+from odoo import models, fields
+
+class LibraryBookCategory(models.Model):
+ _name = 'library.book.category'
+ _description = 'Book Category'
+
+ name = fields.Char(string='Category Name', required=True)
+
+ _sql_constraints = [
+ ('unique_name', 'unique(name)', 'Category name must be unique!')
+ ]
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..c001d0c
--- /dev/null
+++ b/addons_library/library_extensions/views/library_book_category_views.xml
@@ -0,0 +1,42 @@
+
+
+
+
+ library.book.category.tree
+ library.book.category
+
+
+
+
+
+
+
+
+
+ library.book.category.form
+ library.book.category
+
+
+
+
+
+
+
+ Book Categories
+ library.book.category
+ tree,form
+
+
+
+
+
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..66deca4
--- /dev/null
+++ b/addons_library/library_extensions/views/library_book_views.xml
@@ -0,0 +1,48 @@
+
+
+
+
+ library.book.tree
+ library.book
+
+
+
+
+
+
+
+
+
+
+
+
+ library.book.form
+ library.book
+
+
+
+
+
+
+
+ Books
+ library.book
+ tree,form
+
+
+
+
+
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..841b1f7
--- /dev/null
+++ b/addons_library/library_extensions/views/library_menus.xml
@@ -0,0 +1,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/config/odoo.conf b/config/odoo.conf
index f521d20..09b2604 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$WCuF8B6DcC5lTInRWusdYw$EK.4CpFjAl2yFIDWRxz1sE/KXQ2oHh7m5YqIDaRO7WGxGlcTNNN5Z4UW1/qO8ms/XzHAlMfDvuUifhXu03MS.g