diff --git a/bemade_project_documents/__init__.py b/bemade_project_documents/__init__.py new file mode 100644 index 0000000..9b42961 --- /dev/null +++ b/bemade_project_documents/__init__.py @@ -0,0 +1,2 @@ +from . import models +from . import wizard diff --git a/bemade_project_documents/__manifest__.py b/bemade_project_documents/__manifest__.py index 7f2042c..69a1ccb 100644 --- a/bemade_project_documents/__manifest__.py +++ b/bemade_project_documents/__manifest__.py @@ -22,12 +22,14 @@ 'summary': 'Improved workflow for project documents.', 'description': """Adds multiple workflow items to project documents, including: * Approval stages - * Document versions with revision numbers""", + * Document versions with revision numbers + * Ability to request document approval from a partner + """, 'category': '', 'author': 'Bemade Inc.', 'website': 'https://www.bemade.org', 'license': 'OPL-1', - 'depends': [], + 'depends': ['documents_project'], 'data': [], 'demo': [], 'installable': True, diff --git a/bemade_project_documents/models/__init__.py b/bemade_project_documents/models/__init__.py new file mode 100644 index 0000000..233a961 --- /dev/null +++ b/bemade_project_documents/models/__init__.py @@ -0,0 +1,2 @@ +from . import project +from . import document diff --git a/bemade_project_documents/models/document.py b/bemade_project_documents/models/document.py new file mode 100644 index 0000000..2133ae6 --- /dev/null +++ b/bemade_project_documents/models/document.py @@ -0,0 +1,7 @@ +from odoo import models, fields, api + + +class Document(models.Model): + _inherit = 'documents.document' + + external_approver_ids = fields.Many2many('res.partner') diff --git a/bemade_project_documents/models/project.py b/bemade_project_documents/models/project.py new file mode 100644 index 0000000..6f2f073 --- /dev/null +++ b/bemade_project_documents/models/project.py @@ -0,0 +1,15 @@ +from odoo import models, fields, api + + +class Project(models.Model): + _inherit = 'project.project' + + document_ids = fields.One2many('documents.document', + compute='_compute_document_ids') + + def _compute_document_ids(self): + for project in self: + project.document_ids = self.env['documents.document'].search([ + ('res_model', '=', 'project.project'), + ('res_id', '=', project.id), + ]) diff --git a/bemade_project_documents/views/project_views.xml b/bemade_project_documents/views/project_views.xml new file mode 100644 index 0000000..7db3cb0 --- /dev/null +++ b/bemade_project_documents/views/project_views.xml @@ -0,0 +1,33 @@ + + + + + Documents + documents.document + tree,kanban + + + [('res_id', '=', active_id), ('res_model', '=', 'project.project')] + + { + 'default_res_id': active_id, + 'default_res_model': 'project.project', + } + +

+ No documents found. Let's create one! +

+
+
+ + + project_documents.project.view.kanban + project.project + + + Documents + + + +
+
\ No newline at end of file diff --git a/bemade_project_documents/wizard/__init__.py b/bemade_project_documents/wizard/__init__.py new file mode 100644 index 0000000..235a200 --- /dev/null +++ b/bemade_project_documents/wizard/__init__.py @@ -0,0 +1 @@ +from . import request_approvals_wizard diff --git a/bemade_project_documents/wizard/request_approvals_wizard.py b/bemade_project_documents/wizard/request_approvals_wizard.py new file mode 100644 index 0000000..1080d09 --- /dev/null +++ b/bemade_project_documents/wizard/request_approvals_wizard.py @@ -0,0 +1,8 @@ +from odoo import models, fields, api + + +class RequestDocumentApprovalsWizard(models.TransientModel): + _name = 'project_documents.approval.wizard' + + project_id = fields.Many2one('project.project') +