From 4b8a1f44a9fabda074946ac9d2c19f887ef58168 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phan=20Sainl=C3=A9ger?= Date: Fri, 10 Jun 2022 20:55:09 +0200 Subject: [PATCH] [UPD] Add git.platform model to manage connection with other Git softwares --- .../models/__init__.py | 1 + .../models/git_issue.py | 5 ++- .../models/git_platform.py | 12 +++++++ .../models/git_repo.py | 1 + .../security/ir.model.access.csv | 4 ++- .../views/git_issue.xml | 1 + .../views/git_repository.xml | 1 + .../views/project_task.xml | 2 ++ .../wizard/create_issue.py | 6 ++-- .../wizard/create_issue.xml | 3 +- .../wizard/link_issue.py | 10 ++++-- .../wizard/link_issue.xml | 3 +- dev_github_connector/__manifest__.py | 1 + dev_github_connector/data/git_platform.xml | 10 ++++++ dev_github_connector/models/__init__.py | 1 + dev_github_connector/models/git_platform.py | 9 +++++ dev_github_connector/wizard/create_issue.py | 28 ++++++++------- dev_github_connector/wizard/link_issue.py | 34 ++++++++++++------- 18 files changed, 100 insertions(+), 32 deletions(-) create mode 100644 dev_git_project_task_connector/models/git_platform.py create mode 100644 dev_github_connector/data/git_platform.xml create mode 100644 dev_github_connector/models/git_platform.py diff --git a/dev_git_project_task_connector/models/__init__.py b/dev_git_project_task_connector/models/__init__.py index ed0d1df..547d01a 100644 --- a/dev_git_project_task_connector/models/__init__.py +++ b/dev_git_project_task_connector/models/__init__.py @@ -3,3 +3,4 @@ from . import project_task from . import git_issue from . import git_repo +from . import git_platform diff --git a/dev_git_project_task_connector/models/git_issue.py b/dev_git_project_task_connector/models/git_issue.py index abe92eb..026631e 100644 --- a/dev_git_project_task_connector/models/git_issue.py +++ b/dev_git_project_task_connector/models/git_issue.py @@ -8,7 +8,10 @@ class GitIssue(models.Model): _description = "Issue Git" name = fields.Char(string="Title", required=True, copy=True) - repo = fields.Many2one("git.repo", required=True, copy=True) + platform = fields.Many2one("git.platform", string="Git platform", required=True) + repo = fields.Many2one( + "git.repo", string="Git repository", required=True, copy=True + ) status = fields.Selection( [ ("opened", "Opened"), diff --git a/dev_git_project_task_connector/models/git_platform.py b/dev_git_project_task_connector/models/git_platform.py new file mode 100644 index 0000000..9a297c8 --- /dev/null +++ b/dev_git_project_task_connector/models/git_platform.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- + +from odoo import models, fields + + +class GitPlatform(models.Model): + _name = "git.platform" + _description = "Git Platform" + + name = fields.Char(string="Name", required=True) + tool = fields.Selection([], string="Tool", required=True) + url = fields.Char(string="URL", required=True, copy=False) diff --git a/dev_git_project_task_connector/models/git_repo.py b/dev_git_project_task_connector/models/git_repo.py index cdd3b42..f14fbea 100644 --- a/dev_git_project_task_connector/models/git_repo.py +++ b/dev_git_project_task_connector/models/git_repo.py @@ -7,6 +7,7 @@ class GitRepository(models.Model): _name = "git.repo" _description = "Repository Git" + platform_id = fields.Many2one("git.platform", string="Git platform", required=True) name = fields.Char(string="Name", required=True) owner = fields.Char(string="Owner", required=True) displayed_name = fields.Char( diff --git a/dev_git_project_task_connector/security/ir.model.access.csv b/dev_git_project_task_connector/security/ir.model.access.csv index 41c8866..f2e01ff 100644 --- a/dev_git_project_task_connector/security/ir.model.access.csv +++ b/dev_git_project_task_connector/security/ir.model.access.csv @@ -2,4 +2,6 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_git_issue_user,git.issue.user,dev_git_project_task_connector.model_git_issue,project.group_project_user,1,0,0,0 access_git_issue_manager,git.issue.manager,dev_git_project_task_connector.model_git_issue,project.group_project_manager,1,1,1,1 access_git_repo_user,git.repo.user,dev_git_project_task_connector.model_git_repo,project.group_project_user,1,0,0,0 -access_git_repo_manager,git.repo.manager,dev_git_project_task_connector.model_git_repo,project.group_project_manager,1,1,1,1 \ No newline at end of file +access_git_repo_manager,git.repo.manager,dev_git_project_task_connector.model_git_repo,project.group_project_manager,1,1,1,1 +access_git_platform_user,git.platform.user,dev_git_project_task_connector.model_git_platform,project.group_project_user,1,0,0,0 +access_git_platform_manager,git.platform.manager,dev_git_project_task_connector.model_git_platform,project.group_project_manager,1,1,1,1 \ No newline at end of file diff --git a/dev_git_project_task_connector/views/git_issue.xml b/dev_git_project_task_connector/views/git_issue.xml index a946b89..0f7cf38 100644 --- a/dev_git_project_task_connector/views/git_issue.xml +++ b/dev_git_project_task_connector/views/git_issue.xml @@ -7,6 +7,7 @@ + diff --git a/dev_git_project_task_connector/views/git_repository.xml b/dev_git_project_task_connector/views/git_repository.xml index d8e0984..2c0fc1f 100644 --- a/dev_git_project_task_connector/views/git_repository.xml +++ b/dev_git_project_task_connector/views/git_repository.xml @@ -5,6 +5,7 @@ git.repo + diff --git a/dev_git_project_task_connector/views/project_task.xml b/dev_git_project_task_connector/views/project_task.xml index 6b76253..8b3f2e1 100644 --- a/dev_git_project_task_connector/views/project_task.xml +++ b/dev_git_project_task_connector/views/project_task.xml @@ -14,6 +14,8 @@ + + diff --git a/dev_git_project_task_connector/wizard/create_issue.py b/dev_git_project_task_connector/wizard/create_issue.py index e915925..f03c858 100644 --- a/dev_git_project_task_connector/wizard/create_issue.py +++ b/dev_git_project_task_connector/wizard/create_issue.py @@ -7,6 +7,7 @@ class CreateGitIssue(models.TransientModel): _name = "create.git.issue" _description = "Create a Git Issue" + issue_platform = fields.Many2one("git.platform", required=True) issue_name = fields.Char(string="Title", required=True) issue_description = fields.Html(string="Description", required=False) issue_repo = fields.Many2one("git.repo", required=True) @@ -17,8 +18,9 @@ class CreateGitIssue(models.TransientModel): # Function to inherit in Git platform connector addons def _create_git_issue(self): - return {} + return None def create_issue(self): values = self._create_git_issue() - self.env["git.issue"].create(values) + if values: + self.env["git.issue"].create(values) diff --git a/dev_git_project_task_connector/wizard/create_issue.xml b/dev_git_project_task_connector/wizard/create_issue.xml index 3991fdd..944fe1d 100644 --- a/dev_git_project_task_connector/wizard/create_issue.xml +++ b/dev_git_project_task_connector/wizard/create_issue.xml @@ -7,7 +7,8 @@
- + + diff --git a/dev_git_project_task_connector/wizard/link_issue.py b/dev_git_project_task_connector/wizard/link_issue.py index 2efcda0..326122a 100644 --- a/dev_git_project_task_connector/wizard/link_issue.py +++ b/dev_git_project_task_connector/wizard/link_issue.py @@ -7,13 +7,19 @@ class LinkGitIssue(models.TransientModel): _name = "link.git.issue" _description = "Link a Git Issue to a project task" + issue_platform = fields.Many2one("git.platform", required=True) issue_repo = fields.Many2one("git.repo", string="Repository", required=True) issue_number = fields.Integer("Issue number", required=True) + # Function to inherit in Git platform connector addons + def _convert_issue_status(self, status): + return status + # Function to inherit in Git platform connector addons def _compute_issue_values(self): - return {} + return None def link_issue(self): values = self._compute_issue_values() - self.env["git.issue"].create(values) + if values: + self.env["git.issue"].create(values) diff --git a/dev_git_project_task_connector/wizard/link_issue.xml b/dev_git_project_task_connector/wizard/link_issue.xml index 2f4be1a..5833409 100644 --- a/dev_git_project_task_connector/wizard/link_issue.xml +++ b/dev_git_project_task_connector/wizard/link_issue.xml @@ -7,7 +7,8 @@ - + +