Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
116 changes: 116 additions & 0 deletions dms_auto_classification/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
================================
Auto classify documents into DMS
================================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:4b8df517cdad94a806c89521ecfd60b1505a9bf4f71ac75b281321313237b66e
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fdms-lightgray.png?logo=github
:target: https://github.com/OCA/dms/tree/19.0/dms_auto_classification
:alt: OCA/dms
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/dms-19-0/dms-19-0-dms_auto_classification
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/dms&target_branch=19.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

Automatically classify files within a .zip file to the corresponding DMS
directory(s).

**Table of contents**

.. contents::
:local:

Configuration
=============

1. Go to Documents / Configuration / Classification Templates and create
a new template.
2. You can set patterns (regex expressions) for filenames and
directories.

Example of filename pattern to use only .txt files: .txt$ Directory
pattern example 1: Documents Directory pattern example 1: Documents /
Data

If the pattern doesn't contain path separators (/), the file name will
be search across all the subdirectories.

Usage
=====

1. Go to Documents / Auto Classification and select a template and a
.zip file.
2. Press the Analyze button
3. As many lines will be set as the number of files contained in the
.zip file and apply the filename pattern.
4. The full path to the file will be displayed in each detail line.
5. Press the Classify button
6. The files (dms.file) will be created in the corresponding
directories.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/dms/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/dms/issues/new?body=module:%20dms_auto_classification%0Aversion:%2019.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* Tecnativa

Contributors
------------

- `Tecnativa <https://www.tecnativa.com>`__:

- Víctor Martínez
- Pedro M. Baeza

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

.. |maintainer-victoralmau| image:: https://github.com/victoralmau.png?size=40px
:target: https://github.com/victoralmau
:alt: victoralmau

Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-victoralmau|

This module is part of the `OCA/dms <https://github.com/OCA/dms/tree/19.0/dms_auto_classification>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
4 changes: 4 additions & 0 deletions dms_auto_classification/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).

from . import models
from . import wizards
20 changes: 20 additions & 0 deletions dms_auto_classification/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Copyright 2024 Tecnativa - Víctor Martínez
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
"name": "Auto classify documents into DMS",
"version": "19.0.1.0.0",
"category": "Document Management",
"website": "https://github.com/OCA/dms",
"author": "Tecnativa, Odoo Community Association (OCA)",
"license": "AGPL-3",
"depends": ["dms"],
"installable": True,
"data": [
"security/ir.model.access.csv",
"security/security.xml",
"views/dms_classification_template_views.xml",
"wizards/wizard_dms_classification_views.xml",
],
"demo": ["demo/dms_classification_template_demo.xml"],
"maintainers": ["victoralmau"],
}
11 changes: 11 additions & 0 deletions dms_auto_classification/demo/dms_classification_template_demo.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record
id="dms_classification_template_documents"
model="dms.classification.template"
>
<field name="name">Documents template</field>
<field name="filename_pattern">.txt$</field>
<field name="directory_pattern">Documents</field>
</record>
</odoo>
207 changes: 207 additions & 0 deletions dms_auto_classification/i18n/dms_auto_classification.pot
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * dms_auto_classification
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"

#. module: dms_auto_classification
#: model:ir.model.fields.selection,name:dms_auto_classification.selection__wizard_dms_classification__state__analyze
#: model_terms:ir.ui.view,arch_db:dms_auto_classification.view_wizard_dms_classification_form
msgid "Analyze"
msgstr ""

#. module: dms_auto_classification
#: model:ir.actions.act_window,name:dms_auto_classification.action_wizard_dms_classification
#: model:ir.ui.menu,name:dms_auto_classification.menu_wizard_dms_classification
msgid "Auto Classification"
msgstr ""

#. module: dms_auto_classification
#: model_terms:ir.ui.view,arch_db:dms_auto_classification.view_wizard_dms_classification_form
msgid "Cancel"
msgstr ""

#. module: dms_auto_classification
#: model:ir.actions.act_window,name:dms_auto_classification.action_dms_classification_template
#: model:ir.ui.menu,name:dms_auto_classification.menu_dms_classification_template
msgid "Classification Templates"
msgstr ""

#. module: dms_auto_classification
#: model:ir.model.fields.selection,name:dms_auto_classification.selection__wizard_dms_classification_detail__state__classified
msgid "Classified"
msgstr ""

#. module: dms_auto_classification
#: model_terms:ir.ui.view,arch_db:dms_auto_classification.view_wizard_dms_classification_form
msgid "Classify"
msgstr ""

#. module: dms_auto_classification
#: model:ir.model.fields,field_description:dms_auto_classification.field_dms_classification_template__company_id
msgid "Company"
msgstr ""

#. module: dms_auto_classification
#: model:ir.model.fields,field_description:dms_auto_classification.field_dms_classification_template__create_uid
#: model:ir.model.fields,field_description:dms_auto_classification.field_wizard_dms_classification__create_uid
#: model:ir.model.fields,field_description:dms_auto_classification.field_wizard_dms_classification_detail__create_uid
msgid "Created by"
msgstr ""

#. module: dms_auto_classification
#: model:ir.model.fields,field_description:dms_auto_classification.field_dms_classification_template__create_date
#: model:ir.model.fields,field_description:dms_auto_classification.field_wizard_dms_classification__create_date
#: model:ir.model.fields,field_description:dms_auto_classification.field_wizard_dms_classification_detail__create_date
msgid "Created on"
msgstr ""

#. module: dms_auto_classification
#: model:ir.model.fields,field_description:dms_auto_classification.field_wizard_dms_classification__data_filename
msgid "Data Filename"
msgstr ""

#. module: dms_auto_classification
#: model:ir.model.fields,field_description:dms_auto_classification.field_wizard_dms_classification__detail_ids
#: model_terms:ir.ui.view,arch_db:dms_auto_classification.view_wizard_dms_classification_form
msgid "Details"
msgstr ""

#. module: dms_auto_classification
#: model:ir.model.fields,field_description:dms_auto_classification.field_wizard_dms_classification_detail__directory_id
msgid "Directory"
msgstr ""

#. module: dms_auto_classification
#: model:ir.model.fields,field_description:dms_auto_classification.field_dms_classification_template__directory_pattern
msgid "Directory Pattern"
msgstr ""

#. module: dms_auto_classification
#: model:ir.model.fields,field_description:dms_auto_classification.field_dms_classification_template__display_name
#: model:ir.model.fields,field_description:dms_auto_classification.field_wizard_dms_classification__display_name
#: model:ir.model.fields,field_description:dms_auto_classification.field_wizard_dms_classification_detail__display_name
msgid "Display Name"
msgstr ""

#. module: dms_auto_classification
#: model:ir.model,name:dms_auto_classification.model_dms_classification_template
msgid "Dms Classification Template"
msgstr ""

#. module: dms_auto_classification
#: model:ir.model.fields.selection,name:dms_auto_classification.selection__wizard_dms_classification__state__draft
msgid "Draft"
msgstr ""

#. module: dms_auto_classification
#: model:ir.model.fields,field_description:dms_auto_classification.field_wizard_dms_classification__data_file
#: model:ir.model.fields,field_description:dms_auto_classification.field_wizard_dms_classification_detail__file_id
msgid "File"
msgstr ""

#. module: dms_auto_classification
#: model:ir.model.fields,field_description:dms_auto_classification.field_wizard_dms_classification_detail__data_file
msgid "File content"
msgstr ""

#. module: dms_auto_classification
#: model:ir.model.fields,field_description:dms_auto_classification.field_wizard_dms_classification_detail__file_name
#: model_terms:ir.ui.view,arch_db:dms_auto_classification.view_wizard_dms_classification_form
msgid "File name"
msgstr ""

#. module: dms_auto_classification
#: model:ir.model.fields,field_description:dms_auto_classification.field_dms_classification_template__filename_pattern
msgid "Filename Pattern"
msgstr ""

#. module: dms_auto_classification
#: model:ir.model.fields,field_description:dms_auto_classification.field_wizard_dms_classification_detail__full_path
msgid "Full path"
msgstr ""

#. module: dms_auto_classification
#: model:ir.model.fields,field_description:dms_auto_classification.field_dms_classification_template__id
#: model:ir.model.fields,field_description:dms_auto_classification.field_wizard_dms_classification__id
#: model:ir.model.fields,field_description:dms_auto_classification.field_wizard_dms_classification_detail__id
msgid "ID"
msgstr ""

#. module: dms_auto_classification
#: model:ir.model.fields,field_description:dms_auto_classification.field_dms_classification_template____last_update
#: model:ir.model.fields,field_description:dms_auto_classification.field_wizard_dms_classification____last_update
#: model:ir.model.fields,field_description:dms_auto_classification.field_wizard_dms_classification_detail____last_update
msgid "Last Modified on"
msgstr ""

#. module: dms_auto_classification
#: model:ir.model.fields,field_description:dms_auto_classification.field_dms_classification_template__write_uid
#: model:ir.model.fields,field_description:dms_auto_classification.field_wizard_dms_classification__write_uid
#: model:ir.model.fields,field_description:dms_auto_classification.field_wizard_dms_classification_detail__write_uid
msgid "Last Updated by"
msgstr ""

#. module: dms_auto_classification
#: model:ir.model.fields,field_description:dms_auto_classification.field_dms_classification_template__write_date
#: model:ir.model.fields,field_description:dms_auto_classification.field_wizard_dms_classification__write_date
#: model:ir.model.fields,field_description:dms_auto_classification.field_wizard_dms_classification_detail__write_date
msgid "Last Updated on"
msgstr ""

#. module: dms_auto_classification
#: model:ir.model.fields,field_description:dms_auto_classification.field_dms_classification_template__name
msgid "Name"
msgstr ""

#. module: dms_auto_classification
#. odoo-python
#: code:addons/dms_auto_classification/wizards/wizard_dms_classification.py:0
#, python-format
msgid "Only .zip files are allowed"
msgstr ""

#. module: dms_auto_classification
#: model:ir.model.fields,field_description:dms_auto_classification.field_wizard_dms_classification_detail__parent_id
msgid "Parent"
msgstr ""

#. module: dms_auto_classification
#: model:ir.model.fields,field_description:dms_auto_classification.field_dms_classification_template__sequence
msgid "Sequence"
msgstr ""

#. module: dms_auto_classification
#: model:ir.model.fields,field_description:dms_auto_classification.field_wizard_dms_classification__state
#: model:ir.model.fields,field_description:dms_auto_classification.field_wizard_dms_classification_detail__state
msgid "State"
msgstr ""

#. module: dms_auto_classification
#: model:ir.model.fields,field_description:dms_auto_classification.field_wizard_dms_classification__template_id
msgid "Template"
msgstr ""

#. module: dms_auto_classification
#: model:ir.model.fields.selection,name:dms_auto_classification.selection__wizard_dms_classification_detail__state__to_classify
msgid "To classify"
msgstr ""

#. module: dms_auto_classification
#: model:ir.model,name:dms_auto_classification.model_wizard_dms_classification
msgid "Wizard Dms Classification"
msgstr ""

#. module: dms_auto_classification
#: model:ir.model,name:dms_auto_classification.model_wizard_dms_classification_detail
msgid "Wizard Dms Classification Detail"
msgstr ""
Loading
Loading