[PORT] Odoo 20.0 compat pass: auto_install disables, ir.access.csv conversion, documents http/root/thread.cc/datas patches, trigger-dependency fixes

This commit is contained in:
1b-agent committed 2026-10-19 11:24:49 +00:00
1 parent 4d7ed91c27
commit f2b6066ad3
1174 files changed
+2145 -2260

No files matched your search

+1 -1
View File
@@ -1 +1 @@
{'name': 'Documents', 'summary': 'Collect, organize\xa0and share\xa0documents.', 'description': '\nApp to upload and manage your documents.\n ', 'category': 'Productivity/Documents', 'sequence': 80, 'version': '1.4', 'application': True, 'website': 'https://www.odoo.com/app/documents', 'depends': ['base', 'mail', 'portal', 'attachment_indexation', 'digest'], 'data': ['security/security.xml', 'security/ir.model.access.csv', 'data/digest_data.xml', 'data/mail_template_data.xml', 'data/mail_activity_type_data.xml', 'data/documents_tag_data.xml', 'data/documents_document_data.xml', 'data/mail_alias_data.xml', 'data/ir_config_parameter_data.xml', 'data/ir_cron_data.xml', 'data/documents_tour.xml', 'views/res_config_settings_views.xml', 'views/res_partner_views.xml', 'views/documents_access_views.xml', 'views/documents_document_views.xml', 'views/documents_folder_views.xml', 'views/documents_tag_views.xml', 'views/mail_activity_views.xml', 'views/mail_activity_plan_views.xml', 'views/mail_alias_views.xml', 'views/documents_menu_views.xml', 'views/documents_templates_portal.xml', 'views/documents_templates_share.xml', 'views/documents_templates_thumbnails.xml', 'views/ir_actions_views.xml', 'views/mail_compose_message_views.xml', 'views/mail_scheduled_message_views.xml', 'wizard/documents_link_to_record_wizard_views.xml', 'wizard/documents_operation_views.xml', 'wizard/documents_request_wizard_views.xml', 'wizard/documents_sharing_views.xml'], 'demo': ['demo/documents_document_demo.xml'], 'author': 'Odoo S.A.', 'license': 'LGPL-3', 'kpi_providers': ['models.kpi_provider:get_kpi_summary'], 'assets': {'web.assets_backend': ['documents/static/src/scss/documents_views.scss', 'documents/static/src/scss/documents_kanban_view.scss', 'documents/static/src/attachments/**/*', 'documents/static/src/core/**/*', 'documents/static/src/js/**/*', 'documents/static/src/mail/**/*', 'documents/static/src/owl/**/*', 'documents/static/src/utils.js', 'documents/static/src/views/**/*', 'documents/static/src/webclient/webclient.js', ('remove', 'documents/static/src/views/activity/**'), ('after', 'web/static/src/core/errors/error_dialogs.xml', 'documents/static/src/web/error_dialog/error_dialog_patch.xml'), 'documents/static/src/web/**/*', 'documents/static/src/components/**/*', 'documents/static/src/editor/**/*'], 'web.assets_backend_lazy': ['documents/static/src/views/activity/**'], 'web._assets_primary_variables': ['documents/static/src/scss/documents.variables.scss'], 'web.dark_mode_variables': [('before', 'documents/static/src/scss/documents.variables.scss', 'documents/static/src/scss/documents.variables.dark.scss')], 'documents.public_page_assets': [('include', 'web._assets_helpers'), ('include', 'web._assets_backend_helpers'), 'web/static/src/scss/pre_variables.scss', 'web/static/lib/bootstrap/scss/_variables.scss', 'web/static/lib/bootstrap/scss/_variables-dark.scss', 'web/static/lib/bootstrap/scss/_maps.scss', ('include', 'web._assets_bootstrap_backend'), 'documents/static/src/scss/documents_public_pages.scss'], 'documents.webclient': [('include', 'web.assets_backend'), 'documents/static/src/portal_webclient/**/*', 'web/static/src/start.js'], 'web.assets_tests': ['documents/static/tests/tours/*'], 'web.assets_unit_tests': ['documents/static/tests/**/*']}}
{'name': 'Documents', 'summary': 'Collect, organize\xa0and share\xa0documents.', 'description': '\nApp to upload and manage your documents.\n ', 'category': 'Productivity/Documents', 'sequence': 80, 'version': '1.4', 'application': True, 'website': 'https://www.odoo.com/app/documents', 'depends': ['base', 'mail', 'portal', 'attachment_indexation', 'digest'], 'data': ['security/security.xml', 'security/ir.access.csv', 'data/digest_data.xml', 'data/mail_template_data.xml', 'data/mail_activity_type_data.xml', 'data/documents_tag_data.xml', 'data/documents_document_data.xml', 'data/mail_alias_data.xml', 'data/ir_config_parameter_data.xml', 'data/ir_cron_data.xml', 'data/documents_tour.xml', 'views/res_config_settings_views.xml', 'views/res_partner_views.xml', 'views/documents_access_views.xml', 'views/documents_document_views.xml', 'views/documents_folder_views.xml', 'views/documents_tag_views.xml', 'views/mail_activity_views.xml', 'views/mail_activity_plan_views.xml', 'views/mail_alias_views.xml', 'views/documents_menu_views.xml', 'views/documents_templates_portal.xml', 'views/documents_templates_share.xml', 'views/documents_templates_thumbnails.xml', 'views/ir_actions_views.xml', 'views/mail_compose_message_views.xml', 'views/mail_scheduled_message_views.xml', 'wizard/documents_link_to_record_wizard_views.xml', 'wizard/documents_operation_views.xml', 'wizard/documents_request_wizard_views.xml', 'wizard/documents_sharing_views.xml'], 'demo': ['demo/documents_document_demo.xml'], 'author': 'Odoo S.A.', 'license': 'LGPL-3', 'kpi_providers': ['models.kpi_provider:get_kpi_summary'], 'assets': {'web.assets_backend': ['documents/static/src/scss/documents_views.scss', 'documents/static/src/scss/documents_kanban_view.scss', 'documents/static/src/attachments/**/*', 'documents/static/src/core/**/*', 'documents/static/src/js/**/*', 'documents/static/src/mail/**/*', 'documents/static/src/owl/**/*', 'documents/static/src/utils.js', 'documents/static/src/views/**/*', 'documents/static/src/webclient/webclient.js', ('remove', 'documents/static/src/views/activity/**'), ('after', 'web/static/src/core/errors/error_dialogs.xml', 'documents/static/src/web/error_dialog/error_dialog_patch.xml'), 'documents/static/src/web/**/*', 'documents/static/src/components/**/*', 'documents/static/src/editor/**/*'], 'web.assets_backend_lazy': ['documents/static/src/views/activity/**'], 'web._assets_primary_variables': ['documents/static/src/scss/documents.variables.scss'], 'web.dark_mode_variables': [('before', 'documents/static/src/scss/documents.variables.scss', 'documents/static/src/scss/documents.variables.dark.scss')], 'documents.public_page_assets': [('include', 'web._assets_helpers'), ('include', 'web._assets_backend_helpers'), 'web/static/src/scss/pre_variables.scss', 'web/static/lib/bootstrap/scss/_variables.scss', 'web/static/lib/bootstrap/scss/_variables-dark.scss', 'web/static/lib/bootstrap/scss/_maps.scss', ('include', 'web._assets_bootstrap_backend'), 'documents/static/src/scss/documents_public_pages.scss'], 'documents.webclient': [('include', 'web.assets_backend'), 'documents/static/src/portal_webclient/**/*', 'web/static/src/start.js'], 'web.assets_tests': ['documents/static/tests/tours/*'], 'web.assets_unit_tests': ['documents/static/tests/**/*']}}
+2 -1
View File
@@ -15,7 +15,8 @@ from werkzeug.exceptions import BadRequest, Forbidden
from odoo import fields, http, _
from odoo.exceptions import MissingError
from odoo.fields import Domain
from odoo.http import request, content_disposition
from odoo.http import request
from odoo.http.stream import content_disposition
from odoo.tools import replace_exceptions, str2bool, consteq
from odoo.addons.base.models.ir_qweb import keep_query
+2 -2
View File
@@ -36,7 +36,7 @@ def _sanitize_file_extension(extension):
class DocumentsDocument(models.Model):
_name = 'documents.document'
_description = 'Document'
_inherit = ['mail.thread.cc', 'mail.activity.mixin', 'mail.alias.mixin.optional']
_inherit = ['mail.thread', 'mail.activity.mixin', 'mail.alias.mixin.optional']
_mail_post_access = 'read'
_order = 'sequence, id desc'
_parent_name = 'folder_id'
@@ -50,7 +50,7 @@ class DocumentsDocument(models.Model):
is_editable_attachment = fields.Boolean(default=False, help='True if we can edit the link attachment.')
is_multipage = fields.Boolean(
'Is considered multipage', compute='_compute_is_multipage', store=True, readonly=False)
datas = fields.Binary(related='attachment_id.datas', related_sudo=True, readonly=False, prefetch=False)
datas = fields.Binary(related='attachment_id.raw', related_sudo=True, readonly=False, prefetch=False)
raw = fields.Binary(related='attachment_id.raw', related_sudo=True, readonly=False, prefetch=False)
file_extension = fields.Char('File Extension', copy=True, store=True, readonly=False,
compute='_compute_file_extension', inverse='_inverse_file_extension')
+21
View File
@@ -0,0 +1,21 @@
id,name,model_id,group_id/id,operation,domain
access_documents_access_base_group_portal,documents_access_base_group_portal,documents.access,base.group_portal,r,
access_documents_access_base_group_user,documents_access_base_group_user,documents.access,base.group_user,crud,
access_documents_attachment_base_group_portal,documents_attachment_base_group_portal,documents.document,base.group_portal,crud,
access_documents_attachment_base_group_user,documents_attachment_base_group_user,documents.document,base.group_user,crud,
access_documents_tag_base_group_portal,documents_tag_base_group_portal,documents.tag,base.group_portal,r,
access_documents_tag_base_group_user,documents_tag_base_group_user,documents.tag,base.group_user,r,
access_documents_tag_group_user,documents_tag_group_user,documents.tag,documents.group_documents_user,r,
access_documents_access_group_manager,documents_access_group_manager,documents.access,documents.group_documents_manager,crud,
access_documents_attachment_group_manager,documents_attachment_group_manager,documents.document,documents.group_documents_manager,crud,
access_documents_tag_group_manager,documents_tag_group_manager,documents.tag,documents.group_documents_manager,crud,
access_documents_access_tracking_base_group_system,documents_access_tracking_base_group_system,documents.access.tracking,base.group_system,crud,
access_documents_request_wizard,access.documents.request_wizard,documents.request.wizard,documents.group_documents_user,r,
access_documents_link_to_record_wizard,access.documents.link_to_record_wizard,documents.link.to.record.wizard,documents.group_documents_user,r,
access_mail_activity_plan_documents_manager,mail.activity.plan.documents.manager,mail.activity.plan,documents.group_documents_manager,crud,
access_mail_activity_plan_template_documents_manager,mail.activity.plan.template.documents.manager,mail.activity.plan.template,documents.group_documents_manager,crud,
access_documents_redirect_base_system_user,documents_redirect_base_system_user,documents.redirect,base.group_system,r,
access_documents_sharing_user,access.documents.sharing.user,documents.sharing,base.group_user,r,
access_documents_sharing_access_user,access.documents.sharing.access.user,documents.sharing.access,base.group_user,r,
access_documents_operation_portal,documents_operation_portal,documents.operation,base.group_portal,r,
access_documents_operation_user,documents_operation_user,documents.operation,base.group_user,r,
1 id name model_id group_id/id operation domain
2 access_documents_access_base_group_portal documents_access_base_group_portal documents.access base.group_portal r
3 access_documents_access_base_group_user documents_access_base_group_user documents.access base.group_user crud
4 access_documents_attachment_base_group_portal documents_attachment_base_group_portal documents.document base.group_portal crud
5 access_documents_attachment_base_group_user documents_attachment_base_group_user documents.document base.group_user crud
6 access_documents_tag_base_group_portal documents_tag_base_group_portal documents.tag base.group_portal r
7 access_documents_tag_base_group_user documents_tag_base_group_user documents.tag base.group_user r
8 access_documents_tag_group_user documents_tag_group_user documents.tag documents.group_documents_user r
9 access_documents_access_group_manager documents_access_group_manager documents.access documents.group_documents_manager crud
10 access_documents_attachment_group_manager documents_attachment_group_manager documents.document documents.group_documents_manager crud
11 access_documents_tag_group_manager documents_tag_group_manager documents.tag documents.group_documents_manager crud
12 access_documents_access_tracking_base_group_system documents_access_tracking_base_group_system documents.access.tracking base.group_system crud
13 access_documents_request_wizard access.documents.request_wizard documents.request.wizard documents.group_documents_user r
14 access_documents_link_to_record_wizard access.documents.link_to_record_wizard documents.link.to.record.wizard documents.group_documents_user r
15 access_mail_activity_plan_documents_manager mail.activity.plan.documents.manager mail.activity.plan documents.group_documents_manager crud
16 access_mail_activity_plan_template_documents_manager mail.activity.plan.template.documents.manager mail.activity.plan.template documents.group_documents_manager crud
17 access_documents_redirect_base_system_user documents_redirect_base_system_user documents.redirect base.group_system r
18 access_documents_sharing_user access.documents.sharing.user documents.sharing base.group_user r
19 access_documents_sharing_access_user access.documents.sharing.access.user documents.sharing.access base.group_user r
20 access_documents_operation_portal documents_operation_portal documents.operation base.group_portal r
21 access_documents_operation_user documents_operation_user documents.operation base.group_user r
-26
View File
@@ -1,26 +0,0 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_documents_access_base_group_portal,documents_access_base_group_portal,model_documents_access,base.group_portal,1,0,0,0
access_documents_access_base_group_user,documents_access_base_group_user,model_documents_access,base.group_user,1,1,1,1
access_documents_attachment_base_group_portal,documents_attachment_base_group_portal,model_documents_document,base.group_portal,1,1,1,1
access_documents_attachment_base_group_user,documents_attachment_base_group_user,model_documents_document,base.group_user,1,1,1,1
access_documents_tag_base_group_portal,documents_tag_base_group_portal,model_documents_tag,base.group_portal,1,0,0,0
access_documents_tag_base_group_user,documents_tag_base_group_user,model_documents_tag,base.group_user,1,0,0,0
access_documents_tag_group_user,documents_tag_group_user,model_documents_tag,documents.group_documents_user,1,0,0,0
access_documents_access_group_manager,documents_access_group_manager,model_documents_access,documents.group_documents_manager,1,1,1,1
access_documents_attachment_group_manager,documents_attachment_group_manager,model_documents_document,documents.group_documents_manager,1,1,1,1
access_documents_tag_group_manager,documents_tag_group_manager,model_documents_tag,documents.group_documents_manager,1,1,1,1
access_documents_access_tracking_base_group_system,documents_access_tracking_base_group_system,model_documents_access_tracking,base.group_system,1,1,1,1
access_documents_request_wizard,access.documents.request_wizard,model_documents_request_wizard,documents.group_documents_user,1,1,1,0
access_documents_link_to_record_wizard,access.documents.link_to_record_wizard,model_documents_link_to_record_wizard,documents.group_documents_user,1,1,1,0
access_mail_activity_plan_documents_manager,mail.activity.plan.documents.manager,mail.model_mail_activity_plan,documents.group_documents_manager,1,1,1,1
access_mail_activity_plan_template_documents_manager,mail.activity.plan.template.documents.manager,mail.model_mail_activity_plan_template,documents.group_documents_manager,1,1,1,1
access_documents_redirect_base_system_user,documents_redirect_base_system_user,model_documents_redirect,base.group_system,1,0,0,1
access_documents_sharing_user,access.documents.sharing.user,documents.model_documents_sharing,base.group_user,1,1,1,0
access_documents_sharing_access_user,access.documents.sharing.access.user,documents.model_documents_sharing_access,base.group_user,1,1,1,0
access_documents_operation_portal,documents_operation_portal,documents.model_documents_operation,base.group_portal,1,1,1,0
access_documents_operation_user,documents_operation_user,documents.model_documents_operation,base.group_user,1,1,1,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_documents_access_base_group_portal documents_access_base_group_portal model_documents_access base.group_portal 1 0 0 0
3 access_documents_access_base_group_user documents_access_base_group_user model_documents_access base.group_user 1 1 1 1
4 access_documents_attachment_base_group_portal documents_attachment_base_group_portal model_documents_document base.group_portal 1 1 1 1
5 access_documents_attachment_base_group_user documents_attachment_base_group_user model_documents_document base.group_user 1 1 1 1
6 access_documents_tag_base_group_portal documents_tag_base_group_portal model_documents_tag base.group_portal 1 0 0 0
7 access_documents_tag_base_group_user documents_tag_base_group_user model_documents_tag base.group_user 1 0 0 0
8 access_documents_tag_group_user documents_tag_group_user model_documents_tag documents.group_documents_user 1 0 0 0
9 access_documents_access_group_manager documents_access_group_manager model_documents_access documents.group_documents_manager 1 1 1 1
10 access_documents_attachment_group_manager documents_attachment_group_manager model_documents_document documents.group_documents_manager 1 1 1 1
11 access_documents_tag_group_manager documents_tag_group_manager model_documents_tag documents.group_documents_manager 1 1 1 1
12 access_documents_access_tracking_base_group_system documents_access_tracking_base_group_system model_documents_access_tracking base.group_system 1 1 1 1
13 access_documents_request_wizard access.documents.request_wizard model_documents_request_wizard documents.group_documents_user 1 1 1 0
14 access_documents_link_to_record_wizard access.documents.link_to_record_wizard model_documents_link_to_record_wizard documents.group_documents_user 1 1 1 0
15 access_mail_activity_plan_documents_manager mail.activity.plan.documents.manager mail.model_mail_activity_plan documents.group_documents_manager 1 1 1 1
16 access_mail_activity_plan_template_documents_manager mail.activity.plan.template.documents.manager mail.model_mail_activity_plan_template documents.group_documents_manager 1 1 1 1
17 access_documents_redirect_base_system_user documents_redirect_base_system_user model_documents_redirect base.group_system 1 0 0 1
18 access_documents_sharing_user access.documents.sharing.user documents.model_documents_sharing base.group_user 1 1 1 0
19 access_documents_sharing_access_user access.documents.sharing.access.user documents.model_documents_sharing_access base.group_user 1 1 1 0
20 access_documents_operation_portal documents_operation_portal documents.model_documents_operation base.group_portal 1 1 1 0
21 access_documents_operation_user documents_operation_user documents.model_documents_operation base.group_user 1 1 1 0
-109
View File
@@ -37,116 +37,7 @@
<!-- documents rules -->
<!-- duplicated for spreadsheetCellThreads in rule documents_spreadsheet.documents_document_thread_global_rule
Please update aforemetioned the rule accordingly -->
<record id="documents_document_global_rule" model="ir.rule">
<field name="name">Documents.document: global read rule</field>
<field name="model_id" ref="model_documents_document"/>
<field name="domain_force">[('user_permission', '!=', 'none')]</field>
<field name="perm_write" eval="False"/>
<field name="perm_create" eval="False"/>
<field name="perm_unlink" eval="False"/>
</record>
<record id="documents_document_global_create_rule" model="ir.rule">
<field name="name">Documents.document: global create rule</field>
<field name="model_id" ref="model_documents_document"/>
<field name="domain_force">[
'|', ('folder_id.user_permission', '=', 'edit'), ('folder_id', '=', False),
]</field>
<field name="perm_read" eval="False"/>
<field name="perm_unlink" eval="False"/>
<field name="perm_write" eval="False"/>
</record>
<record id="documents_document_global_write_rule" model="ir.rule">
<field name="name">Documents.document: global write rule</field>
<field name="model_id" ref="model_documents_document"/>
<field name="domain_force">[('user_permission', '=', 'edit')]</field>
<field name="perm_create" eval="False"/>
<field name="perm_read" eval="False"/>
<field name="perm_unlink" eval="False"/>
</record>
<!-- duplicated for spreadsheetCellThreads in rule documents_spreadsheet.spreadsheet_cell_thread_write_rule -->
<record id="documents_document_write_base_rule" model="ir.rule">
<field name="name">Documents.document: write+unlink base rule</field>
<field name="model_id" ref="model_documents_document"/>
<field name="groups" eval="[
(4, ref('base.group_public')),
(4, ref('base.group_portal')),
(4, ref('base.group_user')),
]"/>
<!-- Edit permission + not `_is_company_root_folder` -->
<field name="domain_force">[
('user_permission', '=', 'edit'),
'|', ('type', '!=', 'folder'),
'|', ('owner_id', '!=', False),
('folder_id', '!=', False)
]</field>
<field name="perm_read" eval="False"/>
<field name="perm_create" eval="False"/>
</record>
<record id="documents_document_write_manager_rule" model="ir.rule">
<field name="name">Documents.document: write+unlink manager rule</field>
<field name="model_id" ref="model_documents_document"/>
<field name="groups" eval="[(4, ref('documents.group_documents_manager'))]"/>
<field name="domain_force">[('user_permission', '=', 'edit')]</field>
<field name="perm_read" eval="False"/>
<field name="perm_create" eval="False"/>
</record>
<!-- same as documents.document -->
<record id="documents_access_global_rule_read" model="ir.rule">
<field name="name">Documents.access: global read rule</field>
<field name="model_id" ref="model_documents_access"/>
<field name="domain_force">[('document_id.user_permission', '!=', 'none')]</field>
<field name="perm_write" eval="False"/>
<field name="perm_create" eval="False"/>
<field name="perm_unlink" eval="False"/>
</record>
<!-- same as documents.document -->
<record id="documents_access_global_rule_write" model="ir.rule">
<field name="name">Documents.access: global write rule</field>
<field name="model_id" ref="model_documents_access"/>
<field name="domain_force">[('document_id.user_permission', '=', 'edit')]</field>
<field name="perm_read" eval="False"/>
</record>
<record id="mail_plan_rule_group_document_manager_document" model="ir.rule">
<field name="name">Manager can manage document plans</field>
<field name="groups" eval="[(4, ref('documents.group_documents_manager'))]"/>
<field name="model_id" ref="mail.model_mail_activity_plan"/>
<field name="domain_force">[('res_model', '=', 'documents.document')]</field>
<field name="perm_read" eval="False"/>
</record>
<record id="mail_plan_template_rule_group_document_manager_document" model="ir.rule">
<field name="name">Manager can manage document plan templates</field>
<field name="groups" eval="[(4, ref('documents.group_documents_manager'))]"/>
<field name="model_id" ref="mail.model_mail_activity_plan_template"/>
<field name="domain_force">[('plan_id.res_model', '=', 'documents.document')]</field>
<field name="perm_read" eval="False"/>
</record>
<record id="documents_tag_rule_portal" model="ir.rule">
<field name="name">Tag portal: Read access to the tags of the documents the user has access to</field>
<field name="model_id" ref="model_documents_tag"/>
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
<field name="domain_force">[('document_ids.user_permission', '!=', 'none')]</field>
<field name="perm_write" eval="False"/>
<field name="perm_create" eval="False"/>
<field name="perm_unlink" eval="False"/>
</record>
<record id="document_operation_rwu" model="ir.rule">
<field name="name">Documents Operation Rule</field>
<field name="model_id" ref="model_documents_operation"/>
<field name="domain_force">[('create_uid', '=', user.id)]</field>
<field name="perm_create" eval="False"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_unlink" eval="False"/>
</record>
</odoo>
+2 -1
View File
@@ -1,4 +1,5 @@
from odoo.http import request, root
from odoo.http import request
from odoo.http.router import root
from odoo.tools import file_open