diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e452023c3..b738ad954 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -189,7 +189,7 @@ jobs: env: PGDATABASE: farmer_registry COVERAGE_FILE: ".coverage-farmer" - 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" + 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,spp_base_spmis_demo" run: oca_run_tests - name: Initialize social_registry db env: @@ -203,7 +203,7 @@ jobs: env: PGDATABASE: social_registry COVERAGE_FILE: ".coverage-social" - 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,spp_base_farmer_registry_demo" + 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,spp_base_farmer_registry_demo,spp_base_spmis_demo" run: oca_run_tests - name: Combine coverage data run: coverage combine .coverage-mis .coverage-farmer .coverage-social diff --git a/spp_base_farmer_registry_demo/__manifest__.py b/spp_base_farmer_registry_demo/__manifest__.py index 5083ee843..757e17d60 100644 --- a/spp_base_farmer_registry_demo/__manifest__.py +++ b/spp_base_farmer_registry_demo/__manifest__.py @@ -12,7 +12,7 @@ "license": "LGPL-3", "development_status": "Production/Stable", "external_dependencies": {"python": ["faker"]}, - "maintainers": ["jeremi", "gonzalesedwin1123", "reichie020212"], + "maintainers": ["jeremi", "gonzalesedwin1123", "emjay0921"], "depends": [ "base", "g2p_registry_base", diff --git a/spp_base_spmis_demo/README.rst b/spp_base_spmis_demo/README.rst new file mode 100644 index 000000000..ac4b7db0d --- /dev/null +++ b/spp_base_spmis_demo/README.rst @@ -0,0 +1,162 @@ +============================ +OpenSPP SPMIS Demo +============================ + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:eccedea606c9a761d0cbd0031d2cb447564601925a78c0afd042d1bc7037897e + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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-LGPL--3-blue.png + :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html + :alt: License: LGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OpenSPP%2Fopenspp--modules-lightgray.png?logo=github + :target: https://github.com/OpenSPP/openspp-modules/tree/17.0/spp_base_spmis_demo + :alt: OpenSPP/openspp-modules + +|badge1| |badge2| |badge3| + +OpenSPP SPMIS Demo +============================ + +Overview +-------- + +The `spp_base_spmis_demo `__ module is a +demonstration module for OpenSPP that provides pre-populated data for +the SPMIS base registry. It builds upon the +`spp_base_spmis `__ module and its +dependencies to showcase the functionalities of the SPMIS registry with +realistic sample data. + +Purpose +------- + +This module aims to: + +- Populate the SPMIS registry with sample data, including registrants, + groups, and social protection information. +- Provide a starting point for users to explore the SPMIS registry and + its various features. +- Demonstrate how different modules, such as + `g2p_registry_membership `__, + `queue_job `__, and `spp_base_demo `__, + integrate to create a comprehensive SPMIS system. + +Module Dependencies and Integration +----------------------------------- + +- `spp_base_spmis `__\ **:** This + module depends heavily on + `spp_base_spmis `__, inheriting + its models and views to extend them with demo data generation + capabilities. +- `g2p_registry_membership `__\ **:** + Leverages `g2p_registry_membership `__ for + creating group memberships between individual registrants and groups. +- `queue_job `__\ **:** Uses `queue_job `__ to + handle the generation of large datasets in the background, improving + performance and user experience. +- `g2p_registry_base `__\ **:** Depends on + `g2p_registry_base `__ for the basic registrant + models and functionalities. +- `g2p_registry_group `__\ **:** Uses + `g2p_registry_group `__ for creating and managing + groups as registrants. +- `spp_base_demo `__\ **:** Inherits from + `spp_base_demo `__ to include basic demo data, such as + genders. +- `g2p_registry_individual `__\ **:** Utilizes + `g2p_registry_individual `__ for creating + individual registrants. + +Additional Functionality +------------------------ + +The `spp_base_spmis_demo `__ module +introduces the following key functionalities: + +- **Sample Data Generation:** The module includes capabilities for + generating sample SPMIS data. This allows users to specify: + + - The number of groups to generate. + - The locale for generating realistic data based on specific + regions. + - Once the data generation is triggered, the module creates a queue + job that populates the database with realistic SPMIS data, + including: + + - Groups: Groups of registrants with detailed information like + family name, national ID, contact details, and education level. + - Individual Registrants: Members of groups with personal + information and links to their respective groups. + - Social Protection Data: Comprehensive information about + registrants' social protection status and program participation. + +- **Data Realism:** The module utilizes external libraries like + ``faker`` to generate realistic and region-specific data for names, + contact details, and other attributes. This ensures that the sample + data reflects real-world scenarios. + +Conclusion +---------- + +The `spp_base_spmis_demo `__ module +provides a valuable tool for understanding and demonstrating the +functionalities of the OpenSPP SPMIS system. By populating the +database with realistic sample data, it allows users to explore the +system, understand its data structures, and test its various features +without having to manually create large datasets. This module simplifies +the process of getting started with OpenSPP and showcases the platform's +capabilities for managing comprehensive and detailed SPMIS registries. + +**Table of contents** + +.. contents:: + :local: + +Bug Tracker +=========== + +Bugs are tracked on `GitHub 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 `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +------- + +* OpenSPP.org + +Maintainers +----------- + +.. |maintainer-jeremi| image:: https://github.com/jeremi.png?size=40px + :target: https://github.com/jeremi + :alt: jeremi +.. |maintainer-gonzalesedwin1123| image:: https://github.com/gonzalesedwin1123.png?size=40px + :target: https://github.com/gonzalesedwin1123 + :alt: gonzalesedwin1123 +.. |maintainer-reichie020212| image:: https://github.com/reichie020212.png?size=40px + :target: https://github.com/reichie020212 + :alt: reichie020212 + +Current maintainers: + +|maintainer-jeremi| |maintainer-gonzalesedwin1123| |maintainer-reichie020212| + +This module is part of the `OpenSPP/openspp-modules `_ project on GitHub. + +You are welcome to contribute. + diff --git a/spp_base_spmis_demo/__init__.py b/spp_base_spmis_demo/__init__.py new file mode 100644 index 000000000..441611e10 --- /dev/null +++ b/spp_base_spmis_demo/__init__.py @@ -0,0 +1 @@ +# Part of OpenSPP. See LICENSE file for full copyright and licensing details. diff --git a/spp_base_spmis_demo/__manifest__.py b/spp_base_spmis_demo/__manifest__.py new file mode 100644 index 000000000..9107d29b5 --- /dev/null +++ b/spp_base_spmis_demo/__manifest__.py @@ -0,0 +1,36 @@ +# Part of OpenSPP. See LICENSE file for full copyright and licensing details. + + +{ + "name": "OpenSPP SPMIS Demo", + "summary": "Generates and populates the OpenSPP SPMIS Base with comprehensive, realistic sample data. It integrates with core registry models to provide diverse registrant profiles and social protection data, facilitating system exploration, training, and testing.", + "category": "OpenSPP", + "version": "17.0.1.3.1", + "sequence": 1, + "author": "OpenSPP.org", + "website": "https://github.com/OpenSPP/openspp-modules", + "license": "LGPL-3", + "development_status": "Production/Stable", + "external_dependencies": {"python": ["faker"]}, + "maintainers": ["jeremi", "gonzalesedwin1123", "emjay0921"], + "depends": [ + "base", + "g2p_registry_base", + "spp_base_spmis", + "spp_demo_common", + "queue_job", + ], + "excludes": [ + "spp_base_farmer_registry", + "spp_base_social_registry", + ], + "data": [ + "security/ir.model.access.csv", + ], + "assets": {}, + "demo": [], + "images": [], + "application": True, + "installable": True, + "auto_install": False, +} diff --git a/spp_base_spmis_demo/models/__init__.py b/spp_base_spmis_demo/models/__init__.py new file mode 100644 index 000000000..441611e10 --- /dev/null +++ b/spp_base_spmis_demo/models/__init__.py @@ -0,0 +1 @@ +# Part of OpenSPP. See LICENSE file for full copyright and licensing details. diff --git a/spp_base_spmis_demo/pyproject.toml b/spp_base_spmis_demo/pyproject.toml new file mode 100644 index 000000000..4231d0ccc --- /dev/null +++ b/spp_base_spmis_demo/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/spp_base_spmis_demo/security/ir.model.access.csv b/spp_base_spmis_demo/security/ir.model.access.csv new file mode 100644 index 000000000..97dd8b917 --- /dev/null +++ b/spp_base_spmis_demo/security/ir.model.access.csv @@ -0,0 +1 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink diff --git a/spp_base_spmis_demo/static/description/icon.png b/spp_base_spmis_demo/static/description/icon.png new file mode 100644 index 000000000..c7dbdaaf1 Binary files /dev/null and b/spp_base_spmis_demo/static/description/icon.png differ diff --git a/spp_base_spmis_demo/tests/__init__.py b/spp_base_spmis_demo/tests/__init__.py new file mode 100644 index 000000000..441611e10 --- /dev/null +++ b/spp_base_spmis_demo/tests/__init__.py @@ -0,0 +1 @@ +# Part of OpenSPP. See LICENSE file for full copyright and licensing details.