-
-
Notifications
You must be signed in to change notification settings - Fork 175
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
remove custom comment remove custom comment remove custom comment fix pre-commit fix pre-commit
- Loading branch information
Showing
10 changed files
with
164 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from . import models |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
{ | ||
"name": "Add dms field for account", | ||
"version": "16.0.1.0.0", | ||
"category": "Accounting/Accounting", | ||
"website": "https://github.com/OCA/dms", | ||
"author": "Agent ERP GmbH,Odoo Community Association (OCA)", | ||
"depends": ["account", "dms_field"], | ||
"data": ["views/account_move_view.xml"], | ||
"demo": ["demo/account_dms_data.xml"], | ||
"installable": True, | ||
"license": "LGPL-3", | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
<?xml version="1.0" encoding="utf-8" ?> | ||
<odoo> | ||
<record id="read_access_account_move_group" model="dms.access.group"> | ||
<field name="name">Everyone for Account DMS</field> | ||
<field name="group_ids" eval="[(4, ref('account.group_account_invoice'))]" /> | ||
<field name="perm_create" eval="True" /> | ||
<field name="perm_write" eval="True" /> | ||
<field name="perm_unlink" eval="True" /> | ||
</record> | ||
|
||
<record id="field_template_account" model="dms.field.template"> | ||
<field name="name">Account</field> | ||
<field name="storage_id" ref="dms.storage_demo" /> | ||
<field name="model_id" ref="account.model_account_move" /> | ||
<field name="user_field_id" ref="account.field_account_move__user_id" /> | ||
<field name="group_ids" eval="[(4, ref('read_access_account_move_group'))]" /> | ||
</record> | ||
|
||
<function model="dms.field.template" name="_create_dms_directory"> | ||
<value eval="[ref('field_template_account')]" /> | ||
</function> | ||
</odoo> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
from . import dms_field_template | ||
from . import account_move | ||
from . import dms_directory |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
from odoo import models | ||
|
||
|
||
class AccountMove(models.Model): | ||
_name = "account.move" | ||
_inherit = ["account.move", "dms.field.mixin"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
from odoo import _, api, models | ||
from odoo.exceptions import ValidationError | ||
|
||
from odoo.addons.dms.tools.file import check_name | ||
|
||
|
||
class DmsDirectory(models.Model): | ||
_inherit = "dms.directory" | ||
|
||
@api.constrains("name") | ||
def _check_name(self): | ||
for record in self: | ||
name = record.name | ||
if record.res_model == "account.move": | ||
name = name.replace("/", "-") | ||
if self.env.context.get("check_name", True) and not check_name(name): | ||
raise ValidationError(_("The directory name is invalid.")) | ||
if record.is_root_directory: | ||
childs = record.sudo().storage_id.root_directory_ids.name_get() | ||
else: | ||
childs = record.sudo().parent_id.child_directory_ids.name_get() | ||
if list( | ||
filter( | ||
lambda child: child[1] == record.name and child[0] != record.id, | ||
childs, | ||
) | ||
): | ||
raise ValidationError( | ||
_("A directory with the same name already exists.") | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
from odoo import models | ||
|
||
|
||
class DmsFieldTemplate(models.Model): | ||
_inherit = "dms.field.template" | ||
|
||
def _create_dms_directory(self): | ||
"""New method to define the directory automatically in demo data avoiding | ||
error if it already exists.""" | ||
self.ensure_one() | ||
if not self.dms_directory_ids: | ||
self.with_context( | ||
res_model=self._name, res_id=self.id | ||
).create_dms_directory() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from . import test_account_dms_field |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
from odoo.addons.base.tests.common import TransactionCase | ||
|
||
|
||
class TestAccountDmsField(TransactionCase): | ||
def setUp(self): | ||
super(TestAccountDmsField, self).setUp() | ||
self.template = self.env.ref("account_dms_field.field_template_account") | ||
self.storage = self.template.storage_id | ||
self.access_group = self.template.group_ids | ||
self.account_model = self.env["account.move"] | ||
self.partner = self.env.ref("base.res_partner_12") | ||
self.test_directory = self.env["dms.directory"].create( | ||
{ | ||
"name": "Test Directory", | ||
"parent_id": self.template.dms_directory_ids[0].id, | ||
"storage_id": self.template.storage_id.id, | ||
} | ||
) | ||
|
||
def test_01_account_document_directory(self): | ||
template_ctx = self.template.with_context( | ||
res_model=self.template._name, res_id=self.template.id | ||
) | ||
template_ctx._create_dms_directory() | ||
account_move = self.account_model.create( | ||
{ | ||
"partner_id": self.partner.id, | ||
} | ||
) | ||
account_move.invalidate_model() | ||
directory = account_move.dms_directory_ids | ||
# Assert that only one directory is created for the account move. | ||
self.assertEqual(len(directory), 1, "Directory length must be 1.") | ||
# Assert that the storage associated with the directory is the same as the | ||
# template's storage. | ||
self.assertEqual( | ||
directory.storage_id, | ||
self.storage, | ||
"Account move directory storage is different from the template storage.", | ||
) | ||
# Assert that the custom access group is present in the directory's group | ||
# list. | ||
self.assertIn( | ||
self.access_group, | ||
directory.group_ids, | ||
"Account move directory groups are different from the template groups.", | ||
) | ||
# Map the names of child directories related to the account move directory. | ||
child_directory_names = directory.mapped("child_directory_ids.name") | ||
# Assert that a specific child directory, "Test Directory", exists. | ||
self.assertIn( | ||
"Test Directory", | ||
child_directory_names, | ||
"Test Directory is not in the child directory of the account move " | ||
"directory.", | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
<?xml version="1.0" encoding="UTF-8" ?> | ||
<odoo> | ||
<record id="view_move_form_inherit_account_dms_field" model="ir.ui.view"> | ||
<field name="name">view.move.form.inherit.account.dms.field</field> | ||
<field name="model">account.move</field> | ||
<field name="inherit_id" ref="account.view_move_form" /> | ||
<field name="arch" type="xml"> | ||
<xpath expr="//notebook" position="inside"> | ||
<page | ||
name="documents" | ||
string="Documents" | ||
attrs="{'invisible': [('id', '=', False)]}" | ||
> | ||
<field name="dms_directory_ids" mode="dms_list" /> | ||
</page> | ||
</xpath> | ||
</field> | ||
</record> | ||
</odoo> |