├── .copier-answers.yml ├── .cursor └── rules │ ├── 00-cursor-rules-mdc.mdc │ ├── odoo17-openspp-general.mdc │ ├── openspp-fields-naming.mdc │ ├── openspp-testing-practices.mdc │ └── openspp-view-customization.mdc ├── .editorconfig ├── .eslintrc.yml ├── .flake8 ├── .github ├── ISSUE_TEMPLATE │ ├── feature_request.md │ └── issue_template.md ├── auto_assign.yml ├── dependabot.yml ├── pull_request_template.md └── workflows │ ├── auto-assign-pr.yml │ ├── auto-assign.yml │ ├── cla.yml │ ├── code-analysis.yml │ ├── code-review-gpt.yml │ ├── main.yml │ ├── pre-commit.yml │ ├── stale.yml │ ├── test-legacy.yml │ ├── test-pypi.yml │ └── test.yml ├── .gitignore ├── .isort.cfg ├── .pre-commit-config.yaml ├── .prettierrc.yml ├── .pylintrc ├── .pylintrc-mandatory ├── .ruff.toml ├── .snyk ├── .sourcery.yaml ├── COPYRIGHT ├── LICENSE ├── README.md ├── SECURITY.md ├── base_geoengine └── i18n │ └── base_geoengine.pot ├── code_of_conduct.md ├── farmer-requirements.txt ├── g2p_bank └── i18n │ └── g2p_bank.pot ├── g2p_bank_rest_api └── i18n │ └── g2p_bank_rest_api.pot ├── g2p_connect_demo ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ ├── sample_data.xml │ └── users_data.xml ├── i18n │ ├── g2p_connect_demo.pot │ └── lo.po ├── models │ ├── __init__.py │ ├── generate_change_request.py │ ├── generate_group.py │ ├── group.py │ ├── individual.py │ └── registrant.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ ├── icon.png │ │ └── index.html ├── tests │ ├── __init__.py │ └── test_compute_indicator_fields.py └── views │ ├── generate_change_request_data_view.xml │ ├── generate_data_view.xml │ ├── groups_view.xml │ └── individuals_view.xml ├── g2p_encryption └── i18n │ └── g2p_encryption.pot ├── g2p_encryption_keymanager └── i18n │ └── g2p_encryption_keymanager.pot ├── g2p_encryption_rest_api └── i18n │ └── g2p_encryption_rest_api.pot ├── g2p_entitlement_cash └── i18n │ └── g2p_entitlement_cash.pot ├── g2p_enumerator └── i18n │ └── g2p_enumerator.pot ├── g2p_openid_vci └── i18n │ └── g2p_openid_vci.pot ├── g2p_openid_vci_rest_api └── i18n │ └── g2p_openid_vci_rest_api.pot ├── g2p_programs └── i18n │ └── g2p_programs.pot ├── g2p_registry_base └── i18n │ └── g2p_registry_base.pot ├── g2p_registry_documents └── i18n │ └── g2p_registry_documents.pot ├── g2p_registry_encryption └── i18n │ └── g2p_registry_encryption.pot ├── g2p_registry_group └── i18n │ └── g2p_registry_group.pot ├── g2p_registry_individual └── i18n │ └── g2p_registry_individual.pot ├── g2p_registry_membership └── i18n │ └── g2p_registry_membership.pot ├── g2p_registry_rest_api └── i18n │ └── g2p_registry_rest_api.pot ├── license_header.txt ├── muk_web_appsbar └── i18n │ ├── de.po │ └── muk_web_appsbar.pot ├── muk_web_chatter └── i18n │ ├── de.po │ └── muk_web_chatter.pot ├── muk_web_colors └── i18n │ ├── de.po │ └── muk_web_colors.pot ├── muk_web_dialog └── i18n │ ├── de.po │ └── muk_web_dialog.pot ├── muk_web_theme └── i18n │ ├── de.po │ └── muk_web_theme.pot ├── openg2p-requirements.txt ├── openspp-requirements.txt ├── requirements.txt ├── scripts ├── lint_and_fix.py └── sync_issue_to_odoo.py ├── setup └── _metapackage │ └── pyproject.toml ├── sp-mis-requirements.txt ├── spp_api ├── README.rst ├── __init__.py ├── __manifest__.py ├── config.py ├── controllers │ ├── __init__.py │ ├── api.py │ ├── apijsonrequest.py │ ├── main.py │ └── pinguin.py ├── demo │ ├── openapi_demo.xml │ └── openapi_security_demo.xml ├── doc │ ├── changelog.rst │ └── index.rst ├── i18n │ ├── fr.po │ ├── lo.po │ └── spp_api.pot ├── images │ ├── icon.png │ └── openapi-swagger.png ├── models │ ├── __init__.py │ ├── ir_exports.py │ ├── ir_model.py │ ├── ir_model_fields.py │ ├── res_users.py │ ├── spp_api_field_alias.py │ ├── spp_api_fields.py │ ├── spp_api_function_parameter.py │ ├── spp_api_log.py │ ├── spp_api_namespace.py │ └── spp_api_path.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ ├── ir.model.access.csv │ ├── openapi_security.xml │ └── res_users_token.xml ├── static │ └── description │ │ ├── aws.png │ │ ├── dataiku.png │ │ ├── dots.jpg │ │ ├── icon.png │ │ ├── index.html │ │ ├── openapi-configuration-model.png │ │ ├── openapi-configuration-namespace.png │ │ ├── openapi-logs.png │ │ ├── powerbi.png │ │ ├── swagger-editor.png │ │ └── syndesis.jpg ├── templates │ └── index.html ├── tests │ ├── __init__.py │ ├── test_apijsonrequest.py │ ├── test_ir_model_fields.py │ ├── test_main_controller.py │ ├── test_namespace.py │ ├── test_res_users.py │ ├── test_spp_api_field_alias.py │ ├── test_spp_api_fields.py │ ├── test_spp_api_function_parameter.py │ ├── test_spp_api_log.py │ └── test_spp_api_path.py ├── tools.py ├── views │ ├── ir_model_view.xml │ ├── openapi_template.xml │ ├── openapi_view.xml │ ├── res_users_view.xml │ └── spp_api_field_alias_views.xml └── wizards │ ├── __init__.py │ ├── res_users_bearer_token.py │ └── res_users_bearer_token_views.xml ├── spp_api_records ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ ├── spp_api_field_alias_data.xml │ ├── spp_api_field_data.xml │ ├── spp_api_namespace_data.xml │ └── spp_api_path_data.xml ├── i18n │ ├── lo.po │ └── spp_api_records.pot ├── models │ ├── __init__.py │ ├── g2p_entitlements.py │ ├── g2p_program.py │ ├── product.py │ ├── spp_service_point.py │ └── uom_uom.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── static │ └── description │ │ └── index.html ├── tests │ ├── __init__.py │ ├── test_g2p_entitlement.py │ ├── test_product_template.py │ └── test_spp_service_point.py └── views │ ├── spp_service_point_views.xml │ └── uom_category_views.xml ├── spp_area ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── ar.po │ ├── ckb.po │ ├── fr.po │ ├── lo.po │ └── spp_area.pot ├── models │ ├── __init__.py │ └── registrant.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ └── ir.model.access.csv ├── static │ ├── description │ │ ├── icon.png │ │ ├── icon_area.png │ │ └── index.html │ └── src │ │ └── img │ │ └── icons │ │ └── contacts.png ├── tests │ ├── __init__.py │ ├── common.py │ ├── irq_adminboundaries_tabulardata.xlsx │ ├── pse_adminboundaries_tabulardata.xlsx │ ├── test_area.py │ ├── test_area_import.py │ └── test_area_import_raw.py └── views │ ├── area.xml │ ├── area_import.xml │ ├── area_kind.xml │ ├── group_views.xml │ └── individual_views.xml ├── spp_area_base ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ ├── area_kind_data.xml │ └── queue_job_channel.xml ├── i18n │ ├── ar.po │ ├── ckb.po │ ├── fr.po │ ├── lo.po │ ├── spp_area.pot │ └── spp_area_base.pot ├── models │ ├── __init__.py │ ├── area.py │ └── area_import.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ └── ir.model.access.csv ├── static │ ├── description │ │ ├── icon.png │ │ ├── icon_area.png │ │ └── index.html │ └── src │ │ └── img │ │ └── icons │ │ └── contacts.png ├── tests │ ├── __init__.py │ ├── common.py │ ├── irq_adminboundaries_tabulardata.xlsx │ ├── pse_adminboundaries_tabulardata.xlsx │ ├── test_area.py │ ├── test_area_import.py │ └── test_area_import_raw.py └── views │ ├── area.xml │ ├── area_import_views.xml │ └── area_kind.xml ├── spp_area_gis ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_area_gis.pot ├── models │ ├── __init__.py │ ├── area.py │ └── area_import.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── static │ ├── description │ │ ├── icon.png │ │ └── index.html │ └── src │ │ └── img │ │ └── icons │ │ └── contacts.png ├── tests │ ├── __init__.py │ ├── irq_adminboundaries_tabulardata.xlsx │ ├── pse_adminboundaries_tabulardata.xlsx │ ├── test_area_import.py │ └── test_area_import_raw.py └── views │ └── area.xml ├── spp_attendance ├── __init__.py ├── __manifest__.py ├── controllers │ ├── __init__.py │ └── controllers.py ├── data │ └── ir_config_parameter_data.xml ├── i18n │ ├── lo.po │ └── spp_attendance.pot ├── models │ ├── __init__.py │ ├── attendance_api_client_credentials.py │ ├── attendance_list.py │ ├── attendance_location.py │ ├── attendance_subscriber.py │ ├── attendance_type.py │ ├── registry_config.py │ └── res_partner.py ├── pyproject.toml ├── security │ ├── ir.model.access.csv │ └── security.xml ├── static │ ├── description │ │ └── icon.png │ └── src │ │ └── img │ │ └── icons │ │ └── attendance.png ├── views │ ├── attendance_api_client_views.xml │ ├── attendance_location_views.xml │ ├── attendance_type_views.xml │ ├── attendance_views.xml │ ├── main_views.xml │ └── res_config_view.xml └── wizard │ ├── __init__.py │ ├── import_attendance.py │ └── import_attendance_view.xml ├── spp_audit_config ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ └── audit_rule_data.xml ├── i18n │ ├── lo.po │ └── spp_audit_config.pot ├── models │ ├── __init__.py │ └── spp_audit_rule.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md └── static │ └── description │ ├── icon.png │ └── index.html ├── spp_audit_log ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_audit_log.pot ├── models │ ├── __init__.py │ ├── group.py │ ├── spp_audit_log.py │ └── spp_audit_rule.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ ├── audit_log_security.xml │ └── ir.model.access.csv ├── static │ └── description │ │ ├── icon.png │ │ └── index.html ├── tests │ ├── __init__.py │ └── test_spp_audit_rule.py ├── tools │ ├── __init__.py │ └── decorator.py └── views │ ├── spp_audit_log_views.xml │ └── spp_audit_rule_views.xml ├── spp_audit_post ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_audit_post.pot ├── models │ ├── __init__.py │ ├── spp_audit_log.py │ └── spp_audit_rule.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ ├── icon.png │ │ └── index.html └── views │ └── spp_audit_rule_views.xml ├── spp_auto_update_entitlements ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_auto_update_entitlements.pot ├── models │ ├── __init__.py │ ├── cycle.py │ └── entitlement.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── static │ └── description │ │ ├── icon.png │ │ └── index.html ├── tests │ ├── __init__.py │ ├── common.py │ ├── test_cycle.py │ └── test_entitlement.py └── views │ ├── cycle_view.xml │ └── entitlements_view.xml ├── spp_base ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ ├── global_roles.xml │ ├── local_roles.xml │ └── top_up_card.xml ├── i18n │ ├── lo.po │ └── spp_base.pot ├── models │ ├── __init__.py │ ├── group_membership.py │ ├── reg_id.py │ ├── registrant.py │ └── spp_unique_id.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ ├── icon.png │ │ ├── icon_registry.png │ │ └── index.html ├── tests │ ├── __init__.py │ └── test_top_up_id.py └── views │ ├── main_view.xml │ ├── registrant_view.xml │ └── users_view.xml ├── spp_base_api ├── README.rst ├── __init__.py ├── __manifest__.py ├── doc │ ├── changelog.rst │ └── index.rst ├── i18n │ ├── fr.po │ ├── lo.po │ └── spp_base_api.pot ├── lib │ ├── __init__.py │ └── pinguin.py ├── models │ ├── __init__.py │ └── base.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── static │ └── description │ │ ├── icon.png │ │ └── index.html └── tests │ ├── __init__.py │ └── test_base.py ├── spp_base_demo ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ ├── gender_data.xml │ └── users_data.xml ├── i18n │ ├── lo.po │ └── spp_base_demo.pot ├── locale_providers │ ├── __init__.py │ ├── en_KE │ │ └── __init__.py │ ├── lo_LA │ │ └── __init__.py │ ├── si_LK │ │ └── __init__.py │ ├── sw_KE │ │ └── __init__.py │ └── ta_LK │ │ └── __init__.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── static │ └── description │ │ ├── icon.png │ │ └── index.html └── tests │ ├── __init__.py │ └── test_locale_providers.py ├── spp_base_gis ├── README.rst ├── __init__.py ├── __manifest__.py ├── controllers │ ├── __init__.py │ └── main.py ├── expression.py ├── fields.py ├── i18n │ ├── lo.po │ └── spp_base_gis.pot ├── models │ ├── __init__.py │ ├── base.py │ ├── data_layer.py │ ├── ir_model.py │ ├── ir_view.py │ ├── raster_layer.py │ └── raster_layer_type.py ├── operators.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ ├── ir.model.access.csv │ └── security.xml ├── static │ ├── description │ │ └── index.html │ ├── img │ │ └── map-marker.png │ ├── lib │ │ ├── mapbox-gl-draw-1.2.0 │ │ │ ├── mapbox-gl-draw.css │ │ │ ├── mapbox-gl-draw.js │ │ │ └── mapbox-gl-draw.js.map │ │ ├── maptiler-geocoding-control-1.2.0 │ │ │ ├── maptilersdk.umd.cjs.map │ │ │ ├── maptilersdk.umd.js │ │ │ └── style.css │ │ ├── maptiler-sdk-js-1.2.0 │ │ │ ├── maptiler-sdk.css │ │ │ └── maptiler-sdk.umd.min.js │ │ └── turf-3.0.11 │ │ │ └── turf.min.js │ └── src │ │ ├── css │ │ └── style.css │ │ ├── images │ │ ├── editing_tool_bar.png │ │ └── laos_farm.png │ │ └── js │ │ ├── .eslintrc │ │ ├── base_layers_store.esm.js │ │ ├── data_layers_store.esm.js │ │ ├── raster_layers_store.esm.js │ │ ├── views │ │ └── gis │ │ │ ├── gis_arch_parser.esm.js │ │ │ ├── gis_compiler.esm.js │ │ │ ├── gis_controller │ │ │ ├── gis_controller.esm.js │ │ │ └── gis_controller.xml │ │ │ ├── gis_renderer │ │ │ ├── gis_renderer.esm.js │ │ │ ├── gis_renderer.scss │ │ │ └── gis_renderer.xml │ │ │ ├── gis_view.esm.js │ │ │ └── layers_panel │ │ │ ├── layers_panel.esm.js │ │ │ ├── layers_panel.scss │ │ │ └── layers_panel.xml │ │ └── widgets │ │ └── gis_edit_map │ │ ├── field_gis_edit_map.esm.js │ │ ├── field_gis_edit_map.scss │ │ └── field_gis_edit_map.xml └── views │ ├── data_layer_view.xml │ ├── ir_model_view.xml │ ├── ir_view_view.xml │ └── raster_layer_view.xml ├── spp_base_gis_demo ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_base_gis_demo.pot ├── models │ ├── __init__.py │ ├── partner.py │ └── test_gis_model.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── static │ └── description │ │ └── index.html ├── tests │ ├── __init__.py │ ├── common.py │ ├── test_base_gis.py │ ├── test_fields.py │ ├── test_gis_domain_operator.py │ └── test_operator.py └── views │ └── partner.xml ├── spp_base_gis_rest ├── README.rst ├── __init__.py ├── __manifest__.py ├── controllers │ ├── __init__.py │ └── controllers.py ├── i18n │ ├── lo.po │ └── spp_base_gis_rest.pot ├── models │ ├── __init__.py │ └── api_client_credentials.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ └── index.html ├── tests │ ├── __init__.py │ └── test_api_client_credentials.py └── views │ └── api_client_credentials_view.xml ├── spp_base_setting ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_base_setting.pot ├── models │ └── __init__.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── static │ └── description │ │ └── index.html ├── tests │ └── __init__.py └── views │ ├── country_office_views.xml │ └── res_users_views.xml ├── spp_basic_cash_entitlement_spent ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_basic_cash_entitlement_spent.pot ├── models │ ├── __init__.py │ └── entitlement.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── static │ └── description │ │ └── index.html └── tests │ ├── __init__.py │ └── test_g2p_entitlement.py ├── spp_change_request ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ ├── dms.xml │ ├── mail_activity.xml │ └── sequences.xml ├── i18n │ ├── ar.po │ ├── ckb.po │ ├── fr.po │ ├── lo.po │ └── spp_change_request.pot ├── models │ ├── __init__.py │ ├── change_request.py │ ├── change_request_stage.py │ ├── change_request_targets.py │ ├── dms_directory.py │ ├── dms_file.py │ ├── group_membership.py │ ├── mixins │ │ ├── __init__.py │ │ ├── source_mixin.py │ │ └── validation_sequence_mixin.py │ └── registry.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ ├── change_request_security.xml │ └── ir.model.access.csv ├── static │ ├── description │ │ ├── icon.png │ │ └── index.html │ └── src │ │ ├── js │ │ └── dms_preview.js │ │ ├── scss │ │ └── change_request.scss │ │ └── xml │ │ └── dms_preview_widget.xml ├── tests │ ├── __init__.py │ ├── common.py │ └── test_change_requests.py ├── views │ ├── change_request_validation_sequence_view.xml │ ├── change_request_view.xml │ ├── dms_file_view.xml │ ├── main_view.xml │ └── registrant_view.xml └── wizard │ ├── __init__.py │ ├── cancel_change_request.py │ ├── cancel_change_request_view.xml │ ├── confirm_user_assignment.py │ ├── confirm_user_assignment_view.xml │ ├── reject_change_request.py │ └── reject_change_request_view.xml ├── spp_change_request_add_children_demo ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ ├── change_request_sequence.xml │ ├── change_request_stage.xml │ ├── change_request_target.xml │ ├── dms.xml │ └── id_type.xml ├── i18n │ ├── lo.po │ └── spp_change_request_add_children_demo.pot ├── models │ ├── __init__.py │ ├── change_request.py │ ├── change_request_add_children.py │ ├── change_request_add_children_validation_sequence.py │ ├── dms.py │ └── group_membership.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ ├── change_request_security.xml │ └── ir.model.access.csv ├── static │ └── description │ │ ├── icon.png │ │ └── index.html ├── tests │ ├── __init__.py │ ├── sample_document.jpeg │ └── test_create_cr.py └── views │ ├── change_request_add_children_view.xml │ └── dms_file_view.xml ├── spp_change_request_add_farmer ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ ├── change_request_sequence.xml │ ├── change_request_stage.xml │ ├── change_request_target.xml │ ├── dms.xml │ └── id_type.xml ├── i18n │ ├── lo.po │ └── spp_change_request_add_farmer.pot ├── models │ ├── __init__.py │ ├── change_request_add_farmer.py │ ├── change_request_add_farmer_validation_sequence.py │ ├── dms.py │ └── group_membership.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ ├── change_request_security.xml │ └── ir.model.access.csv ├── static │ └── description │ │ ├── icon.png │ │ └── index.html ├── tests │ ├── __init__.py │ └── test_change_request_add_farmer.py └── views │ ├── change_request_add_farmer_view.xml │ └── dms_file_view.xml ├── spp_change_request_add_group_to_group ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ ├── change_request_sequence.xml │ ├── change_request_stage.xml │ ├── change_request_target.xml │ └── dms.xml ├── i18n │ ├── lo.po │ ├── spp_change_request_add_farm.pot │ └── spp_change_request_add_group_to_group.pot ├── models │ ├── __init__.py │ ├── change_request_add_group_to_group.py │ ├── change_request_add_group_to_group_validation_sequence.py │ ├── dms.py │ └── group_membership.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ ├── change_request_security.xml │ └── ir.model.access.csv ├── static │ └── description │ │ ├── icon.png │ │ └── index.html ├── tests │ ├── __init__.py │ └── test_change_request_add_group_to_group.py └── views │ ├── change_request_add_group_to_group_view.xml │ ├── change_request_view.xml │ └── dms_file_view.xml ├── spp_change_request_base ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ ├── mail_activity.xml │ └── sequences.xml ├── i18n │ ├── ar.po │ ├── ckb.po │ ├── fr.po │ ├── lo.po │ ├── spp_change_request.pot │ └── spp_change_request_base.pot ├── models │ ├── __init__.py │ ├── change_request.py │ ├── change_request_stage.py │ ├── dms_directory.py │ ├── dms_file.py │ ├── mixins │ │ ├── __init__.py │ │ ├── source_mixin.py │ │ └── validation_sequence_mixin.py │ └── registry.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ ├── change_request_security.xml │ └── ir.model.access.csv ├── static │ ├── description │ │ ├── icon.png │ │ └── index.html │ └── src │ │ ├── js │ │ └── dms_preview.js │ │ ├── scss │ │ └── change_request.scss │ │ └── xml │ │ └── dms_preview_widget.xml ├── tests │ ├── __init__.py │ ├── common.py │ └── test_change_requests.py ├── views │ ├── change_request_validation_sequence_view.xml │ ├── dms_file_view.xml │ └── main_view.xml └── wizard │ ├── __init__.py │ ├── cancel_change_request.py │ ├── cancel_change_request_view.xml │ ├── confirm_user_assignment.py │ ├── confirm_user_assignment_view.xml │ ├── reject_change_request.py │ └── reject_change_request_view.xml ├── spp_change_request_change_info ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ ├── change_request_sequence.xml │ ├── change_request_stage.xml │ ├── change_request_target.xml │ ├── dms.xml │ └── id_type.xml ├── i18n │ ├── lo.po │ └── spp_change_request_change_info.pot ├── models │ ├── __init__.py │ ├── change_request.py │ ├── change_request_change_info.py │ ├── change_request_change_info_validation_sequence.py │ ├── dms.py │ └── group_membership.py ├── pyproject.toml ├── security │ ├── change_request_security.xml │ └── ir.model.access.csv ├── static │ └── description │ │ └── icon.png ├── tests │ ├── __init__.py │ ├── sample_document.jpeg │ └── test_create_cr.py └── views │ ├── change_request_change_info_view.xml │ └── dms_file_view.xml ├── spp_change_request_create_farm ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ ├── change_request_sequence.xml │ ├── change_request_stage.xml │ ├── change_request_target.xml │ └── dms.xml ├── i18n │ ├── lo.po │ └── spp_change_request_create_farm.pot ├── models │ ├── __init__.py │ ├── change_request_create_farm.py │ ├── change_request_create_farm_validation_sequence.py │ └── dms.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ ├── change_request_security.xml │ └── ir.model.access.csv ├── static │ └── description │ │ ├── icon.png │ │ └── index.html ├── tests │ ├── __init__.py │ └── test_change_request_create_farm.py └── views │ ├── change_request_create_farm_view.xml │ ├── change_request_view.xml │ └── dms_file_view.xml ├── spp_change_request_create_group ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ ├── change_request_sequence.xml │ ├── change_request_stage.xml │ ├── change_request_target.xml │ ├── dms.xml │ └── id_type.xml ├── i18n │ ├── lo.po │ └── spp_change_request_create_group.pot ├── models │ ├── __init__.py │ ├── change_request_create_group.py │ ├── change_request_create_group_validation_sequence.py │ └── dms.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ ├── change_request_security.xml │ └── ir.model.access.csv ├── static │ └── description │ │ ├── icon.png │ │ └── index.html ├── tests │ ├── __init__.py │ └── test_change_request_create_group.py └── views │ ├── change_request_create_group_view.xml │ ├── change_request_view.xml │ └── dms_file_view.xml ├── spp_change_request_edit_farm ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ ├── change_request_sequence.xml │ ├── change_request_stage.xml │ ├── change_request_target.xml │ └── dms.xml ├── models │ ├── __init__.py │ ├── change_request_edit_farm.py │ ├── change_request_edit_farm_validation_sequence.py │ └── dms.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ ├── change_request_security.xml │ └── ir.model.access.csv ├── static │ └── description │ │ ├── icon.png │ │ └── index.html ├── tests │ ├── __init__.py │ └── test_change_request_edit_farm.py └── views │ ├── change_request_edit_farm_view.xml │ ├── change_request_view.xml │ └── dms_file_view.xml ├── spp_change_request_edit_farmer ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ ├── change_request_sequence.xml │ ├── change_request_stage.xml │ ├── change_request_target.xml │ └── dms.xml ├── models │ ├── __init__.py │ ├── change_request_edit_farmer.py │ ├── change_request_edit_farmer_validation_sequence.py │ └── dms.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ ├── change_request_security.xml │ └── ir.model.access.csv ├── static │ └── description │ │ ├── icon.png │ │ └── index.html ├── tests │ ├── __init__.py │ └── test_change_request_edit_farmer.py └── views │ ├── change_request_edit_farmer_view.xml │ ├── change_request_view.xml │ └── dms_file_view.xml ├── spp_consent ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ └── default_consent_config.xml ├── i18n │ ├── ar.po │ ├── ckb.po │ ├── fr.po │ ├── lo.po │ └── spp_consent.pot ├── models │ ├── __init__.py │ ├── consent.py │ ├── consent_config.py │ ├── consent_mixin.py │ └── registrant.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ ├── icon.png │ │ └── index.html ├── tests │ ├── __init__.py │ ├── common.py │ ├── test_record_consent_wizard.py │ └── test_registrant.py ├── views │ ├── expired_consent_view.xml │ └── registrant_view.xml └── wizard │ ├── __init__.py │ ├── record_consent.py │ └── record_consent.xml ├── spp_custom_field ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── ar.po │ ├── ckb.po │ ├── fr.po │ ├── lo.po │ └── spp_custom_field.pot ├── models │ ├── __init__.py │ └── cus_partner.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md └── static │ └── description │ ├── icon.png │ └── index.html ├── spp_custom_field_custom_filter ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_custom_field_custom_filter.pot ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── static │ └── description │ │ └── index.html └── views │ └── ir_model_fields_views.xml ├── spp_custom_field_recompute_daily ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ └── ir_cron_data.xml ├── i18n │ ├── lo.po │ └── spp_custom_field_recompute_daily.pot ├── models │ ├── __init__.py │ ├── base.py │ ├── ir_model_fields.py │ ├── res_config_settings.py │ └── test_daily_recompute_model.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ └── index.html ├── tests │ ├── __init__.py │ └── test_ir_model_fields.py └── views │ ├── ir_model_fields_views.xml │ └── res_config_settings_views.xml ├── spp_custom_fields_ui ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── ar.po │ ├── ckb.po │ ├── fr.po │ ├── lo.po │ └── spp_custom_fields_ui.pot ├── models │ ├── __init__.py │ └── custom_fields_ui.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── static │ └── description │ │ ├── icon.png │ │ └── index.html ├── tests │ ├── __init__.py │ └── test_custom_fields_ui.py └── views │ └── custom_fields_ui.xml ├── spp_custom_filter ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── ar.po │ ├── ckb.po │ ├── fr.po │ ├── lo.po │ └── spp_custom_filter.pot ├── models │ ├── __init__.py │ ├── custom_filter_mixin.py │ └── ir_model_fields.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── static │ └── description │ │ └── index.html └── views │ └── ir_model_fields_views.xml ├── spp_custom_filter_farmer_registry ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_custom_filter_farmer_registry.pot ├── models │ ├── __init__.py │ └── res_partner.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md └── static │ └── description │ └── index.html ├── spp_custom_filter_ui ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_custom_filter_ui.pot ├── models │ ├── __init__.py │ └── res_partner.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md └── static │ └── description │ └── index.html ├── spp_cycle_attendance_compliance ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_cycle_attendance_compliance.pot ├── models │ ├── __init__.py │ ├── cycle_group_membership_attendance.py │ ├── cycle_membership.py │ ├── event_data_attendance.py │ ├── g2p_cycle.py │ ├── individual.py │ ├── managers │ │ ├── __init__.py │ │ ├── cycle_manager.py │ │ └── program_manager.py │ ├── res_config_attendance_location.py │ ├── res_config_attendance_type.py │ └── res_config_settings.py ├── pyproject.toml ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ └── icon.png └── views │ ├── config_attendance_location_view.xml │ ├── config_attendance_type_view.xml │ ├── cycle_membership_view.xml │ ├── event_data_attendance_view.xml │ ├── g2p_cycle_views.xml │ ├── main_attendance_view.xml │ ├── registrant_view.xml │ └── res_config_settings_views.xml ├── spp_dashboard_base ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_dashboard_base.pot ├── pyproject.toml └── static │ ├── description │ └── icon.png │ └── src │ ├── card_board │ ├── card_board.js │ └── card_board.xml │ ├── chart │ ├── chart.js │ └── chart.xml │ └── dashboard │ ├── dashboard.js │ └── dashboard.xml ├── spp_data_export ├── README.rst ├── __init__.py ├── __manifest__.py ├── controllers │ ├── __init__.py │ └── main.py ├── i18n │ ├── lo.po │ └── spp_data_export.pot ├── pyproject.toml ├── readme │ └── DESCRIPTION.md └── static │ └── description │ └── index.html ├── spp_dci_api_server ├── README.rst ├── __init__.py ├── __manifest__.py ├── controllers │ ├── __init__.py │ └── controllers.py ├── i18n │ ├── lo.po │ └── spp_dci_api_server.pot ├── models │ ├── __init__.py │ ├── client_credentials.py │ └── individual.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ ├── icon.png │ │ └── index.html ├── tests │ ├── __init__.py │ ├── test_client_credentials.py │ └── test_individual.py ├── tools │ ├── __init__.py │ ├── constants.py │ ├── private_key.pem │ └── public_key.pub └── views │ └── client_credentials_view.xml ├── spp_dms ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_dms.pot ├── models │ ├── __init__.py │ ├── dms_category.py │ ├── dms_directory.py │ ├── dms_file.py │ └── mixins_thumbnail.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ ├── ir.model.access.csv │ └── security.xml ├── static │ ├── description │ │ ├── icon.png │ │ └── index.html │ ├── icons │ │ ├── file_ai.svg │ │ ├── file_aj.svg │ │ ├── file_avi.svg │ │ ├── file_c.svg │ │ ├── file_cbl.svg │ │ ├── file_cc.svg │ │ ├── file_coffee.svg │ │ ├── file_cs.svg │ │ ├── file_css.svg │ │ ├── file_csv.svg │ │ ├── file_dbf.svg │ │ ├── file_dll.svg │ │ ├── file_doc.svg │ │ ├── file_docx.svg │ │ ├── file_dwg.svg │ │ ├── file_eml.svg │ │ ├── file_eps.svg │ │ ├── file_exe.svg │ │ ├── file_f.svg │ │ ├── file_fla.svg │ │ ├── file_gif.svg │ │ ├── file_go.svg │ │ ├── file_groovy.svg │ │ ├── file_html.svg │ │ ├── file_iso.svg │ │ ├── file_java.svg │ │ ├── file_jpg.svg │ │ ├── file_js.svg │ │ ├── file_json.svg │ │ ├── file_less.svg │ │ ├── file_md.svg │ │ ├── file_mov.svg │ │ ├── file_mp3.svg │ │ ├── file_mp4.svg │ │ ├── file_odp.svg │ │ ├── file_ods.svg │ │ ├── file_odt.svg │ │ ├── file_pdf.svg │ │ ├── file_php.svg │ │ ├── file_ppt.svg │ │ ├── file_pptx.svg │ │ ├── file_psd.svg │ │ ├── file_py.svg │ │ ├── file_rar.svg │ │ ├── file_raw.svg │ │ ├── file_rtf.svg │ │ ├── file_sass.svg │ │ ├── file_sc.svg │ │ ├── file_sh.svg │ │ ├── file_svg.svg │ │ ├── file_tar.svg │ │ ├── file_ttf.svg │ │ ├── file_txt.svg │ │ ├── file_unknown.svg │ │ ├── file_wav.svg │ │ ├── file_xls.svg │ │ ├── file_xlsx.svg │ │ ├── file_xml.svg │ │ ├── file_zip.svg │ │ └── folder.svg │ └── src │ │ ├── js │ │ └── preview_binary_field.esm.js │ │ └── xml │ │ └── preview_binary_field.xml ├── tests │ ├── __init__.py │ ├── test_dms_directory.py │ ├── test_dms_file.py │ └── test_file_tools.py ├── tools │ ├── __init__.py │ └── file_tools.py └── views │ ├── dms_category_views.xml │ ├── dms_directory_views.xml │ ├── dms_file_views.xml │ └── main_view.xml ├── spp_eligibility_sql ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_eligibility_sql.pot ├── models │ ├── __init__.py │ ├── eligibility_manager.py │ └── programs.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ └── index.html ├── tests │ ├── __init__.py │ ├── test_create_program_wizard.py │ ├── test_eligibility_manager.py │ └── test_program.py ├── views │ └── eligibility_manager_view.xml └── wizard │ ├── __init__.py │ ├── create_program_wizard.py │ └── create_program_wizard.xml ├── spp_eligibility_tags ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_eligibility_tags.pot ├── models │ ├── __init__.py │ └── eligibility_manager.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ ├── icon.png │ │ └── index.html ├── tests │ ├── __init__.py │ ├── test_create_program_wizard.py │ └── test_eligibility_manager.py ├── views │ └── eligibility_manager_view.xml └── wizard │ ├── __init__.py │ ├── create_program_wizard.py │ └── create_program_wizard.xml ├── spp_encryption ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_encryption.pot ├── models │ ├── __init__.py │ └── encryption_provider.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── static │ └── description │ │ └── index.html ├── tests │ ├── __init__.py │ └── test_encryption_provider.py └── views │ └── encryption_provider.xml ├── spp_ent_trans ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_ent_trans.pot ├── models │ ├── __init__.py │ └── transactions.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ ├── icon.png │ │ └── index.html └── views │ ├── inkind_transactions_view.xml │ └── transactions_view.xml ├── spp_entitlement_basket ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── ar.po │ ├── ckb.po │ ├── fr.po │ ├── lo.po │ └── spp_entitlement_basket.pot ├── models │ ├── __init__.py │ ├── entitlement.py │ ├── entitlement_manager.py │ └── stock │ │ ├── __init__.py │ │ └── food_basket.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ └── ir.model.access.csv ├── static │ ├── description │ │ ├── icon.png │ │ └── index.html │ └── src │ │ └── css │ │ └── spp_entitlement_basket.css ├── tests │ ├── __init__.py │ ├── common.py │ ├── test_create_program_wizard.py │ ├── test_entitlement_basket.py │ ├── test_entitlement_manager.py │ └── test_food_basket.py ├── views │ ├── entitlement_manager_view.xml │ └── stock │ │ └── entitlement_basket_view.xml └── wizard │ ├── __init__.py │ ├── create_program_wizard.py │ └── create_program_wizard.xml ├── spp_entitlement_cash ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── ar.po │ ├── ckb.po │ ├── fr.po │ ├── lo.po │ └── spp_entitlement_cash.pot ├── models │ ├── __init__.py │ └── entitlement_manager.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ ├── icon.png │ │ └── index.html ├── tests │ ├── __init__.py │ ├── test_create_program_wizard.py │ └── test_entitlement_manager.py ├── views │ └── entitlement_manager_view.xml └── wizard │ ├── __init__.py │ ├── create_program_wizard.py │ └── create_program_wizard.xml ├── spp_entitlement_in_kind ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── ar.po │ ├── ckb.po │ ├── fr.po │ ├── lo.po │ └── spp_entitlement_in_kind.pot ├── models │ ├── __init__.py │ ├── entitlement.py │ └── entitlement_manager.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ ├── icon.png │ │ └── index.html ├── tests │ ├── __init__.py │ ├── test_create_program_wizard.py │ └── test_entitlement_manager.py ├── views │ └── entitlement_manager_view.xml └── wizard │ ├── __init__.py │ ├── create_program_wizard.py │ └── create_program_wizard.xml ├── spp_ethnic_group ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_ethnic_group.pot ├── models │ ├── __init__.py │ └── ethnic_group.py ├── pyproject.toml ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ ├── icon.png │ │ └── index.html └── views │ └── ethnic_group_views.xml ├── spp_event_data ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── ar.po │ ├── ckb.po │ ├── fr.po │ ├── lo.po │ └── spp_event_data.pot ├── models │ ├── __init__.py │ ├── event_data.py │ └── registrant.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ ├── icon.png │ │ └── index.html ├── tests │ ├── __init__.py │ └── test_event_data.py ├── views │ ├── event_data_view.xml │ └── registrant_view.xml └── wizard │ ├── __init__.py │ ├── create_event_wizard.py │ └── create_event_wizard.xml ├── spp_event_data_program_membership ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_event_data_program_membership.pot ├── models │ ├── __init__.py │ ├── event_data.py │ └── program_membership.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── static │ └── description │ │ ├── icon.png │ │ └── index.html ├── tests │ ├── __init__.py │ ├── test_create_event_wizard.py │ ├── test_event_data.py │ └── test_program_membership.py ├── views │ ├── event_data_view.xml │ └── registrant_view.xml └── wizard │ ├── __init__.py │ ├── create_event_wizard.py │ └── create_event_wizard.xml ├── spp_event_demo ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── ar.po │ ├── ckb.po │ ├── fr.po │ ├── lo.po │ └── spp_event_demo.pot ├── models │ ├── __init__.py │ ├── house_visit.py │ ├── phone_survey.py │ ├── registrant.py │ └── school_enrolment.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ ├── icon.png │ │ └── index.html ├── tests │ ├── __init__.py │ ├── test_event_house_visit.py │ ├── test_event_phone_survey.py │ └── test_event_schoolenrolment_record.py ├── views │ ├── house_visit_view.xml │ ├── phone_survey_view.xml │ └── registrant_view.xml └── wizard │ ├── __init__.py │ ├── create_event_house_visit_wizard.py │ ├── create_event_house_visit_wizard.xml │ ├── create_event_phone_survey_wizard.py │ ├── create_event_phone_survey_wizard.xml │ ├── create_event_school_enrolment_wizard.py │ ├── create_event_school_enrolment_wizard.xml │ └── create_event_wizard.py ├── spp_exclusion_filter ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_exclusion_filter.pot ├── models │ ├── __init__.py │ └── managers │ │ ├── __init__.py │ │ └── eligibility_manager.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── static │ └── description │ │ └── index.html ├── tests │ ├── __init__.py │ └── test_eligibility_manager.py ├── views │ └── managers │ │ └── eligibility_manager_view.xml └── wizard │ ├── __init__.py │ ├── create_program_wizard.py │ └── create_program_wizard.xml ├── spp_farmer_registry_base ├── README.rst ├── __init__.py ├── __manifest__.py ├── controllers │ ├── __init__.py │ ├── farm.py │ └── land_record.py ├── data │ ├── id_data.xml │ └── kind_data.xml ├── i18n │ ├── lo.po │ ├── lo_LA.po │ └── spp_farmer_registry_base.pot ├── models │ ├── __init__.py │ ├── agricultural_activity.py │ ├── base_import.py │ ├── chemical.py │ ├── extension_services.py │ ├── farm.py │ ├── farm_asset.py │ ├── farm_details.py │ ├── farm_season.py │ ├── farmer.py │ ├── feed_items.py │ ├── fertilizer.py │ ├── group_membership.py │ ├── land_record.py │ └── species.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ ├── ir.model.access.csv │ └── security.xml ├── static │ ├── description │ │ ├── icon.png │ │ └── index.html │ └── src │ │ └── import_records │ │ └── import_records.js ├── tests │ ├── __init__.py │ ├── test_farm.py │ ├── test_farm_season.py │ └── test_group_membership.py └── views │ ├── configuration_view.xml │ ├── farm_season_view.xml │ ├── res_partner.xml │ └── res_users.xml ├── spp_farmer_registry_dashboard ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ ├── dashboards.xml │ └── files │ │ └── farmer_registry_dashboard.json ├── i18n │ ├── lo.po │ └── spp_farmer_registry_dashboard.pot ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── reports │ ├── __init__.py │ ├── farmer_farm_details_report.py │ ├── farmer_registry_report.py │ ├── farmer_registry_report_views.xml │ └── farmer_with_without_training_report.py ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ └── index.html └── views │ └── main_view.xml ├── spp_farmer_registry_default_ui ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_farmer_registry_default_ui.pot ├── models │ └── __init__.py ├── pyproject.toml ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ └── icon.png └── views │ ├── group_view.xml │ └── individual_view.xml ├── spp_farmer_registry_demo ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ ├── aqua_data.xml │ ├── asset_type_data.xml │ ├── chemical_data.xml │ ├── crop_data.xml │ ├── feed_items_data.xml │ ├── fertilizer_data.xml │ ├── livestock_data.xml │ └── machinery_type_data.xml ├── i18n │ ├── lo.po │ └── spp_farmer_registry_demo.pot ├── models │ ├── __init__.py │ ├── agricultural_activity.py │ ├── farm.py │ ├── farm_asset.py │ ├── farm_details.py │ ├── farmer.py │ ├── generate_farmer_data.py │ └── land_record.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ ├── icon.png │ │ └── index.html ├── tests │ ├── __init__.py │ ├── test_farm.py │ ├── test_generate_farmer_data.py │ └── test_tools.py ├── tools │ ├── __init__.py │ ├── generate_polygon.py │ ├── geoBoundaries-LKA-ADM0_simplified.geojson │ ├── laos_features.json │ ├── random_location_in_kenya.py │ ├── random_location_in_laos.py │ └── random_location_in_sri_lanka.py └── views │ ├── generate_farmer_data_view.xml │ ├── group_view.xml │ └── individual_view.xml ├── spp_grm ├── README.rst ├── __init__.py ├── __manifest__.py ├── controllers │ ├── __init__.py │ └── grm_portal.py ├── data │ ├── grm_data.xml │ ├── mail_alias.xml │ ├── mail_templates.xml │ └── user_roles.xml ├── i18n │ ├── lo.po │ └── spp_grm.pot ├── models │ ├── __init__.py │ ├── grm_ticket.py │ ├── grm_ticket_category.py │ ├── grm_ticket_channel.py │ ├── grm_ticket_stage.py │ ├── grm_ticket_tag.py │ └── res_partner.py ├── pyproject.toml ├── security │ ├── grm_security.xml │ └── ir.model.access.csv ├── static │ ├── description │ │ └── icon.png │ └── src │ │ └── img │ │ └── ticket.svg ├── tests │ ├── __init__.py │ ├── test_grm_ticket.py │ ├── test_grm_ticket_stage.py │ └── test_res_partner.py └── views │ ├── grm_portal_templates.xml │ ├── grm_ticket_category_views.xml │ ├── grm_ticket_channel_views.xml │ ├── grm_ticket_menu.xml │ ├── grm_ticket_stage_views.xml │ ├── grm_ticket_tag_views.xml │ ├── grm_ticket_views.xml │ ├── res_config_settings_views.xml │ └── res_partner_views.xml ├── spp_hide_menus ├── __init__.py ├── __manifest__.py ├── data │ └── hide_menu_data.xml ├── i18n │ ├── lo.po │ └── spp_hide_menus.pot └── pyproject.toml ├── spp_hide_menus_base ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_hide_menus_base.pot ├── models │ ├── __init__.py │ └── hide_menu.py ├── pyproject.toml ├── security │ ├── ir.model.access.csv │ └── security.xml └── views │ └── hide_menu_view.xml ├── spp_idpass ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ └── id_pass.xml ├── i18n │ ├── ar.po │ ├── ckb.po │ ├── fr.po │ ├── lo.po │ └── spp_idpass.pot ├── models │ ├── __init__.py │ ├── id_pass.py │ ├── id_type.py │ └── registrant.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ ├── icon.png │ │ ├── icon_id.png │ │ └── index.html ├── tests │ ├── __init__.py │ ├── test_id_pass.py │ ├── test_id_type.py │ └── test_registrant.py ├── views │ ├── id_pass_view.xml │ ├── id_type.xml │ ├── main_view.xml │ └── registrant.xml └── wizard │ ├── __init__.py │ ├── issue_id_pass_wizard.py │ └── issue_id_pass_wizard.xml ├── spp_idqueue ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ ├── id_pass.xml │ └── queue_data.xml ├── i18n │ ├── ar.po │ ├── ckb.po │ ├── fr.po │ ├── lo.po │ └── spp_idqueue.pot ├── models │ ├── __init__.py │ ├── id_batch.py │ ├── id_queue.py │ ├── queue_job_channel.py │ └── registrant.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ ├── g2p_security.xml │ └── ir.model.access.csv ├── static │ ├── description │ │ ├── icon.png │ │ └── index.html │ └── src │ │ └── js │ │ └── form_controller.js ├── tests │ ├── __init__.py │ ├── common.py │ ├── test_batch_create_wizard.py │ ├── test_id_batch.py │ ├── test_id_queue.py │ ├── test_multi_id_request_wizard.py │ ├── test_queue_job_channel.py │ ├── test_registrant.py │ ├── test_request_id_wizard.py │ └── test_res_config_settings.py ├── views │ ├── id_batch_view.xml │ ├── id_pass_view.xml │ ├── id_queue_view.xml │ ├── registrant.xml │ └── res_config_settings.xml └── wizard │ ├── __init__.py │ ├── batch_create_wizard.py │ ├── batch_create_wizard.xml │ ├── multi_id_request_wizard.py │ ├── multi_id_request_wizard.xml │ ├── request_id_wizard.py │ └── request_id_wizard.xml ├── spp_import_dci_api ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ ├── crvs_data_source.xml │ └── crvs_location_data.xml ├── i18n │ ├── lo.po │ └── spp_import_dci_api.pot ├── models │ ├── __init__.py │ ├── constants.py │ ├── eligibility_manager.py │ ├── fetch_crvs_beneficiary.py │ ├── group.py │ ├── group_membership.py │ ├── imported_individuals.py │ ├── individual.py │ └── res_partner.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ ├── fetch_crvs_security.xml │ └── ir.model.access.csv ├── static │ ├── description │ │ ├── icon.png │ │ └── index.html │ └── src │ │ ├── img │ │ └── icons │ │ │ └── contacts.png │ │ ├── js │ │ └── field_domain.js │ │ └── xml │ │ └── field_domain.xml ├── tests │ ├── __init__.py │ └── test_fetch_crvs_beneficiary.py ├── tools │ ├── __init__.py │ ├── field_onchange.py │ ├── insert_operator.py │ ├── private_key.pem │ └── private_key.pem.pub ├── views │ ├── create_program_wizard_view.xml │ ├── eligibility_manager_view.xml │ └── fetch_crvs_beneficiary_views.xml └── wizard │ ├── __init__.py │ └── create_program_wizard.py ├── spp_import_match ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ └── queue_job_data.xml ├── i18n │ ├── lo.po │ └── spp_import_match.pot ├── models │ ├── __init__.py │ ├── base.py │ ├── base_import.py │ ├── import_match.py │ └── queue_job.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ └── ir.model.access.csv ├── static │ ├── description │ │ ├── icon.png │ │ └── index.html │ └── src │ │ └── legacy │ │ ├── custom_base_import.xml │ │ ├── js │ │ └── custom_base_import.js │ │ └── xml │ │ └── custom_base_import.xml ├── tests │ ├── __init__.py │ ├── res_partner_group_async.csv │ ├── res_partner_group_name.csv │ ├── res_partner_name.csv │ └── test_res_partner_import_match.py └── views │ └── import_match_view.xml ├── spp_irrigation ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_irrigation.pot ├── models │ ├── __init__.py │ └── irrigation.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ ├── ir.model.access.csv │ └── irrigation_security.xml ├── static │ └── description │ │ └── index.html └── views │ └── irrigation_view.xml ├── spp_land_record ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_land_record.pot ├── models │ ├── __init__.py │ └── land_record.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ ├── icon.png │ │ └── index.html └── tests │ ├── __init__.py │ └── test_land_record.py ├── spp_manual_eligibility ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_manual_eligibility.pot ├── models │ ├── __init__.py │ ├── cycle.py │ ├── eligibility_manager.py │ ├── program.py │ └── program_membership.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── static │ └── description │ │ ├── icon.png │ │ └── index.html ├── tests │ ├── __init__.py │ └── test_manual_eligibility.py ├── views │ ├── cycle_view.xml │ ├── program_membership_view.xml │ └── program_view.xml └── wizard │ ├── __init__.py │ ├── assign_to_program_wizard.py │ ├── create_program_wizard.py │ └── create_program_wizard.xml ├── spp_manual_entitlement ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_manual_entitlement.pot ├── models │ ├── __init__.py │ ├── cycle.py │ ├── cycle_manager.py │ └── entitlement_manager.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ ├── icon.png │ │ └── index.html ├── tests │ ├── __init__.py │ ├── test_entitlement.csv │ ├── test_entitlement.pdf │ ├── test_entitlement.xlsx │ └── test_manual_entitlement.py ├── views │ └── cycle_view.xml └── wizard │ ├── __init__.py │ ├── create_program_wizard.py │ ├── manual_entitlement_wizard.py │ └── manual_entitlement_wizard.xml ├── spp_mis_demo ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ ├── product_data.xml │ └── res_lang_data.xml ├── i18n │ ├── lo.po │ ├── spp_demo.pot │ └── spp_mis_demo.pot ├── models │ ├── __init__.py │ ├── generate_group.py │ ├── generate_program.py │ ├── group.py │ └── individual.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ ├── icon.png │ │ └── index.html ├── tests │ ├── __init__.py │ ├── test_cus_partner.py │ ├── test_generate_group.py │ └── test_generate_program.py └── views │ ├── generate_data_view.xml │ └── generate_program_view.xml ├── spp_oauth ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_oauth.pot ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── static │ └── description │ │ └── index.html ├── tests │ ├── __init__.py │ └── test_rsa_encode_decode.py └── tools │ ├── __init__.py │ ├── oauth_exception.py │ ├── private_key.pem │ ├── public_key.pub │ └── rsa_encode_decode.py ├── spp_openid_vci ├── README.rst ├── __init__.py ├── __manifest__.py ├── controllers │ ├── __init__.py │ └── controllers.py ├── data │ └── paperformat.xml ├── i18n │ ├── lo.po │ └── spp_openid_vci.pot ├── models │ ├── __init__.py │ ├── ir_actions_report.py │ ├── res_partner.py │ └── vci_issuer.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ ├── ir.model.access.csv │ ├── security_access.xml │ └── security_user_roles.xml ├── static │ └── description │ │ ├── icon.png │ │ └── index.html ├── tests │ ├── __init__.py │ ├── test_tools.py │ └── test_vci_issuer.py ├── tools │ ├── __init__.py │ └── tools.py ├── views │ ├── id_card.xml │ └── registrant_view.xml └── wizard │ ├── __init__.py │ ├── vci_issuer_selection.py │ └── vci_issuer_selection_view.xml ├── spp_openid_vci_group ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ ├── default_contexts.json │ ├── default_credential_format.jq │ └── default_issuer_metadata.jq ├── i18n │ ├── lo.po │ └── spp_openid_vci_group.pot ├── models │ ├── __init__.py │ └── vci_issuer.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── static │ └── description │ │ └── index.html └── views │ └── group_view.xml ├── spp_openid_vci_individual ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ ├── default_contexts.json │ ├── default_credential_format.jq │ └── default_issuer_metadata.jq ├── i18n │ ├── lo.po │ └── spp_openid_vci_individual.pot ├── models │ ├── __init__.py │ └── vci_issuer.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── static │ └── description │ │ └── index.html └── views │ └── individual_view.xml ├── spp_pmt ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_pmt.pot ├── models │ ├── __init__.py │ ├── custom_fields_ui.py │ └── pmt.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ ├── icon.png │ │ └── index.html ├── tests │ ├── __init__.py │ └── test_pmt.py └── views │ ├── custom_fields_ui_view.xml │ └── custom_registrant_view.xml ├── spp_pos ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ └── entitlement_product.xml ├── i18n │ ├── ar.po │ ├── ckb.po │ ├── fr.po │ ├── lo.po │ └── spp_pos.pot ├── models │ ├── __init__.py │ ├── entitlement.py │ ├── pos_category.py │ └── product_template.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── static │ ├── description │ │ ├── icon.png │ │ └── index.html │ └── src │ │ ├── js │ │ ├── action_button.js │ │ ├── check_keypress_entitlement.js │ │ └── popup_voucher.js │ │ └── view │ │ ├── action_button.xml │ │ └── popup_voucher.xml ├── tests │ ├── __init__.py │ ├── test_g2p_entitlement.py │ ├── test_pos_category.py │ └── test_product_template.py └── views │ └── product_template_views.xml ├── spp_pos_id_redemption ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_pos_id_redemption.pot ├── models │ ├── __init__.py │ ├── cycle.py │ ├── entitlement.py │ ├── entitlement_manager.py │ ├── pos_config.py │ ├── pos_session.py │ ├── product_template.py │ ├── reg_id.py │ └── res_partner.py ├── pyproject.toml ├── report │ ├── id_barcode_printout.xml │ └── paper_format.xml ├── security │ └── ir.model.access.csv ├── static │ └── src │ │ ├── js │ │ ├── customer_note.js │ │ ├── db.js │ │ ├── entitlement_product_list.js │ │ ├── partner_list.js │ │ ├── payment_screen.js │ │ ├── popup_voucher.js │ │ ├── pos_store.js │ │ ├── product_card.js │ │ ├── product_list.js │ │ └── product_screen.js │ │ └── view │ │ ├── action_pad.xml │ │ ├── customer_note.xml │ │ ├── entitlement_product_list.xml │ │ ├── partner_list.xml │ │ ├── payment_screen.xml │ │ ├── popup_voucher.xml │ │ ├── product_card.xml │ │ ├── product_list.xml │ │ ├── product_screen.xml │ │ └── ticket_screen.xml ├── views │ ├── cycle_view.xml │ ├── entitlements_view.xml │ ├── pos_config_view.xml │ ├── pos_view.xml │ ├── product_template_view.xml │ └── registrant_view.xml └── wizard │ ├── __init__.py │ ├── create_program_wizard.py │ └── create_program_wizard.xml ├── spp_program_id ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ └── ir_sequence_data.xml ├── i18n │ ├── lo.po │ └── spp_program_id.pot ├── models │ ├── __init__.py │ └── g2p_program.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── static │ └── description │ │ └── index.html └── views │ └── g2p_program_views.xml ├── spp_programs ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ └── user_roles.xml ├── i18n │ ├── ar.po │ ├── ckb.po │ ├── fr.po │ ├── lo.po │ └── spp_programs.pot ├── models │ ├── __init__.py │ ├── constants.py │ ├── cycle.py │ ├── eligibility.py │ ├── entitlement.py │ ├── entitlement_cash.py │ ├── g2p_entitlement.py │ ├── managers │ │ ├── __init__.py │ │ ├── cycle_manager.py │ │ ├── eligibility_manager.py │ │ ├── entitlement_manager.py │ │ └── entitlement_manager_default.py │ ├── programs.py │ ├── registrant.py │ └── stock │ │ ├── __init__.py │ │ └── stock.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── report │ ├── program_approval_receipt.xml │ └── report_format.xml ├── security │ ├── ir.model.access.csv │ └── security_access.xml ├── static │ ├── description │ │ ├── icon.png │ │ ├── icon_program.png │ │ └── index.html │ └── src │ │ ├── js │ │ ├── create_program.js │ │ ├── custom_open_list.js │ │ └── domain_field.js │ │ └── xml │ │ └── create_program_template.xml ├── tests │ ├── __init__.py │ ├── common.py │ ├── test_create_program_wiz.py │ ├── test_cycle.py │ ├── test_entitlement.py │ ├── test_entitlement_report_wiz.py │ ├── test_programs.py │ ├── test_registrant.py │ └── test_stock_rule.py ├── views │ ├── cycle_view.xml │ ├── entitlement_cash_view.xml │ ├── entitlement_view.xml │ ├── g2p_entitlement_view.xml │ ├── inkind_entitlement_report_view.xml │ ├── main_view.xml │ ├── managers │ │ ├── eligibility_manager_view.xml │ │ └── entitlement_manager_view.xml │ ├── payment_view.xml │ ├── programs_view.xml │ └── registrant_view.xml └── wizard │ ├── __init__.py │ ├── create_program_wizard.py │ ├── create_program_wizard.xml │ ├── inkind_entitlement_report_wiz.py │ ├── inkind_entitlement_report_wiz.xml │ ├── multi_entitlement_approval_wizard.py │ ├── multi_entitlement_approval_wizard.xml │ ├── multi_inkind_entitlement_approval_wizard.py │ ├── multi_inkind_entitlement_approval_wizard.xml │ ├── reject_entitlement_wizard.py │ ├── reject_entitlement_wizard.xml │ ├── reset_to_pending_wizard.py │ └── reset_to_pending_wizard.xml ├── spp_programs_compliance_criteria ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_programs_compliance_criteria.pot ├── models │ ├── __init__.py │ ├── cycle_membership.py │ ├── g2p_cycle.py │ ├── g2p_program.py │ ├── managers │ │ ├── __init__.py │ │ ├── g2p_cycle_manager_default.py │ │ ├── g2p_program_entitlement_manager_default.py │ │ └── spp_compliance_manager.py │ └── res_config_settings.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ └── ir.model.access.csv ├── static │ ├── description │ │ └── index.html │ └── src │ │ ├── js │ │ └── field_domain.js │ │ └── xml │ │ └── field_domain.xml ├── tests │ ├── __init__.py │ ├── common.py │ ├── test_g2p_cycle.py │ └── test_g2p_program_create_wizard.py ├── views │ ├── cycle_membership_views.xml │ ├── g2p_cycle_views.xml │ ├── g2p_program_views.xml │ └── res_config_settings_views.xml └── wizards │ ├── __init__.py │ ├── g2p_program_create_wizard.py │ └── g2p_program_create_wizard_views.xml ├── spp_programs_sp ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_programs_sp.pot ├── models │ ├── __init__.py │ ├── entitlement_cash.py │ ├── entitlement_inkind.py │ ├── entitlement_manager_cash.py │ ├── entitlement_manager_default.py │ ├── entitlement_manager_inkind.py │ ├── programs.py │ └── service_point.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── static │ └── description │ │ ├── icon.png │ │ └── index.html ├── tests │ ├── __init__.py │ ├── common.py │ ├── test_create_program_wizard.py │ ├── test_entitlement_manager_cash.py │ ├── test_entitlement_manager_default.py │ └── test_entitlement_manager_inkind.py ├── views │ ├── entitlements_view.xml │ ├── programs_view.xml │ └── service_point_views.xml └── wizard │ ├── __init__.py │ ├── create_program_wizard.py │ └── create_program_wizard.xml ├── spp_qr_scanner ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_qr_scanner.pot ├── pyproject.toml └── static │ ├── description │ └── icon.png │ ├── lib │ └── jsqr-1.4.0 │ │ └── jsQR.js │ └── src │ └── app │ └── components │ └── qr_scanner │ ├── qr_scanner.js │ ├── qr_scanner.scss │ └── qr_scanner.xml ├── spp_registrant_import ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_registrant_import.pot ├── models │ ├── __init__.py │ ├── res_partner.py │ ├── spp_area.py │ └── spp_service_point.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── static │ └── description │ │ └── index.html ├── tests │ ├── __init__.py │ ├── test_area.py │ ├── test_registrant.py │ └── test_service_point.py └── views │ ├── res_partner_views.xml │ ├── spp_area_views.xml │ └── spp_service_point_views.xml ├── spp_registrant_tag ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_registrant_tag.pot ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ └── ir.model.access.csv └── static │ └── description │ └── index.html ├── spp_registry_approval ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_registry_approval.pot ├── models │ ├── __init__.py │ └── res_partner.py ├── pyproject.toml ├── security │ └── security_access.xml └── static │ └── description │ └── icon.png ├── spp_registry_approval_group ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_registry_approval_group.pot ├── pyproject.toml ├── static │ └── description │ │ └── icon.png └── views │ └── groups_view.xml ├── spp_registry_approval_individual ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_registry_approval_individual.pot ├── pyproject.toml ├── static │ └── description │ │ └── icon.png └── views │ └── individuals_view.xml ├── spp_registry_base ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_registry_base.pot ├── models │ ├── __init__.py │ └── res_partner.py ├── pyproject.toml ├── security │ ├── ir.model.access.csv │ └── security_access.xml ├── static │ ├── description │ │ ├── icon.png │ │ └── icon_registry.png │ ├── src │ │ └── import_records │ │ │ └── import_records.js │ └── xls │ │ ├── group_registry.xlsx │ │ └── individual_registry.xlsx ├── tests │ ├── __init__.py │ └── test_res_partner.py └── views │ ├── groups_view.xml │ ├── individuals_view.xml │ └── main_view.xml ├── spp_registry_data_source ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_registry_data_source.pot ├── models │ ├── __init__.py │ ├── data_source.py │ └── data_source_key_value_pair.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ └── ir.model.access.csv ├── static │ ├── description │ │ ├── icon.png │ │ └── index.html │ └── src │ │ └── img │ │ └── icons │ │ └── contacts.png ├── tests │ ├── __init__.py │ └── test_data_source.py └── views │ └── data_source_view.xml ├── spp_registry_group_hierarchy ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_registry_group_hierarchy.pot ├── models │ ├── __init__.py │ ├── group_kind.py │ └── group_membership.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── static │ └── description │ │ └── index.html ├── tests │ ├── __init__.py │ └── test_group_membership.py └── views │ ├── group_kind_views.xml │ ├── group_membership_views.xml │ └── group_views.xml ├── spp_scan_id_document ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── ar.po │ ├── ckb.po │ ├── fr.po │ ├── lo.po │ └── spp_scan_id_document.pot ├── model │ ├── __init__.py │ └── registrant.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── static │ ├── description │ │ ├── icon.png │ │ └── index.html │ └── src │ │ ├── js │ │ └── registrant.js │ │ └── xml │ │ └── registrant_widget.xml ├── tests │ ├── __init__.py │ └── test_registrant.py └── views │ └── registrant.xml ├── spp_service_point_device ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── spp_service_point_device.pot ├── models │ ├── __init__.py │ ├── spp_service_point.py │ └── spp_service_point_device.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ └── index.html ├── tests │ ├── __init__.py │ ├── common.py │ ├── test_spp_service_point.py │ └── test_spp_service_point_device.py └── views │ ├── spp_service_point_device_views.xml │ └── spp_service_point_views.xml ├── spp_service_points ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── ar.po │ ├── ckb.po │ ├── fr.po │ ├── lo.po │ └── spp_service_points.pot ├── models │ ├── __init__.py │ ├── registrant.py │ └── res_user.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ ├── ir.model.access.csv │ └── security_group.xml ├── static │ └── description │ │ ├── icon.png │ │ └── index.html ├── tests │ ├── __init__.py │ └── test_service_point.py └── views │ ├── group_views.xml │ ├── main_view.xml │ └── service_points_view.xml ├── spp_starter ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ └── ir_config_parameter_data.xml ├── i18n │ ├── lo.po │ └── spp_starter.pot ├── models │ ├── __init__.py │ └── ir_ui_menu.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ └── index.html ├── tests │ ├── __init__.py │ ├── test_ir_ui_menu.py │ └── test_spp_starter.py └── wizards │ ├── __init__.py │ ├── spp_starter.py │ └── spp_starter_views.xml ├── spp_user_roles ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ ├── global_roles.xml │ ├── ir_cron.xml │ └── local_roles.xml ├── i18n │ ├── lo.po │ └── spp_user_roles.pot ├── models │ ├── __init__.py │ ├── area.py │ ├── res_partner.py │ ├── role.py │ └── user.py ├── pyproject.toml ├── readme │ └── DESCRIPTION.md ├── security │ ├── ir.model.access.csv │ └── security.xml ├── static │ ├── description │ │ ├── icon.png │ │ └── index.html │ └── src │ │ └── img │ │ └── icons │ │ └── contacts.png ├── tests │ ├── __init__.py │ ├── test_res_partner.py │ └── test_user.py └── views │ ├── role.xml │ └── user.xml ├── test-requirements.txt ├── theme_openspp_muk ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── lo.po │ └── theme_openspp_muk.pot ├── models │ ├── __init__.py │ └── res_config_settings.py ├── pyproject.toml ├── static │ ├── description │ │ ├── icon.png │ │ ├── icon_registry.png │ │ └── index.html │ └── src │ │ └── scss │ │ ├── colors.scss │ │ ├── colors_dark.scss │ │ ├── colors_light.scss │ │ └── navbar.scss └── views │ └── main_view.xml └── vulnerability_disclosure_policy.md /.flake8: -------------------------------------------------------------------------------- 1 | [flake8] 2 | max-line-length = 110 3 | max-complexity = 16 4 | # B = bugbear 5 | # B9 = bugbear opinionated (incl line length) 6 | select = C,E,F,W,B,B9 7 | # E203: whitespace before ':' (black behaviour) 8 | # E501: flake8 line length (covered by bugbear B950) 9 | # W503: line break before binary operator (black behaviour) 10 | ignore = E203,E501,W503 11 | per-file-ignores= 12 | __init__.py:F401 13 | -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | ## **Why is this change needed?** 2 | 3 | ## **How was the change implemented?** 4 | 5 | ## **New unit tests** 6 | 7 | ## **Unit tests executed by the author** 8 | 9 | ## **How to test manually** 10 | 11 | ## **Related links** 12 | 13 | -------------------------------------------------------------------------------- /.github/workflows/auto-assign-pr.yml: -------------------------------------------------------------------------------- 1 | name: Auto Assign PR 2 | on: 3 | pull_request: 4 | types: [opened, ready_for_review] 5 | jobs: 6 | add-reviews: 7 | runs-on: ubuntu-latest 8 | steps: 9 | - uses: kentaro-m/auto-assign-action@v2.0.0 10 | -------------------------------------------------------------------------------- /.github/workflows/auto-assign.yml: -------------------------------------------------------------------------------- 1 | name: Auto Assign 2 | on: 3 | issues: 4 | types: [opened] 5 | pull_request: 6 | types: [opened] 7 | jobs: 8 | run: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: bubkoo/auto-assign@v1 12 | with: 13 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 14 | CONFIG_FILE: .github/auto-assign.yml 15 | -------------------------------------------------------------------------------- /.isort.cfg: -------------------------------------------------------------------------------- 1 | [settings] 2 | ; see https://github.com/psf/black 3 | multi_line_output=3 4 | include_trailing_comma=True 5 | force_grid_wrap=0 6 | combine_as_imports=True 7 | use_parentheses=True 8 | line_length=110 9 | known_odoo=odoo 10 | known_odoo_addons=odoo.addons 11 | sections=FUTURE,STDLIB,THIRDPARTY,ODOO,ODOO_ADDONS,FIRSTPARTY,LOCALFOLDER 12 | default_section=THIRDPARTY 13 | ensure_newline_before_comments = True 14 | -------------------------------------------------------------------------------- /.prettierrc.yml: -------------------------------------------------------------------------------- 1 | # Defaults for all prettier-supported languages. 2 | # Prettier will complete this with settings from .editorconfig file. 3 | bracketSpacing: false 4 | printWidth: 110 5 | proseWrap: always 6 | semi: true 7 | trailingComma: "es5" 8 | xmlWhitespaceSensitivity: "strict" 9 | -------------------------------------------------------------------------------- /.snyk: -------------------------------------------------------------------------------- 1 | # Snyk (https://snyk.io) policy file 2 | 3 | exclude: 4 | global: 5 | - test-requirements.txt 6 | - tests/** 7 | -------------------------------------------------------------------------------- /farmer-requirements.txt: -------------------------------------------------------------------------------- 1 | --extra-index-url=https://pypi.openspp.org/simple/ 2 | odoo-addon-spp-farmer-registry-base==17.0.1.0.0.34 3 | -------------------------------------------------------------------------------- /g2p_connect_demo/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenG2P. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | -------------------------------------------------------------------------------- /g2p_connect_demo/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenG2P. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import registrant 4 | from . import generate_group 5 | 6 | from . import individual 7 | from . import group 8 | -------------------------------------------------------------------------------- /g2p_connect_demo/models/registrant.py: -------------------------------------------------------------------------------- 1 | # Part of OpenG2P. See LICENSE file for full copyright and licensing details. 2 | -------------------------------------------------------------------------------- /g2p_connect_demo/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /g2p_connect_demo/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | g2p_generate_data_admin,Generate Data Admin Access,g2p_connect_demo.model_g2p_generate_data,g2p_registry_base.group_g2p_admin,1,1,1,1 3 | -------------------------------------------------------------------------------- /g2p_connect_demo/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/g2p_connect_demo/static/description/icon.png -------------------------------------------------------------------------------- /g2p_connect_demo/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenG2P Registry. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import test_compute_indicator_fields 4 | -------------------------------------------------------------------------------- /license_header.txt: -------------------------------------------------------------------------------- 1 | Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | # generated from manifests external_dependencies 2 | Pillow>=9.0.1 3 | PyLD 4 | bravado_core 5 | extendable_pydantic==1.3.0 6 | faker 7 | fastapi==0.112.2 8 | geojson 9 | jsonschema 10 | jwcrypto>=1.5.6 11 | numpy>=1.22.2 12 | pyjwt>=2.4.0 13 | pyproj 14 | python-magic 15 | pytz 16 | qrcode 17 | requests>=2.25.1 18 | shapely 19 | simplejson 20 | swagger_spec_validator 21 | urllib3>=1.26.5 22 | xlrd 23 | zipp>=3.19.1 24 | -------------------------------------------------------------------------------- /sp-mis-requirements.txt: -------------------------------------------------------------------------------- 1 | --extra-index-url=https://pypi.openspp.org/simple/ 2 | odoo-addon-spp-base==17.0.1.0.0.20 3 | odoo-addon-spp-service-points==17.0.1.0.0.10 4 | -------------------------------------------------------------------------------- /spp_api/__init__.py: -------------------------------------------------------------------------------- 1 | # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html). 2 | 3 | 4 | def post_load(): 5 | # make import in post_load to avoid applying monkey patches when this 6 | # module is not installed 7 | from . import models 8 | from . import controllers 9 | from . import wizards 10 | -------------------------------------------------------------------------------- /spp_api/config.py: -------------------------------------------------------------------------------- 1 | BASE_API = "api" 2 | -------------------------------------------------------------------------------- /spp_api/controllers/__init__.py: -------------------------------------------------------------------------------- 1 | # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html). 2 | 3 | from . import apijsonrequest 4 | from . import main 5 | from . import api 6 | from . import pinguin 7 | -------------------------------------------------------------------------------- /spp_api/demo/openapi_security_demo.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /spp_api/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_api/images/icon.png -------------------------------------------------------------------------------- /spp_api/images/openapi-swagger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_api/images/openapi-swagger.png -------------------------------------------------------------------------------- /spp_api/models/__init__.py: -------------------------------------------------------------------------------- 1 | # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html). 2 | from . import spp_api_log 3 | from . import spp_api_namespace 4 | from . import ir_model_fields 5 | from . import ir_model 6 | from . import spp_api_path 7 | from . import spp_api_field_alias 8 | from . import spp_api_fields 9 | from . import spp_api_function_parameter 10 | from . import res_users 11 | from . import ir_exports 12 | -------------------------------------------------------------------------------- /spp_api/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_api/security/res_users_token.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /spp_api/static/description/aws.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_api/static/description/aws.png -------------------------------------------------------------------------------- /spp_api/static/description/dataiku.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_api/static/description/dataiku.png -------------------------------------------------------------------------------- /spp_api/static/description/dots.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_api/static/description/dots.jpg -------------------------------------------------------------------------------- /spp_api/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_api/static/description/icon.png -------------------------------------------------------------------------------- /spp_api/static/description/openapi-configuration-model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_api/static/description/openapi-configuration-model.png -------------------------------------------------------------------------------- /spp_api/static/description/openapi-configuration-namespace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_api/static/description/openapi-configuration-namespace.png -------------------------------------------------------------------------------- /spp_api/static/description/openapi-logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_api/static/description/openapi-logs.png -------------------------------------------------------------------------------- /spp_api/static/description/powerbi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_api/static/description/powerbi.png -------------------------------------------------------------------------------- /spp_api/static/description/swagger-editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_api/static/description/swagger-editor.png -------------------------------------------------------------------------------- /spp_api/static/description/syndesis.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_api/static/description/syndesis.jpg -------------------------------------------------------------------------------- /spp_api/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_spp_api_path 2 | from . import test_namespace 3 | from . import test_spp_api_log 4 | from . import test_spp_api_field_alias 5 | from . import test_spp_api_fields 6 | from . import test_spp_api_function_parameter 7 | from . import test_res_users 8 | from . import test_ir_model_fields 9 | from . import test_apijsonrequest 10 | from . import test_main_controller 11 | -------------------------------------------------------------------------------- /spp_api/tools.py: -------------------------------------------------------------------------------- 1 | from datetime import date, datetime 2 | 3 | 4 | def datetime_format(inp): 5 | if not isinstance(inp, datetime) or not isinstance(inp, date): 6 | return inp 7 | return inp.strftime("%Y-%m-%dT%H:%M:%S.%f")[:-3] + "Z" 8 | -------------------------------------------------------------------------------- /spp_api/wizards/__init__.py: -------------------------------------------------------------------------------- 1 | from . import res_users_bearer_token 2 | -------------------------------------------------------------------------------- /spp_api_records/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_api_records/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import spp_service_point 2 | from . import uom_uom 3 | from . import g2p_entitlements 4 | from . import g2p_program 5 | from . import product 6 | -------------------------------------------------------------------------------- /spp_api_records/models/g2p_program.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class G2PPrograms(models.Model): 5 | _inherit = "g2p.program" 6 | 7 | company_id = fields.Many2one( 8 | comodel_name="res.company", 9 | string="Company", 10 | default=lambda self: self.env.company, 11 | ) 12 | -------------------------------------------------------------------------------- /spp_api_records/models/uom_uom.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class UomUom(models.Model): 5 | _inherit = "uom.uom" 6 | 7 | symbol = fields.Char(size=3) 8 | -------------------------------------------------------------------------------- /spp_api_records/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_api_records/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_g2p_entitlement 2 | from . import test_product_template 3 | from . import test_spp_service_point 4 | -------------------------------------------------------------------------------- /spp_area/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | 4 | from . import models 5 | 6 | # from . import controllers 7 | -------------------------------------------------------------------------------- /spp_area/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | 4 | from . import registrant 5 | -------------------------------------------------------------------------------- /spp_area/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_area/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_area/static/description/icon.png -------------------------------------------------------------------------------- /spp_area/static/description/icon_area.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_area/static/description/icon_area.png -------------------------------------------------------------------------------- /spp_area/static/src/img/icons/contacts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_area/static/src/img/icons/contacts.png -------------------------------------------------------------------------------- /spp_area/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenG2P Registry. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import common 4 | from . import test_area 5 | from . import test_area_import 6 | from . import test_area_import_raw 7 | -------------------------------------------------------------------------------- /spp_area/tests/irq_adminboundaries_tabulardata.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_area/tests/irq_adminboundaries_tabulardata.xlsx -------------------------------------------------------------------------------- /spp_area/tests/pse_adminboundaries_tabulardata.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_area/tests/pse_adminboundaries_tabulardata.xlsx -------------------------------------------------------------------------------- /spp_area/views/area.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spp_area/views/area_import.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /spp_area/views/area_kind.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /spp_area_base/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | 4 | from . import models 5 | -------------------------------------------------------------------------------- /spp_area_base/data/area_kind_data.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Admin Area 4 | 5 | 6 | -------------------------------------------------------------------------------- /spp_area_base/data/queue_job_channel.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | area_import 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /spp_area_base/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | 4 | from . import area 5 | from . import area_import 6 | -------------------------------------------------------------------------------- /spp_area_base/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_area_base/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_area_base/static/description/icon.png -------------------------------------------------------------------------------- /spp_area_base/static/description/icon_area.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_area_base/static/description/icon_area.png -------------------------------------------------------------------------------- /spp_area_base/static/src/img/icons/contacts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_area_base/static/src/img/icons/contacts.png -------------------------------------------------------------------------------- /spp_area_base/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenG2P Registry. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import common 4 | from . import test_area 5 | from . import test_area_import 6 | from . import test_area_import_raw 7 | -------------------------------------------------------------------------------- /spp_area_base/tests/irq_adminboundaries_tabulardata.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_area_base/tests/irq_adminboundaries_tabulardata.xlsx -------------------------------------------------------------------------------- /spp_area_base/tests/pse_adminboundaries_tabulardata.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_area_base/tests/pse_adminboundaries_tabulardata.xlsx -------------------------------------------------------------------------------- /spp_area_gis/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_area_gis/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import area 2 | from . import area_import 3 | -------------------------------------------------------------------------------- /spp_area_gis/models/area.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class OpenSPPArea(models.Model): 5 | _inherit = "spp.area" 6 | 7 | coordinates = fields.GeoPointField() 8 | geo_polygon = fields.GeoPolygonField() 9 | -------------------------------------------------------------------------------- /spp_area_gis/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_area_gis/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_area_gis/static/description/icon.png -------------------------------------------------------------------------------- /spp_area_gis/static/src/img/icons/contacts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_area_gis/static/src/img/icons/contacts.png -------------------------------------------------------------------------------- /spp_area_gis/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_area_import 2 | from . import test_area_import_raw 3 | -------------------------------------------------------------------------------- /spp_area_gis/tests/irq_adminboundaries_tabulardata.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_area_gis/tests/irq_adminboundaries_tabulardata.xlsx -------------------------------------------------------------------------------- /spp_area_gis/tests/pse_adminboundaries_tabulardata.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_area_gis/tests/pse_adminboundaries_tabulardata.xlsx -------------------------------------------------------------------------------- /spp_attendance/__init__.py: -------------------------------------------------------------------------------- 1 | from . import controllers 2 | from . import models 3 | from . import wizard 4 | -------------------------------------------------------------------------------- /spp_attendance/controllers/__init__.py: -------------------------------------------------------------------------------- 1 | from . import controllers 2 | -------------------------------------------------------------------------------- /spp_attendance/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import attendance_subscriber 2 | from . import attendance_list 3 | from . import attendance_api_client_credentials 4 | from . import attendance_type 5 | from . import registry_config 6 | from . import attendance_location 7 | from . import res_partner 8 | -------------------------------------------------------------------------------- /spp_attendance/models/attendance_location.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class SPPAttendanceLocation(models.Model): 5 | _name = "spp.attendance.location" 6 | _description = "Attendance Location" 7 | _order = "name ASC" 8 | 9 | name = fields.Char(required=True) 10 | description = fields.Char() 11 | -------------------------------------------------------------------------------- /spp_attendance/models/attendance_type.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class SPPAttendanceType(models.Model): 5 | _name = "spp.attendance.type" 6 | _description = "Attendance Type" 7 | _order = "name ASC" 8 | 9 | name = fields.Char(required=True) 10 | description = fields.Char() 11 | 12 | _sql_constraints = [("name_uniq", "unique(name)", "Attendance Type must be unique!")] 13 | -------------------------------------------------------------------------------- /spp_attendance/models/res_partner.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class ResPartnerInherit(models.Model): 5 | _inherit = "res.partner" 6 | 7 | family_name = fields.Char(translate=False) 8 | given_name = fields.Char(translate=False) 9 | addl_name = fields.Char(translate=False, string="Additional Name") 10 | identifier = fields.Char() 11 | gender_char = fields.Char(translate=False, default="Male", string="Gender") 12 | -------------------------------------------------------------------------------- /spp_attendance/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_attendance/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_attendance/static/description/icon.png -------------------------------------------------------------------------------- /spp_attendance/static/src/img/icons/attendance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_attendance/static/src/img/icons/attendance.png -------------------------------------------------------------------------------- /spp_attendance/views/main_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /spp_attendance/wizard/__init__.py: -------------------------------------------------------------------------------- 1 | from . import import_attendance 2 | -------------------------------------------------------------------------------- /spp_audit_config/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | from . import models 3 | -------------------------------------------------------------------------------- /spp_audit_config/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import spp_audit_rule 2 | -------------------------------------------------------------------------------- /spp_audit_config/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_audit_config/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_audit_config/static/description/icon.png -------------------------------------------------------------------------------- /spp_audit_log/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_audit_log/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import spp_audit_rule 2 | from . import spp_audit_log 3 | from . import group 4 | -------------------------------------------------------------------------------- /spp_audit_log/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_audit_log/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_audit_log/static/description/icon.png -------------------------------------------------------------------------------- /spp_audit_log/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_spp_audit_rule 2 | -------------------------------------------------------------------------------- /spp_audit_log/tools/__init__.py: -------------------------------------------------------------------------------- 1 | from .decorator import audit_decorator 2 | -------------------------------------------------------------------------------- /spp_audit_post/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_audit_post/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import spp_audit_log 2 | from . import spp_audit_rule 3 | -------------------------------------------------------------------------------- /spp_audit_post/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_audit_post/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | -------------------------------------------------------------------------------- /spp_audit_post/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_audit_post/static/description/icon.png -------------------------------------------------------------------------------- /spp_auto_update_entitlements/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | -------------------------------------------------------------------------------- /spp_auto_update_entitlements/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import entitlement 4 | from . import cycle 5 | -------------------------------------------------------------------------------- /spp_auto_update_entitlements/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_auto_update_entitlements/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_auto_update_entitlements/static/description/icon.png -------------------------------------------------------------------------------- /spp_auto_update_entitlements/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import common 2 | from . import test_cycle 3 | from . import test_entitlement 4 | -------------------------------------------------------------------------------- /spp_base/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | -------------------------------------------------------------------------------- /spp_base/data/top_up_card.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Top-up Card 4 | 5 | 6 | -------------------------------------------------------------------------------- /spp_base/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import reg_id 4 | from . import spp_unique_id 5 | from . import registrant 6 | from . import group_membership 7 | -------------------------------------------------------------------------------- /spp_base/models/group_membership.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class G2PGroupMembership(models.Model): 5 | _inherit = "g2p.group.membership" 6 | 7 | individual_gender = fields.Many2one("gender.type", related="individual.gender", readonly=True) 8 | -------------------------------------------------------------------------------- /spp_base/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_base/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | spp_ir_actions_act_window_user,IR Actions Act Window User Access,base.model_ir_actions_act_window,base.group_user,1,0,0,0 3 | spp_ir_actions_act_window_view_user,IR Actions Act Window View User Access,base.model_ir_actions_act_window_view,base.group_user,1,0,0,0 4 | -------------------------------------------------------------------------------- /spp_base/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_base/static/description/icon.png -------------------------------------------------------------------------------- /spp_base/static/description/icon_registry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_base/static/description/icon_registry.png -------------------------------------------------------------------------------- /spp_base/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP Registry. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import test_top_up_id 4 | -------------------------------------------------------------------------------- /spp_base/views/main_view.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 13 | 14 | -------------------------------------------------------------------------------- /spp_base_api/__init__.py: -------------------------------------------------------------------------------- 1 | # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html) 2 | 3 | from . import models 4 | from . import lib 5 | -------------------------------------------------------------------------------- /spp_base_api/doc/changelog.rst: -------------------------------------------------------------------------------- 1 | `1.0.1` 2 | ------- 3 | - **Improvement:** Compatibility with python 3.9 4 | 5 | `1.0.0` 6 | ------- 7 | 8 | - **Init version** 9 | -------------------------------------------------------------------------------- /spp_base_api/lib/__init__.py: -------------------------------------------------------------------------------- 1 | from . import pinguin 2 | -------------------------------------------------------------------------------- /spp_base_api/models/__init__.py: -------------------------------------------------------------------------------- 1 | # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html) 2 | 3 | from . import base 4 | -------------------------------------------------------------------------------- /spp_base_api/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_base_api/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_base_api/static/description/icon.png -------------------------------------------------------------------------------- /spp_base_api/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html) 2 | 3 | from . import test_base 4 | -------------------------------------------------------------------------------- /spp_base_demo/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | # from . import models 4 | -------------------------------------------------------------------------------- /spp_base_demo/data/gender_data.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Male 4 | Male 5 | 6 | 7 | Female 8 | Female 9 | 10 | 11 | -------------------------------------------------------------------------------- /spp_base_demo/i18n/lo.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # 4 | msgid "" 5 | msgstr "" 6 | "Project-Id-Version: Odoo Server 17.0\n" 7 | "Report-Msgid-Bugs-To: \n" 8 | "Last-Translator: Automatically generated\n" 9 | "Language-Team: none\n" 10 | "MIME-Version: 1.0\n" 11 | "Content-Type: text/plain; charset=UTF-8\n" 12 | "Content-Transfer-Encoding: 8bit\n" 13 | "Plural-Forms: \n" 14 | "Language: lo\n" 15 | -------------------------------------------------------------------------------- /spp_base_demo/i18n/spp_base_demo.pot: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # 4 | msgid "" 5 | msgstr "" 6 | "Project-Id-Version: Odoo Server 17.0\n" 7 | "Report-Msgid-Bugs-To: \n" 8 | "Last-Translator: \n" 9 | "Language-Team: \n" 10 | "MIME-Version: 1.0\n" 11 | "Content-Type: text/plain; charset=UTF-8\n" 12 | "Content-Transfer-Encoding: \n" 13 | "Plural-Forms: \n" 14 | -------------------------------------------------------------------------------- /spp_base_demo/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_base_demo/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_base_demo/static/description/icon.png -------------------------------------------------------------------------------- /spp_base_demo/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_locale_providers 2 | -------------------------------------------------------------------------------- /spp_base_gis/controllers/__init__.py: -------------------------------------------------------------------------------- 1 | from . import main 2 | -------------------------------------------------------------------------------- /spp_base_gis/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | from . import base 3 | from . import raster_layer 4 | from . import raster_layer_type 5 | from . import data_layer 6 | from . import ir_view 7 | from . import ir_model 8 | -------------------------------------------------------------------------------- /spp_base_gis/models/raster_layer_type.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class OpenSPPGisRasterLayerType(models.Model): 5 | _name = "spp.gis.raster.layer.type" 6 | _description = "Raster Layer Type" 7 | 8 | name = fields.Char(translate=True, required=True) 9 | code = fields.Char(required=True) 10 | service = fields.Char(required=True) 11 | -------------------------------------------------------------------------------- /spp_base_gis/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_base_gis/static/img/map-marker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_base_gis/static/img/map-marker.png -------------------------------------------------------------------------------- /spp_base_gis/static/src/images/editing_tool_bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_base_gis/static/src/images/editing_tool_bar.png -------------------------------------------------------------------------------- /spp_base_gis/static/src/images/laos_farm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_base_gis/static/src/images/laos_farm.png -------------------------------------------------------------------------------- /spp_base_gis/static/src/js/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "globals": { 3 | "$": false, 4 | "_": false, 5 | "ol": false, 6 | "chroma": false, 7 | "geostats": false 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /spp_base_gis/static/src/js/data_layers_store.esm.js: -------------------------------------------------------------------------------- 1 | /** @odoo-module */ 2 | import {LayerStore} from "./base_layers_store.esm"; 3 | import {reactive} from "@odoo/owl"; 4 | 5 | class DataLayersStore extends LayerStore { 6 | getIsVisible(layer) { 7 | return layer.active_on_startup; 8 | } 9 | } 10 | 11 | export const dataLayersStore = reactive(new DataLayersStore()); 12 | -------------------------------------------------------------------------------- /spp_base_gis/static/src/js/views/gis/gis_compiler.esm.js: -------------------------------------------------------------------------------- 1 | /** @odoo-module */ 2 | 3 | import {ViewCompiler} from "@web/views/view_compiler"; 4 | 5 | export class GisCompiler extends ViewCompiler {} 6 | -------------------------------------------------------------------------------- /spp_base_gis/static/src/js/widgets/gis_edit_map/field_gis_edit_map.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | 7 | -------------------------------------------------------------------------------- /spp_base_gis_demo/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_base_gis_demo/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import partner 2 | from . import test_gis_model 3 | -------------------------------------------------------------------------------- /spp_base_gis_demo/models/partner.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class ResPartner(models.Model): 5 | """Add geo_point to partner using a function filed""" 6 | 7 | _inherit = "res.partner" 8 | 9 | geo_point = fields.GeoPointField() 10 | geo_line = fields.GeoLineStringField() 11 | geo_polygon_field = fields.GeoPolygonField() 12 | -------------------------------------------------------------------------------- /spp_base_gis_demo/models/test_gis_model.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class GisTestModel(models.Model): 5 | _name = "spp.base.gis.test.model" 6 | _description = "GIS Test Model" 7 | 8 | name = fields.Char() 9 | geo_polygon_field = fields.GeoPolygonField() 10 | geo_line = fields.GeoLineStringField() 11 | geo_point = fields.GeoPointField() 12 | -------------------------------------------------------------------------------- /spp_base_gis_demo/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_base_gis_demo/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_base_gis 2 | from . import test_operator 3 | from . import test_fields 4 | from . import test_gis_domain_operator 5 | from . import common 6 | -------------------------------------------------------------------------------- /spp_base_gis_rest/__init__.py: -------------------------------------------------------------------------------- 1 | from . import controllers 2 | from . import models 3 | -------------------------------------------------------------------------------- /spp_base_gis_rest/controllers/__init__.py: -------------------------------------------------------------------------------- 1 | from . import controllers 2 | -------------------------------------------------------------------------------- /spp_base_gis_rest/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import api_client_credentials 2 | -------------------------------------------------------------------------------- /spp_base_gis_rest/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_base_gis_rest/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | 3 | access_spp_gis_api_client_credential,SPP GIS API Client Credential Access,model_spp_gis_api_client_credential,spp_base_gis.group_gis_admin,1,1,1,1 4 | -------------------------------------------------------------------------------- /spp_base_gis_rest/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_api_client_credentials 2 | -------------------------------------------------------------------------------- /spp_base_setting/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_base_setting/models/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_base_setting/models/__init__.py -------------------------------------------------------------------------------- /spp_base_setting/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_base_setting/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_base_setting/tests/__init__.py -------------------------------------------------------------------------------- /spp_basic_cash_entitlement_spent/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | from . import models 3 | -------------------------------------------------------------------------------- /spp_basic_cash_entitlement_spent/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import entitlement 4 | -------------------------------------------------------------------------------- /spp_basic_cash_entitlement_spent/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_basic_cash_entitlement_spent/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_g2p_entitlement 2 | -------------------------------------------------------------------------------- /spp_change_request/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | from . import wizard 5 | -------------------------------------------------------------------------------- /spp_change_request/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import group_membership 4 | from . import change_request 5 | from . import change_request_stage 6 | from . import dms_file 7 | from . import dms_directory 8 | from . import registry 9 | from . import mixins 10 | from . import change_request_targets 11 | -------------------------------------------------------------------------------- /spp_change_request/models/change_request_stage.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | import logging 3 | 4 | from odoo import fields, models 5 | 6 | _logger = logging.getLogger(__name__) 7 | 8 | 9 | class ChangeRequestValidationStages(models.Model): 10 | _name = "spp.change.request.validation.stage" 11 | _description = "Change Request Validation Stage" 12 | _order = "id" 13 | 14 | name = fields.Char("Stage") 15 | -------------------------------------------------------------------------------- /spp_change_request/models/dms_directory.py: -------------------------------------------------------------------------------- 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") 8 | -------------------------------------------------------------------------------- /spp_change_request/models/mixins/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import source_mixin 4 | from . import validation_sequence_mixin 5 | -------------------------------------------------------------------------------- /spp_change_request/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_change_request/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_change_request/static/description/icon.png -------------------------------------------------------------------------------- /spp_change_request/static/src/xml/dms_preview_widget.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /spp_change_request/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_change_requests 2 | -------------------------------------------------------------------------------- /spp_change_request/wizard/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import confirm_user_assignment 4 | from . import reject_change_request 5 | from . import cancel_change_request 6 | -------------------------------------------------------------------------------- /spp_change_request_add_children_demo/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_change_request_add_children_demo/data/change_request_target.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | spp.change.request.add.children 9 | group 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spp_change_request_add_children_demo/data/dms.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Add Children Request Form 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /spp_change_request_add_children_demo/data/id_type.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Add Children: Unified ID 6 | individual 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /spp_change_request_add_children_demo/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import group_membership 2 | from . import change_request 3 | from . import change_request_add_children 4 | from . import change_request_add_children_validation_sequence 5 | from . import dms 6 | -------------------------------------------------------------------------------- /spp_change_request_add_children_demo/models/group_membership.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class SPPGroupMembership(models.Model): 5 | _inherit = "spp.change.request.group.members" 6 | 7 | group_add_children_id = fields.Many2one("spp.change.request.add.children") 8 | -------------------------------------------------------------------------------- /spp_change_request_add_children_demo/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_change_request_add_children_demo/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_change_request_add_children_demo/static/description/icon.png -------------------------------------------------------------------------------- /spp_change_request_add_children_demo/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_create_cr 2 | -------------------------------------------------------------------------------- /spp_change_request_add_children_demo/tests/sample_document.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_change_request_add_children_demo/tests/sample_document.jpeg -------------------------------------------------------------------------------- /spp_change_request_add_farmer/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_change_request_add_farmer/data/change_request_target.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | spp.change.request.add.farmer 9 | group 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spp_change_request_add_farmer/data/dms.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Add Farmer Request Form 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /spp_change_request_add_farmer/data/id_type.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Unified ID 6 | individual 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /spp_change_request_add_farmer/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import group_membership 2 | from . import change_request_add_farmer 3 | from . import change_request_add_farmer_validation_sequence 4 | from . import dms 5 | -------------------------------------------------------------------------------- /spp_change_request_add_farmer/models/dms.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class SPPDMSDirectoryCustom(models.Model): 5 | _inherit = "spp.dms.directory" 6 | 7 | change_request_add_farmer_id = fields.Many2one("spp.change.request.add.farmer", "Change request") 8 | 9 | 10 | class SPPDMSFileCustom(models.Model): 11 | _inherit = "spp.dms.file" 12 | 13 | change_request_add_farmer_id = fields.Many2one("spp.change.request.add.farmer", "Change request") 14 | -------------------------------------------------------------------------------- /spp_change_request_add_farmer/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_change_request_add_farmer/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_change_request_add_farmer/static/description/icon.png -------------------------------------------------------------------------------- /spp_change_request_add_farmer/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_change_request_add_farmer 2 | -------------------------------------------------------------------------------- /spp_change_request_add_group_to_group/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_change_request_add_group_to_group/data/change_request_target.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | spp.change.request.add.group.to.group 9 | group 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spp_change_request_add_group_to_group/data/dms.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Add Group to a Group Request Form 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /spp_change_request_add_group_to_group/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import group_membership 2 | from . import change_request_add_group_to_group 3 | from . import change_request_add_group_to_group_validation_sequence 4 | from . import dms 5 | -------------------------------------------------------------------------------- /spp_change_request_add_group_to_group/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_change_request_add_group_to_group/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_change_request_add_group_to_group/static/description/icon.png -------------------------------------------------------------------------------- /spp_change_request_add_group_to_group/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_change_request_add_group_to_group 2 | -------------------------------------------------------------------------------- /spp_change_request_base/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | from . import wizard 5 | -------------------------------------------------------------------------------- /spp_change_request_base/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import change_request 4 | from . import change_request_stage 5 | from . import dms_file 6 | from . import dms_directory 7 | from . import registry 8 | from . import mixins 9 | -------------------------------------------------------------------------------- /spp_change_request_base/models/change_request_stage.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | from odoo import fields, models 3 | 4 | 5 | class ChangeRequestValidationStages(models.Model): 6 | _name = "spp.change.request.validation.stage" 7 | _description = "Change Request Validation Stage" 8 | _order = "id" 9 | 10 | name = fields.Char("Stage") 11 | -------------------------------------------------------------------------------- /spp_change_request_base/models/dms_directory.py: -------------------------------------------------------------------------------- 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") 8 | -------------------------------------------------------------------------------- /spp_change_request_base/models/mixins/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import source_mixin 4 | from . import validation_sequence_mixin 5 | -------------------------------------------------------------------------------- /spp_change_request_base/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_change_request_base/security/change_request_security.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Change Request Module Access 4 | User access level for the OpenSPP change request module 5 | 4 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /spp_change_request_base/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_change_request_base/static/description/icon.png -------------------------------------------------------------------------------- /spp_change_request_base/static/src/xml/dms_preview_widget.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /spp_change_request_base/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_change_requests 2 | -------------------------------------------------------------------------------- /spp_change_request_base/views/main_view.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /spp_change_request_base/wizard/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import confirm_user_assignment 4 | from . import reject_change_request 5 | from . import cancel_change_request 6 | -------------------------------------------------------------------------------- /spp_change_request_change_info/README.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_change_request_change_info/README.rst -------------------------------------------------------------------------------- /spp_change_request_change_info/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_change_request_change_info/data/change_request_target.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | spp.change.request.change.info 9 | individual 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spp_change_request_change_info/data/dms.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Change Info Request Form 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /spp_change_request_change_info/data/id_type.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | National ID 6 | individual 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /spp_change_request_change_info/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import change_request 2 | from . import change_request_change_info 3 | from . import change_request_change_info_validation_sequence 4 | from . import dms 5 | -------------------------------------------------------------------------------- /spp_change_request_change_info/models/dms.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class SPPDMSDirectoryCustom(models.Model): 5 | _inherit = "spp.dms.directory" 6 | 7 | change_request_change_info_id = fields.Many2one("spp.change.request.change.info", "Change request") 8 | 9 | 10 | class SPPDMSFileCustom(models.Model): 11 | _inherit = "spp.dms.file" 12 | 13 | change_request_change_info_id = fields.Many2one("spp.change.request.change.info", "Change request") 14 | -------------------------------------------------------------------------------- /spp_change_request_change_info/models/group_membership.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class SPPGroupMembership(models.Model): 5 | _inherit = "spp.change.request.group.members" 6 | 7 | group_add_farmer_id = fields.Many2one("spp.change.request.add.farmer") 8 | -------------------------------------------------------------------------------- /spp_change_request_change_info/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_change_request_change_info/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_change_request_change_info/static/description/icon.png -------------------------------------------------------------------------------- /spp_change_request_change_info/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_create_cr 2 | -------------------------------------------------------------------------------- /spp_change_request_change_info/tests/sample_document.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_change_request_change_info/tests/sample_document.jpeg -------------------------------------------------------------------------------- /spp_change_request_create_farm/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_change_request_create_farm/data/change_request_target.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | spp.change.request.create.farm 9 | group 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spp_change_request_create_farm/data/dms.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Create Farm Request Form 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /spp_change_request_create_farm/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import change_request_create_farm 2 | from . import change_request_create_farm_validation_sequence 3 | from . import dms 4 | -------------------------------------------------------------------------------- /spp_change_request_create_farm/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_change_request_create_farm/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_change_request_create_farm/static/description/icon.png -------------------------------------------------------------------------------- /spp_change_request_create_farm/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_change_request_create_farm 2 | -------------------------------------------------------------------------------- /spp_change_request_create_group/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_change_request_create_group/data/change_request_target.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | spp.change.request.create.group 9 | group 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spp_change_request_create_group/data/dms.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Create Group Request Form 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /spp_change_request_create_group/data/id_type.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Unified ID 6 | individual 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /spp_change_request_create_group/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import change_request_create_group 2 | from . import change_request_create_group_validation_sequence 3 | from . import dms 4 | -------------------------------------------------------------------------------- /spp_change_request_create_group/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_change_request_create_group/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_change_request_create_group/static/description/icon.png -------------------------------------------------------------------------------- /spp_change_request_create_group/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_change_request_create_group 2 | -------------------------------------------------------------------------------- /spp_change_request_edit_farm/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_change_request_edit_farm/data/change_request_target.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | spp.change.request.edit.farm 9 | group 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spp_change_request_edit_farm/data/dms.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Edit Farm Request Form 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /spp_change_request_edit_farm/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import change_request_edit_farm 2 | from . import change_request_edit_farm_validation_sequence 3 | from . import dms 4 | -------------------------------------------------------------------------------- /spp_change_request_edit_farm/models/dms.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class SPPDMSDirectoryCustom(models.Model): 5 | _inherit = "spp.dms.directory" 6 | 7 | change_request_edit_farm_id = fields.Many2one("spp.change.request.edit.farm", "Change request") 8 | 9 | 10 | class SPPDMSFileCustom(models.Model): 11 | _inherit = "spp.dms.file" 12 | 13 | change_request_edit_farm_id = fields.Many2one("spp.change.request.edit.farm", "Change request") 14 | -------------------------------------------------------------------------------- /spp_change_request_edit_farm/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_change_request_edit_farm/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_change_request_edit_farm/static/description/icon.png -------------------------------------------------------------------------------- /spp_change_request_edit_farm/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_change_request_edit_farm 2 | -------------------------------------------------------------------------------- /spp_change_request_edit_farmer/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_change_request_edit_farmer/data/change_request_target.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | spp.change.request.edit.farmer 9 | group 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spp_change_request_edit_farmer/data/dms.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Edit Farmer Request Form 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /spp_change_request_edit_farmer/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import change_request_edit_farmer 2 | from . import change_request_edit_farmer_validation_sequence 3 | from . import dms 4 | -------------------------------------------------------------------------------- /spp_change_request_edit_farmer/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_change_request_edit_farmer/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_change_request_edit_farmer/static/description/icon.png -------------------------------------------------------------------------------- /spp_change_request_edit_farmer/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_change_request_edit_farmer 2 | -------------------------------------------------------------------------------- /spp_consent/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | from . import wizard 5 | -------------------------------------------------------------------------------- /spp_consent/data/default_consent_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Default 4 | 5 | 6 | -------------------------------------------------------------------------------- /spp_consent/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import consent_mixin 4 | from . import consent 5 | from . import registrant 6 | from . import consent_config 7 | -------------------------------------------------------------------------------- /spp_consent/models/consent_config.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from odoo import fields, models 4 | 5 | 6 | class OpenSPPConsentConfig(models.Model): 7 | _name = "spp.consent.config" 8 | _description = "OpenSPP Consent Config" 9 | 10 | name = fields.Char(required=True) 11 | -------------------------------------------------------------------------------- /spp_consent/models/registrant.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from odoo import models 4 | 5 | 6 | class OpenSPPRegistrant(models.Model): 7 | _name = "res.partner" 8 | _inherit = [_name, "spp.consent.mixin"] 9 | -------------------------------------------------------------------------------- /spp_consent/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_consent/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_consent/static/description/icon.png -------------------------------------------------------------------------------- /spp_consent/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_record_consent_wizard 2 | from . import test_registrant 3 | -------------------------------------------------------------------------------- /spp_consent/wizard/__init__.py: -------------------------------------------------------------------------------- 1 | from . import record_consent 2 | -------------------------------------------------------------------------------- /spp_custom_field/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | -------------------------------------------------------------------------------- /spp_custom_field/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import cus_partner 4 | -------------------------------------------------------------------------------- /spp_custom_field/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_custom_field/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_custom_field/static/description/icon.png -------------------------------------------------------------------------------- /spp_custom_field_custom_filter/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_custom_field_custom_filter/__init__.py -------------------------------------------------------------------------------- /spp_custom_field_custom_filter/i18n/spp_custom_field_custom_filter.pot: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # 4 | msgid "" 5 | msgstr "" 6 | "Project-Id-Version: Odoo Server 17.0\n" 7 | "Report-Msgid-Bugs-To: \n" 8 | "Last-Translator: \n" 9 | "Language-Team: \n" 10 | "MIME-Version: 1.0\n" 11 | "Content-Type: text/plain; charset=UTF-8\n" 12 | "Content-Transfer-Encoding: \n" 13 | "Plural-Forms: \n" 14 | -------------------------------------------------------------------------------- /spp_custom_field_custom_filter/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_custom_field_recompute_daily/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_custom_field_recompute_daily/data/ir_cron_data.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /spp_custom_field_recompute_daily/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import base 2 | from . import ir_model_fields 3 | from . import res_config_settings 4 | from . import test_daily_recompute_model 5 | -------------------------------------------------------------------------------- /spp_custom_field_recompute_daily/models/base.py: -------------------------------------------------------------------------------- 1 | from odoo import models 2 | 3 | 4 | class Base(models.AbstractModel): 5 | _inherit = "base" 6 | 7 | def _valid_field_parameter(self, field, name): 8 | return name == "recompute_daily" or super()._valid_field_parameter(field, name) 9 | -------------------------------------------------------------------------------- /spp_custom_field_recompute_daily/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_custom_field_recompute_daily/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | spp_custom_field_recompute_daily.access_spp_test_daily_recompute_model,access_spp_test_daily_recompute_model,spp_custom_field_recompute_daily.model_spp_test_daily_recompute_model,base.group_user,1,0,0,0 3 | -------------------------------------------------------------------------------- /spp_custom_field_recompute_daily/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_ir_model_fields 2 | -------------------------------------------------------------------------------- /spp_custom_fields_ui/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | -------------------------------------------------------------------------------- /spp_custom_fields_ui/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import custom_fields_ui 4 | -------------------------------------------------------------------------------- /spp_custom_fields_ui/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_custom_fields_ui/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_custom_fields_ui/static/description/icon.png -------------------------------------------------------------------------------- /spp_custom_fields_ui/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_custom_fields_ui 2 | -------------------------------------------------------------------------------- /spp_custom_filter/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_custom_filter/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import custom_filter_mixin 2 | from . import ir_model_fields 3 | -------------------------------------------------------------------------------- /spp_custom_filter/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_custom_filter_farmer_registry/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_custom_filter_farmer_registry/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import res_partner 2 | -------------------------------------------------------------------------------- /spp_custom_filter_farmer_registry/models/res_partner.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class ResPartner(models.Model): 5 | _name = "res.partner" 6 | _inherit = ["res.partner", "custom.filter.mixin"] 7 | 8 | farmer_national_id = fields.Char(allow_filter=True) 9 | farmer_postal_address = fields.Char(allow_filter=True) 10 | marital_status = fields.Selection(allow_filter=True) 11 | highest_education_level = fields.Selection(allow_filter=True) 12 | -------------------------------------------------------------------------------- /spp_custom_filter_farmer_registry/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_custom_filter_ui/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_custom_filter_ui/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import res_partner 2 | -------------------------------------------------------------------------------- /spp_custom_filter_ui/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_cycle_attendance_compliance/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | # from . import wizard 3 | -------------------------------------------------------------------------------- /spp_cycle_attendance_compliance/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import res_config_settings 2 | from . import g2p_cycle 3 | from . import managers 4 | from . import individual 5 | from . import res_config_attendance_type 6 | from . import res_config_attendance_location 7 | from . import event_data_attendance 8 | from . import cycle_group_membership_attendance 9 | from . import cycle_membership 10 | -------------------------------------------------------------------------------- /spp_cycle_attendance_compliance/models/managers/__init__.py: -------------------------------------------------------------------------------- 1 | from . import cycle_manager 2 | from . import program_manager 3 | -------------------------------------------------------------------------------- /spp_cycle_attendance_compliance/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_cycle_attendance_compliance/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_cycle_attendance_compliance/static/description/icon.png -------------------------------------------------------------------------------- /spp_cycle_attendance_compliance/views/main_attendance_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /spp_dashboard_base/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_dashboard_base/__init__.py -------------------------------------------------------------------------------- /spp_dashboard_base/i18n/lo.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # 4 | msgid "" 5 | msgstr "" 6 | "Project-Id-Version: Odoo Server 17.0\n" 7 | "Report-Msgid-Bugs-To: \n" 8 | "Last-Translator: Automatically generated\n" 9 | "Language-Team: none\n" 10 | "Language: lo\n" 11 | "MIME-Version: 1.0\n" 12 | "Content-Type: text/plain; charset=UTF-8\n" 13 | "Content-Transfer-Encoding: 8bit\n" 14 | "Plural-Forms: \n" 15 | -------------------------------------------------------------------------------- /spp_dashboard_base/i18n/spp_dashboard_base.pot: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # 4 | msgid "" 5 | msgstr "" 6 | "Project-Id-Version: Odoo Server 17.0\n" 7 | "Report-Msgid-Bugs-To: \n" 8 | "Last-Translator: \n" 9 | "Language-Team: \n" 10 | "MIME-Version: 1.0\n" 11 | "Content-Type: text/plain; charset=UTF-8\n" 12 | "Content-Transfer-Encoding: \n" 13 | "Plural-Forms: \n" 14 | -------------------------------------------------------------------------------- /spp_dashboard_base/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_dashboard_base/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_dashboard_base/static/description/icon.png -------------------------------------------------------------------------------- /spp_data_export/__init__.py: -------------------------------------------------------------------------------- 1 | from . import controllers 2 | -------------------------------------------------------------------------------- /spp_data_export/controllers/__init__.py: -------------------------------------------------------------------------------- 1 | from . import main 2 | -------------------------------------------------------------------------------- /spp_data_export/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_dci_api_server/__init__.py: -------------------------------------------------------------------------------- 1 | from . import controllers 2 | from . import models 3 | -------------------------------------------------------------------------------- /spp_dci_api_server/controllers/__init__.py: -------------------------------------------------------------------------------- 1 | from . import controllers 2 | -------------------------------------------------------------------------------- /spp_dci_api_server/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import client_credentials 2 | from . import individual 3 | -------------------------------------------------------------------------------- /spp_dci_api_server/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_dci_api_server/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | access_spp_dci_api_client_credential,SPP DCI API Client Credential Access,model_spp_dci_api_client_credential,base.group_system,1,1,1,1 3 | -------------------------------------------------------------------------------- /spp_dci_api_server/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_dci_api_server/static/description/icon.png -------------------------------------------------------------------------------- /spp_dci_api_server/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_client_credentials 2 | from . import test_individual 3 | -------------------------------------------------------------------------------- /spp_dci_api_server/tools/__init__.py: -------------------------------------------------------------------------------- 1 | from . import constants 2 | -------------------------------------------------------------------------------- /spp_dci_api_server/tools/private_key.pem: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_dci_api_server/tools/private_key.pem -------------------------------------------------------------------------------- /spp_dci_api_server/tools/public_key.pub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_dci_api_server/tools/public_key.pub -------------------------------------------------------------------------------- /spp_dms/__init__.py: -------------------------------------------------------------------------------- 1 | from . import tools 2 | from . import models 3 | -------------------------------------------------------------------------------- /spp_dms/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import mixins_thumbnail 2 | from . import dms_directory 3 | from . import dms_file 4 | from . import dms_category 5 | -------------------------------------------------------------------------------- /spp_dms/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_dms/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_dms/static/description/icon.png -------------------------------------------------------------------------------- /spp_dms/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_file_tools 2 | from . import test_dms_directory 3 | -------------------------------------------------------------------------------- /spp_dms/tools/__init__.py: -------------------------------------------------------------------------------- 1 | from . import file_tools 2 | -------------------------------------------------------------------------------- /spp_dms/views/main_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /spp_eligibility_sql/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | from . import wizard 5 | -------------------------------------------------------------------------------- /spp_eligibility_sql/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import eligibility_manager 4 | from . import programs 5 | -------------------------------------------------------------------------------- /spp_eligibility_sql/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_eligibility_sql/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_create_program_wizard 2 | from . import test_eligibility_manager 3 | from . import test_program 4 | -------------------------------------------------------------------------------- /spp_eligibility_sql/wizard/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import create_program_wizard 4 | -------------------------------------------------------------------------------- /spp_eligibility_tags/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | from . import wizard 5 | -------------------------------------------------------------------------------- /spp_eligibility_tags/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import eligibility_manager 2 | -------------------------------------------------------------------------------- /spp_eligibility_tags/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_eligibility_tags/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_eligibility_tags/static/description/icon.png -------------------------------------------------------------------------------- /spp_eligibility_tags/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_eligibility_manager 2 | from . import test_create_program_wizard 3 | -------------------------------------------------------------------------------- /spp_eligibility_tags/wizard/__init__.py: -------------------------------------------------------------------------------- 1 | from . import create_program_wizard 2 | -------------------------------------------------------------------------------- /spp_encryption/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_encryption/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import encryption_provider 2 | -------------------------------------------------------------------------------- /spp_encryption/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_encryption/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_encryption_provider 2 | -------------------------------------------------------------------------------- /spp_ent_trans/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | -------------------------------------------------------------------------------- /spp_ent_trans/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import transactions 4 | -------------------------------------------------------------------------------- /spp_ent_trans/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_ent_trans/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_ent_trans/static/description/icon.png -------------------------------------------------------------------------------- /spp_entitlement_basket/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | from . import wizard 5 | -------------------------------------------------------------------------------- /spp_entitlement_basket/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import entitlement_manager 4 | from . import entitlement 5 | from . import stock 6 | -------------------------------------------------------------------------------- /spp_entitlement_basket/models/stock/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import food_basket 4 | -------------------------------------------------------------------------------- /spp_entitlement_basket/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_entitlement_basket/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_entitlement_basket/static/description/icon.png -------------------------------------------------------------------------------- /spp_entitlement_basket/static/src/css/spp_entitlement_basket.css: -------------------------------------------------------------------------------- 1 | .o_form_sheet_scrollable { 2 | max-height: 10vh; 3 | overflow-y: scroll; 4 | } 5 | -------------------------------------------------------------------------------- /spp_entitlement_basket/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import test_create_program_wizard 4 | from . import test_entitlement_basket 5 | from . import test_entitlement_manager 6 | from . import test_food_basket 7 | -------------------------------------------------------------------------------- /spp_entitlement_basket/wizard/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import create_program_wizard 4 | -------------------------------------------------------------------------------- /spp_entitlement_cash/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | from . import wizard 5 | -------------------------------------------------------------------------------- /spp_entitlement_cash/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import entitlement_manager 4 | -------------------------------------------------------------------------------- /spp_entitlement_cash/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_entitlement_cash/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_entitlement_cash/static/description/icon.png -------------------------------------------------------------------------------- /spp_entitlement_cash/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_create_program_wizard 2 | from . import test_entitlement_manager 3 | -------------------------------------------------------------------------------- /spp_entitlement_cash/wizard/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import create_program_wizard 4 | -------------------------------------------------------------------------------- /spp_entitlement_in_kind/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | from . import wizard 5 | -------------------------------------------------------------------------------- /spp_entitlement_in_kind/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import entitlement 4 | from . import entitlement_manager 5 | -------------------------------------------------------------------------------- /spp_entitlement_in_kind/models/entitlement.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | import logging 4 | 5 | from odoo import fields, models 6 | 7 | _logger = logging.getLogger(__name__) 8 | 9 | 10 | class SPPInKindEntitlement(models.Model): 11 | _inherit = "g2p.entitlement.inkind" 12 | 13 | inkind_item_id = fields.Many2one("g2p.program.entitlement.manager.inkind.item", "In-Kind Entitlement Condition") 14 | -------------------------------------------------------------------------------- /spp_entitlement_in_kind/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_entitlement_in_kind/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_entitlement_in_kind/static/description/icon.png -------------------------------------------------------------------------------- /spp_entitlement_in_kind/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_create_program_wizard 2 | from . import test_entitlement_manager 3 | -------------------------------------------------------------------------------- /spp_entitlement_in_kind/wizard/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import create_program_wizard 4 | -------------------------------------------------------------------------------- /spp_ethnic_group/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_ethnic_group/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import ethnic_group 2 | -------------------------------------------------------------------------------- /spp_ethnic_group/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_ethnic_group/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | 3 | spp_ethnic_group_registrar,SPP Ethnic Group Registrar Access,spp_ethnic_group.model_spp_ethnic_group,g2p_registry_base.group_g2p_registrar,1,1,1,1 4 | spp_ethnic_group_admin,SPP Ethnic Group Admin Access,spp_ethnic_group.model_spp_ethnic_group,g2p_registry_base.group_g2p_admin,1,1,1,1 5 | -------------------------------------------------------------------------------- /spp_ethnic_group/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_ethnic_group/static/description/icon.png -------------------------------------------------------------------------------- /spp_event_data/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | from . import wizard 5 | -------------------------------------------------------------------------------- /spp_event_data/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import event_data 4 | from . import registrant 5 | -------------------------------------------------------------------------------- /spp_event_data/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_event_data/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_event_data/static/description/icon.png -------------------------------------------------------------------------------- /spp_event_data/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_event_data 2 | -------------------------------------------------------------------------------- /spp_event_data/wizard/__init__.py: -------------------------------------------------------------------------------- 1 | from . import create_event_wizard 2 | -------------------------------------------------------------------------------- /spp_event_data_program_membership/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | from . import wizard 3 | -------------------------------------------------------------------------------- /spp_event_data_program_membership/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import event_data 2 | from . import program_membership 3 | -------------------------------------------------------------------------------- /spp_event_data_program_membership/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_event_data_program_membership/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_event_data_program_membership/static/description/icon.png -------------------------------------------------------------------------------- /spp_event_data_program_membership/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_event_data 2 | from . import test_program_membership 3 | from . import test_create_event_wizard 4 | -------------------------------------------------------------------------------- /spp_event_data_program_membership/wizard/__init__.py: -------------------------------------------------------------------------------- 1 | from . import create_event_wizard 2 | -------------------------------------------------------------------------------- /spp_event_demo/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | from . import wizard 5 | -------------------------------------------------------------------------------- /spp_event_demo/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import house_visit 4 | from . import phone_survey 5 | from . import school_enrolment 6 | from . import registrant 7 | -------------------------------------------------------------------------------- /spp_event_demo/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_event_demo/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_event_demo/static/description/icon.png -------------------------------------------------------------------------------- /spp_event_demo/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of Newlogic G2P. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import test_event_house_visit 4 | from . import test_event_phone_survey 5 | from . import test_event_schoolenrolment_record 6 | -------------------------------------------------------------------------------- /spp_event_demo/wizard/__init__.py: -------------------------------------------------------------------------------- 1 | from . import create_event_wizard 2 | from . import create_event_house_visit_wizard 3 | from . import create_event_phone_survey_wizard 4 | from . import create_event_school_enrolment_wizard 5 | -------------------------------------------------------------------------------- /spp_exclusion_filter/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | from . import wizard 3 | -------------------------------------------------------------------------------- /spp_exclusion_filter/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import managers 2 | -------------------------------------------------------------------------------- /spp_exclusion_filter/models/managers/__init__.py: -------------------------------------------------------------------------------- 1 | from . import eligibility_manager 2 | -------------------------------------------------------------------------------- /spp_exclusion_filter/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_exclusion_filter/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_eligibility_manager 2 | -------------------------------------------------------------------------------- /spp_exclusion_filter/wizard/__init__.py: -------------------------------------------------------------------------------- 1 | from . import create_program_wizard 2 | -------------------------------------------------------------------------------- /spp_farmer_registry_base/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | from . import controllers 5 | -------------------------------------------------------------------------------- /spp_farmer_registry_base/controllers/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import farm 4 | from . import land_record 5 | -------------------------------------------------------------------------------- /spp_farmer_registry_base/data/id_data.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Farmer National ID 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /spp_farmer_registry_base/data/kind_data.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Farm 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /spp_farmer_registry_base/models/chemical.py: -------------------------------------------------------------------------------- 1 | import logging 2 | 3 | from odoo import fields, models 4 | 5 | _logger = logging.getLogger(__name__) 6 | 7 | 8 | class SPPFarmChemical(models.Model): 9 | _name = "spp.farm.chemical" 10 | _description = "Chemical Interventions Types" 11 | 12 | name = fields.Char("Chemical Interventions Type") 13 | -------------------------------------------------------------------------------- /spp_farmer_registry_base/models/feed_items.py: -------------------------------------------------------------------------------- 1 | import logging 2 | 3 | from odoo import fields, models 4 | 5 | _logger = logging.getLogger(__name__) 6 | 7 | 8 | class SPPFeedItems(models.Model): 9 | _name = "spp.feed.items" 10 | _description = "Feed Items Types" 11 | 12 | name = fields.Char("Feed Items Type") 13 | -------------------------------------------------------------------------------- /spp_farmer_registry_base/models/fertilizer.py: -------------------------------------------------------------------------------- 1 | import logging 2 | 3 | from odoo import fields, models 4 | 5 | _logger = logging.getLogger(__name__) 6 | 7 | 8 | class SPPFertilizer(models.Model): 9 | _name = "spp.fertilizer" 10 | _description = "Fertilizer Interventions Types" 11 | 12 | name = fields.Char("Fertilizer Interventions Type") 13 | -------------------------------------------------------------------------------- /spp_farmer_registry_base/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_farmer_registry_base/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_farmer_registry_base/static/description/icon.png -------------------------------------------------------------------------------- /spp_farmer_registry_base/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_farm 2 | from . import test_farm_season 3 | from . import test_group_membership 4 | -------------------------------------------------------------------------------- /spp_farmer_registry_dashboard/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import reports 4 | -------------------------------------------------------------------------------- /spp_farmer_registry_dashboard/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_farmer_registry_dashboard/reports/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import farmer_registry_report 4 | from . import farmer_with_without_training_report 5 | from . import farmer_farm_details_report 6 | -------------------------------------------------------------------------------- /spp_farmer_registry_default_ui/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_farmer_registry_default_ui/models/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_farmer_registry_default_ui/models/__init__.py -------------------------------------------------------------------------------- /spp_farmer_registry_default_ui/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_farmer_registry_default_ui/security/ir.model.access.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_farmer_registry_default_ui/security/ir.model.access.csv -------------------------------------------------------------------------------- /spp_farmer_registry_default_ui/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_farmer_registry_default_ui/static/description/icon.png -------------------------------------------------------------------------------- /spp_farmer_registry_demo/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | -------------------------------------------------------------------------------- /spp_farmer_registry_demo/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import agricultural_activity 4 | from . import farm 5 | from . import farm_asset 6 | from . import farm_details 7 | from . import farmer 8 | from . import generate_farmer_data 9 | from . import land_record 10 | -------------------------------------------------------------------------------- /spp_farmer_registry_demo/models/farm.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class Farm(models.Model): 5 | _inherit = "res.partner" 6 | 7 | household_size = fields.Integer(allow_filter=True) 8 | -------------------------------------------------------------------------------- /spp_farmer_registry_demo/models/land_record.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class LandRecord(models.Model): 5 | _inherit = "spp.land.record" 6 | 7 | ke_access_cities_reg = fields.Float( 8 | string="Estimated cumulative travel time/cost to the nearest regional city", 9 | readonly=True, 10 | ) 11 | -------------------------------------------------------------------------------- /spp_farmer_registry_demo/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_farmer_registry_demo/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | spp_generate_farmer_data_admin,SPP Generate Farmer Data Admin Access,spp_farmer_registry_demo.model_spp_generate_farmer_data,g2p_registry_base.group_g2p_admin,1,1,1,1 3 | spp_generate_farmer_data_registrar,SPP Generate Farmer Data Registrar Access,spp_farmer_registry_demo.model_spp_generate_farmer_data,g2p_registry_base.group_g2p_registrar,1,1,1,1 4 | -------------------------------------------------------------------------------- /spp_farmer_registry_demo/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_farmer_registry_demo/static/description/icon.png -------------------------------------------------------------------------------- /spp_farmer_registry_demo/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_tools 2 | from . import test_farm 3 | from . import test_generate_farmer_data 4 | -------------------------------------------------------------------------------- /spp_farmer_registry_demo/tools/__init__.py: -------------------------------------------------------------------------------- 1 | from .random_location_in_kenya import random_location_in_kenya 2 | from .random_location_in_laos import random_location_in_laos 3 | from .random_location_in_sri_lanka import random_location_in_sri_lanka 4 | from .generate_polygon import generate_polygon 5 | -------------------------------------------------------------------------------- /spp_grm/README.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_grm/README.rst -------------------------------------------------------------------------------- /spp_grm/__init__.py: -------------------------------------------------------------------------------- 1 | from . import controllers 2 | from . import models 3 | -------------------------------------------------------------------------------- /spp_grm/controllers/__init__.py: -------------------------------------------------------------------------------- 1 | from . import grm_portal 2 | -------------------------------------------------------------------------------- /spp_grm/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import grm_ticket 2 | from . import grm_ticket_stage 3 | from . import grm_ticket_tag 4 | from . import grm_ticket_channel 5 | from . import grm_ticket_category 6 | from . import res_partner 7 | -------------------------------------------------------------------------------- /spp_grm/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_grm/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_grm/static/description/icon.png -------------------------------------------------------------------------------- /spp_grm/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_grm_ticket 2 | from . import test_grm_ticket_stage 3 | from . import test_res_partner 4 | -------------------------------------------------------------------------------- /spp_hide_menus/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | -------------------------------------------------------------------------------- /spp_hide_menus/i18n/lo.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # 4 | msgid "" 5 | msgstr "" 6 | "Project-Id-Version: Odoo Server 17.0\n" 7 | "Report-Msgid-Bugs-To: \n" 8 | "Last-Translator: Automatically generated\n" 9 | "Language-Team: none\n" 10 | "Language: lo\n" 11 | "MIME-Version: 1.0\n" 12 | "Content-Type: text/plain; charset=UTF-8\n" 13 | "Content-Transfer-Encoding: 8bit\n" 14 | "Plural-Forms: \n" 15 | -------------------------------------------------------------------------------- /spp_hide_menus/i18n/spp_hide_menus.pot: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # 4 | msgid "" 5 | msgstr "" 6 | "Project-Id-Version: Odoo Server 17.0\n" 7 | "Report-Msgid-Bugs-To: \n" 8 | "Last-Translator: \n" 9 | "Language-Team: \n" 10 | "MIME-Version: 1.0\n" 11 | "Content-Type: text/plain; charset=UTF-8\n" 12 | "Content-Transfer-Encoding: \n" 13 | "Plural-Forms: \n" 14 | -------------------------------------------------------------------------------- /spp_hide_menus/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_hide_menus_base/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_hide_menus_base/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import hide_menu 2 | -------------------------------------------------------------------------------- /spp_hide_menus_base/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_hide_menus_base/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | spp_hide_menu_admin,Hide Menu Configuration Admin Access,spp_hide_menus_base.model_spp_hide_menu,base.group_system,1,1,1,1 3 | -------------------------------------------------------------------------------- /spp_hide_menus_base/security/security.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Show Non-OpenSPP Menu 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /spp_idpass/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | from . import wizard 5 | -------------------------------------------------------------------------------- /spp_idpass/data/id_pass.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ID PASS Lite 5 | both 6 | 7 | 8 | 9 | ID PASS Template 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spp_idpass/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import id_pass 4 | from . import registrant 5 | from . import id_type 6 | -------------------------------------------------------------------------------- /spp_idpass/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_idpass/readme/DESCRIPTION.md: -------------------------------------------------------------------------------- 1 | OpenSPP ID PASS 2 | -------------------------------------------------------------------------------- /spp_idpass/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | spp_idpass_admin,ID Pass Admin Access,spp_idpass.model_spp_id_pass,g2p_registry_base.group_g2p_admin,1,1,1,1 3 | spp_issue_idpass_wizard_admin,Issue ID Pass Wizard Admin Access,spp_idpass.model_spp_issue_idpass_wizard,g2p_registry_base.group_g2p_admin,1,1,1,1 4 | -------------------------------------------------------------------------------- /spp_idpass/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_idpass/static/description/icon.png -------------------------------------------------------------------------------- /spp_idpass/static/description/icon_id.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_idpass/static/description/icon_id.png -------------------------------------------------------------------------------- /spp_idpass/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_id_pass 2 | from . import test_id_type 3 | from . import test_registrant 4 | -------------------------------------------------------------------------------- /spp_idpass/wizard/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import issue_id_pass_wizard 4 | -------------------------------------------------------------------------------- /spp_idqueue/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | from . import wizard 5 | -------------------------------------------------------------------------------- /spp_idqueue/data/id_pass.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ID Batch Print 5 | 6 | 7 | -------------------------------------------------------------------------------- /spp_idqueue/data/queue_data.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | root_id_batch 5 | 6 | 7 | id_batch 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /spp_idqueue/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import id_queue 4 | from . import id_batch 5 | from . import registrant 6 | from . import queue_job_channel 7 | -------------------------------------------------------------------------------- /spp_idqueue/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_idqueue/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_idqueue/static/description/icon.png -------------------------------------------------------------------------------- /spp_idqueue/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_batch_create_wizard 2 | from . import test_id_batch 3 | from . import test_id_queue 4 | from . import test_multi_id_request_wizard 5 | from . import test_registrant 6 | from . import test_request_id_wizard 7 | from . import test_res_config_settings 8 | from . import test_queue_job_channel 9 | -------------------------------------------------------------------------------- /spp_idqueue/wizard/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import request_id_wizard 4 | from . import batch_create_wizard 5 | from . import multi_id_request_wizard 6 | -------------------------------------------------------------------------------- /spp_import_dci_api/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | from . import wizard 3 | -------------------------------------------------------------------------------- /spp_import_dci_api/data/crvs_location_data.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /spp_import_dci_api/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import individual 2 | from . import eligibility_manager 3 | from . import constants 4 | from . import fetch_crvs_beneficiary 5 | from . import group 6 | from . import group_membership 7 | from . import imported_individuals 8 | from . import res_partner 9 | -------------------------------------------------------------------------------- /spp_import_dci_api/models/res_partner.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class OpenSPPRegistry(models.Model): 5 | # Applicable to both Individual and Group Registry 6 | 7 | _inherit = "res.partner" 8 | 9 | data_source_id = fields.Many2one( 10 | "spp.data.source", 11 | readonly=True, 12 | ) 13 | -------------------------------------------------------------------------------- /spp_import_dci_api/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_import_dci_api/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_import_dci_api/static/description/icon.png -------------------------------------------------------------------------------- /spp_import_dci_api/static/src/img/icons/contacts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_import_dci_api/static/src/img/icons/contacts.png -------------------------------------------------------------------------------- /spp_import_dci_api/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_fetch_crvs_beneficiary 2 | -------------------------------------------------------------------------------- /spp_import_dci_api/tools/__init__.py: -------------------------------------------------------------------------------- 1 | from .field_onchange import field_onchange 2 | -------------------------------------------------------------------------------- /spp_import_dci_api/tools/insert_operator.py: -------------------------------------------------------------------------------- 1 | from odoo.osv.expression import AND, OR 2 | 3 | 4 | def insert_operator(domain): 5 | if not domain: 6 | return domain 7 | operator_used = AND 8 | if domain[0] == "|": 9 | operator_used = OR 10 | new_domain = [] 11 | domain = list(filter(lambda a: a not in ["&", "|", "!"], domain)) 12 | for dom in domain: 13 | new_domain = operator_used([new_domain, [dom]]) 14 | return new_domain 15 | -------------------------------------------------------------------------------- /spp_import_dci_api/tools/private_key.pem: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_import_dci_api/tools/private_key.pem -------------------------------------------------------------------------------- /spp_import_dci_api/tools/private_key.pem.pub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_import_dci_api/tools/private_key.pem.pub -------------------------------------------------------------------------------- /spp_import_dci_api/wizard/__init__.py: -------------------------------------------------------------------------------- 1 | from . import create_program_wizard 2 | -------------------------------------------------------------------------------- /spp_import_match/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | -------------------------------------------------------------------------------- /spp_import_match/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import base 4 | from . import base_import 5 | from . import import_match 6 | from . import queue_job 7 | -------------------------------------------------------------------------------- /spp_import_match/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_import_match/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | spp_import_match_admin,SPP Import Matching Admin Access,spp_import_match.model_spp_import_match,g2p_registry_base.group_g2p_admin,1,1,1,1 3 | spp_import_match_fields_admin,SPP Import Matching Fields Admin Access,spp_import_match.model_spp_import_match_fields,g2p_registry_base.group_g2p_admin,1,1,1,1 4 | -------------------------------------------------------------------------------- /spp_import_match/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_import_match/static/description/icon.png -------------------------------------------------------------------------------- /spp_import_match/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_res_partner_import_match 2 | -------------------------------------------------------------------------------- /spp_import_match/tests/res_partner_group_name.csv: -------------------------------------------------------------------------------- 1 | Name,Email 2 | Renaud,renaudhh@gmail.com 3 | -------------------------------------------------------------------------------- /spp_import_match/tests/res_partner_name.csv: -------------------------------------------------------------------------------- 1 | given_name,family_name,name,email 2 | Renaud,Rufino,Renaud Rufino,rufinorenaud@gmail.com 3 | -------------------------------------------------------------------------------- /spp_irrigation/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_irrigation/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import irrigation 2 | -------------------------------------------------------------------------------- /spp_irrigation/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_irrigation/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | 3 | access_spp_irrigation_asset,SPP Irrigation Asset Access,model_spp_irrigation_asset,spp_irrigation.group_manager,1,1,1,1 4 | -------------------------------------------------------------------------------- /spp_land_record/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | -------------------------------------------------------------------------------- /spp_land_record/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import land_record 4 | -------------------------------------------------------------------------------- /spp_land_record/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_land_record/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | spp_land_record_admin,Land Record Details Admin Access,spp_land_record.model_spp_land_record,g2p_registry_base.group_g2p_admin,1,1,1,1 3 | spp_land_record_registrar,Land Record Details Registrar Access,spp_land_record.model_spp_land_record,g2p_registry_base.group_g2p_registrar,1,1,1,1 4 | -------------------------------------------------------------------------------- /spp_land_record/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_land_record/static/description/icon.png -------------------------------------------------------------------------------- /spp_land_record/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_land_record 2 | -------------------------------------------------------------------------------- /spp_manual_eligibility/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | from . import wizard 5 | -------------------------------------------------------------------------------- /spp_manual_eligibility/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import eligibility_manager 4 | from . import program 5 | from . import program_membership 6 | from . import cycle 7 | -------------------------------------------------------------------------------- /spp_manual_eligibility/models/cycle.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | import logging 3 | 4 | from odoo import fields, models 5 | 6 | _logger = logging.getLogger(__name__) 7 | 8 | 9 | class G2PCycle(models.Model): 10 | _inherit = "g2p.cycle" 11 | 12 | is_manual_eligibility = fields.Boolean(related="program_id.is_manual_eligibility") 13 | -------------------------------------------------------------------------------- /spp_manual_eligibility/models/eligibility_manager.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | import logging 3 | 4 | from odoo import fields, models 5 | 6 | _logger = logging.getLogger(__name__) 7 | 8 | 9 | class DefaultEligibilityManager(models.Model): 10 | _inherit = "g2p.program_membership.manager.default" 11 | 12 | is_manual_eligibility = fields.Boolean(default=False) 13 | -------------------------------------------------------------------------------- /spp_manual_eligibility/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_manual_eligibility/readme/DESCRIPTION.md: -------------------------------------------------------------------------------- 1 | OpenSPP Manual Eligibility 2 | -------------------------------------------------------------------------------- /spp_manual_eligibility/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_manual_eligibility/static/description/icon.png -------------------------------------------------------------------------------- /spp_manual_eligibility/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_manual_eligibility 2 | -------------------------------------------------------------------------------- /spp_manual_eligibility/wizard/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenG2P. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import create_program_wizard 4 | from . import assign_to_program_wizard 5 | -------------------------------------------------------------------------------- /spp_manual_entitlement/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | from . import wizard 5 | -------------------------------------------------------------------------------- /spp_manual_entitlement/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import entitlement_manager 4 | from . import cycle 5 | from . import cycle_manager 6 | -------------------------------------------------------------------------------- /spp_manual_entitlement/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_manual_entitlement/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_manual_entitlement/static/description/icon.png -------------------------------------------------------------------------------- /spp_manual_entitlement/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_manual_entitlement 2 | -------------------------------------------------------------------------------- /spp_manual_entitlement/tests/test_entitlement.csv: -------------------------------------------------------------------------------- 1 | ID,Amount 2 | GRP_VKW59J49,10 3 | GRP_VKW59J48,10 4 | -------------------------------------------------------------------------------- /spp_manual_entitlement/tests/test_entitlement.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_manual_entitlement/tests/test_entitlement.pdf -------------------------------------------------------------------------------- /spp_manual_entitlement/tests/test_entitlement.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_manual_entitlement/tests/test_entitlement.xlsx -------------------------------------------------------------------------------- /spp_manual_entitlement/wizard/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenG2P. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import create_program_wizard 4 | from . import manual_entitlement_wizard 5 | -------------------------------------------------------------------------------- /spp_mis_demo/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | -------------------------------------------------------------------------------- /spp_mis_demo/data/res_lang_data.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /spp_mis_demo/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | # from . import individual 4 | # from . import group 5 | from . import generate_group 6 | from . import generate_program 7 | from . import individual 8 | from . import group 9 | -------------------------------------------------------------------------------- /spp_mis_demo/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_mis_demo/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | spp_generate_data_admin,Generate Data Admin Access,spp_mis_demo.model_spp_generate_data,g2p_registry_base.group_g2p_admin,1,1,1,1 3 | spp_generate_program_data_admin,Generate Program Data Admin Access,spp_mis_demo.model_spp_generate_program_data,g2p_registry_base.group_g2p_admin,1,1,1,1 4 | -------------------------------------------------------------------------------- /spp_mis_demo/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_mis_demo/static/description/icon.png -------------------------------------------------------------------------------- /spp_mis_demo/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_cus_partner 2 | from . import test_generate_group 3 | from . import test_generate_program 4 | -------------------------------------------------------------------------------- /spp_oauth/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_oauth/__init__.py -------------------------------------------------------------------------------- /spp_oauth/i18n/lo.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # 4 | msgid "" 5 | msgstr "" 6 | "Project-Id-Version: Odoo Server 17.0\n" 7 | "Report-Msgid-Bugs-To: \n" 8 | "Last-Translator: Automatically generated\n" 9 | "Language-Team: none\n" 10 | "MIME-Version: 1.0\n" 11 | "Content-Type: text/plain; charset=UTF-8\n" 12 | "Content-Transfer-Encoding: 8bit\n" 13 | "Plural-Forms: \n" 14 | "Language: lo\n" 15 | -------------------------------------------------------------------------------- /spp_oauth/i18n/spp_oauth.pot: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # 4 | msgid "" 5 | msgstr "" 6 | "Project-Id-Version: Odoo Server 17.0\n" 7 | "Report-Msgid-Bugs-To: \n" 8 | "Last-Translator: \n" 9 | "Language-Team: \n" 10 | "MIME-Version: 1.0\n" 11 | "Content-Type: text/plain; charset=UTF-8\n" 12 | "Content-Transfer-Encoding: \n" 13 | "Plural-Forms: \n" 14 | -------------------------------------------------------------------------------- /spp_oauth/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_oauth/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_rsa_encode_decode 2 | -------------------------------------------------------------------------------- /spp_oauth/tools/__init__.py: -------------------------------------------------------------------------------- 1 | from .rsa_encode_decode import calculate_signature 2 | from .rsa_encode_decode import verify_and_decode_signature 3 | from .oauth_exception import OpenSPPOAuthJWTException 4 | -------------------------------------------------------------------------------- /spp_oauth/tools/oauth_exception.py: -------------------------------------------------------------------------------- 1 | import logging 2 | 3 | # Configure the logging 4 | logging.basicConfig(level=logging.ERROR, format="%(asctime)s - %(levelname)s - %(message)s") 5 | 6 | 7 | class OpenSPPOAuthJWTException(Exception): 8 | def __init__(self, message): 9 | super().__init__(message) 10 | logging.error(message) 11 | -------------------------------------------------------------------------------- /spp_oauth/tools/private_key.pem: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_oauth/tools/private_key.pem -------------------------------------------------------------------------------- /spp_oauth/tools/public_key.pub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_oauth/tools/public_key.pub -------------------------------------------------------------------------------- /spp_openid_vci/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | from . import wizard 3 | from . import controllers 4 | -------------------------------------------------------------------------------- /spp_openid_vci/controllers/__init__.py: -------------------------------------------------------------------------------- 1 | from . import controllers 2 | -------------------------------------------------------------------------------- /spp_openid_vci/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import res_partner 2 | from . import vci_issuer 3 | from . import ir_actions_report 4 | -------------------------------------------------------------------------------- /spp_openid_vci/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_openid_vci/security/security_user_roles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Verifiable Credential Generator 4 | global 5 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /spp_openid_vci/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_openid_vci/static/description/icon.png -------------------------------------------------------------------------------- /spp_openid_vci/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_vci_issuer 2 | from . import test_tools 3 | -------------------------------------------------------------------------------- /spp_openid_vci/tools/__init__.py: -------------------------------------------------------------------------------- 1 | from .tools import delete_keys_except 2 | from .tools import qr_image 3 | from .tools import create_qr_code 4 | -------------------------------------------------------------------------------- /spp_openid_vci/wizard/__init__.py: -------------------------------------------------------------------------------- 1 | from . import vci_issuer_selection 2 | -------------------------------------------------------------------------------- /spp_openid_vci/wizard/vci_issuer_selection.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class IssueCardWiz(models.TransientModel): 5 | _name = "spp.issue.card.wizard" 6 | 7 | issuer_id = fields.Many2one("g2p.openid.vci.issuers", "Issuer", required=True) 8 | 9 | def issue_card(self): 10 | partner_ids = self.env["res.partner"].search([("id", "in", self.env.context.get("active_ids"))]) 11 | return partner_ids._issue_vc_qr(self.issuer_id) 12 | -------------------------------------------------------------------------------- /spp_openid_vci_group/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_openid_vci_group/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import vci_issuer 2 | -------------------------------------------------------------------------------- /spp_openid_vci_group/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_openid_vci_individual/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_openid_vci_individual/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import vci_issuer 2 | -------------------------------------------------------------------------------- /spp_openid_vci_individual/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_pmt/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | -------------------------------------------------------------------------------- /spp_pmt/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import pmt 4 | from . import custom_fields_ui 5 | -------------------------------------------------------------------------------- /spp_pmt/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_pmt/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | spp_fields_area_admin,Fields Area Admin Access,spp_pmt.model_spp_fields_area,g2p_registry_base.group_g2p_admin,1,1,1,1 3 | -------------------------------------------------------------------------------- /spp_pmt/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_pmt/static/description/icon.png -------------------------------------------------------------------------------- /spp_pmt/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_pmt 2 | -------------------------------------------------------------------------------- /spp_pos/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | -------------------------------------------------------------------------------- /spp_pos/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import pos_category 4 | from . import entitlement 5 | from . import product_template 6 | -------------------------------------------------------------------------------- /spp_pos/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_pos/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_pos/static/description/icon.png -------------------------------------------------------------------------------- /spp_pos/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_g2p_entitlement 2 | from . import test_pos_category 3 | from . import test_product_template 4 | -------------------------------------------------------------------------------- /spp_pos_id_redemption/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | from . import wizard 3 | -------------------------------------------------------------------------------- /spp_pos_id_redemption/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import entitlement 2 | from . import entitlement_manager 3 | from . import cycle 4 | from . import product_template 5 | from . import pos_session 6 | from . import res_partner 7 | from . import pos_config 8 | from . import reg_id 9 | -------------------------------------------------------------------------------- /spp_pos_id_redemption/models/entitlement_manager.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | import logging 3 | 4 | from odoo import fields, models 5 | 6 | _logger = logging.getLogger(__name__) 7 | 8 | 9 | class DefaultCashEntitlementManager(models.Model): 10 | _inherit = "g2p.program.entitlement.manager.default" 11 | 12 | is_pos_cash = fields.Boolean(default=False) 13 | -------------------------------------------------------------------------------- /spp_pos_id_redemption/models/pos_config.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class PosConfig(models.Model): 5 | _inherit = "pos.config" 6 | 7 | area_id = fields.Many2one("spp.area", string="Area") 8 | -------------------------------------------------------------------------------- /spp_pos_id_redemption/models/reg_id.py: -------------------------------------------------------------------------------- 1 | # Part of OpenG2P Registry. See LICENSE file for full copyright and licensing details. 2 | 3 | 4 | from odoo import models 5 | 6 | 7 | class G2PRegistrantID(models.Model): 8 | _inherit = "g2p.reg.id" 9 | 10 | def generate_id_card(self): 11 | for rec in self: 12 | id_card = self.env.ref("spp_pos_id_redemption.action_report_id_barcode_printout").report_action(rec) 13 | return id_card 14 | -------------------------------------------------------------------------------- /spp_pos_id_redemption/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_pos_id_redemption/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | g2p_entitlements_pos_user,G2P Entitlements POS User Access,g2p_programs.model_g2p_entitlement,point_of_sale.group_pos_user,1,1,1,0 3 | -------------------------------------------------------------------------------- /spp_pos_id_redemption/static/src/js/db.js: -------------------------------------------------------------------------------- 1 | /** @odoo-module */ 2 | 3 | import {PosDB} from "@point_of_sale/app/store/db"; 4 | import {patch} from "@web/core/utils/patch"; 5 | 6 | patch(PosDB.prototype, { 7 | get_product_by_category(category_id) { 8 | this.limit = 999999; 9 | return super.get_product_by_category(category_id); 10 | }, 11 | }); 12 | -------------------------------------------------------------------------------- /spp_pos_id_redemption/static/src/js/product_screen.js: -------------------------------------------------------------------------------- 1 | /** @odoo-module */ 2 | 3 | import {ProductScreen} from "@point_of_sale/app/screens/product_screen/product_screen"; 4 | 5 | ProductScreen.template = "spp_pos_id_redemption.ProductScreen"; 6 | -------------------------------------------------------------------------------- /spp_pos_id_redemption/static/src/view/customer_note.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Beneficiary Note 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /spp_pos_id_redemption/static/src/view/ticket_screen.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
Beneficiary
6 |
7 |
8 |
9 | -------------------------------------------------------------------------------- /spp_pos_id_redemption/wizard/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenG2P. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import create_program_wizard 4 | -------------------------------------------------------------------------------- /spp_program_id/__init__.py: -------------------------------------------------------------------------------- 1 | from odoo import SUPERUSER_ID, api 2 | 3 | from . import models 4 | 5 | 6 | def post_init_hook(env): 7 | programs = env["g2p.program"].search([("program_id", "=", False)]) 8 | for prog in programs: 9 | prog.program_id = env["ir.sequence"].next_by_code("program.id.sequence") 10 | -------------------------------------------------------------------------------- /spp_program_id/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import g2p_program 2 | -------------------------------------------------------------------------------- /spp_program_id/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_programs/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | from . import wizard 5 | -------------------------------------------------------------------------------- /spp_programs/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import constants 4 | from . import cycle 5 | from . import entitlement 6 | from . import entitlement_cash 7 | from . import registrant 8 | from . import stock 9 | from . import managers 10 | from . import programs 11 | from . import eligibility 12 | from . import g2p_entitlement 13 | -------------------------------------------------------------------------------- /spp_programs/models/managers/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import eligibility_manager 4 | from . import cycle_manager 5 | from . import entitlement_manager 6 | from . import entitlement_manager_default 7 | -------------------------------------------------------------------------------- /spp_programs/models/managers/entitlement_manager.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | from odoo import fields, models 3 | 4 | 5 | class BaseEntitlementManager(models.AbstractModel): 6 | _inherit = "g2p.base.program.entitlement.manager" 7 | 8 | id_type = fields.Many2one("g2p.id.type", "ID Type to store in entitlements") 9 | -------------------------------------------------------------------------------- /spp_programs/models/stock/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import stock 4 | -------------------------------------------------------------------------------- /spp_programs/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_programs/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_programs/static/description/icon.png -------------------------------------------------------------------------------- /spp_programs/static/description/icon_program.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_programs/static/description/icon_program.png -------------------------------------------------------------------------------- /spp_programs/static/src/xml/create_program_template.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | -------------------------------------------------------------------------------- /spp_programs/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_create_program_wiz 2 | from . import test_entitlement_report_wiz 3 | from . import test_entitlement 4 | from . import test_programs 5 | from . import test_registrant 6 | from . import test_stock_rule 7 | from . import test_cycle 8 | -------------------------------------------------------------------------------- /spp_programs/tests/test_registrant.py: -------------------------------------------------------------------------------- 1 | from .common import Common 2 | 3 | 4 | class TestRegistrant(Common): 5 | def test_01_compute_inkind_entitlements_count(self): 6 | self.registrant._compute_inkind_entitlements_count() 7 | self.assertEqual( 8 | self.registrant.inkind_entitlements_count, 9 | 1, 10 | "Registrant should have correct inkind entitlements count!", 11 | ) 12 | -------------------------------------------------------------------------------- /spp_programs/tests/test_stock_rule.py: -------------------------------------------------------------------------------- 1 | from odoo.tests import TransactionCase 2 | 3 | 4 | class TestStockRule(TransactionCase): 5 | def test_01_get_custom_move_fields(self): 6 | res = self.env["stock.rule"]._get_custom_move_fields() 7 | self.assertIn("entitlement_id", res, "`entitlement_id` should be in custom move fields!") 8 | -------------------------------------------------------------------------------- /spp_programs/wizard/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import inkind_entitlement_report_wiz 4 | from . import create_program_wizard 5 | from . import multi_inkind_entitlement_approval_wizard 6 | from . import reject_entitlement_wizard 7 | from . import reset_to_pending_wizard 8 | from . import multi_entitlement_approval_wizard 9 | -------------------------------------------------------------------------------- /spp_programs_compliance_criteria/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | from . import wizards 3 | -------------------------------------------------------------------------------- /spp_programs_compliance_criteria/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import managers 2 | from . import g2p_cycle 3 | from . import g2p_program 4 | from . import res_config_settings 5 | from . import cycle_membership 6 | -------------------------------------------------------------------------------- /spp_programs_compliance_criteria/models/cycle_membership.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class G2PCycleMembership(models.Model): 5 | _inherit = "g2p.cycle.membership" 6 | 7 | state = fields.Selection( 8 | selection_add=[ 9 | ("non_compliant", "Non-Compliant"), 10 | ], 11 | default="draft", 12 | copy=False, 13 | ) 14 | -------------------------------------------------------------------------------- /spp_programs_compliance_criteria/models/g2p_program.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class G2pProgram(models.Model): 5 | _inherit = "g2p.program" 6 | 7 | compliance_managers = fields.One2many( 8 | comodel_name="spp.compliance.manager", 9 | inverse_name="program_id", 10 | auto_join=True, 11 | ) 12 | -------------------------------------------------------------------------------- /spp_programs_compliance_criteria/models/managers/__init__.py: -------------------------------------------------------------------------------- 1 | from . import g2p_cycle_manager_default 2 | from . import g2p_program_entitlement_manager_default 3 | from . import spp_compliance_manager 4 | -------------------------------------------------------------------------------- /spp_programs_compliance_criteria/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_programs_compliance_criteria/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_g2p_cycle 2 | from . import test_g2p_program_create_wizard 3 | -------------------------------------------------------------------------------- /spp_programs_compliance_criteria/wizards/__init__.py: -------------------------------------------------------------------------------- 1 | from . import g2p_program_create_wizard 2 | -------------------------------------------------------------------------------- /spp_programs_sp/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | from . import wizard 5 | -------------------------------------------------------------------------------- /spp_programs_sp/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import programs 4 | from . import entitlement_cash 5 | from . import entitlement_inkind 6 | from . import entitlement_manager_default 7 | from . import entitlement_manager_cash 8 | from . import entitlement_manager_inkind 9 | from . import service_point 10 | -------------------------------------------------------------------------------- /spp_programs_sp/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_programs_sp/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_programs_sp/static/description/icon.png -------------------------------------------------------------------------------- /spp_programs_sp/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import common 2 | from . import test_entitlement_manager_cash 3 | from . import test_entitlement_manager_default 4 | from . import test_entitlement_manager_inkind 5 | from . import test_create_program_wizard 6 | -------------------------------------------------------------------------------- /spp_programs_sp/wizard/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import create_program_wizard 4 | -------------------------------------------------------------------------------- /spp_qr_scanner/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_qr_scanner/__init__.py -------------------------------------------------------------------------------- /spp_qr_scanner/i18n/lo.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # 4 | msgid "" 5 | msgstr "" 6 | "Project-Id-Version: Odoo Server 17.0\n" 7 | "Report-Msgid-Bugs-To: \n" 8 | "Last-Translator: Automatically generated\n" 9 | "Language-Team: none\n" 10 | "MIME-Version: 1.0\n" 11 | "Content-Type: text/plain; charset=UTF-8\n" 12 | "Content-Transfer-Encoding: 8bit\n" 13 | "Plural-Forms: \n" 14 | "Language: lo\n" 15 | -------------------------------------------------------------------------------- /spp_qr_scanner/i18n/spp_qr_scanner.pot: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # 4 | msgid "" 5 | msgstr "" 6 | "Project-Id-Version: Odoo Server 17.0\n" 7 | "Report-Msgid-Bugs-To: \n" 8 | "Last-Translator: \n" 9 | "Language-Team: \n" 10 | "MIME-Version: 1.0\n" 11 | "Content-Type: text/plain; charset=UTF-8\n" 12 | "Content-Transfer-Encoding: \n" 13 | "Plural-Forms: \n" 14 | -------------------------------------------------------------------------------- /spp_qr_scanner/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_qr_scanner/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_qr_scanner/static/description/icon.png -------------------------------------------------------------------------------- /spp_registrant_import/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import res_partner 2 | from . import spp_area 3 | from . import spp_service_point 4 | -------------------------------------------------------------------------------- /spp_registrant_import/models/spp_area.py: -------------------------------------------------------------------------------- 1 | from odoo import models 2 | 3 | 4 | class SppArea(models.Model): 5 | _name = "spp.area" 6 | _inherit = ["spp.area", "spp.unique.id"] 7 | 8 | def _get_spp_id_prefix(self): 9 | return "LOC" 10 | 11 | def _get_match_spp_id_pattern(self): 12 | return r"^LOC_[0-9A-Z]{8}$" 13 | -------------------------------------------------------------------------------- /spp_registrant_import/models/spp_service_point.py: -------------------------------------------------------------------------------- 1 | from odoo import models 2 | 3 | 4 | class SppServicePoint(models.Model): 5 | _name = "spp.service.point" 6 | _inherit = ["spp.service.point", "spp.unique.id"] 7 | 8 | def _get_spp_id_prefix(self): 9 | return "SVP" 10 | 11 | def _get_match_spp_id_pattern(self): 12 | return r"^SVP_[0-9A-Z]{8}$" 13 | -------------------------------------------------------------------------------- /spp_registrant_import/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_registrant_import/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_area 2 | from . import test_registrant 3 | from . import test_service_point 4 | -------------------------------------------------------------------------------- /spp_registrant_tag/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_registrant_tag/__init__.py -------------------------------------------------------------------------------- /spp_registrant_tag/i18n/lo.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # 4 | msgid "" 5 | msgstr "" 6 | "Project-Id-Version: Odoo Server 17.0\n" 7 | "Report-Msgid-Bugs-To: \n" 8 | "Last-Translator: Automatically generated\n" 9 | "Language-Team: none\n" 10 | "MIME-Version: 1.0\n" 11 | "Content-Type: text/plain; charset=UTF-8\n" 12 | "Content-Transfer-Encoding: 8bit\n" 13 | "Plural-Forms: \n" 14 | "Language: lo\n" 15 | -------------------------------------------------------------------------------- /spp_registrant_tag/i18n/spp_registrant_tag.pot: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # 4 | msgid "" 5 | msgstr "" 6 | "Project-Id-Version: Odoo Server 17.0\n" 7 | "Report-Msgid-Bugs-To: \n" 8 | "Last-Translator: \n" 9 | "Language-Team: \n" 10 | "MIME-Version: 1.0\n" 11 | "Content-Type: text/plain; charset=UTF-8\n" 12 | "Content-Transfer-Encoding: \n" 13 | "Plural-Forms: \n" 14 | -------------------------------------------------------------------------------- /spp_registrant_tag/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_registrant_tag/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | g2p_registrant_tags_registrar,Registrant Tags Registrant Access,g2p_registry_base.model_g2p_registrant_tags,g2p_registry_base.group_g2p_registrar,1,1,1,1 3 | -------------------------------------------------------------------------------- /spp_registry_approval/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_registry_approval/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import res_partner 2 | -------------------------------------------------------------------------------- /spp_registry_approval/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_registry_approval/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_registry_approval/static/description/icon.png -------------------------------------------------------------------------------- /spp_registry_approval_group/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_registry_approval_group/__init__.py -------------------------------------------------------------------------------- /spp_registry_approval_group/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_registry_approval_group/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_registry_approval_group/static/description/icon.png -------------------------------------------------------------------------------- /spp_registry_approval_individual/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_registry_approval_individual/__init__.py -------------------------------------------------------------------------------- /spp_registry_approval_individual/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_registry_approval_individual/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_registry_approval_individual/static/description/icon.png -------------------------------------------------------------------------------- /spp_registry_base/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_registry_base/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import res_partner 2 | -------------------------------------------------------------------------------- /spp_registry_base/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_registry_base/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_registry_base/static/description/icon.png -------------------------------------------------------------------------------- /spp_registry_base/static/description/icon_registry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_registry_base/static/description/icon_registry.png -------------------------------------------------------------------------------- /spp_registry_base/static/xls/group_registry.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_registry_base/static/xls/group_registry.xlsx -------------------------------------------------------------------------------- /spp_registry_base/static/xls/individual_registry.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_registry_base/static/xls/individual_registry.xlsx -------------------------------------------------------------------------------- /spp_registry_base/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_res_partner 2 | -------------------------------------------------------------------------------- /spp_registry_base/views/groups_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /spp_registry_base/views/individuals_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /spp_registry_base/views/main_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | -------------------------------------------------------------------------------- /spp_registry_data_source/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_registry_data_source/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import data_source 2 | from . import data_source_key_value_pair 3 | -------------------------------------------------------------------------------- /spp_registry_data_source/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_registry_data_source/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_registry_data_source/static/description/icon.png -------------------------------------------------------------------------------- /spp_registry_data_source/static/src/img/icons/contacts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_registry_data_source/static/src/img/icons/contacts.png -------------------------------------------------------------------------------- /spp_registry_data_source/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_data_source 2 | -------------------------------------------------------------------------------- /spp_registry_group_hierarchy/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_registry_group_hierarchy/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import group_kind 2 | from . import group_membership 3 | -------------------------------------------------------------------------------- /spp_registry_group_hierarchy/models/group_kind.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class SPPGroupKind(models.Model): 5 | _inherit = "g2p.group.kind" 6 | 7 | allow_all_member_type = fields.Boolean("Allow group and individual members", default=False) 8 | -------------------------------------------------------------------------------- /spp_registry_group_hierarchy/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_registry_group_hierarchy/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_group_membership 2 | -------------------------------------------------------------------------------- /spp_scan_id_document/__init__.py: -------------------------------------------------------------------------------- 1 | from . import model 2 | -------------------------------------------------------------------------------- /spp_scan_id_document/model/__init__.py: -------------------------------------------------------------------------------- 1 | from . import registrant 2 | -------------------------------------------------------------------------------- /spp_scan_id_document/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_scan_id_document/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_scan_id_document/static/description/icon.png -------------------------------------------------------------------------------- /spp_scan_id_document/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_registrant 2 | -------------------------------------------------------------------------------- /spp_service_point_device/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /spp_service_point_device/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import spp_service_point 2 | from . import spp_service_point_device 3 | -------------------------------------------------------------------------------- /spp_service_point_device/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_service_point_device/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | access_spp_service_point_device_all,spp.service.point.device.all,model_spp_service_point_device,,1,1,1,1 3 | -------------------------------------------------------------------------------- /spp_service_point_device/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_spp_service_point_device 2 | from . import test_spp_service_point 3 | -------------------------------------------------------------------------------- /spp_service_points/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | -------------------------------------------------------------------------------- /spp_service_points/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import registrant 4 | from . import res_user 5 | -------------------------------------------------------------------------------- /spp_service_points/models/res_user.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class Users(models.Model): 5 | _inherit = "res.users" 6 | 7 | service_point_ids = fields.Many2many(related="partner_id.ind_service_points_ids", string="Service Points") 8 | -------------------------------------------------------------------------------- /spp_service_points/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_service_points/security/security_group.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Service Point User 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /spp_service_points/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_service_points/static/description/icon.png -------------------------------------------------------------------------------- /spp_service_points/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_service_point 2 | -------------------------------------------------------------------------------- /spp_starter/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | from . import wizards 3 | -------------------------------------------------------------------------------- /spp_starter/data/ir_config_parameter_data.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | spp_starter.show_spp_starter 6 | True 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /spp_starter/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import ir_ui_menu 2 | -------------------------------------------------------------------------------- /spp_starter/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_starter/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | access_spp_starter_all,spp.stater.all,model_spp_starter,,1,0,0,0 3 | access_spp_starter_group_system,spp.starter.group.system,model_spp_starter,base.group_system,1,1,1,1 4 | -------------------------------------------------------------------------------- /spp_starter/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_ir_ui_menu 2 | from . import test_spp_starter 3 | -------------------------------------------------------------------------------- /spp_starter/wizards/__init__.py: -------------------------------------------------------------------------------- 1 | from . import spp_starter 2 | -------------------------------------------------------------------------------- /spp_user_roles/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import models 4 | -------------------------------------------------------------------------------- /spp_user_roles/data/ir_cron.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | Update User Roles 6 | False 7 | 8 | 9 | -------------------------------------------------------------------------------- /spp_user_roles/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Part of OpenSPP. See LICENSE file for full copyright and licensing details. 2 | 3 | from . import role 4 | from . import user 5 | from . import area 6 | from . import res_partner 7 | -------------------------------------------------------------------------------- /spp_user_roles/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /spp_user_roles/security/security.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Local Registrar 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /spp_user_roles/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_user_roles/static/description/icon.png -------------------------------------------------------------------------------- /spp_user_roles/static/src/img/icons/contacts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/spp_user_roles/static/src/img/icons/contacts.png -------------------------------------------------------------------------------- /spp_user_roles/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from . import test_res_partner 2 | from . import test_user 3 | -------------------------------------------------------------------------------- /test-requirements.txt: -------------------------------------------------------------------------------- 1 | odoo-test-helper 2 | -------------------------------------------------------------------------------- /theme_openspp_muk/README.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/theme_openspp_muk/README.rst -------------------------------------------------------------------------------- /theme_openspp_muk/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /theme_openspp_muk/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import res_config_settings 2 | -------------------------------------------------------------------------------- /theme_openspp_muk/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["whool"] 3 | build-backend = "whool.buildapi" 4 | -------------------------------------------------------------------------------- /theme_openspp_muk/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/theme_openspp_muk/static/description/icon.png -------------------------------------------------------------------------------- /theme_openspp_muk/static/description/icon_registry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSPP/openspp-modules/9783d4150a596167e276f941b23db0abfb41fd5f/theme_openspp_muk/static/description/icon_registry.png -------------------------------------------------------------------------------- /theme_openspp_muk/static/src/scss/colors.scss: -------------------------------------------------------------------------------- 1 | // Colors 2 | 3 | $mk_color_appsmenu_text: #f8f9fa; 4 | $mk_color_appbar_text: #dee2e6; 5 | $mk_color_appbar_active: #5d8da8; 6 | $mk_color_appbar_background: #3264c8; 7 | 8 | // Override 9 | 10 | $mk-appsmenu-color: $mk_color_appsmenu_text; 11 | $mk-appbar-color: $mk_color_appbar_text; 12 | $mk-appbar-active: $mk_color_appbar_active; 13 | $mk-appbar-background: $mk_color_appbar_background; 14 | -------------------------------------------------------------------------------- /theme_openspp_muk/static/src/scss/navbar.scss: -------------------------------------------------------------------------------- 1 | .o_main_navbar { 2 | border-bottom: none !important; 3 | background-color: #3264c8 !important; 4 | } 5 | 6 | .o_main_navbar > .o_menu_sections > .dropdown-item, 7 | .o_main_navbar > .o_menu_sections > .o-dropdown > .dropdown-toggle { 8 | background-color: #3264c8 !important; 9 | } 10 | -------------------------------------------------------------------------------- /theme_openspp_muk/views/main_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | --------------------------------------------------------------------------------