Skip to content

Commit f8a5832

Browse files
authored
Merge pull request #846 from OpenSPP/base-module-restructure
[NEW] Base Module Restructure
2 parents 1458a42 + 233478c commit f8a5832

257 files changed

Lines changed: 8233 additions & 6707 deletions

File tree

Some content is hidden

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

.github/workflows/test.yml

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ jobs:
164164
- name: Run SP-MIS tests
165165
env:
166166
COVERAGE_FILE: ".coverage-mis"
167-
EXCLUDE: "fastapi,g2p_auth_id_oidc,g2p_auth_oidc,g2p_bank,g2p_bank_rest_api,g2p_change_log,g2p_disable_password_login,g2p_encryption,g2p_encryption_keymanager,g2p_encryption_rest_api,g2p_entitlement_differential,g2p_entitlement_in_kind,g2p_entitlement_voucher,g2p_enumerator,g2p_formio,g2p_mis_importer,g2p_mts,g2p_notifications_base,g2p_notifications_fast2sms,g2p_notifications_voucher,g2p_notifications_wiserv,g2p_odk_importer,g2p_odk_importer_program,g2p_odk_user_mapping,g2p_openid_vci,g2p_openid_vci_programs,g2p_openid_vci_rest_api,g2p_payment_cash,g2p_payment_files,g2p_payment_g2p_connect,g2p_payment_interop_layer,g2p_payment_phee,g2p_payment_simple_mpesa,g2p_portal_auth,g2p_profile_image,g2p_program_approval,g2p_program_assessment,g2p_program_autoenrol,g2p_program_cycleless,g2p_program_documents,g2p_program_registrant_info,g2p_program_reimbursement,g2p_programs,g2p_proxy_means_test,g2p_registry_addl_info,g2p_registry_base,g2p_registry_encryption,g2p_registry_group,g2p_registry_individual,g2p_registry_membership,g2p_registry_rest_api,g2p_service_provider_beneficiary_management,g2p_service_provider_portal_base,g2p_social_registry_importer,g2p_superset_dashboard,g2p_theme,mts_connector,muk_product,muk_web_appsbar,muk_web_chatter,muk_web_colors,muk_web_dialog,muk_web_theme,spp_user_roles,spp_change_request_add_farmer,spp_farmer_registry_base,spp_farmer_registry_dashboard,spp_farmer_registry_default_ui,spp_farmer_registry_demo,spp_custom_filter_farmer_registry,spp_registrant_import,spp_manual_entitlement,spp_change_request_create_farm,spp_change_request_edit_farmer,spp_change_request_edit_farm"
167+
EXCLUDE: "fastapi,g2p_auth_id_oidc,g2p_auth_oidc,g2p_bank,g2p_bank_rest_api,g2p_change_log,g2p_disable_password_login,g2p_encryption,g2p_encryption_keymanager,g2p_encryption_rest_api,g2p_entitlement_differential,g2p_entitlement_in_kind,g2p_entitlement_voucher,g2p_enumerator,g2p_formio,g2p_mis_importer,g2p_mts,g2p_notifications_base,g2p_notifications_fast2sms,g2p_notifications_voucher,g2p_notifications_wiserv,g2p_odk_importer,g2p_odk_importer_program,g2p_odk_user_mapping,g2p_openid_vci,g2p_openid_vci_programs,g2p_openid_vci_rest_api,g2p_payment_cash,g2p_payment_files,g2p_payment_g2p_connect,g2p_payment_interop_layer,g2p_payment_phee,g2p_payment_simple_mpesa,g2p_portal_auth,g2p_profile_image,g2p_program_approval,g2p_program_assessment,g2p_program_autoenrol,g2p_program_cycleless,g2p_program_documents,g2p_program_registrant_info,g2p_program_reimbursement,g2p_programs,g2p_proxy_means_test,g2p_registry_addl_info,g2p_registry_base,g2p_registry_encryption,g2p_registry_group,g2p_registry_individual,g2p_registry_membership,g2p_registry_rest_api,g2p_service_provider_beneficiary_management,g2p_service_provider_portal_base,g2p_social_registry_importer,g2p_superset_dashboard,g2p_theme,mts_connector,muk_product,muk_web_appsbar,muk_web_chatter,muk_web_colors,muk_web_dialog,muk_web_theme,spp_user_roles,spp_change_request_add_farmer,spp_base_farmer_registry,spp_base_social_registry,spp_farmer_registry_dashboard,spp_farmer_registry_default_ui,spp_farmer_registry_demo,spp_custom_filter_farmer_registry,spp_registrant_import,spp_manual_entitlement,spp_change_request_create_farm,spp_change_request_edit_farmer,spp_change_request_edit_farm"
168168
run: oca_run_tests
169169
- name: Initialize farmer_registry db
170170
env:
@@ -178,10 +178,24 @@ jobs:
178178
env:
179179
PGDATABASE: farmer_registry
180180
COVERAGE_FILE: ".coverage-farmer"
181-
EXCLUDE: "fastapi,g2p_auth_id_oidc,g2p_auth_oidc,g2p_bank,g2p_bank_rest_api,g2p_change_log,g2p_disable_password_login,g2p_encryption,g2p_encryption_keymanager,g2p_encryption_rest_api,g2p_entitlement_differential,g2p_entitlement_in_kind,g2p_entitlement_voucher,g2p_enumerator,g2p_formio,g2p_mis_importer,g2p_mts,g2p_notifications_base,g2p_notifications_fast2sms,g2p_notifications_voucher,g2p_notifications_wiserv,g2p_odk_importer,g2p_odk_importer_program,g2p_odk_user_mapping,g2p_openid_vci,g2p_openid_vci_programs,g2p_openid_vci_rest_api,g2p_payment_cash,g2p_payment_files,g2p_payment_g2p_connect,g2p_payment_interop_layer,g2p_payment_phee,g2p_payment_simple_mpesa,g2p_portal_auth,g2p_profile_image,g2p_program_approval,g2p_program_assessment,g2p_program_autoenrol,g2p_program_cycleless,g2p_program_documents,g2p_program_registrant_info,g2p_program_reimbursement,g2p_programs,g2p_proxy_means_test,g2p_registry_addl_info,g2p_registry_base,g2p_registry_encryption,g2p_registry_group,g2p_registry_individual,g2p_registry_membership,g2p_registry_rest_api,g2p_service_provider_beneficiary_management,g2p_service_provider_portal_base,g2p_social_registry_importer,g2p_superset_dashboard,g2p_theme,mts_connector,muk_product,muk_web_appsbar,muk_web_chatter,muk_web_colors,muk_web_dialog,muk_web_theme,spp_user_roles,spp_base,spp_mis_demo,spp_registrant_import,spp_change_request_add_children_demo,spp_manual_entitlement,spp_change_request_create_group"
181+
EXCLUDE: "fastapi,g2p_auth_id_oidc,g2p_auth_oidc,g2p_bank,g2p_bank_rest_api,g2p_change_log,g2p_disable_password_login,g2p_encryption,g2p_encryption_keymanager,g2p_encryption_rest_api,g2p_entitlement_differential,g2p_entitlement_in_kind,g2p_entitlement_voucher,g2p_enumerator,g2p_formio,g2p_mis_importer,g2p_mts,g2p_notifications_base,g2p_notifications_fast2sms,g2p_notifications_voucher,g2p_notifications_wiserv,g2p_odk_importer,g2p_odk_importer_program,g2p_odk_user_mapping,g2p_openid_vci,g2p_openid_vci_programs,g2p_openid_vci_rest_api,g2p_payment_cash,g2p_payment_files,g2p_payment_g2p_connect,g2p_payment_interop_layer,g2p_payment_phee,g2p_payment_simple_mpesa,g2p_portal_auth,g2p_profile_image,g2p_program_approval,g2p_program_assessment,g2p_program_autoenrol,g2p_program_cycleless,g2p_program_documents,g2p_program_registrant_info,g2p_program_reimbursement,g2p_programs,g2p_proxy_means_test,g2p_registry_addl_info,g2p_registry_base,g2p_registry_encryption,g2p_registry_group,g2p_registry_individual,g2p_registry_membership,g2p_registry_rest_api,g2p_service_provider_beneficiary_management,g2p_service_provider_portal_base,g2p_social_registry_importer,g2p_superset_dashboard,g2p_theme,mts_connector,muk_product,muk_web_appsbar,muk_web_chatter,muk_web_colors,muk_web_dialog,muk_web_theme,spp_user_roles,spp_base_spmis,spp_base_social_registry,spp_mis_demo,spp_registrant_import,spp_change_request_add_children_demo,spp_manual_entitlement,spp_change_request_create_group"
182+
run: oca_run_tests
183+
- name: Initialize social_registry db
184+
env:
185+
PGDATABASE: social_registry
186+
run: oca_init_test_database
187+
- name: Remove test files from pip-installed addons
188+
run: |
189+
rm -rf /opt/odoo-venv/lib/python3.10/site-packages/odoo/addons/g2p_programs/tests
190+
rm -rf /opt/odoo-venv/lib/python3.10/site-packages/odoo/addons/g2p_registry_individual/tests
191+
- name: Run Social Registry tests
192+
env:
193+
PGDATABASE: social_registry
194+
COVERAGE_FILE: ".coverage-social"
195+
EXCLUDE: "fastapi,g2p_auth_id_oidc,g2p_auth_oidc,g2p_bank,g2p_bank_rest_api,g2p_change_log,g2p_disable_password_login,g2p_encryption,g2p_encryption_keymanager,g2p_encryption_rest_api,g2p_entitlement_differential,g2p_entitlement_in_kind,g2p_entitlement_voucher,g2p_enumerator,g2p_formio,g2p_mis_importer,g2p_mts,g2p_notifications_base,g2p_notifications_fast2sms,g2p_notifications_voucher,g2p_notifications_wiserv,g2p_odk_importer,g2p_odk_importer_program,g2p_odk_user_mapping,g2p_openid_vci,g2p_openid_vci_programs,g2p_openid_vci_rest_api,g2p_payment_cash,g2p_payment_files,g2p_payment_g2p_connect,g2p_payment_interop_layer,g2p_payment_phee,g2p_payment_simple_mpesa,g2p_portal_auth,g2p_profile_image,g2p_program_approval,g2p_program_assessment,g2p_program_autoenrol,g2p_program_cycleless,g2p_program_documents,g2p_program_registrant_info,g2p_program_reimbursement,g2p_programs,g2p_proxy_means_test,g2p_registry_addl_info,g2p_registry_base,g2p_registry_encryption,g2p_registry_group,g2p_registry_individual,g2p_registry_membership,g2p_registry_rest_api,g2p_service_provider_beneficiary_management,g2p_service_provider_portal_base,g2p_social_registry_importer,g2p_superset_dashboard,g2p_theme,mts_connector,muk_product,muk_web_appsbar,muk_web_chatter,muk_web_colors,muk_web_dialog,muk_web_theme,spp_user_roles,spp_change_request_add_farmer,spp_base_farmer_registry,spp_base_spmis,spp_farmer_registry_dashboard,spp_farmer_registry_default_ui,spp_farmer_registry_demo,spp_custom_filter_farmer_registry,spp_registrant_import,spp_manual_entitlement,spp_change_request_create_farm,spp_change_request_edit_farmer,spp_change_request_edit_farm,spp_mis_demo,spp_registrant_import,spp_change_request_add_children_demo,spp_manual_entitlement,spp_change_request_create_group"
182196
run: oca_run_tests
183197
- name: Combine coverage data
184-
run: coverage combine .coverage-mis .coverage-farmer
198+
run: coverage combine .coverage-mis .coverage-farmer .coverage-social
185199
- uses: codecov/codecov-action@v5
186200
with:
187201
token: ${{ secrets.CODECOV_TOKEN }}

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ addon | summary
3131
[spp_audit_log](spp_audit_log/) | Provides audit logging functionality to track data changes and user actions within OpenSPP, enhancing transparency and accountability.
3232
[spp_audit_post](spp_audit_post/) | Enables posting of audit log messages to related parent records, providing a centralized view of changes across interconnected data in social protection programs.
3333
[spp_auto_update_entitlements](spp_auto_update_entitlements/) | Automatically updates entitlement states based on their redemption status at the end of program cycles in OpenSPP.
34-
[spp_base](spp_base/) | Provides essential configurations, UI customizations, and base functionalities for the OpenSPP system, including top-up card management and integration with other OpenSPP modules for areas, service points, programs, and custom fields.
34+
[spp_base_spmis](spp_base_spmis/) | Provides essential configurations, UI customizations, and base functionalities for the OpenSPP system, including top-up card management and integration with other OpenSPP modules for areas, service points, programs, and custom fields.
3535
[spp_base_api](spp_base_api/) | Provides foundational API functions and methods for seamless interaction with the OpenSPP system, enabling data exchange via APIs or XML-RPC.
3636
[spp_base_demo](spp_base_demo/) | Provides demonstration data for the OpenSPP system, including sample registrants, programs, and products to facilitate user exploration and training.
3737
[spp_base_gis](spp_base_gis/) | Provides Geographical Information System (GIS) capabilities to OpenSPP, enabling visualization and interaction with geospatial data on maps, integrating with modules like Registries and Targeting & Eligibility for enhanced program management.
@@ -66,7 +66,7 @@ addon | summary
6666
[spp_event_data_program_membership](spp_event_data_program_membership/) | This module allows users to record and track program membership-related events, such as enrollment, suspension, or exit, and link them to specific program membership records within OpenSPP.
6767
[spp_event_demo](spp_event_demo/) | Provides demonstration data and functionalities for the OpenSPP event tracking system, showcasing practical applications through predefined event types, data models, views, and wizards.
6868
[spp_exclusion_filter](spp_exclusion_filter/) | This module enhances the OpenSPP program creation process by enabling the configuration and application of exclusion filters, ensuring that only eligible registrants are considered for enrollment in new programs.
69-
[spp_farmer_registry_base](spp_farmer_registry_base/) | Base module for managing farmer registries, linking farmers to farms, land, and agricultural activities.
69+
[spp_base_farmer_registry](spp_base_farmer_registry/) | Base module for managing farmer registries, linking farmers to farms, land, and agricultural activities.
7070
[spp_farmer_registry_dashboard](spp_farmer_registry_dashboard/) | Provides interactive dashboards and reports for visualizing data from the OpenSPP Farmer Registry, offering insights into key metrics and trends related to registered farmers.
7171
[spp_farmer_registry_demo](spp_farmer_registry_demo/) | Provides pre-populated demo data for the OpenSPP Farmer Registry, showcasing its features with realistic sample data.
7272
[spp_idpass](spp_idpass/) | ID PASS

openspp-requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,3 +90,4 @@ shapely
9090
simplejson
9191
swagger_spec_validator
9292
xlrd
93+
openpyxl

requirements.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ geojson
99
jsonschema
1010
jwcrypto>=1.5.6
1111
numpy>=1.22.2
12+
openpyxl
1213
pyjwt>=2.4.0
1314
pyproj
1415
python-magic
@@ -18,6 +19,7 @@ requests>=2.25.1
1819
shapely
1920
simplejson
2021
swagger_spec_validator
22+
ujson>=5.4.0
2123
urllib3>=1.26.5
2224
xlrd
2325
zipp>=3.19.1

setup/_metapackage/pyproject.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ dependencies = [
1111
"odoo-addon-spp_audit_log>=17.0dev,<17.1dev",
1212
"odoo-addon-spp_audit_post>=17.0dev,<17.1dev",
1313
"odoo-addon-spp_auto_update_entitlements>=17.0dev,<17.1dev",
14-
"odoo-addon-spp_base>=17.0dev,<17.1dev",
14+
"odoo-addon-spp_base_common>=17.0dev,<17.1dev",
15+
"odoo-addon-spp_base_spmis>=17.0dev,<17.1dev",
1516
"odoo-addon-spp_base_api>=17.0dev,<17.1dev",
1617
"odoo-addon-spp_base_demo>=17.0dev,<17.1dev",
1718
"odoo-addon-spp_base_gis>=17.0dev,<17.1dev",
@@ -46,7 +47,7 @@ dependencies = [
4647
"odoo-addon-spp_event_data_program_membership>=17.0dev,<17.1dev",
4748
"odoo-addon-spp_event_demo>=17.0dev,<17.1dev",
4849
"odoo-addon-spp_exclusion_filter>=17.0dev,<17.1dev",
49-
"odoo-addon-spp_farmer_registry_base>=17.0dev,<17.1dev",
50+
"odoo-addon-spp_base_farmer_registry>=17.0dev,<17.1dev",
5051
"odoo-addon-spp_farmer_registry_dashboard>=17.0dev,<17.1dev",
5152
"odoo-addon-spp_farmer_registry_demo>=17.0dev,<17.1dev",
5253
"odoo-addon-spp_idpass>=17.0dev,<17.1dev",

spp_area/__manifest__.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,13 @@
1414
"maintainers": ["jeremi", "gonzalesedwin1123", "reichie020212"],
1515
"depends": [
1616
"base",
17+
"spp_base_common",
18+
"spp_user_roles",
1719
"spp_area_base",
1820
"g2p_registry_base",
1921
"g2p_registry_individual",
2022
"g2p_registry_group",
2123
"queue_job",
22-
"spp_registry_base",
2324
],
2425
"external_dependencies": {},
2526
"data": [
@@ -29,6 +30,8 @@
2930
"views/area.xml",
3031
"views/area_import.xml",
3132
"views/area_kind.xml",
33+
"views/role.xml",
34+
"views/user.xml",
3235
],
3336
"assets": {},
3437
"demo": [],

spp_area/models/__init__.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
# Part of OpenSPP. See LICENSE file for full copyright and licensing details.
22

3-
43
from . import registrant
4+
from . import area
5+
from . import user
6+
from . import role
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from odoo import api, models
44

55

6-
class AreaCustomSPPRole(models.Model):
6+
class SPPAreaCustom(models.Model):
77
_inherit = "spp.area"
88

99
@api.model

spp_area/models/registrant.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,19 @@ def _get_area_domain(self):
1919
"Area",
2020
domain=_get_area_domain,
2121
)
22+
23+
@api.model
24+
def _prepare_domain(self, domain):
25+
domain = domain or []
26+
domain += [("area_id", "child_of", self.env.user.center_area_ids.ids)] if self.env.user.center_area_ids else []
27+
return domain
28+
29+
@api.model
30+
def search_read(self, domain=None, fields=None, offset=0, limit=None, order=None):
31+
domain = self._prepare_domain(domain)
32+
return super().search_read(domain, fields, offset, limit, order)
33+
34+
@api.model
35+
def web_search_read(self, domain, specification, offset=0, limit=None, order=None, count_limit=None):
36+
domain = self._prepare_domain(domain)
37+
return super().web_search_read(domain, specification, offset, limit, order, count_limit)

spp_area/models/role.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Part of OpenSPP. See LICENSE file for full copyright and licensing details.
2+
3+
import logging
4+
5+
from odoo import api, fields, models
6+
7+
_logger = logging.getLogger(__name__)
8+
9+
10+
class ResUsersRoleCustomSPP(models.Model):
11+
_inherit = "res.users.role"
12+
13+
@api.onchange("role_type")
14+
def _onchange_role_type(self):
15+
for rec in self:
16+
if rec.role_type == "global":
17+
rl = rec.line_ids.filtered(lambda a: not a.local_area_id)
18+
if rl:
19+
rl.update({"local_area_id": None})
20+
21+
22+
class ResUsersRoleLineCustomSPP(models.Model):
23+
_inherit = "res.users.role.line"
24+
25+
local_area_id = fields.Many2one("spp.area", string="Center Area")

0 commit comments

Comments
 (0)