diff --git a/README.md b/README.md index ad42f599..6f2233ce 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -[](https://github.com/openg2p/openg2p-program/actions/workflows/pre-commit.yml?query=branch%3A17.0-1.2) -[](https://github.com/openg2p/openg2p-program/actions/workflows/test.yml?query=branch%3A17.0-1.2) -[](https://codecov.io/gh/openg2p/openg2p-program) +[](https://github.com/openg2p/openg2p-program/actions/workflows/pre-commit.yml?query=branch%3A17.0-develop) +[](https://github.com/openg2p/openg2p-program/actions/workflows/test.yml?query=branch%3A17.0-develop) +[](https://codecov.io/gh/openg2p/openg2p-program) @@ -21,45 +21,45 @@ Available addons ---------------- addon | version | maintainers | summary --- | --- | --- | --- -[g2p_entitlement_differential](g2p_entitlement_differential/) | 17.0.1.2.0 | | OpenG2P Entitlement: Differential -[g2p_entitlement_in_kind](g2p_entitlement_in_kind/) | 17.0.1.2.0 | | OpenG2P Entitlement: In-Kind -[g2p_entitlement_voucher](g2p_entitlement_voucher/) | 17.0.1.2.0 | | OpenG2P Entitlement: Voucher -[g2p_formio](g2p_formio/) | 17.0.1.2.0 | | Form builders allow you to create, manage, and use dynamic forms with ease. -[g2p_mis_importer](g2p_mis_importer/) | 17.0.1.2.0 | | G2P MIS Importer -[g2p_notifications_base](g2p_notifications_base/) | 17.0.1.2.0 | | G2P Notifications: Base -[g2p_notifications_fast2sms](g2p_notifications_fast2sms/) | 17.0.1.2.0 | | G2P Notifications: Fast2SMS Service Provider -[g2p_notifications_voucher](g2p_notifications_voucher/) | 17.0.1.2.0 | | G2P Notifications: Voucher -[g2p_notifications_wiserv](g2p_notifications_wiserv/) | 17.0.1.2.0 | | G2P Notifications: Wiserv SMS Service Provider -[g2p_odk_importer_program](g2p_odk_importer_program/) | 17.0.1.2.0 | | Import records from ODK and add then into Program -[g2p_openid_vci_programs](g2p_openid_vci_programs/) | 17.0.1.2.0 | | G2P OpenID VCI: Program Beneficiaries -[g2p_payment_cash](g2p_payment_cash/) | 17.0.1.2.0 | | OpenG2P Program Payment: Cash -[g2p_payment_files](g2p_payment_files/) | 17.0.1.2.0 | | OpenG2P Program Payments: In Files -[g2p_payment_g2p_connect](g2p_payment_g2p_connect/) | 17.0.1.2.0 | | OpenG2P Program Payment: G2P Connect Payment Manager -[g2p_payment_interop_layer](g2p_payment_interop_layer/) | 17.0.1.2.0 | | OpenG2P Program Payment (Payment Interoperability Layer) -[g2p_payment_phee](g2p_payment_phee/) | 17.0.1.2.0 | | OpenG2P Program Payment (Payment Hub EE) -[g2p_payment_simple_mpesa](g2p_payment_simple_mpesa/) | 17.0.1.2.0 | | OpenG2P Program Payment: Simple Mpesa Payment Manager -[g2p_program_approval](g2p_program_approval/) | 17.0.1.2.0 | | OpenG2P Program: Approval -[g2p_program_assessment](g2p_program_assessment/) | 17.0.1.2.0 | | OpenG2P Program: Assessment -[g2p_program_autoenrol](g2p_program_autoenrol/) | 17.0.1.2.0 | | OpenG2P Programs: Autoenrol -[g2p_program_cycleless](g2p_program_cycleless/) | 17.0.1.2.0 | | OpenG2P Programs: Cycleless -[g2p_program_documents](g2p_program_documents/) | 17.0.1.2.0 | | OpenG2P Program: Documents -[g2p_program_registrant_info](g2p_program_registrant_info/) | 17.0.1.2.0 | | G2P Program: Registrant Info -[g2p_program_reimbursement](g2p_program_reimbursement/) | 17.0.1.2.0 | | OpenG2P Programs: Reimbursement -[g2p_programs](g2p_programs/) | 17.0.1.2.0 | | OpenG2P Programs -[g2p_programs_priority_list](g2p_programs_priority_list/) | 17.0.1.2.0 | | OpenG2P Programs Priority List -[g2p_proxy_means_test](g2p_proxy_means_test/) | 17.0.1.2.0 | | G2P: Proxy Means Test +[g2p_entitlement_differential](g2p_entitlement_differential/) | 17.0.0.0.0 | | OpenG2P Entitlement: Differential +[g2p_entitlement_in_kind](g2p_entitlement_in_kind/) | 17.0.0.0.0 | | OpenG2P Entitlement: In-Kind +[g2p_entitlement_voucher](g2p_entitlement_voucher/) | 17.0.0.0.0 | | OpenG2P Entitlement: Voucher +[g2p_formio](g2p_formio/) | 17.0.0.0.0 | | Form builders allow you to create, manage, and use dynamic forms with ease. +[g2p_mis_importer](g2p_mis_importer/) | 17.0.0.0.0 | | G2P MIS Importer +[g2p_notifications_base](g2p_notifications_base/) | 17.0.0.0.0 | | G2P Notifications: Base +[g2p_notifications_fast2sms](g2p_notifications_fast2sms/) | 17.0.0.0.0 | | G2P Notifications: Fast2SMS Service Provider +[g2p_notifications_voucher](g2p_notifications_voucher/) | 17.0.0.0.0 | | G2P Notifications: Voucher +[g2p_notifications_wiserv](g2p_notifications_wiserv/) | 17.0.0.0.0 | | G2P Notifications: Wiserv SMS Service Provider +[g2p_odk_importer_program](g2p_odk_importer_program/) | 17.0.0.0.0 | | Import records from ODK and add then into Program +[g2p_openid_vci_programs](g2p_openid_vci_programs/) | 17.0.0.0.0 | | G2P OpenID VCI: Program Beneficiaries +[g2p_payment_cash](g2p_payment_cash/) | 17.0.0.0.0 | | OpenG2P Program Payment: Cash +[g2p_payment_files](g2p_payment_files/) | 17.0.0.0.0 | | OpenG2P Program Payments: In Files +[g2p_payment_g2p_connect](g2p_payment_g2p_connect/) | 17.0.0.0.0 | | OpenG2P Program Payment: G2P Connect Payment Manager +[g2p_payment_interop_layer](g2p_payment_interop_layer/) | 17.0.0.0.0 | | OpenG2P Program Payment (Payment Interoperability Layer) +[g2p_payment_phee](g2p_payment_phee/) | 17.0.0.0.0 | | OpenG2P Program Payment (Payment Hub EE) +[g2p_payment_simple_mpesa](g2p_payment_simple_mpesa/) | 17.0.0.0.0 | | OpenG2P Program Payment: Simple Mpesa Payment Manager +[g2p_program_approval](g2p_program_approval/) | 17.0.0.0.0 | | OpenG2P Program: Approval +[g2p_program_assessment](g2p_program_assessment/) | 17.0.0.0.0 | | OpenG2P Program: Assessment +[g2p_program_autoenrol](g2p_program_autoenrol/) | 17.0.0.0.0 | | OpenG2P Programs: Autoenrol +[g2p_program_cycleless](g2p_program_cycleless/) | 17.0.0.0.0 | | OpenG2P Programs: Cycleless +[g2p_program_documents](g2p_program_documents/) | 17.0.0.0.0 | | OpenG2P Program: Documents +[g2p_program_registrant_info](g2p_program_registrant_info/) | 17.0.0.0.0 | | G2P Program: Registrant Info +[g2p_program_reimbursement](g2p_program_reimbursement/) | 17.0.0.0.0 | | OpenG2P Programs: Reimbursement +[g2p_programs](g2p_programs/) | 17.0.0.0.0 | | OpenG2P Programs +[g2p_programs_priority_list](g2p_programs_priority_list/) | 17.0.0.0.0 | | OpenG2P Programs Priority List +[g2p_proxy_means_test](g2p_proxy_means_test/) | 17.0.0.0.0 | | G2P: Proxy Means Test [g2p_reimbursement_portal](g2p_reimbursement_portal/) | 17.0.0.0.0 | | G2P Reimbursement Portal -[g2p_social_registry_importer](g2p_social_registry_importer/) | 17.0.1.2.0 | | Import records from Social Registry -[g2p_theme](g2p_theme/) | 17.0.1.2.0 | | OpenG2P Theme +[g2p_social_registry_importer](g2p_social_registry_importer/) | 17.0.0.0.0 | | Import records from Social Registry +[g2p_theme](g2p_theme/) | 17.0.0.0.0 | | OpenG2P Theme Unported addons --------------- addon | version | maintainers | summary --- | --- | --- | --- -[g2p_notifications_rest_api](g2p_notifications_rest_api/) | 17.0.1.2.0 (unported) | | G2P Notifications: REST API -[g2p_program_registrant_info_rest_api](g2p_program_registrant_info_rest_api/) | 17.0.1.2.0 (unported) | | G2P Program : Program Registrant Info Rest API -[g2p_programs_rest_api](g2p_programs_rest_api/) | 17.0.1.2.0 (unported) | | G2P Programs: REST API +[g2p_notifications_rest_api](g2p_notifications_rest_api/) | 17.0.0.0.0 (unported) | | G2P Notifications: REST API +[g2p_program_registrant_info_rest_api](g2p_program_registrant_info_rest_api/) | 17.0.0.0.0 (unported) | | G2P Program : Program Registrant Info Rest API +[g2p_programs_rest_api](g2p_programs_rest_api/) | 17.0.0.0.0 (unported) | | G2P Programs: REST API [//]: # (end addons) diff --git a/g2p_entitlement_differential/__manifest__.py b/g2p_entitlement_differential/__manifest__.py index 71cbad2c..40d9e86e 100644 --- a/g2p_entitlement_differential/__manifest__.py +++ b/g2p_entitlement_differential/__manifest__.py @@ -2,7 +2,7 @@ "name": "OpenG2P Entitlement: Differential", "category": "G2P", # Part of OpenG2P. See LICENSE file for full copyright and licensing details. - "version": "17.0.1.2.0", + "version": "17.0.0.0.0", "sequence": 1, "author": "OpenG2P", "website": "https://openg2p.org", diff --git a/g2p_entitlement_in_kind/__manifest__.py b/g2p_entitlement_in_kind/__manifest__.py index b57db4c1..765fdd5d 100644 --- a/g2p_entitlement_in_kind/__manifest__.py +++ b/g2p_entitlement_in_kind/__manifest__.py @@ -2,7 +2,7 @@ { "name": "OpenG2P Entitlement: In-Kind", "category": "G2P", - "version": "17.0.1.2.0", + "version": "17.0.0.0.0", "sequence": 1, "author": "OpenG2P", "website": "https://openg2p.org", diff --git a/g2p_entitlement_voucher/__manifest__.py b/g2p_entitlement_voucher/__manifest__.py index 1b51c583..6aabc20f 100644 --- a/g2p_entitlement_voucher/__manifest__.py +++ b/g2p_entitlement_voucher/__manifest__.py @@ -2,7 +2,7 @@ { "name": "OpenG2P Entitlement: Voucher", "category": "G2P", - "version": "17.0.1.2.0", + "version": "17.0.0.0.0", "sequence": 1, "author": "OpenG2P", "website": "https://openg2p.org", diff --git a/g2p_formio/__manifest__.py b/g2p_formio/__manifest__.py index 430f2288..ca8448ce 100644 --- a/g2p_formio/__manifest__.py +++ b/g2p_formio/__manifest__.py @@ -2,7 +2,7 @@ { "name": "OpenG2P Formio", "category": "G2P", - "version": "17.0.1.2.0", + "version": "17.0.0.0.0", "sequence": 1, "summary": "Form builders allow you to create, manage, and use dynamic forms with ease.", "author": "OpenG2P", diff --git a/g2p_mis_importer/__init__.py b/g2p_mis_importer/__init__.py index 8d5bb84e..2c0aa80c 100644 --- a/g2p_mis_importer/__init__.py +++ b/g2p_mis_importer/__init__.py @@ -1,2 +1,2 @@ -# Part of Newlogic G2P. See LICENSE file for full copyright and licensing details. +# Part of OpenG2P. See LICENSE file for full copyright and licensing details. from . import models diff --git a/g2p_mis_importer/__manifest__.py b/g2p_mis_importer/__manifest__.py index bccd9195..a90774e1 100644 --- a/g2p_mis_importer/__manifest__.py +++ b/g2p_mis_importer/__manifest__.py @@ -3,7 +3,7 @@ { "name": "G2P MIS Importer", "category": "G2P", - "version": "17.0.1.2.0", + "version": "17.0.0.0.0", "author": "OpenG2P", "website": "https://openg2p.org", "license": "LGPL-3", diff --git a/g2p_mis_importer/models/__init__.py b/g2p_mis_importer/models/__init__.py index 7b70d785..1d699d47 100644 --- a/g2p_mis_importer/models/__init__.py +++ b/g2p_mis_importer/models/__init__.py @@ -1,3 +1,2 @@ -# Part of Newlogic G2P. See LICENSE file for full copyright and licensing details. - +# Part of OpenG2P. See LICENSE file for full copyright and licensing details. from . import mis_config diff --git a/g2p_notifications_base/__manifest__.py b/g2p_notifications_base/__manifest__.py index 8a40ee4e..1e8bb7e4 100644 --- a/g2p_notifications_base/__manifest__.py +++ b/g2p_notifications_base/__manifest__.py @@ -1,7 +1,7 @@ { "name": "G2P Notifications: Base", "category": "G2P", - "version": "17.0.1.2.0", + "version": "17.0.0.0.0", "sequence": 1, "author": "OpenG2P", "website": "https://openg2p.org", diff --git a/g2p_notifications_fast2sms/__manifest__.py b/g2p_notifications_fast2sms/__manifest__.py index d9afb8f6..5d6a1cc8 100644 --- a/g2p_notifications_fast2sms/__manifest__.py +++ b/g2p_notifications_fast2sms/__manifest__.py @@ -1,7 +1,7 @@ { "name": "G2P Notifications: Fast2SMS Service Provider", "category": "G2P", - "version": "17.0.1.2.0", + "version": "17.0.0.0.0", "sequence": 1, "author": "OpenG2P", "website": "https://openg2p.org", diff --git a/g2p_notifications_rest_api/__manifest__.py b/g2p_notifications_rest_api/__manifest__.py index 672fb935..4aa47944 100644 --- a/g2p_notifications_rest_api/__manifest__.py +++ b/g2p_notifications_rest_api/__manifest__.py @@ -1,7 +1,7 @@ { "name": "G2P Notifications: REST API", "category": "G2P", - "version": "17.0.1.2.0", + "version": "17.0.0.0.0", "sequence": 1, "author": "OpenG2P", "website": "https://openg2p.org", diff --git a/g2p_notifications_voucher/__manifest__.py b/g2p_notifications_voucher/__manifest__.py index 82e10f6f..60a6885d 100644 --- a/g2p_notifications_voucher/__manifest__.py +++ b/g2p_notifications_voucher/__manifest__.py @@ -1,7 +1,7 @@ { "name": "G2P Notifications: Voucher", "category": "G2P", - "version": "17.0.1.2.0", + "version": "17.0.0.0.0", "sequence": 1, "author": "OpenG2P", "website": "https://openg2p.org", diff --git a/g2p_notifications_wiserv/__manifest__.py b/g2p_notifications_wiserv/__manifest__.py index ebee6cdc..020f098e 100644 --- a/g2p_notifications_wiserv/__manifest__.py +++ b/g2p_notifications_wiserv/__manifest__.py @@ -1,7 +1,7 @@ { "name": "G2P Notifications: Wiserv SMS Service Provider", "category": "G2P", - "version": "17.0.1.2.0", + "version": "17.0.0.0.0", "sequence": 1, "author": "OpenG2P", "website": "https://openg2p.org", diff --git a/g2p_odk_importer_program/__init__.py b/g2p_odk_importer_program/__init__.py index 1a5b30f8..2c0aa80c 100644 --- a/g2p_odk_importer_program/__init__.py +++ b/g2p_odk_importer_program/__init__.py @@ -1,3 +1,2 @@ -# Part of Newlogic G2P. See LICENSE file for full copyright and licensing details. - +# Part of OpenG2P. See LICENSE file for full copyright and licensing details. from . import models diff --git a/g2p_odk_importer_program/__manifest__.py b/g2p_odk_importer_program/__manifest__.py index f734a310..ceb894ec 100644 --- a/g2p_odk_importer_program/__manifest__.py +++ b/g2p_odk_importer_program/__manifest__.py @@ -4,7 +4,7 @@ "name": "G2P ODK Importer: Program", "category": "Connector", "summary": "Import records from ODK and add then into Program", - "version": "17.0.1.2.0", + "version": "17.0.0.0.0", "sequence": 3, "author": "OpenG2P", "website": "https://openg2p.org", diff --git a/g2p_odk_importer_program/i18n/g2p_odk_importer.pot b/g2p_odk_importer_program/i18n/g2p_odk_importer.pot deleted file mode 100644 index 32e9d4f3..00000000 --- a/g2p_odk_importer_program/i18n/g2p_odk_importer.pot +++ /dev/null @@ -1,261 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * g2p_odk_importer_regisry -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 17.0\n" -"Report-Msgid-Bugs-To: \n" -"Last-Translator: \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: g2p_odk_importer_regisry -#: model_terms:ir.ui.view,arch_db:g2p_odk_importer_regisry.view_odk_config_form -msgid "Restart" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model_terms:ir.ui.view,arch_db:g2p_odk_importer_regisry.view_odk_config_form -msgid "Start" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model_terms:ir.ui.view,arch_db:g2p_odk_importer_regisry.view_odk_config_form -msgid "Stop" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model_terms:ir.ui.view,arch_db:g2p_odk_importer_regisry.view_odk_config_form -#: model_terms:ir.ui.view,arch_db:g2p_odk_importer_regisry.view_odk_config_tree -msgid "Action odk conf action" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.model.fields,field_description:g2p_odk_importer_regisry.field_odk_config__base_url -msgid "Base URL" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.model.fields.selection,name:g2p_odk_importer_regisry.selection__odk_config__job_status__completed -msgid "Completed" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.ui.menu,name:g2p_odk_importer_regisry.odk_menu_config -msgid "Configuration" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.model.fields,field_description:g2p_odk_importer_regisry.field_odk_config__create_uid -msgid "Created by" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.model.fields,field_description:g2p_odk_importer_regisry.field_odk_config__create_date -msgid "Created on" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.model.fields,field_description:g2p_odk_importer_regisry.field_odk_config__cron_id -msgid "Cron Job" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.model.fields,field_description:g2p_odk_importer_regisry.field_odk_config__display_name -msgid "Display Name" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.model.fields.selection,name:g2p_odk_importer_regisry.selection__odk_config__job_status__draft -msgid "Draft" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.model.fields,field_description:g2p_odk_importer_regisry.field_odk_config__end_datetime -msgid "End Time" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.model.fields,field_description:g2p_odk_importer_regisry.field_odk_config__form_id -msgid "Form ID" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.model.fields.selection,name:g2p_odk_importer_regisry.selection__odk_config__target_registry__group -msgid "Group" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.model.fields,field_description:g2p_odk_importer_regisry.field_odk_config__id -msgid "ID" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model_terms:ir.ui.view,arch_db:g2p_odk_importer_regisry.view_odk_config_form -msgid "Import Records" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model_terms:ir.ui.view,arch_db:g2p_odk_importer_regisry.view_odk_config_form -msgid "Import records" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.model.fields.selection,name:g2p_odk_importer_regisry.selection__odk_config__target_registry__individual -msgid "Individual" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.model.fields,field_description:g2p_odk_importer_regisry.field_odk_config__interval_hours -msgid "Interval in hours" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.model.fields,field_description:g2p_odk_importer_regisry.field_odk_config__json_formatter -msgid "JSON Formatter" -msgstr "" - -#. module: g2p_odk_importer_regisry -#. odoo-python -#: code:addons/g2p_odk_importer_regisry/models/odk_config.py:0 -#, python-format -msgid "Json Format is not valid pyjq expression." -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.model.fields,field_description:g2p_odk_importer_regisry.field_odk_config__write_uid -msgid "Last Updated by" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.model.fields,field_description:g2p_odk_importer_regisry.field_odk_config__write_date -msgid "Last Updated on" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.model.fields,field_description:g2p_odk_importer_regisry.field_odk_config__last_sync_time -msgid "Last synced on" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.model.fields,field_description:g2p_odk_importer_regisry.field_odk_config__name -msgid "Name" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.ui.menu,name:g2p_odk_importer_regisry.odk_menu_root -msgid "ODK" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model_terms:ir.ui.view,arch_db:g2p_odk_importer_regisry.view_odk_config_form -msgid "ODK Central" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.actions.server,name:g2p_odk_importer_regisry.action_odk_conf_action -msgid "ODK Config Start" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.actions.act_window,name:g2p_odk_importer_regisry.action_odk_config -#: model:ir.model,name:g2p_odk_importer_regisry.model_odk_config -#: model_terms:ir.ui.view,arch_db:g2p_odk_importer_regisry.view_odk_config_form -msgid "ODK Configuration" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.model.fields,field_description:g2p_odk_importer_regisry.field_odk_config__odk_program_id -msgid "ODK Program ID" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.model.fields,field_description:g2p_odk_importer_regisry.field_odk_config__password -msgid "Password" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model_terms:ir.ui.view,arch_db:g2p_odk_importer_regisry.view_odk_config_form -msgid "Program details" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.model.fields,field_description:g2p_odk_importer_regisry.field_odk_config__project -msgid "Project" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model_terms:ir.ui.view,arch_db:g2p_odk_importer_regisry.view_odk_config_form -msgid "Project details" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model_terms:ir.ui.view,arch_db:g2p_odk_importer_regisry.view_odk_config_tree -msgid "Restart" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.model.fields.selection,name:g2p_odk_importer_regisry.selection__odk_config__job_status__running -msgid "Running" -msgstr "" - -#. module: g2p_odk_importer_regisry -#. odoo-python -#: code:addons/g2p_odk_importer_regisry/models/odk_client.py:0 -#, python-format -msgid "Session not created" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model_terms:ir.ui.view,arch_db:g2p_odk_importer_regisry.view_odk_config_tree -msgid "Start" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.model.fields,field_description:g2p_odk_importer_regisry.field_odk_config__start_datetime -msgid "Start Time" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.model.fields.selection,name:g2p_odk_importer_regisry.selection__odk_config__job_status__started -msgid "Started" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.model.fields,field_description:g2p_odk_importer_regisry.field_odk_config__job_status -msgid "Status" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model_terms:ir.ui.view,arch_db:g2p_odk_importer_regisry.view_odk_config_tree -msgid "Stop" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.model.fields,field_description:g2p_odk_importer_regisry.field_odk_config__target_registry -msgid "Target Registry" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model_terms:ir.ui.view,arch_db:g2p_odk_importer_regisry.view_odk_config_form -msgid "Target settings" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model_terms:ir.ui.view,arch_db:g2p_odk_importer_regisry.view_odk_config_form -msgid "Test Connection" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model_terms:ir.ui.view,arch_db:g2p_odk_importer_regisry.view_odk_config_form -msgid "Time interval" -msgstr "" - -#. module: g2p_odk_importer_regisry -#: model:ir.model.fields,field_description:g2p_odk_importer_regisry.field_odk_config__username -msgid "Username" -msgstr "" diff --git a/g2p_odk_importer_program/i18n/g2p_odk_importer_program.pot b/g2p_odk_importer_program/i18n/g2p_odk_importer_program.pot deleted file mode 100644 index 62c296de..00000000 --- a/g2p_odk_importer_program/i18n/g2p_odk_importer_program.pot +++ /dev/null @@ -1,24 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * g2p_odk_importer_program -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 17.0\n" -"Report-Msgid-Bugs-To: \n" -"Last-Translator: \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: g2p_odk_importer_program -#: model:ir.model,name:g2p_odk_importer_program.model_odk_import -msgid "ODK Import" -msgstr "" - -#. module: g2p_odk_importer_program -#: model:ir.model.fields,field_description:g2p_odk_importer_program.field_odk_import__target_program -msgid "Target Program" -msgstr "" diff --git a/g2p_odk_importer_program/models/__init__.py b/g2p_odk_importer_program/models/__init__.py index e333f328..4452df31 100644 --- a/g2p_odk_importer_program/models/__init__.py +++ b/g2p_odk_importer_program/models/__init__.py @@ -1,4 +1,2 @@ -# Part of Newlogic G2P. See LICENSE file for full copyright and licensing details. - -from . import odk_client +# Part of OpenG2P. See LICENSE file for full copyright and licensing details. from . import odk_import diff --git a/g2p_odk_importer_program/models/odk_client.py b/g2p_odk_importer_program/models/odk_client.py deleted file mode 100644 index bfa9d916..00000000 --- a/g2p_odk_importer_program/models/odk_client.py +++ /dev/null @@ -1,46 +0,0 @@ -from datetime import date - -import odoo.addons.g2p_odk_importer.models.odk_client as base_odk_client - - -def patched_addl_data(self, mapped_json): - odk_import = self.env["odk.import"].browse(self.id) - - program_id = odk_import.target_program.id - - if program_id: - mapped_json["program_membership_ids"] = [ - ( - 0, - 0, - { - "program_id": program_id, - "state": "draft", - "enrollment_date": date.today(), - }, - ) - ] - - if "program_registrant_info_ids" in mapped_json: - prog_reg_info = mapped_json.get("program_registrant_info_ids", None) - - if not program_id: - del mapped_json["program_registrant_info_ids"] - return mapped_json - - mapped_json["program_registrant_info_ids"] = [ - ( - 0, - 0, - { - "program_id": program_id, - "state": "active", - "program_registrant_info": prog_reg_info if prog_reg_info else None, - }, - ) - ] - - return mapped_json - - -base_odk_client.ODKClient.get_addl_data = patched_addl_data diff --git a/g2p_odk_importer_program/models/odk_import.py b/g2p_odk_importer_program/models/odk_import.py index de02ec5c..09080df6 100644 --- a/g2p_odk_importer_program/models/odk_import.py +++ b/g2p_odk_importer_program/models/odk_import.py @@ -1,3 +1,5 @@ +from datetime import date + from odoo import api, fields, models @@ -10,3 +12,37 @@ class OdkImport(models.Model): def onchange_target_registry(self): for rec in self: rec.target_program = None + + def process_records_handle_addl_data(self, mapped_json): + if self.target_program: + mapped_json["program_membership_ids"] = [ + ( + 0, + 0, + { + "program_id": self.target_program.id, + "state": "draft", + "enrollment_date": date.today(), + }, + ) + ] + + if "program_registrant_info_ids" in mapped_json: + prog_reg_info = mapped_json.get("program_registrant_info_ids", None) + + if not self.target_program: + mapped_json.pop("program_registrant_info_ids") + return mapped_json + + mapped_json["program_registrant_info_ids"] = [ + ( + 0, + 0, + { + "program_id": self.target_program.id, + "state": "active", + "program_registrant_info": prog_reg_info if prog_reg_info else None, + }, + ) + ] + return mapped_json diff --git a/g2p_openid_vci_programs/__manifest__.py b/g2p_openid_vci_programs/__manifest__.py index e9ccfb6f..97910cfe 100644 --- a/g2p_openid_vci_programs/__manifest__.py +++ b/g2p_openid_vci_programs/__manifest__.py @@ -2,7 +2,7 @@ { "name": "G2P OpenID VCI: Program Beneficiaries", "category": "G2P", - "version": "17.0.1.2.0", + "version": "17.0.0.0.0", "sequence": 1, "author": "OpenG2P", "website": "https://openg2p.org", diff --git a/g2p_payment_cash/__manifest__.py b/g2p_payment_cash/__manifest__.py index fc84bf2e..69026c6a 100644 --- a/g2p_payment_cash/__manifest__.py +++ b/g2p_payment_cash/__manifest__.py @@ -2,7 +2,7 @@ { "name": "OpenG2P Program Payment: Cash", "category": "G2P", - "version": "17.0.1.2.0", + "version": "17.0.0.0.0", "sequence": 1, "author": "OpenG2P", "website": "https://openg2p.org", diff --git a/g2p_payment_files/__manifest__.py b/g2p_payment_files/__manifest__.py index 6c5b3f98..862c7ae0 100644 --- a/g2p_payment_files/__manifest__.py +++ b/g2p_payment_files/__manifest__.py @@ -2,7 +2,7 @@ { "name": "OpenG2P Program Payments: In Files", "category": "G2P", - "version": "17.0.1.2.0", + "version": "17.0.0.0.0", "sequence": 1, "author": "OpenG2P", "website": "https://openg2p.org", diff --git a/g2p_payment_files/models/payment_file_config.py b/g2p_payment_files/models/payment_file_config.py index 7b708b79..82f59b3d 100644 --- a/g2p_payment_files/models/payment_file_config.py +++ b/g2p_payment_files/models/payment_file_config.py @@ -1,3 +1,6 @@ +import base64 +import uuid + import pdfkit from odoo import fields, models @@ -18,6 +21,11 @@ class G2PPaymentFileConfig(models.Model): default="pdf", ) + tags_ids = fields.Many2many( + "g2p.document.tag", + default=lambda self: self.env["g2p.document.tag"].get_or_create_tag_from_name("System Generated").ids, + ) + # body_html = fields.Html( # compute="_compute_html_preview", # store=False, @@ -36,7 +44,14 @@ def render_and_store(self, res_model, res_ids, document_store): document_files = [] for res_id in res_ids: document_files.append( - document_store.add_file(self.render_template(res_model, res_id), extension="." + self.type) + self.env["storage.file"].create( + { + "name": f"{str(uuid.uuid4())}.{self.type}", + "backend_id": document_store.id, + "data": base64.b64encode(self.render_template(res_model, res_id)), + "tags_ids": [(4, tag.id) for tag in self.tags_ids], + } + ) ) return document_files diff --git a/g2p_payment_files/models/payment_manager.py b/g2p_payment_files/models/payment_manager.py index 565de31c..bf164ed1 100644 --- a/g2p_payment_files/models/payment_manager.py +++ b/g2p_payment_files/models/payment_manager.py @@ -44,7 +44,7 @@ def _prepare_payments(self, cycle, entitlements): file_document_store = self.file_document_store if not file_document_store: - file_document_store = self.program_id.supporting_documents_store + file_document_store = self.program_id.get_documents_store() if self.create_batch: if batches: # Render all qrcodes and store for all payment batches diff --git a/g2p_payment_files/tests/test_payment_file_config.py b/g2p_payment_files/tests/test_payment_file_config.py index 6aefddb6..71bdd171 100644 --- a/g2p_payment_files/tests/test_payment_file_config.py +++ b/g2p_payment_files/tests/test_payment_file_config.py @@ -1,16 +1,13 @@ import base64 -from unittest.mock import MagicMock, patch +from unittest.mock import patch -from odoo.tests.common import TransactionCase +from odoo.addons.component.tests.common import TransactionComponentCase -from odoo.addons.mail.models.mail_template import MailTemplate - -class TestG2PPaymentFileConfig(TransactionCase): +class TestG2PPaymentFileConfig(TransactionComponentCase): def setUp(self): super().setUp() - self.document_store = MagicMock() - self.document_store.add_file.side_effect = self.mock_add_file + self.document_store = self.env["storage.backend"].create({"name": "Test Storage Backend"}) self.payment_file_config = self.env["g2p.payment.file.config"].create( { "name": "Test Payment File Config", @@ -18,42 +15,39 @@ def setUp(self): "body_string": "
Sample Body
", } ) - MailTemplate._render_template = MagicMock(return_value={1: "Rendered HTML
"}) - - def mock_add_file(self, file_content, extension): - return { - "name": "Mocked File" + extension, - "content": base64.b64encode(file_content), - } + @patch("odoo.addons.mail.models.mail_render_mixin.MailRenderMixin._render_template") @patch("pdfkit.from_string") - def test_render_and_store_pdf(self, mock_pdfkit): + def test_render_and_store_pdf(self, mock_pdfkit, mock_render_template): + mock_render_template.return_value = {1: "Rendered HTML
"} mock_pdfkit.return_value = b"PDF Content" document_files = self.payment_file_config.render_and_store( "g2p.entitlement", [1], self.document_store ) self.assertEqual(len(document_files), 1) - self.assertIn(".pdf", document_files[0]["name"]) + self.assertIn(".pdf", document_files[0].name) self.assertIn( "PDF Content", - base64.b64decode(document_files[0]["content"]).decode("utf-8"), + base64.b64decode(document_files[0].data).decode("utf-8"), ) mock_pdfkit.assert_called_once() - def test_render_and_store_csv(self): + @patch("odoo.addons.mail.models.mail_render_mixin.MailRenderMixin._render_template") + def test_render_and_store_csv(self, mock_render_template): + mock_render_template.return_value = {1: "Rendered CSV"} self.payment_file_config.type = "csv" document_files = self.payment_file_config.render_and_store( "g2p.entitlement", [1], self.document_store ) self.assertEqual(len(document_files), 1) - self.assertIn(".csv", document_files[0]["name"]) + self.assertIn(".csv", document_files[0].name) self.assertIn( - "Sample Body", - base64.b64decode(document_files[0]["content"]).decode("utf-8"), + "Rendered CSV", + base64.b64decode(document_files[0].data).decode("utf-8"), ) - @patch("odoo.addons.mail.models.mail_template.MailTemplate._render_template") + @patch("odoo.addons.mail.models.mail_render_mixin.MailRenderMixin._render_template") def test_render_html(self, mock_render_template): - mock_render_template.return_value = {1: "Rendered HTML
"} + mock_render_template.return_value = {1: "Sample Body
"} result = self.payment_file_config.render_html("g2p.entitlement", 1) self.assertEqual(result, "Sample Body
") diff --git a/g2p_payment_files/tests/test_payment_manager.py b/g2p_payment_files/tests/test_payment_manager.py index b31d0969..010e2263 100644 --- a/g2p_payment_files/tests/test_payment_manager.py +++ b/g2p_payment_files/tests/test_payment_manager.py @@ -1,10 +1,11 @@ from datetime import timedelta from odoo import fields -from odoo.tests.common import TransactionCase +from odoo.addons.component.tests.common import TransactionComponentCase -class TestG2PPaymentManager(TransactionCase): + +class TestG2PPaymentManager(TransactionComponentCase): def setUp(self): super().setUp() self.backend = self.env["storage.backend"].create({"name": "Test Backend"}) @@ -66,16 +67,7 @@ def test_payment_manager_creation(self): self.assertIn(self.batch_tag.id, self.files_payment_manager.batch_tag_ids.ids) # TODO : Revisit this code - # @patch("odoo.addons.g2p_program_documents.models.document_store.G2PDocumentStore.add_file") - # def test_prepare_payments_with_batch(self, mock_add_file): - # mock_add_file.return_value = self.env["storage.file"].create( - # { - # "name": "Test", - # "backend_id": self.id, - # "data": base64.b64encode(data), - # "tags_ids": tags_ids, - # } - # ) + # def test_prepare_payments_with_batch(self): # payments, batches = self.files_payment_manager._prepare_payments(self.cycle, self.entitlement) # self.assertEqual(len(payments), 1, "Should create one payment") # self.assertEqual(len(batches), 1, "Should create one batch") diff --git a/g2p_payment_files/views/payment_file_config_view.xml b/g2p_payment_files/views/payment_file_config_view.xml index ff17be1c..13a9c7e2 100644 --- a/g2p_payment_files/views/payment_file_config_view.xml +++ b/g2p_payment_files/views/payment_file_config_view.xml @@ -8,6 +8,7 @@