odoo-addon-odoo-repository 16.0.1.3.0.13__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- odoo/addons/odoo_repository/README.rst +81 -0
- odoo/addons/odoo_repository/__init__.py +2 -0
- odoo/addons/odoo_repository/__manifest__.py +58 -0
- odoo/addons/odoo_repository/controllers/__init__.py +1 -0
- odoo/addons/odoo_repository/controllers/main.py +32 -0
- odoo/addons/odoo_repository/data/ir_cron.xml +38 -0
- odoo/addons/odoo_repository/data/odoo.repository.csv +216 -0
- odoo/addons/odoo_repository/data/odoo_branch.xml +82 -0
- odoo/addons/odoo_repository/data/odoo_module.xml +16 -0
- odoo/addons/odoo_repository/data/odoo_repository.xml +71 -0
- odoo/addons/odoo_repository/data/odoo_repository_addons_path.xml +59 -0
- odoo/addons/odoo_repository/data/odoo_repository_org.xml +14 -0
- odoo/addons/odoo_repository/data/queue_job.xml +56 -0
- odoo/addons/odoo_repository/lib/__init__.py +0 -0
- odoo/addons/odoo_repository/lib/scanner.py +1302 -0
- odoo/addons/odoo_repository/migrations/16.0.1.1.0/post-migration.py +26 -0
- odoo/addons/odoo_repository/migrations/16.0.1.2.0/pre-migration.py +43 -0
- odoo/addons/odoo_repository/migrations/16.0.1.3.0/post-migration.py +19 -0
- odoo/addons/odoo_repository/models/__init__.py +18 -0
- odoo/addons/odoo_repository/models/authentication_token.py +12 -0
- odoo/addons/odoo_repository/models/odoo_author.py +16 -0
- odoo/addons/odoo_repository/models/odoo_branch.py +111 -0
- odoo/addons/odoo_repository/models/odoo_license.py +16 -0
- odoo/addons/odoo_repository/models/odoo_maintainer.py +31 -0
- odoo/addons/odoo_repository/models/odoo_module.py +24 -0
- odoo/addons/odoo_repository/models/odoo_module_branch.py +873 -0
- odoo/addons/odoo_repository/models/odoo_module_branch_version.py +123 -0
- odoo/addons/odoo_repository/models/odoo_module_category.py +15 -0
- odoo/addons/odoo_repository/models/odoo_module_dev_status.py +15 -0
- odoo/addons/odoo_repository/models/odoo_python_dependency.py +16 -0
- odoo/addons/odoo_repository/models/odoo_repository.py +664 -0
- odoo/addons/odoo_repository/models/odoo_repository_addons_path.py +40 -0
- odoo/addons/odoo_repository/models/odoo_repository_branch.py +98 -0
- odoo/addons/odoo_repository/models/odoo_repository_org.py +23 -0
- odoo/addons/odoo_repository/models/res_company.py +23 -0
- odoo/addons/odoo_repository/models/res_config_settings.py +23 -0
- odoo/addons/odoo_repository/models/ssh_key.py +12 -0
- odoo/addons/odoo_repository/readme/CONTRIBUTORS.rst +2 -0
- odoo/addons/odoo_repository/readme/DESCRIPTION.rst +1 -0
- odoo/addons/odoo_repository/security/ir.model.access.csv +27 -0
- odoo/addons/odoo_repository/security/res_groups.xml +25 -0
- odoo/addons/odoo_repository/static/description/README +4 -0
- odoo/addons/odoo_repository/static/description/icon.png +0 -0
- odoo/addons/odoo_repository/static/description/index.html +430 -0
- odoo/addons/odoo_repository/tests/__init__.py +6 -0
- odoo/addons/odoo_repository/tests/common.py +162 -0
- odoo/addons/odoo_repository/tests/test_base_scanner.py +214 -0
- odoo/addons/odoo_repository/tests/test_odoo_module_branch.py +97 -0
- odoo/addons/odoo_repository/tests/test_odoo_repository_scan.py +242 -0
- odoo/addons/odoo_repository/tests/test_repository_scanner.py +215 -0
- odoo/addons/odoo_repository/tests/test_sync_node.py +55 -0
- odoo/addons/odoo_repository/tests/test_utils.py +25 -0
- odoo/addons/odoo_repository/utils/__init__.py +0 -0
- odoo/addons/odoo_repository/utils/github.py +30 -0
- odoo/addons/odoo_repository/utils/module.py +25 -0
- odoo/addons/odoo_repository/utils/scanner.py +90 -0
- odoo/addons/odoo_repository/views/authentication_token.xml +63 -0
- odoo/addons/odoo_repository/views/menu.xml +38 -0
- odoo/addons/odoo_repository/views/odoo_author.xml +54 -0
- odoo/addons/odoo_repository/views/odoo_branch.xml +84 -0
- odoo/addons/odoo_repository/views/odoo_license.xml +40 -0
- odoo/addons/odoo_repository/views/odoo_maintainer.xml +69 -0
- odoo/addons/odoo_repository/views/odoo_module.xml +90 -0
- odoo/addons/odoo_repository/views/odoo_module_branch.xml +353 -0
- odoo/addons/odoo_repository/views/odoo_module_category.xml +40 -0
- odoo/addons/odoo_repository/views/odoo_module_dev_status.xml +40 -0
- odoo/addons/odoo_repository/views/odoo_python_dependency.xml +40 -0
- odoo/addons/odoo_repository/views/odoo_repository.xml +165 -0
- odoo/addons/odoo_repository/views/odoo_repository_addons_path.xml +49 -0
- odoo/addons/odoo_repository/views/odoo_repository_branch.xml +60 -0
- odoo/addons/odoo_repository/views/odoo_repository_org.xml +54 -0
- odoo/addons/odoo_repository/views/res_config_settings.xml +123 -0
- odoo/addons/odoo_repository/views/ssh_key.xml +63 -0
- odoo_addon_odoo_repository-16.0.1.3.0.13.dist-info/METADATA +100 -0
- odoo_addon_odoo_repository-16.0.1.3.0.13.dist-info/RECORD +77 -0
- odoo_addon_odoo_repository-16.0.1.3.0.13.dist-info/WHEEL +5 -0
- odoo_addon_odoo_repository-16.0.1.3.0.13.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
2
|
+
<!-- Copyright 2023 Camptocamp SA
|
|
3
|
+
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
|
4
|
+
<odoo>
|
|
5
|
+
|
|
6
|
+
<record id="odoo_module_category_view_tree" model="ir.ui.view">
|
|
7
|
+
<field name="name">odoo.module.category.tree</field>
|
|
8
|
+
<field name="model">odoo.module.category</field>
|
|
9
|
+
<field name="arch" type="xml">
|
|
10
|
+
<tree>
|
|
11
|
+
<field name="name" />
|
|
12
|
+
</tree>
|
|
13
|
+
</field>
|
|
14
|
+
</record>
|
|
15
|
+
|
|
16
|
+
<record id="odoo_module_category_view_search" model="ir.ui.view">
|
|
17
|
+
<field name="name">odoo.module.category.search</field>
|
|
18
|
+
<field name="model">odoo.module.category</field>
|
|
19
|
+
<field name="type">search</field>
|
|
20
|
+
<field name="arch" type="xml">
|
|
21
|
+
<search>
|
|
22
|
+
<field name="name" />
|
|
23
|
+
</search>
|
|
24
|
+
</field>
|
|
25
|
+
</record>
|
|
26
|
+
|
|
27
|
+
<record id="odoo_module_category_action" model="ir.actions.act_window">
|
|
28
|
+
<field name="name">Categories</field>
|
|
29
|
+
<field name="type">ir.actions.act_window</field>
|
|
30
|
+
<field name="res_model">odoo.module.category</field>
|
|
31
|
+
<field name="view_id" ref="odoo_module_category_view_tree" />
|
|
32
|
+
</record>
|
|
33
|
+
|
|
34
|
+
<menuitem
|
|
35
|
+
id="odoo_module_category_menu"
|
|
36
|
+
parent="misc_odoo_repository_menu"
|
|
37
|
+
action="odoo_module_category_action"
|
|
38
|
+
/>
|
|
39
|
+
|
|
40
|
+
</odoo>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
2
|
+
<!-- Copyright 2023 Camptocamp SA
|
|
3
|
+
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
|
4
|
+
<odoo>
|
|
5
|
+
|
|
6
|
+
<record id="odoo_module_dev_status_view_tree" model="ir.ui.view">
|
|
7
|
+
<field name="name">odoo.module.dev.status.tree</field>
|
|
8
|
+
<field name="model">odoo.module.dev.status</field>
|
|
9
|
+
<field name="arch" type="xml">
|
|
10
|
+
<tree>
|
|
11
|
+
<field name="name" />
|
|
12
|
+
</tree>
|
|
13
|
+
</field>
|
|
14
|
+
</record>
|
|
15
|
+
|
|
16
|
+
<record id="odoo_module_dev_status_view_search" model="ir.ui.view">
|
|
17
|
+
<field name="name">odoo.module.dev.status.search</field>
|
|
18
|
+
<field name="model">odoo.module.dev.status</field>
|
|
19
|
+
<field name="type">search</field>
|
|
20
|
+
<field name="arch" type="xml">
|
|
21
|
+
<search>
|
|
22
|
+
<field name="name" />
|
|
23
|
+
</search>
|
|
24
|
+
</field>
|
|
25
|
+
</record>
|
|
26
|
+
|
|
27
|
+
<record id="odoo_module_dev_status_action" model="ir.actions.act_window">
|
|
28
|
+
<field name="name">Development Status</field>
|
|
29
|
+
<field name="type">ir.actions.act_window</field>
|
|
30
|
+
<field name="res_model">odoo.module.dev.status</field>
|
|
31
|
+
<field name="view_id" ref="odoo_module_dev_status_view_tree" />
|
|
32
|
+
</record>
|
|
33
|
+
|
|
34
|
+
<menuitem
|
|
35
|
+
id="odoo_module_dev_status_menu"
|
|
36
|
+
parent="misc_odoo_repository_menu"
|
|
37
|
+
action="odoo_module_dev_status_action"
|
|
38
|
+
/>
|
|
39
|
+
|
|
40
|
+
</odoo>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
2
|
+
<!-- Copyright 2023 Camptocamp SA
|
|
3
|
+
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
|
4
|
+
<odoo>
|
|
5
|
+
|
|
6
|
+
<record id="odoo_python_dependency_view_tree" model="ir.ui.view">
|
|
7
|
+
<field name="name">odoo.python.dependency.tree</field>
|
|
8
|
+
<field name="model">odoo.python.dependency</field>
|
|
9
|
+
<field name="arch" type="xml">
|
|
10
|
+
<tree>
|
|
11
|
+
<field name="name" />
|
|
12
|
+
</tree>
|
|
13
|
+
</field>
|
|
14
|
+
</record>
|
|
15
|
+
|
|
16
|
+
<record id="odoo_python_dependency_view_search" model="ir.ui.view">
|
|
17
|
+
<field name="name">odoo.python.dependency.search</field>
|
|
18
|
+
<field name="model">odoo.python.dependency</field>
|
|
19
|
+
<field name="type">search</field>
|
|
20
|
+
<field name="arch" type="xml">
|
|
21
|
+
<search>
|
|
22
|
+
<field name="name" />
|
|
23
|
+
</search>
|
|
24
|
+
</field>
|
|
25
|
+
</record>
|
|
26
|
+
|
|
27
|
+
<record id="odoo_python_dependency_action" model="ir.actions.act_window">
|
|
28
|
+
<field name="name">Python Dependencies</field>
|
|
29
|
+
<field name="type">ir.actions.act_window</field>
|
|
30
|
+
<field name="res_model">odoo.python.dependency</field>
|
|
31
|
+
<field name="view_id" ref="odoo_python_dependency_view_tree" />
|
|
32
|
+
</record>
|
|
33
|
+
|
|
34
|
+
<menuitem
|
|
35
|
+
id="odoo_python_dependency_menu"
|
|
36
|
+
parent="misc_odoo_repository_menu"
|
|
37
|
+
action="odoo_python_dependency_action"
|
|
38
|
+
/>
|
|
39
|
+
|
|
40
|
+
</odoo>
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
2
|
+
<!-- Copyright 2023 Camptocamp SA
|
|
3
|
+
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
|
4
|
+
<odoo>
|
|
5
|
+
|
|
6
|
+
<record id="odoo_repository_view_form" model="ir.ui.view">
|
|
7
|
+
<field name="name">odoo.repository.form</field>
|
|
8
|
+
<field name="model">odoo.repository</field>
|
|
9
|
+
<field name="arch" type="xml">
|
|
10
|
+
<form>
|
|
11
|
+
<header>
|
|
12
|
+
<button
|
|
13
|
+
name="action_scan"
|
|
14
|
+
type="object"
|
|
15
|
+
string="Scan"
|
|
16
|
+
class="btn-primary"
|
|
17
|
+
groups="odoo_repository.group_odoo_repository_manager"
|
|
18
|
+
attrs="{'invisible': [('to_scan', '=', False)]}"
|
|
19
|
+
/>
|
|
20
|
+
<button
|
|
21
|
+
name="action_force_scan"
|
|
22
|
+
type="object"
|
|
23
|
+
string="Force Scan"
|
|
24
|
+
class="btn-secondary"
|
|
25
|
+
confirm="This operation will restart the scan from the beginning. Are you sure?"
|
|
26
|
+
groups="odoo_repository.group_odoo_repository_manager"
|
|
27
|
+
attrs="{'invisible': [('to_scan', '=', False)]}"
|
|
28
|
+
/>
|
|
29
|
+
</header>
|
|
30
|
+
<sheet>
|
|
31
|
+
<div class="oe_button_box" name="button_box" />
|
|
32
|
+
<group>
|
|
33
|
+
<group name="repository" string="Repository">
|
|
34
|
+
<group colspan="2">
|
|
35
|
+
<field name="org_id" attrs="{'readonly': [('branch_ids', '!=', [])]}" />
|
|
36
|
+
<field name="name" attrs="{'readonly': [('branch_ids', '!=', [])]}" />
|
|
37
|
+
<field name="repo_url" widget="url" />
|
|
38
|
+
<field name="to_scan" />
|
|
39
|
+
<field name="sequence" />
|
|
40
|
+
</group>
|
|
41
|
+
<group attrs="{'invisible': [('to_scan', '=', False)]}" colspan="2">
|
|
42
|
+
<field name="clone_url" />
|
|
43
|
+
<field
|
|
44
|
+
name="repo_type"
|
|
45
|
+
attrs="{'required': [('to_scan', '=', True)]}"
|
|
46
|
+
/>
|
|
47
|
+
<field
|
|
48
|
+
name="token_id"
|
|
49
|
+
options="{'no_open': True}"
|
|
50
|
+
groups="odoo_repository.group_odoo_repository_manager"
|
|
51
|
+
attrs="{'invisible': [('ssh_key_id', '!=', False)]}"
|
|
52
|
+
/>
|
|
53
|
+
<field
|
|
54
|
+
name="ssh_key_id"
|
|
55
|
+
options="{'no_open': True}"
|
|
56
|
+
groups="odoo_repository.group_odoo_repository_manager"
|
|
57
|
+
attrs="{'invisible': [('token_id', '!=', False)]}"
|
|
58
|
+
/>
|
|
59
|
+
</group>
|
|
60
|
+
</group>
|
|
61
|
+
<group
|
|
62
|
+
name="options"
|
|
63
|
+
string="Options"
|
|
64
|
+
attrs="{'invisible': [('to_scan', '=', False)]}"
|
|
65
|
+
>
|
|
66
|
+
<field name="scan_weekday_ids" widget="many2many_tags" />
|
|
67
|
+
<field
|
|
68
|
+
name="manual_branches"
|
|
69
|
+
attrs="{'readonly': [('branch_ids', '!=', [])]}"
|
|
70
|
+
/>
|
|
71
|
+
<field name="specific" />
|
|
72
|
+
<field name="clone_name" groups="base.group_no_one" />
|
|
73
|
+
</group>
|
|
74
|
+
</group>
|
|
75
|
+
<group>
|
|
76
|
+
<group
|
|
77
|
+
name="addons_path"
|
|
78
|
+
string="Addons Path"
|
|
79
|
+
attrs="{'invisible': [('to_scan', '=', False)]}"
|
|
80
|
+
>
|
|
81
|
+
<field name="addons_path_ids" nolabel="1" colspan="2">
|
|
82
|
+
<tree editable="bottom">
|
|
83
|
+
<field name="relative_path" readonly="1" />
|
|
84
|
+
<field name="is_standard" readonly="1" />
|
|
85
|
+
<field name="is_enterprise" readonly="1" />
|
|
86
|
+
<field name="is_community" readonly="1" />
|
|
87
|
+
</tree>
|
|
88
|
+
</field>
|
|
89
|
+
</group>
|
|
90
|
+
<group name="branches" string="Branches">
|
|
91
|
+
<field
|
|
92
|
+
name="branch_ids"
|
|
93
|
+
nolabel="1"
|
|
94
|
+
colspan="2"
|
|
95
|
+
attrs="{'readonly': [('manual_branches', '=', False)]}"
|
|
96
|
+
>
|
|
97
|
+
<tree editable="bottom">
|
|
98
|
+
<field
|
|
99
|
+
name="branch_id"
|
|
100
|
+
attrs="{'readonly': [('parent.manual_branches', '=', False)]}"
|
|
101
|
+
/>
|
|
102
|
+
<field
|
|
103
|
+
name="cloned_branch"
|
|
104
|
+
attrs="{'column_invisible': [('parent.manual_branches', '=', False)]}"
|
|
105
|
+
/>
|
|
106
|
+
<field name="module_ids" />
|
|
107
|
+
<field name="last_scanned_commit" />
|
|
108
|
+
</tree>
|
|
109
|
+
</field>
|
|
110
|
+
</group>
|
|
111
|
+
</group>
|
|
112
|
+
</sheet>
|
|
113
|
+
</form>
|
|
114
|
+
</field>
|
|
115
|
+
</record>
|
|
116
|
+
|
|
117
|
+
<record id="odoo_repository_view_tree" model="ir.ui.view">
|
|
118
|
+
<field name="name">odoo.repository.tree</field>
|
|
119
|
+
<field name="model">odoo.repository</field>
|
|
120
|
+
<field name="arch" type="xml">
|
|
121
|
+
<tree>
|
|
122
|
+
<field name="org_id" />
|
|
123
|
+
<field name="name" />
|
|
124
|
+
<field name="repo_url" widget="url" />
|
|
125
|
+
<field name="to_scan" />
|
|
126
|
+
<field name="repo_type" />
|
|
127
|
+
</tree>
|
|
128
|
+
</field>
|
|
129
|
+
</record>
|
|
130
|
+
|
|
131
|
+
<record id="odoo_repository_view_search" model="ir.ui.view">
|
|
132
|
+
<field name="name">odoo.repository.search</field>
|
|
133
|
+
<field name="model">odoo.repository</field>
|
|
134
|
+
<field name="type">search</field>
|
|
135
|
+
<field name="arch" type="xml">
|
|
136
|
+
<search>
|
|
137
|
+
<field name="name" />
|
|
138
|
+
<field name="org_id" />
|
|
139
|
+
<filter name="to_scan" string="To scan" domain="[('to_scan', '=', True)]" />
|
|
140
|
+
<filter name="archived" string="Archived" domain="[('active', '=', False)]" />
|
|
141
|
+
<group expand="0" string="Group By">
|
|
142
|
+
<filter
|
|
143
|
+
name="group_by_org_id"
|
|
144
|
+
string="Organization"
|
|
145
|
+
context="{'group_by': 'org_id'}"
|
|
146
|
+
/>
|
|
147
|
+
</group>
|
|
148
|
+
</search>
|
|
149
|
+
</field>
|
|
150
|
+
</record>
|
|
151
|
+
|
|
152
|
+
<record id="odoo_repository_action" model="ir.actions.act_window">
|
|
153
|
+
<field name="name">Repositories</field>
|
|
154
|
+
<field name="type">ir.actions.act_window</field>
|
|
155
|
+
<field name="res_model">odoo.repository</field>
|
|
156
|
+
<field name="view_id" ref="odoo_repository_view_tree" />
|
|
157
|
+
</record>
|
|
158
|
+
|
|
159
|
+
<menuitem
|
|
160
|
+
id="odoo_repository_menu"
|
|
161
|
+
parent="config_odoo_repository_menu"
|
|
162
|
+
action="odoo_repository_action"
|
|
163
|
+
/>
|
|
164
|
+
|
|
165
|
+
</odoo>
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
2
|
+
<!-- Copyright 2023 Camptocamp SA
|
|
3
|
+
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
|
4
|
+
<odoo>
|
|
5
|
+
|
|
6
|
+
<record id="odoo_repository_addons_path_view_form" model="ir.ui.view">
|
|
7
|
+
<field name="name">odoo.repository.addons_path.form</field>
|
|
8
|
+
<field name="model">odoo.repository.addons_path</field>
|
|
9
|
+
<field name="arch" type="xml">
|
|
10
|
+
<form>
|
|
11
|
+
<sheet>
|
|
12
|
+
<group>
|
|
13
|
+
<field name="relative_path" />
|
|
14
|
+
<field name="is_standard" />
|
|
15
|
+
<field name="is_enterprise" />
|
|
16
|
+
<field name="is_community" />
|
|
17
|
+
</group>
|
|
18
|
+
</sheet>
|
|
19
|
+
</form>
|
|
20
|
+
</field>
|
|
21
|
+
</record>
|
|
22
|
+
|
|
23
|
+
<record id="odoo_repository_addons_path_view_tree" model="ir.ui.view">
|
|
24
|
+
<field name="name">odoo.repository.addons_path.tree</field>
|
|
25
|
+
<field name="model">odoo.repository.addons_path</field>
|
|
26
|
+
<field name="arch" type="xml">
|
|
27
|
+
<tree editable="bottom">
|
|
28
|
+
<field name="relative_path" />
|
|
29
|
+
<field name="is_standard" />
|
|
30
|
+
<field name="is_enterprise" />
|
|
31
|
+
<field name="is_community" />
|
|
32
|
+
</tree>
|
|
33
|
+
</field>
|
|
34
|
+
</record>
|
|
35
|
+
|
|
36
|
+
<record id="odoo_repository_addons_path_action" model="ir.actions.act_window">
|
|
37
|
+
<field name="name">Addons Path</field>
|
|
38
|
+
<field name="type">ir.actions.act_window</field>
|
|
39
|
+
<field name="res_model">odoo.repository.addons_path</field>
|
|
40
|
+
<field name="view_id" ref="odoo_repository_addons_path_view_tree" />
|
|
41
|
+
</record>
|
|
42
|
+
|
|
43
|
+
<menuitem
|
|
44
|
+
id="odoo_repository_addons_path_menu"
|
|
45
|
+
parent="config_odoo_repository_menu"
|
|
46
|
+
action="odoo_repository_addons_path_action"
|
|
47
|
+
/>
|
|
48
|
+
|
|
49
|
+
</odoo>
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
2
|
+
<!-- Copyright 2023 Camptocamp SA
|
|
3
|
+
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
|
4
|
+
<odoo>
|
|
5
|
+
|
|
6
|
+
<record id="odoo_repository_branch_view_form" model="ir.ui.view">
|
|
7
|
+
<field name="name">odoo.repository.branch.form</field>
|
|
8
|
+
<field name="model">odoo.repository.branch</field>
|
|
9
|
+
<field name="arch" type="xml">
|
|
10
|
+
<form>
|
|
11
|
+
<header>
|
|
12
|
+
<button name="action_scan" type="object" string="Scan" class="btn-primary" />
|
|
13
|
+
<button
|
|
14
|
+
name="action_force_scan"
|
|
15
|
+
type="object"
|
|
16
|
+
string="Force Scan"
|
|
17
|
+
class="btn-secondary"
|
|
18
|
+
confirm="This operation will restart the scan from the beginning. Are you sure?"
|
|
19
|
+
/>
|
|
20
|
+
</header>
|
|
21
|
+
<sheet>
|
|
22
|
+
<group>
|
|
23
|
+
<field name="repository_id" />
|
|
24
|
+
<field name="branch_id" options="{'no_open': True}" />
|
|
25
|
+
<field name="cloned_branch" />
|
|
26
|
+
<field name="last_scanned_commit" />
|
|
27
|
+
</group>
|
|
28
|
+
<group name="modules" string="Modules">
|
|
29
|
+
<field name="module_ids" nolabel="1" colspan="2" />
|
|
30
|
+
</group>
|
|
31
|
+
</sheet>
|
|
32
|
+
</form>
|
|
33
|
+
</field>
|
|
34
|
+
</record>
|
|
35
|
+
|
|
36
|
+
<record id="odoo_repository_branch_view_tree" model="ir.ui.view">
|
|
37
|
+
<field name="name">odoo.repository.branch.tree</field>
|
|
38
|
+
<field name="model">odoo.repository.branch</field>
|
|
39
|
+
<field name="arch" type="xml">
|
|
40
|
+
<tree>
|
|
41
|
+
<field name="repository_id" />
|
|
42
|
+
<field name="branch_id" />
|
|
43
|
+
<field name="cloned_branch" />
|
|
44
|
+
</tree>
|
|
45
|
+
</field>
|
|
46
|
+
</record>
|
|
47
|
+
|
|
48
|
+
<record id="odoo_repository_branch_view_search" model="ir.ui.view">
|
|
49
|
+
<field name="name">odoo.repository.branch.search</field>
|
|
50
|
+
<field name="model">odoo.repository.branch</field>
|
|
51
|
+
<field name="type">search</field>
|
|
52
|
+
<field name="arch" type="xml">
|
|
53
|
+
<search>
|
|
54
|
+
<field name="repository_id" />
|
|
55
|
+
<field name="branch_id" />
|
|
56
|
+
</search>
|
|
57
|
+
</field>
|
|
58
|
+
</record>
|
|
59
|
+
|
|
60
|
+
</odoo>
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
2
|
+
<!-- Copyright 2023 Camptocamp SA
|
|
3
|
+
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
|
4
|
+
<odoo>
|
|
5
|
+
|
|
6
|
+
<record id="odoo_repository_org_view_form" model="ir.ui.view">
|
|
7
|
+
<field name="name">odoo.repository.org.form</field>
|
|
8
|
+
<field name="model">odoo.repository.org</field>
|
|
9
|
+
<field name="arch" type="xml">
|
|
10
|
+
<form>
|
|
11
|
+
<sheet>
|
|
12
|
+
<group>
|
|
13
|
+
<field name="name" />
|
|
14
|
+
</group>
|
|
15
|
+
</sheet>
|
|
16
|
+
</form>
|
|
17
|
+
</field>
|
|
18
|
+
</record>
|
|
19
|
+
|
|
20
|
+
<record id="odoo_repository_org_view_tree" model="ir.ui.view">
|
|
21
|
+
<field name="name">odoo.repository.org.tree</field>
|
|
22
|
+
<field name="model">odoo.repository.org</field>
|
|
23
|
+
<field name="arch" type="xml">
|
|
24
|
+
<tree editable="bottom">
|
|
25
|
+
<field name="name" />
|
|
26
|
+
</tree>
|
|
27
|
+
</field>
|
|
28
|
+
</record>
|
|
29
|
+
|
|
30
|
+
<record id="odoo_repository_org_view_search" model="ir.ui.view">
|
|
31
|
+
<field name="name">odoo.repository.org.search</field>
|
|
32
|
+
<field name="model">odoo.repository.org</field>
|
|
33
|
+
<field name="type">search</field>
|
|
34
|
+
<field name="arch" type="xml">
|
|
35
|
+
<search>
|
|
36
|
+
<field name="name" />
|
|
37
|
+
</search>
|
|
38
|
+
</field>
|
|
39
|
+
</record>
|
|
40
|
+
|
|
41
|
+
<record id="odoo_repository_org_action" model="ir.actions.act_window">
|
|
42
|
+
<field name="name">Repository Organizations</field>
|
|
43
|
+
<field name="type">ir.actions.act_window</field>
|
|
44
|
+
<field name="res_model">odoo.repository.org</field>
|
|
45
|
+
<field name="view_id" ref="odoo_repository_org_view_tree" />
|
|
46
|
+
</record>
|
|
47
|
+
|
|
48
|
+
<menuitem
|
|
49
|
+
id="odoo_repository_org_menu"
|
|
50
|
+
parent="config_odoo_repository_menu"
|
|
51
|
+
action="odoo_repository_org_action"
|
|
52
|
+
/>
|
|
53
|
+
|
|
54
|
+
</odoo>
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
2
|
+
<!-- Copyright 2023 Camptocamp SA
|
|
3
|
+
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
|
4
|
+
<odoo>
|
|
5
|
+
|
|
6
|
+
<record id="res_config_settings_view_form" model="ir.ui.view">
|
|
7
|
+
<field name="name">res.config.settings.form.inherit</field>
|
|
8
|
+
<field name="model">res.config.settings</field>
|
|
9
|
+
<field name="inherit_id" ref="base_setup.res_config_settings_view_form" />
|
|
10
|
+
<field name="arch" type="xml">
|
|
11
|
+
<xpath expr="//div[hasclass('settings')]" position="inside">
|
|
12
|
+
<div
|
|
13
|
+
class="app_settings_block"
|
|
14
|
+
string="Odoo Repositories"
|
|
15
|
+
data-string="Odoo Repositories"
|
|
16
|
+
data-key="odoo_repository"
|
|
17
|
+
groups="odoo_repository.group_odoo_repository_manager"
|
|
18
|
+
>
|
|
19
|
+
<div id="odoo_repository">
|
|
20
|
+
<h2>Odoo Repositories</h2>
|
|
21
|
+
<div
|
|
22
|
+
class="row mt16 o_settings_container"
|
|
23
|
+
name="odoo_repository_storage_path"
|
|
24
|
+
>
|
|
25
|
+
<div class="o_setting_right_pane">
|
|
26
|
+
<span class="o_form_label">Storage local path</span>
|
|
27
|
+
<div class="text-muted">
|
|
28
|
+
Where to clone repositories on the local filesystem.
|
|
29
|
+
</div>
|
|
30
|
+
<div class="content-group">
|
|
31
|
+
<div class="mt16">
|
|
32
|
+
<field
|
|
33
|
+
name="config_odoo_repository_storage_path"
|
|
34
|
+
colspan="2"
|
|
35
|
+
placeholder="/var/lib/odoo-repository/"
|
|
36
|
+
/>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
<div
|
|
42
|
+
class="row mt16 o_settings_container"
|
|
43
|
+
name="odoo_repository_workaround_fs_errors"
|
|
44
|
+
>
|
|
45
|
+
<div class="col-xs-12 col-lg-6 o_setting_box">
|
|
46
|
+
<div class="o_setting_left_pane">
|
|
47
|
+
<field name="config_odoo_repository_workaround_fs_errors" />
|
|
48
|
+
</div>
|
|
49
|
+
<div class="o_setting_right_pane">
|
|
50
|
+
<span class="o_form_label">Workaround FS errors</span>
|
|
51
|
+
<div class="text-muted">
|
|
52
|
+
Fix file system permissions when cloning repositories.
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
<div
|
|
58
|
+
class="row mt16 o_settings_container"
|
|
59
|
+
name="odoo_repository_github_token"
|
|
60
|
+
>
|
|
61
|
+
<div class="o_setting_right_pane">
|
|
62
|
+
<span class="o_form_label">Default Authentication Token</span>
|
|
63
|
+
<div class="text-muted">
|
|
64
|
+
Default token used to clone repositories and authenticate on API like GitHub.
|
|
65
|
+
</div>
|
|
66
|
+
<div class="content-group">
|
|
67
|
+
<div class="mt16">
|
|
68
|
+
<field
|
|
69
|
+
name="config_odoo_repository_default_token_id"
|
|
70
|
+
options="{'no_open': True}"
|
|
71
|
+
colspan="2"
|
|
72
|
+
/>
|
|
73
|
+
</div>
|
|
74
|
+
</div>
|
|
75
|
+
<div class="text-muted">
|
|
76
|
+
If the environment variable <strong
|
|
77
|
+
>GITHUB_TOKEN</strong> is set on the running system, it will be used as fallback.
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
</div>
|
|
81
|
+
<div class="row mt16 o_settings_container" name="odoo_repository_main_node">
|
|
82
|
+
<div class="o_setting_right_pane">
|
|
83
|
+
<span class="o_form_label">Main Node</span>
|
|
84
|
+
<div class="text-muted">
|
|
85
|
+
Endpoint URL of the main node from which modules data can be fetched.
|
|
86
|
+
</div>
|
|
87
|
+
<div class="content-group">
|
|
88
|
+
<div class="mt16">
|
|
89
|
+
<field
|
|
90
|
+
name="config_odoo_repository_main_node_url"
|
|
91
|
+
colspan="2"
|
|
92
|
+
placeholder="https://example.net/odoo-repository/data"
|
|
93
|
+
/>
|
|
94
|
+
</div>
|
|
95
|
+
</div>
|
|
96
|
+
</div>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
</div>
|
|
100
|
+
</xpath>
|
|
101
|
+
</field>
|
|
102
|
+
</record>
|
|
103
|
+
|
|
104
|
+
<record id="action_odoo_repository_config_settings" model="ir.actions.act_window">
|
|
105
|
+
<field name="name">Settings</field>
|
|
106
|
+
<field name="type">ir.actions.act_window</field>
|
|
107
|
+
<field name="res_model">res.config.settings</field>
|
|
108
|
+
<field name="view_id" ref="res_config_settings_view_form" />
|
|
109
|
+
<field name="view_mode">form</field>
|
|
110
|
+
<field name="target">inline</field>
|
|
111
|
+
<field name="context">{'module' : 'odoo_repository', 'bin_size': False}</field>
|
|
112
|
+
</record>
|
|
113
|
+
|
|
114
|
+
<menuitem
|
|
115
|
+
id="settings_odoo_repository_menu"
|
|
116
|
+
name="Settings"
|
|
117
|
+
sequence="1"
|
|
118
|
+
action="action_odoo_repository_config_settings"
|
|
119
|
+
parent="config_odoo_repository_menu"
|
|
120
|
+
groups="odoo_repository.group_odoo_repository_manager"
|
|
121
|
+
/>
|
|
122
|
+
|
|
123
|
+
</odoo>
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
2
|
+
<!-- Copyright 2023 Camptocamp SA
|
|
3
|
+
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
|
4
|
+
<odoo>
|
|
5
|
+
|
|
6
|
+
<record id="ssh_key_view_form" model="ir.ui.view">
|
|
7
|
+
<field name="name">ssh.key.form</field>
|
|
8
|
+
<field name="model">ssh.key</field>
|
|
9
|
+
<field
|
|
10
|
+
name="groups_id"
|
|
11
|
+
eval="[(4,ref('odoo_repository.group_odoo_repository_manager'))]"
|
|
12
|
+
/>
|
|
13
|
+
<field name="arch" type="xml">
|
|
14
|
+
<form>
|
|
15
|
+
<sheet>
|
|
16
|
+
<group>
|
|
17
|
+
<field name="name" />
|
|
18
|
+
<field name="private_key" />
|
|
19
|
+
</group>
|
|
20
|
+
</sheet>
|
|
21
|
+
</form>
|
|
22
|
+
</field>
|
|
23
|
+
</record>
|
|
24
|
+
|
|
25
|
+
<record id="ssh_key_view_tree" model="ir.ui.view">
|
|
26
|
+
<field name="name">ssh.key.tree</field>
|
|
27
|
+
<field name="model">ssh.key</field>
|
|
28
|
+
<field name="arch" type="xml">
|
|
29
|
+
<tree>
|
|
30
|
+
<field name="name" />
|
|
31
|
+
</tree>
|
|
32
|
+
</field>
|
|
33
|
+
</record>
|
|
34
|
+
|
|
35
|
+
<record id="ssh_key_view_search" model="ir.ui.view">
|
|
36
|
+
<field name="name">ssh.key.search</field>
|
|
37
|
+
<field name="model">ssh.key</field>
|
|
38
|
+
<field name="type">search</field>
|
|
39
|
+
<field name="arch" type="xml">
|
|
40
|
+
<search>
|
|
41
|
+
<field name="name" />
|
|
42
|
+
</search>
|
|
43
|
+
</field>
|
|
44
|
+
</record>
|
|
45
|
+
|
|
46
|
+
<record id="ssh_key_action" model="ir.actions.act_window">
|
|
47
|
+
<field name="name">SSH Keys</field>
|
|
48
|
+
<field name="type">ir.actions.act_window</field>
|
|
49
|
+
<field name="res_model">ssh.key</field>
|
|
50
|
+
<field name="view_id" ref="ssh_key_view_tree" />
|
|
51
|
+
<field
|
|
52
|
+
name="groups_id"
|
|
53
|
+
eval="[(4,ref('odoo_repository.group_odoo_repository_manager'))]"
|
|
54
|
+
/>
|
|
55
|
+
</record>
|
|
56
|
+
|
|
57
|
+
<menuitem
|
|
58
|
+
id="ssh_key_menu"
|
|
59
|
+
parent="config_odoo_repository_menu"
|
|
60
|
+
action="ssh_key_action"
|
|
61
|
+
/>
|
|
62
|
+
|
|
63
|
+
</odoo>
|