Skip to content

Commit 8221789

Browse files
Merge pull request #374 from OpenSPP/307-develop-a-new-module-to-replace-the-oca-dms-in-the-cr-module
Add DMS module and integrate with change request
2 parents 773b7ad + 392d140 commit 8221789

File tree

96 files changed

+1515
-321
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

96 files changed

+1515
-321
lines changed

requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# generated from manifests external_dependencies
2+
PIL
23
PyLD
34
bravado_core
45
faker

spp_change_request/__manifest__.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
"spp_service_points",
2424
"spp_area",
2525
"spp_scan_id_document",
26+
"spp_dms",
2627
# "dms_field",
2728
],
2829
"data": [
@@ -56,6 +57,3 @@
5657
"installable": True,
5758
"auto_install": False,
5859
}
59-
60-
# "spp_idqueue",
61-
# "spp_event_data",

spp_change_request/data/dms.xml

Lines changed: 15 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,32 +4,24 @@ Part of OpenSPP. See LICENSE file for full copyright and licensing details.
44
-->
55
<odoo noupdate="0">
66

7-
<record id="dms_access_group" model="dms.access.group">
8-
<field name="name">Change Request DMS Group</field>
9-
<field
10-
name="group_ids"
11-
eval="[
12-
(4, ref('g2p_registry_base.group_g2p_admin')),
13-
(4, ref('spp_change_request.group_spp_change_request_administrator')),
14-
(4, ref('spp_change_request.group_spp_change_request_validator')),
15-
(4, ref('spp_change_request.group_spp_change_request_agent')),
16-
(4, ref('spp_change_request.group_spp_change_request_hq_validator')),
17-
(4, ref('spp_change_request.group_spp_change_request_local_validator')),
18-
(4, ref('spp_change_request.group_spp_change_request_applicator'))
19-
]"
20-
/>
21-
<field name="perm_create" eval="True" />
22-
<field name="perm_write" eval="True" />
23-
<field name="perm_unlink" eval="True" />
7+
<!-- Common Categories -->
8+
<record id="spp_dms_birth_certificate" model="spp.dms.category">
9+
<field name="name">Birth Certificate</field>
2410
</record>
25-
<record id="dms_change_request_storage" model="dms.storage">
26-
<field name="name">Change Requests storage</field>
27-
<field name="save_type">file</field>
28-
<field name="field_default_group_id" ref="spp_change_request.dms_access_group" />
11+
12+
<record id="spp_dms_applicant_uid_card" model="spp.dms.category">
13+
<field name="name">Applicant UID Card</field>
14+
</record>
15+
16+
<record id="spp_dms_custody_certificate" model="spp.dms.category">
17+
<field name="name">Custody Certificate</field>
18+
</record>
19+
20+
<record id="spp_dms_uid_card" model="spp.dms.category">
21+
<field name="name">UID Card</field>
2922
</record>
3023

31-
<!-- Parent Category -->
32-
<record id="pds_dms_extra_documents" model="dms.category">
24+
<record id="pds_dms_extra_documents" model="spp.dms.category">
3325
<field name="name">Extra Documents</field>
3426
</record>
3527

spp_change_request/models/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@
44
from . import change_request
55
from . import change_request_stage
66
from . import dms_file
7+
from . import dms_directory
78
from . import registry
89
from . import mixins

spp_change_request/models/change_request.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,14 @@ class ChangeRequestBase(models.Model):
130130

131131
current_user_assigned = fields.Boolean(compute="_compute_current_user_assigned", default=False)
132132

133+
# DMS Directories
134+
dms_directory_ids = fields.One2many(
135+
"spp.dms.directory",
136+
"change_request_id",
137+
string="DMS Directories",
138+
auto_join=True,
139+
)
140+
133141
@api.model
134142
def create(self, vals):
135143
"""
@@ -672,15 +680,10 @@ def create_request_detail(self):
672680
# Set the request_type_ref_id
673681
res_model = rec.request_type
674682
# Set the dms directory
675-
_logger.info("Change Request: DMS Directory Creation (%s)" % len(self.dms_directory_ids))
676-
storage = self.env.ref(self.env[res_model].DMS_STORAGE)
683+
_logger.info("Change Request: DMS Directory Creation (%s)" % len(rec.dms_directory_ids))
677684
dmsval = {
678-
"storage_id": storage.id,
679-
# "res_id": rec.id,
680-
"res_model": res_model,
681685
"is_root_directory": True,
682686
"name": rec.name,
683-
"group_ids": [(4, storage.field_default_group_id.id)],
684687
}
685688

686689
# Prepare CR type model data
@@ -695,7 +698,7 @@ def create_request_detail(self):
695698
ref_id = self.env[res_model].create(cr_type_vals)
696699
directory_id = ref_id.dms_directory_ids[0].id
697700

698-
self.env["dms.directory"].create(
701+
self.env["spp.dms.directory"].create(
699702
{
700703
"name": "Applicant",
701704
"parent_id": directory_id,
@@ -932,7 +935,7 @@ def _compute_validation_group_id(self):
932935
validation_stages = (
933936
rec.request_type_ref_id.validation_ids
934937
if rec.request_type_ref_id and rec.request_type_ref_id.validation_ids
935-
else self.env["validation.model"].browse()
938+
else self.env["spp.change.request.validation.sequence"].browse()
936939
) # Replace 'validation.model' with the actual model name
937940

938941
# Filter validation_stages based on validation_stage_ids, if any
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
from odoo import fields, models
2+
3+
4+
class SPPDMSDirectoryCustom(models.Model):
5+
_inherit = "spp.dms.directory"
6+
7+
change_request_id = fields.Many2one("spp.change.request", "Change Request")

spp_change_request/models/dms_file.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,25 @@
1-
from odoo import _, models
1+
import logging
2+
3+
from odoo import _, fields, models
4+
5+
_logger = logging.getLogger(__name__)
26

37

48
class SPPDMSFileCustom(models.Model):
5-
_inherit = "dms.file"
9+
_inherit = "spp.dms.file"
10+
11+
change_request_id = fields.Many2one("spp.change.request", "Change Request")
12+
13+
def create(self, vals):
14+
_logger.info("DEBUG vals: %s", vals)
15+
return super().create(vals)
616

717
def action_save_and_close(self):
818
return {"type": "ir.actions.act_window_close"}
919

20+
def action_close(self):
21+
return {"type": "ir.actions.act_window_close"}
22+
1023
def action_attach_documents(self):
1124
for rec in self:
1225
form_id = self.env.ref("spp_change_request.view_dms_file_spp_custom_form").id
@@ -15,7 +28,7 @@ def action_attach_documents(self):
1528
"view_mode": "form",
1629
"view_id": form_id,
1730
"view_type": "form",
18-
"res_model": "dms.file",
31+
"res_model": "spp.dms.file",
1932
"target": "new",
2033
"res_id": rec.id,
2134
}

spp_change_request/models/mixins/source_mixin.py

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
# Part of OpenSPP. See LICENSE file for full copyright and licensing details.
22

3+
import logging
4+
35
from odoo import Command, _, api, fields, models
46
from odoo.exceptions import UserError, ValidationError
57

8+
_logger = logging.getLogger(__name__)
9+
610

711
class ChangeRequestSourceMixin(models.AbstractModel):
812
"""
@@ -35,9 +39,8 @@ class ChangeRequestAddChildren(models.Model):
3539
_description = "Change Request Data Source Mixin"
3640
_rec_name = "change_request_id"
3741

38-
REQUIRED_DOCUMENT_TYPE = [] # List of required document category `dms.category`
42+
REQUIRED_DOCUMENT_TYPE = [] # List of required document category `spp.dms.category`
3943
VALIDATION_FORM = None
40-
DMS_STORAGE = None
4144
AUTO_APPLY_CHANGES = True
4245

4346
registrant_id = fields.Many2one("res.partner", "Registrant", domain=[("is_registrant", "=", True)])
@@ -65,23 +68,15 @@ class ChangeRequestAddChildren(models.Model):
6568

6669
# DMS Field
6770
dms_directory_ids = fields.One2many(
68-
"dms.directory",
69-
"res_id",
71+
"spp.dms.directory",
72+
"change_request_id",
7073
string="DMS Directories",
71-
domain=lambda self: [
72-
("res_model", "=", self._name),
73-
("storage_id.save_type", "!=", "attachment"),
74-
],
7574
auto_join=True,
7675
)
7776
dms_file_ids = fields.One2many(
78-
"dms.file",
79-
"res_id",
77+
"spp.dms.file",
78+
"change_request_id",
8079
string="DMS Files",
81-
domain=lambda self: [
82-
("directory_id.res_model", "=", self._name),
83-
("storage_id.save_type", "!=", "attachment"),
84-
],
8580
auto_join=True,
8681
)
8782

@@ -822,28 +817,33 @@ def action_attach_documents(self):
822817
"view_mode": "form",
823818
"view_id": form_id,
824819
"view_type": "form",
825-
"res_model": "dms.file",
820+
"res_model": "spp.dms.file",
826821
"target": "new",
827822
"context": dms_context,
828823
}
824+
category_name = "Other Documents"
829825
if self.env.context.get("category_id"):
830826
category_id = self.env.context.get("category_id")
831-
category = self.env["dms.category"].search([("id", "=", category_id)])
827+
category = self.env["spp.dms.category"].search([("id", "=", category_id)])
832828
if category:
833829
dms_context.update(
834830
{
835-
"default_category_id": category_id,
831+
"default_category_id": category.id,
836832
"category_readonly": True,
837833
}
838834
)
839-
action.update(
840-
{
841-
"name": _("Upload Document: %s", category.name),
842-
"context": dms_context,
843-
}
844-
)
835+
category_name = category.name
845836
else:
846837
raise UserError(_("The required document category is not configured."))
838+
839+
dms_context.update({"default_change_request_id": rec.id})
840+
_logger.debug("action_attach_documents dms_context: %s", dms_context)
841+
action.update(
842+
{
843+
"name": _("Upload Document: %s", category_name),
844+
"context": dms_context,
845+
}
846+
)
847847
return action
848848
else:
849849
raise UserError(_("There are no directories defined for this change request."))

spp_change_request/security/ir.model.access.csv

Lines changed: 15 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,9 @@ spp_change_request_g2p_phone_number_validator,G2P Phone Number CR Validator Acce
3333
spp_change_request_g2p_reg_id_validator,G2P Registrant ID CR Validator Access,g2p_registry_base.model_g2p_reg_id,spp_change_request.group_spp_change_request_validator,1,1,1,0
3434
spp_change_request_cancel_wizard_validator,Change Request Cancel Validator Access,spp_change_request.model_spp_change_request_cancel_wizard,spp_change_request.group_spp_change_request_validator,1,1,1,1
3535

36-
spp_dms_storage_validator,SPP DMS Storage Validator Access,dms.model_dms_storage,spp_change_request.group_spp_change_request_validator,1,0,0,0
37-
spp_dms_directory_validator,SPP DMS Directory Validator Access,dms.model_dms_directory,spp_change_request.group_spp_change_request_validator,1,0,0,0
38-
spp_dms_category_validator,SPP DMS Category Validator Access,dms.model_dms_category,spp_change_request.group_spp_change_request_validator,1,0,0,0
39-
spp_dms_tag_validator,SPP DMS Tag Validator Access,dms.model_dms_tag,spp_change_request.group_spp_change_request_validator,1,0,0,0
40-
spp_dms_file_validator,SPP DMS File Validator Access,dms.model_dms_file,spp_change_request.group_spp_change_request_validator,1,0,0,0
36+
spp_dms_directory_validator,SPP DMS Directory Validator Access,spp_dms.model_spp_dms_directory,spp_change_request.group_spp_change_request_validator,1,0,0,0
37+
spp_dms_category_validator,SPP DMS Category Validator Access,spp_dms.model_spp_dms_category,spp_change_request.group_spp_change_request_validator,1,0,0,0
38+
spp_dms_file_validator,SPP DMS File Validator Access,spp_dms.model_spp_dms_file,spp_change_request.group_spp_change_request_validator,1,0,0,0
4139

4240
spp_res_partner_validator,SPP Contacts Validator Access,base.model_res_partner,spp_change_request.group_spp_change_request_validator,1,1,1,0
4341
spp_ir_model_validator,SPP IR Model Validator Access,base.model_ir_model,spp_change_request.group_spp_change_request_validator,1,0,0,0
@@ -60,11 +58,9 @@ spp_change_request_g2p_phone_number_hq_validator,G2P Phone Number CR HQ Validato
6058
spp_change_request_g2p_reg_id_hq_validator,G2P Registrant ID CR HQ Validator Access,g2p_registry_base.model_g2p_reg_id,spp_change_request.group_spp_change_request_hq_validator,1,1,1,0
6159
spp_change_request_cancel_wizard_hq_validator,Change Request Cancel HQ Validator Access,spp_change_request.model_spp_change_request_cancel_wizard,spp_change_request.group_spp_change_request_hq_validator,1,1,1,1
6260

63-
spp_dms_storage_hq_validator,SPP DMS Storage HQ Validator Access,dms.model_dms_storage,spp_change_request.group_spp_change_request_hq_validator,1,0,0,0
64-
spp_dms_directory_hq_validator,SPP DMS Directory HQ Validator Access,dms.model_dms_directory,spp_change_request.group_spp_change_request_hq_validator,1,0,0,0
65-
spp_dms_category_hq_validator,SPP DMS Category HQ Validator Access,dms.model_dms_category,spp_change_request.group_spp_change_request_hq_validator,1,0,0,0
66-
spp_dms_tag_hq_validator,SPP DMS Tag HQ Validator Access,dms.model_dms_tag,spp_change_request.group_spp_change_request_hq_validator,1,0,0,0
67-
spp_dms_file_hq_validator,SPP DMS File HQ Validator Access,dms.model_dms_file,spp_change_request.group_spp_change_request_hq_validator,1,0,0,0
61+
spp_dms_directory_hq_validator,SPP DMS Directory HQ Validator Access,spp_dms.model_spp_dms_directory,spp_change_request.group_spp_change_request_hq_validator,1,0,0,0
62+
spp_dms_category_hq_validator,SPP DMS Category HQ Validator Access,spp_dms.model_spp_dms_category,spp_change_request.group_spp_change_request_hq_validator,1,0,0,0
63+
spp_dms_file_hq_validator,SPP DMS File HQ Validator Access,spp_dms.model_spp_dms_file,spp_change_request.group_spp_change_request_hq_validator,1,0,0,0
6864

6965
spp_res_partner_hq_validator,SPP Contacts HQ Validator Access,base.model_res_partner,spp_change_request.group_spp_change_request_hq_validator,1,1,1,0
7066
spp_ir_model_hq_validator,SPP IR Model HQ Validator Access,base.model_ir_model,spp_change_request.group_spp_change_request_hq_validator,1,0,0,0
@@ -87,11 +83,9 @@ spp_change_request_g2p_phone_number_administrator,G2P Phone Number CR Administra
8783
spp_change_request_g2p_reg_id_administrator,G2P Registrant ID CR Administrator Access,g2p_registry_base.model_g2p_reg_id,spp_change_request.group_spp_change_request_administrator,1,1,1,0
8884
spp_change_request_cancel_wizard_administrator,Change Request Cancel Administrator Access,spp_change_request.model_spp_change_request_cancel_wizard,spp_change_request.group_spp_change_request_administrator,1,1,1,1
8985

90-
spp_dms_storage_administrator,SPP DMS Storage Administrator Access,dms.model_dms_storage,spp_change_request.group_spp_change_request_administrator,1,1,1,0
91-
spp_dms_directory_administrator,SPP DMS Directory Administrator Access,dms.model_dms_directory,spp_change_request.group_spp_change_request_administrator,1,1,1,0
92-
spp_dms_category_administrator,SPP DMS Category Administrator Access,dms.model_dms_category,spp_change_request.group_spp_change_request_administrator,1,1,1,0
93-
spp_dms_tag_administrator,SPP DMS Tag Administrator Access,dms.model_dms_tag,spp_change_request.group_spp_change_request_administrator,1,1,1,0
94-
spp_dms_file_administrator,SPP DMS File Administrator Access,dms.model_dms_file,spp_change_request.group_spp_change_request_administrator,1,1,1,1
86+
spp_dms_directory_administrator,SPP DMS Directory Administrator Access,spp_dms.model_spp_dms_directory,spp_change_request.group_spp_change_request_administrator,1,1,1,0
87+
spp_dms_category_administrator,SPP DMS Category Administrator Access,spp_dms.model_spp_dms_category,spp_change_request.group_spp_change_request_administrator,1,1,1,0
88+
spp_dms_file_administrator,SPP DMS File Administrator Access,spp_dms.model_spp_dms_file,spp_change_request.group_spp_change_request_administrator,1,1,1,1
9589

9690
spp_res_partner_administrator,SPP Contacts Administrator Access,base.model_res_partner,spp_change_request.group_spp_change_request_administrator,1,1,1,0
9791
spp_ir_model_administrator,SPP IR Model Administrator Access,base.model_ir_model,spp_change_request.group_spp_change_request_administrator,1,0,0,0
@@ -114,11 +108,9 @@ spp_change_request_g2p_phone_number_applicator,G2P Phone Number CR Applicator Ac
114108
spp_change_request_g2p_reg_id_applicator,G2P Registrant ID CR Applicator Access,g2p_registry_base.model_g2p_reg_id,spp_change_request.group_spp_change_request_applicator,1,1,1,0
115109
spp_change_request_cancel_wizard_applicator,Change Request Cancel Applicator Access,spp_change_request.model_spp_change_request_cancel_wizard,spp_change_request.group_spp_change_request_applicator,1,1,1,1
116110

117-
spp_dms_storage_applicator,SPP DMS Storage Applicator Access,dms.model_dms_storage,spp_change_request.group_spp_change_request_applicator,1,0,0,0
118-
spp_dms_directory_applicator,SPP DMS Directory Applicator Access,dms.model_dms_directory,spp_change_request.group_spp_change_request_applicator,1,0,0,0
119-
spp_dms_category_applicator,SPP DMS Category Applicator Access,dms.model_dms_category,spp_change_request.group_spp_change_request_applicator,1,0,0,0
120-
spp_dms_tag_applicator,SPP DMS Tag Applicator Access,dms.model_dms_tag,spp_change_request.group_spp_change_request_applicator,1,0,0,0
121-
spp_dms_file_applicator,SPP DMS File Applicator Access,dms.model_dms_file,spp_change_request.group_spp_change_request_applicator,1,0,0,0
111+
spp_dms_directory_applicator,SPP DMS Directory Applicator Access,spp_dms.model_spp_dms_directory,spp_change_request.group_spp_change_request_applicator,1,0,0,0
112+
spp_dms_category_applicator,SPP DMS Category Applicator Access,spp_dms.model_spp_dms_category,spp_change_request.group_spp_change_request_applicator,1,0,0,0
113+
spp_dms_file_applicator,SPP DMS File Applicator Access,spp_dms.model_spp_dms_file,spp_change_request.group_spp_change_request_applicator,1,0,0,0
122114

123115
spp_res_partner_applicator,SPP Contacts Applicator Access,base.model_res_partner,spp_change_request.group_spp_change_request_applicator,1,1,1,0
124116
spp_ir_model_applicator,SPP IR Model Applicator Access,base.model_ir_model,spp_change_request.group_spp_change_request_applicator,1,0,0,0
@@ -138,11 +130,9 @@ spp_change_request_g2p_reg_rel_agent,G2P Registry Relationship CR Agent Access,g
138130
spp_change_request_g2p_phone_number_agent,G2P Phone Number CR Agent Access,g2p_registry_base.model_g2p_phone_number,spp_change_request.group_spp_change_request_agent,1,0,0,0
139131
spp_change_request_g2p_reg_id_agent,G2P Registrant ID CR Agent Access,g2p_registry_base.model_g2p_reg_id,spp_change_request.group_spp_change_request_agent,1,0,0,0
140132

141-
spp_dms_storage_agent,SPP DMS Storage Agent Access,dms.model_dms_storage,spp_change_request.group_spp_change_request_agent,1,1,1,0
142-
spp_dms_directory_agent,SPP DMS Directory Agent Access,dms.model_dms_directory,spp_change_request.group_spp_change_request_agent,1,1,1,0
143-
spp_dms_category_agent,SPP DMS Category Agent Access,dms.model_dms_category,spp_change_request.group_spp_change_request_agent,1,0,0,0
144-
spp_dms_tag_agent,SPP DMS Tag Agent Access,dms.model_dms_tag,spp_change_request.group_spp_change_request_agent,1,1,1,0
145-
spp_dms_file_agent,SPP DMS File Agent Access,dms.model_dms_file,spp_change_request.group_spp_change_request_agent,1,1,1,1
133+
spp_dms_directory_agent,SPP DMS Directory Agent Access,spp_dms.model_spp_dms_directory,spp_change_request.group_spp_change_request_agent,1,1,1,0
134+
spp_dms_category_agent,SPP DMS Category Agent Access,spp_dms.model_spp_dms_category,spp_change_request.group_spp_change_request_agent,1,0,0,0
135+
spp_dms_file_agent,SPP DMS File Agent Access,spp_dms.model_spp_dms_file,spp_change_request.group_spp_change_request_agent,1,1,1,1
146136

147137
spp_res_partner_agent,SPP Contacts Agent Access,base.model_res_partner,spp_change_request.group_spp_change_request_agent,1,0,0,0
148138
spp_ir_model_agent,SPP IR Model Agent Access,base.model_ir_model,spp_change_request.group_spp_change_request_agent,1,0,0,0

spp_change_request/static/src/scss/change_request.scss

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@
1616

1717
.o_container_right {
1818
margin-left: 10px !important;
19+
margin-right: 10px !important;
1920
}
2021

2122
.o_container_left {
23+
background: rgba(255, 255, 255, 0) !important;
2224
margin-left: 10px !important;
2325
margin-right: 10px !important;
2426
}

0 commit comments

Comments
 (0)