diff --git a/.github/workflows/ci_assembly.yml b/.github/workflows/ci_assembly.yml index 9ef9fbe6..7637af54 100755 --- a/.github/workflows/ci_assembly.yml +++ b/.github/workflows/ci_assembly.yml @@ -82,7 +82,7 @@ jobs: run: | export DB_NAME_TEST="test_$DB_NAME" - if [ ${GITHUB_REF##*/} = "develop" ]; then export DBBRANCH="main"; else export DBBRANCH="develop"; fi + if [ ${GITHUB_REF##*/} = "main" ]; then export DBBRANCH="main"; else export DBBRANCH="develop"; fi echo "Branch ${GITHUB_REF##*/}, usign ${DBBRANCH} branch for database" git clone --depth=1 --branch=$DBBRANCH https://github.com/openimis/database_postgresql.git ./sql_psql @@ -108,7 +108,7 @@ jobs: run: | export DB_NAME_TEST="test_$DB_NAME" - if [ ${GITHUB_REF##*/} = "develop" ]; then export DBBRANCH="main"; else export DBBRANCH="develop"; fi + if [ ${GITHUB_REF##*/} = "main" ]; then export DBBRANCH="main"; else export DBBRANCH="develop"; fi echo "Branch ${GITHUB_REF##*/}, usign ${DBBRANCH} branch for database" git clone --depth=1 --branch=$DBBRANCH https://github.com/openimis/database_ms_sqlserver.git ./sql_mssql cd sql_mssql/ && bash concatenate_files.sh && cd .. @@ -140,7 +140,7 @@ jobs: python -V export MODULES=$(jq -r '(.modules[].name)' ../openimis.json | xargs) echo $MODULES - python manage.py test --keepdb $MODULES + python manage.py test --timing --debug-mode $MODULES env: SECRET_KEY: secret DEBUG: true @@ -162,7 +162,7 @@ jobs: python -V export MODULES=$(jq -r '(.modules[].name)' ../openimis.json | xargs) echo $MODULES - python manage.py test --debug-mode --timing --keepdb $MODULES + python manage.py test --debug-mode --timing $MODULES env: SECRET_KEY: secret DEBUG: true diff --git a/.vscode/launch.json b/.vscode/launch.json index d9900eb8..17609d9e 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -26,6 +26,56 @@ ], "configurations": [ + + { + "name": "pushpastMonth", + "type": "python", + "request": "launch", + "program": "./manage.py", + "args": [ + "pushadx","2023-03-01","pushLastMonth","--verbose" + ], + "django": true, + "cwd": "${workspaceRoot}/openIMIS", + "env": { + "DB_DEFAULT": "PSQL" + }, + "purpose":["debug-in-terminal"], + "justMyCode": true + }, + + { + "name": "orgunit", + "type": "python", + "request": "launch", + "program": "./manage.py", + "args": [ + "pushmetadata","2010-06-01","orgunit","--verbose" + ], + "django": true, + "cwd": "${workspaceRoot}/openIMIS", + "env": { + "DB_DEFAULT": "PSQL" + }, + "purpose":["debug-in-terminal"], + "justMyCode": true + }, + { + "name": "pushMetadata", + "type": "python", + "request": "launch", + "program": "./manage.py", + "args": [ + "pushadx","2023-06-01","pushMetadata","--verbose" + ], + "django": true, + "cwd": "${workspaceRoot}/openIMIS", + "env": { + "DB_DEFAULT": "PSQL" + }, + "purpose":["debug-in-terminal"], + "justMyCode": true + }, { "name": "gen trad be", "type": "python", @@ -42,6 +92,7 @@ "purpose":["debug-in-terminal"], "justMyCode": true }, + { "name": "migrate", "type": "python", diff --git a/openIMIS/developer_tools/skeletons/openmis-module-test.yml b/openIMIS/developer_tools/skeletons/openmis-module-test.yml index 6e6b63be..3659d70c 100644 --- a/openIMIS/developer_tools/skeletons/openmis-module-test.yml +++ b/openIMIS/developer_tools/skeletons/openmis-module-test.yml @@ -84,7 +84,6 @@ jobs: python -V ls -l python manage.py migrate - python init_test_db.py | grep . | uniq -c python manage.py test --keepdb $MODULE_NAME env: SECRET_KEY: secret diff --git a/openIMIS/openIMIS/settings.py b/openIMIS/openIMIS/settings.py index 7c3cd47c..968cb120 100644 --- a/openIMIS/openIMIS/settings.py +++ b/openIMIS/openIMIS/settings.py @@ -17,8 +17,13 @@ # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) -LOGGING_LEVEL = os.getenv("DJANGO_LOG_LEVEL", "WARNING") -DEFAULT_LOGGING_HANDLER = os.getenv("DJANGO_LOG_HANDLER", "debug-log") + + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = os.environ.get("DEBUG", "False").lower() == "true" + +LOGGING_LEVEL = os.getenv("DJANGO_LOG_LEVEL", "DEBUG" if DEBUG else "WARNING" ) +DEFAULT_LOGGING_HANDLER = os.getenv("DJANGO_LOG_HANDLER", "console") LOGGING = { "version": 1, @@ -123,8 +128,7 @@ def SITE_URL(): "SECRET_KEY", "chv^^7i_v3-04!rzu&qe#+h*a=%h(ib#5w9n$!f2q7%2$qp=zz" ) -# SECURITY WARNING: don't run with debug turned on in production! -DEBUG = os.environ.get("DEBUG", "False").lower() == "true" + # SECURITY WARNING: don't run without row security in production! # Row security is dedicated to filter the data result sets according to users' right # Example: user registered at a Health Facility should only see claims recorded for that Health Facility diff --git a/openimis.json b/openimis.json index 7de318d9..abb3026a 100644 --- a/openimis.json +++ b/openimis.json @@ -1,152 +1,152 @@ { - "modules": [ - { - "name": "core", - "pip": "git+https://github.com/openimis/openimis-be-core_py.git@develop#egg=openimis-be-core" - }, - { - "name": "individual", - "pip": "git+https://github.com/openimis/openimis-be-individual_py.git@develop#egg=openimis-be-individual" - }, - { - "name": "workflow", - "pip": "git+https://github.com/openimis/openimis-be-workflow_py.git@develop#egg=openimis-be-workflow" - }, - { - "name": "tasks_management", - "pip": "git+https://github.com/openimis/openimis-be-tasks_management_py.git@develop#egg=openimis-be-tasks_management" - }, - { - "name": "report", - "pip": "git+https://github.com/openimis/openimis-be-report_py.git@develop#egg=openimis-be-report" - }, - { - "name": "location", - "pip": "git+https://github.com/openimis/openimis-be-location_py.git@develop#egg=openimis-be-location" - }, - { - "name": "medical", - "pip": "git+https://github.com/openimis/openimis-be-medical_py.git@develop#egg=openimis-be-medical" - }, - { - "name": "medical_pricelist", - "pip": "git+https://github.com/openimis/openimis-be-medical_pricelist_py.git@develop#egg=openimis-be-medical_pricelist" - }, - { - "name": "product", - "pip": "git+https://github.com/openimis/openimis-be-product_py.git@develop#egg=openimis-be-product" - }, - { - "name": "insuree", - "pip": "git+https://github.com/openimis/openimis-be-insuree_py.git@develop#egg=openimis-be-insuree" - }, - { - "name": "policy", - "pip": "git+https://github.com/openimis/openimis-be-policy_py.git@develop#egg=openimis-be-policy" - }, - { - "name": "contribution", - "pip": "git+https://github.com/openimis/openimis-be-contribution_py.git@develop#egg=openimis-be-contribution" - }, - { - "name": "payer", - "pip": "git+https://github.com/openimis/openimis-be-payer_py.git@develop#egg=openimis-be-payer" - }, - { - "name": "payment", - "pip": "git+https://github.com/openimis/openimis-be-payment_py.git@develop#egg=openimis-be-payment" - }, - { - "name": "claim", - "pip": "git+https://github.com/openimis/openimis-be-claim_py.git@develop#egg=openimis-be-claim" - }, - { - "name": "claim_batch", - "pip": "git+https://github.com/openimis/openimis-be-claim_batch_py.git@develop#egg=openimis-be-claim_batch" - }, - { - "name": "tools", - "pip": "git+https://github.com/openimis/openimis-be-tools_py.git@develop#egg=openimis-be-tools" - }, - { - "name": "api_fhir_r4", - "pip": "git+https://github.com/openimis/openimis-be-api_fhir_r4_py.git@develop#egg=openimis-be-api_fhir_r4" - }, - { - "name": "calculation", - "pip": "git+https://github.com/openimis/openimis-be-calculation_py.git@develop#egg=openimis-be-calculation" - }, - { - "name": "contribution_plan", - "pip": "git+https://github.com/openimis/openimis-be-contribution_plan_py.git@develop#egg=openimis-be-contribution_plan" - }, - { - "name": "policyholder", - "pip": "git+https://github.com/openimis/openimis-be-policyholder_py.git@develop#egg=openimis-be-policyholder" - }, - { - "name": "contract", - "pip": "git+https://github.com/openimis/openimis-be-contract_py.git@develop#egg=openimis-be-contract" - }, - { - "name": "invoice", - "pip": "git+https://github.com/openimis/openimis-be-invoice_py.git@develop#egg=openimis-be-invoice" - }, - { - "name": "calcrule_contribution_legacy", - "pip": "git+https://github.com/openimis/openimis-be-calcrule_contribution_legacy_py.git@develop#egg=openimis-be-calcrule_contribution_legacy" - }, - { - "name": "calcrule_third_party_payment", - "pip": "git+https://github.com/openimis/openimis-be-calcrule-third_party_payment_py.git@develop#egg=openimis-be-calcrule_third_party_payment" - }, - { - "name": "calcrule_capitation_payment", - "pip": "git+https://github.com/openimis/openimis-be-calcrule-capitation_payment_py.git@develop#egg=openimis-be-calcrule-capitation_payment" - }, - { - "name": "calcrule_commission", - "pip": "git+https://github.com/openimis/openimis-be-calcrule_commission_py.git@develop#egg=openimis-be-calcrule_commission" - }, - { - "name": "calcrule_contribution_income_percentage", - "pip": "git+https://github.com/openimis/openimis-be-calcrule_contribution_income_percentage_py.git@develop#egg=openimis-be-calcrule_contribution_income_percentage" - }, - { - "name": "calcrule_fees", - "pip": "git+https://github.com/openimis/openimis-be-calcrule_fees_py.git@develop#egg=openimis-be-calcrule_fees" - }, - { - "name":"calcrule_unconditional_cash_payment", - "pip":"git+https://github.com/openimis/openimis-be-calcrule_unconditional_cash_payment_py.git@develop#egg=openimis-be-calcrule_unconditional_cash_payment" - }, - { - "name":"im_export", - "pip":"git+https://github.com/openimis/openimis-be-im_export_py.git@develop#egg=openimis-be-im_export" - }, - { - "name":"dhis2_etl", - "pip":"git+https://github.com/openimis/openimis-be-dhis2_etl_py.git@develop#egg=openimis-be-dhis2_etl" - }, - { - "name": "social_protection", - "pip": "git+https://github.com/openimis/openimis-be-social_protection_py.git@develop#egg=openimis-be-social_protection" - }, - { - "name": "opensearch_reports", - "pip": "git+https://github.com/openimis/openimis-be-opensearch_reports_py.git@develop#egg=openimis-be-opensearch_reports" - }, - { - "name": "payment_cycle", - "pip": "git+https://github.com/openimis/openimis-be-payment_cycle_py.git@develop#egg=openimis-be-payment_cycle" - }, - { - "name": "calcrule_social_protection", - "pip": "git+https://github.com/openimis/openimis-be-calcrule_social_protection_py.git@develop#egg=openimis-be-calcrule_social_protection" - }, - { - "name": "payroll", - "pip": "git+https://github.com/openimis/openimis-be-payroll_py.git@develop#egg=openimis-be-payroll" - } - ] -} + "modules": [ + { + "name": "core", + "pip": "-e ../src/core" + }, + { + "name": "individual", + "pip": "-e ../src/individual" + }, + { + "name": "workflow", + "pip": "-e ../src/workflow" + }, + { + "name": "tasks_management", + "pip": "-e ../src/tasks_management" + }, + { + "name": "report", + "pip": "-e ../src/report" + }, + { + "name": "location", + "pip": "-e ../src/location" + }, + { + "name": "medical", + "pip": "-e ../src/medical" + }, + { + "name": "medical_pricelist", + "pip": "-e ../src/medical_pricelist" + }, + { + "name": "product", + "pip": "-e ../src/product" + }, + { + "name": "insuree", + "pip": "-e ../src/insuree" + }, + { + "name": "policy", + "pip": "-e ../src/policy" + }, + { + "name": "contribution", + "pip": "-e ../src/contribution" + }, + { + "name": "payer", + "pip": "-e ../src/payer" + }, + { + "name": "payment", + "pip": "-e ../src/payment" + }, + { + "name": "claim", + "pip": "-e ../src/claim" + }, + { + "name": "claim_batch", + "pip": "-e ../src/claim_batch" + }, + { + "name": "tools", + "pip": "-e ../src/tools" + }, + { + "name": "api_fhir_r4", + "pip": "-e ../src/api_fhir_r4" + }, + { + "name": "calculation", + "pip": "-e ../src/calculation" + }, + { + "name": "contribution_plan", + "pip": "-e ../src/contribution_plan" + }, + { + "name": "policyholder", + "pip": "-e ../src/policyholder" + }, + { + "name": "contract", + "pip": "-e ../src/contract" + }, + { + "name": "invoice", + "pip": "-e ../src/invoice" + }, + { + "name": "calcrule_contribution_legacy", + "pip": "-e ../src/calcrule_contribution_legacy" + }, + { + "name": "calcrule_third_party_payment", + "pip": "-e ../src/calcrule_third_party_payment" + }, + { + "name": "calcrule_capitation_payment", + "pip": "-e ../src/calcrule_capitation_payment" + }, + { + "name": "calcrule_commission", + "pip": "-e ../src/calcrule_commission" + }, + { + "name": "calcrule_contribution_income_percentage", + "pip": "-e ../src/calcrule_contribution_income_percentage" + }, + { + "name": "calcrule_fees", + "pip": "-e ../src/calcrule_fees" + }, + { + "name": "calcrule_unconditional_cash_payment", + "pip": "-e ../src/calcrule_unconditional_cash_payment" + }, + { + "name": "im_export", + "pip": "-e ../src/im_export" + }, + { + "name": "dhis2_etl", + "pip": "-e ../src/dhis2_etl" + }, + { + "name": "social_protection", + "pip": "-e ../src/social_protection" + }, + { + "name": "opensearch_reports", + "pip": "-e ../src/opensearch_reports" + }, + { + "name": "payment_cycle", + "pip": "-e ../src/payment_cycle" + }, + { + "name": "calcrule_social_protection", + "pip": "-e ../src/calcrule_social_protection" + }, + { + "name": "payroll", + "pip": "-e ../src/payroll" + } + ] +} \ No newline at end of file diff --git a/script/setup-local-dev.py b/script/setup-local-dev.py index 6b519d0c..eee53760 100644 --- a/script/setup-local-dev.py +++ b/script/setup-local-dev.py @@ -5,6 +5,9 @@ import git # pip install GitPython from github import Github # pip install pyGithub +ref = 'release/23.10' +ref_assembly = '23.10' + def main(): g=Github(GITHUB_TOKEN) #assembly_fe='openimis/openimis-fe_js' @@ -13,7 +16,7 @@ def main(): be_config = [] repo = g.get_repo(assembly_be) - be = json.loads(repo.get_contents("openimis.json", ref ='develop' ).decoded_content) + be = json.loads(repo.get_contents("openimis.json", ref =ref_assembly ).decoded_content) be['modules'] = walk_config_be(g,be,clone_repo) # Writing to sample.json with open("../openimis.json", "w") as outfile: @@ -25,12 +28,12 @@ def clone_repo(repo, module_name): if os.path.exists(path): print(f"pulling {module_name}") repo_git = git.Repo(path) + repo_git.git.checkout(ref) repo_git.remotes.origin.pull() - repo_git.git.checkout(BRANCH) else: print(f"cloning {module_name}") repo_git = git.Repo.clone_from(remote, path) - repo_git.git.checkout(BRANCH) + repo_git.git.checkout(ref) return {"name":f"{module_name}", "pip":f"-e {path}"} def set_default(obj):