Auto classify documents into DMS

dms_auto_classification
REPOSITORY
REPOSITORYOCA/dms
GIT
GIThttps://github.com/OCA/dms.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/dms/tree/18.0/dms_auto_classification
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYDocument Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSVíctor Martínez, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/dms
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:09
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/dms:
    - dms
odoo/odoo:
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - http_routing
    - onboarding
    - portal
    - web_editor
    - auth_signup
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Automatically classify files within a .zip file to the corresponding DMS
directory(s).

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
view_dms_classification_template_form dms.classification.template form New
view_dms_classification_template_tree dms.classification.template list New
view_wizard_dms_classification_form wizard.dms.classification form New
Models touched (3)

New fields (5)
  • company_id Many2one → res.company
    comodel_name='res.company' index=True store=True string='Company'
  • directory_pattern Char
  • filename_pattern Char
  • name Char
    required=True
  • sequence Integer
    default=10 required=True
Public methods (0)

No public methods.

New fields (6)
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> required=True string='Company'
  • data_file Binary
    required=True string='File'
  • data_filename Char
  • detail_ids One2many → wizard.dms.classification.detail
    comodel_name='wizard.dms.classification.detail' inverse_name='parent_id' string='Details'
  • state Selection
    default='draft' selection=[('draft', 'Draft'), ('analyze', 'Analyze')]
  • template_id Many2one → dms.classification.template
    comodel_name='dms.classification.template' domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]" required=True string='Template'
Public methods (2)
  • action_analyze(self)
    Process the zip file and generate details.
  • action_classify(self)

New fields (7)
  • data_file Binary
    required=True string='File content'
  • directory_id Many2one → dms.directory
    comodel_name='dms.directory' compute='_compute_directory_id' readonly=False store=True string='Directory'
  • file_id Many2one → dms.file
    comodel_name='dms.file' compute='_compute_file_id' readonly=True store=True string='File'
  • file_name Char
    compute='_compute_file_name' store=True string='File name'
  • full_path Char
    readonly=True required=True string='Full path'
  • parent_id Many2one → wizard.dms.classification
    comodel_name='wizard.dms.classification' string='Parent'
  • state Selection
    compute='_compute_state' readonly=True selection=[('to_classify', 'To classify'), ('classified', 'Classified')] store=True
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/dms
GIT
GIThttps://github.com/OCA/dms.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/dms/tree/16.0/dms_auto_classification
VERSION
VERSION 1.1.1
CATEGORY
CATEGORYDocument Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSVíctor Martínez, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/dms
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:42
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/dms:
    - dms
odoo/odoo:
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
    - http_routing
    - portal
    - web_editor
    - auth_signup
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
view_dms_classification_template_form dms.classification.template form New
view_dms_classification_template_tree dms.classification.template tree New
view_wizard_dms_classification_form wizard.dms.classification form New
Models touched (3)

New fields (5)
  • company_id Many2one → res.company
    comodel_name='res.company' index=True store=True string='Company'
  • directory_pattern Char
  • filename_pattern Char
  • name Char
    required=True
  • sequence Integer
    default=10 required=True
Public methods (0)

No public methods.

New fields (5)
  • data_file Binary
    required=True string='File'
  • data_filename Char
  • detail_ids One2many → wizard.dms.classification.detail
    comodel_name='wizard.dms.classification.detail' inverse_name='parent_id' string='Details'
  • state Selection
    default='draft' selection=[('draft', 'Draft'), ('analyze', 'Analyze')]
  • template_id Many2one → dms.classification.template
    comodel_name='dms.classification.template' required=True string='Template'
Public methods (2)
  • action_analyze(self)
    Process the zip file and generate details.
  • action_classify(self)

New fields (7)
  • data_file Binary
    required=True string='File content'
  • directory_id Many2one → dms.directory
    comodel_name='dms.directory' compute='_compute_directory_id' readonly=False store=True string='Directory'
  • file_id Many2one → dms.file
    comodel_name='dms.file' compute='_compute_file_id' readonly=True store=True string='File'
  • file_name Char
    compute='_compute_file_name' store=True string='File name'
  • full_path Char
    readonly='True' required=True string='Full path'
  • parent_id Many2one → wizard.dms.classification
    comodel_name='wizard.dms.classification' string='Parent'
  • state Selection
    compute='_compute_state' readonly=True selection=[('to_classify', 'To classify'), ('classified', 'Classified')] store=True
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/dms
GIT
GIThttps://github.com/OCA/dms.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/dms/tree/15.0/dms_auto_classification
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYDocument Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSVíctor Martínez, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/dms
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:31
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/dms:
    - dms
OCA/social:
    - mail_preview_base
OCA/web:
    - web_drop_target
odoo/odoo:
    - web
    - base
    - mail
    - base_setup
    - bus
    - web_tour
    - http_routing
    - portal
    - web_editor
    - auth_signup
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
view_dms_classification_template_form dms.classification.template form New
view_dms_classification_template_tree dms.classification.template tree New
view_wizard_dms_classification_form wizard.dms.classification form New
Models touched (3)

New fields (5)
  • company_id Many2one → res.company
    comodel_name='res.company' index=True store=True string='Company'
  • directory_pattern Char
  • filename_pattern Char
  • name Char
    required=True
  • sequence Integer
    default=10 required=True
Public methods (0)

No public methods.

New fields (4)
  • data_file Binary
    required=True string='File'
  • detail_ids One2many → wizard.dms.classification.detail
    comodel_name='wizard.dms.classification.detail' inverse_name='parent_id' string='Details'
  • state Selection
    default='draft' selection=[('draft', 'Draft'), ('analyze', 'Analyze')]
  • template_id Many2one → dms.classification.template
    comodel_name='dms.classification.template' required=True string='Template'
Public methods (2)
  • action_analyze(self)
    Process the zip file and generate details.
  • action_classify(self)

New fields (7)
  • data_file Binary
    required=True string='File'
  • directory_id Many2one → dms.directory
    comodel_name='dms.directory' compute='_compute_directory_id' readonly=False store=True string='Directory'
  • file_id Many2one → dms.file
    comodel_name='dms.file' compute='_compute_file_id' readonly=True store=True string='File'
  • file_name Char
    compute='_compute_file_name' store=True string='File name'
  • full_path Char
    readonly='True' required=True string='Full path'
  • parent_id Many2one → wizard.dms.classification
    comodel_name='wizard.dms.classification' string='Parent'
  • state Selection
    compute='_compute_state' readonly=True selection=[('to_classify', 'To classify'), ('classified', 'Classified')] store=True
Public methods (0)

No public methods.

STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/dms
PULL REQUEST
PULL REQUEST[19.0][MIG] dms_auto_classification: Migration to 19.0 (#485)