[NEW] Addons dev_github_project_task_connector creation
This commit is contained in:
3
dev_github_project_task_connector/wizard/__init__.py
Normal file
3
dev_github_project_task_connector/wizard/__init__.py
Normal file
@@ -0,0 +1,3 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import link_issue
|
27
dev_github_project_task_connector/wizard/link_issue.py
Normal file
27
dev_github_project_task_connector/wizard/link_issue.py
Normal file
@@ -0,0 +1,27 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from odoo import models, fields
|
||||
from github import Github
|
||||
|
||||
|
||||
class LinkGitIssue(models.TransientModel):
|
||||
_name = "link.git.issue"
|
||||
_description = "Link a Git Issue to a project task"
|
||||
|
||||
issue_repo = fields.Many2one("git.repo", string="Repository", required=True)
|
||||
issue_number = fields.Integer("Issue number", required=True)
|
||||
|
||||
def link_issue(self):
|
||||
github = Github()
|
||||
repo = github.get_repo(self.issue_repo.displayed_name)
|
||||
issue = repo.get_issue(number=self.issue_number)
|
||||
values = {
|
||||
"name": issue.title,
|
||||
"repo": self.issue_repo.id,
|
||||
"status": issue.state,
|
||||
"url": issue.html_url,
|
||||
"task_id": self.env["project.task"]
|
||||
.browse(self._context.get("active_ids"))
|
||||
.id,
|
||||
}
|
||||
self.env["git.issue"].create(values)
|
28
dev_github_project_task_connector/wizard/link_issue.xml
Normal file
28
dev_github_project_task_connector/wizard/link_issue.xml
Normal file
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<record id="link_issue_wizard" model="ir.ui.view">
|
||||
<field name="name">link_issue.wizard</field>
|
||||
<field name="model">link.git.issue</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Link an existing Github issue to the current task">
|
||||
<group>
|
||||
<field name="issue_repo" widget="selection" placeholder="Choose the repository of the issue" />
|
||||
<field name="issue_number" />
|
||||
</group>
|
||||
<footer>
|
||||
<button string="Link" name="link_issue" type="object" class="btn-primary" />
|
||||
<button string="Cancel" class="btn-secondary" special="cancel" />
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- <record id="action_link_issue" model="ir.actions.act_window">
|
||||
<field name="name">Link Issue</field>
|
||||
<field name="res_model">link.git.issue</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="link_issue_wizard" />
|
||||
<field name="target">new</field>
|
||||
</record> -->
|
||||
</odoo>
|
Reference in New Issue
Block a user