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