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.
Files changed (77) hide show
  1. odoo/addons/odoo_repository/README.rst +81 -0
  2. odoo/addons/odoo_repository/__init__.py +2 -0
  3. odoo/addons/odoo_repository/__manifest__.py +58 -0
  4. odoo/addons/odoo_repository/controllers/__init__.py +1 -0
  5. odoo/addons/odoo_repository/controllers/main.py +32 -0
  6. odoo/addons/odoo_repository/data/ir_cron.xml +38 -0
  7. odoo/addons/odoo_repository/data/odoo.repository.csv +216 -0
  8. odoo/addons/odoo_repository/data/odoo_branch.xml +82 -0
  9. odoo/addons/odoo_repository/data/odoo_module.xml +16 -0
  10. odoo/addons/odoo_repository/data/odoo_repository.xml +71 -0
  11. odoo/addons/odoo_repository/data/odoo_repository_addons_path.xml +59 -0
  12. odoo/addons/odoo_repository/data/odoo_repository_org.xml +14 -0
  13. odoo/addons/odoo_repository/data/queue_job.xml +56 -0
  14. odoo/addons/odoo_repository/lib/__init__.py +0 -0
  15. odoo/addons/odoo_repository/lib/scanner.py +1302 -0
  16. odoo/addons/odoo_repository/migrations/16.0.1.1.0/post-migration.py +26 -0
  17. odoo/addons/odoo_repository/migrations/16.0.1.2.0/pre-migration.py +43 -0
  18. odoo/addons/odoo_repository/migrations/16.0.1.3.0/post-migration.py +19 -0
  19. odoo/addons/odoo_repository/models/__init__.py +18 -0
  20. odoo/addons/odoo_repository/models/authentication_token.py +12 -0
  21. odoo/addons/odoo_repository/models/odoo_author.py +16 -0
  22. odoo/addons/odoo_repository/models/odoo_branch.py +111 -0
  23. odoo/addons/odoo_repository/models/odoo_license.py +16 -0
  24. odoo/addons/odoo_repository/models/odoo_maintainer.py +31 -0
  25. odoo/addons/odoo_repository/models/odoo_module.py +24 -0
  26. odoo/addons/odoo_repository/models/odoo_module_branch.py +873 -0
  27. odoo/addons/odoo_repository/models/odoo_module_branch_version.py +123 -0
  28. odoo/addons/odoo_repository/models/odoo_module_category.py +15 -0
  29. odoo/addons/odoo_repository/models/odoo_module_dev_status.py +15 -0
  30. odoo/addons/odoo_repository/models/odoo_python_dependency.py +16 -0
  31. odoo/addons/odoo_repository/models/odoo_repository.py +664 -0
  32. odoo/addons/odoo_repository/models/odoo_repository_addons_path.py +40 -0
  33. odoo/addons/odoo_repository/models/odoo_repository_branch.py +98 -0
  34. odoo/addons/odoo_repository/models/odoo_repository_org.py +23 -0
  35. odoo/addons/odoo_repository/models/res_company.py +23 -0
  36. odoo/addons/odoo_repository/models/res_config_settings.py +23 -0
  37. odoo/addons/odoo_repository/models/ssh_key.py +12 -0
  38. odoo/addons/odoo_repository/readme/CONTRIBUTORS.rst +2 -0
  39. odoo/addons/odoo_repository/readme/DESCRIPTION.rst +1 -0
  40. odoo/addons/odoo_repository/security/ir.model.access.csv +27 -0
  41. odoo/addons/odoo_repository/security/res_groups.xml +25 -0
  42. odoo/addons/odoo_repository/static/description/README +4 -0
  43. odoo/addons/odoo_repository/static/description/icon.png +0 -0
  44. odoo/addons/odoo_repository/static/description/index.html +430 -0
  45. odoo/addons/odoo_repository/tests/__init__.py +6 -0
  46. odoo/addons/odoo_repository/tests/common.py +162 -0
  47. odoo/addons/odoo_repository/tests/test_base_scanner.py +214 -0
  48. odoo/addons/odoo_repository/tests/test_odoo_module_branch.py +97 -0
  49. odoo/addons/odoo_repository/tests/test_odoo_repository_scan.py +242 -0
  50. odoo/addons/odoo_repository/tests/test_repository_scanner.py +215 -0
  51. odoo/addons/odoo_repository/tests/test_sync_node.py +55 -0
  52. odoo/addons/odoo_repository/tests/test_utils.py +25 -0
  53. odoo/addons/odoo_repository/utils/__init__.py +0 -0
  54. odoo/addons/odoo_repository/utils/github.py +30 -0
  55. odoo/addons/odoo_repository/utils/module.py +25 -0
  56. odoo/addons/odoo_repository/utils/scanner.py +90 -0
  57. odoo/addons/odoo_repository/views/authentication_token.xml +63 -0
  58. odoo/addons/odoo_repository/views/menu.xml +38 -0
  59. odoo/addons/odoo_repository/views/odoo_author.xml +54 -0
  60. odoo/addons/odoo_repository/views/odoo_branch.xml +84 -0
  61. odoo/addons/odoo_repository/views/odoo_license.xml +40 -0
  62. odoo/addons/odoo_repository/views/odoo_maintainer.xml +69 -0
  63. odoo/addons/odoo_repository/views/odoo_module.xml +90 -0
  64. odoo/addons/odoo_repository/views/odoo_module_branch.xml +353 -0
  65. odoo/addons/odoo_repository/views/odoo_module_category.xml +40 -0
  66. odoo/addons/odoo_repository/views/odoo_module_dev_status.xml +40 -0
  67. odoo/addons/odoo_repository/views/odoo_python_dependency.xml +40 -0
  68. odoo/addons/odoo_repository/views/odoo_repository.xml +165 -0
  69. odoo/addons/odoo_repository/views/odoo_repository_addons_path.xml +49 -0
  70. odoo/addons/odoo_repository/views/odoo_repository_branch.xml +60 -0
  71. odoo/addons/odoo_repository/views/odoo_repository_org.xml +54 -0
  72. odoo/addons/odoo_repository/views/res_config_settings.xml +123 -0
  73. odoo/addons/odoo_repository/views/ssh_key.xml +63 -0
  74. odoo_addon_odoo_repository-16.0.1.3.0.13.dist-info/METADATA +100 -0
  75. odoo_addon_odoo_repository-16.0.1.3.0.13.dist-info/RECORD +77 -0
  76. odoo_addon_odoo_repository-16.0.1.3.0.13.dist-info/WHEEL +5 -0
  77. 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>