diff --git a/.gitignore b/.gitignore index 91369ecb0..b8e3847e1 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ # PyCharm etc. .idea/ .vscode/ +.devcontainer # Python compiled *.pyc @@ -14,6 +15,7 @@ !django_api/django_api/keys/jwt/certificate.pem .coverage htmlcov +.pytest_cache # Frontend node_modules/ @@ -22,4 +24,6 @@ package-lock.json data/ # k8s secrets -kubernetes/base/secrets.yml \ No newline at end of file +kubernetes/base/secrets.yml + +Pipfile diff --git a/django_api/Makefile b/django_api/Makefile new file mode 100644 index 000000000..ac44bf9b7 --- /dev/null +++ b/django_api/Makefile @@ -0,0 +1,31 @@ +ENV_VARS=SECRET_KEY=123 \ + ENV=dev \ + POSTGRES_DB=unicef_prp \ + POSTGRES_USER=postgres \ + POSTGRES_PASSWORD= \ + POSTGRES_HOST=localhost \ + DATA_VOLUME=/tmp \ + REDIS_URL=redis://localhost:6379/0 + + +help: + @echo ' ' + @echo 'Usage: ' + @echo ' make test run tests ' + @echo ' make migrate run local migrations ' + @echo ' make loaddata load fixtures ' + @echo ' make run run local instance ' + + +test: + ${ENV_VARS} python manage.py test --keepdb --failfast + +migrate: + ${ENV_VARS} python manage.py migrate + +loaddata: + ${ENV_VARS} python manage.py loaddata sites + ${ENV_VARS} python manage.py loaddata reporting_entities + +run: + ${ENV_VARS} python manage.py runserver diff --git a/django_api/codefresh_django.yml b/django_api/codefresh_django.yml index e8e791fc6..2ba0a83d3 100644 --- a/django_api/codefresh_django.yml +++ b/django_api/codefresh_django.yml @@ -20,16 +20,16 @@ steps: depends_on: - django_api - db - command: bash -c "/usr/local/bin/waitforit -host=db -port=5432 -timeout=120 && flake8 && coverage run --source="." ./manage.py test" + command: bash -c "/usr/local/bin/waitforit -host=db -port=5432 -timeout=120 && pip install -r requirements/dev.txt && flake8 && coverage run --source="." ./manage.py test" environment: - POSTGRES_DB=etools_prp - POSTGRES_USER=etools_prp_user - POSTGRES_PASSWORD= - POSTGRES_HOST=db - SECRET_KEY=asdfqwef124rf - - ENV=staging + - ENV=dev - DJANGO_ALLOWED_HOST="*" - - DJANGO_SETTINGS_MODULE=django_api.settings.staging + - DJANGO_SETTINGS_MODULE=django_api.settings.dev - C_FORCE_ROOT=1 - CELERY_LOG_LEVEL=info @@ -39,9 +39,9 @@ steps: - POSTGRES_PASSWORD= - POSTGRES_HOST=db - SECRET_KEY=asdfqwef124rf - - ENV=staging + - ENV=dev - DJANGO_ALLOWED_HOST="*" - - DJANGO_SETTINGS_MODULE=django_api.settings.staging + - DJANGO_SETTINGS_MODULE=django_api.settings.dev - C_FORCE_ROOT=1 - CELERY_LOG_LEVEL=info diff --git a/django_api/django_api/apps/account/models.py b/django_api/django_api/apps/account/models.py index 7967f084d..ed134f691 100644 --- a/django_api/django_api/apps/account/models.py +++ b/django_api/django_api/apps/account/models.py @@ -70,7 +70,11 @@ def user_type(self): return USER_TYPES.imo if {PRP_ROLE_TYPES.cluster_member, PRP_ROLE_TYPES.cluster_viewer, - PRP_ROLE_TYPES.cluster_coordinator} \ + PRP_ROLE_TYPES.cluster_coordinator, + PRP_ROLE_TYPES.ip_viewer, + PRP_ROLE_TYPES.ip_editor, + PRP_ROLE_TYPES.ip_admin, + PRP_ROLE_TYPES.ip_authorized_officer} \ .intersection(user_prp_roles): return USER_TYPES.partner diff --git a/django_api/django_api/apps/cluster/export_indicators.py b/django_api/django_api/apps/cluster/export_indicators.py index 8ee8b31b3..3907f10cf 100644 --- a/django_api/django_api/apps/cluster/export_indicators.py +++ b/django_api/django_api/apps/cluster/export_indicators.py @@ -143,7 +143,7 @@ def fill_sheet(self, disaggregation_types, indicators): partner_activity.cluster_activity else partner_activity.cluster_objective.cluster cluster_objective = partner_activity.cluster_activity.cluster_objective if \ partner_activity.cluster_activity else partner_activity.cluster_objective - partner_project = partner_activity.project + partner_project = partner_activity.projects.first().project elif partner_project: cluster = partner_project.clusters.first() cluster_objective = cluster.cluster_objectives.first() diff --git a/django_api/django_api/apps/cluster/filters.py b/django_api/django_api/apps/cluster/filters.py index 31f462305..22e758121 100644 --- a/django_api/django_api/apps/cluster/filters.py +++ b/django_api/django_api/apps/cluster/filters.py @@ -105,7 +105,7 @@ def get_cluster(self, queryset, name, value): def get_partner(self, queryset, name, value): return queryset.filter( - Q(reportable__partner_activities__project__partner=value) | + Q(reportable__partner_activities__partner=value) | Q(reportable__partner_projects__partner=value) ).distinct() @@ -117,14 +117,15 @@ def get_indicator(self, queryset, name, value): return queryset.filter(reportable=reportable) def get_project(self, queryset, name, value): + value_list = value.split(',') return queryset.filter( - Q(reportable__cluster_objectives__cluster__partner_projects=value) | - Q(reportable__cluster_objectives__cluster_activities__partner_activities__project=value) | - Q(reportable__cluster_activities__cluster_objective__cluster__partner_projects=value) | - Q(reportable__cluster_activities__partner_activities__project=value) + Q(reportable__cluster_objectives__cluster__partner_projects__in=value_list) | + Q(reportable__cluster_objectives__cluster_activities__partner_activities__projects__in=value_list) | + Q(reportable__cluster_activities__cluster_objective__cluster__partner_projects__in=value_list) | + Q(reportable__cluster_activities__partner_activities__projects__in=value_list) | - Q(reportable__partner_activities__project=value) | - Q(reportable__partner_projects=value) + Q(reportable__partner_activities__projects__in=value_list) | + Q(reportable__partner_projects__in=value_list) ).distinct() def get_location(self, queryset, name, value): diff --git a/django_api/django_api/apps/cluster/migrations/0003_auto_20190522_1759.py b/django_api/django_api/apps/cluster/migrations/0003_auto_20190522_1759.py new file mode 100644 index 000000000..36738ccf0 --- /dev/null +++ b/django_api/django_api/apps/cluster/migrations/0003_auto_20190522_1759.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.20 on 2019-05-22 17:59 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('cluster', '0002_auto_20180711_2325'), + ] + + operations = [ + migrations.AlterField( + model_name='cluster', + name='external_source', + field=models.TextField(blank=True, choices=[('HPC', 'HPC'), ('OPS', 'OPS'), ('UNICEF', 'UNICEF')], null=True), + ), + migrations.AlterField( + model_name='clusteractivity', + name='external_source', + field=models.TextField(blank=True, choices=[('HPC', 'HPC'), ('OPS', 'OPS'), ('UNICEF', 'UNICEF')], null=True), + ), + migrations.AlterField( + model_name='clusterobjective', + name='external_source', + field=models.TextField(blank=True, choices=[('HPC', 'HPC'), ('OPS', 'OPS'), ('UNICEF', 'UNICEF')], null=True), + ), + ] diff --git a/django_api/django_api/apps/cluster/tests/test_views.py b/django_api/django_api/apps/cluster/tests/test_views.py index a64b39bb5..eb0d2263b 100644 --- a/django_api/django_api/apps/cluster/tests/test_views.py +++ b/django_api/django_api/apps/cluster/tests/test_views.py @@ -1,5 +1,6 @@ import datetime from dateutil.relativedelta import relativedelta +from unittest.mock import Mock, patch from django.urls import reverse @@ -27,6 +28,7 @@ LocationFactory, ClusterActivityFactory, PartnerProjectFactory, + PartnerActivityProjectContextFactory, ClusterActivityPartnerActivityFactory, QuantityTypeIndicatorBlueprintFactory, QuantityReportableToClusterActivityFactory, @@ -700,8 +702,12 @@ def test_cluster_indicator_reports_list_and_filtering_and_ordering(self): ) self.p_activity = ClusterActivityPartnerActivityFactory( + partner=self.partner, cluster_activity=self.activity, + ) + self.project_context = PartnerActivityProjectContextFactory( project=self.project, + activity=self.p_activity, ) self.blueprint = QuantityTypeIndicatorBlueprintFactory() @@ -719,20 +725,21 @@ def test_cluster_indicator_reports_list_and_filtering_and_ordering(self): ) # Create 4 indicator reports across generic relation - self.clusteractivity_indicator_report = ClusterIndicatorReportFactory( - reportable=self.clusteractivity_reportable, - ) - self.partneractivity_indicator_report = ClusterIndicatorReportFactory( - reportable=self.partneractivity_reportable, - report_status=INDICATOR_REPORT_STATUS.submitted, - ) - self.clusterobjective_indicator_report = ClusterIndicatorReportFactory( - reportable=self.clusterobjective_reportable, - report_status=INDICATOR_REPORT_STATUS.overdue, - ) - self.partnerproject_indicator_report = ClusterIndicatorReportFactory( - reportable=self.partnerproject_reportable, - ) + with patch("django.db.models.signals.ModelSignal.send", Mock()): + self.clusteractivity_indicator_report = ClusterIndicatorReportFactory( + reportable=self.clusteractivity_reportable, + ) + self.partneractivity_indicator_report = ClusterIndicatorReportFactory( + reportable=self.partneractivity_reportable, + report_status=INDICATOR_REPORT_STATUS.submitted, + ) + self.clusterobjective_indicator_report = ClusterIndicatorReportFactory( + reportable=self.clusterobjective_reportable, + report_status=INDICATOR_REPORT_STATUS.overdue, + ) + self.partnerproject_indicator_report = ClusterIndicatorReportFactory( + reportable=self.partnerproject_reportable, + ) self.loc_data = IndicatorLocationDataFactory( indicator_report=self.partnerproject_indicator_report, @@ -860,13 +867,21 @@ def setUp(self): ) self.p_activity = ClusterActivityPartnerActivityFactory( + partner=self.partner, cluster_activity=self.activity, + ) + self.project_context = PartnerActivityProjectContextFactory( project=self.project, + activity=self.p_activity, ) self.p_custom_activity = CustomPartnerActivityFactory( cluster_objective=self.objective, + partner=self.partner, + ) + self.project_context = PartnerActivityProjectContextFactory( project=self.project, + activity=self.p_activity, ) self.blueprint = QuantityTypeIndicatorBlueprintFactory() @@ -887,24 +902,25 @@ def setUp(self): ) # Create 4 indicator reports across generic relation - self.clusteractivity_indicator_report = ClusterIndicatorReportFactory( - reportable=self.clusteractivity_reportable, - ) - self.partneractivity_indicator_report = ClusterIndicatorReportFactory( - reportable=self.partneractivity_reportable, - report_status=INDICATOR_REPORT_STATUS.submitted, - ) - self.custom_partneractivity_indicator_report = ClusterIndicatorReportFactory( - reportable=self.custom_partneractivity_reportable, - report_status=INDICATOR_REPORT_STATUS.submitted, - ) - self.clusterobjective_indicator_report = ClusterIndicatorReportFactory( - reportable=self.clusterobjective_reportable, - report_status=INDICATOR_REPORT_STATUS.overdue, - ) - self.partnerproject_indicator_report = ClusterIndicatorReportFactory( - reportable=self.partnerproject_reportable, - ) + with patch("django.db.models.signals.ModelSignal.send", Mock()): + self.clusteractivity_indicator_report = ClusterIndicatorReportFactory( + reportable=self.clusteractivity_reportable, + ) + self.partneractivity_indicator_report = ClusterIndicatorReportFactory( + reportable=self.partneractivity_reportable, + report_status=INDICATOR_REPORT_STATUS.submitted, + ) + self.custom_partneractivity_indicator_report = ClusterIndicatorReportFactory( + reportable=self.custom_partneractivity_reportable, + report_status=INDICATOR_REPORT_STATUS.submitted, + ) + self.clusterobjective_indicator_report = ClusterIndicatorReportFactory( + reportable=self.clusterobjective_reportable, + report_status=INDICATOR_REPORT_STATUS.overdue, + ) + self.partnerproject_indicator_report = ClusterIndicatorReportFactory( + reportable=self.partnerproject_reportable, + ) self.clusteractivity_loc_data = IndicatorLocationDataFactory( indicator_report=self.clusteractivity_indicator_report, @@ -1052,7 +1068,11 @@ def setUp(self): self.p_custom_activity = CustomPartnerActivityFactory( cluster_objective=self.objective, + partner=self.partner, + ) + self.project_context = PartnerActivityProjectContextFactory( project=self.project, + activity=self.p_custom_activity, ) self.blueprint = QuantityTypeIndicatorBlueprintFactory() @@ -1188,12 +1208,21 @@ def test_response_details(self): p_activity = ClusterActivityPartnerActivityFactory( cluster_activity=self.activity, + partner=partner, + ) + self.project_context = PartnerActivityProjectContextFactory( project=project, + activity=p_activity, ) p_custom_activity = CustomPartnerActivityFactory( cluster_objective=self.objective, + partner=partner, + ) + + self.project_context = PartnerActivityProjectContextFactory( project=project, + activity=p_custom_activity, ) partneractivity_reportable = QuantityReportableToPartnerActivityFactory( diff --git a/django_api/django_api/apps/cluster/views.py b/django_api/django_api/apps/cluster/views.py index 5ea38f1cf..74aefa87a 100644 --- a/django_api/django_api/apps/cluster/views.py +++ b/django_api/django_api/apps/cluster/views.py @@ -392,7 +392,7 @@ class IndicatorReportsListAPIView(ListAPIView, RetrieveAPIView): * cluster - Integer ID for cluster * partner - Integer ID for partner * indicator - Integer ID for IndicatorReport - * project - Integer ID for project + * projects - A comma-seperated-list of Integer ID for projects * location - Integer ID for location * cluster_objective - Integer ID for cluster_objective * cluster_activity - Integer ID for cluster_activity @@ -1289,6 +1289,7 @@ def get_queryset(self): 'partner_types': self.request.GET.get('partner_types', None), 'loc_type': self.request.GET.get('loc_type', '1'), 'locs': self.request.GET.get('locs', None), + 'projects': self.request.GET.get('projects', None), 'narrow_loc_type': self.request.GET.get('narrow_loc_type', None), 'indicator_type': self.request.GET.get('indicator_type', 'all'), } @@ -1309,6 +1310,17 @@ def get_queryset(self): id__in=map(lambda x: int(x), filter_parameters['cluster_objectives'].split(',')) ) + if filter_parameters['projects']: + projects = PartnerProject.objects.filter( + id__in=map(lambda x: int(x), filter_parameters['projects'].split(',')) + ) + + else: + # Defaulting partner projects from given clusters + projects = PartnerProject.objects.filter( + partner__clusters__in=clusters + ).distinct() + if filter_parameters['partner_types']: partner_types = filter_parameters['partner_types'].split(',') @@ -1328,12 +1340,14 @@ def get_queryset(self): content_type__model="partneractivity", partner_activities__partner__clusters__in=clusters, partner_activities__partner__partner_type__in=partner_types, + partner_activities__projects__in=projects, ) partner_project_q = Q( content_type__model="partnerproject", partner_projects__clusters__in=clusters, partner_projects__partner__partner_type__in=partner_types, + partner_projects__in=projects, ) else: @@ -1350,11 +1364,13 @@ def get_queryset(self): partner_activity_q = Q( content_type__model="partneractivity", partner_activities__partner__clusters__in=clusters, + partner_activities__projects__in=projects, ) partner_project_q = Q( content_type__model="partnerproject", partner_projects__clusters__in=clusters, + partner_projects__in=projects, ) if filter_parameters['indicator_type'] == 'all': diff --git a/django_api/django_api/apps/core/common.py b/django_api/django_api/apps/core/common.py index 2a478b9a8..87de5f260 100644 --- a/django_api/django_api/apps/core/common.py +++ b/django_api/django_api/apps/core/common.py @@ -97,8 +97,8 @@ INTERVENTION_TYPES = Choices( ('PD', 'PD', 'Programme Document'), - ('SHP', 'SHPD', 'Simplified Humanitarian Programme Document'), - ('SSF', 'SSFA', u'Small-Scale Funding Agreement'), + ('HPD', 'HPD', 'Humanitarian Programme Document'), + ('SSFA', 'SSFA', 'SSFA'), ) INTERVENTION_STATUS = Choices( @@ -147,7 +147,7 @@ PD_DOCUMENT_TYPE = Choices( ('PD', 'PD', 'Programme Document'), ('SHP', 'SHPD', 'Simplified Humanitarian Programme Document'), - ('SSF', 'SSFA_TOR', u'SSFA TOR'), + ('SSFA', 'SSFA_TOR', 'SSFA TOR'), ) PROGRESS_REPORT_STATUS = Choices( @@ -174,6 +174,11 @@ ("OTHER", "other", "Other"), # Flash Appeal ) +PR_ATTACHMENT_TYPES = Choices( + ("FACE", "face", "FACE"), + ("Other", "other", "Other"), +) + OVERALL_STATUS = Choices( ("Met", "met", "Met"), ("OnT", "on_track", "On Track"), @@ -202,6 +207,7 @@ EXTERNAL_DATA_SOURCES = Choices( ("HPC", "HPC"), ("OPS", "OPS"), + ("UNICEF", "UNICEF"), ) CURRENCIES = Choices( diff --git a/django_api/django_api/apps/core/factories.py b/django_api/django_api/apps/core/factories.py index 336072820..462c8317a 100644 --- a/django_api/django_api/apps/core/factories.py +++ b/django_api/django_api/apps/core/factories.py @@ -2,74 +2,43 @@ import json import random from collections import defaultdict + +import factory from dateutil.relativedelta import relativedelta from django.contrib.contenttypes.models import ContentType +from django.core.files.base import ContentFile from django.db.models import signals -import factory from factory import fuzzy from faker import Faker from account.models import User, UserProfile -from cluster.models import Cluster, ClusterObjective, ClusterActivity -from partner.models import ( - Partner, - PartnerProject, - PartnerActivity, - PartnerProjectFunding, -) -from indicator.models import ( - IndicatorBlueprint, - Reportable, - IndicatorReport, - IndicatorLocationData, - Disaggregation, - DisaggregationValue, - ReportableLocationGoal, - ReportingEntity, -) -from unicef.models import ( - Section, - Person, - ProgressReport, - ProgrammeDocument, - PDResultLink, - LowerLevelOutput, - ReportingPeriodDates, -) -from core.common import ( - REPORTING_TYPES, - PRP_ROLE_TYPES, - CLUSTER_TYPES, - CSO_TYPES, - PARTNER_TYPE, - SHARED_PARTNER_TYPE, - INDICATOR_REPORT_STATUS, - FREQUENCY_LEVEL, - PD_FREQUENCY_LEVEL, - REPORTABLE_FREQUENCY_LEVEL, - PD_DOCUMENT_TYPE, - PROGRESS_REPORT_STATUS, - PD_STATUS, - RESPONSE_PLAN_TYPE, - OVERALL_STATUS, - PARTNER_PROJECT_STATUS, - PARTNER_ACTIVITY_STATUS, -) -from core.models import ( - Country, - Workspace, - Location, - ResponsePlan, - GatewayType, - CartoDBTable, - PRPRole, -) +from cluster.models import Cluster, ClusterActivity, ClusterObjective +from core.common import (CLUSTER_TYPES, CSO_TYPES, FREQUENCY_LEVEL, + INDICATOR_REPORT_STATUS, OVERALL_STATUS, + PARTNER_ACTIVITY_STATUS, PARTNER_PROJECT_STATUS, + PARTNER_TYPE, PD_DOCUMENT_TYPE, PD_FREQUENCY_LEVEL, + PD_STATUS, PR_ATTACHMENT_TYPES, + PROGRESS_REPORT_STATUS, PRP_ROLE_TYPES, + REPORTABLE_FREQUENCY_LEVEL, REPORTING_TYPES, + RESPONSE_PLAN_TYPE, SHARED_PARTNER_TYPE) from core.countries import COUNTRIES_ALPHA2_CODE, COUNTRIES_ALPHA2_CODE_DICT - +from core.models import (CartoDBTable, Country, GatewayType, Location, PRPRole, + ResponsePlan, Workspace) +from indicator.models import (Disaggregation, DisaggregationValue, + IndicatorBlueprint, IndicatorLocationData, + IndicatorReport, Reportable, + ReportableLocationGoal, ReportingEntity) +from partner.models import (Partner, PartnerActivity, PartnerProject, + PartnerProjectFunding, PartnerActivityProjectContext) +from unicef.models import (LowerLevelOutput, PDResultLink, Person, + ProgrammeDocument, ProgressReport, + ProgressReportAttachment, ReportingPeriodDates, + Section) PRP_ROLE_TYPES_LIST = [x[0] for x in PRP_ROLE_TYPES] +PR_ATTACHMENT_TYPES_LIST = [x[0] for x in PR_ATTACHMENT_TYPES] IP_PRP_ROLE_TYPES_LIST = list(filter(lambda item: item.startswith('IP'), PRP_ROLE_TYPES_LIST)) CLUSTER_PRP_ROLE_TYPES_LIST = list(filter(lambda item: item.startswith('CLUSTER'), PRP_ROLE_TYPES_LIST)) PARTNER_PROJECT_STATUS_LIST = [x[0] for x in PARTNER_PROJECT_STATUS] @@ -107,6 +76,9 @@ cs_date_2 = datetime.date(today.year, 3, 24) cs_date_3 = datetime.date(today.year, 5, 15) faker = Faker() +fake_file = ContentFile(bytes(faker.text(), 'utf-8')) +fake_file.name = faker.file_name() +fake_file.url = faker.uri() def create_fake_multipolygon(): @@ -184,7 +156,7 @@ class PartnerUserFactory(AbstractUserFactory): """ # We are going to let PartnerFactory create PartnerUser - partner = factory.SubFactory('core.factories.PartnerFactory', user=None) + partner = factory.SubFactory('core.factories.PartnerFactory') class Meta: model = User @@ -522,11 +494,7 @@ class Meta: class AbstractPartnerActivityFactory(factory.django.DjangoModelFactory): - project = factory.SubFactory('core.factories.PartnerProjectFactory', partner_activity=None) - partner = factory.LazyAttribute(lambda o: o.project.partner) - start_date = beginning_of_this_year - end_date = beginning_of_this_year + datetime.timedelta(days=180) - status = fuzzy.FuzzyChoice(PARTNER_ACTIVITY_STATUS_LIST) + partner = factory.SubFactory('core.factories.PartnerFactory', partner_activity=None) @factory.post_generation def locations(self, create, extracted, **kwargs): @@ -537,6 +505,15 @@ def locations(self, create, extracted, **kwargs): for location in extracted: self.locations.add(location) + @factory.post_generation + def partneractivityprojectcontext_set(self, create, extracted, **kwargs): + if not create: + return + + if extracted: + for partneractivityprojectcontext in extracted: + self.partneractivityprojectcontexts.add(partneractivityprojectcontext) + class Meta: model = PartnerActivity abstract = True @@ -546,11 +523,9 @@ class ClusterActivityPartnerActivityFactory(AbstractPartnerActivityFactory): """ Arguments: cluster_activity {ClusterActivity} -- Cluster Activity ORM object to bind - project {PartnerProject} -- PartnerProject ORM object to bind Ex) ClusterActivityPartnerActivityFactory( cluster_activity=cluster_activity1, - project=project1, ) """ @@ -566,15 +541,13 @@ class CustomPartnerActivityFactory(AbstractPartnerActivityFactory): """ Arguments: cluster_objective {ClusterObjective} -- Cluster Objective ORM object to bind - project {PartnerProject} -- PartnerProject ORM object to bind Ex) ClusterActivityPartnerActivityFactory( cluster_objective=cluster_objective1, - project {PartnerProject} -- PartnerProject ORM object to bind ) """ - title = factory.LazyAttribute(lambda o: "{} -- Custom".format(o.project.title)) + title = factory.LazyAttributeSequence(lambda o, n: "{} -- Custom".format(o.partner.title, n)) cluster_activity = None cluster_objective = factory.SubFactory('core.factories.ClusterObjectiveFactory', partner_activity=None) @@ -787,7 +760,8 @@ class QuantityReportableBaseFactory(AbstractReportableFactory): numerator_label = None denominator_label = None blueprint = factory.SubFactory( - 'core.factories.QuantityTypeIndicatorBlueprintFactory', reportable=None) + 'core.factories.QuantityTypeIndicatorBlueprintFactory', + ) class Meta: model = Reportable @@ -807,7 +781,8 @@ class RatioReportableBaseFactory(AbstractReportableFactory): numerator_label = factory.LazyFunction(faker.word) denominator_label = factory.LazyFunction(faker.word) blueprint = factory.SubFactory( - 'core.factories.RatioTypeIndicatorBlueprintFactory', reportable=None) + 'core.factories.RatioTypeIndicatorBlueprintFactory', + ) class Meta: model = Reportable @@ -825,7 +800,8 @@ class QuantityReportableToLowerLevelOutputFactory(QuantityReportableBaseFactory) ) """ content_object = factory.SubFactory( - 'core.factories.LowerLevelOutputFactory', reportable=None) + 'core.factories.LowerLevelOutputFactory', + ) class Meta: model = Reportable @@ -842,7 +818,9 @@ class QuantityReportableToPartnerProjectFactory(QuantityReportableBaseFactory): ) """ - content_object = factory.SubFactory('core.factories.PartnerProjectFactory', reportable=None) + content_object = factory.SubFactory( + 'core.factories.PartnerProjectFactory', + ) class Meta: model = Reportable @@ -859,7 +837,8 @@ class QuantityReportableToClusterObjectiveFactory(QuantityReportableBaseFactory) ) """ content_object = factory.SubFactory( - 'core.factories.ClusterObjectiveFactory', reportable=None) + 'core.factories.ClusterObjectiveFactory', + ) class Meta: model = Reportable @@ -876,7 +855,8 @@ class QuantityReportableToClusterActivityFactory(QuantityReportableBaseFactory): ) """ content_object = factory.SubFactory( - 'core.factories.ClusterActivityFactory', reportable=None) + 'core.factories.ClusterActivityFactory', + ) class Meta: model = Reportable @@ -894,7 +874,8 @@ class QuantityReportableToPartnerActivityFactory(QuantityReportableBaseFactory): """ content_object = factory.SubFactory( - 'core.factories.PartnerActivityFactory', reportable=None) + 'core.factories.PartnerActivityFactory', + ) class Meta: model = Reportable @@ -911,7 +892,8 @@ class RatioReportableToLowerLevelOutputFactory(RatioReportableBaseFactory): ) """ content_object = factory.SubFactory( - 'core.factories.LowerLevelOutputFactory', reportable=None) + 'core.factories.LowerLevelOutputFactory', + ) class Meta: model = Reportable @@ -927,7 +909,9 @@ class RatioReportableToPartnerProjectFactory(RatioReportableBaseFactory): content_object=project1, blueprint=blueprint1 ) """ - content_object = factory.SubFactory('core.factories.PartnerProjectFactory', reportable=None) + content_object = factory.SubFactory( + 'core.factories.PartnerProjectFactory', + ) class Meta: model = Reportable @@ -945,7 +929,8 @@ class RatioReportableToClusterObjectiveFactory(RatioReportableBaseFactory): """ content_object = factory.SubFactory( - 'core.factories.ClusterObjectiveFactory', reportable=None) + 'core.factories.ClusterObjectiveFactory', + ) class Meta: model = Reportable @@ -963,7 +948,8 @@ class RatioReportableToClusterActivityFactory(RatioReportableBaseFactory): """ content_object = factory.SubFactory( - 'core.factories.ClusterActivityFactory', reportable=None) + 'core.factories.ClusterActivityFactory', + ) class Meta: model = Reportable @@ -981,7 +967,8 @@ class RatioReportableToPartnerActivityFactory(RatioReportableBaseFactory): """ content_object = factory.SubFactory( - 'core.factories.PartnerActivityFactory', reportable=None) + 'core.factories.PartnerActivityFactory', + ) class Meta: model = Reportable @@ -1205,6 +1192,30 @@ class Meta: django_get_or_create = ('location', 'reportable') +class PartnerActivityProjectContextFactory(factory.django.DjangoModelFactory): + """ + Arguments: + project {PartnerProject} -- PartnerProject ORM object to bind + activity {PartnerActivity} -- PartnerActivity ORM object to bind + + Ex) PartnerActivityProjectContextFactory( + project=project1, + activity=activity1, + ) + """ + + project = factory.SubFactory('core.factories.PartnerProjectFactory') + activity = factory.SubFactory('core.factories.PartnerActivityFactory') + status = fuzzy.FuzzyChoice(PARTNER_PROJECT_STATUS_LIST) + start_date = factory.LazyFunction(faker.date) + end_date = factory.LazyFunction(faker.date) + + class Meta: + model = PartnerActivityProjectContext + django_get_or_create = ('project', 'activity') + + +@factory.django.mute_signals(signals.post_save) class ProgressReportFactory(factory.django.DjangoModelFactory): """ Arguments: @@ -1239,8 +1250,8 @@ class ProgressReportFactory(factory.django.DjangoModelFactory): review_date = due_date submission_date = due_date programme_document = factory.SubFactory('core.factories.ProgrammeDocument', progress_report=None) - submitted_by = factory.SubFactory('core.factories.AbstractUserFactory', progress_report=None) - submitting_user = factory.SubFactory('core.factories.AbstractUserFactory', progress_report=None) + submitted_by = factory.SubFactory('core.factories.PartnerUserFactory', profile=None) + submitting_user = factory.SubFactory('core.factories.PartnerUserFactory', profile=None) reviewed_by_email = factory.LazyFunction(faker.ascii_safe_email) reviewed_by_name = factory.LazyFunction(faker.name) sent_back_feedback = factory.LazyFunction(faker.text) @@ -1248,7 +1259,6 @@ class ProgressReportFactory(factory.django.DjangoModelFactory): reviewed_by_external_id = factory.LazyFunction(lambda: faker.random_number(4, True)) status = fuzzy.FuzzyChoice(PROGRESS_REPORT_STATUS_LIST) review_overall_status = fuzzy.FuzzyChoice(PROGRESS_REPORT_STATUS_LIST) - attachment = None class Meta: django_get_or_create = ( @@ -1257,6 +1267,26 @@ class Meta: model = ProgressReport +class ProgressReportAttachmentFactory(factory.django.DjangoModelFactory): + """ + Arguments: + type {str} -- Attachment type: FACE or Other + progress_report {ProgressReport} -- ProgressReport ORM object to bind + + Ex) ProgressReportAttachmentFactory( + progress_report=progress_report1, + type=PR_ATTACHMENT_TYPES.face, + file=fake_file # ContentFile object with name attribute defined. Make sure file and ORM is deleted after usage. + ) + """ + progress_report = factory.SubFactory('core.factories.ProgressReportFactory', attachment=None) + type = fuzzy.FuzzyChoice(PR_ATTACHMENT_TYPES_LIST) + file = fake_file + + class Meta: + model = ProgressReportAttachment + + class AbstractIndicatorReportFactory(factory.django.DjangoModelFactory): title = factory.LazyAttribute(lambda o: o.reportable.blueprint.title) time_period_start = factory.LazyAttribute(lambda o: o.time_period[0]) diff --git a/django_api/django_api/apps/core/filters.py b/django_api/django_api/apps/core/filters.py index eeff61fcd..3da352986 100644 --- a/django_api/django_api/apps/core/filters.py +++ b/django_api/django_api/apps/core/filters.py @@ -7,10 +7,11 @@ class LocationFilter(django_filters.FilterSet): loc_type = NumberFilter(method='get_loc_type') cluster_objectives = CharFilter(method='get_cluster_objectives') + title = CharFilter(method='get_title') class Meta: model = Location - fields = ['loc_type', 'cluster_objectives'] + fields = ['loc_type', 'cluster_objectives', 'title'] def get_loc_type(self, queryset, name, value): return queryset.filter(gateway__admin_level=value) @@ -18,3 +19,6 @@ def get_loc_type(self, queryset, name, value): def get_cluster_objectives(self, queryset, name, value): return queryset.filter( gateway__country__workspaces__response_plans__clusters__cluster_objectives__in=value.split(',')) + + def get_title(self, queryset, name, value): + return queryset.filter(title__icontains=value) diff --git a/django_api/django_api/apps/core/helpers.py b/django_api/django_api/apps/core/helpers.py index ef59e6b9d..42a1047c7 100644 --- a/django_api/django_api/apps/core/helpers.py +++ b/django_api/django_api/apps/core/helpers.py @@ -1,5 +1,6 @@ import math import random +import logging import sys import os from ast import literal_eval @@ -7,12 +8,15 @@ from collections import OrderedDict from contextlib import contextmanager from datetime import date, timedelta +from dateutil.relativedelta import relativedelta from itertools import combinations, product from core.common import ( PD_FREQUENCY_LEVEL, ) +logger = logging.getLogger("django") + @contextmanager def suppress_stdout(): @@ -223,10 +227,21 @@ def find_missing_frequency_period_dates_for_indicator_report(indicator, latest_i indicator_start_date = indicator.content_object.cluster.response_plan.start indicator_end_date = indicator.content_object.cluster.response_plan.end - if indicator.content_type.model in ["partnerproject", "partneractivity", "lowerleveloutput"]: + if indicator.content_type.model in ["partnerproject", "lowerleveloutput"]: indicator_start_date = indicator.content_object.start_date indicator_end_date = indicator.content_object.end_date + if indicator.content_type.model == "partneractivity": + indicator_start_date = None + indicator_end_date = None + + for context in indicator.content_object.partneractivityprojectcontext_set.all(): + if not indicator_start_date or indicator_start_date > context.start_date: + indicator_start_date = context.start_date + + if not indicator_end_date or indicator_end_date < context.end_date: + indicator_end_date = context.end_date + # Override start date if indicator has its own start date if indicator.start_date_of_reporting_period: indicator_start_date = indicator.start_date_of_reporting_period @@ -234,6 +249,9 @@ def find_missing_frequency_period_dates_for_indicator_report(indicator, latest_i date_to_compare = latest_indicator_report_date if latest_indicator_report_date else indicator_start_date date_list = [] + if not date_to_compare or not indicator_end_date: + return date_list + # Only add 1 day to date_to_compare if it came from latest_indicator_report_date # in order to set next date period correctly if latest_indicator_report_date: @@ -338,3 +356,398 @@ def find_missing_frequency_period_dates_for_indicator_report(indicator, latest_i date_list.append(missing_date) return date_list + + +def get_latest_pr_by_type(pd, report_type): + """ + Return latest ProgressReport instance given report_type + + Arguments: + report_type {str} -- A report type as string: [QPR, HR, SR] + + Returns: + ProgressReport -- Latest ProgressReport instance for given report_type + """ + + if report_type == "QPR": + return pd.progress_reports \ + .filter(report_type="QPR").order_by('start_date').last() + + if report_type == "HR": + return pd.progress_reports \ + .filter(report_type="HR").order_by('start_date').last() + + if report_type == "SR": + return pd.progress_reports \ + .filter(report_type="SR").order_by('due_date').last() + + +def create_pr_for_report_type(pd, idx, reporting_period, generate_from_date): + """ + Create ProgressReport instance by its ReportingPeriodDate instance's report type + + Arguments: + pd {ProgrammeDocument} -- ProgrammeDocument instance for ProgressReport to generate + idx {int} -- Integer to denote report number + reporting_period {ReportingPeriodDates} -- ReportingPeriodDates instance for new ProgressReport + generate_from_date {datetime.datetime} -- datetime instance from latest ProgressReport on same report + + Returns: + Tuple[ProgressReport, datetime.datetime, datetime.datetime, datetime.datetime] + - Newly generated ProgressReport & 3 datetime objects + """ + from unicef.models import ProgressReport + + end_date = reporting_period.end_date + due_date = reporting_period.due_date + start_date = reporting_period.start_date + + # Create ProgressReport first + logger.info("Creating ProgressReport for {} - {}".format(start_date, end_date)) + + # Re-query latest ProgressReport by report type + latest_progress_report = get_latest_pr_by_type(pd, reporting_period.report_type) + + if latest_progress_report: + report_type = latest_progress_report.report_type + report_number = latest_progress_report.report_number + 1 + is_final = idx == pd.reporting_periods.filter(report_type=reporting_period.report_type).count() - 1 + + else: + report_number = 1 + report_type = reporting_period.report_type + is_final = False + + next_progress_report = ProgressReport.objects.create( + start_date=start_date, + end_date=end_date, + due_date=due_date, + programme_document=pd, + report_type=report_type, + report_number=report_number, + is_final=is_final, + ) + + return (next_progress_report, start_date, end_date, due_date) + + +def create_pr_ir_for_reportable(pd, reportable, pai_ir_for_period, start_date, end_date, due_date): + """Create an IndicatorReport instance for ProgressReport instance later to attach. + If PartnerActivity IndicatorReport is present, the new IndicatorReport instance will associate + it as parent IndicatorReport instance, enabling dual-reporting feature. + + Arguments: + pd {ProgrammeDocument} -- ProgrammeDocument instance for logger + reportable {Reportable} -- Reportable instance to associate with new IndicatorReport instance + pai_ir_for_period {IndicatorReport} -- An optional IndicatorReport instance from PartnerActivity Reportable + start_date {datetime.date} -- Date object as report start date + end_date {datetime.date} -- Date object as report end date + due_date {datetime.date} -- Date object as report due date + + Returns: + IndicatorReport -- A newly created IndicatorReport instance + """ + + from indicator.models import ( + IndicatorBlueprint, + IndicatorReport, + IndicatorLocationData, + ReportingEntity, + ) + + if reportable.blueprint.unit == IndicatorBlueprint.NUMBER: + logger.info("Creating Quantity IndicatorReport for {} - {}".format(start_date, end_date)) + indicator_report = IndicatorReport.objects.create( + progress_report=None, + reportable=reportable, + parent=pai_ir_for_period, + time_period_start=start_date, + time_period_end=end_date, + due_date=due_date, + title=reportable.blueprint.title, + total={'c': 0, 'd': 0, 'v': 0}, + overall_status="NoS", + report_status="Due", + submission_date=None, + reporting_entity=ReportingEntity.objects.get(title="UNICEF"), + ) + + for location_goal in reportable.reportablelocationgoal_set.filter(is_active=True): + logger.info("Creating IndicatorReport {} IndicatorLocationData for {} - {}".format( + indicator_report, start_date, end_date + )) + IndicatorLocationData.objects.create( + indicator_report=indicator_report, + location=location_goal.location, + num_disaggregation=indicator_report.disaggregations.count(), + level_reported=indicator_report.disaggregations.count(), + disaggregation_reported_on=list(indicator_report.disaggregations.values_list( + 'id', flat=True)), + disaggregation={ + '()': {'c': 0, 'd': 0, 'v': 0} + }, + ) + + else: + logger.info("Creating PD {} Ratio IndicatorReport for {} - {}".format(pd, start_date, end_date)) + indicator_report = IndicatorReport.objects.create( + progress_report=None, + reportable=reportable, + parent=pai_ir_for_period, + time_period_start=start_date, + time_period_end=end_date, + due_date=due_date, + title=reportable.blueprint.title, + total={'c': 0, 'd': 0, 'v': 0}, + overall_status="NoS", + report_status="Due", + submission_date=None, + reporting_entity=ReportingEntity.objects.get(title="UNICEF"), + ) + + for location_goal in reportable.reportablelocationgoal_set.filter(is_active=True): + logger.info("Creating IndicatorReport {} IndicatorLocationData {} - {}".format( + indicator_report, start_date, end_date + )) + IndicatorLocationData.objects.create( + indicator_report=indicator_report, + location=location_goal.location, + num_disaggregation=indicator_report.disaggregations.count(), + level_reported=indicator_report.disaggregations.count(), + disaggregation_reported_on=list(indicator_report.disaggregations.values_list( + 'id', flat=True)), + disaggregation={ + '()': {'c': 0, 'd': 0, 'v': 0} + }, + ) + + return indicator_report + + +def create_ir_and_ilds_for_pr(pd, reportable_queryset, next_progress_report, start_date, end_date, due_date): + """ + Create a set of new IndicatorReports and IndicatorLocationData instances per + IndicatorReport instance, with passed-in new dates and new ProgressReport instance + + Arguments: + pd {ProgrammeDocument} -- ProgrammeDocument instnace + reportable_queryset {django.Queryset[Reportable]} -- Reportable queryset on LLO + next_progress_report {ProgressReport} -- Newly generated Progress Report instance + start_date {datetime.datetime} -- Start date for reporting + end_date {datetime.datetime} -- End date for reporting + due_date {datetime.datetime} -- due date for reporting + """ + from indicator.models import ( + IndicatorReport, + Reportable, + ) + + from unicef.models import ProgressReport + + if next_progress_report.report_type != "SR": + if next_progress_report.report_type == "QPR": + queryset = reportable_queryset + + else: + # Filter non-Cluster reportables first + queryset = reportable_queryset.filter( + ca_indicator_used_by_reporting_entity__isnull=True, + is_unicef_hf_indicator=True + ) + + ir_list = list() + + for reportable in queryset: + indicator_report = create_pr_ir_for_reportable( + pd, + reportable, + None, + start_date, + end_date, + due_date, + ) + indicator_report.progress_report = next_progress_report + indicator_report.save() + ir_list.append(indicator_report) + + if next_progress_report.report_type == "HR": + hr_reports = list() + + # If there are no UNICEF HF indicator reports then delete blank ProgressReport + if len(ir_list) == 0: + # Re-assign report_number to new HR + report_number = next_progress_report.report_number + next_progress_report.delete() + + else: + # Pre-populate new HR report_number in case a new Progress Report needs to be generated + report_number = next_progress_report.report_number + 1 + hr_reports.append(next_progress_report) + + # Process cluster Reportables separately + for reportable in reportable_queryset.filter(ca_indicator_used_by_reporting_entity__isnull=False): + cai_indicator = reportable.ca_indicator_used_by_reporting_entity + pai_ir_for_period = None + + # If LLO indicator has ClusterActivity Indicator ID reference, + # find the adopted PartnerActivity indicator from ClusterActivity Indicator + # with LLO's Partner ID + # and grab a corresponding IndicatorReport from ClusterActivity Indicator + # given the start & end date + if cai_indicator: + try: + # Grabbing first adopted partner activity in case + # multiple adopted partner activities happen, although this is illegal state! + pai_indicator = cai_indicator.children \ + .filter(partner_activities__partner=pd.partner) \ + .first() + pai_ir_for_period = pai_indicator.indicator_reports.get( + time_period_start=start_date, + time_period_end=end_date, + ) + + if pai_ir_for_period: + indicator_report = create_pr_ir_for_reportable( + pd, + reportable, + pai_ir_for_period, + pai_ir_for_period.time_period_start, + pai_ir_for_period.time_period_end, + pai_ir_for_period.due_date, + ) + + # Bundle this cluster LLO Indicator report to HR progress report generated so far + # for this iteration if the dates are matching + for hr_report in hr_reports: + if indicator_report.time_period_start == hr_report.start_date \ + and indicator_report.time_period_end == hr_report.end_date \ + and indicator_report.due_date == hr_report.due_date: + indicator_report.progress_report = hr_report + break + + if not indicator_report.progress_report: + # Otherwise, create a brand new HR progress report + # for this cluster LLO Indicator report + new_cluster_hr_progress_report = ProgressReport.objects.create( + start_date=indicator_report.time_period_start, + end_date=indicator_report.time_period_end, + due_date=indicator_report.due_date, + programme_document=pd, + report_type="HR", + report_number=report_number, + is_final=False, + ) + indicator_report.progress_report = new_cluster_hr_progress_report + + # Increment report_number for next HR progress report to be created if needed + report_number += 1 + hr_reports.append(new_cluster_hr_progress_report) + + indicator_report.save() + + except Reportable.DoesNotExist as e: + logger.exception( + "FAILURE: CANNOT FIND adopted PartnerActivity Reportable " + "from given ClusterActivity Reportable and PD Partner ID. " + "Skipping link!", e) + except IndicatorReport.DoesNotExist as e: + logger.exception( + "FAILURE: CANNOT FIND IndicatorReport from adopted PartnerActivity Reportable " + "linked with LLO Reportable. " + "Skipping link!", e) + + +def create_ir_for_cluster(reportable, start_date, end_date, project): + """ + Create a new IndicatorReport and its IndicatorLocationData instances, + with passed-in new dates + + Arguments: + reportable {Reportable} -- Reportable instance to create report for + start_date {datetime.datetime} -- Start date for reporting + end_date {datetime.datetime} -- End date for reporting + project {PartnerProject} -- PartnerProject context to bind + + Returns: + IndicatorReport -- Newly generated IndicatorReport instance + """ + from indicator.models import ( + IndicatorBlueprint, + IndicatorReport, + IndicatorLocationData, + ReportingEntity, + ) + + if reportable.blueprint.unit == IndicatorBlueprint.NUMBER: + logger.info("Creating Indicator {} Quantity IndicatorReport object for {} - {}".format( + reportable, start_date, end_date + )) + + indicator_report = IndicatorReport.objects.create( + reportable=reportable, + project=project, + time_period_start=start_date, + time_period_end=end_date, + due_date=end_date + relativedelta(days=1), + title=reportable.blueprint.title, + total={'c': 0, 'd': 0, 'v': 0}, + overall_status="NoS", + report_status="Due", + submission_date=None, + reporting_entity=ReportingEntity.objects.get(title="Cluster"), + ) + + for location_goal in reportable.reportablelocationgoal_set.filter(is_active=True): + logger.info("Creating IndicatorReport {} IndicatorLocationData object {} - {}".format( + indicator_report, start_date, end_date + )) + + IndicatorLocationData.objects.create( + indicator_report=indicator_report, + location=location_goal.location, + num_disaggregation=indicator_report.disaggregations.count(), + level_reported=indicator_report.disaggregations.count(), + disaggregation_reported_on=list(indicator_report.disaggregations.values_list( + 'id', flat=True)), + disaggregation={ + '()': {'c': 0, 'd': 0, 'v': 0} + }, + ) + + else: + logger.info("Creating Indicator {} Ratio IndicatorReport object for {} - {}".format( + reportable, start_date, end_date + )) + + indicator_report = IndicatorReport.objects.create( + reportable=reportable, + project=project, + time_period_start=start_date, + time_period_end=end_date, + due_date=end_date + relativedelta(days=1), + title=reportable.blueprint.title, + total={'c': 0, 'd': 0, 'v': 0}, + overall_status="NoS", + report_status="Due", + submission_date=None, + reporting_entity=ReportingEntity.objects.get(title="Cluster"), + ) + + for location_goal in reportable.reportablelocationgoal_set.filter(is_active=True): + logger.info("Creating IndicatorReport {} IndicatorLocationData object {} - {}".format( + indicator_report, start_date, end_date + )) + + IndicatorLocationData.objects.create( + indicator_report=indicator_report, + location=location_goal.location, + num_disaggregation=indicator_report.disaggregations.count(), + level_reported=indicator_report.disaggregations.count(), + disaggregation_reported_on=list(indicator_report.disaggregations.values_list( + 'id', flat=True)), + disaggregation={ + '()': {'c': 0, 'd': 0, 'v': 0} + }, + ) + + return indicator_report diff --git a/django_api/django_api/apps/core/management/commands/_privates.py b/django_api/django_api/apps/core/management/commands/_privates.py index ca21d35c4..c5c70fec6 100644 --- a/django_api/django_api/apps/core/management/commands/_privates.py +++ b/django_api/django_api/apps/core/management/commands/_privates.py @@ -64,16 +64,17 @@ RatioReportableToClusterObjectiveFactory, QuantityReportableToPartnerActivityFactory, QuantityReportableToClusterActivityFactory, - QuantityIndicatorReportFactory, + ProgressReportIndicatorReportFactory, + # QuantityIndicatorReportFactory, LocationWithReportableLocationGoalFactory, - RatioIndicatorReportFactory, + # RatioIndicatorReportFactory, # UserFactory, ClusterFactory, ClusterObjectiveFactory, ClusterActivityFactory, PartnerFactory, PartnerProjectFactory, - PartnerActivityFactory, + ClusterActivityPartnerActivityFactory, SectionFactory, ProgrammeDocumentFactory, ProgressReportFactory, @@ -83,8 +84,9 @@ GatewayTypeFactory, CartoDBTableFactory, CountryFactory, - ReportingPeriodDatesFactory, - PRPRoleFactory, + HRReportingPeriodDatesFactory, + QPRReportingPeriodDatesFactory, + ClusterPRPRoleFactory, ) from core.common import ( INDICATOR_REPORT_STATUS, @@ -96,10 +98,10 @@ ) from core.countries import COUNTRIES_ALPHA2_CODE -from ._generate_disaggregation_fake_data import ( - generate_indicator_report_location_disaggregation_quantity_data, - generate_indicator_report_location_disaggregation_ratio_data, -) +# from ._generate_disaggregation_fake_data import ( +# generate_indicator_report_location_disaggregation_quantity_data, +# generate_indicator_report_location_disaggregation_ratio_data, +# ) from core.tasks import process_workspaces, process_period_reports from indicator.tasks import process_due_reports @@ -186,7 +188,7 @@ def generate_fake_data(workspace_quantity=10, generate_all_disagg=False): # Cluster admin creation sys_admin, _ = User.objects.get_or_create(username='cluster_admin', defaults={ - 'email': 'cluster_admin@notanemail.com', + 'email': 'cluster_admin@example.com', 'is_superuser': True, 'is_staff': True, 'first_name': 'Cluster', @@ -196,7 +198,7 @@ def generate_fake_data(workspace_quantity=10, generate_all_disagg=False): sys_admin.save() # Give Cluster admin role to cluster_admin User - PRPRoleFactory( + ClusterPRPRoleFactory( user=sys_admin, role=PRP_ROLE_TYPES.cluster_system_admin, workspace=None, @@ -207,7 +209,7 @@ def generate_fake_data(workspace_quantity=10, generate_all_disagg=False): print("{} Section objects created".format(workspace_quantity)) unicef_re = ReportingEntity.objects.get(title="UNICEF") - cluster_re = ReportingEntity.objects.get(title="Cluster") + # cluster_re = ReportingEntity.objects.get(title="Cluster") ws_list = list() @@ -268,7 +270,7 @@ def generate_fake_data(workspace_quantity=10, generate_all_disagg=False): # Cluster IMO creation imo, _ = User.objects.get_or_create(username='cluster_imo', defaults={ - 'email': 'cluster_imo@notanemail.com', + 'email': 'cluster_imo@example.com', 'is_superuser': True, 'is_staff': True, 'first_name': 'Cluster', @@ -292,7 +294,7 @@ def generate_fake_data(workspace_quantity=10, generate_all_disagg=False): ) # Give Cluster IMO role in this cluster to cluster_admin User - PRPRoleFactory( + ClusterPRPRoleFactory( user=imo, role=PRP_ROLE_TYPES.cluster_imo, workspace=response_plan.workspace, @@ -308,14 +310,14 @@ def generate_fake_data(workspace_quantity=10, generate_all_disagg=False): if random.randint(0, 1) == 0: reportable = RatioReportableToClusterObjectiveFactory( content_object=co, - indicator_report__progress_report=None, - indicator_report__reporting_entity=cluster_re, + # indicator_report__progress_report=None, + # indicator_report__reporting_entity=cluster_re, ) else: reportable = QuantityReportableToClusterObjectiveFactory( content_object=co, - indicator_report__progress_report=None, - indicator_report__reporting_entity=cluster_re, + # indicator_report__progress_report=None, + # indicator_report__reporting_entity=cluster_re, ) for loc in locations[:2]: @@ -332,9 +334,9 @@ def generate_fake_data(workspace_quantity=10, generate_all_disagg=False): partner = PartnerFactory( title="{} - {} Cluster Partner".format( - cluster.response_plan.title, cluster.type.upper()), - partner_activity=None, - partner_project=None, + cluster.response_plan.title, cluster.type.upper())[:50], + # partner_activity=None, + # partner_project=None, ) partner.clusters.add(cluster) @@ -366,7 +368,7 @@ def generate_fake_data(workspace_quantity=10, generate_all_disagg=False): # Partner AO creation ao, _ = User.objects.get_or_create(username='partner_ao', defaults={ - 'email': 'partner_ao@notanemail.com', + 'email': 'partner_ao@example.com', 'is_superuser': True, 'is_staff': True, 'first_name': 'Partner', @@ -378,7 +380,7 @@ def generate_fake_data(workspace_quantity=10, generate_all_disagg=False): # Partner Editor creation editor, _ = User.objects.get_or_create(username='partner_editor', defaults={ - 'email': 'partner_editor@notanemail.com', + 'email': 'partner_editor@example.com', 'is_superuser': True, 'is_staff': True, 'first_name': 'Partner', @@ -390,7 +392,7 @@ def generate_fake_data(workspace_quantity=10, generate_all_disagg=False): # Partner Viewer creation viewer, _ = User.objects.get_or_create(username='partner_viewer', defaults={ - 'email': 'partner_viewer@notanemail.com', + 'email': 'partner_viewer@example.com', 'is_superuser': True, 'is_staff': True, 'first_name': 'Partner', @@ -402,7 +404,7 @@ def generate_fake_data(workspace_quantity=10, generate_all_disagg=False): # Partner Admin creation admin, _ = User.objects.get_or_create(username='partner_admin', defaults={ - 'email': 'partner_admin@notanemail.com', + 'email': 'partner_admin@example.com', 'is_superuser': True, 'is_staff': True, 'first_name': 'Partner', @@ -413,7 +415,7 @@ def generate_fake_data(workspace_quantity=10, generate_all_disagg=False): partner_users.append(admin) # Give Cluster IMO role in this cluster to cluster_admin User - PRPRoleFactory( + ClusterPRPRoleFactory( user=imo, role=PRP_ROLE_TYPES.cluster_imo, workspace=None, @@ -439,7 +441,7 @@ def generate_fake_data(workspace_quantity=10, generate_all_disagg=False): elif 'admin' in u.username: role = PRP_ROLE_TYPES.ip_admin - PRPRoleFactory( + ClusterPRPRoleFactory( user=u, role=role, workspace=workspace, @@ -455,8 +457,8 @@ def generate_fake_data(workspace_quantity=10, generate_all_disagg=False): reportable = QuantityReportableToClusterActivityFactory( content_object=ca, - indicator_report__progress_report=None, - indicator_report__reporting_entity=cluster_re, + # indicator_report__progress_report=None, + # indicator_report__reporting_entity=cluster_re, ) for loc in locations[:2]: @@ -486,8 +488,8 @@ def generate_fake_data(workspace_quantity=10, generate_all_disagg=False): reportable = QuantityReportableToPartnerProjectFactory( content_object=pp, - indicator_report__progress_report=None, - indicator_report__reporting_entity=cluster_re, + # indicator_report__progress_report=None, + # indicator_report__reporting_entity=cluster_re, ) for loc in locations[:2]: @@ -511,17 +513,17 @@ def generate_fake_data(workspace_quantity=10, generate_all_disagg=False): partner = cluster_activity.cluster_objective.cluster.partners.first() for project in partner.partner_projects.all(): - pa = PartnerActivityFactory( + pa = ClusterActivityPartnerActivityFactory( partner=project.partner, - project=project, + # project=project, cluster_activity=cluster_activity, title="{} Partner Activity from CA".format(project.title) ) reportable_to_pa = QuantityReportableToPartnerActivityFactory( content_object=pa, - indicator_report__progress_report=None, - indicator_report__reporting_entity=cluster_re, + # indicator_report__progress_report=None, + # indicator_report__reporting_entity=cluster_re, ) reportable_to_pa.parent_indicator = cluster_activity.reportables.first() reportable_to_pa.save() @@ -538,9 +540,9 @@ def generate_fake_data(workspace_quantity=10, generate_all_disagg=False): reportable=reportable_to_pa ) - pa = PartnerActivityFactory( + pa = ClusterActivityPartnerActivityFactory( partner=project.partner, - project=project, + # project=project, cluster_activity=None, cluster_objective=cluster_activity.cluster_objective, title="{} Partner Activity".format(project.title) @@ -548,8 +550,8 @@ def generate_fake_data(workspace_quantity=10, generate_all_disagg=False): reportable_to_pa = QuantityReportableToPartnerActivityFactory( content_object=pa, - indicator_report__progress_report=None, - indicator_report__reporting_entity=cluster_re, + # indicator_report__progress_report=None, + # indicator_report__reporting_entity=cluster_re, ) for loc in locations[:2]: @@ -586,45 +588,40 @@ def generate_fake_data(workspace_quantity=10, generate_all_disagg=False): for month in range(1, 13): monthrange = calendar.monthrange(now.year, month) - ReportingPeriodDatesFactory( + HRReportingPeriodDatesFactory( programme_document=pd, - report_type="HR", start_date=datetime.datetime(now.year, month, 1), end_date=datetime.datetime(now.year, month, monthrange[1]), due_date=datetime.datetime(now.year, month, monthrange[1]), ) # Q1 - ReportingPeriodDatesFactory( + QPRReportingPeriodDatesFactory( programme_document=pd, - report_type="QPR", start_date=datetime.datetime(now.year, 1, 1), end_date=datetime.datetime(now.year, 3, 31), due_date=datetime.datetime(now.year, 3, 31), ) # Q2 - ReportingPeriodDatesFactory( + QPRReportingPeriodDatesFactory( programme_document=pd, - report_type="QPR", start_date=datetime.datetime(now.year, 4, 1), end_date=datetime.datetime(now.year, 6, 30), due_date=datetime.datetime(now.year, 6, 30), ) # Q3 - ReportingPeriodDatesFactory( + QPRReportingPeriodDatesFactory( programme_document=pd, - report_type="QPR", start_date=datetime.datetime(now.year, 7, 1), end_date=datetime.datetime(now.year, 9, 30), due_date=datetime.datetime(now.year, 9, 30), ) # Q4 - ReportingPeriodDatesFactory( + QPRReportingPeriodDatesFactory( programme_document=pd, - report_type="QPR", start_date=datetime.datetime(now.year, 10, 1), end_date=datetime.datetime(now.year, 12, 31), due_date=datetime.datetime(now.year, 12, 31), @@ -736,7 +733,7 @@ def generate_initial_progress_reports(report_type): for reportable in queryset: if reportable.blueprint.unit == IndicatorBlueprint.NUMBER: - QuantityIndicatorReportFactory( + ProgressReportIndicatorReportFactory( reportable=reportable, progress_report=progress_report, overall_status=status, @@ -746,7 +743,7 @@ def generate_initial_progress_reports(report_type): reporting_entity=unicef_re, ) elif reportable.blueprint.unit == IndicatorBlueprint.PERCENTAGE: - RatioIndicatorReportFactory( + ProgressReportIndicatorReportFactory( reportable=reportable, progress_report=progress_report, overall_status=status, @@ -806,11 +803,11 @@ def generate_initial_progress_reports(report_type): print("ProgrammeDocument <-> QuantityReportableToLowerLevelOutput <-> IndicatorReport objects linked") - print("Generating IndicatorLocationData for Quantity type") - generate_indicator_report_location_disaggregation_quantity_data(generate_all=generate_all_disagg) + # print("Generating IndicatorLocationData for Quantity type") + # generate_indicator_report_location_disaggregation_quantity_data(generate_all=generate_all_disagg) - print("Generating IndicatorLocationData for Ratio type") - generate_indicator_report_location_disaggregation_ratio_data(generate_all=generate_all_disagg) + # print("Generating IndicatorLocationData for Ratio type") + # generate_indicator_report_location_disaggregation_ratio_data(generate_all=generate_all_disagg) # Disaggregation association fix for CAI LLO indicators for indicator in cai_llo_queryset: diff --git a/django_api/django_api/apps/core/migrations/0005_auto_20190522_1759.py b/django_api/django_api/apps/core/migrations/0005_auto_20190522_1759.py new file mode 100644 index 000000000..e38514598 --- /dev/null +++ b/django_api/django_api/apps/core/migrations/0005_auto_20190522_1759.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.20 on 2019-05-22 17:59 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0004_auto_20181024_0034'), + ] + + operations = [ + migrations.AlterField( + model_name='location', + name='external_source', + field=models.TextField(blank=True, choices=[('HPC', 'HPC'), ('OPS', 'OPS'), ('UNICEF', 'UNICEF')], null=True), + ), + migrations.AlterField( + model_name='prprole', + name='external_source', + field=models.TextField(blank=True, choices=[('HPC', 'HPC'), ('OPS', 'OPS'), ('UNICEF', 'UNICEF')], null=True), + ), + migrations.AlterField( + model_name='responseplan', + name='external_source', + field=models.TextField(blank=True, choices=[('HPC', 'HPC'), ('OPS', 'OPS'), ('UNICEF', 'UNICEF')], null=True), + ), + migrations.AlterField( + model_name='workspace', + name='external_source', + field=models.TextField(blank=True, choices=[('HPC', 'HPC'), ('OPS', 'OPS'), ('UNICEF', 'UNICEF')], null=True), + ), + ] diff --git a/django_api/django_api/apps/core/migrations/0006_gatewaytype_display_name.py b/django_api/django_api/apps/core/migrations/0006_gatewaytype_display_name.py new file mode 100644 index 000000000..3e9f6fb51 --- /dev/null +++ b/django_api/django_api/apps/core/migrations/0006_gatewaytype_display_name.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.20 on 2019-08-05 21:30 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0005_auto_20190522_1759'), + ] + + operations = [ + migrations.AddField( + model_name='gatewaytype', + name='display_name', + field=models.CharField(blank=True, max_length=64, null=True, verbose_name='Display Name'), + ), + ] diff --git a/django_api/django_api/apps/core/mixins.py b/django_api/django_api/apps/core/mixins.py index 2d32e5c6e..87a786e07 100644 --- a/django_api/django_api/apps/core/mixins.py +++ b/django_api/django_api/apps/core/mixins.py @@ -28,7 +28,7 @@ def social_details(backend, details, response, *args, **kwargs): email = r['details'].get('email') if isinstance(email, str): - r['details']['email'] = email.lower() + r['details']['email'] = email.lower().strip() return r @@ -118,7 +118,7 @@ def get_redirect_uri(self, request, exception): # TODO: In case of password reset the state can't be verified figure out a way to log the user in after reset if error is None: - return "/login" + return "/landing" strategy = getattr(request, 'social_strategy', None) return strategy.setting('LOGIN_ERROR_URL') diff --git a/django_api/django_api/apps/core/models.py b/django_api/django_api/apps/core/models.py index 16efb7027..f8e97a8c9 100644 --- a/django_api/django_api/apps/core/models.py +++ b/django_api/django_api/apps/core/models.py @@ -498,6 +498,7 @@ class GatewayType(TimeStampedModel): """ name = models.CharField(max_length=64, unique=True, verbose_name=_('Name')) + display_name = models.CharField(max_length=64, blank=True, null=True, verbose_name=_('Display Name')) admin_level = models.PositiveSmallIntegerField(verbose_name=_('Admin Level')) country = models.ForeignKey(Country, related_name="gateway_types") diff --git a/django_api/django_api/apps/core/serializers.py b/django_api/django_api/apps/core/serializers.py index 2fe3a7f22..8a2adc598 100644 --- a/django_api/django_api/apps/core/serializers.py +++ b/django_api/django_api/apps/core/serializers.py @@ -38,6 +38,14 @@ class Meta: class LocationSerializer(serializers.ModelSerializer): admin_level = serializers.CharField(source="gateway.admin_level") + title = serializers.SerializerMethodField() + + def get_title(self, obj): + return "%s [%s - %s]" % ( + obj.title, + obj.gateway.display_name if obj.gateway.display_name else obj.gateway.name, + obj.p_code if obj.p_code else "n/a" + ) class Meta: model = Location @@ -48,17 +56,25 @@ class ShortLocationSerializer(serializers.ModelSerializer): id = serializers.SerializerMethodField() title = serializers.SerializerMethodField() + admin_level = serializers.SerializerMethodField() class Meta: model = Location - fields = ('id', 'title') + fields = ('id', 'title', 'admin_level') def get_title(self, obj): - return "%s [%s - %s]" % (obj.title, obj.gateway.name, obj.p_code if obj.p_code else "n/a") + return "%s [%s - %s]" % ( + obj.title, + obj.gateway.display_name if obj.gateway.display_name else obj.gateway.name, + obj.p_code if obj.p_code else "n/a" + ) def get_id(self, obj): return str(obj.id) + def get_admin_level(self, obj): + return obj.gateway.admin_level + class IdLocationSerializer(serializers.ModelSerializer): diff --git a/django_api/django_api/apps/core/tasks.py b/django_api/django_api/apps/core/tasks.py index f1ce2ffcd..7f5ea6e39 100644 --- a/django_api/django_api/apps/core/tasks.py +++ b/django_api/django_api/apps/core/tasks.py @@ -1,6 +1,5 @@ import logging from datetime import datetime, timedelta -from dateutil.relativedelta import relativedelta from celery import shared_task from django.db import transaction @@ -16,10 +15,13 @@ from core.helpers import ( calculate_end_date_given_start_date, find_missing_frequency_period_dates_for_indicator_report, + get_latest_pr_by_type, + create_pr_for_report_type, + create_ir_and_ilds_for_pr, + create_ir_for_cluster, ) -from unicef.models import ProgrammeDocument, ProgressReport -from indicator.models import Reportable, IndicatorBlueprint, IndicatorReport, ReportingEntity, IndicatorLocationData - +from unicef.models import ProgrammeDocument +from indicator.models import Reportable logger = logging.getLogger(__name__) DUE_DATE_DAYS_TIMEDELTA = 15 @@ -69,10 +71,11 @@ def process_period_reports(): ): logger.info("Processing Reportable {}".format(reportable)) - if reportable.locations.count() == 0: + if reportable.reportablelocationgoal_set.count() == 0: continue frequency = reportable.frequency + reportable_type = reportable.content_type.model latest_indicator_report = reportable.indicator_reports.order_by('time_period_end').last() if frequency == PD_FREQUENCY_LEVEL.custom_specific_dates: @@ -127,98 +130,17 @@ def process_period_reports(): else: end_date = calculate_end_date_given_start_date(start_date, frequency) - if reportable.blueprint.unit == IndicatorBlueprint.NUMBER: - logger.info("Creating Indicator {} Quantity IndicatorReport object for {} - {}".format( - reportable, start_date, end_date - )) - - indicator_report = IndicatorReport.objects.create( - reportable=reportable, - time_period_start=start_date, - time_period_end=end_date, - due_date=end_date + relativedelta(days=1), - title=reportable.blueprint.title, - total={'c': 0, 'd': 0, 'v': 0}, - overall_status="NoS", - report_status="Due", - submission_date=None, - reporting_entity=ReportingEntity.objects.get(title="Cluster"), - ) - - for location in reportable.locations.all(): - logger.info("Creating IndicatorReport {} IndicatorLocationData object {} - {}".format( - indicator_report, start_date, end_date - )) - - IndicatorLocationData.objects.create( - indicator_report=indicator_report, - location=location, - num_disaggregation=indicator_report.disaggregations.count(), - level_reported=indicator_report.disaggregations.count(), - disaggregation_reported_on=list(indicator_report.disaggregations.values_list( - 'id', flat=True)), - disaggregation={ - '()': {'c': 0, 'd': 0, 'v': 0} - }, - ) + if reportable_type == 'partneractivity': + projects = reportable.content_object.projects.all() + for project in projects: + create_ir_for_cluster(reportable, start_date, end_date, project) else: - logger.info("Creating Indicator {} Ratio IndicatorReport object for {} - {}".format( - reportable, start_date, end_date - )) - - indicator_report = IndicatorReport.objects.create( - reportable=reportable, - time_period_start=start_date, - time_period_end=end_date, - due_date=end_date + relativedelta(days=1), - title=reportable.blueprint.title, - total={'c': 0, 'd': 0, 'v': 0}, - overall_status="NoS", - report_status="Due", - submission_date=None, - reporting_entity=ReportingEntity.objects.get(title="Cluster"), - ) - - for location in reportable.locations.all(): - logger.info("Creating IndicatorReport {} IndicatorLocationData object {} - {}".format( - indicator_report, start_date, end_date - )) - - IndicatorLocationData.objects.create( - indicator_report=indicator_report, - location=location, - num_disaggregation=indicator_report.disaggregations.count(), - level_reported=indicator_report.disaggregations.count(), - disaggregation_reported_on=list(indicator_report.disaggregations.values_list( - 'id', flat=True)), - disaggregation={ - '()': {'c': 0, 'd': 0, 'v': 0} - }, - ) - - def get_latest_pr_by_type(pd, report_type): - """ - Return latest ProgressReport instance given report_type - - Arguments: - report_type {str} -- A report type as string: [QPR, HR, SR] - - Returns: - ProgressReport -- Latest ProgressReport instance for given report_type - """ - - if report_type == "QPR": - return pd.progress_reports \ - .filter(report_type="QPR").order_by('start_date').last() - - if report_type == "HR": - return pd.progress_reports \ - .filter(report_type="HR").order_by('start_date').last() - - if report_type == "SR": - return pd.progress_reports \ - .filter(report_type="SR").order_by('due_date').last() + project = None + if reportable_type == 'partnerproject': + project = reportable.content_object + + create_ir_for_cluster(reportable, start_date, end_date, project) # PD report generation for pd in ProgrammeDocument.objects.filter(status=PD_STATUS.active): @@ -249,242 +171,6 @@ def get_latest_pr_by_type(pd, report_type): logger.info("Last HR report: %s for PD %s" % (generate_from_date_hr, pd)) logger.info("Last SR report: %s for PD %s" % (generate_from_date_sr, pd)) - def create_pr_for_report_type(reporting_period, generate_from_date): - """ - Create ProgressReport instance by its ReportingPeriodDate instance's report type - - Arguments: - reporting_period {ReportingPeriodDates} -- ReportingPeriodDates instance for new ProgressReport - generate_from_date {datetime.datetime} -- datetime instance from latest ProgressReport on same report - - Returns: - Tuple[ProgressReport, datetime.datetime, datetime.datetime, datetime.datetime] - - Newly generated ProgressReport & 3 datetime objects - """ - - end_date = reporting_period.end_date - due_date = reporting_period.due_date - start_date = reporting_period.start_date - - # Create ProgressReport first - logger.info("Creating ProgressReport for {} - {}".format(start_date, end_date)) - - # Re-query latest ProgressReport by report type - latest_progress_report = get_latest_pr_by_type(pd, reporting_period.report_type) - - if latest_progress_report: - report_type = latest_progress_report.report_type - report_number = latest_progress_report.report_number + 1 - is_final = idx == pd.reporting_periods.filter(report_type=reporting_period.report_type).count() - 1 - - else: - report_number = 1 - report_type = reporting_period.report_type - is_final = False - - next_progress_report = ProgressReport.objects.create( - start_date=start_date, - end_date=end_date, - due_date=due_date, - programme_document=pd, - report_type=report_type, - report_number=report_number, - is_final=is_final, - ) - - return (next_progress_report, start_date, end_date, due_date) - - def create_pr_ir_for_reportable(reportable, pai_ir_for_period, start_date, end_date, due_date): - if reportable.blueprint.unit == IndicatorBlueprint.NUMBER: - logger.info("Creating Quantity IndicatorReport for {} - {}".format(start_date, end_date)) - indicator_report = IndicatorReport.objects.create( - progress_report=None, - reportable=reportable, - parent=pai_ir_for_period, - time_period_start=start_date, - time_period_end=end_date, - due_date=due_date, - title=reportable.blueprint.title, - total={'c': 0, 'd': 0, 'v': 0}, - overall_status="NoS", - report_status="Due", - submission_date=None, - reporting_entity=ReportingEntity.objects.get(title="UNICEF"), - ) - - for location in reportable.locations.all(): - logger.info("Creating IndicatorReport {} IndicatorLocationData for {} - {}".format( - indicator_report, start_date, end_date - )) - IndicatorLocationData.objects.create( - indicator_report=indicator_report, - location=location, - num_disaggregation=indicator_report.disaggregations.count(), - level_reported=indicator_report.disaggregations.count(), - disaggregation_reported_on=list(indicator_report.disaggregations.values_list( - 'id', flat=True)), - disaggregation={ - '()': {'c': 0, 'd': 0, 'v': 0} - }, - ) - - else: - logger.info("Creating PD {} Ratio IndicatorReport for {} - {}".format(pd, start_date, end_date)) - indicator_report = IndicatorReport.objects.create( - progress_report=None, - reportable=reportable, - parent=pai_ir_for_period, - time_period_start=start_date, - time_period_end=end_date, - due_date=due_date, - title=reportable.blueprint.title, - total={'c': 0, 'd': 0, 'v': 0}, - overall_status="NoS", - report_status="Due", - submission_date=None, - reporting_entity=ReportingEntity.objects.get(title="UNICEF"), - ) - - for location in reportable.locations.all(): - logger.info("Creating IndicatorReport {} IndicatorLocationData {} - {}".format( - indicator_report, start_date, end_date - )) - IndicatorLocationData.objects.create( - indicator_report=indicator_report, - location=location, - num_disaggregation=indicator_report.disaggregations.count(), - level_reported=indicator_report.disaggregations.count(), - disaggregation_reported_on=list(indicator_report.disaggregations.values_list( - 'id', flat=True)), - disaggregation={ - '()': {'c': 0, 'd': 0, 'v': 0} - }, - ) - - return indicator_report - - def create_ir_and_ilds_for_pr(reportable_queryset, next_progress_report, start_date, end_date, due_date): - """ - Create a set of new IndicatorReports and IndicatorLocationData instances per - IndicatorReport instance, with passed-in new dates and new ProgressReport instance - Arguments: - reportable_queryset {django.Queryset[Reportable]} -- Reportable queryset on LLO - next_progress_report {ProgressReport} -- Newly generated Progress Report instance - start_date {datetime.datetime} -- Start date for reporting - end_date {datetime.datetime} -- End date for reporting - due_date {datetime.datetime} -- due date for reporting - """ - - if next_progress_report.report_type != "SR": - if next_progress_report.report_type == "QPR": - queryset = reportable_queryset - - else: - # Filter non-Cluster reportables first - queryset = reportable_queryset.filter( - ca_indicator_used_by_reporting_entity__isnull=True, - is_unicef_hf_indicator=True - ) - - ir_list = list() - - for reportable in queryset: - indicator_report = create_pr_ir_for_reportable( - reportable, - None, - start_date, - end_date, - due_date, - ) - indicator_report.progress_report = next_progress_report - indicator_report.save() - ir_list.append(indicator_report) - - if next_progress_report.report_type == "HR": - hr_reports = list() - - # If there are no UNICEF HF indicator reports then delete blank ProgressReport - if len(ir_list) == 0: - # Re-assign report_number to new HR - report_number = next_progress_report.report_number - next_progress_report.delete() - - else: - # Pre-populate new HR report_number in case a new Progress Report needs to be generated - report_number = next_progress_report.report_number + 1 - hr_reports.append(next_progress_report) - - # Process cluster Reportables separately - for reportable in reportable_queryset.filter(ca_indicator_used_by_reporting_entity__isnull=False): - cai_indicator = reportable.ca_indicator_used_by_reporting_entity - pai_ir_for_period = None - - # If LLO indicator has ClusterActivity Indicator ID reference, - # find the adopted PartnerActivity indicator from ClusterActivity Indicator - # with LLO's Partner ID - # and grab a corresponding IndicatorReport from ClusterActivity Indicator - # given the start & end date - if cai_indicator: - try: - # Grabbing first adopted partner activity in case - # multiple adopted partner activities happen, although this is illegal state! - pai_indicator = cai_indicator.children \ - .filter(partner_activities__partner=pd.partner) \ - .first() - pai_ir_for_period = pai_indicator.indicator_reports.get( - time_period_start=start_date, - time_period_end=end_date, - ) - - if pai_ir_for_period: - indicator_report = create_pr_ir_for_reportable( - reportable, - pai_ir_for_period, - pai_ir_for_period.time_period_start, - pai_ir_for_period.time_period_end, - pai_ir_for_period.due_date, - ) - - # Bundle this cluster LLO Indicator report to HR progress report generated so far - # for this iteration if the dates are matching - for hr_report in hr_reports: - if indicator_report.time_period_start == hr_report.start_date \ - and indicator_report.time_period_end == hr_report.end_date \ - and indicator_report.due_date == hr_report.due_date: - indicator_report.progress_report = hr_report - break - - if not indicator_report.progress_report: - # Otherwise, create a brand new HR progress report - # for this cluster LLO Indicator report - new_cluster_hr_progress_report = ProgressReport.objects.create( - start_date=indicator_report.time_period_start, - end_date=indicator_report.time_period_end, - due_date=indicator_report.due_date, - programme_document=pd, - report_type="HR", - report_number=report_number, - is_final=False, - ) - indicator_report.progress_report = new_cluster_hr_progress_report - - # Increment report_number for next HR progress report to be created if needed - report_number += 1 - hr_reports.append(new_cluster_hr_progress_report) - - indicator_report.save() - - except Reportable.DoesNotExist as e: - logger.exception( - "FAILURE: CANNOT FIND adopted PartnerActivity Reportable " - "from given ClusterActivity Reportable and PD Partner ID. " - "Skipping link!", e) - except IndicatorReport.DoesNotExist as e: - logger.exception( - "FAILURE: CANNOT FIND IndicatorReport from adopted PartnerActivity Reportable " - "linked with LLO Reportable. " - "Skipping link!", e) - with transaction.atomic(): # Handling QPR reporting periods for idx, reporting_period in enumerate(pd.reporting_periods.filter(report_type="QPR").order_by( @@ -500,10 +186,11 @@ def create_ir_and_ilds_for_pr(reportable_queryset, next_progress_report, start_d continue next_progress_report, start_date, end_date, due_date = create_pr_for_report_type( - reporting_period, generate_from_date_qpr + pd, idx, reporting_period, generate_from_date_qpr ) create_ir_and_ilds_for_pr( + pd, reportable_queryset, next_progress_report, start_date, @@ -531,10 +218,11 @@ def create_ir_and_ilds_for_pr(reportable_queryset, next_progress_report, start_d continue next_progress_report, start_date, end_date, due_date = create_pr_for_report_type( - reporting_period, generate_from_date_hr + pd, idx, reporting_period, generate_from_date_hr ) create_ir_and_ilds_for_pr( + pd, reportable_queryset, next_progress_report, start_date, @@ -555,10 +243,11 @@ def create_ir_and_ilds_for_pr(reportable_queryset, next_progress_report, start_d continue next_progress_report, start_date, end_date, due_date = create_pr_for_report_type( - reporting_period, generate_from_date_sr + pd, idx, reporting_period, generate_from_date_sr ) create_ir_and_ilds_for_pr( + pd, reportable_queryset, next_progress_report, start_date, diff --git a/django_api/django_api/apps/core/tests/test_views.py b/django_api/django_api/apps/core/tests/test_views.py index 2535628ee..6980c505e 100644 --- a/django_api/django_api/apps/core/tests/test_views.py +++ b/django_api/django_api/apps/core/tests/test_views.py @@ -159,7 +159,7 @@ def test_list_api(self): expected = Location.objects.filter(pk__in=pks).count() self.assertEquals(response.status_code, status.HTTP_200_OK) - self.assertEquals(len(response.data), expected) + self.assertEquals(len(response.data['results']), expected) def test_api_filtering(self): url = reverse( diff --git a/django_api/django_api/apps/core/views.py b/django_api/django_api/apps/core/views.py index 2e2d1a90c..bed918752 100644 --- a/django_api/django_api/apps/core/views.py +++ b/django_api/django_api/apps/core/views.py @@ -12,6 +12,7 @@ from djcelery.models import PeriodicTask +from core.paginations import SmallPagination from core.common import DISPLAY_CLUSTER_TYPES, PARTNER_PROJECT_STATUS from id_management.permissions import RoleGroupCreateUpdateDestroyPermission from utils.serializers import serialize_choices @@ -51,6 +52,7 @@ class LocationListAPIView(ListAPIView): Endpoint for getting all Location objects belonging to the response plan. """ permission_classes = (IsAuthenticated, ) + pagination_class = SmallPagination serializer_class = ShortLocationSerializer lookup_field = lookup_url_kwarg = 'response_plan_id' filter_backends = (django_filters.rest_framework.DjangoFilterBackend, ) diff --git a/django_api/django_api/apps/id_management/permissions.py b/django_api/django_api/apps/id_management/permissions.py index 1a3810dec..32b25c076 100644 --- a/django_api/django_api/apps/id_management/permissions.py +++ b/django_api/django_api/apps/id_management/permissions.py @@ -79,7 +79,7 @@ def has_object_permission(self, request, view, obj): workspace_kwargs = {'workspace__isnull': False, 'workspace_id': obj.workspace_id} if ((ROLES.ip_admin == role_in_payload or - obj.role == ROLES.ip_admin and request.method == 'POST') and + obj.role == ROLES.ip_admin and (request.method == 'POST' or request.method == 'PATCH')) and user.prp_roles.filter(role__in=(ROLES.ip_admin, ROLES.ip_authorized_officer), **workspace_kwargs)): return True @@ -89,7 +89,7 @@ def has_object_permission(self, request, view, obj): return True if (obj_roles_set.issubset({ROLES.ip_editor, ROLES.ip_viewer}) and - user.prp_roles.filter(role=ROLES.ip_admin, **workspace_kwargs).exists()): + user.prp_roles.filter(role__in=(ROLES.ip_admin, ROLES.ip_authorized_officer), **workspace_kwargs).exists()): return True return False diff --git a/django_api/django_api/apps/id_management/tests/test_permissions.py b/django_api/django_api/apps/id_management/tests/test_permissions.py index 2aa92d4df..9ef86f4c3 100644 --- a/django_api/django_api/apps/id_management/tests/test_permissions.py +++ b/django_api/django_api/apps/id_management/tests/test_permissions.py @@ -686,7 +686,7 @@ class TestUpdateDestroyPermissionsForIPAdmin(APITestCase): def setUp(self): self.roles_without_permission = [PRP_ROLE_TYPES.cluster_system_admin, PRP_ROLE_TYPES.cluster_imo, PRP_ROLE_TYPES.cluster_coordinator, PRP_ROLE_TYPES.cluster_viewer, - PRP_ROLE_TYPES.ip_admin, PRP_ROLE_TYPES.ip_editor, PRP_ROLE_TYPES.ip_viewer] + PRP_ROLE_TYPES.ip_editor, PRP_ROLE_TYPES.ip_viewer] self.perm = RoleGroupCreateUpdateDestroyPermission() self.factory = APIRequestFactory() @@ -785,10 +785,10 @@ def test_permission_as_ip_authorized_officer__partner_match__workspace_match(sel (PRP_ROLE_TYPES.cluster_coordinator, False), (PRP_ROLE_TYPES.cluster_member, False), (PRP_ROLE_TYPES.cluster_viewer, False), - (PRP_ROLE_TYPES.ip_authorized_officer, False), + (PRP_ROLE_TYPES.ip_authorized_officer, True), (PRP_ROLE_TYPES.ip_admin, False), - (PRP_ROLE_TYPES.ip_editor, False), - (PRP_ROLE_TYPES.ip_viewer, False), + (PRP_ROLE_TYPES.ip_editor, True), + (PRP_ROLE_TYPES.ip_viewer, True), ] for role_to_assign, return_value in roles_to_assign: @@ -1001,7 +1001,7 @@ def test_permission_as_ip_authorized_officer__partner_match__workspace_match(sel (PRP_ROLE_TYPES.ip_authorized_officer, False), (PRP_ROLE_TYPES.ip_admin, True), (PRP_ROLE_TYPES.ip_editor, False), - (PRP_ROLE_TYPES.ip_viewer, False), + (PRP_ROLE_TYPES.ip_viewer, True), ] for role_to_assign, return_value in roles_to_assign: @@ -1012,7 +1012,7 @@ def test_permission_as_ip_authorized_officer__partner_match__workspace_match(sel request = self.factory.delete(reverse('role-group-update-destroy', args=[self.role.id])) request.user = request_user request.data = {} - self.assertFalse(self.perm.has_object_permission(request, None, self.role)) + self.assertTrue(self.perm.has_object_permission(request, None, self.role)) def test_permission_as_ip_authorized_officer__partner_match__no_workspace_match(self): request_user_role = PRP_ROLE_TYPES.ip_authorized_officer @@ -1337,7 +1337,7 @@ def test_permission_as_ip_authorized_officer__partner_match__workspace_match(sel (PRP_ROLE_TYPES.cluster_viewer, False), (PRP_ROLE_TYPES.ip_authorized_officer, False), (PRP_ROLE_TYPES.ip_admin, True), - (PRP_ROLE_TYPES.ip_editor, False), + (PRP_ROLE_TYPES.ip_editor, True), (PRP_ROLE_TYPES.ip_viewer, False), ] @@ -1349,7 +1349,7 @@ def test_permission_as_ip_authorized_officer__partner_match__workspace_match(sel request = self.factory.delete(reverse('role-group-update-destroy', args=[self.role.id])) request.user = request_user request.data = {} - self.assertFalse(self.perm.has_object_permission(request, None, self.role)) + self.assertTrue(self.perm.has_object_permission(request, None, self.role)) def test_permission_as_ip_authorized_officer__partner_match__no_workspace_match(self): request_user_role = PRP_ROLE_TYPES.ip_authorized_officer diff --git a/django_api/django_api/apps/indicator/migrations/0002_reportablelocationgoal_is_active.py b/django_api/django_api/apps/indicator/migrations/0002_reportablelocationgoal_is_active.py new file mode 100644 index 000000000..76706bd49 --- /dev/null +++ b/django_api/django_api/apps/indicator/migrations/0002_reportablelocationgoal_is_active.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.20 on 2019-03-07 23:13 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('indicator', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='reportablelocationgoal', + name='is_active', + field=models.BooleanField(default=True), + ), + ] diff --git a/django_api/django_api/apps/indicator/migrations/0003_auto_20190507_1908.py b/django_api/django_api/apps/indicator/migrations/0003_auto_20190507_1908.py new file mode 100644 index 000000000..6e0f8c240 --- /dev/null +++ b/django_api/django_api/apps/indicator/migrations/0003_auto_20190507_1908.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.20 on 2019-05-07 19:08 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('indicator', '0002_reportablelocationgoal_is_active'), + ] + + operations = [ + migrations.AlterField( + model_name='indicatorreport', + name='narrative_assessment', + field=models.TextField(blank=True, null=True), + ), + ] diff --git a/django_api/django_api/apps/indicator/migrations/0004_auto_20190522_1759.py b/django_api/django_api/apps/indicator/migrations/0004_auto_20190522_1759.py new file mode 100644 index 000000000..c0ad2b0d8 --- /dev/null +++ b/django_api/django_api/apps/indicator/migrations/0004_auto_20190522_1759.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.20 on 2019-05-22 17:59 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('indicator', '0003_auto_20190507_1908'), + ] + + operations = [ + migrations.AlterField( + model_name='disaggregation', + name='external_source', + field=models.TextField(blank=True, choices=[('HPC', 'HPC'), ('OPS', 'OPS'), ('UNICEF', 'UNICEF')], null=True), + ), + migrations.AlterField( + model_name='disaggregationvalue', + name='external_source', + field=models.TextField(blank=True, choices=[('HPC', 'HPC'), ('OPS', 'OPS'), ('UNICEF', 'UNICEF')], null=True), + ), + migrations.AlterField( + model_name='indicatorblueprint', + name='external_source', + field=models.TextField(blank=True, choices=[('HPC', 'HPC'), ('OPS', 'OPS'), ('UNICEF', 'UNICEF')], null=True), + ), + migrations.AlterField( + model_name='reportable', + name='external_source', + field=models.TextField(blank=True, choices=[('HPC', 'HPC'), ('OPS', 'OPS'), ('UNICEF', 'UNICEF')], null=True), + ), + ] diff --git a/django_api/django_api/apps/indicator/migrations/0005_indicatorreport_project.py b/django_api/django_api/apps/indicator/migrations/0005_indicatorreport_project.py new file mode 100644 index 000000000..3687aee90 --- /dev/null +++ b/django_api/django_api/apps/indicator/migrations/0005_indicatorreport_project.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.20 on 2019-06-04 05:38 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('partner', '0004_auto_20190522_1759'), + ('indicator', '0004_auto_20190522_1759'), + ] + + operations = [ + migrations.AddField( + model_name='indicatorreport', + name='project', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='indicator_reports', to='partner.PartnerProject'), + ), + ] diff --git a/django_api/django_api/apps/indicator/models.py b/django_api/django_api/apps/indicator/models.py index e320b2fc3..cb7c11c25 100644 --- a/django_api/django_api/apps/indicator/models.py +++ b/django_api/django_api/apps/indicator/models.py @@ -32,6 +32,7 @@ RatioIndicatorDisaggregator ) from indicator.constants import ValueType +from indicator.utilities import convert_string_number_to_float from utils.emails import send_email_from_template @@ -327,9 +328,9 @@ def calculated_target(self): return 0.0 if self.blueprint.unit == IndicatorBlueprint.NUMBER: - return float(self.target['v']) + return convert_string_number_to_float(self.target['v']) else: - return float(self.target['v']) / float(self.target['d']) + return convert_string_number_to_float(self.target['v']) / convert_string_number_to_float(self.target['d']) @property def calculated_baseline(self): @@ -337,9 +338,9 @@ def calculated_baseline(self): return 0.0 if self.blueprint.unit == IndicatorBlueprint.NUMBER: - return float(self.baseline['v']) + return convert_string_number_to_float(self.baseline['v']) else: - return float(self.baseline['v']) / float(self.baseline['d']) + return convert_string_number_to_float(self.baseline['v']) / convert_string_number_to_float(self.baseline['d']) @property def calculated_in_need(self): @@ -347,22 +348,22 @@ def calculated_in_need(self): return None if self.blueprint.unit == IndicatorBlueprint.NUMBER: - return float(self.in_need['v']) + return convert_string_number_to_float(self.in_need['v']) else: - return float(self.in_need['v']) / float(self.in_need['d']) + return convert_string_number_to_float(self.in_need['v']) / convert_string_number_to_float(self.in_need['d']) @property def progress_percentage(self): percentage = 0.0 if self.achieved and self.baseline['v'] is not None and self.target['v'] is not None: - baseline = float(self.calculated_baseline) - target = float(self.calculated_target) + baseline = convert_string_number_to_float(self.calculated_baseline) + target = convert_string_number_to_float(self.calculated_target) dividend = 0 # default progress is 0 if self.achieved['c'] > baseline: dividend = self.achieved['c'] - baseline - divisor = float(target) - baseline + divisor = convert_string_number_to_float(target) - baseline if divisor: percentage = round(dividend / divisor, 2) return percentage @@ -439,6 +440,58 @@ def create_reportable_for_pa_from_ca_reportable(pa, ca_reportable): pa_reportable.disaggregations.add(*ca_reportable.disaggregations.all()) +def create_reportable_for_pp_from_ca_reportable(pp, ca_reportable): + """ + Copies one CA reportable instance to a partner activity. + + Arguments: + pp {partner.models.PartnerProject} -- PartnerProject to copy to + reportable {indicator.models.Reportable} -- ClusterActivity Reportable + + Raises: + ValidationError -- Django Exception + """ + + reportable_data_to_sync = get_reportable_data_to_clone(ca_reportable) + reportable_data_to_sync['total'] = dict([('c', 0), ('d', 1), ('v', 0)]) + reportable_data_to_sync["content_object"] = pp + reportable_data_to_sync["blueprint"] = ca_reportable.blueprint + reportable_data_to_sync["parent_indicator"] = ca_reportable + pp_reportable = Reportable.objects.create(**reportable_data_to_sync) + + pp_reportable.disaggregations.add(*ca_reportable.disaggregations.all()) + + return pp_reportable + + +def create_reportable_for_pp_from_co_reportable(pp, co_reportable): + """ + Copies one CO reportable instance to a partner project. + + Arguments: + pp {partner.models.PartnerProject} -- PartnerProject to copy to + co_reportable {indicator.models.Reportable} -- ClusterObjective Reportable + + Raises: + ValidationError -- Django Exception + + Returns: + Reportable -- PartnerProject type Reportable ORM instance + """ + + # TODO: Add Cluster objective to have only one PartnerProject for a Partner + reportable_data_to_sync = get_reportable_data_to_clone(co_reportable) + reportable_data_to_sync['total'] = dict([('c', 0), ('d', 1), ('v', 0)]) + reportable_data_to_sync["content_object"] = pp + reportable_data_to_sync["blueprint"] = co_reportable.blueprint + reportable_data_to_sync["parent_indicator"] = None + pp_reportable = Reportable.objects.create(**reportable_data_to_sync) + + pp_reportable.disaggregations.add(*co_reportable.disaggregations.all()) + + return pp_reportable + + def create_pa_reportables_from_ca(pa, ca): """ Creates a set of PartnerActivity Reportable instances from @@ -517,6 +570,7 @@ class ReportableLocationGoal(TimeStampedModel): target = JSONField(default=dict([('d', 1), ('v', 0)])) baseline = JSONField(default=dict([('d', 1), ('v', 0)])) in_need = JSONField(blank=True, null=True) + is_active = models.BooleanField(default=True) class Meta: unique_together = ('reportable', 'location') @@ -571,9 +625,7 @@ class IndicatorReport(TimeStampedModel): default=OVERALL_STATUS.no_status, max_length=3 ) - narrative_assessment = models.CharField(max_length=255, - null=True, - blank=True) + narrative_assessment = models.TextField(null=True, blank=True) review_date = models.DateField(verbose_name='Review Date', blank=True, @@ -590,6 +642,13 @@ class IndicatorReport(TimeStampedModel): 'indicator.ReportingEntity', related_name="indicator_reports" ) + project = models.ForeignKey( + 'partner.PartnerProject', + related_name="indicator_reports", + null=True, + blank=True + ) + tracker = FieldTracker(fields=['report_status']) objects = IndicatorReportManager() diff --git a/django_api/django_api/apps/indicator/serializers.py b/django_api/django_api/apps/indicator/serializers.py index 31421eace..7e7873cda 100644 --- a/django_api/django_api/apps/indicator/serializers.py +++ b/django_api/django_api/apps/indicator/serializers.py @@ -12,8 +12,8 @@ from ocha.imports.serializers import DiscardUniqueTogetherValidationMixin from unicef.models import LowerLevelOutput, ProgressReport -from partner.models import PartnerProject, PartnerActivity -from cluster.models import ClusterObjective, ClusterActivity +from partner.models import PartnerProject, PartnerActivity, Partner +from cluster.models import ClusterObjective, ClusterActivity, Cluster from core.common import OVERALL_STATUS, INDICATOR_REPORT_STATUS, FINAL_OVERALL_STATUS, REPORTABLE_FREQUENCY_LEVEL from core.serializers import LocationSerializer, IdLocationSerializer @@ -34,6 +34,7 @@ ReportingEntity, create_pa_reportables_for_new_ca_reportable, ) +from .utilities import convert_string_number_to_float class DisaggregationValueListSerializer(serializers.ModelSerializer): @@ -223,7 +224,7 @@ def validate(self, data): if in_need['v'] == "": data['in_need']['v'] = 0 - elif float(in_need['v']) < float(target['v']): + elif convert_string_number_to_float(in_need['v']) < convert_string_number_to_float(target['v']): raise serializers.ValidationError({ "in_need": "Target cannot be greater than In Need", }) @@ -270,10 +271,14 @@ class ReportableLocationGoalSerializer(serializers.ModelSerializer): in_need = serializers.JSONField(required=False, allow_null=True) target = serializers.JSONField() loc_type = serializers.SerializerMethodField() + title = serializers.SerializerMethodField() def get_loc_type(self, obj): return obj.location.gateway.admin_level + def get_title(self, obj): + return obj.location.title + def validate_baseline(self, value): if 'd' not in value: value['d'] = 1 @@ -311,6 +316,7 @@ class Meta: 'target', 'location', 'loc_type', + 'title', ) @@ -504,6 +510,11 @@ class ReportableReportingFrequencyIdSerializer(serializers.Serializer): ) +class ReportRefreshSerializer(serializers.Serializer): + report_id = serializers.IntegerField(min_value=1) + report_type = serializers.ChoiceField(choices=['PR', 'IR']) + + class SimpleIndicatorLocationDataListSerializer(serializers.ModelSerializer): location = LocationSerializer(read_only=True) @@ -767,7 +778,7 @@ def validate(self, data): {"reporting_entity_percentage_map": {"Each dictionary should have 'title' and 'percentage' key"}} ) - if any(map(lambda x: x["percentage"] > 1 or float(x["percentage"]) < 0, map_list)): + if any(map(lambda x: x["percentage"] > 1 or convert_string_number_to_float(x["percentage"]) < 0, map_list)): raise serializers.ValidationError( {"reporting_entity_percentage_map": {"Each dictionary should 'percentage' value between 0 to 1"}} ) @@ -789,12 +800,12 @@ def validate(self, data): split_data[entity['title']] = {} if entity['title'] == "UNICEF": - ild.percentage_allocated = float(entity['percentage']) + ild.percentage_allocated = convert_string_number_to_float(entity['percentage']) for key, val in disagg_data_copy.items(): for val_key in val: if val[val_key]: - val[val_key] *= float(entity['percentage']) + val[val_key] *= convert_string_number_to_float(entity['percentage']) split_data[entity['title']][key] = val @@ -821,6 +832,7 @@ class IndicatorReportListSerializer(serializers.ModelSerializer): parent_ir_id = serializers.SerializerMethodField() child_ir_ids = serializers.SerializerMethodField() has_high_frequency_reports = serializers.SerializerMethodField() + is_hf_indicator = serializers.SerializerMethodField() class Meta: model = IndicatorReport @@ -845,6 +857,7 @@ class Meta: 'parent_ir_id', 'child_ir_ids', 'has_high_frequency_reports', + 'is_hf_indicator', ) def get_has_high_frequency_reports(self, obj): @@ -863,6 +876,9 @@ def get_has_high_frequency_reports(self, obj): return True if pr.report_type == "QPR" and hf_reports.exists() else False + def get_is_hf_indicator(self, obj): + return obj.reportable.is_unicef_hf_indicator + def get_parent_ir_id(self, obj): return obj.parent.id if obj.parent else None @@ -1081,6 +1097,128 @@ class Meta: ) +class ClusterObjectiveIndicatorAdoptSerializer(serializers.Serializer): + partner_id = serializers.IntegerField() + partner_project_id = serializers.IntegerField() + cluster_id = serializers.IntegerField() + cluster_objective_id = serializers.IntegerField() + reportable_id = serializers.IntegerField() + locations = ReportableLocationGoalSerializer(many=True, write_only=True) + target = serializers.JSONField() + baseline = serializers.JSONField() + + def validate(self, data): + """ + Make sure cluster objects exist by their IDs and basic validations on target and baseline. + """ + if not isinstance(data['target'], dict): + raise serializers.ValidationError({ + 'target': 'Target value needs to be a dictionary format' + }) + else: + if 'd' not in data['target']: + data['target']['d'] = 1 + + if isinstance(data['target']['d'], str): + if data['target']['d'].isnumeric(): + data['target']['d'] = int(data['target']['d']) + else: + raise serializers.ValidationError("key 'd' for target needs to be number") + + if 'v' not in data['target']: + raise serializers.ValidationError("key 'v' must exist") + + if isinstance(data['target']['v'], str): + if data['target']['v'].isnumeric(): + data['target']['v'] = int(data['target']['v']) + else: + raise serializers.ValidationError("key 'v' for target needs to be number") + + if data['target']['d'] == 0: + raise serializers.ValidationError("key 'd' cannot be zero") + + if 'c' not in data['target']: + data['target']['c'] = convert_string_number_to_float(data['target']['v']) / data['target']['d'] + + if not isinstance(data['baseline'], dict): + raise serializers.ValidationError({ + 'baseline': 'Baseline value needs to be a dictionary format' + }) + else: + if 'd' not in data['baseline']: + data['baseline']['d'] = 1 + + if isinstance(data['baseline']['d'], str): + if data['baseline']['d'].isnumeric(): + data['baseline']['d'] = int(data['baseline']['d']) + else: + raise serializers.ValidationError("key 'd' for baseline needs to be number") + + if 'v' not in data['baseline']: + raise serializers.ValidationError("key 'v' must exist") + + if isinstance(data['baseline']['v'], str): + if data['baseline']['v'].isnumeric(): + data['baseline']['v'] = int(data['baseline']['v']) + else: + raise serializers.ValidationError("key 'v' for baseline needs to be number") + + if data['baseline']['d'] == 0: + raise serializers.ValidationError("key 'd' cannot be zero") + + if 'c' not in data['baseline']: + data['baseline']['c'] = convert_string_number_to_float(data['baseline']['v']) / data['baseline']['d'] + + if not Partner.objects.filter(id=data['partner_id']).exists(): + raise serializers.ValidationError({ + 'partner_id': 'Partner does not exist' + }) + + if not PartnerProject.objects.filter(id=data['partner_project_id']).exists(): + raise serializers.ValidationError({ + 'partner_project_id': 'PartnerProject does not exist' + }) + + if PartnerProject.objects.get(id=data['partner_project_id']).partner.id != data['partner_id']: + raise serializers.ValidationError({ + 'partner_project_id': 'This partner project does not belong to the partner' + }) + + if not Cluster.objects.filter(id=data['cluster_id']).exists(): + raise serializers.ValidationError({ + 'cluster_id': 'Cluster does not exist' + }) + + if not ClusterObjective.objects.filter(id=data['cluster_objective_id']).exists(): + raise serializers.ValidationError({ + 'cluster_objective_id': 'ClusterObjective does not exist' + }) + + if ClusterObjective.objects.get(id=data['cluster_objective_id']).cluster.id != data['cluster_id']: + raise serializers.ValidationError({ + 'cluster_objective_id': 'This objective does not belong to the cluster' + }) + + reportables = Reportable.objects.filter(id=data['reportable_id']) + + if not reportables.exists(): + raise serializers.ValidationError({ + 'reportable_id': 'Reportable does not exist' + }) + + if not isinstance(reportables.first().content_object, ClusterObjective): + raise serializers.ValidationError({ + 'reportable_id': 'Reportable type is not ClusterObjective' + }) + + if reportables.first().content_object.id != data['cluster_objective_id']: + raise serializers.ValidationError({ + 'reportable_id': 'Reportable does not belong to this ClusterObjective' + }) + + return data + + class ClusterIndicatorSerializer(serializers.ModelSerializer): disaggregations = IdDisaggregationSerializer(many=True, read_only=True) @@ -1164,8 +1302,9 @@ def check_progress_values(self, partner, reportable_object_content_model, valida {"target": "cannot be empty"} ) - target_value = float(validated_data['target']['v']) if float(validated_data['target']['d']) == 1 else \ - float(validated_data['target']['v']) / float(validated_data['target']['d']) + target_value = convert_string_number_to_float(validated_data['target']['v']) \ + if convert_string_number_to_float(validated_data['target']['d']) == 1 else \ + convert_string_number_to_float(validated_data['target']['v']) / convert_string_number_to_float(validated_data['target']['d']) if 'in_need' in validated_data and validated_data['in_need'] and validated_data['in_need']['v'] != "": if 'd' not in validated_data['in_need']: @@ -1176,8 +1315,9 @@ def check_progress_values(self, partner, reportable_object_content_model, valida {"in_need": "denominator for in_need cannot be zero"} ) - in_need_value = float(validated_data['in_need']['v']) if float(validated_data['in_need']['d']) == 1 else \ - float(validated_data['in_need']['v']) / float(validated_data['in_need']['d']) + in_need_value = convert_string_number_to_float(validated_data['in_need']['v']) \ + if convert_string_number_to_float(validated_data['in_need']['d']) == 1 else \ + convert_string_number_to_float(validated_data['in_need']['v']) / convert_string_number_to_float(validated_data['in_need']['d']) if target_value > in_need_value: raise ValidationError( @@ -1267,12 +1407,18 @@ def create(self, validated_data): content_object = get_object_or_404(PartnerActivity, pk=validated_data['object_id']) validated_data['is_cluster_indicator'] = False - if validated_data['start_date_of_reporting_period'] < content_object.start_date: - error_msg = "Start date of reporting period cannot come before the activity's start date" - + if not content_object.partneractivityprojectcontext_set.exists(): raise ValidationError({ - "start_date_of_reporting_period": error_msg, + "start_date_of_reporting_period": "This PartnerActivity does not have start date", }) + + for context in content_object.partneractivityprojectcontext_set.all(): + if validated_data['start_date_of_reporting_period'] < context.start_date: + error_msg = "Start date of reporting period cannot come before the activity's start date" + + raise ValidationError({ + "start_date_of_reporting_period": error_msg, + }) else: raise NotImplemented() @@ -1631,10 +1777,11 @@ def get_project(self, obj): if isinstance(obj.reportable.content_object, (PartnerProject, )): return {"id": obj.reportable.content_object.id, "title": obj.reportable.content_object.title} elif isinstance(obj.reportable.content_object, (PartnerActivity, )): - if obj.reportable.content_object.project: + if obj.reportable.content_object.projects.exists(): + project = obj.reportable.content_object.projects.first() return { - "id": obj.reportable.content_object.project.id, - "title": obj.reportable.content_object.project.title + "id": project.id, + "title": project.title } else: return None @@ -1806,11 +1953,11 @@ def get_indicator_reports(self, obj): return [] def get_project(self, obj): - if isinstance(obj.content_object, PartnerActivity) \ - and obj.content_object.project: - return obj.content_object.project.title - else: - return "" + if isinstance(obj.content_object, PartnerActivity): + if obj.content_object.projects.exists(): + return obj.content_object.projects.first().title + + return "" def get_cluster_activity(self, obj): if isinstance(obj.content_object, PartnerActivity) \ @@ -1906,6 +2053,7 @@ class ClusterAnalysisIndicatorDetailSerializer(serializers.ModelSerializer): total_against_target = serializers.SerializerMethodField() current_progress_by_partner = serializers.SerializerMethodField() current_progress_by_location = serializers.SerializerMethodField() + current_progress_by_project = serializers.SerializerMethodField() indicator_type = serializers.SerializerMethodField() display_type = serializers.SerializerMethodField() baseline = serializers.JSONField() @@ -2000,7 +2148,18 @@ def get_partners_by_status(self, obj): return num_of_partners def get_progress_over_time(self, obj): - return list(obj.indicator_reports.order_by('id').values_list('time_period_end', 'total')) + if obj.content_type.model == "partneractivity": + progress_dict = dict() + + for ir in obj.indicator_reports.order_by('id'): + if ir.time_period_end not in progress_dict: + progress_dict[ir.time_period_end] = 0.0 + + progress_dict[ir.time_period_end] += int(ir.total['c']) + + return list(progress_dict.items()) + else: + return list(obj.indicator_reports.order_by('id').values_list('time_period_end', 'total')) def _get_progress_by_partner(self, reportable, partner_progresses): """ @@ -2089,7 +2248,7 @@ def _get_progress_by_location(self, location_data, location_progresses): partner_titles.add(partner_title) data = { - 'progress': ild.disaggregation['()']['c'], + 'progress': int(ild.disaggregation['()']['c']), 'partners': partner_titles, } @@ -2104,18 +2263,20 @@ def get_current_progress_by_location(self, obj): try: # Only if the indicator is cluster activity, the children (unicef indicators) will exist if obj.children.exists(): - latest_indicator_reports = map( - lambda x: x.indicator_reports.latest( - 'time_period_start'), obj.children.all() - ) + latest_indicator_reports = list() + + for reportable in obj.children.all(): + latest_time_period = reportable.indicator_reports.latest('time_period_start').time_period_start + latest_indicator_reports.extend(reportable.indicator_reports.filter(time_period_start=latest_time_period)) for ir in latest_indicator_reports: self._get_progress_by_location(ir.indicator_location_data.all(), location_progresses) # If the indicator is UNICEF cluster which is linked as Partner, then show its progress only else: - indicator_location_data = obj.indicator_reports \ - .latest('time_period_start').indicator_location_data.all() + latest_time_period = obj.indicator_reports.latest('time_period_start').time_period_start + latest_irs = obj.indicator_reports.filter(time_period_start=latest_time_period) + indicator_location_data = IndicatorLocationData.objects.filter(indicator_report__in=latest_irs) self._get_progress_by_location(indicator_location_data, location_progresses) @@ -2139,6 +2300,23 @@ def get_current_progress_by_location(self, obj): return location_progresses + def get_current_progress_by_project(self, obj): + project_progresses = defaultdict() + + if obj.content_type.model != "partneractivity": + return project_progresses + + # Consolidation for progress info + # project_progresses is Dict[Float] type + for ir in obj.indicator_reports.all(): + if ir.project: + if ir.project.title not in project_progresses: + project_progresses[ir.project.title] = 0 + + project_progresses[ir.project.title] += int(ir.total['c']) + + return project_progresses + class Meta: model = Reportable fields = ( @@ -2156,6 +2334,7 @@ class Meta: 'progress_over_time', 'current_progress_by_partner', 'current_progress_by_location', + 'current_progress_by_project', 'total_against_in_need', 'total_against_target', ) diff --git a/django_api/django_api/apps/indicator/tasks.py b/django_api/django_api/apps/indicator/tasks.py index b7d07030f..c888f7d57 100644 --- a/django_api/django_api/apps/indicator/tasks.py +++ b/django_api/django_api/apps/indicator/tasks.py @@ -1,11 +1,15 @@ +import logging +from datetime import datetime, timedelta + from celery import shared_task from indicator.models import IndicatorReport from unicef.models import ProgressReport from core.common import INDICATOR_REPORT_STATUS, PROGRESS_REPORT_STATUS +from utils.emails import send_due_progress_report_email, send_overdue_progress_report_email -from datetime import datetime, timedelta +logger = logging.getLogger(__name__) OVERDUE_DAYS = 15 @@ -13,12 +17,12 @@ def process_due_reports(): updates = list() today = datetime.now().date() - print("Create due/overdue indicator reports") + logger.info("Create due/overdue indicator reports") # Get all open (without submission date) indicator reports reports = IndicatorReport.objects.filter(submission_date__isnull=True) # Iterate and set proper status for report in reports: - print("Indicator Report: %s" % report.id) + logger.info("Indicator Report: %s" % report.id) due_date = report.due_date or report.time_period_end + timedelta(days=OVERDUE_DAYS) if due_date < today and report.report_status != INDICATOR_REPORT_STATUS.overdue: report.report_status = INDICATOR_REPORT_STATUS.overdue @@ -32,7 +36,7 @@ def process_due_reports(): reports = ProgressReport.objects.filter(submission_date__isnull=True) # Iterate and set proper status for report in reports: - print("Progress Report: %s" % report.id) + logger.info("Progress Report: %s" % report.id) due_date = report.due_date or report.end_date + timedelta(days=OVERDUE_DAYS) if due_date < today and report.status != PROGRESS_REPORT_STATUS.overdue: report.status = PROGRESS_REPORT_STATUS.overdue @@ -47,3 +51,13 @@ def process_due_reports(): return "Updated %s Reports: %s" % (len(updates), ", ".join(["(%s for ID %d)" % ( status, report.id) for status, report in updates])) if updates else "---" + + +@shared_task +def notify_ip_due_reports(): + return send_due_progress_report_email() + + +@shared_task +def notify_ip_overdue_reports(): + return send_overdue_progress_report_email() diff --git a/django_api/django_api/apps/indicator/tests/test_disaggregators.py b/django_api/django_api/apps/indicator/tests/test_disaggregators.py index 16a20a497..56ed0839c 100644 --- a/django_api/django_api/apps/indicator/tests/test_disaggregators.py +++ b/django_api/django_api/apps/indicator/tests/test_disaggregators.py @@ -8,6 +8,7 @@ ) from core.factories import (CartoDBTableFactory, ClusterActivityFactory, ClusterActivityPartnerActivityFactory, + PartnerActivityProjectContextFactory, ClusterFactory, ClusterIndicatorReportFactory, ClusterObjectiveFactory, ClusterPRPRoleFactory, CountryFactory, DisaggregationFactory, @@ -69,8 +70,12 @@ def setUp(self): ) self.p_activity = ClusterActivityPartnerActivityFactory( + partner=self.partner, cluster_activity=self.activity, + ) + self.project_context = PartnerActivityProjectContextFactory( project=self.project, + activity=self.p_activity, ) self.sample_disaggregation_value_map = { @@ -426,8 +431,12 @@ def setUp(self): ) self.p_activity = ClusterActivityPartnerActivityFactory( + partner=self.partner, cluster_activity=self.activity, + ) + self.project_context = PartnerActivityProjectContextFactory( project=self.project, + activity=self.p_activity, ) self.sample_disaggregation_value_map = { diff --git a/django_api/django_api/apps/indicator/tests/test_views.py b/django_api/django_api/apps/indicator/tests/test_views.py index f7bd793ef..84a908487 100644 --- a/django_api/django_api/apps/indicator/tests/test_views.py +++ b/django_api/django_api/apps/indicator/tests/test_views.py @@ -1,11 +1,13 @@ from ast import literal_eval as make_tuple import copy from datetime import date, timedelta +from unittest.mock import Mock, patch from django.urls import reverse from django.conf import settings from rest_framework import status +from unicef_notification.models import Notification from core.models import Location from core.common import ( @@ -23,6 +25,7 @@ ) from core.factories import (CartoDBTableFactory, ProgressReportIndicatorReportFactory, + PartnerActivityProjectContextFactory, IPPRPRoleFactory, CountryFactory, DisaggregationFactory, DisaggregationValueFactory, GatewayTypeFactory, @@ -31,6 +34,7 @@ PartnerUserFactory, PartnerFactory, ProgressReportFactory, QuantityReportableToLowerLevelOutputFactory, + QuantityReportableToClusterObjectiveFactory, QuantityTypeIndicatorBlueprintFactory, WorkspaceFactory, SectionFactory, @@ -266,8 +270,12 @@ def setUp(self): ) self.p_activity = ClusterActivityPartnerActivityFactory( + partner=self.partner, cluster_activity=self.activity, + ) + self.project_context = PartnerActivityProjectContextFactory( project=self.project, + activity=self.p_activity, ) self.sample_disaggregation_value_map = { @@ -325,7 +333,10 @@ def setUp(self): super().setUp() - def test_submit_indicator(self): + @patch("django_api.apps.utils.emails.EmailTemplate.objects.update_or_create") + @patch.object(Notification, "full_clean", return_value=None) + @patch.object(Notification, "send_notification", return_value=None) + def test_submit_indicator(self, mock_create, mock_clean, mock_send): ir = IndicatorReport.objects.first() ir.report_status = INDICATOR_REPORT_STATUS.sent_back ir.overall_status = OVERALL_STATUS.met @@ -380,8 +391,12 @@ def setUp(self): locations=[self.loc1, self.loc2], ) self.p_activity = ClusterActivityPartnerActivityFactory( + partner=self.partner, cluster_activity=self.activity, + ) + self.project_context = PartnerActivityProjectContextFactory( project=self.project, + activity=self.p_activity, ) self.sample_disaggregation_value_map = { "height": ["tall", "medium", "short", "extrashort"], @@ -602,8 +617,12 @@ def setUp(self): locations=[self.loc1, self.loc2], ) self.p_activity = ClusterActivityPartnerActivityFactory( + partner=self.partner, cluster_activity=self.activity, + ) + self.project_context = PartnerActivityProjectContextFactory( project=self.project, + activity=self.p_activity, ) self.sample_disaggregation_value_map = { "height": ["tall", "medium", "short", "extrashort"], @@ -811,8 +830,12 @@ def setUp(self): locations=[self.loc1, self.loc2], ) self.p_activity = ClusterActivityPartnerActivityFactory( + partner=self.partner, cluster_activity=self.activity, + ) + self.project_context = PartnerActivityProjectContextFactory( project=self.project, + activity=self.p_activity, ) self.sample_disaggregation_value_map = { "height": ["tall", "medium", "short", "extrashort"], @@ -840,10 +863,11 @@ def setUp(self): ) for _ in range(2): - ClusterIndicatorReportFactory( - reportable=self.partneractivity_reportable, - report_status=INDICATOR_REPORT_STATUS.submitted, - ) + with patch("django.db.models.signals.ModelSignal.send", Mock()): + ClusterIndicatorReportFactory( + reportable=self.partneractivity_reportable, + report_status=INDICATOR_REPORT_STATUS.submitted, + ) # Creating Level-3 disaggregation location data for all locations generate_3_num_disagg_data(self.partneractivity_reportable, indicator_type="quantity") @@ -1014,8 +1038,12 @@ def setUp(self): locations=[self.loc1, self.loc2], ) self.p_activity = ClusterActivityPartnerActivityFactory( + partner=self.partner, cluster_activity=self.activity, + ) + self.project_context = PartnerActivityProjectContextFactory( project=self.project, + activity=self.p_activity, ) self.sample_disaggregation_value_map = { "height": ["tall", "medium", "short", "extrashort"], @@ -1043,10 +1071,11 @@ def setUp(self): ) for _ in range(2): - ClusterIndicatorReportFactory( - reportable=self.partneractivity_reportable, - report_status=INDICATOR_REPORT_STATUS.submitted, - ) + with patch("django.db.models.signals.ModelSignal.send", Mock()): + ClusterIndicatorReportFactory( + reportable=self.partneractivity_reportable, + report_status=INDICATOR_REPORT_STATUS.submitted, + ) # Creating Level-3 disaggregation location data for all locations generate_3_num_disagg_data(self.partneractivity_reportable, indicator_type="quantity") @@ -1271,7 +1300,7 @@ def test_create_indicator_partner_project_reporting(self): self.blueprint_count + 1) def test_create_indicator_partner_activities_reporting(self): - pa = PartnerActivity.objects.filter(project__isnull=False).first() + pa = PartnerActivity.objects.filter(projects__isnull=False).first() self.data['object_id'] = pa.id self.data['object_type'] = 'partner.partneractivity' response = self.client.post(self.url, data=self.data, format='json') @@ -1361,8 +1390,12 @@ def setUp(self): locations=[self.loc1, self.loc2], ) self.p_activity = ClusterActivityPartnerActivityFactory( + partner=self.partner, cluster_activity=self.activity, + ) + self.project_context = PartnerActivityProjectContextFactory( project=self.project, + activity=self.p_activity, ) self.sample_disaggregation_value_map = { "height": ["tall", "medium", "short", "extrashort"], @@ -1473,10 +1506,11 @@ def setUp(self): ) for _ in range(2): - ClusterIndicatorReportFactory( - reportable=self.partneractivity_reportable, - report_status=INDICATOR_REPORT_STATUS.submitted, - ) + with patch("django.db.models.signals.ModelSignal.send", Mock()): + ClusterIndicatorReportFactory( + reportable=self.partneractivity_reportable, + report_status=INDICATOR_REPORT_STATUS.submitted, + ) # Creating Level-3 disaggregation location data for all locations generate_3_num_disagg_data(self.partneractivity_reportable, indicator_type="quantity") @@ -1866,3 +1900,541 @@ def test_update_invalid_coordinate_space_value_format_validation(self): + "have correct value key structure: c, d, v", response.data['non_field_errors'][0] ) + + +class TestReportRefreshAPIView(BaseAPITestCase): + + def setUp(self): + self.country = CountryFactory() + self.workspace = WorkspaceFactory(countries=[self.country, ]) + self.response_plan = ResponsePlanFactory(workspace=self.workspace) + self.cluster = ClusterFactory(type='cccm', response_plan=self.response_plan) + self.loc_type = GatewayTypeFactory(country=self.country) + self.carto_table = CartoDBTableFactory(location_type=self.loc_type, country=self.country) + self.loc1 = LocationFactory(gateway=self.loc_type, carto_db_table=self.carto_table) + self.loc2 = LocationFactory(gateway=self.loc_type, carto_db_table=self.carto_table) + self.unicef_officer = PersonFactory() + self.unicef_focal_point = PersonFactory() + self.partner_focal_point = PersonFactory() + self.objective = ClusterObjectiveFactory( + cluster=self.cluster, + locations=[ + self.loc1, + self.loc2, + ] + ) + self.activity = ClusterActivityFactory( + cluster_objective=self.objective, + locations=[ + self.loc1, self.loc2 + ] + ) + self.partner = PartnerFactory(country_code=self.country.country_short_code) + self.user = NonPartnerUserFactory() + self.partner_user = PartnerUserFactory(partner=self.partner) + ClusterPRPRoleFactory(user=self.user, workspace=self.workspace, cluster=self.cluster, role=PRP_ROLE_TYPES.cluster_imo) + IPPRPRoleFactory(user=self.partner_user, workspace=self.workspace, role=PRP_ROLE_TYPES.ip_authorized_officer) + IPPRPRoleFactory(user=self.partner_user, workspace=self.workspace, cluster=None, role=PRP_ROLE_TYPES.cluster_member) + self.project = PartnerProjectFactory( + partner=self.partner, + clusters=[self.cluster], + locations=[self.loc1, self.loc2], + ) + self.p_activity = ClusterActivityPartnerActivityFactory( + partner=self.partner, + cluster_activity=self.activity, + ) + self.project_context = PartnerActivityProjectContextFactory( + project=self.project, + activity=self.p_activity, + ) + self.sample_disaggregation_value_map = { + "height": ["tall", "medium", "short", "extrashort"], + "age": ["1-2m", "3-4m", "5-6m", '7-10m', '11-13m', '14-16m'], + "gender": ["male", "female", "other"], + } + + blueprint = QuantityTypeIndicatorBlueprintFactory( + unit=IndicatorBlueprint.NUMBER, + calculation_formula_across_locations=IndicatorBlueprint.SUM, + calculation_formula_across_periods=IndicatorBlueprint.SUM, + ) + self.partneractivity_reportable = QuantityReportableToPartnerActivityFactory( + content_object=self.p_activity, blueprint=blueprint + ) + + LocationWithReportableLocationGoalFactory( + location=self.loc1, + reportable=self.partneractivity_reportable, + ) + + LocationWithReportableLocationGoalFactory( + location=self.loc2, + reportable=self.partneractivity_reportable, + ) + + self.pd = ProgrammeDocumentFactory( + workspace=self.workspace, + partner=self.partner, + sections=[SectionFactory(), ], + unicef_officers=[self.unicef_officer, ], + unicef_focal_point=[self.unicef_focal_point, ], + partner_focal_point=[self.partner_focal_point, ] + ) + + for idx in range(2): + qpr_period = QPRReportingPeriodDatesFactory(programme_document=self.pd) + ProgressReportFactory( + start_date=qpr_period.start_date, + end_date=qpr_period.end_date, + due_date=qpr_period.due_date, + report_number=idx + 1, + report_type=qpr_period.report_type, + is_final=False, + programme_document=self.pd, + submitted_by=self.user, + submitting_user=self.user, + ) + + for idx in range(6): + hr_period = HRReportingPeriodDatesFactory(programme_document=self.pd) + ProgressReportFactory( + start_date=hr_period.start_date, + end_date=hr_period.end_date, + due_date=hr_period.due_date, + report_number=idx + 1, + report_type=hr_period.report_type, + is_final=False, + programme_document=self.pd, + submitted_by=self.user, + submitting_user=self.user, + ) + + self.cp_output = PDResultLinkFactory( + programme_document=self.pd, + ) + self.llo = LowerLevelOutputFactory( + cp_output=self.cp_output, + ) + self.llo_reportable = QuantityReportableToLowerLevelOutputFactory( + content_object=self.llo, + blueprint=QuantityTypeIndicatorBlueprintFactory( + unit=IndicatorBlueprint.NUMBER, + calculation_formula_across_locations=IndicatorBlueprint.SUM, + ) + ) + + self.llo_reportable.disaggregations.clear() + self.partneractivity_reportable.disaggregations.clear() + + # Create the disaggregations and values in the db for all response plans + # including one for no response plan as well + for disagg_name, values in self.sample_disaggregation_value_map.items(): + disagg = IPDisaggregationFactory(name=disagg_name) + cluster_disagg = DisaggregationFactory(name=disagg_name, response_plan=self.response_plan) + + self.llo_reportable.disaggregations.add(disagg) + self.partneractivity_reportable.disaggregations.add(cluster_disagg) + + for value in values: + DisaggregationValueFactory( + disaggregation=cluster_disagg, + value=value + ) + DisaggregationValueFactory( + disaggregation=disagg, + value=value + ) + + LocationWithReportableLocationGoalFactory( + location=self.loc1, + reportable=self.llo_reportable, + ) + + LocationWithReportableLocationGoalFactory( + location=self.loc2, + reportable=self.llo_reportable, + ) + + for _ in range(2): + with patch("django.db.models.signals.ModelSignal.send", Mock()): + ClusterIndicatorReportFactory( + reportable=self.partneractivity_reportable, + report_status=INDICATOR_REPORT_STATUS.submitted, + ) + + # Creating Level-3 disaggregation location data for all locations + generate_3_num_disagg_data(self.partneractivity_reportable, indicator_type="quantity") + + for loc_data in IndicatorLocationData.objects.filter(indicator_report__reportable=self.partneractivity_reportable): + QuantityIndicatorDisaggregator.post_process(loc_data) + + for pr in self.pd.progress_reports.all(): + ProgressReportIndicatorReportFactory( + progress_report=pr, + reportable=self.llo_reportable, + report_status=INDICATOR_REPORT_STATUS.submitted, + overall_status=OVERALL_STATUS.met, + ) + + # Creating Level-3 disaggregation location data for all locations + generate_3_num_disagg_data(self.llo_reportable, indicator_type="quantity") + + for loc_data in IndicatorLocationData.objects.filter(indicator_report__reportable=self.llo_reportable): + QuantityIndicatorDisaggregator.post_process(loc_data) + + super().setUp() + + # Logging in as Partner AO + self.client.force_authenticate(self.partner_user) + + self.progress_report = self.pd.progress_reports.first() + + def test_invalid_serializer_values(self): + url = reverse('report-refresh-api') + data = {"report_type": "PR", "report_id": -100} + + response = self.client.post(url, data=data, format='json') + self.assertTrue(status.is_client_error(response.status_code)) + + data['report_id'] = self.progress_report.id + data['report_type'] = 'AAAA' + response = self.client.post(url, data=data, format='json') + self.assertTrue(status.is_client_error(response.status_code)) + + data['report_id'] = self.progress_report.indicator_reports.first().id + data['report_type'] = 'IR' + response = self.client.post(url, data=data, format='json') + self.assertTrue(status.is_client_error(response.status_code)) + self.assertEquals( + "This indicator report is linked to a progress report. Use the progress report ID instead.", + response.data['non_field_errors'][0] + ) + + def test_progress_report_reset(self): + url = reverse('report-refresh-api') + data = {"report_type": "PR", "report_id": self.progress_report.id} + + response = self.client.post(url, data=data, format='json') + self.assertTrue(status.is_success(response.status_code)) + self.assertEquals(response.data['response'], "OK") + + # All indicator reports should be blank state + for ir in self.progress_report.indicator_reports.all(): + self.assertEquals(ir.total['c'], 0) + self.assertEquals(ir.overall_status, "NoS") + self.assertEquals(ir.report_status, "Due") + self.assertEquals(ir.submission_date, None) + + def test_cluster_indicator_report_reset(self): + ir = self.partneractivity_reportable.indicator_reports.first() + url = reverse('report-refresh-api') + data = {"report_type": "IR", "report_id": ir.id} + + response = self.client.post(url, data=data, format='json') + self.assertTrue(status.is_success(response.status_code)) + self.assertEquals(response.data['response'], "OK") + + ir = IndicatorReport.objects.get(id=ir.id) + + # All indicator report information should be initial state + self.assertEquals(ir.submission_date, None) + self.assertEquals(ir.overall_status, "NoS") + self.assertEquals(ir.report_status, "Due") + self.assertEquals(ir.total['c'], 0) + + for ild in ir.indicator_location_data.all(): + self.assertEquals(ild.disaggregation['()']['c'], 0) + self.assertEquals(ild.disaggregation['()']['d'], 0) + self.assertEquals(ild.disaggregation['()']['v'], 0) + + +class TestClusterObjectiveIndicatorAdoptAPIViewAPIView(BaseAPITestCase): + + def setUp(self): + self.country = CountryFactory() + self.workspace = WorkspaceFactory(countries=[self.country, ]) + self.response_plan = ResponsePlanFactory(workspace=self.workspace) + self.cluster = ClusterFactory(type='cccm', response_plan=self.response_plan) + self.cluster2 = ClusterFactory(type='education', response_plan=self.response_plan) + self.loc_type = GatewayTypeFactory(country=self.country) + self.carto_table = CartoDBTableFactory(location_type=self.loc_type, country=self.country) + self.loc1 = LocationFactory(gateway=self.loc_type, carto_db_table=self.carto_table) + self.loc2 = LocationFactory(gateway=self.loc_type, carto_db_table=self.carto_table) + self.unicef_officer = PersonFactory() + self.unicef_focal_point = PersonFactory() + self.partner_focal_point = PersonFactory() + self.objective = ClusterObjectiveFactory( + cluster=self.cluster, + locations=[ + self.loc1, + self.loc2, + ] + ) + self.objective2 = ClusterObjectiveFactory( + cluster=self.cluster2, + locations=[ + self.loc1, + self.loc2, + ] + ) + self.activity = ClusterActivityFactory( + cluster_objective=self.objective, + locations=[ + self.loc1, self.loc2 + ] + ) + self.partner = PartnerFactory(country_code=self.country.country_short_code) + self.partner2 = PartnerFactory(country_code=self.country.country_short_code) + self.user = NonPartnerUserFactory() + self.partner_user = PartnerUserFactory(partner=self.partner) + ClusterPRPRoleFactory(user=self.user, workspace=self.workspace, cluster=self.cluster, role=PRP_ROLE_TYPES.cluster_imo) + IPPRPRoleFactory(user=self.partner_user, workspace=self.workspace, role=PRP_ROLE_TYPES.ip_authorized_officer) + IPPRPRoleFactory(user=self.partner_user, workspace=self.workspace, cluster=None, role=PRP_ROLE_TYPES.cluster_member) + self.project = PartnerProjectFactory( + partner=self.partner, + clusters=[self.cluster], + locations=[self.loc1, self.loc2], + ) + self.project2 = PartnerProjectFactory( + partner=self.partner2, + clusters=[self.cluster], + locations=[self.loc1, self.loc2], + ) + self.p_activity = ClusterActivityPartnerActivityFactory( + partner=self.partner, + cluster_activity=self.activity, + ) + self.project_context = PartnerActivityProjectContextFactory( + project=self.project, + activity=self.p_activity, + ) + self.sample_disaggregation_value_map = { + "height": ["tall", "medium", "short", "extrashort"], + "age": ["1-2m", "3-4m", "5-6m", '7-10m', '11-13m', '14-16m'], + "gender": ["male", "female", "other"], + } + + blueprint = QuantityTypeIndicatorBlueprintFactory( + unit=IndicatorBlueprint.NUMBER, + calculation_formula_across_locations=IndicatorBlueprint.SUM, + calculation_formula_across_periods=IndicatorBlueprint.SUM, + ) + + self.partneractivity_reportable = QuantityReportableToPartnerActivityFactory( + content_object=self.p_activity, blueprint=blueprint + ) + + LocationWithReportableLocationGoalFactory( + location=self.loc1, + reportable=self.partneractivity_reportable, + ) + + LocationWithReportableLocationGoalFactory( + location=self.loc2, + reportable=self.partneractivity_reportable, + ) + + self.clusterobjective_reportable = QuantityReportableToClusterObjectiveFactory( + content_object=self.objective, blueprint=blueprint + ) + + self.reportable_loc_1 = LocationWithReportableLocationGoalFactory( + location=self.loc1, + reportable=self.clusterobjective_reportable, + ) + + self.reportable_loc_2 = LocationWithReportableLocationGoalFactory( + location=self.loc2, + reportable=self.clusterobjective_reportable, + ) + + self.clusterobjective_reportable2 = QuantityReportableToClusterObjectiveFactory( + content_object=self.objective2, blueprint=blueprint + ) + + self.reportable_2_loc_1 = LocationWithReportableLocationGoalFactory( + location=self.loc1, + reportable=self.clusterobjective_reportable2, + ) + + self.reportable_2_loc_2 = LocationWithReportableLocationGoalFactory( + location=self.loc2, + reportable=self.clusterobjective_reportable2, + ) + + self.clusterobjective_reportable.disaggregations.clear() + self.clusterobjective_reportable2.disaggregations.clear() + self.partneractivity_reportable.disaggregations.clear() + + # Create the disaggregations and values in the db for all response plans + # including one for no response plan as well + for disagg_name, values in self.sample_disaggregation_value_map.items(): + cluster_disagg = DisaggregationFactory(name=disagg_name, response_plan=self.response_plan) + + self.clusterobjective_reportable.disaggregations.add(cluster_disagg) + self.clusterobjective_reportable2.disaggregations.add(cluster_disagg) + self.partneractivity_reportable.disaggregations.add(cluster_disagg) + + for value in values: + DisaggregationValueFactory( + disaggregation=cluster_disagg, + value=value + ) + + super().setUp() + + # Logging in as Partner AO + self.client.force_authenticate(self.partner_user) + + def test_invalid_serializer_values(self): + url = reverse('partner-project-indicator-adopt') + + # Start with valid data payload + data = { + 'partner_id': self.partner.id, + 'partner_project_id': self.project.id, + 'cluster_id': self.cluster.id, + 'cluster_objective_id': self.objective.id, + 'reportable_id': self.clusterobjective_reportable.id, + 'locations': [ + { + 'id': self.reportable_loc_1.id, + 'baseline': {'d': 1, 'v': 1, 'c': 1}, + 'in_need': {'d': 1, 'v': 1, 'c': 1}, + 'target': {'d': 1, 'v': 1, 'c': 1}, + 'location': self.loc1.id, + }, + { + 'id': self.reportable_loc_2.id, + 'baseline': {'d': 1, 'v': 1, 'c': 1}, + 'in_need': {'d': 1, 'v': 1, 'c': 1}, + 'target': {'d': 1, 'v': 1, 'c': 1}, + 'location': self.loc2.id, + } + ], + 'target': {'d': 1, 'v': 1, 'c': 1}, + 'baseline': {'d': 1, 'v': 1, 'c': 1}, + } + + # Target value type check + data['target'] = list() + response = self.client.post(url, data=data, format='json') + self.assertTrue(status.is_client_error(response.status_code)) + + # Baseline value type check + data['target'] = {'d': 1, 'v': 1, 'c': 1} + data['baseline'] = list() + response = self.client.post(url, data=data, format='json') + self.assertTrue(status.is_client_error(response.status_code)) + + # zero d value in target + data['baseline'] = {'d': 1, 'v': 1, 'c': 1} + data['target'] = {'d': 0, 'v': 1, 'c': 1} + response = self.client.post(url, data=data, format='json') + self.assertTrue(status.is_client_error(response.status_code)) + + # missing v value in target + data['target'] = {'d': 1, 'c': 1} + response = self.client.post(url, data=data, format='json') + self.assertTrue(status.is_client_error(response.status_code)) + + # zero d value in baseline + data['target'] = {'d': 1, 'v': 1, 'c': 1} + data['baseline'] = {'d': 0, 'v': 1, 'c': 1} + response = self.client.post(url, data=data, format='json') + self.assertTrue(status.is_client_error(response.status_code)) + + # missing v value in baseline + data['baseline'] = {'d': 1, 'c': 1} + response = self.client.post(url, data=data, format='json') + self.assertTrue(status.is_client_error(response.status_code)) + + # Reset + data['target'] = {'d': 1, 'v': 1, 'c': 1} + data['baseline'] = {'d': 1, 'v': 1, 'c': 1} + + # Non-exist partner check + data['partner_id'] = 999999 + response = self.client.post(url, data=data, format='json') + self.assertTrue(status.is_client_error(response.status_code)) + + # Non-exist partner project check + data['partner_id'] = self.partner.id + data['partner_project_id'] = 999999 + response = self.client.post(url, data=data, format='json') + self.assertTrue(status.is_client_error(response.status_code)) + + # Invalid partner project membership check + data['partner_id'] = self.partner.id + data['partner_project_id'] = self.project2.id + response = self.client.post(url, data=data, format='json') + self.assertTrue(status.is_client_error(response.status_code)) + + # Non-exist cluster check + data['partner_project_id'] = self.project.id + data['cluster_id'] = 999999 + response = self.client.post(url, data=data, format='json') + self.assertTrue(status.is_client_error(response.status_code)) + + # Non-exist cluster objective check + data['cluster_id'] = self.cluster.id + data['cluster_objective_id'] = 999999 + response = self.client.post(url, data=data, format='json') + self.assertTrue(status.is_client_error(response.status_code)) + + # Invalid cluster objective membership check + data['cluster_id'] = self.cluster.id + data['cluster_objective_id'] = self.objective2.id + response = self.client.post(url, data=data, format='json') + self.assertTrue(status.is_client_error(response.status_code)) + + # Non-exist reportable_id check + data['cluster_objective_id'] = self.objective.id + data['reportable_id'] = 9999999 + response = self.client.post(url, data=data, format='json') + self.assertTrue(status.is_client_error(response.status_code)) + + # Invalid reportable type check + data['reportable_id'] = self.partneractivity_reportable.id + response = self.client.post(url, data=data, format='json') + self.assertTrue(status.is_client_error(response.status_code)) + + # Invalid reportable membership check + data['reportable_id'] = self.clusterobjective_reportable2.id + response = self.client.post(url, data=data, format='json') + self.assertTrue(status.is_client_error(response.status_code)) + + def test_valid_serializer_values(self): + url = reverse('partner-project-indicator-adopt') + + # Start with valid data payload + data = { + 'partner_id': self.partner.id, + 'partner_project_id': self.project.id, + 'cluster_id': self.cluster.id, + 'cluster_objective_id': self.objective.id, + 'reportable_id': self.clusterobjective_reportable.id, + 'locations': [ + { + 'id': self.reportable_loc_1.id, + 'baseline': {'d': 1, 'v': 1, 'c': 1}, + 'in_need': {'d': 1, 'v': 1, 'c': 1}, + 'target': {'d': 1, 'v': 1, 'c': 1}, + 'location': self.loc1.id, + }, + { + 'id': self.reportable_loc_2.id, + 'baseline': {'d': 1, 'v': 1, 'c': 1}, + 'in_need': {'d': 1, 'v': 1, 'c': 1}, + 'target': {'d': 1, 'v': 1, 'c': 1}, + 'location': self.loc2.id, + } + ], + 'target': {'d': 1, 'v': 1, 'c': 1}, + 'baseline': {'d': 1, 'v': 1, 'c': 1}, + } + + response = self.client.post(url, data=data, format='json') + self.assertTrue(status.is_success(response.status_code)) + self.assertTrue(Reportable.objects.filter(id=response.data['id']).exists()) diff --git a/django_api/django_api/apps/indicator/urls.py b/django_api/django_api/apps/indicator/urls.py index 94b9afd16..0a3e97bdc 100644 --- a/django_api/django_api/apps/indicator/urls.py +++ b/django_api/django_api/apps/indicator/urls.py @@ -16,6 +16,8 @@ ReportableLocationGoalBaselineInNeedAPIView, ClusterIndicatorSendIMOMessageAPIView, ReportableReportingFrequencyListAPIView, + ReportRefreshAPIView, + ClusterObjectiveIndicatorAdoptAPIView, ) @@ -61,6 +63,8 @@ IndicatorReportReviewAPIView.as_view(), name='indicator-report-review'), + url(r'^partner-project-indicator-adopt/$', ClusterObjectiveIndicatorAdoptAPIView.as_view(), name='partner-project-indicator-adopt'), + url(r'^cluster-indicator/$', ClusterIndicatorAPIView.as_view(), name='cluster-indicator'), url(r'^cluster-indicator-imo-message/$', @@ -74,4 +78,8 @@ url(r'^reporting-frequencies/$', ReportableReportingFrequencyListAPIView.as_view(), name='reportable-reporting-frequency-list-api'), + + url(r'^report-refresh/$', + ReportRefreshAPIView.as_view(), + name='report-refresh-api'), ] diff --git a/django_api/django_api/apps/indicator/utilities.py b/django_api/django_api/apps/indicator/utilities.py index 6967de039..ce0f361d4 100644 --- a/django_api/django_api/apps/indicator/utilities.py +++ b/django_api/django_api/apps/indicator/utilities.py @@ -1,9 +1,19 @@ from babel.numbers import format_number, format_percent + from django.utils.translation import to_locale, get_language +from django.db import transaction + +from core.helpers import ( + create_ir_and_ilds_for_pr, +) from indicator.constants import ValueType +def convert_string_number_to_float(num): + return float(num.replace(',', '')) if type(num) == str else float(num) + + def format_total_value_to_string(total, is_percentage=False): if is_percentage: value = total.get(ValueType.CALCULATED, 0) @@ -14,3 +24,63 @@ def format_total_value_to_string(total, is_percentage=False): locale = to_locale(get_language()) return formatter(value, locale=locale) + + +def reset_indicator_report_data(indicator_report): + """Delete all IndicatorLocationData instances and generate blank IndicatorLoationData instances for given IndicatorReport instance. + + Arguments: + indicator_report {IndicatorReport} -- IndicatorReport instance to delete its location data from + """ + from indicator.models import ( + IndicatorLocationData, + ) + + # Reset submission and status attributes + indicator_report.total = {'c': 0, 'd': 0, 'v': 0} + indicator_report.overall_status = "NoS" + indicator_report.report_status = "Due" + indicator_report.submission_date = None + indicator_report.save() + + indicator_report.indicator_location_data.all().delete() + reportable = indicator_report.reportable + + for location_goal in reportable.reportablelocationgoal_set.filter(is_active=True): + IndicatorLocationData.objects.create( + indicator_report=indicator_report, + location=location_goal.location, + num_disaggregation=indicator_report.disaggregations.count(), + level_reported=indicator_report.disaggregations.count(), + disaggregation_reported_on=list(indicator_report.disaggregations.values_list( + 'id', flat=True)), + disaggregation={ + '()': {'c': 0, 'd': 0, 'v': 0} + }, + ) + + +def reset_progress_report_data(progress_report): + """Reset all IndicatorReport instances for given ProgressReport instance by deletion and regenerating instances. + + Arguments: + progress_report {ProgressReport} -- ProgressReport instance to delete its indicator reports from + """ + + # Delete all current indicator reports and their indicator location data will be deleted in cascade + progress_report.indicator_reports.all().delete() + + pd = progress_report.programme_document + + # Get Active LLO indicators only + reportable_queryset = pd.reportable_queryset.filter(active=True) + + with transaction.atomic(): + create_ir_and_ilds_for_pr( + pd, + reportable_queryset, + progress_report, + progress_report.start_date, + progress_report.end_date, + progress_report.due_date + ) diff --git a/django_api/django_api/apps/indicator/views.py b/django_api/django_api/apps/indicator/views.py index d8984ac64..75430ea7a 100644 --- a/django_api/django_api/apps/indicator/views.py +++ b/django_api/django_api/apps/indicator/views.py @@ -36,6 +36,7 @@ PRP_ROLE_TYPES, ) from core.serializers import ShortLocationSerializer +from partner.models import PartnerProject from unicef.models import ProgressReport from unicef.permissions import UnicefPartnershipManagerOrRead from utils.emails import send_email_from_template @@ -54,6 +55,8 @@ DisaggregationListSerializer, IndicatorReportReviewSerializer, IndicatorReportSimpleSerializer, + ReportRefreshSerializer, + ClusterObjectiveIndicatorAdoptSerializer, ReportableLocationGoalBaselineInNeedSerializer, ClusterIndicatorIMOMessageSerializer, ReportableReportingFrequencyIdSerializer, @@ -65,8 +68,10 @@ Reportable, IndicatorLocationData, Disaggregation, - ReportableLocationGoal + ReportableLocationGoal, + create_reportable_for_pp_from_co_reportable, ) +from .utilities import reset_indicator_report_data, reset_progress_report_data from functools import reduce logger = logging.getLogger(__name__) @@ -131,7 +136,11 @@ class PDReportsDetailAPIView(RetrieveAPIView): def check_permissions(self, request): super().check_permissions(request) - pd_id = self.kwargs['pd_id'] + pd_id = self.kwargs.get('pd_id', None) + + if not pd_id: + self.permission_denied(request) + if not request.user.partner.programmedocument_set.filter(id=pd_id).exists(): self.permission_denied(request) @@ -463,7 +472,11 @@ def check_permissions(self, request): super().check_permissions(request) pd_progress_report_id = self.kwargs.get('pd_progress_report_id') if not request.user.prp_roles.filter( - role__in=[PRP_ROLE_TYPES.ip_authorized_officer, PRP_ROLE_TYPES.ip_editor], + role__in=[ + PRP_ROLE_TYPES.ip_authorized_officer, + PRP_ROLE_TYPES.ip_editor, + PRP_ROLE_TYPES.ip_admin, + ], workspace__partner_focal_programme_documents__progress_reports__id=pd_progress_report_id ).exists(): self.permission_denied(request) @@ -630,6 +643,7 @@ class IndicatorLocationDataUpdateAPIView(APIView): HasAnyRole( PRP_ROLE_TYPES.ip_authorized_officer, PRP_ROLE_TYPES.ip_editor, + PRP_ROLE_TYPES.ip_admin, PRP_ROLE_TYPES.cluster_system_admin, PRP_ROLE_TYPES.cluster_imo, PRP_ROLE_TYPES.cluster_member, @@ -765,7 +779,7 @@ def post(self, request, *args, **kwargs): ) try: - project_name = reportable.content_object.project.title + project_name = reportable.content_object.projects.first().title except Exception: project_name = '' @@ -828,3 +842,85 @@ def post(self, request, *args, **kwargs): response.append({'frequency': freq, 'cs_dates': cs_dates}) return Response(response, status=status.HTTP_200_OK) + + +class ReportRefreshAPIView(APIView): + + permission_classes = ( + IsAuthenticated, + HasAnyRole( + PRP_ROLE_TYPES.cluster_system_admin, + PRP_ROLE_TYPES.cluster_imo, + PRP_ROLE_TYPES.cluster_member, + PRP_ROLE_TYPES.ip_authorized_officer, + PRP_ROLE_TYPES.ip_editor, + ), + ) + + @transaction.atomic + def post(self, request, *args, **kwargs): + """ + Removes all IndicatorReport instances for given ProgressReport, including underlying IndicatorLocationData instances + """ + serializer = ReportRefreshSerializer(data=request.data) + serializer.is_valid(raise_exception=True) + + if serializer.validated_data['report_type'] == 'PR': + report = get_object_or_404(ProgressReport, id=serializer.validated_data['report_id']) + target_prs = ProgressReport.objects.filter( + programme_document=report.programme_document, + report_type=report.report_type, + report_number__gte=report.report_number + ) + + for pr in target_prs: + reset_progress_report_data(pr) + else: + report = get_object_or_404(IndicatorReport, id=serializer.validated_data['report_id']) + + if report.progress_report: + raise ValidationError("This indicator report is linked to a progress report. Use the progress report ID instead.") + + reset_indicator_report_data(report) + + return Response({"response": "OK"}, status=status.HTTP_200_OK) + + +class ClusterObjectiveIndicatorAdoptAPIView(APIView): + """ + Create a PartnerProject Reportable from ClusterObjective Reportable. + + Only a IMO should be allowed to do this action. + """ + permission_classes = ( + IsAuthenticated, + HasAnyRole( + PRP_ROLE_TYPES.cluster_system_admin, + PRP_ROLE_TYPES.cluster_imo, + PRP_ROLE_TYPES.cluster_member, + ) + ) + + @transaction.atomic + def post(self, request, *args, **kwargs): + serializer = ClusterObjectiveIndicatorAdoptSerializer(data=request.data) + serializer.is_valid(raise_exception=True) + + co_reportable = Reportable.objects.get(id=serializer.validated_data['reportable_id']) + pp = PartnerProject.objects.get(id=serializer.validated_data['partner_project_id']) + pp_reportable = create_reportable_for_pp_from_co_reportable(pp, co_reportable) + pp_reportable.target = serializer.validated_data['target'] + pp_reportable.baseline = serializer.validated_data['baseline'] + pp_reportable.save() + + for item in serializer.validated_data['locations']: + ReportableLocationGoal.objects.create( + reportable=pp_reportable, + location=item['location'], + target=item['target'], + baseline=item['baseline'], + ) + + result_serializer = ClusterIndicatorSerializer(instance=pp_reportable) + + return Response(result_serializer.data, status=status.HTTP_200_OK) diff --git a/django_api/django_api/apps/ocha/imports/project.py b/django_api/django_api/apps/ocha/imports/project.py index 8558923da..46a29c5ff 100644 --- a/django_api/django_api/apps/ocha/imports/project.py +++ b/django_api/django_api/apps/ocha/imports/project.py @@ -5,13 +5,17 @@ from ocha.imports.serializers import V2PartnerProjectImportSerializer from ocha.imports.utilities import get_json_from_url, save_location_list, logger, save_disaggregations from ocha.utilities import get_dict_from_list_by_key, convert_to_json_ratio_value -from partner.models import PartnerActivity +from partner.models import PartnerActivity, PartnerActivityProjectContext -def import_project_details(project, current_version_id): - source_url = HPC_V2_ROOT_URL + 'project-version/{}/attachments'.format(current_version_id) +def import_project_details(project, external_project_id): + source_url = HPC_V2_ROOT_URL + 'project/{}/attachments'.format(external_project_id) attachments = get_json_from_url(source_url)['data'] + if not attachments: + logger.warning('No project attachment V2 data found for project_id: {}. Skipping reportables and location data'.format(external_project_id)) + return + reportables = [] for attachment in attachments: @@ -25,11 +29,11 @@ def import_project_details(project, current_version_id): external_source=EXTERNAL_DATA_SOURCES.HPC, external_id=attachment['attachment']['id'], defaults={ - 'title': attachment['attachment']['value']['description'], + 'title': attachment['attachment']['attachmentVersion']['value']['description'], } ) - totals = attachment['attachment']['value']['metrics']['values']['totals'] + totals = attachment['attachment']['attachmentVersion']['value']['metrics']['values']['totals'] target = get_dict_from_list_by_key(totals, 'Target', key='name.en')['value'] in_need = get_dict_from_list_by_key(totals, 'In Need', key='name.en')['value'] @@ -50,7 +54,7 @@ def import_project_details(project, current_version_id): ) try: - disaggregated = attachment['attachment']['value']['metrics']['values']['disaggregated'] + disaggregated = attachment['attachment']['attachmentVersion']['value']['metrics']['values']['disaggregated'] for disaggregation in save_disaggregations( disaggregated.get('categories', []), response_plan=project.response_plan ): @@ -59,26 +63,38 @@ def import_project_details(project, current_version_id): disaggregation_id=disaggregation.id ) - locations = save_location_list(disaggregated['locations']) + locations = save_location_list(disaggregated['locations'], "indicator") for location in locations: ReportableLocationGoal.objects.get_or_create(reportable=reportable, location=location) except (KeyError, TypeError, AttributeError): locations = [] if cluster_activity: + from indicator.models import create_pa_reportables_from_ca partner_activity, _ = PartnerActivity.objects.update_or_create( - project=project, cluster_activity=cluster_activity, defaults={ 'title': cluster_activity.title, - 'start_date': project.start_date, - 'end_date': project.end_date, 'partner': project.partner, } ) - partner_activity.reportables.add(reportable) partner_activity.locations.add(*locations) + project_context, created = PartnerActivityProjectContext.objects.update_or_create( + start_date=project.start_date, + end_date=project.end_date, + defaults={ + 'activity': partner_activity, + 'project': project, + }, + ) + + if created: + create_pa_reportables_from_ca(partner_activity, cluster_activity) + + project.reportables.add(reportable) + project.locations.add(*locations) + reportables.append(reportable) logger.debug('Saved {} reportables for {}'.format( @@ -86,7 +102,7 @@ def import_project_details(project, current_version_id): )) -def import_project(external_project_id, partner_id, response_plan=None, async=True): +def import_project(external_project_id, partner_id, response_plan=None, asynch=True): source_url = HPC_V2_ROOT_URL + 'project/{}'.format(external_project_id) project_data = get_json_from_url(source_url)['data'] # Grab project details from projectVersion array of dict @@ -111,21 +127,15 @@ def import_project(external_project_id, partner_id, response_plan=None, async=Tr current_project_data['cluster_ids'] = list() if 'governingEntities' in current_project_data: for cluster in current_project_data['governingEntities']: - if 'clusterNumber' in cluster: - if not cluster['clusterNumber'].isdigit(): - cluster_number = int(cluster['clusterNumber'][1:]) - else: - cluster_number = int(cluster['clusterNumber']) - - current_project_data['cluster'] = current_project_data['cluster_ids'].append(cluster_number) + current_project_data['cluster_ids'].append(cluster['id']) serializer = V2PartnerProjectImportSerializer(data=current_project_data) serializer.is_valid(raise_exception=True) project = serializer.save() from ocha.tasks import finish_partner_project_import - (finish_partner_project_import.delay if async else finish_partner_project_import)( - project.pk, response_plan_id=getattr(response_plan, 'id', None) + (finish_partner_project_import.delay if asynch else finish_partner_project_import)( + project.pk, external_project_id, response_plan_id=getattr(response_plan, 'id', None) ) return project diff --git a/django_api/django_api/apps/ocha/imports/response_plan.py b/django_api/django_api/apps/ocha/imports/response_plan.py index 476ed04de..c74e5c477 100644 --- a/django_api/django_api/apps/ocha/imports/response_plan.py +++ b/django_api/django_api/apps/ocha/imports/response_plan.py @@ -8,24 +8,31 @@ save_reportables_for_cluster_objective_or_activity -def import_response_plan(external_plan_id, workspace=None, async=True): +def import_response_plan(external_plan_id, workspace=None, asynch=True): logger.debug('Importing Response Plan #{}'.format(external_plan_id)) source_url = HPC_V1_ROOT_URL + 'rpm/plan/id/{}?format=json&content=entities'.format(external_plan_id) plan_data = get_json_from_url(source_url)['data'] if workspace: plan_data['workspace_id'] = workspace.id + + plan_data['name'] = plan_data['planVersion']['name'] + plan_data['startDate'] = plan_data['planVersion']['startDate'] + plan_data['endDate'] = plan_data['planVersion']['endDate'] + plan_serializer = V1ResponsePlanImportSerializer(data=plan_data) plan_serializer.is_valid(raise_exception=True) response_plan = plan_serializer.save() # Do most of the work in background, otherwise it times out the request a lot from ocha.tasks import finish_response_plan_import - (finish_response_plan_import.delay if async else finish_response_plan_import)(external_plan_id) + (finish_response_plan_import.delay if asynch else finish_response_plan_import)(external_plan_id) return response_plan def save_activities_and_objectives_for_response_plan(entities_response={}, measurements_response={}): + logger.debug('Importing Activities and Objectives for Response Plan') + activities = [] objectives = {} @@ -41,7 +48,7 @@ def save_activities_and_objectives_for_response_plan(entities_response={}, measu for activity in activities: try: - activity_data = activity['value']['support'] + activity_data = activity['planEntityVersion']['value']['support'] # Cameroon data is different format # 'support': {'0': {'planEntityIds': []}} @@ -59,8 +66,8 @@ def save_activities_and_objectives_for_response_plan(entities_response={}, measu if len(parent_objective_ids) > 1: logger.warning( 'Activity \n`{}` supports \n{} \nobjectives. Only 1st one will be saved.'.format( - activity['value']['description'], - [objectives[obj_id]['value']['description'] for obj_id in parent_objective_ids] + activity['planEntityVersion']['value']['description'], + [objectives[obj_id]['planEntityVersion']['value']['description'] for obj_id in parent_objective_ids] ) ) parent_objective = objectives[parent_objective_ids[0]] @@ -75,7 +82,7 @@ def save_activities_and_objectives_for_response_plan(entities_response={}, measu external_source=EXTERNAL_DATA_SOURCES.HPC, defaults={ 'cluster_objective': cluster_objective, - 'title': activity['value']['description'][:2048] + 'title': activity['planEntityVersion']['value']['description'][:2048] } ) diff --git a/django_api/django_api/apps/ocha/imports/serializers.py b/django_api/django_api/apps/ocha/imports/serializers.py index 27120cbe2..3c95e3e87 100644 --- a/django_api/django_api/apps/ocha/imports/serializers.py +++ b/django_api/django_api/apps/ocha/imports/serializers.py @@ -72,7 +72,7 @@ class V2PartnerProjectImportSerializer(DiscardUniqueTogetherValidationMixin, ser currentRequestedFunds = serializers.FloatField(source='total_budget', allow_null=True) startDate = serializers.DateTimeField(source='start_date') endDate = serializers.DateTimeField(source='end_date') - code = serializers.CharField() + code = serializers.CharField(allow_null=True, allow_blank=True) additional_information = serializers.CharField(allow_null=True, allow_blank=True) locations = V2PartnerProjectLocationImportSerializer(many=True) cluster_ids = serializers.ListField(child=serializers.IntegerField(), allow_null=True) @@ -109,13 +109,16 @@ def create(self, validated_data): validated_data['additional_information'] = '' location_data_list = validated_data.pop('locations') cluster_ids = validated_data.pop('cluster_ids', None) - partner_project = PartnerProject.objects.filter(code=validated_data['code']).first() + partner_project = PartnerProject.objects.filter( + external_source=EXTERNAL_DATA_SOURCES.HPC, + external_id=validated_data['external_id'] + ).first() if partner_project: partner_project = super(V2PartnerProjectImportSerializer, self).update(partner_project, validated_data) else: partner_project = super(V2PartnerProjectImportSerializer, self).create(validated_data) - locations = save_location_list(location_data_list) + locations = save_location_list(location_data_list, "project") # Add clusters if cluster_ids: @@ -271,7 +274,7 @@ def save_clusters(self, response_plan, clusters_data): Cluster.objects.update_or_create( type=CLUSTER_TYPES.imported, - imported_type=cluster_data['name'], + imported_type=cluster_data['governingEntityVersion']['name'], response_plan=response_plan, defaults={ 'external_id': cluster_data['id'], diff --git a/django_api/django_api/apps/ocha/imports/utilities.py b/django_api/django_api/apps/ocha/imports/utilities.py index e368e70b1..4b4209714 100644 --- a/django_api/django_api/apps/ocha/imports/utilities.py +++ b/django_api/django_api/apps/ocha/imports/utilities.py @@ -75,71 +75,114 @@ def retry(): return response_json -def save_location_list(location_list, parent=None, save_children=False): - location_ids = [l['id'] for l in location_list if 'id' in l and type(l['id']) == int] +def save_location_list(location_list, source_type): + if not location_list: + logger.info('No locations for {}'.format(source_type)) + return - location_country_map = {} - locations = [] + if source_type == "response_plan": + logger.info('Saving response plan locations...') + id_key = 'id' - for location_id in sorted(location_ids): - location = Location.objects.filter( - external_source=EXTERNAL_DATA_SOURCES.HPC, - external_id=location_id - ).first() + elif source_type == "project": + logger.info('Saving project locations...') + id_key = 'external_id' - if not location or save_children: - location_data = get_json_from_url(HPC_V2_ROOT_URL + 'location/{}'.format(location_id)) - if 'data' not in location_data: - continue + elif source_type == "indicator": + logger.info('Saving indicator locations...') + id_key = 'name' + + locations = [] + + for location_data in location_list: + if id_key == 'external_id' or id_key == 'id': + location = Location.objects.filter( + external_source=EXTERNAL_DATA_SOURCES.HPC, + external_id=location_data[id_key] + ).first() + else: + location = Location.objects.filter( + external_source=EXTERNAL_DATA_SOURCES.HPC, + title=location_data[id_key] + ).first() if not location: - country = None - if parent: - country = parent.gateway.country - elif location_data['data']['adminLevel'] == 0: + parent_loc = None + + if source_type == "indicator" and 'parent' in location_data: + parent_loc = Location.objects.filter( + external_source=EXTERNAL_DATA_SOURCES.HPC, + title=location_data['parent']['name'] + ).first() + + if not parent_loc: + logger.warning('Couldn\'t find parent location for {}, skipping: {}'.format( + source_type, location_data + )) + continue + + elif source_type == "project" and 'parentId' in location_data: + parent_loc = Location.objects.filter( + external_source=EXTERNAL_DATA_SOURCES.HPC, + external_id=location_data['parentId'] + ).first() + + if not parent_loc: + logger.warning('Couldn\'t find parent location for {}, skipping: {}'.format( + source_type, location_data + )) + continue + + if parent_loc: + country = parent_loc.gateway.country + + elif 'adminLevel' in location_data \ + and location_data['adminLevel'] == 0: country, _ = Country.objects.update_or_create( - country_short_code=location_data['data']['iso3'], + country_short_code=location_data['iso3'], defaults={ - 'name': location_data['data']['name'] + 'name': location_data['name'] } ) - for child in location_data['data']['children']: - location_country_map[child['id']] = country - elif location_data['data']['id'] in location_country_map: - country = location_country_map[location_data['data']['id']] - for child in location_data['data']['children']: - location_country_map[child['id']] = country - elif not country: - logger.warning('Couldn\'t find country for {}, skipping'.format( - HPC_V2_ROOT_URL + 'location/{}'.format(location_data['data']['id']) + + if not country: + logger.warning('Couldn\'t find country for {}, skipping: {}'.format( + source_type, location_data + )) + continue + + if 'adminLevel' not in location_data: + logger.warning('Couldn\'t find gateway for {}, skipping: {}'.format( + source_type, location_data )) continue - gateway_name = '{}-Admin Level {}'.format(country.country_short_code, location_data['data']['adminLevel']) + gateway_name = '{}-Admin Level {}'.format(country.country_short_code, location_data['adminLevel']) logger.debug('Saving gateway type with name {}'.format(gateway_name)) gateway, _ = GatewayType.objects.get_or_create( country=country, - admin_level=location_data['data']['adminLevel'], + admin_level=location_data['adminLevel'], + name=gateway_name, ) + loc_id = location_data['id'] if 'id' in location_data else location_data['external_id'] + loc_name = location_data['name'] if 'name' in location_data else location_data['title'] + location, _ = Location.objects.update_or_create( gateway=gateway, - title=location_data['data']['name'], + title=loc_name, defaults={ 'external_source': EXTERNAL_DATA_SOURCES.HPC, - 'external_id': location_data['data']['id'], - 'latitude': location_data['data'].get('latitude'), - 'longitude': location_data['data'].get('longitude'), - 'parent': parent, + 'external_id': loc_id, + 'latitude': location_data.get('latitude', None), + 'longitude': location_data.get('longitude', None), + 'parent': parent_loc, } ) - logger.debug('Saved location {} as {}'.format(location_data['data']['id'], location)) + logger.debug('Saved location {} as {}'.format(loc_name, location)) locations.append(location) - if save_children: - save_location_list(location_data['data'].get('children', []), parent=location) - return locations @@ -189,7 +232,7 @@ def save_cluster_objective(objective, child_activity=None): external_source=EXTERNAL_DATA_SOURCES.HPC, defaults={ 'cluster': cluster, - 'title': objective['value']['description'][:2048] + 'title': objective['planEntityVersion']['value']['description'][:2048] } ) logger.debug('Saved Cluster Objective: {}'.format(cluster_objective)) @@ -204,14 +247,14 @@ def save_reportables_for_cluster_objective_or_activity(objective_or_activity, at if not attachment['type'] == 'indicator': continue - values = attachment['value']['metrics']['values']['totals'] - disaggregated = attachment['value']['metrics']['values'].get('disaggregated', {}) + values = attachment['attachmentVersion']['value']['metrics']['values']['totals'] + disaggregated = attachment['attachmentVersion']['value']['metrics']['values'].get('disaggregated', {}) blueprint, _ = IndicatorBlueprint.objects.update_or_create( external_id=attachment['id'], external_source=EXTERNAL_DATA_SOURCES.HPC, defaults={ - 'title': attachment['value']['description'], + 'title': attachment['attachmentVersion']['value']['description'], 'disaggregatable': bool(disaggregated), } ) @@ -236,7 +279,8 @@ def save_reportables_for_cluster_objective_or_activity(objective_or_activity, at try: locations = save_location_list( - attachment['value']['metrics']['values']['disaggregated']['locations'] + attachment['attachmentVersion']['value']['metrics']['values']['disaggregated']['locations'], + "indicator" ) logger.debug('Saving {} locations for {}'.format( len(locations), reportable diff --git a/django_api/django_api/apps/ocha/management/commands/import_projects.py b/django_api/django_api/apps/ocha/management/commands/import_projects.py index 229967dfd..7a1559e7d 100644 --- a/django_api/django_api/apps/ocha/management/commands/import_projects.py +++ b/django_api/django_api/apps/ocha/management/commands/import_projects.py @@ -44,12 +44,12 @@ def handle(self, *args, **options): response_plan = ResponsePlan.objects.filter(id=rp_id).first() if _id: - import_project(_id, Partner.objects.first().id, response_plan=response_plan, async=False) + import_project(_id, Partner.objects.first().id, response_plan=response_plan, asynch=False) elif response_plan: project_list = get_project_list_for_plan(response_plan.external_id) for project in project_list: try: - import_project(project['id'], Partner.objects.first().id, response_plan=response_plan, async=False) + import_project(project['id'], Partner.objects.first().id, response_plan=response_plan, asynch=False) except OCHAImportException: continue elif bulk: @@ -60,7 +60,7 @@ def handle(self, *args, **options): return for project_id in range(start_id, end_id + 1): try: - import_project(project_id, Partner.objects.first().id, response_plan=response_plan, async=False) + import_project(project_id, Partner.objects.first().id, response_plan=response_plan, asynch=False) except Exception as e: self.stderr.write('Error getting {}: {}'.format(project_id, e)) else: diff --git a/django_api/django_api/apps/ocha/management/commands/import_response_plans.py b/django_api/django_api/apps/ocha/management/commands/import_response_plans.py index 4128bf88e..0e2a6309d 100644 --- a/django_api/django_api/apps/ocha/management/commands/import_response_plans.py +++ b/django_api/django_api/apps/ocha/management/commands/import_response_plans.py @@ -34,6 +34,6 @@ def handle(self, *args, **options): if country: import_plans_for_country(country) elif _id: - import_response_plan(_id, async=False) + import_response_plan(_id, asynch=False) else: self.stderr.write('Either country or id needs to be provided') diff --git a/django_api/django_api/apps/ocha/samples/V1_cash_flow.json b/django_api/django_api/apps/ocha/samples/V1_cash_flow.json index 3571efc17..8cdc55c32 100644 --- a/django_api/django_api/apps/ocha/samples/V1_cash_flow.json +++ b/django_api/django_api/apps/ocha/samples/V1_cash_flow.json @@ -1,136 +1,153 @@ { - "status":"ok", - "data":{ - "incoming":{ - "flowCount":1, - "fundingTotal":663790, - "pledgeTotal":0 + "status": "ok", + "data": { + "incoming": { + "flowCount": 1, + "fundingTotal": 2614016, + "pledgeTotal": 0 }, - "outgoing":{ - "flowCount":0, - "fundingTotal":0, - "pledgeTotal":0 + "outgoing": { + "flowCount": 0, + "fundingTotal": 0, + "pledgeTotal": 0 }, - "internal":{ - "flowCount":0 + "internal": { + "flowCount": 0 }, - "flows":[ + "flows": [ { - "id":"155628", - "versionId":1, - "description":"Humanitarian Support", - "status":"commitment", - "date":"2017-03-13T00:00:00Z", - "amountUSD":663790, - "originalAmount":6000000, - "originalCurrency":"SEK", - "exchangeRate":9.039, - "firstReportedDate":"2017-03-24T00:00:00Z", - "budgetYear":"2017", - "decisionDate":"2017-03-13T00:00:00Z", - "flowType":"Standard", - "contributionType":"financial", - "keywords":[ - "Humanitarian aid" + "id": "193821", + "amountUSD": 2614016, + "budgetYear": "2019", + "childFlowIds": null, + "contributionType": "financial", + "createdAt": "2019-07-30T04:25:29.775Z", + "date": "2019-06-19T00:00:00Z", + "decisionDate": "2019-06-19T00:00:00Z", + "description": "Appui à la prise en charge médico-nutritionnelle des enfants de moins de 5 ans et des femmes enceintes et allaitantes dans la région sanitaire de N'Djamena et dans deux districts sanitaires de la région du Lac (Ngouri et Isseirom) (ECHO/-AF/BUD/2019/92036)", + "grandBargainEarmarkingType": [ + "unearmarked" ], - "method":null, - "parentFlowId":null, - "childFlowIds":null, - "newMoney":true, - "createdAt":"2017-03-24T02:25:53.872Z", - "updatedAt":"2017-04-11T15:04:29.201Z", - "sourceObjects":[ + "exchangeRate": 0.899, + "firstReportedDate": "2019-06-19T00:00:00Z", + "flowType": "Standard", + "keywords": null, + "newMoney": true, + "originalAmount": 2350000, + "originalCurrency": "EUR", + "method": "Traditional aid", + "parentFlowId": 184341, + "status": "commitment", + "updatedAt": "2019-07-30T07:43:31.102Z", + "versionId": 2, + "sourceObjects": [ { - "type":"Organization", - "id":"2921", - "name":"Sweden, Government of", - "behavior":"single", - "organizationTypes":[ - "Government" - ], - "organizationSubTypes":[ - "National government" + "type": "Organization", + "id": "8523", + "name": "European Commission's Humanitarian Aid and Civil Protection Department", + "behavior": "single", + "organizationTypes": [ + "Inter-governmental" ] }, { - "type":"Location", - "id":"216", - "name":"Sweden", - "behavior":"single" - }, - { - "type":"UsageYear", - "id":"38", - "name":"2017", - "behavior":"single" + "type": "UsageYear", + "id": "40", + "name": "2019", + "behavior": "single" } ], - "destinationObjects":[ + "destinationObjects": [ { - "type":"Plan", - "id":"532", - "name":"Chad 2017", - "behavior":"single" + "type": "Plan", + "id": "668", + "name": "Chad 2019", + "behavior": "single" }, { - "type":"Organization", - "id":"8501", - "name":"ACF - France", - "behavior":"single", - "organizationTypes":[ + "type": "Organization", + "id": "1937", + "name": "Alliance for International Medical Action", + "behavior": "single", + "organizationTypes": [ "NGO" ], - "organizationSubTypes":[ + "organizationSubTypes": [ "International" ] }, { - "type":"Cluster", - "id":"3347", - "name":"Sécurité Alimentaire", - "behavior":"single" + "type": "Cluster", + "id": "4330", + "name": "Eau, hygiène et assainissement", + "behavior": "shared" + }, + { + "type": "Cluster", + "id": "4332", + "name": "Nutrition", + "behavior": "shared" + }, + { + "type": "Cluster", + "id": "4334", + "name": "Santé", + "behavior": "shared" + }, + { + "type": "GlobalCluster", + "id": "11", + "name": "Water Sanitation Hygiene", + "behavior": "shared" }, { - "type":"GlobalCluster", - "id":"7", - "name":"Health", - "behavior":"single" + "type": "GlobalCluster", + "id": "9", + "name": "Nutrition", + "behavior": "shared" }, { - "type":"Location", - "id":"44", - "name":"Chad", - "behavior":"single" + "type": "GlobalCluster", + "id": "7", + "name": "Health", + "behavior": "shared" }, { - "type":"Project", - "id":"47561", - "name":"", - "behavior":"single", - "code":"CHD-17/H/102256/5271" + "type": "Location", + "id": "44", + "name": "Chad", + "behavior": "single" }, { - "type":"UsageYear", - "id":"38", - "name":"2017", - "behavior":"single" + "type": "Project", + "id": "154060", + "name": "Appui à la prise en charge médico-nutritionnelle des enfants de moins de 5 ans, des femmes enceintes et femmes allaitantes dans la région sanitaire de N'Djamena.", + "behavior": "single", + "code": "HTCD19-HEA;NUT;WSH-154060-1" + }, + { + "type": "UsageYear", + "id": "40", + "name": "2019", + "behavior": "single" } ], - "boundary":"incoming", - "onBoundary":"single", - "reportDetails":[ + "boundary": "incoming", + "onBoundary": "single", + "reportDetails": [ { - "sourceType":"Primary", - "organization":"Sweden, Government of", - "reportChannel":"From EDRIS", - "date":"2017-03-24T00:00:00.000Z" + "sourceType": "Primary", + "organization": "European Commission's Humanitarian Aid and Civil Protection Department", + "reportChannel": "From EDRIS", + "date": "2019-07-29T00:00:00.000Z" } - ] + ], + "refCode": "ECHO/-AF/BUD/2019/92036" } ] }, - "meta":{ - "language":"en", - "count":1 + "meta": { + "language": "en", + "count": 1 } -} +} \ No newline at end of file diff --git a/django_api/django_api/apps/ocha/samples/V1_response_plan.json b/django_api/django_api/apps/ocha/samples/V1_response_plan.json index ebfa7d964..b5769dfbc 100644 --- a/django_api/django_api/apps/ocha/samples/V1_response_plan.json +++ b/django_api/django_api/apps/ocha/samples/V1_response_plan.json @@ -1,122 +1,881 @@ { - "data":{ - "id":514, - "name":"Syria regional refugee and resilience plan (3RP) 2016", - "code":"RXSYRREG16", - "startDate":"2016-01-01T00:00:00.000Z", - "endDate":"2016-12-31T00:00:00.000Z", - "attachments":[ - - ], - "emergencies":[ + "data": { + "id": 474, + "revisionState": null, + "createdAt": "2017-01-14T00:52:55.852Z", + "updatedAt": "2017-02-22T17:18:25.262Z", + "years": [ { - "id":600, - "name":"Syrian Arab Republic - Civil Unrest (from 2012)" + "id": 37, + "year": "2015", + "createdAt": "2016-02-23T15:03:30.883Z", + "updatedAt": "2016-02-23T15:03:30.883Z", + "planYear": { + "id": 336, + "planId": 474, + "usageYearId": 37, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2017-01-14T00:53:19.484Z", + "updatedAt": "2017-01-14T00:53:19.484Z", + "deletedAt": null + } } ], - "years":[ + "locations": [ { - "id":36, - "year":"2016" - } - ], - "locations":[ + "id": 137, + "externalId": "317", + "name": "Mali", + "adminLevel": 0, + "latitude": 17.346406269504, + "longitude": -3.52505158123, + "iso3": "MLI", + "pcode": "ML", + "validOn": "1428451200000", + "status": "active", + "createdAt": "2015-09-10T20:25:10.695Z", + "updatedAt": "2018-10-28T00:17:50.158Z", + "parentId": null, + "planLocation": { + "id": 166, + "planId": 474, + "locationId": 137, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2017-01-14T00:53:19.483Z", + "updatedAt": "2017-01-14T00:53:19.483Z", + "deletedAt": null + } + }, + { + "id": 162, + "externalId": "342", + "name": "Niger", + "adminLevel": 0, + "latitude": 17.424635582047, + "longitude": 9.397470038441, + "iso3": "NER", + "pcode": "NE", + "validOn": "1438214400000", + "status": "active", + "createdAt": "2015-09-10T20:25:10.850Z", + "updatedAt": "2018-10-28T00:18:52.361Z", + "parentId": null, + "planLocation": { + "id": 167, + "planId": 474, + "locationId": 162, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2017-01-14T00:53:19.483Z", + "updatedAt": "2017-01-14T00:53:19.483Z", + "deletedAt": null + } + }, + { + "id": 163, + "externalId": "343", + "name": "Nigeria", + "adminLevel": 0, + "latitude": 9.58605, + "longitude": 8.09237, + "iso3": "NGA", + "pcode": "NG", + "validOn": "1481760000000", + "status": "active", + "createdAt": "2015-09-10T20:25:10.859Z", + "updatedAt": "2018-10-28T00:38:29.883Z", + "parentId": null, + "planLocation": { + "id": 168, + "planId": 474, + "locationId": 163, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2017-01-14T00:53:19.483Z", + "updatedAt": "2017-01-14T00:53:19.483Z", + "deletedAt": null + } + }, + { + "id": 197, + "externalId": "377", + "name": "Senegal", + "adminLevel": 0, + "latitude": 14.357105415817, + "longitude": -14.478016900236, + "iso3": "SEN", + "pcode": "SN", + "validOn": "1450396800000", + "status": "active", + "createdAt": "2015-09-10T20:25:11.063Z", + "updatedAt": "2018-08-12T00:07:36.228Z", + "parentId": null, + "planLocation": { + "id": 169, + "planId": 474, + "locationId": 197, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2017-01-14T00:53:19.483Z", + "updatedAt": "2017-01-14T00:53:19.483Z", + "deletedAt": null + } + }, { - "id":114, - "iso3":"JOR", - "name":"Jordan", - "adminLevel":0 + "id": 36, + "externalId": "216", + "name": "Burkina Faso", + "adminLevel": 0, + "latitude": 12.277901441039, + "longitude": -1.738649342928, + "iso3": "BFA", + "pcode": "BF", + "validOn": "1422921600000", + "status": "active", + "createdAt": "2015-09-10T20:25:09.601Z", + "updatedAt": "2018-08-12T00:11:43.969Z", + "parentId": null, + "planLocation": { + "id": 170, + "planId": 474, + "locationId": 36, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2017-01-14T00:53:19.483Z", + "updatedAt": "2017-01-14T00:53:19.483Z", + "deletedAt": null + } }, { - "id":106, - "iso3":"IRQ", - "name":"Iraq", - "adminLevel":0 + "id": 44, + "externalId": "224", + "name": "Chad", + "adminLevel": 0, + "latitude": 15.357404949384, + "longitude": 18.663995559345, + "iso3": "TCD", + "pcode": "TD", + "validOn": "1462752000000", + "status": "active", + "createdAt": "2015-09-10T20:25:09.701Z", + "updatedAt": "2018-10-28T00:06:37.398Z", + "parentId": null, + "planLocation": { + "id": 171, + "planId": 474, + "locationId": 44, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2017-01-14T00:53:19.483Z", + "updatedAt": "2017-01-14T00:53:19.483Z", + "deletedAt": null + } }, { - "id":229, - "iso3":"TUR", - "name":"Turkey", - "adminLevel":0 + "id": 81, + "externalId": "261", + "name": "Gambia", + "adminLevel": 0, + "latitude": 13.444703278968, + "longitude": -15.447184015638, + "iso3": "GMB", + "pcode": null, + "validOn": null, + "status": "active", + "createdAt": "2015-09-10T20:25:10.058Z", + "updatedAt": "2017-06-21T00:22:37.029Z", + "parentId": null, + "planLocation": { + "id": 172, + "planId": 474, + "locationId": 81, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2017-01-14T00:53:19.483Z", + "updatedAt": "2017-01-14T00:53:19.483Z", + "deletedAt": null + } }, { - "id":66, - "iso3":"EGY", - "name":"Egypt", - "adminLevel":0 + "id": 141, + "externalId": "321", + "name": "Mauritania", + "adminLevel": 0, + "latitude": 20.257804287776, + "longitude": -10.330102746255, + "iso3": "MRT", + "pcode": "MR", + "validOn": "1434585600000", + "status": "active", + "createdAt": "2015-09-10T20:25:10.728Z", + "updatedAt": "2018-08-12T00:10:58.579Z", + "parentId": null, + "planLocation": { + "id": 173, + "planId": 474, + "locationId": 141, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2017-01-14T00:53:19.483Z", + "updatedAt": "2017-01-14T00:53:19.483Z", + "deletedAt": null + } }, { - "id":124, - "iso3":"LBN", - "name":"Lebanon", - "adminLevel":0 + "id": 39, + "externalId": "1", + "name": "Cameroon", + "adminLevel": 0, + "latitude": 5.6803683098, + "longitude": 12.740688366243, + "iso3": "CMR", + "pcode": "CM", + "validOn": "1546560000000", + "status": "active", + "createdAt": "2015-09-10T20:25:09.655Z", + "updatedAt": "2019-02-13T17:09:42.129Z", + "parentId": null, + "planLocation": { + "id": 174, + "planId": 474, + "locationId": 39, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2017-01-14T00:53:19.483Z", + "updatedAt": "2017-01-14T00:53:19.483Z", + "deletedAt": null + } } ], - "categories":[ + "emergencies": [ { - "id":111, - "name":"Regional response plan", - "group":"planType", - "code":null + "id": 615, + "name": "Sahel 2014-2016", + "description": "", + "date": "2014-01-01T00:00:00.000Z", + "glideId": null, + "levelThree": false, + "active": true, + "restricted": false, + "createdAt": "2017-01-14T00:52:10.284Z", + "updatedAt": "2017-01-14T00:52:10.284Z", + "planEmergency": { + "createdAt": "2017-01-14T00:53:19.482Z", + "updatedAt": "2017-01-14T00:53:19.482Z", + "planId": 474, + "emergencyId": 615 + } } ], - "planEntities":[ - + "categories": [ + { + "id": 4, + "name": "Humanitarian response plan", + "description": null, + "parentID": null, + "code": null, + "group": "planType", + "includeTotals": true, + "createdAt": "2015-11-12T23:03:39.934Z", + "updatedAt": "2017-01-17T09:41:11.055Z", + "categoryRef": { + "objectID": 474, + "versionID": 1, + "objectType": "plan", + "categoryID": 4, + "createdAt": "2017-01-17T10:19:09.677Z", + "updatedAt": "2017-01-17T10:19:09.677Z" + } + } ], - "governingEntities":[ - { - "id":3471, - "name":"Multi-sector refugees", - "customReference":"3471", - "value":{ - "description":null, - "icon":null, - "categories":[ - - ] - }, - "planId":514, - "entityPrototype":{ - "id":1897, - "refCode":"CL", - "type":"GVE", - "value":{ - "name":{ - "en":{ - "singular":"Cluster", - "plural":"Clusters" + "planVersion": { + "id": 1049, + "planId": 474, + "name": "Sahel Regional 2015", + "startDate": "2015-01-01T00:00:00.000Z", + "endDate": "2015-12-31T00:00:00.000Z", + "comments": null, + "isForHPCProjects": false, + "code": "HXSHL15", + "customLocationCode": null, + "currentReportingPeriodId": null, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2017-01-14T00:52:55.852Z", + "updatedAt": "2017-02-22T17:18:25.262Z" + }, + "monitoringPeriods": [], + "attachments": [], + "planEntities": [], + "governingEntities": [ + { + "id": 2974, + "planId": 474, + "governingEntityVersion": { + "id": 7573, + "name": "HEALTH", + "customReference": "2974", + "value": { + "description": null, + "icon": null, + "categories": [] + }, + "clusterNumber": "2974" + }, + "entityPrototype": { + "id": 1841, + "refCode": "CL", + "type": "GVE", + "value": { + "name": { + "en": { + "singular": "Cluster", + "plural": "Clusters" + } + }, + "possibleChildren": [ + { + "refCode": "CO", + "cardinality": "0-N", + "id": 1843 + }, + { + "refCode": "CA", + "cardinality": "0-N", + "id": 1844 + } + ] + }, + "orderNumber": 1 + }, + "attachments": [], + "composedReference": "CL2974" + }, + { + "id": 2982, + "planId": 474, + "governingEntityVersion": { + "id": 7555, + "name": "MULTI-SECTOR FOR REFUGEES", + "customReference": "2982", + "value": { + "description": null, + "icon": null, + "categories": [] + }, + "clusterNumber": "2982" + }, + "entityPrototype": { + "id": 1841, + "refCode": "CL", + "type": "GVE", + "value": { + "name": { + "en": { + "singular": "Cluster", + "plural": "Clusters" + } + }, + "possibleChildren": [ + { + "refCode": "CO", + "cardinality": "0-N", + "id": 1843 + }, + { + "refCode": "CA", + "cardinality": "0-N", + "id": 1844 + } + ] + }, + "orderNumber": 1 + }, + "attachments": [], + "composedReference": "CL2982" + }, + { + "id": 2977, + "planId": 474, + "governingEntityVersion": { + "id": 7554, + "name": "EARLY RECOVERY", + "customReference": "2977", + "value": { + "description": null, + "icon": null, + "categories": [] + }, + "clusterNumber": "2977" + }, + "entityPrototype": { + "id": 1841, + "refCode": "CL", + "type": "GVE", + "value": { + "name": { + "en": { + "singular": "Cluster", + "plural": "Clusters" + } + }, + "possibleChildren": [ + { + "refCode": "CO", + "cardinality": "0-N", + "id": 1843 + }, + { + "refCode": "CA", + "cardinality": "0-N", + "id": 1844 + } + ] + }, + "orderNumber": 1 + }, + "attachments": [], + "composedReference": "CL2977" + }, + { + "id": 2972, + "planId": 474, + "governingEntityVersion": { + "id": 7553, + "name": "EDUCATION", + "customReference": "2972", + "value": { + "description": null, + "icon": null, + "categories": [] + }, + "clusterNumber": "2972" + }, + "entityPrototype": { + "id": 1841, + "refCode": "CL", + "type": "GVE", + "value": { + "name": { + "en": { + "singular": "Cluster", + "plural": "Clusters" + } + }, + "possibleChildren": [ + { + "refCode": "CO", + "cardinality": "0-N", + "id": 1843 + }, + { + "refCode": "CA", + "cardinality": "0-N", + "id": 1844 + } + ] + }, + "orderNumber": 1 + }, + "attachments": [], + "composedReference": "CL2972" + }, + { + "id": 2980, + "planId": 474, + "governingEntityVersion": { + "id": 7529, + "name": "LOGISTICS", + "customReference": "2980", + "value": { + "description": null, + "icon": null, + "categories": [] + }, + "clusterNumber": "2980" + }, + "entityPrototype": { + "id": 1841, + "refCode": "CL", + "type": "GVE", + "value": { + "name": { + "en": { + "singular": "Cluster", + "plural": "Clusters" + } + }, + "possibleChildren": [ + { + "refCode": "CO", + "cardinality": "0-N", + "id": 1843 + }, + { + "refCode": "CA", + "cardinality": "0-N", + "id": 1844 + } + ] + }, + "orderNumber": 1 + }, + "attachments": [], + "composedReference": "CL2980" + }, + { + "id": 2976, + "planId": 474, + "governingEntityVersion": { + "id": 7503, + "name": "PROTECTION", + "customReference": "2976", + "value": { + "description": null, + "icon": null, + "categories": [] + }, + "clusterNumber": "2976" + }, + "entityPrototype": { + "id": 1841, + "refCode": "CL", + "type": "GVE", + "value": { + "name": { + "en": { + "singular": "Cluster", + "plural": "Clusters" } }, - "possibleChildren":[ + "possibleChildren": [ { - "refCode":"CO", - "cardinality":"0-N", - "id":1899 + "refCode": "CO", + "cardinality": "0-N", + "id": 1843 }, { - "refCode":"CA", - "cardinality":"0-N", - "id":1900 + "refCode": "CA", + "cardinality": "0-N", + "id": 1844 } ] }, - "orderNumber":1 + "orderNumber": 1 }, - "attachments":[ - - ], - "clusterNumber":"3471", - "composedReference":"CL3471" + "attachments": [], + "composedReference": "CL2976" + }, + { + "id": 2983, + "planId": 474, + "governingEntityVersion": { + "id": 7484, + "name": "WATER AND SANITATION", + "customReference": "2983", + "value": { + "description": null, + "icon": null, + "categories": [] + }, + "clusterNumber": "2983" + }, + "entityPrototype": { + "id": 1841, + "refCode": "CL", + "type": "GVE", + "value": { + "name": { + "en": { + "singular": "Cluster", + "plural": "Clusters" + } + }, + "possibleChildren": [ + { + "refCode": "CO", + "cardinality": "0-N", + "id": 1843 + }, + { + "refCode": "CA", + "cardinality": "0-N", + "id": 1844 + } + ] + }, + "orderNumber": 1 + }, + "attachments": [], + "composedReference": "CL2983" + }, + { + "id": 2978, + "planId": 474, + "governingEntityVersion": { + "id": 7483, + "name": "COORDINATION AND SUPPORT SERVICES", + "customReference": "2978", + "value": { + "description": null, + "icon": null, + "categories": [] + }, + "clusterNumber": "2978" + }, + "entityPrototype": { + "id": 1841, + "refCode": "CL", + "type": "GVE", + "value": { + "name": { + "en": { + "singular": "Cluster", + "plural": "Clusters" + } + }, + "possibleChildren": [ + { + "refCode": "CO", + "cardinality": "0-N", + "id": 1843 + }, + { + "refCode": "CA", + "cardinality": "0-N", + "id": 1844 + } + ] + }, + "orderNumber": 1 + }, + "attachments": [], + "composedReference": "CL2978" + }, + { + "id": 2979, + "planId": 474, + "governingEntityVersion": { + "id": 3528, + "name": "FOOD SECURITY", + "customReference": "2979", + "value": { + "description": null, + "icon": null, + "categories": [] + }, + "clusterNumber": "2979" + }, + "entityPrototype": { + "id": 1841, + "refCode": "CL", + "type": "GVE", + "value": { + "name": { + "en": { + "singular": "Cluster", + "plural": "Clusters" + } + }, + "possibleChildren": [ + { + "refCode": "CO", + "cardinality": "0-N", + "id": 1843 + }, + { + "refCode": "CA", + "cardinality": "0-N", + "id": 1844 + } + ] + }, + "orderNumber": 1 + }, + "attachments": [], + "composedReference": "CL2979" + }, + { + "id": 2975, + "planId": 474, + "governingEntityVersion": { + "id": 3482, + "name": "NUTRITION", + "customReference": "2975", + "value": { + "description": null, + "icon": null, + "categories": [] + }, + "clusterNumber": "2975" + }, + "entityPrototype": { + "id": 1841, + "refCode": "CL", + "type": "GVE", + "value": { + "name": { + "en": { + "singular": "Cluster", + "plural": "Clusters" + } + }, + "possibleChildren": [ + { + "refCode": "CO", + "cardinality": "0-N", + "id": 1843 + }, + { + "refCode": "CA", + "cardinality": "0-N", + "id": 1844 + } + ] + }, + "orderNumber": 1 + }, + "attachments": [], + "composedReference": "CL2975" + }, + { + "id": 2981, + "planId": 474, + "governingEntityVersion": { + "id": 3458, + "name": "EMERGENCY TELECOMMUNICATION", + "customReference": "2981", + "value": { + "description": null, + "icon": null, + "categories": [] + }, + "clusterNumber": "2981" + }, + "entityPrototype": { + "id": 1841, + "refCode": "CL", + "type": "GVE", + "value": { + "name": { + "en": { + "singular": "Cluster", + "plural": "Clusters" + } + }, + "possibleChildren": [ + { + "refCode": "CO", + "cardinality": "0-N", + "id": 1843 + }, + { + "refCode": "CA", + "cardinality": "0-N", + "id": 1844 + } + ] + }, + "orderNumber": 1 + }, + "attachments": [], + "composedReference": "CL2981" + }, + { + "id": 2973, + "planId": 474, + "governingEntityVersion": { + "id": 3436, + "name": "EMERGENCY SHELTER AND NFI", + "customReference": "2973", + "value": { + "description": null, + "icon": null, + "categories": [] + }, + "clusterNumber": "2973" + }, + "entityPrototype": { + "id": 1841, + "refCode": "CL", + "type": "GVE", + "value": { + "name": { + "en": { + "singular": "Cluster", + "plural": "Clusters" + } + }, + "possibleChildren": [ + { + "refCode": "CO", + "cardinality": "0-N", + "id": 1843 + }, + { + "refCode": "CA", + "cardinality": "0-N", + "id": 1844 + } + ] + }, + "orderNumber": 1 + }, + "attachments": [], + "composedReference": "CL2973" } ], - "monitoringPeriods":[ - - ], - "origRequirements":4552032036, - "revisedRequirements":4539342335, - "meta":{ - "language":"en" + "origRequirements": 10336405, + "revisedRequirements": 10336405, + "meta": { + "language": "en" } }, - "status":"ok" -} + "status": "ok" +} \ No newline at end of file diff --git a/django_api/django_api/apps/ocha/samples/V1_response_plan_single_country.json b/django_api/django_api/apps/ocha/samples/V1_response_plan_single_country.json index 39e73980f..01906d4ff 100644 --- a/django_api/django_api/apps/ocha/samples/V1_response_plan_single_country.json +++ b/django_api/django_api/apps/ocha/samples/V1_response_plan_single_country.json @@ -1,47 +1,124 @@ { "data": { - "id": 504, - "name": "occupied Palestinian territory 2016", - "code": "HPSE16", - "startDate": "2016-01-01T00:00:00.000Z", - "endDate": "2016-12-31T00:00:00.000Z", - "attachments": [], - "emergencies": [], + "id": 402, + "revisionState": null, + "createdAt": "2017-01-14T00:52:55.645Z", + "updatedAt": "2017-02-22T17:18:23.635Z", "years": [ { - "id": 36, - "year": "2016" + "id": 35, + "year": "2013", + "createdAt": "2016-02-23T15:03:30.875Z", + "updatedAt": "2016-02-23T15:03:30.875Z", + "planYear": { + "id": 319, + "planId": 402, + "usageYearId": 35, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2017-01-14T00:53:18.806Z", + "updatedAt": "2017-01-14T00:53:18.806Z", + "deletedAt": null + } } ], "locations": [ { - "id": 171, - "iso3": "PSE", - "name": "occupied Palestinian territory", - "adminLevel": 0 + "id": 44, + "externalId": "224", + "name": "Chad", + "adminLevel": 0, + "latitude": 15.357404949384, + "longitude": 18.663995559345, + "iso3": "TCD", + "pcode": "TD", + "validOn": "1462752000000", + "status": "active", + "createdAt": "2015-09-10T20:25:09.701Z", + "updatedAt": "2018-10-28T00:06:37.398Z", + "parentId": null, + "planLocation": { + "id": 142, + "planId": 402, + "locationId": 44, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2017-01-14T00:53:18.794Z", + "updatedAt": "2017-01-14T00:53:18.794Z", + "deletedAt": null + } } ], + "emergencies": [], "categories": [ { - "id": 4, - "name": "Humanitarian response plan", + "id": 110, + "name": "CAP", + "description": null, + "parentID": null, + "code": null, "group": "planType", - "code": null + "includeTotals": true, + "createdAt": "2017-01-13T22:18:01.773Z", + "updatedAt": "2017-01-17T09:41:10.839Z", + "categoryRef": { + "objectID": 402, + "versionID": 1, + "objectType": "plan", + "categoryID": 110, + "createdAt": "2017-01-14T00:53:18.811Z", + "updatedAt": "2017-01-14T00:53:18.811Z" + } } ], + "planVersion": { + "id": 434, + "planId": 402, + "name": "Chad 2013", + "startDate": "2013-01-01T00:00:00.000Z", + "endDate": "2013-12-31T00:00:00.000Z", + "comments": null, + "isForHPCProjects": false, + "code": "CTCD13", + "customLocationCode": null, + "currentReportingPeriodId": null, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2017-01-14T00:52:55.645Z", + "updatedAt": "2017-02-22T17:18:23.635Z" + }, + "monitoringPeriods": [], + "attachments": [], + "planEntities": [], "governingEntities": [ { - "id": 3226, - "name": "Cluster not yet specified", - "customReference": "3226", - "value": { - "description": null, - "icon": null, - "categories": [] + "id": 1296, + "planId": 402, + "governingEntityVersion": { + "id": 5585, + "name": "EARLY RECOVERY", + "customReference": "1296", + "value": { + "description": null, + "icon": null, + "categories": [] + }, + "clusterNumber": "1296" }, - "planId": 504, "entityPrototype": { - "id": 9, + "id": 1777, "refCode": "CL", "type": "GVE", "value": { @@ -55,33 +132,36 @@ { "refCode": "CO", "cardinality": "0-N", - "id": 11 + "id": 1779 }, { "refCode": "CA", "cardinality": "0-N", - "id": 12 + "id": 1780 } ] }, "orderNumber": 1 }, "attachments": [], - "clusterNumber": "3226", - "composedReference": "CL3226" + "composedReference": "CL1296" }, { - "id": 3223, - "name": "Protection", - "customReference": "PRO", - "value": { - "description": null, - "icon": "clusters_protection_icon", - "categories": [] + "id": 1297, + "planId": 402, + "governingEntityVersion": { + "id": 5563, + "name": "CLUSTER NOT YET SPECIFIED", + "customReference": "1297", + "value": { + "description": null, + "icon": null, + "categories": [] + }, + "clusterNumber": "1297" }, - "planId": 504, "entityPrototype": { - "id": 9, + "id": 1777, "refCode": "CL", "type": "GVE", "value": { @@ -95,87 +175,36 @@ { "refCode": "CO", "cardinality": "0-N", - "id": 11 + "id": 1779 }, { "refCode": "CA", "cardinality": "0-N", - "id": 12 + "id": 1780 } ] }, "orderNumber": 1 }, - "attachments": [ - { - "id": 147, - "customReference": "3223", - "type": "contact", - "value": { - "leadAgency": "OHCHR", - "contactName": "Natalie Grove", - "contactEmail": "ngrove@ohchr.org" - }, - "attachmentPrototype": { - "id": 2, - "refCode": "CT", - "type": "contact", - "value": { - "hasMeasures": 0, - "min": 1, - "max": 3, - "name": { - "en": "Contact" - }, - "entities": [ - "CL" - ] - } - }, - "composedReference": "CLPRO/CT3223" - }, - { - "id": 146, - "customReference": "6", - "type": "cost", - "value": { - "cost": 46000000, - "customId": null - }, - "attachmentPrototype": { - "id": 3, - "refCode": "CS", - "type": "cost", - "value": { - "hasMeasures": 0, - "min": 1, - "max": 1, - "name": { - "en": "Cost" - }, - "entities": [ - "CL" - ] - } - }, - "composedReference": "CLPRO/CS6" - } - ], - "clusterNumber": "PRO", - "composedReference": "CLPRO" + "attachments": [], + "composedReference": "CL1297" }, { - "id": 3225, - "name": "WASH", - "customReference": "WSH", - "value": { - "description": null, - "icon": "clusters_water_sanitation_and_hygiene_icon", - "categories": [] + "id": 1287, + "planId": 402, + "governingEntityVersion": { + "id": 5561, + "name": "FOOD SECURITY", + "customReference": "1287", + "value": { + "description": null, + "icon": null, + "categories": [] + }, + "clusterNumber": "1287" }, - "planId": 504, "entityPrototype": { - "id": 9, + "id": 1777, "refCode": "CL", "type": "GVE", "value": { @@ -189,87 +218,36 @@ { "refCode": "CO", "cardinality": "0-N", - "id": 11 + "id": 1779 }, { "refCode": "CA", "cardinality": "0-N", - "id": 12 + "id": 1780 } ] }, "orderNumber": 1 }, - "attachments": [ - { - "id": 150, - "customReference": "9", - "type": "cost", - "value": { - "cost": 30000000, - "customId": null - }, - "attachmentPrototype": { - "id": 3, - "refCode": "CS", - "type": "cost", - "value": { - "hasMeasures": 0, - "min": 1, - "max": 1, - "name": { - "en": "Cost" - }, - "entities": [ - "CL" - ] - } - }, - "composedReference": "CLWSH/CS9" - }, - { - "id": 151, - "customReference": "3225", - "type": "contact", - "value": { - "leadAgency": "UNICEF", - "contactName": "Ali Khatib", - "contactEmail": "akhatib@unicef.org" - }, - "attachmentPrototype": { - "id": 2, - "refCode": "CT", - "type": "contact", - "value": { - "hasMeasures": 0, - "min": 1, - "max": 3, - "name": { - "en": "Contact" - }, - "entities": [ - "CL" - ] - } - }, - "composedReference": "CLWSH/CT3225" - } - ], - "clusterNumber": "WSH", - "composedReference": "CLWSH" + "attachments": [], + "composedReference": "CL1287" }, { - "id": 3224, - "name": "Shelterr NFIs", - "customReference": "SHL", - "value": { - "description": null, - "icon": "clusters_camp_coordination_and_camp_management_icon", - "categories": [] + "id": 1298, + "planId": 402, + "governingEntityVersion": { + "id": 5543, + "name": "LOGISTICS", + "customReference": "1298", + "value": { + "description": null, + "icon": null, + "categories": [] + }, + "clusterNumber": "1298" }, - "planId": 504, "entityPrototype": { - "id": 9, + "id": 1777, "refCode": "CL", "type": "GVE", "value": { @@ -283,87 +261,36 @@ { "refCode": "CO", "cardinality": "0-N", - "id": 11 + "id": 1779 }, { "refCode": "CA", "cardinality": "0-N", - "id": 12 + "id": 1780 } ] }, "orderNumber": 1 }, - "attachments": [ - { - "id": 148, - "customReference": "8", - "type": "cost", - "value": { - "cost": 112000000, - "customId": null - }, - "attachmentPrototype": { - "id": 3, - "refCode": "CS", - "type": "cost", - "value": { - "hasMeasures": 0, - "min": 1, - "max": 1, - "name": { - "en": "Cost" - }, - "entities": [ - "CL" - ] - } - }, - "composedReference": "CLSHL/CS8" - }, - { - "id": 149, - "customReference": "3224", - "type": "contact", - "value": { - "leadAgency": "NRC", - "contactName": "Fiona Kelling", - "contactEmail": "coord1.palestine@sheltercluster.org" - }, - "attachmentPrototype": { - "id": 2, - "refCode": "CT", - "type": "contact", - "value": { - "hasMeasures": 0, - "min": 1, - "max": 3, - "name": { - "en": "Contact" - }, - "entities": [ - "CL" - ] - } - }, - "composedReference": "CLSHL/CT3224" - } - ], - "clusterNumber": "SHL", - "composedReference": "CLSHL" + "attachments": [], + "composedReference": "CL1298" }, { - "id": 3222, - "name": "Health and Nutrition", - "customReference": "HLN", - "value": { - "description": null, - "icon": "clusters_health_icon", - "categories": [] + "id": 1288, + "planId": 402, + "governingEntityVersion": { + "id": 5541, + "name": "COORDINATION AND SUPPORT SERVICES", + "customReference": "1288", + "value": { + "description": null, + "icon": null, + "categories": [] + }, + "clusterNumber": "1288" }, - "planId": 504, "entityPrototype": { - "id": 9, + "id": 1777, "refCode": "CL", "type": "GVE", "value": { @@ -377,87 +304,36 @@ { "refCode": "CO", "cardinality": "0-N", - "id": 11 + "id": 1779 }, { "refCode": "CA", "cardinality": "0-N", - "id": 12 + "id": 1780 } ] }, "orderNumber": 1 }, - "attachments": [ - { - "id": 145, - "customReference": "3222", - "type": "contact", - "value": { - "leadAgency": "WHO", - "contactName": "Yousef Muhaisen", - "contactEmail": "muhaiseny@who.int" - }, - "attachmentPrototype": { - "id": 2, - "refCode": "CT", - "type": "contact", - "value": { - "hasMeasures": 0, - "min": 1, - "max": 3, - "name": { - "en": "Contact" - }, - "entities": [ - "CL" - ] - } - }, - "composedReference": "CLHLN/CT3222" - }, - { - "id": 144, - "customReference": "10", - "type": "cost", - "value": { - "cost": 26000000, - "customId": null - }, - "attachmentPrototype": { - "id": 3, - "refCode": "CS", - "type": "cost", - "value": { - "hasMeasures": 0, - "min": 1, - "max": 1, - "name": { - "en": "Cost" - }, - "entities": [ - "CL" - ] - } - }, - "composedReference": "CLHLN/CS10" - } - ], - "clusterNumber": "HLN", - "composedReference": "CLHLN" + "attachments": [], + "composedReference": "CL1288" }, { - "id": 3221, - "name": "Food Security", - "customReference": "FSC", - "value": { - "description": null, - "icon": "clusters_food_security_icon", - "categories": [] + "id": 1291, + "planId": 402, + "governingEntityVersion": { + "id": 5473, + "name": "MULTI-SECTOR ACTIVITIES FOR REFUGEES", + "customReference": "1291", + "value": { + "description": null, + "icon": null, + "categories": [] + }, + "clusterNumber": "1291" }, - "planId": 504, "entityPrototype": { - "id": 9, + "id": 1777, "refCode": "CL", "type": "GVE", "value": { @@ -471,87 +347,36 @@ { "refCode": "CO", "cardinality": "0-N", - "id": 11 + "id": 1779 }, { "refCode": "CA", "cardinality": "0-N", - "id": 12 + "id": 1780 } ] }, "orderNumber": 1 }, - "attachments": [ - { - "id": 143, - "customReference": "3221", - "type": "contact", - "value": { - "leadAgency": "FAO & WFP", - "contactName": "Marco Ferloni", - "contactEmail": "marco.ferloni@fscluster.org" - }, - "attachmentPrototype": { - "id": 2, - "refCode": "CT", - "type": "contact", - "value": { - "hasMeasures": 0, - "min": 1, - "max": 3, - "name": { - "en": "Contact" - }, - "entities": [ - "CL" - ] - } - }, - "composedReference": "CLFSC/CT3221" - }, - { - "id": 142, - "customReference": "7", - "type": "cost", - "value": { - "cost": 322000000, - "customId": null - }, - "attachmentPrototype": { - "id": 3, - "refCode": "CS", - "type": "cost", - "value": { - "hasMeasures": 0, - "min": 1, - "max": 1, - "name": { - "en": "Cost" - }, - "entities": [ - "CL" - ] - } - }, - "composedReference": "CLFSC/CS7" - } - ], - "clusterNumber": "FSC", - "composedReference": "CLFSC" + "attachments": [], + "composedReference": "CL1291" }, { - "id": 3220, - "name": "Education", - "customReference": "EDU", - "value": { - "description": null, - "icon": "clusters_education_icon", - "categories": [] + "id": 1290, + "planId": 402, + "governingEntityVersion": { + "id": 5446, + "name": "HEALTH", + "customReference": "1290", + "value": { + "description": null, + "icon": null, + "categories": [] + }, + "clusterNumber": "1290" }, - "planId": 504, "entityPrototype": { - "id": 9, + "id": 1777, "refCode": "CL", "type": "GVE", "value": { @@ -565,87 +390,36 @@ { "refCode": "CO", "cardinality": "0-N", - "id": 11 + "id": 1779 }, { "refCode": "CA", "cardinality": "0-N", - "id": 12 + "id": 1780 } ] }, "orderNumber": 1 }, - "attachments": [ - { - "id": 140, - "customReference": "11", - "type": "cost", - "value": { - "cost": 18000000, - "customId": null - }, - "attachmentPrototype": { - "id": 3, - "refCode": "CS", - "type": "cost", - "value": { - "hasMeasures": 0, - "min": 1, - "max": 1, - "name": { - "en": "Cost" - }, - "entities": [ - "CL" - ] - } - }, - "composedReference": "CLEDU/CS11" - }, - { - "id": 141, - "customReference": "3220", - "type": "contact", - "value": { - "leadAgency": "UNICEF", - "contactName": "Maida Pasic", - "contactEmail": "mpasic@unicef.org" - }, - "attachmentPrototype": { - "id": 2, - "refCode": "CT", - "type": "contact", - "value": { - "hasMeasures": 0, - "min": 1, - "max": 3, - "name": { - "en": "Contact" - }, - "entities": [ - "CL" - ] - } - }, - "composedReference": "CLEDU/CT3220" - } - ], - "clusterNumber": "EDU", - "composedReference": "CLEDU" + "attachments": [], + "composedReference": "CL1290" }, { - "id": 3219, - "name": "Coordination and Support Services", - "customReference": "CSS", - "value": { - "description": null, - "icon": "other_clusters_coordination_icon", - "categories": [] + "id": 1292, + "planId": 402, + "governingEntityVersion": { + "id": 1516, + "name": "NUTRITION", + "customReference": "1292", + "value": { + "description": null, + "icon": null, + "categories": [] + }, + "clusterNumber": "1292" }, - "planId": 504, "entityPrototype": { - "id": 9, + "id": 1777, "refCode": "CL", "type": "GVE", "value": { @@ -659,89850 +433,198 @@ { "refCode": "CO", "cardinality": "0-N", - "id": 11 + "id": 1779 }, { "refCode": "CA", "cardinality": "0-N", - "id": 12 + "id": 1780 } ] }, "orderNumber": 1 }, - "attachments": [ - { - "id": 139, - "customReference": "3219", - "type": "contact", - "value": { - "leadAgency": "OCHA", - "contactName": "David Carden", - "contactEmail": "carden@un.org" - }, - "attachmentPrototype": { - "id": 2, - "refCode": "CT", - "type": "contact", - "value": { - "hasMeasures": 0, - "min": 1, - "max": 3, - "name": { - "en": "Contact" - }, - "entities": [ - "CL" - ] - } - }, - "composedReference": "CLCSS/CT3219" - } - ], - "clusterNumber": "CSS", - "composedReference": "CLCSS" - } - ], - "planEntities": [ - { - "id": 80, - "customReference": "8", - "value": { - "categories": [], - "description": "Strategically use HPF in a timely manner to support humanitarian action", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 79, - 77, - 74 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 130, - "customReference": "1", - "type": "indicator", - "value": { - "description": "% of pooled funding resources directed to HRP top priority projects", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 71 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 85 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLCSS/CA8/IN1" - }, - { - "id": 131, - "customReference": "2", - "type": "indicator", - "value": { - "description": "% of HPF funds allocated to national partners or to projects in partnership with a national partner", - "customId": 2, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 59 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 75 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLCSS/CA8/IN2" - } - ], - "parentId": 3219, - "composedReference": "CLCSS/CA8" + "attachments": [], + "composedReference": "CL1292" }, { - "id": 81, - "customReference": "9", - "value": { - "categories": [], - "description": "Strengthen advocacy and communication policy", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 79, - 77, - 74 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", + "id": 1293, + "planId": 402, + "governingEntityVersion": { + "id": 1496, + "name": "PROTECTION", + "customReference": "1293", "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 132, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# of HCT advocacy Working group meetings", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 12 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 12 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLCSS/CA9/IN1" + "description": null, + "icon": null, + "categories": [] }, - { - "id": 133, - "customReference": "2", - "type": "indicator", - "value": { - "description": "# of joint or coordinated HCT advocacy events", - "customId": 2, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 11 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 8 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLCSS/CA9/IN2" - } - ], - "parentId": 3219, - "composedReference": "CLCSS/CA9" - }, - { - "id": 82, - "customReference": "1", - "value": { - "categories": [], - "description": "HCT takes decisions to improve humanitarian assistance in oPt", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 79, - 77, - 74 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } + "clusterNumber": "1293" }, - "planId": 504, "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", + "id": 1777, + "refCode": "CL", + "type": "GVE", "value": { "name": { "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" + "singular": "Cluster", + "plural": "Clusters" } }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 119, - "customReference": "1", - "type": "indicator", - "value": { - "description": "Cluster leads in HCT report against progress in cluster HRP targets", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 2 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 4 - } - ] - } + "possibleChildren": [ + { + "refCode": "CO", + "cardinality": "0-N", + "id": 1779 }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] + { + "refCode": "CA", + "cardinality": "0-N", + "id": 1780 } - }, - "composedReference": "CLCSS/CA1/IN1" + ] }, - { - "id": 120, - "customReference": "2", - "type": "indicator", - "value": { - "description": "% of HCT decisions implemented by HCT and clusters", - "customId": 2, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 80 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 90 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLCSS/CA1/IN2" - } - ], - "parentId": 3219, - "composedReference": "CLCSS/CA1" + "orderNumber": 1 + }, + "attachments": [], + "composedReference": "CL1293" }, { - "id": 83, - "customReference": "2", - "value": { - "categories": [], - "description": "Ensure the cluster coordination architecture is fit for purpose and implement the findings of past reviews", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 79, - 77, - 74 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", + "id": 1294, + "planId": 402, + "governingEntityVersion": { + "id": 1474, + "name": "SHELTER AND NON-FOOD ITEMS", + "customReference": "1294", "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } + "description": null, + "icon": null, + "categories": [] }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 121, - "customReference": "1", - "type": "indicator", - "value": { - "description": "Clusters transition plans developed", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 2 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 4 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLCSS/CA2/IN1" - } - ], - "parentId": 3219, - "composedReference": "CLCSS/CA2" - }, - { - "id": 84, - "customReference": "3", - "value": { - "categories": [], - "description": "Timely production of humanitarian analytical products that support strategic response planning and HCT advocacy, including the HNO", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 79, - 77, - 74 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } + "clusterNumber": "1294" }, - "planId": 504, "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", + "id": 1777, + "refCode": "CL", + "type": "GVE", "value": { "name": { "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" + "singular": "Cluster", + "plural": "Clusters" } }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 122, - "customReference": "1", - "type": "indicator", - "value": { - "description": "Frequency of updates on geographic and thematic humanitarian snapshots produced, on country-wide dashboards and snapshots; other relevant analysis", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 0 - } - ] - } + "possibleChildren": [ + { + "refCode": "CO", + "cardinality": "0-N", + "id": 1779 }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] + { + "refCode": "CA", + "cardinality": "0-N", + "id": 1780 } - }, - "composedReference": "CLCSS/CA3/IN1" + ] }, - { - "id": 123, - "customReference": "2", - "type": "indicator", - "value": { - "description": "Humanitarian profile updated for oPT (including cluster specific gender data and needs analysis)", - "customId": 2, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 1 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLCSS/CA3/IN2" - } - ], - "parentId": 3219, - "composedReference": "CLCSS/CA3" + "orderNumber": 1 + }, + "attachments": [], + "composedReference": "CL1294" }, { - "id": 85, - "customReference": "4", - "value": { - "categories": [], - "description": "Regular monitoring by clusters on progress against HRP agreed objectives and indicators", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 79, - 77, - 74 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", + "id": 1289, + "planId": 402, + "governingEntityVersion": { + "id": 1473, + "name": "EDUCATION", + "customReference": "1289", "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } + "description": null, + "icon": null, + "categories": [] }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 124, - "customReference": "1", - "type": "indicator", - "value": { - "description": "Frequency clusters report on progress towards sector objectives/targets using established monitoring framework", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 0 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLCSS/CA4/IN1" - } - ], - "parentId": 3219, - "composedReference": "CLCSS/CA4" - }, - { - "id": 86, - "customReference": "5", - "value": { - "categories": [], - "description": "Ensure further gender mainstreaming in the HRP", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 79, - 77, - 74 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } + "clusterNumber": "1289" }, - "planId": 504, "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", + "id": 1777, + "refCode": "CL", + "type": "GVE", "value": { "name": { "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" + "singular": "Cluster", + "plural": "Clusters" } }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 125, - "customReference": "1", - "type": "indicator", - "value": { - "description": "% of total budget of funded projects that have the gender marker code 2B (principal objective)", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0.4 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 2 - } - ] - } + "possibleChildren": [ + { + "refCode": "CO", + "cardinality": "0-N", + "id": 1779 }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] + { + "refCode": "CA", + "cardinality": "0-N", + "id": 1780 } - }, - "composedReference": "CLCSS/CA5/IN1" + ] }, - { - "id": 126, - "customReference": "2", - "type": "indicator", - "value": { - "description": "% of number of HRP gender focused projects disaggregated by 2a and 2B", - "customId": 2, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 64 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 75 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLCSS/CA5/IN2" - } - ], - "parentId": 3219, - "composedReference": "CLCSS/CA5" + "orderNumber": 1 + }, + "attachments": [], + "composedReference": "CL1289" }, { - "id": 87, - "customReference": "6", - "value": { - "categories": [], - "description": "Establishing inter-cluster and cluster specific preparedness and response standards", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 79, - 77, - 74 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", + "id": 1295, + "planId": 402, + "governingEntityVersion": { + "id": 1401, + "name": "WATER AND SANITATION", + "customReference": "1295", "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } + "description": null, + "icon": null, + "categories": [] }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 127, - "customReference": "1", - "type": "indicator", - "value": { - "description": "cluster winter and contingency plans are in place", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 1 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLCSS/CA6/IN1" - } - ], - "parentId": 3219, - "composedReference": "CLCSS/CA6" - }, - { - "id": 88, - "customReference": "7", - "value": { - "categories": [], - "description": "Strengthen preparedness measures within existing coordination mechanisms and stockpile to ensure needs arising from sudden emergencies are addressed in a timely and predictable manner", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 79, - 77, - 74 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } + "clusterNumber": "1295" }, - "planId": 504, "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", + "id": 1777, + "refCode": "CL", + "type": "GVE", "value": { "name": { "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" + "singular": "Cluster", + "plural": "Clusters" } }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 128, - "customReference": "1", - "type": "indicator", - "value": { - "description": "Frequency of oPT IACP and stockpiling matrix updated", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 0 - } - ] - } + "possibleChildren": [ + { + "refCode": "CO", + "cardinality": "0-N", + "id": 1779 }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] + { + "refCode": "CA", + "cardinality": "0-N", + "id": 1780 } - }, - "composedReference": "CLCSS/CA7/IN1" + ] }, - { - "id": 129, - "customReference": "2", - "type": "indicator", - "value": { - "description": "Frequency of HCT emergency simulations", - "customId": 2, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 0 - } - ], - "comments": "Baseline: once every 2 years, Target: once a year" - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLCSS/CA7/IN2" - } - ], - "parentId": 3219, - "composedReference": "CLCSS/CA7" - }, - { - "id": 89, - "customReference": "3", - "value": { - "categories": [], - "description": "Provide material support (e.g. reinforced walls, security cameras) and accessible school rehabilitation (including provision of caravans) in areas vulnerable to attack, displacement and where the PA is restricted from maintaining, expanding and/or constructing educational facilities", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 74 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 110, - "customReference": "1", - "type": "indicator", - "value": { - "description": "Number of schools provided with rehabilitation services, caravans or other material support", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 1342 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Children- Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Children-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Adult-Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Adult-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - 659, - null, - null, - 574, - null, - null, - 45, - null, - null, - 64, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLEDU/CA3/IN1" - } - ], - "parentId": 3220, - "composedReference": "CLEDU/CA3" - }, - { - "id": 90, - "customReference": "8", - "value": { - "categories": [], - "description": "Provide school-based psychosocial support (including extra-curricular and recreational activities) to students and school staff, including capacity building and awareness raising for caregivers and school staff", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 79 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 117, - "customReference": "1", - "type": "indicator", - "value": { - "description": "No of students and school staff benefiting from psychosocial support services", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 275165 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Children- Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Children-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Adult-Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Adult-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - 134079, - null, - null, - 118686, - null, - null, - 7821, - null, - null, - 14579, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLEDU/CA8/IN1" - } - ], - "parentId": 3220, - "composedReference": "CLEDU/CA8" - }, - { - "id": 91, - "customReference": "4", - "value": { - "categories": [], - "description": "Ensure basic educational services are available and accessible to unserved/ underserved communities in Gaza through school rehabilitation and additional learning spaces, the provision of essential educational supplies (including fuel), and support for winterization materials.", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 77 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 111, - "customReference": "1", - "type": "indicator", - "value": { - "description": "Number of children benefiting from school rehabilitation and additional learning spaces", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 2828 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Children- Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Children-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Adult-Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Adult-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - 1507, - null, - null, - 1321, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLEDU/CA4/IN1" - }, - { - "id": 112, - "customReference": "2", - "type": "indicator", - "value": { - "description": "Number of children benefiting from the provision of essential school supplies and drr equipment", - "customId": 2, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 121025 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Children- Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Children-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Adult-Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Adult-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - 59892, - null, - null, - 60133, - null, - null, - null, - null, - null, - 1000, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLEDU/CA4/IN2" - }, - { - "id": 113, - "customReference": "3", - "type": "indicator", - "value": { - "description": "Number of children benefiting from improved infrastructure to mitigate the impact of winter storms", - "customId": 3, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 4500 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Children- Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Children-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Adult-Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Adult-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - 2250, - null, - null, - 2250, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLEDU/CA4/IN3" - } - ], - "parentId": 3220, - "composedReference": "CLEDU/CA4" - }, - { - "id": 92, - "customReference": "9", - "value": { - "categories": [], - "description": "Provide DRR (including emergency response) capacity building (including first aid and safety) at schools and across Palestinian education service providers", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 79 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 118, - "customReference": "1", - "type": "indicator", - "value": { - "description": "No of school staff and students who have taken part in capacity building activities to strengthen drr capabilities", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 9286 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Children- Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Children-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Adult-Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Adult-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - 3640, - null, - null, - 2065, - null, - null, - 1532, - null, - null, - 2049, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLEDU/CA9/IN1" - } - ], - "parentId": 3220, - "composedReference": "CLEDU/CA9" - }, - { - "id": 93, - "customReference": "2", - "value": { - "categories": [], - "description": "Support legal action within Israeli courts, European courts, the ICC and others to protect schools and access to education, and support awareness raising of legal rights, channels to report violations and sources of legal aid", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 74 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 109, - "customReference": "1", - "type": "indicator", - "value": { - "description": "Number of people benefiting from legal aid or awareness raising", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 3200 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Children- Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Children-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Adult-Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Adult-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - 1050, - null, - null, - 1050, - null, - null, - 200, - null, - null, - 900, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLEDU/CA2/IN1" - } - ], - "parentId": 3220, - "composedReference": "CLEDU/CA2" - }, - { - "id": 94, - "customReference": "7", - "value": { - "categories": [], - "description": "Support MoEHE and other Palestinian education service providers’ capacity to plan for and respond to emergencies affecting children’s access to education", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 77 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 116, - "customReference": "1", - "type": "indicator", - "value": { - "description": "No of education staff who have taken part in capacity building activities to strengthen emergency preparedness and response", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 5724 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Children- Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Children-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Adult-Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Adult-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - 2869, - null, - null, - 2855, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLEDU/CA7/IN1" - } - ], - "parentId": 3220, - "composedReference": "CLEDU/CA7" - }, - { - "id": 95, - "customReference": "1", - "value": { - "categories": [], - "description": "Strengthen reporting on education-related violations across Gaza and the West Bank, particularly in East Jerusalem schools (including Waqf, UNRWA and Private schools), and improve communication with schools/communities on data usage and accountability", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 74 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 108, - "customReference": "1", - "type": "indicator", - "value": { - "description": "Number of education staff receiving training, refresher training, or capacity development support to strengthen monitoring and communication of education-related violations", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 400 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Children- Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Children-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Adult-Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Adult-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - 200, - null, - null, - 200, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLEDU/CA1/IN1" - } - ], - "parentId": 3220, - "composedReference": "CLEDU/CA1" - }, - { - "id": 96, - "customReference": "6", - "value": { - "categories": [], - "description": "Provide emergency learning packages and support services (including remedial education) for children and school staff who have lost regularized or full-time access to education", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 77 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 115, - "customReference": "1", - "type": "indicator", - "value": { - "description": "Number of school children and school staff benefiting from emergency learning packages and services", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 254136 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Children- Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Children-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Adult-Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Adult-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - 129840, - null, - null, - 122736, - null, - null, - 620, - null, - null, - 940, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLEDU/CA6/IN1" - } - ], - "parentId": 3220, - "composedReference": "CLEDU/CA6" - }, - { - "id": 97, - "customReference": "5", - "value": { - "categories": [], - "description": "Expand protective presence and accompaniment around schools and checkpoints in vulnerable communities", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 77 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 114, - "customReference": "1", - "type": "indicator", - "value": { - "description": "Numberof school children and teachers benefiting from protective presence", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 4100 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Children- Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Children-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Adult-Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Adult-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - 1950, - null, - null, - 1950, - null, - null, - 100, - null, - null, - 100, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLEDU/CA5/IN1" - } - ], - "parentId": 3220, - "composedReference": "CLEDU/CA5" - }, - { - "id": 98, - "customReference": "4", - "value": { - "categories": [], - "description": "Food vouchers support", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 54, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# of beneficiaries (disaggregated by sex) receiving food vouchers", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 225400 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLFSC/CA4/IN1" - } - ], - "parentId": 3221, - "composedReference": "CLFSC/CA4" - }, - { - "id": 99, - "customReference": "8", - "value": { - "categories": [], - "description": "Updating of the FSS preparedness and emergency plans and design an early warning system", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 79, - 77, - 74 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 61, - "customReference": "1", - "type": "indicator", - "value": { - "description": "FSS preparedness and emergency plan is updated and shared", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 1 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 1 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLFSC/CA8/IN1" - }, - { - "id": 62, - "customReference": "2", - "type": "indicator", - "value": { - "description": "# of organisations involved in the emergency preparedness plans", - "customId": 2, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 1 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 10 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLFSC/CA8/IN2" - } - ], - "parentId": 3221, - "composedReference": "CLFSC/CA8" - }, - { - "id": 100, - "customReference": "9", - "value": { - "categories": [], - "description": "Contribute to national and international awareness on IHL-rights and violations in WB and Gaza Strip.", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 79, - 77, - 74 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 63, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# of advocacy initiatives with FSS contribution", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 3 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 3 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLFSC/CA9/IN1" - } - ], - "parentId": 3221, - "composedReference": "CLFSC/CA9" - }, - { - "id": 101, - "customReference": "2", - "value": { - "categories": [], - "description": "Increase sourcing of quality food from local food producers", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 79, - 77 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 51, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# of producers (small and medium scale producers) supported", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 9000 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLFSC/CA2/IN1" - }, - { - "id": 52, - "customReference": "2", - "type": "indicator", - "value": { - "description": "Tonnage of food items purchased from local producers", - "customId": 2, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 8000 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLFSC/CA2/IN2" - } - ], - "parentId": 3221, - "composedReference": "CLFSC/CA2" - }, - { - "id": 102, - "customReference": "3", - "value": { - "categories": [], - "description": "Food in-kind distribution", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 53, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# of beneficiaries (disaggregated by sex) receiving food in kind", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 1118900 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLFSC/CA3/IN1" - } - ], - "parentId": 3221, - "composedReference": "CLFSC/CA3" - }, - { - "id": 103, - "customReference": "5", - "value": { - "categories": [], - "description": "Cash-based support", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 79, - 77 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 57, - "customReference": "3", - "type": "indicator", - "value": { - "description": "# of individuals (disaggregated by sex) benefiting from other unconditional cash support", - "customId": 3, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 0 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLFSC/CA5/IN3" - }, - { - "id": 56, - "customReference": "2", - "type": "indicator", - "value": { - "description": "# of individuals (disaggregated by sex) benefiting from other conditional cash support", - "customId": 2, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 0 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLFSC/CA5/IN2" - }, - { - "id": 55, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# of individuals (disaggregated by sex) benefiting from CfW", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 144000 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLFSC/CA5/IN1" - } - ], - "parentId": 3221, - "composedReference": "CLFSC/CA5" - }, - { - "id": 104, - "customReference": "6", - "value": { - "categories": [], - "description": "Maintain and inclusive and participatory platform for effective coordination among Food Security Sector partners", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 79, - 77, - 74 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 59, - "customReference": "2", - "type": "indicator", - "value": { - "description": "Report on % of projects/funding received through HPC disaggregated by INGO/PNGO and UN agencies", - "customId": 2, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 2 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 2 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLFSC/CA6/IN2" - }, - { - "id": 58, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# of sector and working groups meetings organised", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 15 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 15 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLFSC/CA6/IN1" - } - ], - "parentId": 3221, - "composedReference": "CLFSC/CA6" - }, - { - "id": 105, - "customReference": "7", - "value": { - "categories": [], - "description": "Improving information sharing mechanisms in relation to locations, areas where gaps are identified including developing information management system (IMS), needs assessments and surveys", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 79, - 77, - 74 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 60, - "customReference": "1", - "type": "indicator", - "value": { - "description": "Information sharing mechanism system in place and maintained", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 1 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 1 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLFSC/CA7/IN1" - } - ], - "parentId": 3221, - "composedReference": "CLFSC/CA7" - }, - { - "id": 106, - "customReference": "1", - "value": { - "categories": [], - "description": "Rehabilitation and provision of productive assets and essential infrastructure for farmers, herders breeders, fishers, and small scale food processors including promotion of technical capacities and small scale production units, and using the BBB (Build-Back Better) approach for increased resistance to shocks", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 79, - 77 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 48, - "customReference": "6", - "type": "indicator", - "value": { - "description": "# of water wells rehabilitated", - "customId": 6, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 71 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLFSC/CA1/IN6" - }, - { - "id": 49, - "customReference": "7", - "type": "indicator", - "value": { - "description": "m3 of warer storage provided", - "customId": 7, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 105000 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLFSC/CA1/IN7" - }, - { - "id": 47, - "customReference": "5", - "type": "indicator", - "value": { - "description": "# of animal heads distributed", - "customId": 5, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 3100 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLFSC/CA1/IN5" - }, - { - "id": 50, - "customReference": "8", - "type": "indicator", - "value": { - "description": "# of boats made functional", - "customId": 8, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 50 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLFSC/CA1/IN8" - }, - { - "id": 44, - "customReference": "2", - "type": "indicator", - "value": { - "description": "# of dunums made productive or with improved production capacity (full and partial land rehabilitation, piping and irrigation system, seeds and seedlings distribution, etc)", - "customId": 2, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 36000 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLFSC/CA1/IN2" - }, - { - "id": 46, - "customReference": "4", - "type": "indicator", - "value": { - "description": "# of green houses rehabilitated", - "customId": 4, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 2400 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLFSC/CA1/IN4" - }, - { - "id": 43, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# of beneficiaries receiving agricultural inputs and services", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 310000 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLFSC/CA1/IN1" - }, - { - "id": 45, - "customReference": "3", - "type": "indicator", - "value": { - "description": "# of Km of agricultural roads rehabilitated/opened", - "customId": 3, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 1000 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLFSC/CA1/IN3" - } - ], - "parentId": 3221, - "composedReference": "CLFSC/CA1" - }, - { - "id": 107, - "customReference": "03", - "value": { - "categories": [], - "description": "Provision of Primary Health Services (PHC) to vulnerable communities/ people in in Gaza", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 77 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 95, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# of consultations of patients in the ARA or communities with totally destroyed PHCs", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 100000 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - 51000, - null, - null, - 49000, - null, - null, - 40000, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLHLN/CA03/IN1" - }, - { - "id": 96, - "customReference": "2", - "type": "indicator", - "value": { - "description": "# of most vulnerable refugees receiving health services", - "customId": 2, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 272237 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - 137752, - null, - null, - 134485, - null, - null, - 118307, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLHLN/CA03/IN2" - } - ], - "parentId": 3222, - "composedReference": "CLHLN/CA03" - }, - { - "id": 108, - "customReference": "08", - "value": { - "categories": [], - "description": "Provision of support to vulnerable elderly people in Gaza", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 77 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 101, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# elderly persons identified and supported", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 1200 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - 400, - null, - null, - 800, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLHLN/CA08/IN1" - } - ], - "parentId": 3222, - "composedReference": "CLHLN/CA08" - }, - { - "id": 109, - "customReference": "01", - "value": { - "categories": [], - "description": "Provision of mobile health services to people who face obstacles in accessing basic healthcare", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 77 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 93, - "customReference": "2", - "type": "indicator", - "value": { - "description": "# of refugees in underserved communities in Areas B/C benefitting from mobile clinic services", - "customId": 2, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 100000 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 100000 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - 10000, - null, - null, - 60000, - null, - null, - 30000, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLHLN/CA01/IN2" - }, - { - "id": 92, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# of non-refugees in underserved communities in Area C benefitting from mobile clinic services", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 73000 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 0 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - "", - null, - null, - "", - null, - null, - 25550, - null, - null, - 29200, - null, - null, - 18250, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLHLN/CA01/IN1" - } - ], - "parentId": 3222, - "composedReference": "CLHLN/CA01" - }, - { - "id": 110, - "customReference": "06", - "value": { - "categories": [], - "description": "Provision of lifesaving neonatal and postnatal services to pregnant women and neonates in West Bank and Gaza", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 77 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 99, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# of pregnant women and neonates receiving lifesaving healthcare services", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 50000 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - 50000, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLHLN/CA06/IN1" - } - ], - "parentId": 3222, - "composedReference": "CLHLN/CA06" - }, - { - "id": 111, - "customReference": "11", - "value": { - "categories": [], - "description": "Strengthen the capacity of PHC and front line health providers, and communities on management of mass casualties, rescue and first aid, trauma care and referral to higher levels of health care in West Bank and Gaza", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 79 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 104, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# of health facilities prepared to deal with emergency cases", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 11 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 20 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLHLN/CA11/IN1" - }, - { - "id": 106, - "customReference": "3", - "type": "indicator", - "value": { - "description": "# of community members trained on first aid", - "customId": 3, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 300 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 500 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLHLN/CA11/IN3" - }, - { - "id": 105, - "customReference": "2", - "type": "indicator", - "value": { - "description": "# of health workers trained in trauma and/or emergency management", - "customId": 2, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 50 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 2000 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLHLN/CA11/IN2" - } - ], - "parentId": 3222, - "composedReference": "CLHLN/CA11" - }, - { - "id": 112, - "customReference": "02", - "value": { - "categories": [], - "description": "Provision of mental health and emergency services to vulnerable communities in East Jerusalem", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 77 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 94, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# of people in East Jerusalem receiving mental health or emergency services", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 80000 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - 40000, - null, - null, - 40000, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLHLN/CA02/IN1" - } - ], - "parentId": 3222, - "composedReference": "CLHLN/CA02" - }, - { - "id": 113, - "customReference": "07", - "value": { - "categories": [], - "description": "Identify and provide appropriate support to persons with conflict related disabilities in Gaza", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 77 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 100, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# people with conflict –related disabilities receive appropriate support", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 6475 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 11000 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - 3810, - 6000, - null, - 2665, - 5000, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLHLN/CA07/IN1" - } - ], - "parentId": 3222, - "composedReference": "CLHLN/CA07" - }, - { - "id": 114, - "customReference": "12", - "value": { - "categories": [], - "description": "Provision of prepositioning and pre-emergency services/supplies in West Bank and Gaza", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 79 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 107, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# of health facilities with a prepositioned emergency items", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 20 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLHLN/CA12/IN1" - } - ], - "parentId": 3222, - "composedReference": "CLHLN/CA12" - }, - { - "id": 115, - "customReference": "04", - "value": { - "categories": [], - "description": "Identify and treat children with severe and moderate nutrition problems in Gaza", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 77 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 97, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# children treated from moderate and severe malnutrition", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 1200 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 8000 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - 600, - 4000, - null, - 600, - 4000, - null, - 1200, - 8000, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLHLN/CA04/IN1" - } - ], - "parentId": 3222, - "composedReference": "CLHLN/CA04" - }, - { - "id": 116, - "customReference": "09", - "value": { - "categories": [], - "description": "Strengthen capacity of PHC and front line health workers to detect and refer survivors of violence related to the conflict and GBV in West Bank and Gaza", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 77, - 74 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 102, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# of health facilities with capacity and systems to detect and refer survivors of GBV and conflict related violence", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 45 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 0 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - 25, - 30 - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - 20, - 25 - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLHLN/CA09/IN1" - } - ], - "parentId": 3222, - "composedReference": "CLHLN/CA09" - }, - { - "id": 117, - "customReference": "05", - "value": { - "categories": [], - "description": "Provision of micronutrient supplements to children and women in West Bank and Gaza", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 77 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 98, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# of children and pregnant women who had received micronutrient supplements", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 250000 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - 125000, - null, - null, - 125000, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLHLN/CA05/IN1" - } - ], - "parentId": 3222, - "composedReference": "CLHLN/CA05" - }, - { - "id": 118, - "customReference": "10", - "value": { - "categories": [], - "description": "Providing health stakeholders’ coordination and collecting and disseminating information on access right to health violations in West Bank and Gaza.", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 77 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 103, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# of publications, including press releases with information on restricted access to PHC", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 12 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 15 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLHLN/CA10/IN1" - } - ], - "parentId": 3222, - "composedReference": "CLHLN/CA10" - }, - { - "id": 119, - "customReference": "1", - "value": { - "categories": [], - "description": "", - "support": [], - "type": { - "en": { - "singular": "Cluster Objective", - "plural": "Cluster Objectives" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 11, - "refCode": "CO", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Objective", - "plural": "Cluster Objectives" - } - }, - "description": { - "en": "Add the Cluster Objectives below, including how they align with the country strategy. Use the Add indicators button to add one or more Indicator to each Objective." - }, - "canSupport": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - } - ] - }, - "orderNumber": 2 - }, - "attachments": [], - "parentId": 3223, - "composedReference": "CLPRO/CO1" - }, - { - "id": 120, - "customReference": "3", - "value": { - "categories": [], - "description": "Advocacy initiatives that aim to enhance accountability for violations of HRL and IHL.", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 74 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 32, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# of field briefings raising protection concerns to diplomats", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 200 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLPRO/CA3/IN1" - } - ], - "parentId": 3223, - "composedReference": "CLPRO/CA3" - }, - { - "id": 121, - "customReference": "6", - "value": { - "categories": [], - "description": "Psychosocial and child protection response. child protection activities include age and gender sensitive counselling, family support and child/parent interaction programs, life-skills programs, youth-led protection initiatives and programs aimed at supporting children who have been separated from their caregivers.", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 74 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 37, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# of children benefiting from structured child protection interventions including life skills programs", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 294542 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLPRO/CA6/IN1" - }, - { - "id": 39, - "customReference": "3", - "type": "indicator", - "value": { - "description": "# of adults who receive structured psychosocial support", - "customId": 3, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 31322 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLPRO/CA6/IN3" - }, - { - "id": 38, - "customReference": "2", - "type": "indicator", - "value": { - "description": "# of children benefiting from individual case management", - "customId": 2, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 12550 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLPRO/CA6/IN2" - }, - { - "id": 40, - "customReference": "4", - "type": "indicator", - "value": { - "description": "# of GBV survivors who receive psychosocial services", - "customId": 4, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 17222 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLPRO/CA6/IN4" - } - ], - "parentId": 3223, - "composedReference": "CLPRO/CA6" - }, - { - "id": 122, - "customReference": "4", - "value": { - "categories": [], - "description": "ERW survey and clearance and ERW risk education in gaza to determine the extent of ERW contamination and risk (survey), recovery and removal of ERW (clearance) and provide information to mitigate the risks posed by ERW exposure (risk education) including targeted interventions to children.", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 74 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 35, - "customReference": "2", - "type": "indicator", - "value": { - "description": "# of people who receive ERW risk education (including children)", - "customId": 2, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": null - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 550000 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 266162 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLPRO/CA4/IN2" - }, - { - "id": 34, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# ERWs removed from civilan areas", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 1500 - } - ], - "comments": "Baseline: approx 3,000 removed from 2014 to 2015", - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLPRO/CA4/IN1" - } - ], - "parentId": 3223, - "composedReference": "CLPRO/CA4" - }, - { - "id": 123, - "customReference": "7", - "value": { - "categories": [], - "description": "Awareness raising activities designed to reduce risk of GBV.", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 74 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 41, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# of people who attend GBV awareness raising sessions or receive information on GBV services", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 55165 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLPRO/CA7/IN1" - } - ], - "parentId": 3223, - "composedReference": "CLPRO/CA7" - }, - { - "id": 124, - "customReference": "5", - "value": { - "categories": [], - "description": "Protective presence and accompaniment of individuals (including children) in communities exposed to settler violence and ISF presence", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 74 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 36, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# of communities benefiting from regular protective presence", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 160 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 225 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLPRO/CA5/IN1" - } - ], - "parentId": 3223, - "composedReference": "CLPRO/CA5" - }, - { - "id": 125, - "customReference": "1", - "value": { - "categories": [], - "description": "Monitoring and documentation of violations, focused on IHL violations and conflict-related violence including grave violations affecting children and support to CBOs to strengthen their capacity to undertake monitoring and documentation for the purposes of increased accountability.", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 74 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 27, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# of incidents of grave violations against children monitored and documented", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 2170 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 0 - } - ], - "comments": "No target", - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLPRO/CA1/IN1" - } - ], - "parentId": 3223, - "composedReference": "CLPRO/CA1" - }, - { - "id": 126, - "customReference": "2", - "value": { - "categories": [], - "description": "Provision of legal aid (legal counselling and representation) to those seeking accountability for HR/IHL violations including ISF and settler violence, those at risk of demolitions, forced evictions and displacement, those at risk of revocation of residency rights, IDPs in Gaza and those affected by the conflict in Gaza, people affected by access restrictions in Gaza and the West Bank, children arrested and detained and survivors of GBV.", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 74 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 30, - "customReference": "3", - "type": "indicator", - "value": { - "description": "# of women and men who receive information on their rights and how to access legal services", - "customId": 3, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 11105 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 0 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLPRO/CA2/IN3" - }, - { - "id": 31, - "customReference": "4", - "type": "indicator", - "value": { - "description": "# of GBV survivors who access legal assistance", - "customId": 4, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 600 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 1820 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLPRO/CA2/IN4" - }, - { - "id": 28, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# of people affected by recent conflict in Gaza that receive legal counselling in relation to land ownership, civil documentation, women’s property and inheritance rights", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 1900 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 4600 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLPRO/CA2/IN1" - }, - { - "id": 29, - "customReference": "2", - "type": "indicator", - "value": { - "description": "# of people subject to demolition/ eviction orders provided with legal support", - "customId": 2, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 4000 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 5230 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLPRO/CA2/IN2" - } - ], - "parentId": 3223, - "composedReference": "CLPRO/CA2" - }, - { - "id": 127, - "customReference": "8", - "value": { - "categories": [], - "description": "Support health facilities to respond to GBV survivors", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 74 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 42, - "customReference": "1", - "type": "indicator", - "value": { - "description": "functional referral system in place that includes multi-sectoral services", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 1 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0.5 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 1 - } - ], - "comments": "yes/no values, 0.5 means partial.", - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLPRO/CA8/IN1" - } - ], - "parentId": 3223, - "composedReference": "CLPRO/CA8" - }, - { - "id": 128, - "customReference": "1", - "value": { - "categories": [], - "description": "co1", - "support": [], - "type": { - "en": { - "singular": "Cluster Objective", - "plural": "Cluster Objectives" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 11, - "refCode": "CO", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Objective", - "plural": "Cluster Objectives" - } - }, - "description": { - "en": "Add the Cluster Objectives below, including how they align with the country strategy. Use the Add indicators button to add one or more Indicator to each Objective." - }, - "canSupport": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - } - ] - }, - "orderNumber": 2 - }, - "attachments": [], - "parentId": 3224, - "composedReference": "CLSHL/CO1" - }, - { - "id": 129, - "customReference": "2", - "value": { - "categories": [], - "description": "Response to displacement of vulnerable Palestinians following conflict or demolitions through transitional solutions (cash assistance, upgrading of overcrowded or substandard host or rental units and consolidation of makeshift or prefab units), shelter/NFI response and technical assistance, information and capacity building to facilitate an end to displacement", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 79 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 67, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# of vulnerable families in Gaza received assistance to access transitional shelter solution meeting minimum standards", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 13000 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 13000 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLSHL/CA2/IN1" - }, - { - "id": 68, - "customReference": "2", - "type": "indicator", - "value": { - "description": "# of interventions in Gaza incorporating technical/ legal assistance, information sharing and capacity building as a specific project output", - "customId": 2, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 3 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLSHL/CA2/IN2" - }, - { - "id": 69, - "customReference": "3", - "type": "indicator", - "value": { - "description": "% of households in the West Bank assisted after demolition or damage", - "customId": 3, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 100 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 85 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLSHL/CA2/IN3" - } - ], - "parentId": 3224, - "composedReference": "CLSHL/CA2" - }, - { - "id": 130, - "customReference": "3", - "value": { - "categories": [], - "description": "Preparedness to reduce the immediate effects of natural or manmade disasters through appropriate emergency shelter interventions and support for self-recovery", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 79 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 70, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# of individuals able to be provided with emergency shelter/NFIs", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 30 - } - ], - "comments": "Target: 30% of contingency plan", - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLSHL/CA3/IN1" - }, - { - "id": 71, - "customReference": "2", - "type": "indicator", - "value": { - "description": "# of households supported with training and tools for self-recovery in West Bank", - "customId": 2, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 1000 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLSHL/CA3/IN2" - }, - { - "id": 73, - "customReference": "4", - "type": "indicator", - "value": { - "description": "# of households assisted after natural disaster with emergency shelter/NFIs", - "customId": 4, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 1715 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 2000 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - }, - "comments": "Need is 1715 in West Bank, and all locations at risk of flooding or ARA in Gaza" - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLSHL/CA3/IN4" - }, - { - "id": 74, - "customReference": "5", - "type": "indicator", - "value": { - "description": "# of families provided with emergency winterization/ summarization NFIs for inadequate shelters", - "customId": 5, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 34085 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 13900 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLSHL/CA3/IN5" - }, - { - "id": 72, - "customReference": "3", - "type": "indicator", - "value": { - "description": "# of collective centres in Gaza provided with adaptation support and training", - "customId": 3, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 28 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLSHL/CA3/IN3" - } - ], - "parentId": 3224, - "composedReference": "CLSHL/CA3" - }, - { - "id": 131, - "customReference": "4", - "value": { - "categories": [], - "description": "Engagement and capacity building of national stakeholders to provide timely coordination and effective preparedness for response to emergencies", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 79 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 75, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# of ministries taking an active role in cluster activities and preparedness measures", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 3 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLSHL/CA4/IN1" - }, - { - "id": 76, - "customReference": "2", - "type": "indicator", - "value": { - "description": "% of meetings/events with significant engagement of national stakeholders to update contingency plan", - "customId": 2, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 80 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLSHL/CA4/IN2" - } - ], - "parentId": 3224, - "composedReference": "CLSHL/CA4" - }, - { - "id": 132, - "customReference": "1", - "value": { - "categories": [], - "description": "Increase access to a basic level of adequate shelter for acutely-vulnerable families through upgrading, repair and advocacy", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 79, - 77 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 65, - "customReference": "2", - "type": "indicator", - "value": { - "description": "# of households assisted to repair/winterize damaged units in Gaza", - "customId": 2, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 76600 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 10000 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLSHL/CA1/IN2" - }, - { - "id": 66, - "customReference": "3", - "type": "indicator", - "value": { - "description": "# information documents and advocacy messages released on the right to adequate housing, timely reconstruction and fit-for-purpose planning procedures", - "customId": 3, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 12 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLSHL/CA1/IN3" - }, - { - "id": 64, - "customReference": "1", - "type": "indicator", - "value": { - "description": "# of households assisted to improve or upgrade substandard units", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 8085 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 1450 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLSHL/CA1/IN1" - } - ], - "parentId": 3224, - "composedReference": "CLSHL/CA1" - }, - { - "id": 133, - "customReference": "1", - "value": { - "categories": [], - "description": "Ensure equitable access to basic WASH services in accordance with safety and dignity of the unserved, underserved and most vulnerable Palestinians under occupation in Gaza and the West Bank.", - "support": [], - "type": { - "en": { - "singular": "Cluster Objective", - "plural": "Cluster Objectives" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 11, - "refCode": "CO", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Objective", - "plural": "Cluster Objectives" - } - }, - "description": { - "en": "Add the Cluster Objectives below, including how they align with the country strategy. Use the Add indicators button to add one or more Indicator to each Objective." - }, - "canSupport": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - } - ] - }, - "orderNumber": 2 - }, - "attachments": [], - "parentId": 3225, - "composedReference": "CLWSH/CO1" - }, - { - "id": 134, - "customReference": "3", - "value": { - "categories": [], - "description": "Increase national WASH sector governance and coordination capacity", - "support": [], - "type": { - "en": { - "singular": "Cluster Objective", - "plural": "Cluster Objectives" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 11, - "refCode": "CO", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Objective", - "plural": "Cluster Objectives" - } - }, - "description": { - "en": "Add the Cluster Objectives below, including how they align with the country strategy. Use the Add indicators button to add one or more Indicator to each Objective." - }, - "canSupport": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - } - ] - }, - "orderNumber": 2 - }, - "attachments": [], - "parentId": 3225, - "composedReference": "CLWSH/CO3" - }, - { - "id": 135, - "customReference": "2", - "value": { - "categories": [], - "description": "Strengthen WASH response capacity to cope with new and protracted emergencies, threats and shocks.", - "support": [], - "type": { - "en": { - "singular": "Cluster Objective", - "plural": "Cluster Objectives" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 11, - "refCode": "CO", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Objective", - "plural": "Cluster Objectives" - } - }, - "description": { - "en": "Add the Cluster Objectives below, including how they align with the country strategy. Use the Add indicators button to add one or more Indicator to each Objective." - }, - "canSupport": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - } - ] - }, - "orderNumber": 2 - }, - "attachments": [], - "parentId": 3225, - "composedReference": "CLWSH/CO2" - }, - { - "id": 136, - "customReference": "2", - "value": { - "categories": [], - "description": "Support service providers to ensure the current level of basic WASH services in Gaza", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 77 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 83, - "customReference": "1", - "type": "indicator", - "value": { - "description": "Emergency fuel supplied to service providers to ensure that water and wastewater services remain functioning", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 100 - } - ], - "comments": "Need: Regular power supply restored to the water and wastewater utilities. Target: 100% emergency fuel needs of utilities met as per monthly fuel distribution plans" - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLWSH/CA2/IN1" - } - ], - "parentId": 3225, - "composedReference": "CLWSH/CA2" - }, - { - "id": 137, - "customReference": "1", - "value": { - "categories": [], - "description": "Provide basic WASH services for demolitions/ emergency/ conflict-affected/damaged schools/ IDP HHs, unserved, under-served and most vulnerable communities", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 77, - 74 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 82, - "customReference": "6", - "type": "indicator", - "value": { - "description": "Number of WASH facilities rehabilitated/ reconstructed in conflict-affected schools", - "customId": 6, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 48 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 48 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLWSH/CA1/IN6" - }, - { - "id": 79, - "customReference": "3", - "type": "indicator", - "value": { - "description": "Number of people in humanitarian situation benefited from access to improved sanitation services", - "customId": 3, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 600000 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 358000 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLWSH/CA1/IN3" - }, - { - "id": 77, - "customReference": "1", - "type": "indicator", - "value": { - "description": "Percentage of demolition incidents receiving a WASH response", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 100 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 100 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLWSH/CA1/IN1" - }, - { - "id": 80, - "customReference": "4", - "type": "indicator", - "value": { - "description": "Number of HHs receiving hygiene vouchers and kits", - "customId": 4, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 200000 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 120000 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLWSH/CA1/IN4" - }, - { - "id": 81, - "customReference": "5", - "type": "indicator", - "value": { - "description": "Number of people imparted hygiene awareness", - "customId": 5, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 695000 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 120000 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLWSH/CA1/IN5" - }, - { - "id": 78, - "customReference": "2", - "type": "indicator", - "value": { - "description": "Number of people in humanitarian situation benefited from access to drinking water", - "customId": 2, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 732000 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 518000 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLWSH/CA1/IN2" - } - ], - "parentId": 3225, - "composedReference": "CLWSH/CA1" - }, - { - "id": 138, - "customReference": "3", - "value": { - "categories": [], - "description": "Support winterization preparedness and response in Gaza", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 79 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 85, - "customReference": "2", - "type": "indicator", - "value": { - "description": "Number of Municipal level response plans/ contact lists in place", - "customId": 2, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 18 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 10 - } - ], - "comments": "Need: 18 municipalities at risk. Target: 10 municipal response plans", - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLWSH/CA3/IN2" - }, - { - "id": 84, - "customReference": "1", - "type": "indicator", - "value": { - "description": "Number of locations where flood prevention activities are undertaken/ where stagnant flood water was drained", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 200 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 25 - } - ], - "comments": "Need: >200 locations. Target: 25 high risk locations / hot spots", - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLWSH/CA3/IN1" - } - ], - "parentId": 3225, - "composedReference": "CLWSH/CA3" - }, - { - "id": 139, - "customReference": "4", - "value": { - "categories": [], - "description": "Support summerization preparedness/ Water access response", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 79 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 86, - "customReference": "1", - "type": "indicator", - "value": { - "description": "No. of vulnerable people served with drinking water", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 110000 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 60000 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLWSH/CA4/IN1" - } - ], - "parentId": 3225, - "composedReference": "CLWSH/CA4" - }, - { - "id": 140, - "customReference": "5", - "value": { - "categories": [], - "description": "Support Emergency preparedness & response plans", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 79 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 87, - "customReference": "1", - "type": "indicator", - "value": { - "description": "Number of locations where supplies are prepositioned", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 4 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 2 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Combination-children-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Combination-children-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Combination-adult-male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Combination-adult-female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1 - ], - "label": "Children", - "name": "Children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "Adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLWSH/CA5/IN1" - } - ], - "parentId": 3225, - "composedReference": "CLWSH/CA5" - }, - { - "id": 141, - "customReference": "6", - "value": { - "categories": [], - "description": "National WASH coordination capacity reinforced", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 79 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 89, - "customReference": "2", - "type": "indicator", - "value": { - "description": "Dedicated information management personnel in place", - "customId": 2, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 1 - } - ], - "comments": "Baseline: No; Target: Yes" - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLWSH/CA6/IN2" - }, - { - "id": 90, - "customReference": "3", - "type": "indicator", - "value": { - "description": "PWA-led national WASH coordination structure established in oPt", - "customId": 3, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 1 - } - ], - "comments": "Baseline: No; Target: Yes" - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLWSH/CA6/IN3" - }, - { - "id": 88, - "customReference": "1", - "type": "indicator", - "value": { - "description": "Monthly meetings organized", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 24 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 24 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Children- Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Children-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Adult-Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Adult-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - 12, - null, - 12 - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - 12, - null, - 12 - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLWSH/CA6/IN1" - } - ], - "parentId": 3225, - "composedReference": "CLWSH/CA6" - }, - { - "id": 142, - "customReference": "7", - "value": { - "categories": [], - "description": "Support Palestinian Authorities in the selfmanagement of water scarcity in the West Bank through capacity building in line with the Transitional Water Scarcity Response Framework", - "support": [ - { - "entityPrototypeId": 10, - "planEntityIds": [ - 79 - ] - } - ], - "type": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 12, - "refCode": "CA", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Cluster Activity", - "plural": "Cluster Activities" - } - }, - "description": { - "en": "Adding Cluster activities." - }, - "canSupport": { - "xor": [ - { - "refCode": "SO", - "cardinality": "0-N", - "id": 10 - }, - { - "refCode": "CO", - "cardinality": "0-N", - "id": 11 - } - ] - } - }, - "orderNumber": 3 - }, - "attachments": [ - { - "id": 91, - "customReference": "1", - "type": "indicator", - "value": { - "description": "Number of Local Government Units (Village Councils, Joint Service Councils, Municipalities) with capacity for self-management of water scarcity", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 25 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Children- Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Children-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Adult-Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Adult-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "CLWSH/CA7/IN1" - } - ], - "parentId": 3225, - "composedReference": "CLWSH/CA7" - }, - { - "id": 77, - "customReference": "2", - "value": { - "categories": [], - "description": "Ensure acutely-vulnerable Palestinians under occupation in the Gaza Strip and the West Bank have access to essential services", - "support": [], - "type": { - "en": { - "singular": "Strategic Objective", - "plural": "Strategic Objectives" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 10, - "refCode": "SO", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Strategic Objective", - "plural": "Strategic Objectives" - } - }, - "description": { - "en": "Add the Strategic Objectives below, including which Clusters will be active for the Objective. Use the Add indicators button to add one or more Indicators to each Objective." - } - }, - "orderNumber": 0 - }, - "attachments": [ - { - "id": 11, - "customReference": "5", - "type": "indicator", - "value": { - "description": "Increased number of acutely vulnerable Palestinians are ensured access to improved sanitation services", - "customId": 5, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 600000 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 358000 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "SO2/IN5" - }, - { - "id": 12, - "customReference": "6", - "type": "indicator", - "value": { - "description": "Average processing time for HRP projects submitted through the Gaza Reconstruction Mechanism", - "customId": 6, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 30 - } - ], - "comments": "Target: 30 days" - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "SO2/IN6" - }, - { - "id": 8, - "customReference": "2", - "type": "indicator", - "value": { - "description": "# of vulnerable households living in upgraded/repaired housing units in accordance with minimum shelter standards", - "customId": 2, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 85000 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 11450 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "SO2/IN2" - }, - { - "id": 7, - "customReference": "1", - "type": "indicator", - "value": { - "description": "Percentage of communities with lack of access to health receive health and nutrition services", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 100 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 76 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 100 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "SO2/IN1" - }, - { - "id": 14, - "customReference": "8", - "type": "indicator", - "value": { - "description": "Index to measure access and movement restrictions (Gaza)-TBD", - "customId": 8, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 0 - } - ], - "comments": "Target: improved access and movement" - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "SO2/IN8" - }, - { - "id": 13, - "customReference": "7", - "type": "indicator", - "value": { - "description": "Number of critical service delivery areas - based on cluster sectors - included in the National Disaster Management Strategy or National Preparedness Plan", - "customId": 7, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 6 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 6 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "SO2/IN7" - }, - { - "id": 10, - "customReference": "4", - "type": "indicator", - "value": { - "description": "Increased number of acutely vulnerable Palestinians are ensured access to drinking water", - "customId": 4, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 732000 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 518000 - } - ], - "disaggregated": null - }, - "unit": { - "object": { - "id": 1, - "name": "individuals", - "label": "Individuals", - "createdAt": "2016-04-15T23:40:21.279Z", - "updatedAt": "2017-02-02T02:49:10.403Z", - "unitTypeId": 1, - "unitType": { - "id": 1, - "name": "people", - "label": "People", - "createdAt": "2016-04-15T23:40:21.230Z", - "updatedAt": "2016-04-15T23:40:21.230Z" - } - }, - "id": 1 - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "SO2/IN4" - }, - { - "id": 9, - "customReference": "3", - "type": "indicator", - "value": { - "description": "# of schoolchildren and teachers in vulnerable communities benefiting from protective presence/accompaniment to school", - "customId": 3, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 4100 - } - ], - "comments": "Adult males and females targeted represent teachers", - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Children- Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Children-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Adult-Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Adult-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - 1950, - null, - null, - 1950, - null, - null, - 100, - null, - null, - 100, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "SO2/IN3" - } - ], - "parent": [], - "composedReference": "SO2" - }, - { - "id": 79, - "customReference": "3", - "value": { - "categories": [], - "description": "Strengthen the ability of acutely-vulnerable Palestinian households to cope with protracted threats and shocks", - "support": [], - "type": { - "en": { - "singular": "Strategic Objective", - "plural": "Strategic Objectives" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 10, - "refCode": "SO", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Strategic Objective", - "plural": "Strategic Objectives" - } - }, - "description": { - "en": "Add the Strategic Objectives below, including which Clusters will be active for the Objective. Use the Add indicators button to add one or more Indicators to each Objective." - } - }, - "orderNumber": 0 - }, - "attachments": [ - { - "id": 22, - "customReference": "6", - "type": "indicator", - "value": { - "description": "Number of children treated for moderate and severe malnutrition", - "customId": "6", - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 1200 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 8000 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Children- Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Children-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Adult-Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Adult-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - 600, - 4000, - null, - 600, - 4000, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "SO3/IN6" - }, - { - "id": 20, - "customReference": "4", - "type": "indicator", - "value": { - "description": "Percentage of households that receive emergency material and cash support following demolition incidents that are not forcibly transferred", - "customId": "4", - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 100 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 85 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "SO3/IN4" - }, - { - "id": 19, - "customReference": "3", - "type": "indicator", - "value": { - "description": "# of vulnerable households protected from severe weather conditions", - "customId": "3", - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 40000 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 16000 - } - ] - }, - "unit": { - "object": { - "id": 2, - "name": "household", - "label": "Household", - "createdAt": "2016-04-15T23:40:21.281Z", - "updatedAt": "2017-02-02T02:49:10.424Z", - "unitTypeId": 1, - "unitType": { - "id": 1, - "name": "people", - "label": "People", - "createdAt": "2016-04-15T23:40:21.230Z", - "updatedAt": "2016-04-15T23:40:21.230Z" - } - }, - "id": 2 - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "SO3/IN3" - }, - { - "id": 21, - "customReference": "5", - "type": "indicator", - "value": { - "description": "Number of communities with strengthened capacity to respond in emergencies through first aid training", - "customId": "5", - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 500 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 300 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 500 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "SO3/IN5" - }, - { - "id": 26, - "customReference": "9", - "type": "indicator", - "value": { - "description": "# of children and caregivers receiving structured psychosocial support and child protection services", - "customId": "9", - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 294542 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Children- Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Children-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Adult-Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Adult-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "SO3/IN9" - }, - { - "id": 18, - "customReference": "2", - "type": "indicator", - "value": { - "description": "# of displaced families living in appropriate transitional accommodation in line with minimum standards", - "customId": "2", - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 13000 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 13000 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Children- Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Children-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Adult-Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Adult-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - }, - "unit": { - "object": { - "id": 2, - "name": "household", - "label": "Household", - "createdAt": "2016-04-15T23:40:21.281Z", - "updatedAt": "2017-02-02T02:49:10.424Z", - "unitTypeId": 1, - "unitType": { - "id": 1, - "name": "people", - "label": "People", - "createdAt": "2016-04-15T23:40:21.230Z", - "updatedAt": "2016-04-15T23:40:21.230Z" - } - }, - "id": 2 - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "SO3/IN2" - }, - { - "id": 24, - "customReference": "7", - "type": "indicator", - "value": { - "description": "Resilience of the food insecure population (based on Resilience Index)", - "customId": "7", - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": -0.2932 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 0 - } - ], - "comments": "Target: stable or improved" - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "SO3/IN7" - }, - { - "id": 15, - "customReference": "1", - "type": "indicator", - "value": { - "description": "Food insecurity level in oPt", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 27 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 0 - } - ], - "comments": "Target: stable or decrease", - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Children- Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Children-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Adult-Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Adult-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - 32, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - }, - "unit": { - "object": { - "id": 2, - "name": "household", - "label": "Household", - "createdAt": "2016-04-15T23:40:21.281Z", - "updatedAt": "2017-02-02T02:49:10.424Z", - "unitTypeId": 1, - "unitType": { - "id": 1, - "name": "people", - "label": "People", - "createdAt": "2016-04-15T23:40:21.230Z", - "updatedAt": "2016-04-15T23:40:21.230Z" - } - }, - "id": 2 - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "SO3/IN1" - }, - { - "id": 16, - "customReference": "10", - "type": "indicator", - "value": { - "description": "No of students and school staff benefiting from PSS services", - "customId": "10", - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 275165 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1, - 4 - ], - "label": "Children - Male", - "name": "Children- Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 1, - 5 - ], - "label": "Children - Female", - "name": "Children-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 4 - ], - "label": "Adult - Male", - "name": "Adult-Male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3, - 5 - ], - "label": "Adult - Female", - "name": "Adult-Female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - 134079, - null, - null, - 118686, - null, - null, - 7821, - null, - null, - 14579, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "SO3/IN10" - }, - { - "id": 25, - "customReference": "9", - "type": "indicator", - "value": { - "description": "Number of updated Inter-Agency Contingency Plans (National and Gaza) and aligned Cluster Contingency Plans updated and aligned with oPt Risk Assessment", - "customId": 9, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 8 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 2 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 2 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "SO3/IN9" - } - ], - "parent": [], - "composedReference": "SO3" - }, - { - "id": 74, - "customReference": "1", - "value": { - "categories": [], - "description": "Protect the rights of Palestinians under occupation in accordance with International Humanitarian Law (IHL) and International Human Rights Law (IHRL)", - "support": [], - "type": { - "en": { - "singular": "Strategic Objective", - "plural": "Strategic Objectives" - } - } - }, - "planId": 504, - "entityPrototype": { - "id": 10, - "refCode": "SO", - "type": "PE", - "value": { - "name": { - "en": { - "singular": "Strategic Objective", - "plural": "Strategic Objectives" - } - }, - "description": { - "en": "Add the Strategic Objectives below, including which Clusters will be active for the Objective. Use the Add indicators button to add one or more Indicators to each Objective." - } - }, - "orderNumber": 0 + "orderNumber": 1 }, - "attachments": [ - { - "id": 6, - "customReference": "5", - "type": "indicator", - "value": { - "description": "Index to measure protection risk of most vulnerable communities (Area C)-TBD", - "customId": 5, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 0 - } - ], - "comments": "Target: Improved protection environment" - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "SO1/IN5" - }, - { - "id": 5, - "customReference": "4", - "type": "indicator", - "value": { - "description": "Statements by third states advocating respect for international humanitarian law and international human rights law in the oPt", - "customId": 4, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 3 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 5 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "SO1/IN4" - }, - { - "id": 4, - "customReference": "3", - "type": "indicator", - "value": { - "description": "Functional referral system in place that includes multi-sectoral services (health, psychosocial, legal and security) for GBV survivors", - "customId": 3, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 2 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0.5 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 2 - } - ] - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "SO1/IN3" - }, - { - "id": 2, - "customReference": "1", - "type": "indicator", - "value": { - "description": "% of households subject to demolition and eviction orders in the West Bank including East Jerusalem that are not displaced (during the reporting period) due to legal assistance", - "customId": 1, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 100 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 95 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 100 - } - ] - }, - "unit": { - "object": { - "id": 2, - "name": "household", - "label": "Household", - "createdAt": "2016-04-15T23:40:21.281Z", - "updatedAt": "2017-02-02T02:49:10.424Z", - "unitTypeId": 1, - "unitType": { - "id": 1, - "name": "people", - "label": "People", - "createdAt": "2016-04-15T23:40:21.230Z", - "updatedAt": "2016-04-15T23:40:21.230Z" - } - }, - "id": 2 - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "SO1/IN1" - }, - { - "id": 3, - "customReference": "2", - "type": "indicator", - "value": { - "description": "# of education staff equipped with appropriate skills for monitoring and reporting of education-related violations", - "customId": 2, - "metrics": { - "values": { - "totals": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - }, - "value": 0 - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - }, - "value": 0 - }, - { - "type": "target", - "name": { - "en": "Target" - }, - "value": 400 - } - ], - "disaggregated": { - "locations": [ - { - "id": 171, - "name": "occupied Palestinian territory" - }, - { - "id": 4108, - "name": "Gaza Strip" - }, - { - "id": 4109, - "name": "No Man's Land" - }, - { - "id": 4107, - "name": "West Bank" - }, - { - "id": 25243209, - "name": "Khan Younis" - }, - { - "id": 25243208, - "name": "Deir Al-Balah" - }, - { - "id": 25243206, - "name": "North Gaza" - }, - { - "id": 25243207, - "name": "Gaza" - }, - { - "id": 25243210, - "name": "Rafah" - }, - { - "id": 4110, - "name": "Ramallah_NML" - }, - { - "id": 25243212, - "name": "Jerusalem_NML1" - }, - { - "id": 25243213, - "name": "Jerusalem_NML2" - }, - { - "id": 25227596, - "name": "Area A & B" - }, - { - "id": 25227597, - "name": "East Jerusalem" - }, - { - "id": 25243211, - "name": "Ramallah" - }, - { - "id": 25227595, - "name": "Area C" - }, - { - "id": 25243200, - "name": "Jerusalem" - }, - { - "id": 25243203, - "name": "Salfit" - }, - { - "id": 25243204, - "name": "Tubas" - }, - { - "id": 25243205, - "name": "Tulkarm" - }, - { - "id": 25243198, - "name": "Jenin" - }, - { - "id": 25243197, - "name": "Hebron" - }, - { - "id": 25243196, - "name": "Bethlehem" - }, - { - "id": 25243199, - "name": "Jericho" - }, - { - "id": 25243201, - "name": "Nablus" - }, - { - "id": 25243202, - "name": "Qalqilya" - } - ], - "categories": [ - { - "ids": [ - 1 - ], - "label": "Children", - "name": "children", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 3 - ], - "label": "Adult", - "name": "adult", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 4 - ], - "label": "Male", - "name": "male", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - }, - { - "ids": [ - 5 - ], - "label": "Female", - "name": "female", - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - ], - "dataMatrix": [ - [ - null, - null, - null, - null, - null, - null, - null, - null, - 200, - null, - null, - 200, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - ] - } - }, - "unit": { - "object": { - "id": 1, - "name": "individuals", - "label": "Individuals", - "createdAt": "2016-04-15T23:40:21.279Z", - "updatedAt": "2017-02-02T02:49:10.403Z", - "unitTypeId": 1, - "unitType": { - "id": 1, - "name": "people", - "label": "People", - "createdAt": "2016-04-15T23:40:21.230Z", - "updatedAt": "2016-04-15T23:40:21.230Z" - } - }, - "id": 1 - } - }, - "globalIndicatorId": 0 - }, - "attachmentPrototype": { - "id": 1, - "refCode": "IN", - "type": "indicator", - "value": { - "hasMeasures": 1, - "name": { - "en": "Indicator" - }, - "min": 1, - "max": 3, - "entities": [ - "SO", - "CA", - "CO" - ], - "metrics": [ - { - "type": "inNeed", - "name": { - "en": "In Need" - } - }, - { - "type": "baseline", - "name": { - "en": "Baseline" - } - }, - { - "type": "target", - "name": { - "en": "Target" - } - } - ] - } - }, - "composedReference": "SO1/IN2" - } - ], - "parent": [], - "composedReference": "SO1" - } - ], - "monitoringPeriods": [ - { - "id": 44, - "periodNumber": 1, - "startDate": "2016-01-01T11:00:00.000Z", - "endDate": "2016-03-30T22:00:00.000Z" - }, - { - "id": 45, - "periodNumber": 2, - "startDate": "2016-03-31T22:00:00.000Z", - "endDate": "2016-06-29T22:00:00.000Z" - }, - { - "id": 46, - "periodNumber": 3, - "startDate": "2016-06-30T22:00:00.000Z", - "endDate": "2016-12-30T23:00:00.000Z" + "attachments": [], + "composedReference": "CL1295" } ], - "origRequirements": 571414014, - "revisedRequirements": 570702496, + "origRequirements": 500512658, + "revisedRequirements": 509937289, "meta": { "language": "en" } }, "status": "ok" -} +} \ No newline at end of file diff --git a/django_api/django_api/apps/ocha/samples/V2_project_info.json b/django_api/django_api/apps/ocha/samples/V2_project_info.json index 2843893ef..a0aabe71f 100644 --- a/django_api/django_api/apps/ocha/samples/V2_project_info.json +++ b/django_api/django_api/apps/ocha/samples/V2_project_info.json @@ -1,118 +1,23654 @@ { - "data":{ - "name":": Projet intégré de renforcement de la sécurité nutritionnelle dans la région du Kanem et du BEG en 2017", - "currentRequestedFunds":"1605000", - "version":2, - "objective":"Contribuer à la réduction de la morbidité et mortalité infantile par une amélioration de la sécurité nutritionnelle des populations du Kanem et du BEG en 2017", - "partners":null, - "startDate":"2017-01-01T00:00:00.000Z", - "endDate":"2017-12-31T00:00:00.000Z", - "updatedAt":"2017-02-06T21:21:01.910Z", - "createdAt":"2016-12-05T09:21:00.000Z", - "projectVersionId":95122, - "id":47561, - "code":"CHD-17/H/102256/5271", - "currentPublishedVersionId":95122, - "creatorParticipantId":null, - "fulfillments":[ + "data": { + "id": 154060, + "createdAt": "2018-11-08T15:13:16.143Z", + "updatedAt": "2019-02-26T09:40:10.741Z", + "currentPublishedVersionId": 117273, + "projectVersions": [ { - "id":60249, - "workflowStatusId":null, - "procedureId":494, - "projectVersionId":95122, - "createdAt":"2017-10-23T16:02:42.92416+00:00", - "updatedAt":"2017-10-23T16:02:42.92416+00:00" + "id": 117273, + "code": "HTCD19-HEA;NUT;WSH-154060-1", + "projectId": 154060, + "version": 1, + "name": "Appui à la prise en charge médico-nutritionnelle des enfants de moins de 5 ans, des femmes enceintes et femmes allaitantes dans la région sanitaire de N'Djamena.", + "currentRequestedFunds": "4311281", + "lastGeneratedPdf": "2018-11-26T14:03:44.510Z", + "startDate": "2019-01-01T00:00:00.000Z", + "endDate": "2019-12-31T00:00:00.000Z", + "objective": "ALIMA et son partenaire Alerte Santé auront pour objectif de contribuer à la réduction de la mortalité des enfants de moins de 5 ans dans la région sanitaire de N'Djamena à travers l'amélioration des statuts sanitaires et nutritionnels de 80985 enfants de moins de 5 ans et femmes enceintes et allaitantes (27157 hommes et 53828 femmes) à travers les activités de prise en charge, de sensibilisation à la malnutrition aigüe sévère et le renforcement des capacités de 78 professionnels de santé dans les zones d’intervention dont 18 hommes et 60 femmes. \nDans la région sanitaire de N'Djamena, le projet poursuivra l'appui à la prise en charge de la MAS en en hospitalisation dans l'UNT HATC et dans la nouvelle UNT de Gozattor. La prise en charge des enfants MAS en ambulatoire s'effectuera dans les 16 UNA soutenues en 2018. Cela se fera par le biais du système de circuit unique permettant le dépistage systématique de la MAS de tous les enfants de moins de 5ans se présentant dans le centre de santé et le rattrapage de la vaccination pour la mère et l'enfant. Des campagnes de dépistages de masse couplés au formation PB mères seront intégrés dans le projet afin d’assurer une prise en charge précoce et préventive. \nTel que l'énonce la Charte ALIMA \"le patient d'abord\", le bénéficiaire est au centre de tout dispositif d'intervention de l'organisation. L'ONG médicale entend donc exécuter son mandat de manière responsable en tenant en compte des spécificités ou non des populations qu'elle assiste et vis-à-vis desquelles elle sera redevable tout au long du cycle de projet. \nLes populations affectés sont considérées comme des \"partenaires\" et intégrées dans la programmation humanitaire, notamment dans l'identification des besoins, le conceptualisation, la mise en oeuvre de la réponse, le suivi et l'évaluation de fin de cycle. \nAinsi, ALIMA s'engage à :\n- incorporer systématiquement la notion de redevabilité dans sa programmation; \n- assurer la transparence à travers le partage d'informations avec la population affectée; \n- mettre en place un mécanisme de collecte et traitement des feedbacks et plaintes; \n- promouvoir la participation et l'engagement de la population affectée afin de renforcer l'appropriation locale et la résilience; \n- promouvoir un système de planification, suivi et évaluation participatif. \n", + "partners": "Alerte santé", + "implementationStatus": "published", + "createdAt": "2018-11-08T15:13:16.147Z", + "updatedAt": "2019-02-26T09:40:10.681Z", + "categories": [], + "organizations": [ + { + "id": 1937, + "name": "Alliance for International Medical Action", + "nativeName": "The Alliance for International Medical Action", + "abbreviation": "ALIMA", + "url": "www.alimaong.org", + "parentID": null, + "comments": null, + "active": true, + "collectiveInd": false, + "createdAt": "2017-01-14T00:53:54.170Z", + "updatedAt": "2017-12-09T00:03:39.717Z", + "projectVersionOrganization": { + "projec": 117273, + "organi": 1937, + "create": "2018-11-08T15:13:30.626Z", + "update": "2018-11-08T15:13:30.626Z" + } + } + ], + "planEntities": [ + { + "id": 2969, + "planId": 668, + "entityPrototypeId": 2336, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-30T08:59:08.917Z", + "updatedAt": "2018-10-30T09:25:49.609Z", + "deletedAt": null, + "projectVersionPlanEntity": { + "projectVe": 117273, + "planEntit": 2381, + "createdAt": "2018-11-08T16:04:36.157Z", + "updatedAt": "2018-11-08T16:04:36.157Z" + }, + "planEntityVersion": { + "id": 2381, + "planEntityId": 2969, + "customReference": "9", + "value": { + "type": { + "en": { + "singular": "Cluster Activity", + "plural": "Cluster Activities" + } + }, + "categories": [], + "description": "Renforcer les capacités des prestataires et l’accessibilité des structures pour offre des soins de qualité aux femmes enceintes et allaitantes, et aux accouchées y compris les références.", + "support": [ + { + "planEntityIds": [ + 2936 + ] + } + ] + }, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVers": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-30T08:59:08.917Z", + "updatedAt": "2018-10-30T09:25:49.609Z" + } + }, + { + "id": 2961, + "planId": 668, + "entityPrototypeId": 2336, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-29T16:47:37.355Z", + "updatedAt": "2018-10-30T09:25:42.632Z", + "deletedAt": null, + "projectVersionPlanEntity": { + "projectVe": 117273, + "planEntit": 2405, + "createdAt": "2018-11-08T16:04:36.157Z", + "updatedAt": "2018-11-08T16:04:36.157Z" + }, + "planEntityVersion": { + "id": 2405, + "planEntityId": 2961, + "customReference": "1", + "value": { + "type": { + "en": { + "singular": "Cluster Activity", + "plural": "Cluster Activities" + } + }, + "categories": [], + "description": "Fournir et assurer l’approvisionnent en médicaments et autres intrants essentiels pour assurer la prise en charge médicale et la référence des populations vulnérables dans les centres de santé, les sites de retournés et réfugies à travers des cliniques mobiles ainsi que les soins gratuits dans les hôpitaux des localités d’accueils.", + "support": [ + { + "planEntityIds": [ + 2934 + ] + } + ] + }, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVers": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-29T16:47:37.355Z", + "updatedAt": "2018-10-30T09:25:42.632Z" + } + }, + { + "id": 2968, + "planId": 668, + "entityPrototypeId": 2336, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-30T08:42:54.789Z", + "updatedAt": "2018-10-30T09:25:47.792Z", + "deletedAt": null, + "projectVersionPlanEntity": { + "projectVe": 117273, + "planEntit": 2407, + "createdAt": "2018-11-08T16:04:36.157Z", + "updatedAt": "2018-11-08T16:04:36.157Z" + }, + "planEntityVersion": { + "id": 2407, + "planEntityId": 2968, + "customReference": "8", + "value": { + "type": { + "en": { + "singular": "Cluster Activity", + "plural": "Cluster Activities" + } + }, + "categories": [], + "description": "Renforcer la sensibilisation des communautés sur leur droit et prérogative sur les services qui leurs sont offerts.", + "support": [ + { + "planEntityIds": [ + 2935 + ] + } + ] + }, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVers": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-30T08:42:54.789Z", + "updatedAt": "2018-10-30T09:25:47.792Z" + } + }, + { + "id": 2962, + "planId": 668, + "entityPrototypeId": 2336, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-29T17:01:40.983Z", + "updatedAt": "2018-10-30T09:25:42.812Z", + "deletedAt": null, + "projectVersionPlanEntity": { + "projectVe": 117273, + "planEntit": 2435, + "createdAt": "2018-11-14T09:26:09.816Z", + "updatedAt": "2018-11-14T09:26:09.816Z" + }, + "planEntityVersion": { + "id": 2435, + "planEntityId": 2962, + "customReference": "2", + "value": { + "type": { + "en": { + "singular": "Cluster Activity", + "plural": "Cluster Activities" + } + }, + "categories": [], + "description": "Organiser des enquêtes de satisfaction des soins offerts et mettre en place des mécanismes de plaintes accessibles, efficaces et confidentiels.", + "support": [ + { + "planEntityIds": [ + 2934 + ] + } + ] + }, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVers": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-29T17:01:40.983Z", + "updatedAt": "2018-10-30T09:25:42.812Z" + } + }, + { + "id": 2964, + "planId": 668, + "entityPrototypeId": 2336, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-29T17:29:31.002Z", + "updatedAt": "2018-10-30T09:25:44.680Z", + "deletedAt": null, + "projectVersionPlanEntity": { + "projectVe": 117273, + "planEntit": 2461, + "createdAt": "2018-11-08T16:04:36.157Z", + "updatedAt": "2018-11-08T16:04:36.157Z" + }, + "planEntityVersion": { + "id": 2461, + "planEntityId": 2964, + "customReference": "4", + "value": { + "type": { + "en": { + "singular": "Cluster Activity", + "plural": "Cluster Activities" + } + }, + "categories": [], + "description": "Recycler le personnel médical et les relais communautaires à renseigner les outils de collecte d’information sur les maladies à potentiel épidémique dans tous les districts.", + "support": [ + { + "planEntityIds": [ + 2935 + ], + "entityPrototypeId": 2333 + } + ] + }, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVers": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-29T17:29:31.002Z", + "updatedAt": "2018-10-30T09:25:44.680Z" + } + }, + { + "id": 3097, + "planId": 668, + "entityPrototypeId": 2336, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-31T16:03:09.955Z", + "updatedAt": "2018-11-02T17:57:33.077Z", + "deletedAt": null, + "projectVersionPlanEntity": { + "projectVe": 117273, + "planEntit": 2643, + "createdAt": "2018-11-11T15:06:11.982Z", + "updatedAt": "2018-11-11T15:06:11.982Z" + }, + "planEntityVersion": { + "id": 2643, + "planEntityId": 3097, + "customReference": "1", + "value": { + "type": { + "en": { + "singular": "Cluster Activity", + "plural": "Cluster Activities" + } + }, + "categories": [], + "description": "Accès à l'eau potable des populations affectées selon les normes et standards (SPHERE et national).", + "support": [ + { + "planEntityIds": [ + 2934 + ] + } + ] + }, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVers": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-31T16:03:09.955Z", + "updatedAt": "2018-11-02T17:57:33.077Z" + } + }, + { + "id": 3155, + "planId": 668, + "entityPrototypeId": 2336, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-11-02T09:32:15.246Z", + "updatedAt": "2018-11-03T13:05:55.162Z", + "deletedAt": null, + "projectVersionPlanEntity": { + "projectVe": 117273, + "planEntit": 2721, + "createdAt": "2018-11-08T16:04:36.157Z", + "updatedAt": "2018-11-08T16:04:36.157Z" + }, + "planEntityVersion": { + "id": 2721, + "planEntityId": 3155, + "customReference": "2", + "value": { + "type": { + "en": { + "singular": "Cluster Activity", + "plural": "Cluster Activities" + } + }, + "categories": [], + "description": "Formation initial/recyclage de 850 personnel soignant dans les unités nutritionnelles sur le protocole national", + "support": [ + { + "planEntityIds": [ + 2935 + ], + "entityPrototypeId": 2333 + } + ] + }, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVers": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-11-02T09:32:15.246Z", + "updatedAt": "2018-11-03T13:05:55.162Z" + } + }, + { + "id": 3154, + "planId": 668, + "entityPrototypeId": 2336, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-11-02T09:29:13.232Z", + "updatedAt": "2018-11-03T13:05:54.752Z", + "deletedAt": null, + "projectVersionPlanEntity": { + "projectVe": 117273, + "planEntit": 2726, + "createdAt": "2018-11-08T16:04:36.157Z", + "updatedAt": "2018-11-08T16:04:36.157Z" + }, + "planEntityVersion": { + "id": 2726, + "planEntityId": 3154, + "customReference": "1", + "value": { + "type": { + "en": { + "singular": "Cluster Activity", + "plural": "Cluster Activities" + } + }, + "categories": [], + "description": "Sensibilisation portant sur les pratiques familiales essentielles (PFE) pour les mères d’enfants malnutris et pour les femmes enceintes/allaitantes admises à la prise en charge nutritionnelle.", + "support": [ + { + "planEntityIds": [ + 2935 + ], + "entityPrototypeId": 2333 + } + ] + }, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVers": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-11-02T09:29:13.232Z", + "updatedAt": "2018-11-03T13:05:54.752Z" + } + }, + { + "id": 3159, + "planId": 668, + "entityPrototypeId": 2336, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-11-02T10:29:25.628Z", + "updatedAt": "2018-11-02T19:29:51.666Z", + "deletedAt": null, + "projectVersionPlanEntity": { + "projectVe": 117273, + "planEntit": 2730, + "createdAt": "2018-11-11T15:06:11.982Z", + "updatedAt": "2018-11-11T15:06:11.982Z" + }, + "planEntityVersion": { + "id": 2730, + "planEntityId": 3159, + "customReference": "5", + "value": { + "type": { + "en": { + "singular": "Cluster Activity", + "plural": "Cluster Activities" + } + }, + "categories": [], + "description": "Amélioration de la prise en charge nutritionnelle a travers la délivrance du paquet minimum d'activités WASH pour les couples mère-enfants MAS et les centres nutritionnels (UNA et UNT).", + "support": [ + { + "planEntityIds": [ + 2934 + ] + } + ] + }, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVers": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-11-02T10:29:25.628Z", + "updatedAt": "2018-11-02T19:29:51.666Z" + } + }, + { + "id": 3157, + "planId": 668, + "entityPrototypeId": 2336, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-11-02T09:37:08.826Z", + "updatedAt": "2018-11-03T13:05:53.411Z", + "deletedAt": null, + "projectVersionPlanEntity": { + "projectVe": 117273, + "planEntit": 2731, + "createdAt": "2018-11-08T16:04:36.157Z", + "updatedAt": "2018-11-08T16:04:36.157Z" + }, + "planEntityVersion": { + "id": 2731, + "planEntityId": 3157, + "customReference": "4", + "value": { + "type": { + "en": { + "singular": "Cluster Activity", + "plural": "Cluster Activities" + } + }, + "categories": [], + "description": "Prise en charge de la malnutrition aigue sévère", + "support": [ + { + "planEntityIds": [ + 2934 + ], + "entityPrototypeId": 2333 + } + ] + }, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVers": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-11-02T09:37:08.826Z", + "updatedAt": "2018-11-03T13:05:53.411Z" + } + }, + { + "id": 3158, + "planId": 668, + "entityPrototypeId": 2336, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-11-02T09:38:09.300Z", + "updatedAt": "2018-11-03T13:05:56.258Z", + "deletedAt": null, + "projectVersionPlanEntity": { + "projectVe": 117273, + "planEntit": 2755, + "createdAt": "2018-11-08T16:04:36.157Z", + "updatedAt": "2018-11-08T16:04:36.157Z" + }, + "planEntityVersion": { + "id": 2755, + "planEntityId": 3158, + "customReference": "5", + "value": { + "type": { + "en": { + "singular": "Cluster Activity", + "plural": "Cluster Activities" + } + }, + "categories": [], + "description": "Prise en charge de la malnutrition aigue moderee", + "support": [ + { + "planEntityIds": [ + 2934 + ], + "entityPrototypeId": 2333 + } + ] + }, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVers": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-11-02T09:38:09.300Z", + "updatedAt": "2018-11-03T13:05:56.258Z" + } + } + ], + "governingEntities": [ + { + "id": 4330, + "planId": 668, + "entityPrototypeId": 2332, + "entityType": "CL", + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-08T16:32:41.266Z", + "updatedAt": "2019-07-01T13:53:52.106Z", + "deletedAt": null, + "projectVersionGoverningEntity": {}, + "governingEntityVersion": { + "id": 4011, + "govern": 4330, + "name": "Eau, hygiène et assainissement", + "custom": "2", + "value": { + "icon": "clusters_water_sanitation_and_hygiene_icon", + "categories": [], + "orderNumber": 1 + }, + "overri": false, + "curren": true, + "latest": true, + "versio": [ + "1.0" + ], + "create": "2018-10-08T16:32:41.266Z", + "update": "2019-07-01T13:53:52.106Z" + } + }, + { + "id": 4332, + "planId": 668, + "entityPrototypeId": 2332, + "entityType": "CL", + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-08T16:33:08.399Z", + "updatedAt": "2019-07-01T13:53:57.330Z", + "deletedAt": null, + "projectVersionGoverningEntity": {}, + "governingEntityVersion": { + "id": 4013, + "govern": 4332, + "name": "Nutrition", + "custom": "4", + "value": { + "icon": "clusters_nutrition_icon", + "categories": [], + "orderNumber": 3 + }, + "overri": false, + "curren": true, + "latest": true, + "versio": [ + "1.0" + ], + "create": "2018-10-08T16:33:08.399Z", + "update": "2019-07-01T13:53:57.330Z" + } + }, + { + "id": 4334, + "planId": 668, + "entityPrototypeId": 2332, + "entityType": "CL", + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-08T16:34:00.048Z", + "updatedAt": "2019-07-01T13:54:03.629Z", + "deletedAt": null, + "projectVersionGoverningEntity": {}, + "governingEntityVersion": { + "id": 4015, + "govern": 4334, + "name": "Santé", + "custom": "6", + "value": { + "icon": "clusters_health_icon", + "categories": [], + "orderNumber": 5 + }, + "overri": false, + "curren": true, + "latest": true, + "versio": [ + "1.0" + ], + "create": "2018-10-08T16:34:00.048Z", + "update": "2019-07-01T13:54:03.629Z" + } + } + ], + "plans": [ + { + "id": 668, + "restricted": false, + "revisionState": "projectsOnly", + "createdAt": "2018-10-08T16:30:43.446Z", + "updatedAt": "2019-07-16T10:48:51.695Z", + "projectVersionPlan": { + "id": 115747, + "planId": 668, + "projectVersionId": 117273, + "value": { + "optionConsensus": [ + { + "id": 4330, + "toId": 270 + }, + { + "id": 4332, + "toId": 270 + }, + { + "id": 4334 + } + ] + }, + "workflowStatusOptionId": 273, + "createdAt": "2018-11-08T15:32:40.004Z", + "updatedAt": "2019-02-26T09:38:38.004Z" + }, + "planVersion": { + "id": 585, + "planId": 668, + "name": "Chad 2019", + "startDate": "2019-01-01T00:00:00.000Z", + "endDate": "2019-12-31T00:00:00.000Z", + "comments": null, + "isForHPCProjects": true, + "code": "HTCD19", + "customLocationCode": null, + "currentReportingPeriodId": 910, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-08T16:30:43.446Z", + "updatedAt": "2019-06-25T21:32:11.982Z" + }, + "procedureEntityPrototypes": [ + { + "id": 11, + "planId": 668, + "entityPrototypeId": 2336, + "createdAt": "2019-02-14T00:29:48.290Z", + "updatedAt": "2019-02-14T00:29:48.290Z" + } + ], + "workflowStatusOptions": [ + { + "id": 267, + "planId": 668, + "type": "notSubmitted", + "value": { + "label": { + "en": "not submitted" + } + }, + "createdAt": "2018-10-09T08:19:19.233Z", + "updatedAt": "2018-10-09T08:19:19.233Z", + "previousSteps": [ + { + "id": 454, + "fromId": 272, + "toId": 267, + "value": { + "label": { + "en": "Unsubmit project" + } + }, + "createdAt": "2018-10-09T08:19:19.340Z", + "updatedAt": "2018-10-09T08:19:19.340Z" + }, + { + "id": 448, + "fromId": 268, + "toId": 267, + "value": { + "label": { + "en": "Unsubmit project" + } + }, + "createdAt": "2018-10-09T08:19:19.293Z", + "updatedAt": "2018-10-09T08:19:19.293Z" + } + ], + "nextSteps": [ + { + "id": 447, + "fromId": 267, + "toId": 268, + "value": { + "label": { + "en": "Submit to plan" + } + }, + "createdAt": "2018-10-09T08:19:19.281Z", + "updatedAt": "2018-10-09T08:19:19.281Z" + } + ] + }, + { + "id": 268, + "planId": 668, + "type": "submitted", + "value": { + "label": { + "en": "submitted to plan" + } + }, + "createdAt": "2018-10-09T08:19:19.244Z", + "updatedAt": "2018-10-09T08:19:19.244Z", + "previousSteps": [ + { + "id": 447, + "fromId": 267, + "toId": 268, + "value": { + "label": { + "en": "Submit to plan" + } + }, + "createdAt": "2018-10-09T08:19:19.281Z", + "updatedAt": "2018-10-09T08:19:19.281Z" + } + ], + "nextSteps": [ + { + "id": 448, + "fromId": 268, + "toId": 267, + "value": { + "label": { + "en": "Unsubmit project" + } + }, + "createdAt": "2018-10-09T08:19:19.293Z", + "updatedAt": "2018-10-09T08:19:19.293Z" + }, + { + "id": 449, + "fromId": 268, + "toId": 269, + "value": { + "label": { + "en": "Add to review" + } + }, + "createdAt": "2018-10-09T08:19:19.303Z", + "updatedAt": "2018-10-09T08:19:19.303Z" + } + ] + }, + { + "id": 269, + "planId": 668, + "type": "review", + "value": { + "label": { + "en": "under review" + } + }, + "createdAt": "2018-10-09T08:19:19.251Z", + "updatedAt": "2018-10-09T08:19:19.251Z", + "previousSteps": [ + { + "id": 449, + "fromId": 268, + "toId": 269, + "value": { + "label": { + "en": "Add to review" + } + }, + "createdAt": "2018-10-09T08:19:19.303Z", + "updatedAt": "2018-10-09T08:19:19.303Z" + }, + { + "id": 453, + "fromId": 272, + "toId": 269, + "value": { + "label": { + "en": "Send back for review" + } + }, + "createdAt": "2018-10-09T08:19:19.328Z", + "updatedAt": "2019-01-08T17:44:33.871Z" + }, + { + "id": 636, + "fromId": 271, + "toId": 269, + "value": { + "label": { + "en": "Return to under review" + } + }, + "createdAt": "2018-11-22T18:30:50.157Z", + "updatedAt": "2018-11-22T18:30:50.157Z" + } + ], + "nextSteps": [ + { + "id": 457, + "fromId": 269, + "toId": 271, + "value": { + "label": { + "en": "Reject project as cluster lead" + }, + "optionConsensus": true + }, + "createdAt": "2018-10-09T08:19:19.358Z", + "updatedAt": "2018-10-09T08:19:19.358Z" + }, + { + "id": 450, + "fromId": 269, + "toId": 270, + "value": { + "label": { + "en": "Approve project as cluster lead" + }, + "optionConsensus": true + }, + "createdAt": "2018-10-09T08:19:19.311Z", + "updatedAt": "2018-10-09T08:19:19.311Z" + }, + { + "id": 452, + "fromId": 269, + "toId": 272, + "value": { + "label": { + "en": "Return project for edit" + } + }, + "createdAt": "2018-10-09T08:19:19.321Z", + "updatedAt": "2018-10-09T08:19:19.321Z" + } + ] + }, + { + "id": 270, + "planId": 668, + "type": "review", + "value": { + "label": { + "en": "approved by cluster lead" + } + }, + "createdAt": "2018-10-09T08:19:19.257Z", + "updatedAt": "2018-10-09T08:19:19.257Z", + "previousSteps": [ + { + "id": 458, + "fromId": 273, + "toId": 270, + "value": { + "label": { + "en": "Return to approved by cluster lead" + } + }, + "createdAt": "2018-10-09T08:19:19.365Z", + "updatedAt": "2018-10-09T08:19:19.365Z" + }, + { + "id": 450, + "fromId": 269, + "toId": 270, + "value": { + "label": { + "en": "Approve project as cluster lead" + }, + "optionConsensus": true + }, + "createdAt": "2018-10-09T08:19:19.311Z", + "updatedAt": "2018-10-09T08:19:19.311Z" + } + ], + "nextSteps": [ + { + "id": 451, + "fromId": 270, + "toId": 273, + "value": { + "label": { + "en": "Accept project by HC" + } + }, + "createdAt": "2018-10-09T08:19:19.318Z", + "updatedAt": "2018-10-09T08:19:19.318Z" + }, + { + "id": 455, + "fromId": 270, + "toId": 272, + "value": { + "label": { + "en": "Return project for edit" + } + }, + "createdAt": "2018-10-09T08:19:19.351Z", + "updatedAt": "2018-10-09T08:19:19.351Z" + }, + { + "id": 456, + "fromId": 270, + "toId": 271, + "value": { + "label": { + "en": "Reject project as HC" + } + }, + "createdAt": "2018-10-09T08:19:19.354Z", + "updatedAt": "2018-10-09T08:19:19.354Z" + } + ] + }, + { + "id": 271, + "planId": 668, + "type": "rejected", + "value": { + "label": { + "en": "rejected" + } + }, + "createdAt": "2018-10-09T08:19:19.264Z", + "updatedAt": "2018-10-09T08:19:19.264Z", + "previousSteps": [ + { + "id": 457, + "fromId": 269, + "toId": 271, + "value": { + "label": { + "en": "Reject project as cluster lead" + }, + "optionConsensus": true + }, + "createdAt": "2018-10-09T08:19:19.358Z", + "updatedAt": "2018-10-09T08:19:19.358Z" + }, + { + "id": 456, + "fromId": 270, + "toId": 271, + "value": { + "label": { + "en": "Reject project as HC" + } + }, + "createdAt": "2018-10-09T08:19:19.354Z", + "updatedAt": "2018-10-09T08:19:19.354Z" + } + ], + "nextSteps": [ + { + "id": 636, + "fromId": 271, + "toId": 269, + "value": { + "label": { + "en": "Return to under review" + } + }, + "createdAt": "2018-11-22T18:30:50.157Z", + "updatedAt": "2018-11-22T18:30:50.157Z" + } + ] + }, + { + "id": 272, + "planId": 668, + "type": "returned", + "value": { + "label": { + "en": "returned for edit" + } + }, + "createdAt": "2018-10-09T08:19:19.271Z", + "updatedAt": "2018-10-09T08:19:19.271Z", + "previousSteps": [ + { + "id": 452, + "fromId": 269, + "toId": 272, + "value": { + "label": { + "en": "Return project for edit" + } + }, + "createdAt": "2018-10-09T08:19:19.321Z", + "updatedAt": "2018-10-09T08:19:19.321Z" + }, + { + "id": 455, + "fromId": 270, + "toId": 272, + "value": { + "label": { + "en": "Return project for edit" + } + }, + "createdAt": "2018-10-09T08:19:19.351Z", + "updatedAt": "2018-10-09T08:19:19.351Z" + } + ], + "nextSteps": [ + { + "id": 453, + "fromId": 272, + "toId": 269, + "value": { + "label": { + "en": "Send back for review" + } + }, + "createdAt": "2018-10-09T08:19:19.328Z", + "updatedAt": "2019-01-08T17:44:33.871Z" + }, + { + "id": 454, + "fromId": 272, + "toId": 267, + "value": { + "label": { + "en": "Unsubmit project" + } + }, + "createdAt": "2018-10-09T08:19:19.340Z", + "updatedAt": "2018-10-09T08:19:19.340Z" + } + ] + }, + { + "id": 273, + "planId": 668, + "type": "accepted", + "value": { + "label": { + "en": "accepted" + } + }, + "createdAt": "2018-10-09T08:19:19.277Z", + "updatedAt": "2018-10-09T08:19:19.277Z", + "previousSteps": [ + { + "id": 451, + "fromId": 270, + "toId": 273, + "value": { + "label": { + "en": "Accept project by HC" + } + }, + "createdAt": "2018-10-09T08:19:19.318Z", + "updatedAt": "2018-10-09T08:19:19.318Z" + } + ], + "nextSteps": [ + { + "id": 458, + "fromId": 273, + "toId": 270, + "value": { + "label": { + "en": "Return to approved by cluster lead" + } + }, + "createdAt": "2018-10-09T08:19:19.365Z", + "updatedAt": "2018-10-09T08:19:19.365Z" + } + ] + } + ], + "procedureSections": [ + { + "id": 17, + "planId": 668, + "name": "Objectifs Stratégiques", + "order": 8, + "createdAt": "2018-10-09T09:59:16.161Z", + "updatedAt": "2018-10-09T10:02:15.871Z", + "conditionFields": [ + { + "id": 1129, + "procedureSectionField": { + "procedureSectionId": 17, + "conditionFieldId": 1129, + "createdAt": "2018-10-09T10:01:06.036Z", + "updatedAt": "2018-10-09T10:01:06.036Z" + } + }, + { + "id": 1130, + "procedureSectionField": { + "procedureSectionId": 17, + "conditionFieldId": 1130, + "createdAt": "2018-10-09T10:01:13.242Z", + "updatedAt": "2018-10-09T10:01:13.242Z" + } + }, + { + "id": 1131, + "procedureSectionField": { + "procedureSectionId": 17, + "conditionFieldId": 1131, + "createdAt": "2018-10-09T10:02:15.883Z", + "updatedAt": "2018-10-09T10:02:15.883Z" + } + } + ] + } + ], + "conditionFields": [ + { + "id": 1135, + "planId": 668, + "name": "IASC Gender with Age Marker (GAM)", + "grouping": true, + "label": { + "en": { + "value": "Project Gender Age Marker" + } + }, + "description": "Please select the GAM code for this project. To complete the IASC Gender with Age Marker (GAM) go to - https://ee.humanitarianresponse.info/single/::lKbQTg7d. Documentation on the GAM tool, including frequently asked questions and self-guided training materials, can be found on the IASC Gender and Age Marker website - https://iascgenderwithagemarker.com/", + "fieldType": "select", + "rules": { + "options": [ + "4 (T): The project is principally about promoting gender equality, including across age groups.", + "4 (M): The project will significantly contribute to gender equality, including across age groups.", + "3 (T): The project is principally about promoting gender equality without full attention to age groups.", + "3 (M): The project will contribute to gender equality but without full attention to age groups.", + "2 (T): The project addresses age differences and aims to promote gender equality but without the necessary gender equality measures.", + "2 (M): The project addresses age differences but does not intentionally contribute to gender equality.", + "1 (T): The project aims to principally promote gender equality without the necessary gender equality measures.", + "1 (M): The project does not intentionally contribute to gender equality.", + "0: There is no evidence that the project will contribute towards gender equality.", + "N/A: The project does not have any contact with or direct influence on the affected population, and the programming actions are not linked." + ] + }, + "required": true, + "order": 16, + "createdAt": "2018-10-09T08:40:28.135Z", + "updatedAt": "2019-02-26T09:50:51.891Z", + "isReliedOnBy": [] + }, + { + "id": 1134, + "planId": 668, + "name": "Estimated percentage of project requirements to be used for cash", + "grouping": false, + "label": {}, + "description": "", + "fieldType": "number", + "rules": { + "max": 100, + "min": 0 + }, + "required": true, + "order": 14, + "createdAt": "2018-10-09T08:39:30.521Z", + "updatedAt": "2018-11-21T14:23:59.391Z", + "isReliedOnBy": [] + }, + { + "id": 1133, + "planId": 668, + "name": "Restriction", + "grouping": true, + "label": { + "en": { + "value": "Project restriction" + } + }, + "description": "", + "fieldType": "select", + "rules": { + "options": [ + "Restricted", + "Unrestricted", + "Combined", + "Unknown" + ] + }, + "required": true, + "order": 15, + "createdAt": "2018-10-09T08:38:43.759Z", + "updatedAt": "2019-02-26T09:51:51.972Z", + "isReliedOnBy": [] + }, + { + "id": 1132, + "planId": 668, + "name": "Is any part of this project cash based intervention", + "grouping": true, + "label": { + "en": { + "value": "Project cash and vouchers" + } + }, + "description": " (including vouchers)", + "fieldType": "checkbox", + "rules": null, + "required": false, + "order": 13, + "createdAt": "2018-10-09T08:38:05.218Z", + "updatedAt": "2019-02-26T09:49:38.450Z", + "isReliedOnBy": [ + { + "id": 1134, + "planId": 668, + "name": "Estimated percentage of project requirements to be used for cash", + "grouping": false, + "label": {}, + "description": "", + "fieldType": "number", + "rules": { + "max": 100, + "min": 0 + }, + "required": true, + "order": 14, + "createdAt": "2018-10-09T08:39:30.521Z", + "updatedAt": "2018-11-21T14:23:59.391Z", + "conditionFieldReliesOn": { + "createdAt": "2018-10-09T08:39:49.021Z", + "updatedAt": "2018-10-09T08:39:49.021Z", + "reliedOnById": 1132, + "reliesOnId": 1134 + } + }, + { + "id": 1133, + "planId": 668, + "name": "Restriction", + "grouping": true, + "label": { + "en": { + "value": "Project restriction" + } + }, + "description": "", + "fieldType": "select", + "rules": { + "options": [ + "Restricted", + "Unrestricted", + "Combined", + "Unknown" + ] + }, + "required": true, + "order": 15, + "createdAt": "2018-10-09T08:38:43.759Z", + "updatedAt": "2019-02-26T09:51:51.972Z", + "conditionFieldReliesOn": { + "createdAt": "2018-10-09T08:39:49.021Z", + "updatedAt": "2018-10-09T08:39:49.021Z", + "reliedOnById": 1132, + "reliesOnId": 1133 + } + } + ] + }, + { + "id": 1131, + "planId": 668, + "name": "% qui contribue à l’OS 3 : Protection des personnes affectées", + "grouping": false, + "label": {}, + "description": "", + "fieldType": "number", + "rules": { + "max": 100, + "min": 0 + }, + "required": true, + "order": 12, + "createdAt": "2018-10-09T08:37:33.681Z", + "updatedAt": "2018-11-21T14:25:01.305Z", + "isReliedOnBy": [] + }, + { + "id": 1130, + "planId": 668, + "name": "% qui contribue à l’OS 2 : Renforcer la résilience", + "grouping": false, + "label": {}, + "description": "", + "fieldType": "number", + "rules": { + "max": 100, + "min": 0 + }, + "required": true, + "order": 11, + "createdAt": "2018-10-09T08:37:04.810Z", + "updatedAt": "2018-11-21T14:24:56.736Z", + "isReliedOnBy": [] + }, + { + "id": 1129, + "planId": 668, + "name": "% qui contribue à l’OS 1 : Sauver des vies", + "grouping": false, + "label": {}, + "description": "", + "fieldType": "number", + "rules": { + "max": 100, + "min": 0 + }, + "required": true, + "order": 10, + "createdAt": "2018-10-09T08:36:39.522Z", + "updatedAt": "2018-11-21T14:24:52.517Z", + "isReliedOnBy": [] + }, + { + "id": 1128, + "planId": 668, + "name": "% qui contribue à la crise mouvement de population", + "grouping": false, + "label": {}, + "description": "", + "fieldType": "number", + "rules": { + "max": 100, + "min": 0 + }, + "required": true, + "order": 9, + "createdAt": "2018-10-09T08:36:14.189Z", + "updatedAt": "2018-11-21T14:24:41.174Z", + "isReliedOnBy": [] + }, + { + "id": 1127, + "planId": 668, + "name": "% qui contribue à la crise urgence sanitaire", + "grouping": false, + "label": {}, + "description": "", + "fieldType": "number", + "rules": { + "max": 100, + "min": 0 + }, + "required": true, + "order": 9, + "createdAt": "2018-10-09T08:35:45.152Z", + "updatedAt": "2018-11-21T14:24:44.814Z", + "isReliedOnBy": [] + }, + { + "id": 1126, + "planId": 668, + "name": "% qui contribue à la réponse aux besoins dans le reste du pays?", + "grouping": false, + "label": {}, + "description": "", + "fieldType": "number", + "rules": { + "max": 100, + "min": 0 + }, + "required": true, + "order": 9, + "createdAt": "2018-10-09T08:35:18.918Z", + "updatedAt": "2018-11-21T14:24:48.327Z", + "isReliedOnBy": [] + }, + { + "id": 1125, + "planId": 668, + "name": "% qui contribue à la crise sécurité alimentaire et malnutrition", + "grouping": false, + "label": {}, + "description": "", + "fieldType": "number", + "rules": { + "max": 100, + "min": 0 + }, + "required": true, + "order": 8, + "createdAt": "2018-10-09T08:34:45.599Z", + "updatedAt": "2018-11-21T14:24:37.294Z", + "isReliedOnBy": [] + }, + { + "id": 1124, + "planId": 668, + "name": "% qui contribue à la réponse à la crise des réfugiés soudanais à", + "grouping": false, + "label": {}, + "description": "% qui contribue à la réponse à la crise des réfugiés soudanais à l’Est?", + "fieldType": "number", + "rules": { + "max": 100, + "min": 0 + }, + "required": true, + "order": 7, + "createdAt": "2018-10-09T08:34:14.186Z", + "updatedAt": "2018-11-21T14:24:30.064Z", + "isReliedOnBy": [] + }, + { + "id": 1123, + "planId": 668, + "name": "% qui contribue à la réponse aux besoins dans le Sud?", + "grouping": false, + "label": {}, + "description": "% qui contribue à la réponse aux besoins dans le Sud?", + "fieldType": "number", + "rules": { + "max": 100, + "min": 0 + }, + "required": true, + "order": 7, + "createdAt": "2018-10-09T08:33:41.158Z", + "updatedAt": "2018-11-21T14:24:34.147Z", + "isReliedOnBy": [] + }, + { + "id": 1122, + "planId": 668, + "name": "Veuillez sélectionner l’analyse qui se rapporte le mieux à votre", + "grouping": false, + "label": {}, + "description": "Veuillez sélectionner l’analyse qui se rapporte le mieux à votre projet.", + "fieldType": "select", + "rules": { + "options": [ + "0 - Ce projet n’intègre pas suffisamment la protection transversale.", + "1 - Ce projet intègre, de manière modérée, la protection transversale.", + "2 - Ce projet intègre de manière substantielle la protection transversale." + ] + }, + "required": true, + "order": 6, + "createdAt": "2018-10-09T08:33:03.558Z", + "updatedAt": "2018-10-09T08:33:03.558Z", + "isReliedOnBy": [] + }, + { + "id": 1121, + "planId": 668, + "name": "Lake Chad Basin?", + "grouping": true, + "label": { + "en": { + "value": "Project Lake Chad Basin" + } + }, + "description": "", + "fieldType": "checkbox", + "rules": [], + "required": false, + "order": 4, + "createdAt": "2018-10-09T08:32:10.316Z", + "updatedAt": "2019-02-26T09:53:07.136Z", + "isReliedOnBy": [] + }, + { + "id": 1119, + "planId": 668, + "name": "Activities or outputs", + "grouping": false, + "label": {}, + "description": "Please describe the project activities that will address the needs identified and how they will be implemented.", + "fieldType": "textarea", + "rules": { + "maxlength": 4000 + }, + "required": true, + "order": 2, + "createdAt": "2018-10-09T08:30:46.087Z", + "updatedAt": "2018-11-21T14:24:18.534Z", + "isReliedOnBy": [] + }, + { + "id": 1118, + "planId": 668, + "name": "Needs", + "grouping": false, + "label": {}, + "description": "Please describe the assessed needs the project will address through its activities.", + "fieldType": "textarea", + "rules": { + "maxlength": 4000 + }, + "required": true, + "order": 1, + "createdAt": "2018-10-09T08:29:05.774Z", + "updatedAt": "2018-11-21T14:25:22.114Z", + "isReliedOnBy": [] + } + ] + } + ], + "globalClusters": [ + { + "id": 7, + "hrinfoId": 7, + "type": "global", + "name": "Health", + "code": "HEA", + "homepage": "http://www.who.int/hac/global_health_cluster/en/", + "defaultIconId": "clusters_health_icon", + "parentId": null, + "createdAt": "2015-09-10T20:26:37.494Z", + "updatedAt": "2018-01-12T01:16:02.732Z", + "projectGlobalClusters": { + "projectVer": 117273, + "globalClus": 7, + "createdAt": "2018-11-08T15:32:50.315Z", + "updatedAt": "2018-11-08T15:32:50.316Z" + } + }, + { + "id": 9, + "hrinfoId": 9, + "type": "global", + "name": "Nutrition", + "code": "NUT", + "homepage": "http://nutritioncluster.net", + "defaultIconId": "clusters_nutrition_icon", + "parentId": null, + "createdAt": "2015-09-10T20:26:37.504Z", + "updatedAt": "2018-01-12T01:16:02.733Z", + "projectGlobalClusters": { + "projectVer": 117273, + "globalClus": 9, + "createdAt": "2018-11-08T15:32:50.315Z", + "updatedAt": "2018-11-08T15:32:50.316Z" + } + }, + { + "id": 11, + "hrinfoId": 11, + "type": "global", + "name": "Water Sanitation Hygiene", + "code": "WSH", + "homepage": "http://washcluster.net/", + "defaultIconId": "clusters_water_sanitation_and_hygiene_icon", + "parentId": null, + "createdAt": "2015-09-10T20:26:37.511Z", + "updatedAt": "2018-01-12T01:16:02.733Z", + "projectGlobalClusters": { + "projectVer": 117273, + "globalClus": 11, + "createdAt": "2018-11-11T14:52:19.143Z", + "updatedAt": "2018-11-11T14:52:19.145Z" + } + } + ], + "projectVersionPlans": [ + { + "id": 115747, + "planId": 668, + "projectVersionId": 117273, + "value": { + "optionConsensus": [ + { + "id": 4330, + "toId": 270 + }, + { + "id": 4332, + "toId": 270 + }, + { + "id": 4334 + } + ] + }, + "workflowStatusOptionId": 273, + "createdAt": "2018-11-08T15:32:40.004Z", + "updatedAt": "2019-02-26T09:38:38.004Z", + "comments": [], + "workflowStatusOption": { + "id": 273, + "planId": 668, + "type": "accepted", + "value": { + "label": { + "en": "accepted" + } + }, + "createdAt": "2018-10-09T08:19:19.277Z", + "updatedAt": "2018-10-09T08:19:19.277Z" + }, + "projectVersionFields": [ + { + "id": 283034, + "conditionFieldId": 1123, + "projectVersionPlanId": 115747, + "value": "0", + "createdAt": "2018-11-08T15:32:43.818Z", + "updatedAt": "2018-11-23T21:15:13.610Z" + }, + { + "id": 283035, + "conditionFieldId": 1125, + "projectVersionPlanId": 115747, + "value": "100", + "createdAt": "2018-11-08T15:32:43.818Z", + "updatedAt": "2018-11-23T21:15:13.610Z" + }, + { + "id": 283036, + "conditionFieldId": 1128, + "projectVersionPlanId": 115747, + "value": "0", + "createdAt": "2018-11-08T15:32:43.818Z", + "updatedAt": "2018-11-23T21:15:13.611Z" + }, + { + "id": 283026, + "conditionFieldId": 1129, + "projectVersionPlanId": 115747, + "value": "90", + "createdAt": "2018-11-08T15:32:43.817Z", + "updatedAt": "2018-11-23T21:15:13.607Z" + }, + { + "id": 283027, + "conditionFieldId": 1130, + "projectVersionPlanId": 115747, + "value": "8", + "createdAt": "2018-11-08T15:32:43.817Z", + "updatedAt": "2018-11-23T21:15:13.607Z" + }, + { + "id": 283028, + "conditionFieldId": 1131, + "projectVersionPlanId": 115747, + "value": "2", + "createdAt": "2018-11-08T15:32:43.817Z", + "updatedAt": "2018-11-23T21:15:13.608Z" + }, + { + "id": 283037, + "conditionFieldId": 1127, + "projectVersionPlanId": 115747, + "value": "30", + "createdAt": "2018-11-08T15:32:43.818Z", + "updatedAt": "2018-11-23T21:15:13.611Z" + }, + { + "id": 283038, + "conditionFieldId": 1126, + "projectVersionPlanId": 115747, + "value": "20", + "createdAt": "2018-11-08T15:32:43.818Z", + "updatedAt": "2018-11-23T21:15:13.611Z" + }, + { + "id": 283039, + "conditionFieldId": 1132, + "projectVersionPlanId": 115747, + "value": "false", + "createdAt": "2018-11-08T15:32:43.818Z", + "updatedAt": "2018-11-23T21:15:13.611Z" + }, + { + "id": 283041, + "conditionFieldId": 1134, + "projectVersionPlanId": 115747, + "value": null, + "createdAt": "2018-11-08T15:32:43.818Z", + "updatedAt": "2018-11-23T21:15:13.612Z" + }, + { + "id": 283040, + "conditionFieldId": 1133, + "projectVersionPlanId": 115747, + "value": null, + "createdAt": "2018-11-08T15:32:43.818Z", + "updatedAt": "2018-11-23T21:15:13.612Z" + }, + { + "id": 283030, + "conditionFieldId": 1119, + "projectVersionPlanId": 115747, + "value": "4.1. Renforcer l'accès à la prise en charge de la MAS et aux soins de santé primaires, préventifs et curatifs pour les enfants de moins de 5 ans ; \n-\tRenforcement en ressources humaines, intrants, équipements et matériel médical dans la zone d’intervention\n-\tFormation des agents de santé sur le protocole de prise en charge des maladies de l’enfant (PCIME)\n-\tPrise en charge de la MAS et des urgences pédiatriques au niveau d’UNT/pédiatrie (Hôpital) et des UNA (ambulatoire) dans la zone d’intervention\n-\tMise en place d’un système de référencements des cas compliqués dans la zone d’intervention\n-\tFormation des mamans à l’approche PB-mères pour la détection précoce \n-\tAssurer un paquet minimum de sanitation (WASH) sur les structures sanitaires appuyées (dotation en eau potable, gestion des déchets et réhabilitation des structures) pour assurer une bonne prise en charge médicale\n- Distribution des kits wash aux mères des enfants MAS admis dans le programme de PEC MAS\n-\tAmélioration de couverture vaccinale à travers l’appui au programme PEV \n-\tAppui à la réhabilitation des UNA et UNT \n-\tRéalisation d'une campagne de dépistage dans les aires de santé appuyés.\n4.2.\tAméliorer l’accès aux soins de santé des femmes en âge de procréer et contribuer à réduire la mortalité maternelle.\n-\tOffre du paquet de soins promotionnel, préventif et curatif pour les femmes enceintes\n-\tMise en place d’un système de référencements pour les grossesses compliquées vers les hôpitaux de district ou régionaux\n-\tFormation des équipes médicales au protocole national de soins obstétricaux et néonataux d’urgence (SONUB)\n-\tDistribution de compléments alimentaires aux femmes enceintes et allaitantes \n-\tSensibiliser les FEFA et les accompagnants d'enfants sur les pratiques familiales essentielles\n4.3.\tRenforcer la participation communautaire (familles, comités de gestion, relais communautaires) pour améliorer la couverture sanitaire ;\n-\tConstitution/redynamisation de réseaux de relais communautaires pour assurer le paquet d’activités communautaires dans toutes les régions d’intervention.\n-\tElargir la communication pour un changement de comportement souhaité axé sur les pratiques familiales Essentielles en Nutrition, Santé et hygiène\n4.4.\tMettre en place un dispositif de veille sanitaire et humanitaire avec une capacité de réponse aux urgences (déplacements de population, blessés, épidémies).\n-\tSuivi de la situation épidémiologique, sanitaire et humanitaire dans les districts de N'djamena \n-\tDéploiement de missions d’évaluation/action en fonction des urgences détectées et constitution d’une équipe d’intervention rapide.\nTel que l'énonce la Charte ALIMA \"le patient d'abord\", le bénéficiaire est au centre de tout dispositif d'intervention de l'organisation. L'ONG médicale entant donc exécuter son mandat de manière responsable en tenant en compte des spécificités ou non des populations qu'elle assiste et vis-à-vis desquelles elle sera redevable tout au long du cycle de projet. \nLes populations affectées sont considérées comme des \"partenaires\" et intégrées dans la programmation humanitaire, notamment dans l'identification des besoins, la conceptualisation, la mise en œuvre de la réponse, le suivi et l'évaluation de fin de cycle. \n-\tOrganiser 2 enquêtes de satisfactions des bénéficiaires \n-\tIncorporer systématiquement la notion de redevabilité dans sa programmation ; \n-\tAssurer la transparence à travers le partage d'informations avec la population affectée ; \n-\tMettre en place un mécanisme de collecte et traitement des feedbacks et plaintes ; \n-\tPromouvoir la participation et l'engagement de la population affectée afin de renforcer l'appropriation locale et la résilience ; \n-\tPromouvoir un système de planification, suivi et évaluation participatif\n", + "createdAt": "2018-11-08T15:32:43.817Z", + "updatedAt": "2018-11-23T21:15:13.609Z" + }, + { + "id": 283031, + "conditionFieldId": 1121, + "projectVersionPlanId": 115747, + "value": "false", + "createdAt": "2018-11-08T15:32:43.817Z", + "updatedAt": "2018-11-23T21:15:13.609Z" + }, + { + "id": 283032, + "conditionFieldId": 1122, + "projectVersionPlanId": 115747, + "value": "2 - Ce projet intègre de manière substantielle la protection transversale.", + "createdAt": "2018-11-08T15:32:43.817Z", + "updatedAt": "2018-11-23T21:15:13.609Z" + }, + { + "id": 283033, + "conditionFieldId": 1124, + "projectVersionPlanId": 115747, + "value": "0", + "createdAt": "2018-11-08T15:32:43.817Z", + "updatedAt": "2018-11-23T21:15:13.610Z" + }, + { + "id": 283029, + "conditionFieldId": 1118, + "projectVersionPlanId": 115747, + "value": "Au Tchad, l’insécurité alimentaire, les déplacements de population et les urgences sanitaires entraînent plus de 8 millions de personnes (presque deux tiers de la population tchadienne) dans une situation de vulnérabilité aiguë ou chronique (HNO 2018). Plus de 4,4 millions de personnes dont 52% de femmes sont affectées par l'insécurité alimentaire, dont 890 000 sont en insécurité alimentaire sévère majoritairement dans la bande sahélienne. Le taux de mortalité des enfants de moins de 5 ans est parmi les plus élevés au monde (133 pour 1000). La mortalité maternelle demeure parmi les plus élevées au monde avec 860 décès pour 100 000 naissances vivantes (INSEED, 2015) contre 506/100 000 en moyenne en Afrique sub-saharienne.\n\nLa couverture vaccinale de la rougeole au niveau national atteint 37% (Enquête de couverture de 2015). Le pays connaît actuellement une épidémie de rougeole avec près de 4000 cas enregistrés et 90 décès (bulletin épidemio S44). Cette épidemie de rougeole qui touche en majorité les enfants de moins de 5ans risque d'avoir un impact le statu nutritionnel de ces derniers dans les mois a venir. \nLa région de N'Djamena est très vulnérable d'un point de vue nutritionnel. Selon le Cluster Nutrition, 52 416 enfants de moins de 5 ans sont atteints de MAS en 2018 alors qu'en 2017 le nombre de cas était estimé à 25 653. Environ 17-20% des admissions MAS du pays au courant de premier semestre 2018, sont enregistrés dans la région sanitaire de Ndjamena (bulletin cluster nutrition juin 2018) Le pic saisonnier, généralement pendant la période de soudure (de juin à octobre), a débuté plus tôt, à la fin du mois de janvier. En octobre 2018, la capacité d’hospit n’a pas encore considérablement diminué. Le taux d’hospitalisation des enfants de N’Djamena souffrant de MAS et présentant des complications est l’un des plus élevés du pays (23% cette année). Cela a conduit les acteurs humanitaires en appui au Ministère de la santé à développer un plan d’urgence à N'djamena en 2018.\n \nLes résultats préliminaires de l’enquête SMART de septembre 2018 révèlent à nouveau une situation préoccupante au niveau national avec une prévalence de MAS de 4% et MAG de 13,5%. Au niveau régional, 12 régions (52,2%) présentent des prévalences supérieures au seuil d’urgence (15%) selon la classification de l’OMS avec 25% dans le Kanem. Malgré une amélioration suite aux interventions d’urgences qui sont toujours en cours, la prévalence de la MAS pour la région du Lac atteint 1,8% tandis que ce taux s'élève à 1,2% pour la région de N’Djamena. A ce titre les deux régions figurent toujours parmi les 16 régions prioritaires du cluster nutrition pour 2019. Le maintien des actions de préventions(campagnes de dépistages, formations des mères, programme MAM et cash pendant au moins la période soudure) et une reponse multisecteur et une couverture de la prise en charge au tour de 50% reste primordiale pour prévenir les complications chez les enfants MAS et désengorgés les différents UNT de la ville\n\nEn 2019, 1 261 017 personnes seront dans le besoin soit près de 9% de la population totale du pays. On estime à 856 683 le nombre de personnes qui seront dans les besoin dans les 16 régions prioritaires du pays, et 35% d’entre elles seront atteintes de MAS.\n\n", + "createdAt": "2018-11-08T15:32:43.817Z", + "updatedAt": "2018-11-23T21:15:13.608Z" + }, + { + "id": 283042, + "conditionFieldId": 1135, + "projectVersionPlanId": 115747, + "value": "4 (T): The project is principally about promoting gender equality, including across age groups.", + "createdAt": "2018-11-08T15:32:43.818Z", + "updatedAt": "2018-11-23T21:15:13.612Z" + } + ] + } + ], + "budgetSegments": [ + { + "id": 20796, + "projectVersionId": 117273, + "name": "general", + "createdAt": "2018-11-08T16:53:03.935Z", + "updatedAt": "2018-11-23T21:20:06.125Z", + "breakdown": [ + { + "id": 112450, + "budgetSegmentId": 20796, + "name": "RH PROGRAMME", + "content": { + "amount": 1780470, + "percent": 41.3 + }, + "type": "general", + "createdAt": "2018-11-23T21:20:06.131Z", + "updatedAt": "2018-11-23T21:20:06.131Z", + "entities": [ + { + "id": 200888, + "budgetSegmentBreakdownId": 112450, + "objectType": "projectVersion", + "objectId": 117273, + "createdAt": "2018-11-23T21:20:06.155Z", + "updatedAt": "2018-11-23T21:20:06.155Z" + } + ] + }, + { + "id": 112451, + "budgetSegmentId": 20796, + "name": "RH SUPPORT", + "content": { + "amount": 461213, + "percent": 10.7 + }, + "type": "general", + "createdAt": "2018-11-23T21:20:06.131Z", + "updatedAt": "2018-11-23T21:20:06.131Z", + "entities": [ + { + "id": 200889, + "budgetSegmentBreakdownId": 112451, + "objectType": "projectVersion", + "objectId": 117273, + "createdAt": "2018-11-23T21:20:06.158Z", + "updatedAt": "2018-11-23T21:20:06.158Z" + } + ] + }, + { + "id": 112452, + "budgetSegmentId": 20796, + "name": "FONCTIONNEMENT", + "content": { + "amount": 410000, + "percent": 9.51 + }, + "type": "general", + "createdAt": "2018-11-23T21:20:06.132Z", + "updatedAt": "2018-11-23T21:20:06.132Z", + "entities": [ + { + "id": 200890, + "budgetSegmentBreakdownId": 112452, + "objectType": "projectVersion", + "objectId": 117273, + "createdAt": "2018-11-23T21:20:06.162Z", + "updatedAt": "2018-11-23T21:20:06.162Z" + } + ] + }, + { + "id": 112453, + "budgetSegmentId": 20796, + "name": "ACTIVITE MED NUT", + "content": { + "amount": 1198525, + "percent": 27.8 + }, + "type": "general", + "createdAt": "2018-11-23T21:20:06.132Z", + "updatedAt": "2018-11-23T21:20:06.132Z", + "entities": [ + { + "id": 200891, + "budgetSegmentBreakdownId": 112453, + "objectType": "projectVersion", + "objectId": 117273, + "createdAt": "2018-11-23T21:20:06.166Z", + "updatedAt": "2018-11-23T21:20:06.166Z" + } + ] + }, + { + "id": 112454, + "budgetSegmentId": 20796, + "name": "TRANSPORT", + "content": { + "amount": 358290, + "percent": 8.31 + }, + "type": "general", + "createdAt": "2018-11-23T21:20:06.132Z", + "updatedAt": "2018-11-23T21:20:06.132Z", + "entities": [ + { + "id": 200892, + "budgetSegmentBreakdownId": 112454, + "objectType": "projectVersion", + "objectId": 117273, + "createdAt": "2018-11-23T21:20:06.169Z", + "updatedAt": "2018-11-23T21:20:06.169Z" + } + ] + }, + { + "id": 112455, + "budgetSegmentId": 20796, + "name": "EQUIPEMENT", + "content": { + "amount": 75122, + "percent": 1.74 + }, + "type": "general", + "createdAt": "2018-11-23T21:20:06.132Z", + "updatedAt": "2018-11-23T21:20:06.132Z", + "entities": [ + { + "id": 200893, + "budgetSegmentBreakdownId": 112455, + "objectType": "projectVersion", + "objectId": 117273, + "createdAt": "2018-11-23T21:20:06.173Z", + "updatedAt": "2018-11-23T21:20:06.173Z" + } + ] + }, + { + "id": 112456, + "budgetSegmentId": 20796, + "name": "VISIBILITE COMMUNICATION", + "content": { + "amount": 27661, + "percent": 0.64 + }, + "type": "general", + "createdAt": "2018-11-23T21:20:06.132Z", + "updatedAt": "2018-11-23T21:20:06.132Z", + "entities": [ + { + "id": 200894, + "budgetSegmentBreakdownId": 112456, + "objectType": "projectVersion", + "objectId": 117273, + "createdAt": "2018-11-23T21:20:06.176Z", + "updatedAt": "2018-11-23T21:20:06.176Z" + } + ] + } + ] + }, + { + "id": 31978, + "projectVersionId": 117273, + "name": "segmentation by organization", + "createdAt": "2018-11-23T21:20:06.126Z", + "updatedAt": "2018-11-23T21:20:06.126Z", + "breakdown": [ + { + "id": 112457, + "budgetSegmentId": 31978, + "name": "Eau, hygiène et assainissement", + "content": { + "amount": 258677 + }, + "type": null, + "createdAt": "2018-11-23T21:20:06.147Z", + "updatedAt": "2018-11-23T21:20:06.147Z", + "entities": [ + { + "id": 200895, + "budgetSegmentBreakdownId": 112457, + "objectType": "organization", + "objectId": 1937, + "createdAt": "2018-11-23T21:20:06.179Z", + "updatedAt": "2018-11-23T21:20:06.179Z" + }, + { + "id": 200901, + "budgetSegmentBreakdownId": 112457, + "objectType": "globalCluster", + "objectId": 11, + "createdAt": "2018-11-23T21:20:06.393Z", + "updatedAt": "2018-11-23T21:20:06.393Z" + }, + { + "id": 200898, + "budgetSegmentBreakdownId": 112457, + "objectType": "governingEntity", + "objectId": 4330, + "createdAt": "2018-11-23T21:20:06.315Z", + "updatedAt": "2018-11-23T21:20:06.315Z" + } + ] + }, + { + "id": 112458, + "budgetSegmentId": 31978, + "name": "Nutrition", + "content": { + "amount": 2629881 + }, + "type": null, + "createdAt": "2018-11-23T21:20:06.147Z", + "updatedAt": "2018-11-23T21:20:06.147Z", + "entities": [ + { + "id": 200899, + "budgetSegmentBreakdownId": 112458, + "objectType": "governingEntity", + "objectId": 4332, + "createdAt": "2018-11-23T21:20:06.319Z", + "updatedAt": "2018-11-23T21:20:06.319Z" + }, + { + "id": 200902, + "budgetSegmentBreakdownId": 112458, + "objectType": "globalCluster", + "objectId": 9, + "createdAt": "2018-11-23T21:20:06.399Z", + "updatedAt": "2018-11-23T21:20:06.399Z" + }, + { + "id": 200896, + "budgetSegmentBreakdownId": 112458, + "objectType": "organization", + "objectId": 1937, + "createdAt": "2018-11-23T21:20:06.184Z", + "updatedAt": "2018-11-23T21:20:06.184Z" + } + ] + }, + { + "id": 112459, + "budgetSegmentId": 31978, + "name": "Santé", + "content": { + "amount": 1422723 + }, + "type": null, + "createdAt": "2018-11-23T21:20:06.147Z", + "updatedAt": "2018-11-23T21:20:06.147Z", + "entities": [ + { + "id": 200897, + "budgetSegmentBreakdownId": 112459, + "objectType": "organization", + "objectId": 1937, + "createdAt": "2018-11-23T21:20:06.187Z", + "updatedAt": "2018-11-23T21:20:06.187Z" + }, + { + "id": 200903, + "budgetSegmentBreakdownId": 112459, + "objectType": "globalCluster", + "objectId": 7, + "createdAt": "2018-11-23T21:20:06.404Z", + "updatedAt": "2018-11-23T21:20:06.404Z" + }, + { + "id": 200900, + "budgetSegmentBreakdownId": 112459, + "objectType": "governingEntity", + "objectId": 4334, + "createdAt": "2018-11-23T21:20:06.323Z", + "updatedAt": "2018-11-23T21:20:06.323Z" + } + ] + } + ] + } + ], + "locations": [ + { + "id": 44, + "iso3": "TCD", + "name": "Chad", + "adminLevel": 0, + "pcode": "TD", + "latitude": 15.357404949384, + "longitude": 18.663995559345, + "parentId": null + }, + { + "id": 25817214, + "iso3": null, + "name": "NDjamena", + "adminLevel": 1, + "pcode": "TD18", + "latitude": 12.1202656928208, + "longitude": 15.0515900290148, + "parentId": 44 + }, + { + "id": 25817278, + "iso3": null, + "name": "NDjamena", + "adminLevel": 2, + "pcode": "TD1801", + "latitude": 12.1202656928208, + "longitude": 15.0515900290148, + "parentId": 25817214 + } + ], + "attachments": [ + { + "projectVersionId": 117273, + "attachmentId": 5557, + "attachmentVersionId": 1350, + "total": 6, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + 6 + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-08T16:04:38.812Z", + "updatedAt": "2018-11-23T21:19:57.033Z" + }, + { + "projectVersionId": 117273, + "attachmentId": 5558, + "attachmentVersionId": 1393, + "total": 2, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + 2, + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-14T09:26:11.277Z", + "updatedAt": "2018-11-23T21:19:57.036Z" + }, + { + "projectVersionId": 117273, + "attachmentId": 5560, + "attachmentVersionId": 1431, + "total": 25, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + 9, + 16, + 25 + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-08T16:04:38.815Z", + "updatedAt": "2018-11-23T21:19:57.039Z" + }, + { + "projectVersionId": 117273, + "attachmentId": 5935, + "attachmentVersionId": 1641, + "total": 27186, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + 7886, + 7886 + ], + [ + "", + 1250, + 1250 + ], + [ + "", + 6250, + 6250 + ], + [ + "", + 11800, + 11800 + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-08T16:04:38.826Z", + "updatedAt": "2018-11-23T21:19:57.061Z" + }, + { + "projectVersionId": 117273, + "attachmentId": 5575, + "attachmentVersionId": 623, + "total": 40153, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + 19273, + 20880, + 40153 + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-08T16:04:38.807Z", + "updatedAt": "2018-11-23T21:19:57.029Z" + }, + { + "projectVersionId": 117273, + "attachmentId": 5788, + "attachmentVersionId": 681, + "total": 43660, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + 21393, + 22267, + 43660 + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-11T15:06:13.233Z", + "updatedAt": "2018-11-23T21:19:57.074Z" + }, + { + "projectVersionId": 117273, + "attachmentId": 5936, + "attachmentVersionId": 2646, + "total": 53, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + 1, + 4, + 5 + ], + [ + 3, + 15, + 18 + ], + [ + 2, + 10, + 12 + ], + [ + 3, + 15, + 18 + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-08T16:04:38.828Z", + "updatedAt": "2018-11-23T21:19:57.065Z" + }, + { + "projectVersionId": 117273, + "attachmentId": 5938, + "attachmentVersionId": 2688, + "total": 13593, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + 2000, + 2200, + 4200 + ], + [ + 1000, + 1300, + 2300 + ], + [ + 525, + 750, + 1275 + ], + [ + 3000, + 2818, + 5818 + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-08T16:04:38.830Z", + "updatedAt": "2018-11-23T21:19:57.068Z" + }, + { + "projectVersionId": 117273, + "attachmentId": 5939, + "attachmentVersionId": 2703, + "total": 15000, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + 1900, + 2100, + 4000 + ], + [ + 1400, + 1600, + 3000 + ], + [ + 1300, + 1700, + 3000 + ], + [ + 1400, + 3600, + 5000 + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-08T16:04:38.832Z", + "updatedAt": "2018-11-23T21:19:57.071Z" + }, + { + "projectVersionId": 117273, + "attachmentId": 5566, + "attachmentVersionId": 4799, + "total": 20153, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + 9273, + 10880, + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-08T16:04:38.819Z", + "updatedAt": "2018-11-23T21:19:57.049Z" + }, + { + "projectVersionId": 117273, + "attachmentId": 5568, + "attachmentVersionId": 4943, + "total": 3280, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + 3280 + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + 5698 + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-08T16:04:38.821Z", + "updatedAt": "2018-11-23T21:19:57.052Z" + }, + { + "projectVersionId": 117273, + "attachmentId": 5825, + "attachmentVersionId": 5258, + "total": 25315, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + 12404, + 12911, + 25315 + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-11T15:06:13.237Z", + "updatedAt": "2018-11-23T21:19:57.080Z" + }, + { + "projectVersionId": 117273, + "attachmentId": 5951, + "attachmentVersionId": 5419, + "total": 18345, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + 8989, + 9356, + 18345 + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-11T15:06:13.242Z", + "updatedAt": "2018-11-23T21:19:57.087Z" + }, + { + "projectVersionId": 117273, + "attachmentId": 5957, + "attachmentVersionId": 5422, + "total": 18345, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + 8989, + 9356, + 18345 + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-11T15:06:13.240Z", + "updatedAt": "2018-11-23T21:19:57.083Z" + }, + { + "projectVersionId": 117273, + "attachmentId": 6260, + "attachmentVersionId": 7709, + "total": 40832, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + 7884, + 32948, + 40832 + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-08T16:04:38.823Z", + "updatedAt": "2018-11-23T21:19:57.056Z" + } + ], + "contacts": [ + { + "id": 13459, + "projectVersionId": 117273, + "name": "Mamadou BAH", + "email": "reporting@tchad.alima.ngo", + "website": "", + "phoneNumber": "+23593125894", + "participantId": null, + "createdAt": "2018-11-08T15:13:21.452Z", + "updatedAt": "2018-11-23T21:11:39.734Z" + }, + { + "id": 13458, + "projectVersionId": 117273, + "name": "Alexis DERMBAYE", + "email": "cg.as@tchad.alima.ngo", + "website": "", + "phoneNumber": "+23568702709", + "participantId": null, + "createdAt": "2018-11-08T15:13:21.452Z", + "updatedAt": "2018-11-23T21:11:39.735Z" + }, + { + "id": 13457, + "projectVersionId": 117273, + "name": "Hassan ISSA", + "email": "cdm@tchad.alima.ngo", + "website": "", + "phoneNumber": "+22368702711", + "participantId": null, + "createdAt": "2018-11-08T15:13:21.452Z", + "updatedAt": "2018-11-23T21:11:39.725Z" + } + ] } ], - "contacts":null, - "globalClusters":[ - { - "id":7, - "hrinfoId":7, - "type":"global", - "name":"Health", - "code":"HEA", - "homepage":"http://www.who.int/hac/global_health_cluster/en/", - "createdAt":"2015-09-10T20:26:37.494+00:00", - "updatedAt":"2018-01-12T01:16:02.732+00:00", - "parentId":null, - "defaultIconId":"clusters_health_icon" - } - ], - "governingEntities":[ - { - "id":3347, - "customReference":"3347", - "value":{ - "description":null, - "icon":"clusters_food_security_icon", - "categories":[ - - ], - "orderNumber":8 - }, - "planId":532, - "createdAt":"2017-01-14T02:13:31.756+00:00", - "updatedAt":"2018-01-12T01:15:14.102+00:00", - "entityPrototypeId":1921, - "name":"Sécurité Alimentaire" - } - ], - "locations":[ - { - "id":44, - "hrinfoId":224, - "name":"Chad", - "adminLevel":0, - "latitude":15.357404949384, - "longitude":18.663995559345, - "createdAt":"2015-09-10T20:25:09.701+00:00", - "updatedAt":"2017-06-21T00:22:37.029+00:00", - "parentId":null, - "iso3":"TCD", - "pcode":null, - "status":"active", - "validOn":null, - "geojson":null - } - ], - "organizations":[ - { - "id":8501, - "name":"ACF - France", - "createdAt":"2017-01-14T00:57:50.001+00:00", - "updatedAt":"2017-12-09T00:03:39.717371+00:00", - "abbreviation":"ACF - France", - "url":null, - "parentID":4536, - "nativeName":"Action Contre la Faim - France", - "comments":null, - "collectiveInd":false, - "active":true - } - ], - "plans":[ - { - "id":532, - "name":"Chad 2017", - "startDate":"2017-01-01T00:00:00+00:00", - "endDate":"2017-12-31T00:00:00+00:00", - "createdAt":"2017-01-14T00:52:56.02+00:00", - "updatedAt":"2017-07-05T10:26:21.24+00:00", - "planStructureId":1, - "active":true, - "launchDate":"2016-12-01T00:00:00+00:00", - "comments":null, - "currentReportingPeriodId":null, - "restricted":false, - "currentStateId":1683, - "code":"HTCD17", - "planStatus":"editable" - } - ], - "meta":{ - "language":"en" - } + "projectVersion": { + "id": 117273, + "code": "HTCD19-HEA;NUT;WSH-154060-1", + "projectId": 154060, + "version": 1, + "name": "Appui à la prise en charge médico-nutritionnelle des enfants de moins de 5 ans, des femmes enceintes et femmes allaitantes dans la région sanitaire de N'Djamena.", + "currentRequestedFunds": "4311281", + "lastGeneratedPdf": "2018-11-26T14:03:44.510Z", + "startDate": "2019-01-01T00:00:00.000Z", + "endDate": "2019-12-31T00:00:00.000Z", + "objective": "ALIMA et son partenaire Alerte Santé auront pour objectif de contribuer à la réduction de la mortalité des enfants de moins de 5 ans dans la région sanitaire de N'Djamena à travers l'amélioration des statuts sanitaires et nutritionnels de 80985 enfants de moins de 5 ans et femmes enceintes et allaitantes (27157 hommes et 53828 femmes) à travers les activités de prise en charge, de sensibilisation à la malnutrition aigüe sévère et le renforcement des capacités de 78 professionnels de santé dans les zones d’intervention dont 18 hommes et 60 femmes. \nDans la région sanitaire de N'Djamena, le projet poursuivra l'appui à la prise en charge de la MAS en en hospitalisation dans l'UNT HATC et dans la nouvelle UNT de Gozattor. La prise en charge des enfants MAS en ambulatoire s'effectuera dans les 16 UNA soutenues en 2018. Cela se fera par le biais du système de circuit unique permettant le dépistage systématique de la MAS de tous les enfants de moins de 5ans se présentant dans le centre de santé et le rattrapage de la vaccination pour la mère et l'enfant. Des campagnes de dépistages de masse couplés au formation PB mères seront intégrés dans le projet afin d’assurer une prise en charge précoce et préventive. \nTel que l'énonce la Charte ALIMA \"le patient d'abord\", le bénéficiaire est au centre de tout dispositif d'intervention de l'organisation. L'ONG médicale entend donc exécuter son mandat de manière responsable en tenant en compte des spécificités ou non des populations qu'elle assiste et vis-à-vis desquelles elle sera redevable tout au long du cycle de projet. \nLes populations affectés sont considérées comme des \"partenaires\" et intégrées dans la programmation humanitaire, notamment dans l'identification des besoins, le conceptualisation, la mise en oeuvre de la réponse, le suivi et l'évaluation de fin de cycle. \nAinsi, ALIMA s'engage à :\n- incorporer systématiquement la notion de redevabilité dans sa programmation; \n- assurer la transparence à travers le partage d'informations avec la population affectée; \n- mettre en place un mécanisme de collecte et traitement des feedbacks et plaintes; \n- promouvoir la participation et l'engagement de la population affectée afin de renforcer l'appropriation locale et la résilience; \n- promouvoir un système de planification, suivi et évaluation participatif. \n", + "partners": "Alerte santé", + "implementationStatus": "published", + "createdAt": "2018-11-08T15:13:16.147Z", + "updatedAt": "2019-02-26T09:40:10.681Z", + "categories": [], + "organizations": [ + { + "id": 1937, + "name": "Alliance for International Medical Action", + "nativeName": "The Alliance for International Medical Action", + "abbreviation": "ALIMA", + "url": "www.alimaong.org", + "parentID": null, + "comments": null, + "active": true, + "collectiveInd": false, + "createdAt": "2017-01-14T00:53:54.170Z", + "updatedAt": "2017-12-09T00:03:39.717Z", + "projectVersionOrganization": { + "projec": 117273, + "organi": 1937, + "create": "2018-11-08T15:13:30.626Z", + "update": "2018-11-08T15:13:30.626Z" + } + } + ], + "planEntities": [ + { + "id": 2969, + "planId": 668, + "entityPrototypeId": 2336, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-30T08:59:08.917Z", + "updatedAt": "2018-10-30T09:25:49.609Z", + "deletedAt": null, + "projectVersionPlanEntity": { + "projectVe": 117273, + "planEntit": 2381, + "createdAt": "2018-11-08T16:04:36.157Z", + "updatedAt": "2018-11-08T16:04:36.157Z" + }, + "planEntityVersion": { + "id": 2381, + "planEntityId": 2969, + "customReference": "9", + "value": { + "type": { + "en": { + "singular": "Cluster Activity", + "plural": "Cluster Activities" + } + }, + "categories": [], + "description": "Renforcer les capacités des prestataires et l’accessibilité des structures pour offre des soins de qualité aux femmes enceintes et allaitantes, et aux accouchées y compris les références.", + "support": [ + { + "planEntityIds": [ + 2936 + ] + } + ] + }, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVers": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-30T08:59:08.917Z", + "updatedAt": "2018-10-30T09:25:49.609Z" + } + }, + { + "id": 2961, + "planId": 668, + "entityPrototypeId": 2336, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-29T16:47:37.355Z", + "updatedAt": "2018-10-30T09:25:42.632Z", + "deletedAt": null, + "projectVersionPlanEntity": { + "projectVe": 117273, + "planEntit": 2405, + "createdAt": "2018-11-08T16:04:36.157Z", + "updatedAt": "2018-11-08T16:04:36.157Z" + }, + "planEntityVersion": { + "id": 2405, + "planEntityId": 2961, + "customReference": "1", + "value": { + "type": { + "en": { + "singular": "Cluster Activity", + "plural": "Cluster Activities" + } + }, + "categories": [], + "description": "Fournir et assurer l’approvisionnent en médicaments et autres intrants essentiels pour assurer la prise en charge médicale et la référence des populations vulnérables dans les centres de santé, les sites de retournés et réfugies à travers des cliniques mobiles ainsi que les soins gratuits dans les hôpitaux des localités d’accueils.", + "support": [ + { + "planEntityIds": [ + 2934 + ] + } + ] + }, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVers": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-29T16:47:37.355Z", + "updatedAt": "2018-10-30T09:25:42.632Z" + } + }, + { + "id": 2968, + "planId": 668, + "entityPrototypeId": 2336, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-30T08:42:54.789Z", + "updatedAt": "2018-10-30T09:25:47.792Z", + "deletedAt": null, + "projectVersionPlanEntity": { + "projectVe": 117273, + "planEntit": 2407, + "createdAt": "2018-11-08T16:04:36.157Z", + "updatedAt": "2018-11-08T16:04:36.157Z" + }, + "planEntityVersion": { + "id": 2407, + "planEntityId": 2968, + "customReference": "8", + "value": { + "type": { + "en": { + "singular": "Cluster Activity", + "plural": "Cluster Activities" + } + }, + "categories": [], + "description": "Renforcer la sensibilisation des communautés sur leur droit et prérogative sur les services qui leurs sont offerts.", + "support": [ + { + "planEntityIds": [ + 2935 + ] + } + ] + }, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVers": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-30T08:42:54.789Z", + "updatedAt": "2018-10-30T09:25:47.792Z" + } + }, + { + "id": 2962, + "planId": 668, + "entityPrototypeId": 2336, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-29T17:01:40.983Z", + "updatedAt": "2018-10-30T09:25:42.812Z", + "deletedAt": null, + "projectVersionPlanEntity": { + "projectVe": 117273, + "planEntit": 2435, + "createdAt": "2018-11-14T09:26:09.816Z", + "updatedAt": "2018-11-14T09:26:09.816Z" + }, + "planEntityVersion": { + "id": 2435, + "planEntityId": 2962, + "customReference": "2", + "value": { + "type": { + "en": { + "singular": "Cluster Activity", + "plural": "Cluster Activities" + } + }, + "categories": [], + "description": "Organiser des enquêtes de satisfaction des soins offerts et mettre en place des mécanismes de plaintes accessibles, efficaces et confidentiels.", + "support": [ + { + "planEntityIds": [ + 2934 + ] + } + ] + }, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVers": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-29T17:01:40.983Z", + "updatedAt": "2018-10-30T09:25:42.812Z" + } + }, + { + "id": 2964, + "planId": 668, + "entityPrototypeId": 2336, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-29T17:29:31.002Z", + "updatedAt": "2018-10-30T09:25:44.680Z", + "deletedAt": null, + "projectVersionPlanEntity": { + "projectVe": 117273, + "planEntit": 2461, + "createdAt": "2018-11-08T16:04:36.157Z", + "updatedAt": "2018-11-08T16:04:36.157Z" + }, + "planEntityVersion": { + "id": 2461, + "planEntityId": 2964, + "customReference": "4", + "value": { + "type": { + "en": { + "singular": "Cluster Activity", + "plural": "Cluster Activities" + } + }, + "categories": [], + "description": "Recycler le personnel médical et les relais communautaires à renseigner les outils de collecte d’information sur les maladies à potentiel épidémique dans tous les districts.", + "support": [ + { + "planEntityIds": [ + 2935 + ], + "entityPrototypeId": 2333 + } + ] + }, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVers": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-29T17:29:31.002Z", + "updatedAt": "2018-10-30T09:25:44.680Z" + } + }, + { + "id": 3097, + "planId": 668, + "entityPrototypeId": 2336, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-31T16:03:09.955Z", + "updatedAt": "2018-11-02T17:57:33.077Z", + "deletedAt": null, + "projectVersionPlanEntity": { + "projectVe": 117273, + "planEntit": 2643, + "createdAt": "2018-11-11T15:06:11.982Z", + "updatedAt": "2018-11-11T15:06:11.982Z" + }, + "planEntityVersion": { + "id": 2643, + "planEntityId": 3097, + "customReference": "1", + "value": { + "type": { + "en": { + "singular": "Cluster Activity", + "plural": "Cluster Activities" + } + }, + "categories": [], + "description": "Accès à l'eau potable des populations affectées selon les normes et standards (SPHERE et national).", + "support": [ + { + "planEntityIds": [ + 2934 + ] + } + ] + }, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVers": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-31T16:03:09.955Z", + "updatedAt": "2018-11-02T17:57:33.077Z" + } + }, + { + "id": 3155, + "planId": 668, + "entityPrototypeId": 2336, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-11-02T09:32:15.246Z", + "updatedAt": "2018-11-03T13:05:55.162Z", + "deletedAt": null, + "projectVersionPlanEntity": { + "projectVe": 117273, + "planEntit": 2721, + "createdAt": "2018-11-08T16:04:36.157Z", + "updatedAt": "2018-11-08T16:04:36.157Z" + }, + "planEntityVersion": { + "id": 2721, + "planEntityId": 3155, + "customReference": "2", + "value": { + "type": { + "en": { + "singular": "Cluster Activity", + "plural": "Cluster Activities" + } + }, + "categories": [], + "description": "Formation initial/recyclage de 850 personnel soignant dans les unités nutritionnelles sur le protocole national", + "support": [ + { + "planEntityIds": [ + 2935 + ], + "entityPrototypeId": 2333 + } + ] + }, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVers": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-11-02T09:32:15.246Z", + "updatedAt": "2018-11-03T13:05:55.162Z" + } + }, + { + "id": 3154, + "planId": 668, + "entityPrototypeId": 2336, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-11-02T09:29:13.232Z", + "updatedAt": "2018-11-03T13:05:54.752Z", + "deletedAt": null, + "projectVersionPlanEntity": { + "projectVe": 117273, + "planEntit": 2726, + "createdAt": "2018-11-08T16:04:36.157Z", + "updatedAt": "2018-11-08T16:04:36.157Z" + }, + "planEntityVersion": { + "id": 2726, + "planEntityId": 3154, + "customReference": "1", + "value": { + "type": { + "en": { + "singular": "Cluster Activity", + "plural": "Cluster Activities" + } + }, + "categories": [], + "description": "Sensibilisation portant sur les pratiques familiales essentielles (PFE) pour les mères d’enfants malnutris et pour les femmes enceintes/allaitantes admises à la prise en charge nutritionnelle.", + "support": [ + { + "planEntityIds": [ + 2935 + ], + "entityPrototypeId": 2333 + } + ] + }, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVers": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-11-02T09:29:13.232Z", + "updatedAt": "2018-11-03T13:05:54.752Z" + } + }, + { + "id": 3159, + "planId": 668, + "entityPrototypeId": 2336, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-11-02T10:29:25.628Z", + "updatedAt": "2018-11-02T19:29:51.666Z", + "deletedAt": null, + "projectVersionPlanEntity": { + "projectVe": 117273, + "planEntit": 2730, + "createdAt": "2018-11-11T15:06:11.982Z", + "updatedAt": "2018-11-11T15:06:11.982Z" + }, + "planEntityVersion": { + "id": 2730, + "planEntityId": 3159, + "customReference": "5", + "value": { + "type": { + "en": { + "singular": "Cluster Activity", + "plural": "Cluster Activities" + } + }, + "categories": [], + "description": "Amélioration de la prise en charge nutritionnelle a travers la délivrance du paquet minimum d'activités WASH pour les couples mère-enfants MAS et les centres nutritionnels (UNA et UNT).", + "support": [ + { + "planEntityIds": [ + 2934 + ] + } + ] + }, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVers": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-11-02T10:29:25.628Z", + "updatedAt": "2018-11-02T19:29:51.666Z" + } + }, + { + "id": 3157, + "planId": 668, + "entityPrototypeId": 2336, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-11-02T09:37:08.826Z", + "updatedAt": "2018-11-03T13:05:53.411Z", + "deletedAt": null, + "projectVersionPlanEntity": { + "projectVe": 117273, + "planEntit": 2731, + "createdAt": "2018-11-08T16:04:36.157Z", + "updatedAt": "2018-11-08T16:04:36.157Z" + }, + "planEntityVersion": { + "id": 2731, + "planEntityId": 3157, + "customReference": "4", + "value": { + "type": { + "en": { + "singular": "Cluster Activity", + "plural": "Cluster Activities" + } + }, + "categories": [], + "description": "Prise en charge de la malnutrition aigue sévère", + "support": [ + { + "planEntityIds": [ + 2934 + ], + "entityPrototypeId": 2333 + } + ] + }, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVers": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-11-02T09:37:08.826Z", + "updatedAt": "2018-11-03T13:05:53.411Z" + } + }, + { + "id": 3158, + "planId": 668, + "entityPrototypeId": 2336, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-11-02T09:38:09.300Z", + "updatedAt": "2018-11-03T13:05:56.258Z", + "deletedAt": null, + "projectVersionPlanEntity": { + "projectVe": 117273, + "planEntit": 2755, + "createdAt": "2018-11-08T16:04:36.157Z", + "updatedAt": "2018-11-08T16:04:36.157Z" + }, + "planEntityVersion": { + "id": 2755, + "planEntityId": 3158, + "customReference": "5", + "value": { + "type": { + "en": { + "singular": "Cluster Activity", + "plural": "Cluster Activities" + } + }, + "categories": [], + "description": "Prise en charge de la malnutrition aigue moderee", + "support": [ + { + "planEntityIds": [ + 2934 + ], + "entityPrototypeId": 2333 + } + ] + }, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVers": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-11-02T09:38:09.300Z", + "updatedAt": "2018-11-03T13:05:56.258Z" + } + } + ], + "governingEntities": [ + { + "id": 4330, + "planId": 668, + "entityPrototypeId": 2332, + "entityType": "CL", + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-08T16:32:41.266Z", + "updatedAt": "2019-07-01T13:53:52.106Z", + "deletedAt": null, + "projectVersionGoverningEntity": {}, + "governingEntityVersion": { + "id": 4011, + "govern": 4330, + "name": "Eau, hygiène et assainissement", + "custom": "2", + "value": { + "icon": "clusters_water_sanitation_and_hygiene_icon", + "categories": [], + "orderNumber": 1 + }, + "overri": false, + "curren": true, + "latest": true, + "versio": [ + "1.0" + ], + "create": "2018-10-08T16:32:41.266Z", + "update": "2019-07-01T13:53:52.106Z" + } + }, + { + "id": 4332, + "planId": 668, + "entityPrototypeId": 2332, + "entityType": "CL", + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-08T16:33:08.399Z", + "updatedAt": "2019-07-01T13:53:57.330Z", + "deletedAt": null, + "projectVersionGoverningEntity": {}, + "governingEntityVersion": { + "id": 4013, + "govern": 4332, + "name": "Nutrition", + "custom": "4", + "value": { + "icon": "clusters_nutrition_icon", + "categories": [], + "orderNumber": 3 + }, + "overri": false, + "curren": true, + "latest": true, + "versio": [ + "1.0" + ], + "create": "2018-10-08T16:33:08.399Z", + "update": "2019-07-01T13:53:57.330Z" + } + }, + { + "id": 4334, + "planId": 668, + "entityPrototypeId": 2332, + "entityType": "CL", + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-08T16:34:00.048Z", + "updatedAt": "2019-07-01T13:54:03.629Z", + "deletedAt": null, + "projectVersionGoverningEntity": {}, + "governingEntityVersion": { + "id": 4015, + "govern": 4334, + "name": "Santé", + "custom": "6", + "value": { + "icon": "clusters_health_icon", + "categories": [], + "orderNumber": 5 + }, + "overri": false, + "curren": true, + "latest": true, + "versio": [ + "1.0" + ], + "create": "2018-10-08T16:34:00.048Z", + "update": "2019-07-01T13:54:03.629Z" + } + } + ], + "plans": [ + { + "id": 668, + "restricted": false, + "revisionState": "projectsOnly", + "createdAt": "2018-10-08T16:30:43.446Z", + "updatedAt": "2019-07-16T10:48:51.695Z", + "projectVersionPlan": { + "id": 115747, + "planId": 668, + "projectVersionId": 117273, + "value": { + "optionConsensus": [ + { + "id": 4330, + "toId": 270 + }, + { + "id": 4332, + "toId": 270 + }, + { + "id": 4334 + } + ] + }, + "workflowStatusOptionId": 273, + "createdAt": "2018-11-08T15:32:40.004Z", + "updatedAt": "2019-02-26T09:38:38.004Z" + }, + "planVersion": { + "id": 585, + "planId": 668, + "name": "Chad 2019", + "startDate": "2019-01-01T00:00:00.000Z", + "endDate": "2019-12-31T00:00:00.000Z", + "comments": null, + "isForHPCProjects": true, + "code": "HTCD19", + "customLocationCode": null, + "currentReportingPeriodId": 910, + "currentVersion": true, + "latestVersion": true, + "latestTaggedVersion": true, + "versionTags": [ + "1.0" + ], + "createdAt": "2018-10-08T16:30:43.446Z", + "updatedAt": "2019-06-25T21:32:11.982Z" + }, + "procedureEntityPrototypes": [ + { + "id": 11, + "planId": 668, + "entityPrototypeId": 2336, + "createdAt": "2019-02-14T00:29:48.290Z", + "updatedAt": "2019-02-14T00:29:48.290Z" + } + ], + "workflowStatusOptions": [ + { + "id": 267, + "planId": 668, + "type": "notSubmitted", + "value": { + "label": { + "en": "not submitted" + } + }, + "createdAt": "2018-10-09T08:19:19.233Z", + "updatedAt": "2018-10-09T08:19:19.233Z", + "previousSteps": [ + { + "id": 454, + "fromId": 272, + "toId": 267, + "value": { + "label": { + "en": "Unsubmit project" + } + }, + "createdAt": "2018-10-09T08:19:19.340Z", + "updatedAt": "2018-10-09T08:19:19.340Z" + }, + { + "id": 448, + "fromId": 268, + "toId": 267, + "value": { + "label": { + "en": "Unsubmit project" + } + }, + "createdAt": "2018-10-09T08:19:19.293Z", + "updatedAt": "2018-10-09T08:19:19.293Z" + } + ], + "nextSteps": [ + { + "id": 447, + "fromId": 267, + "toId": 268, + "value": { + "label": { + "en": "Submit to plan" + } + }, + "createdAt": "2018-10-09T08:19:19.281Z", + "updatedAt": "2018-10-09T08:19:19.281Z" + } + ] + }, + { + "id": 268, + "planId": 668, + "type": "submitted", + "value": { + "label": { + "en": "submitted to plan" + } + }, + "createdAt": "2018-10-09T08:19:19.244Z", + "updatedAt": "2018-10-09T08:19:19.244Z", + "previousSteps": [ + { + "id": 447, + "fromId": 267, + "toId": 268, + "value": { + "label": { + "en": "Submit to plan" + } + }, + "createdAt": "2018-10-09T08:19:19.281Z", + "updatedAt": "2018-10-09T08:19:19.281Z" + } + ], + "nextSteps": [ + { + "id": 448, + "fromId": 268, + "toId": 267, + "value": { + "label": { + "en": "Unsubmit project" + } + }, + "createdAt": "2018-10-09T08:19:19.293Z", + "updatedAt": "2018-10-09T08:19:19.293Z" + }, + { + "id": 449, + "fromId": 268, + "toId": 269, + "value": { + "label": { + "en": "Add to review" + } + }, + "createdAt": "2018-10-09T08:19:19.303Z", + "updatedAt": "2018-10-09T08:19:19.303Z" + } + ] + }, + { + "id": 269, + "planId": 668, + "type": "review", + "value": { + "label": { + "en": "under review" + } + }, + "createdAt": "2018-10-09T08:19:19.251Z", + "updatedAt": "2018-10-09T08:19:19.251Z", + "previousSteps": [ + { + "id": 449, + "fromId": 268, + "toId": 269, + "value": { + "label": { + "en": "Add to review" + } + }, + "createdAt": "2018-10-09T08:19:19.303Z", + "updatedAt": "2018-10-09T08:19:19.303Z" + }, + { + "id": 453, + "fromId": 272, + "toId": 269, + "value": { + "label": { + "en": "Send back for review" + } + }, + "createdAt": "2018-10-09T08:19:19.328Z", + "updatedAt": "2019-01-08T17:44:33.871Z" + }, + { + "id": 636, + "fromId": 271, + "toId": 269, + "value": { + "label": { + "en": "Return to under review" + } + }, + "createdAt": "2018-11-22T18:30:50.157Z", + "updatedAt": "2018-11-22T18:30:50.157Z" + } + ], + "nextSteps": [ + { + "id": 457, + "fromId": 269, + "toId": 271, + "value": { + "label": { + "en": "Reject project as cluster lead" + }, + "optionConsensus": true + }, + "createdAt": "2018-10-09T08:19:19.358Z", + "updatedAt": "2018-10-09T08:19:19.358Z" + }, + { + "id": 450, + "fromId": 269, + "toId": 270, + "value": { + "label": { + "en": "Approve project as cluster lead" + }, + "optionConsensus": true + }, + "createdAt": "2018-10-09T08:19:19.311Z", + "updatedAt": "2018-10-09T08:19:19.311Z" + }, + { + "id": 452, + "fromId": 269, + "toId": 272, + "value": { + "label": { + "en": "Return project for edit" + } + }, + "createdAt": "2018-10-09T08:19:19.321Z", + "updatedAt": "2018-10-09T08:19:19.321Z" + } + ] + }, + { + "id": 270, + "planId": 668, + "type": "review", + "value": { + "label": { + "en": "approved by cluster lead" + } + }, + "createdAt": "2018-10-09T08:19:19.257Z", + "updatedAt": "2018-10-09T08:19:19.257Z", + "previousSteps": [ + { + "id": 458, + "fromId": 273, + "toId": 270, + "value": { + "label": { + "en": "Return to approved by cluster lead" + } + }, + "createdAt": "2018-10-09T08:19:19.365Z", + "updatedAt": "2018-10-09T08:19:19.365Z" + }, + { + "id": 450, + "fromId": 269, + "toId": 270, + "value": { + "label": { + "en": "Approve project as cluster lead" + }, + "optionConsensus": true + }, + "createdAt": "2018-10-09T08:19:19.311Z", + "updatedAt": "2018-10-09T08:19:19.311Z" + } + ], + "nextSteps": [ + { + "id": 451, + "fromId": 270, + "toId": 273, + "value": { + "label": { + "en": "Accept project by HC" + } + }, + "createdAt": "2018-10-09T08:19:19.318Z", + "updatedAt": "2018-10-09T08:19:19.318Z" + }, + { + "id": 455, + "fromId": 270, + "toId": 272, + "value": { + "label": { + "en": "Return project for edit" + } + }, + "createdAt": "2018-10-09T08:19:19.351Z", + "updatedAt": "2018-10-09T08:19:19.351Z" + }, + { + "id": 456, + "fromId": 270, + "toId": 271, + "value": { + "label": { + "en": "Reject project as HC" + } + }, + "createdAt": "2018-10-09T08:19:19.354Z", + "updatedAt": "2018-10-09T08:19:19.354Z" + } + ] + }, + { + "id": 271, + "planId": 668, + "type": "rejected", + "value": { + "label": { + "en": "rejected" + } + }, + "createdAt": "2018-10-09T08:19:19.264Z", + "updatedAt": "2018-10-09T08:19:19.264Z", + "previousSteps": [ + { + "id": 457, + "fromId": 269, + "toId": 271, + "value": { + "label": { + "en": "Reject project as cluster lead" + }, + "optionConsensus": true + }, + "createdAt": "2018-10-09T08:19:19.358Z", + "updatedAt": "2018-10-09T08:19:19.358Z" + }, + { + "id": 456, + "fromId": 270, + "toId": 271, + "value": { + "label": { + "en": "Reject project as HC" + } + }, + "createdAt": "2018-10-09T08:19:19.354Z", + "updatedAt": "2018-10-09T08:19:19.354Z" + } + ], + "nextSteps": [ + { + "id": 636, + "fromId": 271, + "toId": 269, + "value": { + "label": { + "en": "Return to under review" + } + }, + "createdAt": "2018-11-22T18:30:50.157Z", + "updatedAt": "2018-11-22T18:30:50.157Z" + } + ] + }, + { + "id": 272, + "planId": 668, + "type": "returned", + "value": { + "label": { + "en": "returned for edit" + } + }, + "createdAt": "2018-10-09T08:19:19.271Z", + "updatedAt": "2018-10-09T08:19:19.271Z", + "previousSteps": [ + { + "id": 452, + "fromId": 269, + "toId": 272, + "value": { + "label": { + "en": "Return project for edit" + } + }, + "createdAt": "2018-10-09T08:19:19.321Z", + "updatedAt": "2018-10-09T08:19:19.321Z" + }, + { + "id": 455, + "fromId": 270, + "toId": 272, + "value": { + "label": { + "en": "Return project for edit" + } + }, + "createdAt": "2018-10-09T08:19:19.351Z", + "updatedAt": "2018-10-09T08:19:19.351Z" + } + ], + "nextSteps": [ + { + "id": 453, + "fromId": 272, + "toId": 269, + "value": { + "label": { + "en": "Send back for review" + } + }, + "createdAt": "2018-10-09T08:19:19.328Z", + "updatedAt": "2019-01-08T17:44:33.871Z" + }, + { + "id": 454, + "fromId": 272, + "toId": 267, + "value": { + "label": { + "en": "Unsubmit project" + } + }, + "createdAt": "2018-10-09T08:19:19.340Z", + "updatedAt": "2018-10-09T08:19:19.340Z" + } + ] + }, + { + "id": 273, + "planId": 668, + "type": "accepted", + "value": { + "label": { + "en": "accepted" + } + }, + "createdAt": "2018-10-09T08:19:19.277Z", + "updatedAt": "2018-10-09T08:19:19.277Z", + "previousSteps": [ + { + "id": 451, + "fromId": 270, + "toId": 273, + "value": { + "label": { + "en": "Accept project by HC" + } + }, + "createdAt": "2018-10-09T08:19:19.318Z", + "updatedAt": "2018-10-09T08:19:19.318Z" + } + ], + "nextSteps": [ + { + "id": 458, + "fromId": 273, + "toId": 270, + "value": { + "label": { + "en": "Return to approved by cluster lead" + } + }, + "createdAt": "2018-10-09T08:19:19.365Z", + "updatedAt": "2018-10-09T08:19:19.365Z" + } + ] + } + ], + "procedureSections": [ + { + "id": 17, + "planId": 668, + "name": "Objectifs Stratégiques", + "order": 8, + "createdAt": "2018-10-09T09:59:16.161Z", + "updatedAt": "2018-10-09T10:02:15.871Z", + "conditionFields": [ + { + "id": 1129, + "procedureSectionField": { + "procedureSectionId": 17, + "conditionFieldId": 1129, + "createdAt": "2018-10-09T10:01:06.036Z", + "updatedAt": "2018-10-09T10:01:06.036Z" + } + }, + { + "id": 1130, + "procedureSectionField": { + "procedureSectionId": 17, + "conditionFieldId": 1130, + "createdAt": "2018-10-09T10:01:13.242Z", + "updatedAt": "2018-10-09T10:01:13.242Z" + } + }, + { + "id": 1131, + "procedureSectionField": { + "procedureSectionId": 17, + "conditionFieldId": 1131, + "createdAt": "2018-10-09T10:02:15.883Z", + "updatedAt": "2018-10-09T10:02:15.883Z" + } + } + ] + } + ], + "conditionFields": [ + { + "id": 1135, + "planId": 668, + "name": "IASC Gender with Age Marker (GAM)", + "grouping": true, + "label": { + "en": { + "value": "Project Gender Age Marker" + } + }, + "description": "Please select the GAM code for this project. To complete the IASC Gender with Age Marker (GAM) go to - https://ee.humanitarianresponse.info/single/::lKbQTg7d. Documentation on the GAM tool, including frequently asked questions and self-guided training materials, can be found on the IASC Gender and Age Marker website - https://iascgenderwithagemarker.com/", + "fieldType": "select", + "rules": { + "options": [ + "4 (T): The project is principally about promoting gender equality, including across age groups.", + "4 (M): The project will significantly contribute to gender equality, including across age groups.", + "3 (T): The project is principally about promoting gender equality without full attention to age groups.", + "3 (M): The project will contribute to gender equality but without full attention to age groups.", + "2 (T): The project addresses age differences and aims to promote gender equality but without the necessary gender equality measures.", + "2 (M): The project addresses age differences but does not intentionally contribute to gender equality.", + "1 (T): The project aims to principally promote gender equality without the necessary gender equality measures.", + "1 (M): The project does not intentionally contribute to gender equality.", + "0: There is no evidence that the project will contribute towards gender equality.", + "N/A: The project does not have any contact with or direct influence on the affected population, and the programming actions are not linked." + ] + }, + "required": true, + "order": 16, + "createdAt": "2018-10-09T08:40:28.135Z", + "updatedAt": "2019-02-26T09:50:51.891Z", + "isReliedOnBy": [] + }, + { + "id": 1134, + "planId": 668, + "name": "Estimated percentage of project requirements to be used for cash", + "grouping": false, + "label": {}, + "description": "", + "fieldType": "number", + "rules": { + "max": 100, + "min": 0 + }, + "required": true, + "order": 14, + "createdAt": "2018-10-09T08:39:30.521Z", + "updatedAt": "2018-11-21T14:23:59.391Z", + "isReliedOnBy": [] + }, + { + "id": 1133, + "planId": 668, + "name": "Restriction", + "grouping": true, + "label": { + "en": { + "value": "Project restriction" + } + }, + "description": "", + "fieldType": "select", + "rules": { + "options": [ + "Restricted", + "Unrestricted", + "Combined", + "Unknown" + ] + }, + "required": true, + "order": 15, + "createdAt": "2018-10-09T08:38:43.759Z", + "updatedAt": "2019-02-26T09:51:51.972Z", + "isReliedOnBy": [] + }, + { + "id": 1132, + "planId": 668, + "name": "Is any part of this project cash based intervention", + "grouping": true, + "label": { + "en": { + "value": "Project cash and vouchers" + } + }, + "description": " (including vouchers)", + "fieldType": "checkbox", + "rules": null, + "required": false, + "order": 13, + "createdAt": "2018-10-09T08:38:05.218Z", + "updatedAt": "2019-02-26T09:49:38.450Z", + "isReliedOnBy": [ + { + "id": 1134, + "planId": 668, + "name": "Estimated percentage of project requirements to be used for cash", + "grouping": false, + "label": {}, + "description": "", + "fieldType": "number", + "rules": { + "max": 100, + "min": 0 + }, + "required": true, + "order": 14, + "createdAt": "2018-10-09T08:39:30.521Z", + "updatedAt": "2018-11-21T14:23:59.391Z", + "conditionFieldReliesOn": { + "createdAt": "2018-10-09T08:39:49.021Z", + "updatedAt": "2018-10-09T08:39:49.021Z", + "reliedOnById": 1132, + "reliesOnId": 1134 + } + }, + { + "id": 1133, + "planId": 668, + "name": "Restriction", + "grouping": true, + "label": { + "en": { + "value": "Project restriction" + } + }, + "description": "", + "fieldType": "select", + "rules": { + "options": [ + "Restricted", + "Unrestricted", + "Combined", + "Unknown" + ] + }, + "required": true, + "order": 15, + "createdAt": "2018-10-09T08:38:43.759Z", + "updatedAt": "2019-02-26T09:51:51.972Z", + "conditionFieldReliesOn": { + "createdAt": "2018-10-09T08:39:49.021Z", + "updatedAt": "2018-10-09T08:39:49.021Z", + "reliedOnById": 1132, + "reliesOnId": 1133 + } + } + ] + }, + { + "id": 1131, + "planId": 668, + "name": "% qui contribue à l’OS 3 : Protection des personnes affectées", + "grouping": false, + "label": {}, + "description": "", + "fieldType": "number", + "rules": { + "max": 100, + "min": 0 + }, + "required": true, + "order": 12, + "createdAt": "2018-10-09T08:37:33.681Z", + "updatedAt": "2018-11-21T14:25:01.305Z", + "isReliedOnBy": [] + }, + { + "id": 1130, + "planId": 668, + "name": "% qui contribue à l’OS 2 : Renforcer la résilience", + "grouping": false, + "label": {}, + "description": "", + "fieldType": "number", + "rules": { + "max": 100, + "min": 0 + }, + "required": true, + "order": 11, + "createdAt": "2018-10-09T08:37:04.810Z", + "updatedAt": "2018-11-21T14:24:56.736Z", + "isReliedOnBy": [] + }, + { + "id": 1129, + "planId": 668, + "name": "% qui contribue à l’OS 1 : Sauver des vies", + "grouping": false, + "label": {}, + "description": "", + "fieldType": "number", + "rules": { + "max": 100, + "min": 0 + }, + "required": true, + "order": 10, + "createdAt": "2018-10-09T08:36:39.522Z", + "updatedAt": "2018-11-21T14:24:52.517Z", + "isReliedOnBy": [] + }, + { + "id": 1128, + "planId": 668, + "name": "% qui contribue à la crise mouvement de population", + "grouping": false, + "label": {}, + "description": "", + "fieldType": "number", + "rules": { + "max": 100, + "min": 0 + }, + "required": true, + "order": 9, + "createdAt": "2018-10-09T08:36:14.189Z", + "updatedAt": "2018-11-21T14:24:41.174Z", + "isReliedOnBy": [] + }, + { + "id": 1127, + "planId": 668, + "name": "% qui contribue à la crise urgence sanitaire", + "grouping": false, + "label": {}, + "description": "", + "fieldType": "number", + "rules": { + "max": 100, + "min": 0 + }, + "required": true, + "order": 9, + "createdAt": "2018-10-09T08:35:45.152Z", + "updatedAt": "2018-11-21T14:24:44.814Z", + "isReliedOnBy": [] + }, + { + "id": 1126, + "planId": 668, + "name": "% qui contribue à la réponse aux besoins dans le reste du pays?", + "grouping": false, + "label": {}, + "description": "", + "fieldType": "number", + "rules": { + "max": 100, + "min": 0 + }, + "required": true, + "order": 9, + "createdAt": "2018-10-09T08:35:18.918Z", + "updatedAt": "2018-11-21T14:24:48.327Z", + "isReliedOnBy": [] + }, + { + "id": 1125, + "planId": 668, + "name": "% qui contribue à la crise sécurité alimentaire et malnutrition", + "grouping": false, + "label": {}, + "description": "", + "fieldType": "number", + "rules": { + "max": 100, + "min": 0 + }, + "required": true, + "order": 8, + "createdAt": "2018-10-09T08:34:45.599Z", + "updatedAt": "2018-11-21T14:24:37.294Z", + "isReliedOnBy": [] + }, + { + "id": 1124, + "planId": 668, + "name": "% qui contribue à la réponse à la crise des réfugiés soudanais à", + "grouping": false, + "label": {}, + "description": "% qui contribue à la réponse à la crise des réfugiés soudanais à l’Est?", + "fieldType": "number", + "rules": { + "max": 100, + "min": 0 + }, + "required": true, + "order": 7, + "createdAt": "2018-10-09T08:34:14.186Z", + "updatedAt": "2018-11-21T14:24:30.064Z", + "isReliedOnBy": [] + }, + { + "id": 1123, + "planId": 668, + "name": "% qui contribue à la réponse aux besoins dans le Sud?", + "grouping": false, + "label": {}, + "description": "% qui contribue à la réponse aux besoins dans le Sud?", + "fieldType": "number", + "rules": { + "max": 100, + "min": 0 + }, + "required": true, + "order": 7, + "createdAt": "2018-10-09T08:33:41.158Z", + "updatedAt": "2018-11-21T14:24:34.147Z", + "isReliedOnBy": [] + }, + { + "id": 1122, + "planId": 668, + "name": "Veuillez sélectionner l’analyse qui se rapporte le mieux à votre", + "grouping": false, + "label": {}, + "description": "Veuillez sélectionner l’analyse qui se rapporte le mieux à votre projet.", + "fieldType": "select", + "rules": { + "options": [ + "0 - Ce projet n’intègre pas suffisamment la protection transversale.", + "1 - Ce projet intègre, de manière modérée, la protection transversale.", + "2 - Ce projet intègre de manière substantielle la protection transversale." + ] + }, + "required": true, + "order": 6, + "createdAt": "2018-10-09T08:33:03.558Z", + "updatedAt": "2018-10-09T08:33:03.558Z", + "isReliedOnBy": [] + }, + { + "id": 1121, + "planId": 668, + "name": "Lake Chad Basin?", + "grouping": true, + "label": { + "en": { + "value": "Project Lake Chad Basin" + } + }, + "description": "", + "fieldType": "checkbox", + "rules": [], + "required": false, + "order": 4, + "createdAt": "2018-10-09T08:32:10.316Z", + "updatedAt": "2019-02-26T09:53:07.136Z", + "isReliedOnBy": [] + }, + { + "id": 1119, + "planId": 668, + "name": "Activities or outputs", + "grouping": false, + "label": {}, + "description": "Please describe the project activities that will address the needs identified and how they will be implemented.", + "fieldType": "textarea", + "rules": { + "maxlength": 4000 + }, + "required": true, + "order": 2, + "createdAt": "2018-10-09T08:30:46.087Z", + "updatedAt": "2018-11-21T14:24:18.534Z", + "isReliedOnBy": [] + }, + { + "id": 1118, + "planId": 668, + "name": "Needs", + "grouping": false, + "label": {}, + "description": "Please describe the assessed needs the project will address through its activities.", + "fieldType": "textarea", + "rules": { + "maxlength": 4000 + }, + "required": true, + "order": 1, + "createdAt": "2018-10-09T08:29:05.774Z", + "updatedAt": "2018-11-21T14:25:22.114Z", + "isReliedOnBy": [] + } + ] + } + ], + "globalClusters": [ + { + "id": 7, + "hrinfoId": 7, + "type": "global", + "name": "Health", + "code": "HEA", + "homepage": "http://www.who.int/hac/global_health_cluster/en/", + "defaultIconId": "clusters_health_icon", + "parentId": null, + "createdAt": "2015-09-10T20:26:37.494Z", + "updatedAt": "2018-01-12T01:16:02.732Z", + "projectGlobalClusters": { + "projectVer": 117273, + "globalClus": 7, + "createdAt": "2018-11-08T15:32:50.315Z", + "updatedAt": "2018-11-08T15:32:50.316Z" + } + }, + { + "id": 9, + "hrinfoId": 9, + "type": "global", + "name": "Nutrition", + "code": "NUT", + "homepage": "http://nutritioncluster.net", + "defaultIconId": "clusters_nutrition_icon", + "parentId": null, + "createdAt": "2015-09-10T20:26:37.504Z", + "updatedAt": "2018-01-12T01:16:02.733Z", + "projectGlobalClusters": { + "projectVer": 117273, + "globalClus": 9, + "createdAt": "2018-11-08T15:32:50.315Z", + "updatedAt": "2018-11-08T15:32:50.316Z" + } + }, + { + "id": 11, + "hrinfoId": 11, + "type": "global", + "name": "Water Sanitation Hygiene", + "code": "WSH", + "homepage": "http://washcluster.net/", + "defaultIconId": "clusters_water_sanitation_and_hygiene_icon", + "parentId": null, + "createdAt": "2015-09-10T20:26:37.511Z", + "updatedAt": "2018-01-12T01:16:02.733Z", + "projectGlobalClusters": { + "projectVer": 117273, + "globalClus": 11, + "createdAt": "2018-11-11T14:52:19.143Z", + "updatedAt": "2018-11-11T14:52:19.145Z" + } + } + ], + "projectVersionPlans": [ + { + "id": 115747, + "planId": 668, + "projectVersionId": 117273, + "value": { + "optionConsensus": [ + { + "id": 4330, + "toId": 270 + }, + { + "id": 4332, + "toId": 270 + }, + { + "id": 4334 + } + ] + }, + "workflowStatusOptionId": 273, + "createdAt": "2018-11-08T15:32:40.004Z", + "updatedAt": "2019-02-26T09:38:38.004Z", + "comments": [], + "workflowStatusOption": { + "id": 273, + "planId": 668, + "type": "accepted", + "value": { + "label": { + "en": "accepted" + } + }, + "createdAt": "2018-10-09T08:19:19.277Z", + "updatedAt": "2018-10-09T08:19:19.277Z" + }, + "projectVersionFields": [ + { + "id": 283034, + "conditionFieldId": 1123, + "projectVersionPlanId": 115747, + "value": "0", + "createdAt": "2018-11-08T15:32:43.818Z", + "updatedAt": "2018-11-23T21:15:13.610Z" + }, + { + "id": 283035, + "conditionFieldId": 1125, + "projectVersionPlanId": 115747, + "value": "100", + "createdAt": "2018-11-08T15:32:43.818Z", + "updatedAt": "2018-11-23T21:15:13.610Z" + }, + { + "id": 283036, + "conditionFieldId": 1128, + "projectVersionPlanId": 115747, + "value": "0", + "createdAt": "2018-11-08T15:32:43.818Z", + "updatedAt": "2018-11-23T21:15:13.611Z" + }, + { + "id": 283026, + "conditionFieldId": 1129, + "projectVersionPlanId": 115747, + "value": "90", + "createdAt": "2018-11-08T15:32:43.817Z", + "updatedAt": "2018-11-23T21:15:13.607Z" + }, + { + "id": 283027, + "conditionFieldId": 1130, + "projectVersionPlanId": 115747, + "value": "8", + "createdAt": "2018-11-08T15:32:43.817Z", + "updatedAt": "2018-11-23T21:15:13.607Z" + }, + { + "id": 283028, + "conditionFieldId": 1131, + "projectVersionPlanId": 115747, + "value": "2", + "createdAt": "2018-11-08T15:32:43.817Z", + "updatedAt": "2018-11-23T21:15:13.608Z" + }, + { + "id": 283037, + "conditionFieldId": 1127, + "projectVersionPlanId": 115747, + "value": "30", + "createdAt": "2018-11-08T15:32:43.818Z", + "updatedAt": "2018-11-23T21:15:13.611Z" + }, + { + "id": 283038, + "conditionFieldId": 1126, + "projectVersionPlanId": 115747, + "value": "20", + "createdAt": "2018-11-08T15:32:43.818Z", + "updatedAt": "2018-11-23T21:15:13.611Z" + }, + { + "id": 283039, + "conditionFieldId": 1132, + "projectVersionPlanId": 115747, + "value": "false", + "createdAt": "2018-11-08T15:32:43.818Z", + "updatedAt": "2018-11-23T21:15:13.611Z" + }, + { + "id": 283041, + "conditionFieldId": 1134, + "projectVersionPlanId": 115747, + "value": null, + "createdAt": "2018-11-08T15:32:43.818Z", + "updatedAt": "2018-11-23T21:15:13.612Z" + }, + { + "id": 283040, + "conditionFieldId": 1133, + "projectVersionPlanId": 115747, + "value": null, + "createdAt": "2018-11-08T15:32:43.818Z", + "updatedAt": "2018-11-23T21:15:13.612Z" + }, + { + "id": 283030, + "conditionFieldId": 1119, + "projectVersionPlanId": 115747, + "value": "4.1. Renforcer l'accès à la prise en charge de la MAS et aux soins de santé primaires, préventifs et curatifs pour les enfants de moins de 5 ans ; \n-\tRenforcement en ressources humaines, intrants, équipements et matériel médical dans la zone d’intervention\n-\tFormation des agents de santé sur le protocole de prise en charge des maladies de l’enfant (PCIME)\n-\tPrise en charge de la MAS et des urgences pédiatriques au niveau d’UNT/pédiatrie (Hôpital) et des UNA (ambulatoire) dans la zone d’intervention\n-\tMise en place d’un système de référencements des cas compliqués dans la zone d’intervention\n-\tFormation des mamans à l’approche PB-mères pour la détection précoce \n-\tAssurer un paquet minimum de sanitation (WASH) sur les structures sanitaires appuyées (dotation en eau potable, gestion des déchets et réhabilitation des structures) pour assurer une bonne prise en charge médicale\n- Distribution des kits wash aux mères des enfants MAS admis dans le programme de PEC MAS\n-\tAmélioration de couverture vaccinale à travers l’appui au programme PEV \n-\tAppui à la réhabilitation des UNA et UNT \n-\tRéalisation d'une campagne de dépistage dans les aires de santé appuyés.\n4.2.\tAméliorer l’accès aux soins de santé des femmes en âge de procréer et contribuer à réduire la mortalité maternelle.\n-\tOffre du paquet de soins promotionnel, préventif et curatif pour les femmes enceintes\n-\tMise en place d’un système de référencements pour les grossesses compliquées vers les hôpitaux de district ou régionaux\n-\tFormation des équipes médicales au protocole national de soins obstétricaux et néonataux d’urgence (SONUB)\n-\tDistribution de compléments alimentaires aux femmes enceintes et allaitantes \n-\tSensibiliser les FEFA et les accompagnants d'enfants sur les pratiques familiales essentielles\n4.3.\tRenforcer la participation communautaire (familles, comités de gestion, relais communautaires) pour améliorer la couverture sanitaire ;\n-\tConstitution/redynamisation de réseaux de relais communautaires pour assurer le paquet d’activités communautaires dans toutes les régions d’intervention.\n-\tElargir la communication pour un changement de comportement souhaité axé sur les pratiques familiales Essentielles en Nutrition, Santé et hygiène\n4.4.\tMettre en place un dispositif de veille sanitaire et humanitaire avec une capacité de réponse aux urgences (déplacements de population, blessés, épidémies).\n-\tSuivi de la situation épidémiologique, sanitaire et humanitaire dans les districts de N'djamena \n-\tDéploiement de missions d’évaluation/action en fonction des urgences détectées et constitution d’une équipe d’intervention rapide.\nTel que l'énonce la Charte ALIMA \"le patient d'abord\", le bénéficiaire est au centre de tout dispositif d'intervention de l'organisation. L'ONG médicale entant donc exécuter son mandat de manière responsable en tenant en compte des spécificités ou non des populations qu'elle assiste et vis-à-vis desquelles elle sera redevable tout au long du cycle de projet. \nLes populations affectées sont considérées comme des \"partenaires\" et intégrées dans la programmation humanitaire, notamment dans l'identification des besoins, la conceptualisation, la mise en œuvre de la réponse, le suivi et l'évaluation de fin de cycle. \n-\tOrganiser 2 enquêtes de satisfactions des bénéficiaires \n-\tIncorporer systématiquement la notion de redevabilité dans sa programmation ; \n-\tAssurer la transparence à travers le partage d'informations avec la population affectée ; \n-\tMettre en place un mécanisme de collecte et traitement des feedbacks et plaintes ; \n-\tPromouvoir la participation et l'engagement de la population affectée afin de renforcer l'appropriation locale et la résilience ; \n-\tPromouvoir un système de planification, suivi et évaluation participatif\n", + "createdAt": "2018-11-08T15:32:43.817Z", + "updatedAt": "2018-11-23T21:15:13.609Z" + }, + { + "id": 283031, + "conditionFieldId": 1121, + "projectVersionPlanId": 115747, + "value": "false", + "createdAt": "2018-11-08T15:32:43.817Z", + "updatedAt": "2018-11-23T21:15:13.609Z" + }, + { + "id": 283032, + "conditionFieldId": 1122, + "projectVersionPlanId": 115747, + "value": "2 - Ce projet intègre de manière substantielle la protection transversale.", + "createdAt": "2018-11-08T15:32:43.817Z", + "updatedAt": "2018-11-23T21:15:13.609Z" + }, + { + "id": 283033, + "conditionFieldId": 1124, + "projectVersionPlanId": 115747, + "value": "0", + "createdAt": "2018-11-08T15:32:43.817Z", + "updatedAt": "2018-11-23T21:15:13.610Z" + }, + { + "id": 283029, + "conditionFieldId": 1118, + "projectVersionPlanId": 115747, + "value": "Au Tchad, l’insécurité alimentaire, les déplacements de population et les urgences sanitaires entraînent plus de 8 millions de personnes (presque deux tiers de la population tchadienne) dans une situation de vulnérabilité aiguë ou chronique (HNO 2018). Plus de 4,4 millions de personnes dont 52% de femmes sont affectées par l'insécurité alimentaire, dont 890 000 sont en insécurité alimentaire sévère majoritairement dans la bande sahélienne. Le taux de mortalité des enfants de moins de 5 ans est parmi les plus élevés au monde (133 pour 1000). La mortalité maternelle demeure parmi les plus élevées au monde avec 860 décès pour 100 000 naissances vivantes (INSEED, 2015) contre 506/100 000 en moyenne en Afrique sub-saharienne.\n\nLa couverture vaccinale de la rougeole au niveau national atteint 37% (Enquête de couverture de 2015). Le pays connaît actuellement une épidémie de rougeole avec près de 4000 cas enregistrés et 90 décès (bulletin épidemio S44). Cette épidemie de rougeole qui touche en majorité les enfants de moins de 5ans risque d'avoir un impact le statu nutritionnel de ces derniers dans les mois a venir. \nLa région de N'Djamena est très vulnérable d'un point de vue nutritionnel. Selon le Cluster Nutrition, 52 416 enfants de moins de 5 ans sont atteints de MAS en 2018 alors qu'en 2017 le nombre de cas était estimé à 25 653. Environ 17-20% des admissions MAS du pays au courant de premier semestre 2018, sont enregistrés dans la région sanitaire de Ndjamena (bulletin cluster nutrition juin 2018) Le pic saisonnier, généralement pendant la période de soudure (de juin à octobre), a débuté plus tôt, à la fin du mois de janvier. En octobre 2018, la capacité d’hospit n’a pas encore considérablement diminué. Le taux d’hospitalisation des enfants de N’Djamena souffrant de MAS et présentant des complications est l’un des plus élevés du pays (23% cette année). Cela a conduit les acteurs humanitaires en appui au Ministère de la santé à développer un plan d’urgence à N'djamena en 2018.\n \nLes résultats préliminaires de l’enquête SMART de septembre 2018 révèlent à nouveau une situation préoccupante au niveau national avec une prévalence de MAS de 4% et MAG de 13,5%. Au niveau régional, 12 régions (52,2%) présentent des prévalences supérieures au seuil d’urgence (15%) selon la classification de l’OMS avec 25% dans le Kanem. Malgré une amélioration suite aux interventions d’urgences qui sont toujours en cours, la prévalence de la MAS pour la région du Lac atteint 1,8% tandis que ce taux s'élève à 1,2% pour la région de N’Djamena. A ce titre les deux régions figurent toujours parmi les 16 régions prioritaires du cluster nutrition pour 2019. Le maintien des actions de préventions(campagnes de dépistages, formations des mères, programme MAM et cash pendant au moins la période soudure) et une reponse multisecteur et une couverture de la prise en charge au tour de 50% reste primordiale pour prévenir les complications chez les enfants MAS et désengorgés les différents UNT de la ville\n\nEn 2019, 1 261 017 personnes seront dans le besoin soit près de 9% de la population totale du pays. On estime à 856 683 le nombre de personnes qui seront dans les besoin dans les 16 régions prioritaires du pays, et 35% d’entre elles seront atteintes de MAS.\n\n", + "createdAt": "2018-11-08T15:32:43.817Z", + "updatedAt": "2018-11-23T21:15:13.608Z" + }, + { + "id": 283042, + "conditionFieldId": 1135, + "projectVersionPlanId": 115747, + "value": "4 (T): The project is principally about promoting gender equality, including across age groups.", + "createdAt": "2018-11-08T15:32:43.818Z", + "updatedAt": "2018-11-23T21:15:13.612Z" + } + ] + } + ], + "budgetSegments": [ + { + "id": 20796, + "projectVersionId": 117273, + "name": "general", + "createdAt": "2018-11-08T16:53:03.935Z", + "updatedAt": "2018-11-23T21:20:06.125Z", + "breakdown": [ + { + "id": 112450, + "budgetSegmentId": 20796, + "name": "RH PROGRAMME", + "content": { + "amount": 1780470, + "percent": 41.3 + }, + "type": "general", + "createdAt": "2018-11-23T21:20:06.131Z", + "updatedAt": "2018-11-23T21:20:06.131Z", + "entities": [ + { + "id": 200888, + "budgetSegmentBreakdownId": 112450, + "objectType": "projectVersion", + "objectId": 117273, + "createdAt": "2018-11-23T21:20:06.155Z", + "updatedAt": "2018-11-23T21:20:06.155Z" + } + ] + }, + { + "id": 112451, + "budgetSegmentId": 20796, + "name": "RH SUPPORT", + "content": { + "amount": 461213, + "percent": 10.7 + }, + "type": "general", + "createdAt": "2018-11-23T21:20:06.131Z", + "updatedAt": "2018-11-23T21:20:06.131Z", + "entities": [ + { + "id": 200889, + "budgetSegmentBreakdownId": 112451, + "objectType": "projectVersion", + "objectId": 117273, + "createdAt": "2018-11-23T21:20:06.158Z", + "updatedAt": "2018-11-23T21:20:06.158Z" + } + ] + }, + { + "id": 112452, + "budgetSegmentId": 20796, + "name": "FONCTIONNEMENT", + "content": { + "amount": 410000, + "percent": 9.51 + }, + "type": "general", + "createdAt": "2018-11-23T21:20:06.132Z", + "updatedAt": "2018-11-23T21:20:06.132Z", + "entities": [ + { + "id": 200890, + "budgetSegmentBreakdownId": 112452, + "objectType": "projectVersion", + "objectId": 117273, + "createdAt": "2018-11-23T21:20:06.162Z", + "updatedAt": "2018-11-23T21:20:06.162Z" + } + ] + }, + { + "id": 112453, + "budgetSegmentId": 20796, + "name": "ACTIVITE MED NUT", + "content": { + "amount": 1198525, + "percent": 27.8 + }, + "type": "general", + "createdAt": "2018-11-23T21:20:06.132Z", + "updatedAt": "2018-11-23T21:20:06.132Z", + "entities": [ + { + "id": 200891, + "budgetSegmentBreakdownId": 112453, + "objectType": "projectVersion", + "objectId": 117273, + "createdAt": "2018-11-23T21:20:06.166Z", + "updatedAt": "2018-11-23T21:20:06.166Z" + } + ] + }, + { + "id": 112454, + "budgetSegmentId": 20796, + "name": "TRANSPORT", + "content": { + "amount": 358290, + "percent": 8.31 + }, + "type": "general", + "createdAt": "2018-11-23T21:20:06.132Z", + "updatedAt": "2018-11-23T21:20:06.132Z", + "entities": [ + { + "id": 200892, + "budgetSegmentBreakdownId": 112454, + "objectType": "projectVersion", + "objectId": 117273, + "createdAt": "2018-11-23T21:20:06.169Z", + "updatedAt": "2018-11-23T21:20:06.169Z" + } + ] + }, + { + "id": 112455, + "budgetSegmentId": 20796, + "name": "EQUIPEMENT", + "content": { + "amount": 75122, + "percent": 1.74 + }, + "type": "general", + "createdAt": "2018-11-23T21:20:06.132Z", + "updatedAt": "2018-11-23T21:20:06.132Z", + "entities": [ + { + "id": 200893, + "budgetSegmentBreakdownId": 112455, + "objectType": "projectVersion", + "objectId": 117273, + "createdAt": "2018-11-23T21:20:06.173Z", + "updatedAt": "2018-11-23T21:20:06.173Z" + } + ] + }, + { + "id": 112456, + "budgetSegmentId": 20796, + "name": "VISIBILITE COMMUNICATION", + "content": { + "amount": 27661, + "percent": 0.64 + }, + "type": "general", + "createdAt": "2018-11-23T21:20:06.132Z", + "updatedAt": "2018-11-23T21:20:06.132Z", + "entities": [ + { + "id": 200894, + "budgetSegmentBreakdownId": 112456, + "objectType": "projectVersion", + "objectId": 117273, + "createdAt": "2018-11-23T21:20:06.176Z", + "updatedAt": "2018-11-23T21:20:06.176Z" + } + ] + } + ] + }, + { + "id": 31978, + "projectVersionId": 117273, + "name": "segmentation by organization", + "createdAt": "2018-11-23T21:20:06.126Z", + "updatedAt": "2018-11-23T21:20:06.126Z", + "breakdown": [ + { + "id": 112457, + "budgetSegmentId": 31978, + "name": "Eau, hygiène et assainissement", + "content": { + "amount": 258677 + }, + "type": null, + "createdAt": "2018-11-23T21:20:06.147Z", + "updatedAt": "2018-11-23T21:20:06.147Z", + "entities": [ + { + "id": 200895, + "budgetSegmentBreakdownId": 112457, + "objectType": "organization", + "objectId": 1937, + "createdAt": "2018-11-23T21:20:06.179Z", + "updatedAt": "2018-11-23T21:20:06.179Z" + }, + { + "id": 200901, + "budgetSegmentBreakdownId": 112457, + "objectType": "globalCluster", + "objectId": 11, + "createdAt": "2018-11-23T21:20:06.393Z", + "updatedAt": "2018-11-23T21:20:06.393Z" + }, + { + "id": 200898, + "budgetSegmentBreakdownId": 112457, + "objectType": "governingEntity", + "objectId": 4330, + "createdAt": "2018-11-23T21:20:06.315Z", + "updatedAt": "2018-11-23T21:20:06.315Z" + } + ] + }, + { + "id": 112458, + "budgetSegmentId": 31978, + "name": "Nutrition", + "content": { + "amount": 2629881 + }, + "type": null, + "createdAt": "2018-11-23T21:20:06.147Z", + "updatedAt": "2018-11-23T21:20:06.147Z", + "entities": [ + { + "id": 200899, + "budgetSegmentBreakdownId": 112458, + "objectType": "governingEntity", + "objectId": 4332, + "createdAt": "2018-11-23T21:20:06.319Z", + "updatedAt": "2018-11-23T21:20:06.319Z" + }, + { + "id": 200902, + "budgetSegmentBreakdownId": 112458, + "objectType": "globalCluster", + "objectId": 9, + "createdAt": "2018-11-23T21:20:06.399Z", + "updatedAt": "2018-11-23T21:20:06.399Z" + }, + { + "id": 200896, + "budgetSegmentBreakdownId": 112458, + "objectType": "organization", + "objectId": 1937, + "createdAt": "2018-11-23T21:20:06.184Z", + "updatedAt": "2018-11-23T21:20:06.184Z" + } + ] + }, + { + "id": 112459, + "budgetSegmentId": 31978, + "name": "Santé", + "content": { + "amount": 1422723 + }, + "type": null, + "createdAt": "2018-11-23T21:20:06.147Z", + "updatedAt": "2018-11-23T21:20:06.147Z", + "entities": [ + { + "id": 200897, + "budgetSegmentBreakdownId": 112459, + "objectType": "organization", + "objectId": 1937, + "createdAt": "2018-11-23T21:20:06.187Z", + "updatedAt": "2018-11-23T21:20:06.187Z" + }, + { + "id": 200903, + "budgetSegmentBreakdownId": 112459, + "objectType": "globalCluster", + "objectId": 7, + "createdAt": "2018-11-23T21:20:06.404Z", + "updatedAt": "2018-11-23T21:20:06.404Z" + }, + { + "id": 200900, + "budgetSegmentBreakdownId": 112459, + "objectType": "governingEntity", + "objectId": 4334, + "createdAt": "2018-11-23T21:20:06.323Z", + "updatedAt": "2018-11-23T21:20:06.323Z" + } + ] + } + ] + } + ], + "locations": [ + { + "id": 44, + "iso3": "TCD", + "name": "Chad", + "adminLevel": 0, + "pcode": "TD", + "latitude": 15.357404949384, + "longitude": 18.663995559345, + "parentId": null + }, + { + "id": 25817214, + "iso3": null, + "name": "NDjamena", + "adminLevel": 1, + "pcode": "TD18", + "latitude": 12.1202656928208, + "longitude": 15.0515900290148, + "parentId": 44 + }, + { + "id": 25817278, + "iso3": null, + "name": "NDjamena", + "adminLevel": 2, + "pcode": "TD1801", + "latitude": 12.1202656928208, + "longitude": 15.0515900290148, + "parentId": 25817214 + } + ], + "attachments": [ + { + "projectVersionId": 117273, + "attachmentId": 5557, + "attachmentVersionId": 1350, + "total": 6, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + 6 + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-08T16:04:38.812Z", + "updatedAt": "2018-11-23T21:19:57.033Z" + }, + { + "projectVersionId": 117273, + "attachmentId": 5558, + "attachmentVersionId": 1393, + "total": 2, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + 2, + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-14T09:26:11.277Z", + "updatedAt": "2018-11-23T21:19:57.036Z" + }, + { + "projectVersionId": 117273, + "attachmentId": 5560, + "attachmentVersionId": 1431, + "total": 25, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + 9, + 16, + 25 + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-08T16:04:38.815Z", + "updatedAt": "2018-11-23T21:19:57.039Z" + }, + { + "projectVersionId": 117273, + "attachmentId": 5935, + "attachmentVersionId": 1641, + "total": 27186, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + 7886, + 7886 + ], + [ + "", + 1250, + 1250 + ], + [ + "", + 6250, + 6250 + ], + [ + "", + 11800, + 11800 + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-08T16:04:38.826Z", + "updatedAt": "2018-11-23T21:19:57.061Z" + }, + { + "projectVersionId": 117273, + "attachmentId": 5575, + "attachmentVersionId": 623, + "total": 40153, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + 19273, + 20880, + 40153 + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-08T16:04:38.807Z", + "updatedAt": "2018-11-23T21:19:57.029Z" + }, + { + "projectVersionId": 117273, + "attachmentId": 5788, + "attachmentVersionId": 681, + "total": 43660, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + 21393, + 22267, + 43660 + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-11T15:06:13.233Z", + "updatedAt": "2018-11-23T21:19:57.074Z" + }, + { + "projectVersionId": 117273, + "attachmentId": 5936, + "attachmentVersionId": 2646, + "total": 53, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + 1, + 4, + 5 + ], + [ + 3, + 15, + 18 + ], + [ + 2, + 10, + 12 + ], + [ + 3, + 15, + 18 + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-08T16:04:38.828Z", + "updatedAt": "2018-11-23T21:19:57.065Z" + }, + { + "projectVersionId": 117273, + "attachmentId": 5938, + "attachmentVersionId": 2688, + "total": 13593, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + 2000, + 2200, + 4200 + ], + [ + 1000, + 1300, + 2300 + ], + [ + 525, + 750, + 1275 + ], + [ + 3000, + 2818, + 5818 + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-08T16:04:38.830Z", + "updatedAt": "2018-11-23T21:19:57.068Z" + }, + { + "projectVersionId": 117273, + "attachmentId": 5939, + "attachmentVersionId": 2703, + "total": 15000, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + 1900, + 2100, + 4000 + ], + [ + 1400, + 1600, + 3000 + ], + [ + 1300, + 1700, + 3000 + ], + [ + 1400, + 3600, + 5000 + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-08T16:04:38.832Z", + "updatedAt": "2018-11-23T21:19:57.071Z" + }, + { + "projectVersionId": 117273, + "attachmentId": 5566, + "attachmentVersionId": 4799, + "total": 20153, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + 9273, + 10880, + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-08T16:04:38.819Z", + "updatedAt": "2018-11-23T21:19:57.049Z" + }, + { + "projectVersionId": 117273, + "attachmentId": 5568, + "attachmentVersionId": 4943, + "total": 3280, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + 3280 + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + 5698 + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-08T16:04:38.821Z", + "updatedAt": "2018-11-23T21:19:57.052Z" + }, + { + "projectVersionId": 117273, + "attachmentId": 5825, + "attachmentVersionId": 5258, + "total": 25315, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + 12404, + 12911, + 25315 + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-11T15:06:13.237Z", + "updatedAt": "2018-11-23T21:19:57.080Z" + }, + { + "projectVersionId": 117273, + "attachmentId": 5951, + "attachmentVersionId": 5419, + "total": 18345, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + 8989, + 9356, + 18345 + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-11T15:06:13.242Z", + "updatedAt": "2018-11-23T21:19:57.087Z" + }, + { + "projectVersionId": 117273, + "attachmentId": 5957, + "attachmentVersionId": 5422, + "total": 18345, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + 8989, + 9356, + 18345 + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-11T15:06:13.240Z", + "updatedAt": "2018-11-23T21:19:57.083Z" + }, + { + "projectVersionId": 117273, + "attachmentId": 6260, + "attachmentVersionId": 7709, + "total": 40832, + "value": { + "targets": [ + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + 7884, + 32948, + 40832 + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ], + [ + "", + "", + "" + ] + ] + }, + "createdAt": "2018-11-08T16:04:38.823Z", + "updatedAt": "2018-11-23T21:19:57.056Z" + } + ], + "contacts": [ + { + "id": 13459, + "projectVersionId": 117273, + "name": "Mamadou BAH", + "email": "reporting@tchad.alima.ngo", + "website": "", + "phoneNumber": "+23593125894", + "participantId": null, + "createdAt": "2018-11-08T15:13:21.452Z", + "updatedAt": "2018-11-23T21:11:39.734Z" + }, + { + "id": 13458, + "projectVersionId": 117273, + "name": "Alexis DERMBAYE", + "email": "cg.as@tchad.alima.ngo", + "website": "", + "phoneNumber": "+23568702709", + "participantId": null, + "createdAt": "2018-11-08T15:13:21.452Z", + "updatedAt": "2018-11-23T21:11:39.735Z" + }, + { + "id": 13457, + "projectVersionId": 117273, + "name": "Hassan ISSA", + "email": "cdm@tchad.alima.ngo", + "website": "", + "phoneNumber": "+22368702711", + "participantId": null, + "createdAt": "2018-11-08T15:13:21.452Z", + "updatedAt": "2018-11-23T21:11:39.725Z" + } + ] + }, + "visible": true }, - "status":"ok" -} + "status": "ok" +} \ No newline at end of file diff --git a/django_api/django_api/apps/ocha/tasks.py b/django_api/django_api/apps/ocha/tasks.py index 7344faba4..0c17b46cf 100644 --- a/django_api/django_api/apps/ocha/tasks.py +++ b/django_api/django_api/apps/ocha/tasks.py @@ -19,7 +19,7 @@ def finish_response_plan_import(external_plan_id): source_url = HPC_V1_ROOT_URL + 'rpm/plan/id/{}?format=json&content=entities'.format(external_plan_id) plan_data = get_json_from_url(source_url)['data'] - save_location_list(plan_data.get('locations', []), save_children=True) + save_location_list(plan_data.get('locations', []), "response_plan") strategic_objectives_url = HPC_V1_ROOT_URL + 'rpm/plan/id/{}?format=json&content=measurements'.format( external_plan_id @@ -59,32 +59,44 @@ def sync_partners(area): @shared_task -def finish_partner_project_import(project_id, response_plan_id=None): +def finish_partner_project_import(project_id, external_id, response_plan_id=None): project = PartnerProject.objects.get(pk=project_id) - external_project_id = project.external_id - source_url = HPC_V2_ROOT_URL + 'project/{}'.format(external_project_id) - project_data = get_json_from_url(source_url) + source_url = HPC_V2_ROOT_URL + 'project/{}'.format(external_id) + project_data = get_json_from_url(source_url)['data'] - funding_url = HPC_V1_ROOT_URL + 'fts/flow?projectId={}'.format(external_project_id) + # Grab project details from projectVersion array of dict + current_project_data = None + + for projectVersion in project_data['projectVersions']: + if project_data['currentPublishedVersionId'] == projectVersion['id']: + current_project_data = projectVersion + break + + if not current_project_data: + logger.warning('No project V2 data found for project_id: {}. Using V1 data'.format(external_id)) + return + + funding_url = HPC_V1_ROOT_URL + 'fts/flow?projectId={}'.format(external_id) funding_data = get_json_from_url(funding_url) + try: funding_serializer = V1FundingSourceImportSerializer(data=funding_data['data']) funding_serializer.is_valid(raise_exception=True) funding_serializer.save() except Exception: - logger.warning('No funding data found for project_id: {}'.format(external_project_id)) + logger.warning('No funding data found for project_id: {}'.format(external_id)) clusters = [] if not response_plan_id: - for plan in project_data['data']['plans']: + for plan in current_project_data['plans']: if not ResponsePlan.objects.filter( external_source=EXTERNAL_DATA_SOURCES.HPC, external_id=plan['id'] ).exists(): import_response_plan(plan['id']) else: response_plan = ResponsePlan.objects.get(pk=response_plan_id) - for global_cluster_data in project_data['data']['globalClusters']: + for global_cluster_data in current_project_data['globalClusters']: # Don't save external_id for global clusters - it won't pass unique constraint cluster, _ = Cluster.objects.get_or_create( external_source=EXTERNAL_DATA_SOURCES.HPC, @@ -94,16 +106,17 @@ def finish_partner_project_import(project_id, response_plan_id=None): ) clusters.append(cluster) - project_cluster_ids = [c['id'] for c in project_data['data']['governingEntities'] if c['entityPrototypeId'] == 9] + project_cluster_ids = [c['id'] for c in current_project_data['governingEntities'] if c['entityPrototypeId'] == 9] # At this point all clusters should be in DB - clusters.extend(Cluster.objects.filter( + clusters.extend(list(Cluster.objects.filter( external_source=EXTERNAL_DATA_SOURCES.HPC, external_id__in=project_cluster_ids, - )) + ))) logger.debug('Adding {} clusters to project {} and it\'s partner.'.format( len(clusters), project )) + project.clusters.add(*clusters) project.partner.clusters.add(*clusters) - import_project_details(project, project_data['data']['currentPublishedVersionId']) + import_project_details(project, external_id) diff --git a/django_api/django_api/apps/ocha/tests.py b/django_api/django_api/apps/ocha/tests.py index f1045ff0d..bcbda52fd 100644 --- a/django_api/django_api/apps/ocha/tests.py +++ b/django_api/django_api/apps/ocha/tests.py @@ -1,5 +1,7 @@ import json import os +from unittest.mock import Mock, patch + from django.test import TestCase from django.conf import settings @@ -21,6 +23,7 @@ LocationWithReportableLocationGoalFactory, PartnerUserFactory, PartnerFactory, ProgressReportFactory, + PartnerActivityProjectContextFactory, QuantityReportableToLowerLevelOutputFactory, QuantityTypeIndicatorBlueprintFactory, WorkspaceFactory, @@ -94,8 +97,12 @@ def setUp(self): locations=[self.loc1, self.loc2], ) self.p_activity = ClusterActivityPartnerActivityFactory( + partner=self.partner, cluster_activity=self.activity, + ) + self.project_context = PartnerActivityProjectContextFactory( project=self.project, + activity=self.p_activity, ) self.sample_disaggregation_value_map = { "height": ["tall", "medium", "short", "extrashort"], @@ -206,10 +213,11 @@ def setUp(self): ) for _ in range(2): - ClusterIndicatorReportFactory( - reportable=self.partneractivity_reportable, - report_status=INDICATOR_REPORT_STATUS.submitted, - ) + with patch("django.db.models.signals.ModelSignal.send", Mock()): + ClusterIndicatorReportFactory( + reportable=self.partneractivity_reportable, + report_status=INDICATOR_REPORT_STATUS.submitted, + ) # Creating Level-3 disaggregation location data for all locations generate_3_num_disagg_data(self.partneractivity_reportable, indicator_type="quantity") @@ -236,19 +244,31 @@ def setUp(self): def test_load_data(self): with open(os.path.join(SAMPLES_DIR, 'V2_project_info.json')) as sample_file: external_project_data = json.load(sample_file)['data'] - external_project_data['partner'] = Partner.objects.first().pk - external_project_data['additional_information'] = "www.example.com" - external_project_data['cluster_ids'] = [self.cluster.id, ] - serializer = V2PartnerProjectImportSerializer(data=external_project_data) + + # Grab project details from projectVersion array of dict + current_project_data = None + + for project in external_project_data['projectVersions']: + if external_project_data['currentPublishedVersionId'] == project['id']: + current_project_data = project + break + + if 'code' in external_project_data: + current_project_data['code'] = external_project_data['code'] + + current_project_data['partner'] = Partner.objects.first().pk + current_project_data['additional_information'] = "www.example.com" + current_project_data['cluster_ids'] = [self.cluster.id, ] + serializer = V2PartnerProjectImportSerializer(data=current_project_data) self.assertTrue(serializer.is_valid(raise_exception=True)) partner_project = serializer.save() - self.assertEqual(partner_project.title, external_project_data['name'].strip()) - self.assertEqual(partner_project.code, external_project_data['code'].strip()) + self.assertEqual(partner_project.title, current_project_data['name'].strip()) + self.assertEqual(partner_project.code, current_project_data['code'].strip()) with open(os.path.join(SAMPLES_DIR, 'V1_cash_flow.json')) as sample_file: - external_project_data = json.load(sample_file)['data'] - external_project_data['partner'] = Partner.objects.first().pk - serializer = V1FundingSourceImportSerializer(data=external_project_data) + current_project_data = json.load(sample_file)['data'] + current_project_data['partner'] = Partner.objects.first().pk + serializer = V1FundingSourceImportSerializer(data=current_project_data) self.assertTrue(serializer.is_valid(raise_exception=True)) funding_source = serializer.save() self.assertIsNotNone(funding_source) @@ -293,8 +313,12 @@ def setUp(self): locations=[self.loc1, self.loc2], ) self.p_activity = ClusterActivityPartnerActivityFactory( + partner=self.partner, cluster_activity=self.activity, + ) + self.project_context = PartnerActivityProjectContextFactory( project=self.project, + activity=self.p_activity, ) self.sample_disaggregation_value_map = { "height": ["tall", "medium", "short", "extrashort"], @@ -405,10 +429,11 @@ def setUp(self): ) for _ in range(2): - ClusterIndicatorReportFactory( - reportable=self.partneractivity_reportable, - report_status=INDICATOR_REPORT_STATUS.submitted, - ) + with patch("django.db.models.signals.ModelSignal.send", Mock()): + ClusterIndicatorReportFactory( + reportable=self.partneractivity_reportable, + report_status=INDICATOR_REPORT_STATUS.submitted, + ) # Creating Level-3 disaggregation location data for all locations generate_3_num_disagg_data(self.partneractivity_reportable, indicator_type="quantity") @@ -435,15 +460,19 @@ def setUp(self): def test_multi_country_emergency_data(self): with open(os.path.join(SAMPLES_DIR, 'V1_response_plan.json')) as sample_file: response_plan_data = json.load(sample_file)['data'] + + response_plan_data['name'] = response_plan_data['planVersion']['name'] + response_plan_data['startDate'] = response_plan_data['planVersion']['startDate'] + response_plan_data['endDate'] = response_plan_data['planVersion']['endDate'] serializer = V1ResponsePlanImportSerializer(data=response_plan_data) self.assertTrue(serializer.is_valid(raise_exception=True)) response_plan = serializer.save() - self.assertEqual(response_plan.title, 'Syria regional refugee and resilience plan (3RP) 2016') + self.assertEqual(response_plan.title, 'Sahel Regional 2015') self.assertEqual( len(response_plan_data['locations']), response_plan.workspace.countries.count() ) - self.assertEqual(response_plan.workspace.title, 'Syrian Arab Republic - Civil Unrest (from 2012)') + self.assertEqual(response_plan.workspace.title, 'Sahel 2014-2016') self.assertEqual( len(response_plan_data['governingEntities']), response_plan.clusters.count() @@ -452,15 +481,19 @@ def test_multi_country_emergency_data(self): def test_single_country_emergency_data(self): with open(os.path.join(SAMPLES_DIR, 'V1_response_plan_single_country.json')) as sample_file: response_plan_data = json.load(sample_file)['data'] + + response_plan_data['name'] = response_plan_data['planVersion']['name'] + response_plan_data['startDate'] = response_plan_data['planVersion']['startDate'] + response_plan_data['endDate'] = response_plan_data['planVersion']['endDate'] serializer = V1ResponsePlanImportSerializer(data=response_plan_data) self.assertTrue(serializer.is_valid(raise_exception=True)) response_plan = serializer.save() - self.assertEqual(response_plan.title, 'occupied Palestinian territory 2016') + self.assertEqual(response_plan.title, 'Chad 2013') self.assertEqual( len(response_plan_data['locations']), response_plan.workspace.countries.count() ) - self.assertEqual(response_plan.workspace.title, 'occupied Palestinian territory') + self.assertEqual(response_plan.workspace.title, 'Chad') self.assertEqual( len(response_plan_data['governingEntities']), response_plan.clusters.count() diff --git a/django_api/django_api/apps/ocha/utilities.py b/django_api/django_api/apps/ocha/utilities.py index 90651e4fe..491c880db 100644 --- a/django_api/django_api/apps/ocha/utilities.py +++ b/django_api/django_api/apps/ocha/utilities.py @@ -59,13 +59,13 @@ def convert_to_json_ratio_value(value): } -def trim_list(object_list): +def trim_list(object_list, api_data_type): out = [] for obj in object_list: try: out.append({ 'id': obj['id'], - 'name': obj['name'], + 'name': obj['planVersion']['name'] if api_data_type == 'response_plan' else obj['name'], }) except KeyError: pass diff --git a/django_api/django_api/apps/ocha/views.py b/django_api/django_api/apps/ocha/views.py index 49a41b757..ca218b920 100644 --- a/django_api/django_api/apps/ocha/views.py +++ b/django_api/django_api/apps/ocha/views.py @@ -70,7 +70,7 @@ def get_response_plans(self): def get(self, request, *args, **kwargs): response_plans = self.get_response_plans() - return Response(trim_list(response_plans)) + return Response(trim_list(response_plans, 'response_plan')) def post(self, request, *args, **kwargs): plan_id = request.data.get('plan') @@ -117,7 +117,7 @@ def get(self, request, *args, **kwargs): if 'governingEntities' in plan_data: cluster_names = [ - ge['name'] for ge in plan_data['governingEntities'] if + ge['governingEntityVersion']['name'] for ge in plan_data['governingEntities'] if ge['entityPrototype']['refCode'] == RefCode.CLUSTER ] else: @@ -128,8 +128,8 @@ def get(self, request, *args, **kwargs): else: out_data['planType'] = RESPONSE_PLAN_TYPE.hrp - out_data['startDate'] = parse(out_data['startDate']).strftime(settings.DATE_FORMAT) - out_data['endDate'] = parse(out_data['endDate']).strftime(settings.DATE_FORMAT) + out_data['startDate'] = parse(plan_data['planVersion']['startDate']).strftime(settings.DATE_FORMAT) + out_data['endDate'] = parse(plan_data['planVersion']['endDate']).strftime(settings.DATE_FORMAT) return Response(out_data) @@ -180,7 +180,7 @@ def get(self, request, *args, **kwargs): else: result = projects - return Response(trim_list(result)) + return Response(trim_list(result, 'partner_project')) def get_partner(self): if self.request.user.prp_roles.filter( @@ -239,7 +239,7 @@ def get(self, request, *args, **kwargs): # We should use project code whenever is possible. ID filtering might be not working in case of new OPS data if details: - project_code = details[0]['data']['code'] + project_code = details[0]['data']['projectVersion']['code'] budget_url = HPC_V1_ROOT_URL + 'fts/flow?projectCode={}'.format(project_code) else: budget_url = HPC_V1_ROOT_URL + 'fts/flow?projectId={}'.format(self.kwargs['id']) @@ -261,6 +261,17 @@ def get(self, request, *args, **kwargs): current_project_data = project break + # Fetch attachment data + attachment_url = HPC_V2_ROOT_URL \ + + 'project/{}/attachments'.format(details['data']['id']) + attachments = get_json_from_url(attachment_url) + + if 'data' in attachments: + out_data['attachments'] = map( + lambda item: item['attachment']['attachmentVersion']['value']['description'], + filter(lambda x: x['attachment']['type'] == 'indicator', attachments['data']) + ) + out_data['startDate'] = current_project_data['startDate'] out_data['endDate'] = current_project_data['endDate'] out_data['name'] = current_project_data['name'] @@ -272,10 +283,13 @@ def get(self, request, *args, **kwargs): out_data['totalBudgetUSD'] = current_project_data['currentRequestedFunds'] funding_sources = [] - for flow in budget_info['data']['flows']: - funding_sources.extend([ - fs['name'] for fs in flow.get('sourceObjects', []) if fs['type'] == 'Organization' - ]) + + if 'data' in budget_info: + for flow in budget_info['data']['flows']: + funding_sources.extend([ + fs['name'] for fs in flow.get('sourceObjects', []) if fs['type'] == 'Organization' + ]) + out_data['fundingSources'] = funding_sources out_data['objective'] = current_project_data['objective'] additional_information = list() diff --git a/django_api/django_api/apps/partner/admin.py b/django_api/django_api/apps/partner/admin.py index 49716217a..145ac75c2 100644 --- a/django_api/django_api/apps/partner/admin.py +++ b/django_api/django_api/apps/partner/admin.py @@ -4,7 +4,9 @@ Partner, PartnerProject, PartnerActivity, - PartnerProjectFunding) + PartnerProjectFunding, + PartnerActivityProjectContext, +) class PartnerAdmin(admin.ModelAdmin): @@ -14,17 +16,23 @@ class PartnerAdmin(admin.ModelAdmin): search_fields = ('title', 'short_title', 'alternate_title') +class PartnerActivityProjectContextInline(admin.StackedInline): + model = PartnerActivityProjectContext + extra = 1 + min_num = 0 + + class PartnerProjectAdmin(admin.ModelAdmin): - list_display = ('title', 'partner', 'description', 'start_date', - 'end_date', 'status',) - list_filter = ('status', 'partner', 'clusters') - search_fields = ('title', 'description', 'additional_information') + list_display = ('title', 'partner', 'description',) + list_filter = ('status', 'partner', 'clusters',) + search_fields = ('title', 'description', 'additional_information',) class PartnerActivityAdmin(admin.ModelAdmin): - list_display = ('title', 'partner', 'project', 'cluster_activity', - 'cluster_objective', 'start_date', 'end_date', 'status',) - list_filter = ('status', 'partner', 'project') + inlines = (PartnerActivityProjectContextInline, ) + list_display = ('title', 'partner', 'cluster_activity', + 'cluster_objective',) + list_filter = ('partner',) search_fields = ('title', ) diff --git a/django_api/django_api/apps/partner/migrations/0004_auto_20190522_1759.py b/django_api/django_api/apps/partner/migrations/0004_auto_20190522_1759.py new file mode 100644 index 000000000..9d3735f96 --- /dev/null +++ b/django_api/django_api/apps/partner/migrations/0004_auto_20190522_1759.py @@ -0,0 +1,74 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.20 on 2019-05-22 17:59 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion +import django.utils.timezone +import model_utils.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('partner', '0003_auto_20181024_0032'), + ] + + operations = [ + migrations.CreateModel( + name='PartnerActivityProjectContext', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), + ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), + ('start_date', models.DateField()), + ('end_date', models.DateField()), + ('status', models.CharField(choices=[('Ong', 'Ongoing'), ('Pla', 'Planned'), ('Com', 'Completed')], default='Ong', max_length=3)), + ], + ), + migrations.RemoveField( + model_name='partneractivity', + name='end_date', + ), + migrations.RemoveField( + model_name='partneractivity', + name='project', + ), + migrations.RemoveField( + model_name='partneractivity', + name='start_date', + ), + migrations.RemoveField( + model_name='partneractivity', + name='status', + ), + migrations.AlterField( + model_name='partner', + name='external_source', + field=models.TextField(blank=True, choices=[('HPC', 'HPC'), ('OPS', 'OPS'), ('UNICEF', 'UNICEF')], null=True), + ), + migrations.AlterField( + model_name='partnerproject', + name='external_source', + field=models.TextField(blank=True, choices=[('HPC', 'HPC'), ('OPS', 'OPS'), ('UNICEF', 'UNICEF')], null=True), + ), + migrations.AddField( + model_name='partneractivityprojectcontext', + name='activity', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='partner.PartnerActivity'), + ), + migrations.AddField( + model_name='partneractivityprojectcontext', + name='project', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='partner.PartnerProject'), + ), + migrations.AddField( + model_name='partneractivity', + name='projects', + field=models.ManyToManyField(related_name='partner_activities', through='partner.PartnerActivityProjectContext', to='partner.PartnerProject'), + ), + migrations.AlterUniqueTogether( + name='partneractivityprojectcontext', + unique_together=set([('project', 'activity')]), + ), + ] diff --git a/django_api/django_api/apps/partner/models.py b/django_api/django_api/apps/partner/models.py index a155f518c..8d6707573 100644 --- a/django_api/django_api/apps/partner/models.py +++ b/django_api/django_api/apps/partner/models.py @@ -3,7 +3,7 @@ from django.contrib.contenttypes.fields import GenericRelation from django.contrib.postgres.fields import JSONField from django.db import models -from django.db.models.signals import pre_save +from django.db.models.signals import pre_save, m2m_changed from django.dispatch import receiver from model_utils.models import TimeStampedModel @@ -259,6 +259,35 @@ def is_ocha_imported(self): return bool(self.external_id and self.external_source == EXTERNAL_DATA_SOURCES.HPC) +@receiver(m2m_changed, sender=PartnerProject.locations.through, dispatch_uid="sync_locations_for_pp_reportables") +def sync_locations_for_pp_reportables(sender, instance, action, pk_set, **kwargs): + if action != "post_add": + return + + from core.models import Location + from indicator.models import ReportableLocationGoal + locations = instance.locations.all() + + if locations.exists(): + loc_type = locations.first().gateway.admin_level + new_locations = Location.objects.filter(id__in=pk_set) + + for r in instance.reportables.all(): + r_locations = r.locations.all() + + if not r_locations.exists(): + return + + r_loc_type = r_locations.first().gateway.admin_level + + if loc_type == r_loc_type: + for loc in new_locations: + ReportableLocationGoal.objects.get_or_create( + reportable=r, + location=loc, + ) + + class PartnerProjectFunding(TimeStampedModel): project = models.OneToOneField(PartnerProject) @@ -311,14 +340,17 @@ class PartnerActivity(TimeStampedModel): partner is allowed to define their ideas that wasn't defined. related models: - partner.PartnerProject (ForeignKey): "project" + partner.PartnerProject (ManyToMany): "projects" partner.Partner (ForeignKey): "partner" cluster.ClusterActivity (ForeignKey): "cluster_activity" indicator.Reportable (GenericRelation): "reportables" """ title = models.CharField(max_length=2048) - project = models.ForeignKey(PartnerProject, null=True, - related_name="partner_activities") + projects = models.ManyToManyField( + PartnerProject, + related_name="partner_activities", + through="PartnerActivityProjectContext", + ) partner = models.ForeignKey(Partner, related_name="partner_activities") cluster_activity = models.ForeignKey('cluster.ClusterActivity', related_name="partner_activities", @@ -330,12 +362,6 @@ class PartnerActivity(TimeStampedModel): related_query_name='partner_activities') locations = models.ManyToManyField('core.Location', related_name="partner_activities") - start_date = models.DateField() - end_date = models.DateField() - - # PartnerActivity shares the status flags with PartnerProject - status = models.CharField(max_length=3, choices=PARTNER_PROJECT_STATUS, - default=PARTNER_PROJECT_STATUS.ongoing) class Meta: ordering = ['-id'] @@ -346,11 +372,12 @@ class Meta: @property def clusters(self): - return self.project.clusters.all() + from cluster.models import Cluster + return Cluster.objects.filter(id__in=self.projects.values_list('clusters', flat=True).distinct()) @property def response_plan(self): - return self.project.clusters.all()[0].response_plan + return self.clusters[0].response_plan @property def is_custom(self): @@ -366,3 +393,17 @@ def check_pa_double_fks(sender, instance, **kwargs): raise Exception( "PartnerActivity cannot belong to both ClusterActivity and ClusterObjective" ) + + +class PartnerActivityProjectContext(TimeStampedModel): + project = models.ForeignKey("PartnerProject", on_delete=models.CASCADE) + activity = models.ForeignKey("PartnerActivity", on_delete=models.CASCADE) + start_date = models.DateField() + end_date = models.DateField() + + # PartnerActivity shares the status flags with PartnerProject + status = models.CharField(max_length=3, choices=PARTNER_PROJECT_STATUS, + default=PARTNER_PROJECT_STATUS.ongoing) + + class Meta: + unique_together = ('project', 'activity') diff --git a/django_api/django_api/apps/partner/serializers.py b/django_api/django_api/apps/partner/serializers.py index 45fc9524b..84bf6a7d3 100644 --- a/django_api/django_api/apps/partner/serializers.py +++ b/django_api/django_api/apps/partner/serializers.py @@ -2,7 +2,8 @@ from rest_framework import serializers from core.serializers import ShortLocationSerializer -from core.common import PARTNER_PROJECT_STATUS, PARTNER_TYPE, CSO_TYPES +from core.common import PARTNER_TYPE, CSO_TYPES, PARTNER_ACTIVITY_STATUS +from core.models import Location from cluster.models import ( Cluster, @@ -22,7 +23,9 @@ Partner, PartnerProject, PartnerActivity, - PartnerProjectFunding) + PartnerProjectFunding, + PartnerActivityProjectContext +) class PartnerProjectSimpleSerializer(serializers.ModelSerializer): @@ -46,14 +49,40 @@ class Meta: ) +class PartnerActivityProjectContextSerializer(serializers.ModelSerializer): + project_id = serializers.IntegerField(source="id") + project_name = serializers.SerializerMethodField() + start_date = serializers.DateField() + end_date = serializers.DateField() + status = serializers.ChoiceField(choices=PARTNER_ACTIVITY_STATUS) + + class Meta: + model = PartnerActivityProjectContext + fields = ( + 'project_id', + 'project_name', + 'start_date', + 'end_date', + 'status', + ) + + def get_project_name(self, obj): + return obj.project.title if getattr(obj, 'project', None) else obj.title + + +class PartnerActivityProjectContextDetailUpdateSerializer(PartnerActivityProjectContextSerializer): + project_id = serializers.IntegerField(source="project.id") + + class PartnerActivitySimpleSerializer(serializers.ModelSerializer): + projects = PartnerActivityProjectContextSerializer(many=True) class Meta: model = PartnerActivity fields = ( 'id', 'title', - 'project', + 'projects', 'partner', 'cluster_activity' ) @@ -261,6 +290,7 @@ def validate(self, attrs): validated_data = super(PartnerProjectSerializer, self).validate(attrs) start_date = validated_data.get('start_date', getattr(self.instance, 'start_date', None)) end_date = validated_data.get('end_date', getattr(self.instance, 'start_date', None)) + locations = self.initial_data.get('locations', list()) if start_date and end_date and end_date < start_date: raise serializers.ValidationError({ @@ -274,6 +304,13 @@ def validate(self, attrs): 'custom_fields': 'Custom Field Names should be unique' }) + if locations and Location.objects.filter(id__in=[l['id'] for l in locations]) \ + .values_list('gateway__admin_level', flat=True) \ + .distinct().count() != 1: + raise serializers.ValidationError({ + 'locations': 'All locations need to have same admin level' + }) + return validated_data def save_funding(self, instance=None): @@ -305,6 +342,11 @@ def create(self, validated_data): project.clusters.add(*Cluster.objects.filter(id__in=[c['id'] for c in clusters])) + locations = self.initial_data.get('locations') + + if locations: + project.locations.add(*Location.objects.filter(id__in=[l['id'] for l in locations])) + self.save_funding(instance=project) return project @@ -329,6 +371,13 @@ def update(self, instance, validated_data): project.clusters.clear() project.clusters.add(*Cluster.objects.filter(id__in=cluster_ids)) + locations = self.initial_data.get('locations') + + if locations: + location_ids = [l['id'] for l in locations] + project.locations.clear() + project.locations.add(*Location.objects.filter(id__in=location_ids)) + self.save_funding(instance=instance) return project @@ -368,11 +417,8 @@ def get_links(self, obj): class PartnerActivityBaseCreateSerializer(serializers.Serializer): id = serializers.IntegerField(read_only=True) cluster = serializers.IntegerField(write_only=True) - project = serializers.IntegerField(write_only=True) + projects = PartnerActivityProjectContextSerializer(write_only=True, many=True) partner = serializers.IntegerField(write_only=True) - start_date = serializers.DateField(write_only=True) - end_date = serializers.DateField(write_only=True) - status = serializers.ChoiceField(choices=PARTNER_PROJECT_STATUS, write_only=True) def validate(self, data): cluster = Cluster.objects.filter(id=data['cluster']).first() @@ -392,34 +438,36 @@ def validate(self, data): 'partner': 'Partner does not belong to Cluster {}.'.format(data['cluster']) }) - project = PartnerProject.objects.filter(id=data['project']).first() - if not project: - raise serializers.ValidationError({ - 'project': 'PartnerProject ID {} does not exist.'.format(data['project']) - }) - elif not project.partner_id == partner.id: - raise serializers.ValidationError({ - 'partner': 'PartnerProject does not belong to Partner {}.'.format(self.initial_data['partner']) - }) + for idx, project_context in enumerate(data['projects']): + project = PartnerProject.objects.filter(id=project_context['id']).first() + if not project: + raise serializers.ValidationError({ + 'project_id': 'PartnerProject ID {} does not exist.'.format(project_context['id']) + }) + elif not project.partner_id == partner.id: + raise serializers.ValidationError({ + 'partner': 'PartnerProject does not belong to Partner {}.'.format(self.initial_data['partner']) + }) - if data['start_date'] > data['end_date']: - raise serializers.ValidationError({ - "start_date": "start_date should come before end_date", - }) + data['projects'][idx]['project'] = project - data['cluster'] = cluster - data['partner'] = partner - data['project'] = project + if project_context['start_date'] > project_context['end_date']: + raise serializers.ValidationError({ + "start_date": "start_date should come before end_date", + }) - if data['project'].start_date > data['start_date']: - raise serializers.ValidationError({ - "start_date": "start_date cannot start before its project's start date", - }) + if project.start_date > project_context['start_date']: + raise serializers.ValidationError({ + "start_date": "start_date cannot start before its project's start date", + }) - if data['project'].end_date < data['end_date']: - raise serializers.ValidationError({ - "end_date": "end_date cannot end after its project's end date", - }) + if project.end_date < project_context['end_date']: + raise serializers.ValidationError({ + "end_date": "end_date cannot end after its project's end date", + }) + + data['cluster'] = cluster + data['partner'] = partner return data @@ -455,15 +503,27 @@ def create(self, validated_data): try: partner_activity = PartnerActivity.objects.create( title=validated_data['cluster_activity'].title, - project=validated_data['project'], partner=validated_data['partner'], cluster_activity=validated_data['cluster_activity'], - start_date=validated_data['start_date'], - end_date=validated_data['end_date'], - status=validated_data['status'], ) + + for validated_context_data in validated_data['projects']: + project = validated_context_data['project'] + PartnerActivityProjectContext.objects.update_or_create( + defaults={ + 'activity': partner_activity, + 'project': project, + }, + start_date=validated_context_data['start_date'], + end_date=validated_context_data['end_date'], + status=validated_context_data['status'], + ) + except Exception as e: - raise serializers.ValidationError(e.message) + if getattr(e, 'message', None): + raise serializers.ValidationError(e.message) + else: + raise serializers.ValidationError(e) # Grab Cluster Activity instance from this newly created Partner Activity instance cluster_activity = validated_data['cluster_activity'] @@ -492,11 +552,6 @@ def validate(self, data): ) }) - if data['project'].partner != data['partner']: - return serializers.ValidationError({ - "project": "Project does not belong to Partner {}".format(data['partner']), - }) - data['cluster_objective'] = cluster_objective return data @@ -505,22 +560,34 @@ def create(self, validated_data): try: partner_activity = PartnerActivity.objects.create( title=validated_data['title'], - project=validated_data['project'], partner=validated_data['partner'], cluster_objective=validated_data['cluster_objective'], - start_date=validated_data['start_date'], - end_date=validated_data['end_date'], - status=validated_data['status'], ) + + for validated_context_data in validated_data['projects']: + project = validated_context_data['project'] + PartnerActivityProjectContext.objects.update_or_create( + defaults={ + 'activity': partner_activity, + 'project': project, + }, + start_date=validated_context_data['start_date'], + end_date=validated_context_data['end_date'], + status=validated_context_data['status'], + ) except Exception as e: - raise serializers.ValidationError(e.message) + if getattr(e, 'message', None): + raise serializers.ValidationError(e.message) + else: + raise serializers.ValidationError(e) + return partner_activity class PartnerActivitySerializer(serializers.ModelSerializer): cluster = serializers.SerializerMethodField() - project = PartnerProjectSimpleSerializer() + projects = PartnerActivityProjectContextDetailUpdateSerializer(source='partneractivityprojectcontext_set', many=True) reportables = ClusterIndicatorForPartnerActivitySerializer(many=True) cluster_activity = ClusterActivitySerializer() partner = PartnerDetailsSerializer() @@ -534,13 +601,10 @@ class Meta: 'title', 'partner', 'cluster', - 'status', - 'project', + 'projects', 'cluster_activity', 'cluster_objective', 'reportables', - 'start_date', - 'end_date', 'is_custom', ) @@ -569,19 +633,18 @@ def get_cluster_objective(self, obj): class PartnerActivityUpdateSerializer(serializers.ModelSerializer): - project = serializers.IntegerField(write_only=True) + projects = PartnerActivityProjectContextDetailUpdateSerializer(source='partneractivityprojectcontext_set', many=True) class Meta: model = PartnerActivity fields = ( 'title', - 'status', - 'project', - 'start_date', - 'end_date', + 'projects', ) def __init__(self, instance, *args, **kwargs): + self.partial = kwargs['partial'] + if not instance.is_custom: self.fields.pop('title') super(PartnerActivityUpdateSerializer, self).__init__(instance, *args, **kwargs) @@ -593,26 +656,61 @@ def get_extra_kwargs(self): } def validate(self, data): - project_id = data.pop('project', None) - project = PartnerProject.objects.filter(id=project_id).first() - if not project: - raise serializers.ValidationError({ - 'project': 'PartnerProject ID {} does not exist.'.format(data['project']) - }) - elif not project.partner_id == self.instance.partner.id: - raise serializers.ValidationError({ - 'partner': 'PartnerProject does not belong to Partner {}.'.format(self.initial_data['partner']) - }) + for idx, project_context in enumerate(data['partneractivityprojectcontext_set']): + project = PartnerProject.objects.filter(id=project_context['project']['id']).first() + if not project: + raise serializers.ValidationError({ + 'project_id': 'PartnerProject ID {} does not exist.'.format(project_context['project']['id']) + }) + elif not project.partner_id == self.instance.partner.id: + raise serializers.ValidationError({ + 'partner': 'PartnerProject does not belong to Partner {}.'.format(self.instance.partner.id) + }) + + data['partneractivityprojectcontext_set'][idx]['project'] = project + + if project_context['start_date'] > project_context['end_date']: + raise serializers.ValidationError({ + "start_date": "start_date should come before end_date", + }) + + if project.start_date > project_context['start_date']: + raise serializers.ValidationError({ + "start_date": "start_date cannot start before its project's start date", + }) + + if project.end_date < project_context['end_date']: + raise serializers.ValidationError({ + "end_date": "end_date cannot end after its project's end date", + }) + return super(PartnerActivityUpdateSerializer, self).validate(data) def update(self, instance, validated_data): instance.title = validated_data.get('title', instance.title) - instance.project = validated_data.get('project', instance.project) - instance.start_date = validated_data.get('start_date', instance.start_date) - instance.end_date = validated_data.get('end_date', instance.end_date) - instance.status = validated_data.get('status', instance.status) instance.save() + old_projects = set(instance.projects.values_list('id', flat=True)) + updated_projects = set(map(lambda x: x['project'].id, validated_data['partneractivityprojectcontext_set'])) + old_projects_to_delete = old_projects.difference(updated_projects) + + PartnerActivityProjectContext.objects.filter( + activity=instance, + project__in=old_projects_to_delete + ).delete() + + for validated_context_data in validated_data['partneractivityprojectcontext_set']: + project = validated_context_data['project'] + obj, created = PartnerActivityProjectContext.objects.update_or_create( + project=project, + activity=instance, + defaults={ + 'start_date': validated_context_data['start_date'], + 'end_date': validated_context_data['end_date'], + 'status': validated_context_data['status'] + } + ) + return instance @@ -649,8 +747,13 @@ def fix_choices(self, validated_data): def update(self, instance, validated_data): validated_data = self.fix_choices(validated_data) - return Partner.objects.filter( - vendor_number=validated_data['vendor_number']).update(**validated_data) + + for key, value in validated_data.items(): + setattr(instance, key, value) + + instance.save() + + return instance def create(self, validated_data): validated_data = self.fix_choices(validated_data) diff --git a/django_api/django_api/apps/partner/tests/test_views.py b/django_api/django_api/apps/partner/tests/test_views.py index 3805d8124..73ea06e21 100644 --- a/django_api/django_api/apps/partner/tests/test_views.py +++ b/django_api/django_api/apps/partner/tests/test_views.py @@ -1,4 +1,5 @@ import datetime +from unittest.mock import Mock, patch from django.conf import settings from django.urls import reverse @@ -23,6 +24,7 @@ LocationFactory, LocationWithReportableLocationGoalFactory, PartnerUserFactory, PartnerFactory, + PartnerActivityProjectContextFactory, ProgressReportFactory, QuantityReportableToLowerLevelOutputFactory, QuantityTypeIndicatorBlueprintFactory, @@ -95,8 +97,12 @@ def setUp(self): locations=[self.loc1, self.loc2], ) self.p_activity = ClusterActivityPartnerActivityFactory( + partner=self.partner, cluster_activity=self.activity, + ) + self.project_context = PartnerActivityProjectContextFactory( project=self.project, + activity=self.p_activity, ) self.sample_disaggregation_value_map = { "height": ["tall", "medium", "short", "extrashort"], @@ -207,10 +213,11 @@ def setUp(self): ) for _ in range(2): - ClusterIndicatorReportFactory( - reportable=self.partneractivity_reportable, - report_status=INDICATOR_REPORT_STATUS.submitted, - ) + with patch("django.db.models.signals.ModelSignal.send", Mock()): + ClusterIndicatorReportFactory( + reportable=self.partneractivity_reportable, + report_status=INDICATOR_REPORT_STATUS.submitted, + ) # Creating Level-3 disaggregation location data for all locations generate_3_num_disagg_data(self.partneractivity_reportable, indicator_type="quantity") @@ -363,8 +370,8 @@ def setUp(self): locations=[self.loc1, self.loc2], ) self.p_activity = ClusterActivityPartnerActivityFactory( + partner=self.partner, cluster_activity=self.activity, - project=self.project, ) self.sample_disaggregation_value_map = { "height": ["tall", "medium", "short", "extrashort"], @@ -475,10 +482,11 @@ def setUp(self): ) for _ in range(2): - ClusterIndicatorReportFactory( - reportable=self.partneractivity_reportable, - report_status=INDICATOR_REPORT_STATUS.submitted, - ) + with patch("django.db.models.signals.ModelSignal.send", Mock()): + ClusterIndicatorReportFactory( + reportable=self.partneractivity_reportable, + report_status=INDICATOR_REPORT_STATUS.submitted, + ) # Creating Level-3 disaggregation location data for all locations generate_3_num_disagg_data(self.partneractivity_reportable, indicator_type="quantity") @@ -587,10 +595,14 @@ def setUp(self): self.data = { "cluster": self.cluster.id, "partner": self.partner.id, - "project": self.project.id, - "start_date": self.project.start_date.strftime(settings.PRINT_DATA_FORMAT), - "end_date": self.project.end_date.strftime(settings.PRINT_DATA_FORMAT), - "status": "Ong" + "projects": [ + { + "project_id": self.project.id, + "start_date": self.project.start_date.strftime(settings.PRINT_DATA_FORMAT), + "end_date": self.project.end_date.strftime(settings.PRINT_DATA_FORMAT), + "status": "Ong" + } + ], } def test_create_activity_from_cluster_activity(self): @@ -678,8 +690,12 @@ def setUp(self): locations=[self.loc1, self.loc2], ) self.p_activity = ClusterActivityPartnerActivityFactory( + partner=self.partner, cluster_activity=self.activity, + ) + self.project_context = PartnerActivityProjectContextFactory( project=self.project, + activity=self.p_activity, ) self.sample_disaggregation_value_map = { "height": ["tall", "medium", "short", "extrashort"], @@ -790,10 +806,11 @@ def setUp(self): ) for _ in range(2): - ClusterIndicatorReportFactory( - reportable=self.partneractivity_reportable, - report_status=INDICATOR_REPORT_STATUS.submitted, - ) + with patch("django.db.models.signals.ModelSignal.send", Mock()): + ClusterIndicatorReportFactory( + reportable=self.partneractivity_reportable, + report_status=INDICATOR_REPORT_STATUS.submitted, + ) # Creating Level-3 disaggregation location data for all locations generate_3_num_disagg_data(self.partneractivity_reportable, indicator_type="quantity") diff --git a/django_api/django_api/apps/partner/views.py b/django_api/django_api/apps/partner/views.py index ca3acf7ce..560f366c4 100644 --- a/django_api/django_api/apps/partner/views.py +++ b/django_api/django_api/apps/partner/views.py @@ -370,7 +370,7 @@ def check_permissions(self, request): def get_queryset(self): return PartnerActivity.objects.filter( - project__clusters__response_plan_id=self.kwargs['response_plan_id'] + projects__clusters__response_plan_id=self.kwargs['response_plan_id'] ).distinct() def get_object(self, pk): @@ -380,7 +380,8 @@ def patch(self, request, pk, *args, **kwargs): instance = self.get_object(pk) serializer = self.get_serializer( instance=instance, - data=self.request.data + data=self.request.data, + partial=True ) serializer.is_valid(raise_exception=True) diff --git a/django_api/django_api/apps/unicef/export_report.py b/django_api/django_api/apps/unicef/export_report.py index abf354e79..55d5b0236 100644 --- a/django_api/django_api/apps/unicef/export_report.py +++ b/django_api/django_api/apps/unicef/export_report.py @@ -1,8 +1,7 @@ import itertools -import uuid from openpyxl.reader.excel import load_workbook -from openpyxl.styles import Font, Alignment, NamedStyle +from openpyxl.styles import Font, Alignment, NamedStyle, PatternFill from openpyxl.utils import get_column_letter from django.conf import settings @@ -12,13 +11,16 @@ from indicator.models import DisaggregationValue, IndicatorBlueprint from indicator.constants import ValueType +from indicator.utilities import convert_string_number_to_float PATH = settings.BASE_DIR + "/apps/unicef/templates/excel/hr_export.xlsx" SAVE_PATH = '/tmp/' -DISAGGREGATION_COLUMN_START = 40 +DISAGGREGATION_COLUMN_START = 43 INDICATOR_DATA_ROW_START = 5 MAXIMUM_DISAGGREGATIONS_PER_INDICATOR = 3 +REQUIRED_FILL = PatternFill(fill_type='solid', start_color='FFE5A479', end_color='FFE5A479') +NO_FILL = PatternFill(fill_type=None) class ProgressReportXLSXExporter: @@ -27,11 +29,11 @@ class ProgressReportXLSXExporter: def __init__(self, progress_report, analysis=None): self.wb = load_workbook(PATH) - self.sheet = self.wb.get_active_sheet() + self.sheet = self.wb.get_sheet_by_name('PR Template') self.progress_report = progress_report if analysis is not None: self.analysis = analysis - self.sheets = [self.sheet, ] + self.sheets = [self.wb.get_sheet_by_name('README'), self.sheet, ] self.disaggregations_start_column = DISAGGREGATION_COLUMN_START self.bold_center_style = NamedStyle(name="Bold and Center") @@ -71,7 +73,7 @@ def fill_sheet(self, disaggregation_types, indicators): # Hide non QPR columns if self.progress_report.report_type != common.QPR_TYPE: - for col in ['L', 'M', 'O', 'P']: + for col in ['L', 'M', 'O', 'P', 'Q']: self.sheet.column_dimensions[col].hidden = True # Prepare Disaggregation Values for given disaggregation types @@ -144,7 +146,7 @@ def fill_sheet(self, disaggregation_types, indicators): ) else: try: - indicator_target = float( + indicator_target = convert_string_number_to_float( indicator.reportable.calculated_target) except ValueError: indicator_target = indicator.reportable.calculated_target @@ -173,45 +175,68 @@ def fill_sheet(self, disaggregation_types, indicators): self.sheet.cell(row=start_row_id, column=4).value = \ self.progress_report.programme_document.title self.sheet.cell(row=start_row_id, column=5).value = \ - indicator.reportable.content_object.title - self.sheet.cell(row=start_row_id, column=6).value = \ self.progress_report.get_reporting_period() - self.sheet.cell(row=start_row_id, column=7).value = \ + self.sheet.cell(row=start_row_id, column=6).value = \ self.progress_report.get_status_display() - self.sheet.cell(row=start_row_id, column=8).value = \ + self.sheet.cell(row=start_row_id, column=7).value = \ self.progress_report.due_date - self.sheet.cell(row=start_row_id, column=9).value = \ + self.sheet.cell(row=start_row_id, column=8).value = \ self.progress_report.submission_date - self.sheet.cell(row=start_row_id, column=10).value = \ + self.sheet.cell(row=start_row_id, column=9).value = \ self.progress_report.partner_contribution_to_date - self.sheet.cell(row=start_row_id, column=11).value = \ + self.sheet.cell(row=start_row_id, column=9).fill = \ + REQUIRED_FILL + self.sheet.cell(row=start_row_id, column=10).value = \ self.progress_report.programme_document.funds_received_to_date - self.sheet.cell(row=start_row_id, column=12).value = \ + self.sheet.cell(row=start_row_id, column=11).value = \ self.progress_report.challenges_in_the_reporting_period - self.sheet.cell(row=start_row_id, column=13).value = \ + self.sheet.cell(row=start_row_id, column=11).fill = \ + REQUIRED_FILL + self.sheet.cell(row=start_row_id, column=12).value = \ self.progress_report.proposed_way_forward - self.sheet.cell(row=start_row_id, column=14).value = \ + self.sheet.cell(row=start_row_id, column=12).fill = \ + REQUIRED_FILL + self.sheet.cell(row=start_row_id, column=13).value = \ self.progress_report.submitted_by.display_name if \ self.progress_report.submitted_by else '' - self.sheet.cell(row=start_row_id, column=15).value = \ - self.progress_report.attachment.url if self.progress_report.attachment else '' - self.sheet.cell(row=start_row_id, column=16).value = \ - self.progress_report.narrative + + attachments = self.progress_report.attachments.all() + other_attachments = attachments.filter(type="Other") + + self.sheet.cell(row=start_row_id, column=14).value = \ + attachments.filter(type="FACE").first().file.url if attachments.filter(type="FACE").exists() else '' + + if other_attachments.exists(): + if other_attachments.count() == 1: + self.sheet.cell(row=start_row_id, column=15).value = other_attachments.first().file.url + self.sheet.cell(row=start_row_id, column=16).value = '' + elif other_attachments.count() > 1: + self.sheet.cell(row=start_row_id, column=15).value = other_attachments.first().file.url + self.sheet.cell(row=start_row_id, column=16).value = other_attachments.last().file.url + else: + self.sheet.cell(row=start_row_id, column=15).value = '' + self.sheet.cell(row=start_row_id, column=16).value = '' + self.sheet.cell(row=start_row_id, column=17).value = \ - indicator.get_overall_status_display() + indicator.reportable.content_object.title + self.sheet.cell(row=start_row_id, column=18).value = \ - indicator.narrative_assessment + indicator.get_overall_status_display() self.sheet.cell(row=start_row_id, column=19).value = \ - indicator.reportable.blueprint.title + indicator.narrative_assessment + self.sheet.cell(row=start_row_id, column=19).fill = \ + REQUIRED_FILL self.sheet.cell(row=start_row_id, column=20).value = \ - indicator.display_type + indicator.reportable.blueprint.title self.sheet.cell(row=start_row_id, column=21).value = \ - indicator_target + indicator.display_type self.sheet.cell(row=start_row_id, column=22).value = \ - indicator.calculation_formula_across_locations + indicator_target self.sheet.cell(row=start_row_id, column=23).value = \ - indicator.calculation_formula_across_periods + indicator.calculation_formula_across_locations self.sheet.cell(row=start_row_id, column=24).value = \ + indicator.calculation_formula_across_periods + self.sheet.cell(row=start_row_id, column=25).value = \ location_data.previous_location_progress_value # Iterate over location admin references: @@ -220,9 +245,9 @@ def fill_sheet(self, disaggregation_types, indicators): admin_level = location.gateway.admin_level # TODO: secure in case of wrong location data admin_level = min(admin_level, 5) - self.sheet.cell(row=start_row_id, column=24 + + self.sheet.cell(row=start_row_id, column=25 + admin_level * 2).value = location.title - self.sheet.cell(row=start_row_id, column=24 + + self.sheet.cell(row=start_row_id, column=25 + admin_level * 2 - 1).value = location.gateway.name if location.parent: @@ -230,15 +255,19 @@ def fill_sheet(self, disaggregation_types, indicators): else: break - self.sheet.cell(row=start_row_id, column=35).value = \ - achievement_in_reporting_period self.sheet.cell(row=start_row_id, column=36).value = \ - total_cumulative_progress + indicator.reportable.numerator_label self.sheet.cell(row=start_row_id, column=37).value = \ - self.progress_report.id + indicator.reportable.denominator_label self.sheet.cell(row=start_row_id, column=38).value = \ - indicator.id + achievement_in_reporting_period self.sheet.cell(row=start_row_id, column=39).value = \ + total_cumulative_progress + self.sheet.cell(row=start_row_id, column=40).value = \ + self.progress_report.id + self.sheet.cell(row=start_row_id, column=41).value = \ + indicator.id + self.sheet.cell(row=start_row_id, column=42).value = \ location_data.id # Check location item disaggregation type @@ -251,6 +280,9 @@ def fill_sheet(self, disaggregation_types, indicators): # Check location item values blueprint = location_data.indicator_report.reportable.blueprint + for dk, dv in disaggregation_values_map.items(): + self.sheet.cell(row=start_row_id, column=dv).fill = REQUIRED_FILL + for k, v in location_data.disaggregation.items(): if k == "()": self.sheet.cell( @@ -258,6 +290,12 @@ def fill_sheet(self, disaggregation_types, indicators): column=disaggregation_values_map['()']).value = v['v'] \ if blueprint.unit == IndicatorBlueprint.NUMBER else "{}/{}".format(v['v'], v['d']) + # De-highlight total column if the indicator is disaggregated + if disaggregation_values_list: + self.sheet.cell( + row=start_row_id, + column=disaggregation_values_map['()']).fill = NO_FILL + else: for dk, dv in disaggregation_values_map.items(): if dk == "()": @@ -269,6 +307,10 @@ def fill_sheet(self, disaggregation_types, indicators): if blueprint.unit == IndicatorBlueprint.NUMBER \ else "{}/{}".format(v['v'], v['d']) + # De-highlight any subtotal disaggregation data column + if len(dk.split(",")) != len(disaggregation_types): + self.sheet.cell(row=start_row_id, column=dv).fill = NO_FILL + start_row_id += 1 # Lock first rows @@ -277,13 +319,13 @@ def fill_sheet(self, disaggregation_types, indicators): # Merge Other Info columns, since they are unique per Progress Report, not per Location Data # Partner contribution to date self.sheet.merge_cells(start_row=INDICATOR_DATA_ROW_START, - start_column=10, end_row=start_row_id, end_column=10) + start_column=9, end_row=start_row_id - 1, end_column=9) # Challenges/bottlenecks in the reporting period self.sheet.merge_cells(start_row=INDICATOR_DATA_ROW_START, - start_column=12, end_row=start_row_id, end_column=12) + start_column=11, end_row=start_row_id - 1, end_column=11) # Proposed way forward self.sheet.merge_cells(start_row=INDICATOR_DATA_ROW_START, - start_column=13, end_row=start_row_id, end_column=13) + start_column=12, end_row=start_row_id - 1, end_column=12) return True @@ -551,25 +593,29 @@ def export_data(self): if not indicators: continue - self.sheets.append(self.duplicate_sheet(self.sheets[0])) + self.sheets.append(self.duplicate_sheet(self.sheets[1])) + sheet_no += 1 self.sheet = self.sheets[sheet_no] if not self.fill_sheet(disaggregation_types, indicators): to_remove.append(self.sheets[sheet_no]) - sheet_no += 1 + sheet_no -= 1 - to_remove.append(self.sheets[0]) + to_remove.append(self.sheets[1]) # Remove empty spreadsheets for s in to_remove: - # Spreadsheet need atleast 1 sheet - if len(self.sheets) > 1: + # Spreadsheet need at least 2 sheets + if len(self.sheets) > 2: self.sheets.remove(s) self.wb.remove_sheet(s) if self.analysis: self.merge_sheets() - file_path = SAVE_PATH + 'export_' + uuid.uuid4().hex + '.xlsx' + report_name = self.progress_report.report_type + str(self.progress_report.report_number) + ref_num = self.progress_report.programme_document.reference_number.split('/')[-1] + + file_path = SAVE_PATH + f'{report_name}_{ref_num}.xlsx' self.wb.save(file_path) return file_path diff --git a/django_api/django_api/apps/unicef/exports/annex_c_excel.py b/django_api/django_api/apps/unicef/exports/annex_c_excel.py index 140775f53..c083f5b57 100644 --- a/django_api/django_api/apps/unicef/exports/annex_c_excel.py +++ b/django_api/django_api/apps/unicef/exports/annex_c_excel.py @@ -17,6 +17,7 @@ from indicator.constants import ValueType from indicator.models import Disaggregation, IndicatorBlueprint +from indicator.utilities import convert_string_number_to_float from unicef.exports.utilities import PARTNER_PORTAL_DATE_FORMAT_EXCEL from unicef.models import ProgressReport @@ -47,7 +48,9 @@ class ProgressReportsXLSXExporter: 'Challenges/bottlenecks in the reporting period', 'Proposed way forward', 'Submitted by', - 'Attachment', + 'FACE Attachment', + 'Other Attachment 1', + 'Other Attachment 2', 'Narrative', 'PD Output progress status', 'PD Output narrative assessment', @@ -105,7 +108,7 @@ def get_general_info_row(self, progress_report, location_data): partner = programme_document.partner try: - indicator_target = float(indicator_report.reportable.calculated_target) + indicator_target = convert_string_number_to_float(indicator_report.reportable.calculated_target) except ValueError: indicator_target = indicator_report.reportable.calculated_target @@ -124,6 +127,44 @@ def get_general_info_row(self, progress_report, location_data): ValueType.VALUE, 0 ) + face_attachment = None + other_attachment1 = None + other_attachment2 = None + + if progress_report.attachments.filter(type="FACE").exists(): + face_attachment = progress_report.attachments.filter(type="FACE").first() + + try: + # Evaluate the file url to see if it has actual file + face_attachment.file.url + except ValueError: + face_attachment = None + + if progress_report.attachments.filter(type="Other").exists(): + if progress_report.attachments.filter(type="Other").count() > 1: + other_attachment1 = progress_report.attachments.filter(type="Other").first() + other_attachment2 = progress_report.attachments.filter(type="Other").last() + + try: + # Evaluate the file url to see if it has actual file + other_attachment1.file.url + except ValueError: + other_attachment1 = None + + try: + # Evaluate the file url to see if it has actual file + other_attachment2.file.url + except ValueError: + other_attachment2 = None + else: + other_attachment1 = progress_report.attachments.filter(type="Other").first() + + try: + # Evaluate the file url to see if it has actual file + other_attachment1.file.url + except ValueError: + other_attachment1 = None + general_info_row = [ (partner.title, None), (location_data.location.gateway.country.name, None), @@ -139,7 +180,9 @@ def get_general_info_row(self, progress_report, location_data): (progress_report.challenges_in_the_reporting_period, None), (progress_report.proposed_way_forward, None), (progress_report.submitted_by.display_name if progress_report.submitted_by else '', None), - (progress_report.attachment.url if progress_report.attachment else '', None), + (face_attachment.file.url if face_attachment else '', None), + (other_attachment1.file.url if other_attachment1 else '', None), + (other_attachment2.file.url if other_attachment2 else '', None), (progress_report.narrative, None), (indicator_report.get_overall_status_display(), None), (indicator_report.narrative_assessment, None), diff --git a/django_api/django_api/apps/unicef/exports/programme_documents.py b/django_api/django_api/apps/unicef/exports/programme_documents.py index 8186d9cc8..29c6ab61c 100644 --- a/django_api/django_api/apps/unicef/exports/programme_documents.py +++ b/django_api/django_api/apps/unicef/exports/programme_documents.py @@ -81,8 +81,8 @@ def fill_worksheet(self): (pd.get_document_type_display(), None), (pd.reference_number, None), (pd.unicef_office, None), - (', '.join([person.name for person in pd.unicef_focal_point.all()]), None), - (', '.join([person.name for person in pd.partner_focal_point.all()]), None), + (', '.join([person.name for person in pd.unicef_focal_point.filter(active=True)]), None), + (', '.join([person.name for person in pd.partner_focal_point.filter(active=True)]), None), (None, None), # This field is not calculated anywhere yet (pd.start_date, PARTNER_PORTAL_DATE_FORMAT_EXCEL), (pd.end_date, PARTNER_PORTAL_DATE_FORMAT_EXCEL), @@ -178,7 +178,7 @@ def get_context(self): HTMLTableHeader('Document Type'), HTMLTableCell(pd.get_document_type_display()), HTMLTableHeader('UNICEF Focal Point(s)'), - HTMLTableCell(', '.join([person.name for person in pd.unicef_focal_point.all()])), + HTMLTableCell(', '.join([person.name for person in pd.unicef_focal_point.filter(active=True)])), HTMLTableHeader('Total UNICEF cash'), HTMLTableCell(format_currency(pd.total_unicef_cash, pd.total_unicef_cash_currency)) ]) @@ -186,7 +186,7 @@ def get_context(self): HTMLTableHeader('Reference Number'), HTMLTableCell(pd.reference_number), HTMLTableHeader('Partner Focal Point(s)'), - HTMLTableCell(', '.join([person.name for person in pd.partner_focal_point.all()])), + HTMLTableCell(', '.join([person.name for person in pd.partner_focal_point.filter(active=True)])), HTMLTableHeader('Total UNICEF supplies'), HTMLTableCell(format_currency(pd.in_kind_amount, pd.in_kind_amount_currency)) ]) diff --git a/django_api/django_api/apps/unicef/exports/progress_reports.py b/django_api/django_api/apps/unicef/exports/progress_reports.py index 7bf9a5f00..4376f8262 100644 --- a/django_api/django_api/apps/unicef/exports/progress_reports.py +++ b/django_api/django_api/apps/unicef/exports/progress_reports.py @@ -68,8 +68,8 @@ def create_tables_for_indicator_reports(self, indicator_reports): HTMLTableCell(total_cumulative_progress), ], [ - HTMLTableHeader('Calculation method'), - HTMLTableCell(indicator.reportable.blueprint.display_type), + HTMLTableHeader('Calculation method across locations'), + HTMLTableCell(indicator.reportable.blueprint.calculation_formula_across_locations), HTMLTableHeader('Achievement in reporting period'), HTMLTableCell(achievement_in_reporting_period), ], @@ -103,10 +103,16 @@ def create_tables_for_indicator_reports(self, indicator_reports): return tables def get_context(self): + funds_received_to_date_percentage = "%.1f" % ( + self.progress_report.programme_document.funds_received_to_date * 100 / self.progress_report.programme_document.budget + ) if self.progress_report.programme_document and self.progress_report.programme_document.budget > 0 else 0 + context = { 'progress_report': self.progress_report, + 'pd': self.progress_report.programme_document, 'title': self.display_name, - 'tables': self.create_tables_for_indicator_reports(self.progress_report.indicator_reports.all()) + 'tables': self.create_tables_for_indicator_reports(self.progress_report.indicator_reports.all()), + 'funds_received_to_date_percentage': funds_received_to_date_percentage, } return context diff --git a/django_api/django_api/apps/unicef/import_report.py b/django_api/django_api/apps/unicef/import_report.py index 138f50101..cbfaf0b79 100644 --- a/django_api/django_api/apps/unicef/import_report.py +++ b/django_api/django_api/apps/unicef/import_report.py @@ -24,7 +24,15 @@ def __init__(self, path, partner): self.partner = partner def import_data(self): - for self.sheet in self.wb.worksheets: + partner_contribution = None + challenges = None + proposed_way_forward = None + pd_output_narratives = dict() + + for idx, self.sheet in enumerate(self.wb.worksheets): + if self.sheet.title.lower() == 'readme': + continue + # Find "Location ID" column location_column_id = None for column in range(1, MAX_COLUMNS): @@ -63,14 +71,19 @@ def import_data(self): # Other Info columns data retrieve # Partner contribution to date - partner_contribution = self.sheet.cell( - row=COLUMN_HASH_ID + 1, column=10).value + if not partner_contribution: + partner_contribution = self.sheet.cell( + row=COLUMN_HASH_ID + 1, column=9).value + # Challenges/bottlenecks in the reporting period - challenges = self.sheet.cell( - row=COLUMN_HASH_ID + 1, column=12).value + if not challenges: + challenges = self.sheet.cell( + row=COLUMN_HASH_ID + 1, column=11).value + # Proposed way forward - proposed_way_forward = self.sheet.cell( - row=COLUMN_HASH_ID + 1, column=13).value + if not proposed_way_forward: + proposed_way_forward = self.sheet.cell( + row=COLUMN_HASH_ID + 1, column=12).value # ... and assign if is QPR try: @@ -131,6 +144,22 @@ def import_data(self): blueprint = indicator.indicator_report.reportable.blueprint data = indicator.disaggregation + + if pr.report_type == common.QPR_TYPE: + narrative_assessment = self.sheet.cell( + row=row, column=19 + ).value + llo = indicator.indicator_report.reportable.content_object + + if llo.id not in pd_output_narratives \ + and (narrative_assessment is not None and narrative_assessment != ''): + pd_output_narratives[llo.id] = narrative_assessment + + indicator.indicator_report.narrative_assessment = narrative_assessment + indicator.indicator_report.save() + + pr.indicator_reports.filter(reportable__lower_level_outputs=llo).update(narrative_assessment=narrative_assessment) + # Prepare already_updated_row_value = False for column in range(dis_data_column_start_id if dis_data_column_start_id else total_column_id, @@ -169,7 +198,7 @@ def import_data(self): # Update values if blueprint.unit == IndicatorBlueprint.NUMBER: - data[dis_type_id]["v"] = value + data[dis_type_id]["v"] = int(value) else: if isinstance(value, datetime): transaction.rollback() diff --git a/django_api/django_api/apps/unicef/migrations/0008_progressreportattachment.py b/django_api/django_api/apps/unicef/migrations/0008_progressreportattachment.py new file mode 100644 index 000000000..e94bb706b --- /dev/null +++ b/django_api/django_api/apps/unicef/migrations/0008_progressreportattachment.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.20 on 2019-03-05 23:20 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion +import django.utils.timezone +import model_utils.fields +import unicef.models + + +class Migration(migrations.Migration): + + dependencies = [ + ('unicef', '0007_auto_20190311_1900'), + ] + + operations = [ + migrations.CreateModel( + name='ProgressReportAttachment', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), + ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), + ('file', models.FileField(upload_to=unicef.models.get_pr_attachment_upload_to)), + ('type', models.CharField(choices=[('FACE', 'FACE'), ('Other', 'Other')], default='Other', max_length=5, verbose_name='Attachment type')), + ('progress_report', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='attachments', to='unicef.ProgressReport')), + ], + options={ + 'ordering': ['id'], + }, + ), + ] diff --git a/django_api/django_api/apps/unicef/migrations/0009_auto_20190305_2323.py b/django_api/django_api/apps/unicef/migrations/0009_auto_20190305_2323.py new file mode 100644 index 000000000..7ff973b2f --- /dev/null +++ b/django_api/django_api/apps/unicef/migrations/0009_auto_20190305_2323.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.20 on 2019-03-05 23:23 +from __future__ import unicode_literals + +from django.core.files.base import ContentFile +from django.db import migrations + + +def forwards_func(apps, schema_editor): + ProgressReport = apps.get_model("unicef", "ProgressReport") + ProgressReportAttachment = apps.get_model("unicef", "ProgressReportAttachment") + + for item in ProgressReport.objects.all(): + try: + ProgressReportAttachment.objects.create( + progress_report=item, + file=item.attachment, + type="Other", + ) + + except ValueError: + pass + + +def reverse_func(apps, schema_editor): + pass + + +class Migration(migrations.Migration): + + dependencies = [ + ('unicef', '0008_progressreportattachment'), + ] + + operations = [ + migrations.RunPython(forwards_func, reverse_func), + ] diff --git a/django_api/django_api/apps/unicef/migrations/0010_remove_progressreport_attachment.py b/django_api/django_api/apps/unicef/migrations/0010_remove_progressreport_attachment.py new file mode 100644 index 000000000..0521bceac --- /dev/null +++ b/django_api/django_api/apps/unicef/migrations/0010_remove_progressreport_attachment.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.20 on 2019-03-06 00:28 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('unicef', '0009_auto_20190305_2323'), + ] + + operations = [ + migrations.RemoveField( + model_name='progressreport', + name='attachment', + ), + ] diff --git a/django_api/django_api/apps/unicef/migrations/0011_auto_20190418_1756.py b/django_api/django_api/apps/unicef/migrations/0011_auto_20190418_1756.py new file mode 100644 index 000000000..f4d78ff11 --- /dev/null +++ b/django_api/django_api/apps/unicef/migrations/0011_auto_20190418_1756.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.20 on 2019-04-18 17:56 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('unicef', '0010_remove_progressreport_attachment'), + ] + + operations = [ + migrations.AlterField( + model_name='progressreportattachment', + name='type', + field=models.CharField(choices=[('FACE', 'FACE'), ('Other', 'Other')], max_length=5, verbose_name='Attachment type'), + ), + ] diff --git a/django_api/django_api/apps/unicef/migrations/0012_auto_20190507_2301.py b/django_api/django_api/apps/unicef/migrations/0012_auto_20190507_2301.py new file mode 100644 index 000000000..ba52a2618 --- /dev/null +++ b/django_api/django_api/apps/unicef/migrations/0012_auto_20190507_2301.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.20 on 2019-05-07 23:01 +from __future__ import unicode_literals + +from django.db import migrations, models +import unicef.models + + +class Migration(migrations.Migration): + + dependencies = [ + ('unicef', '0011_auto_20190418_1756'), + ] + + operations = [ + migrations.AlterField( + model_name='progressreportattachment', + name='file', + field=models.FileField(max_length=500, upload_to=unicef.models.get_pr_attachment_upload_to), + ), + ] diff --git a/django_api/django_api/apps/unicef/migrations/0013_auto_20190903_2057.py b/django_api/django_api/apps/unicef/migrations/0013_auto_20190903_2057.py new file mode 100644 index 000000000..91071f867 --- /dev/null +++ b/django_api/django_api/apps/unicef/migrations/0013_auto_20190903_2057.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.20 on 2019-09-03 20:57 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('unicef', '0012_auto_20190507_2301'), + ] + + operations = [ + migrations.AddField( + model_name='programmedocument', + name='funds_received_to_date_percent', + field=models.DecimalField(blank=True, decimal_places=2, max_digits=64, null=True, verbose_name='Funds received %'), + ), + migrations.AlterField( + model_name='programmedocument', + name='funds_received_to_date', + field=models.DecimalField(blank=True, decimal_places=2, max_digits=64, null=True, verbose_name='Funds received'), + ), + ] diff --git a/django_api/django_api/apps/unicef/migrations/0014_auto_20190911_2143.py b/django_api/django_api/apps/unicef/migrations/0014_auto_20190911_2143.py new file mode 100644 index 000000000..467fe70de --- /dev/null +++ b/django_api/django_api/apps/unicef/migrations/0014_auto_20190911_2143.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.20 on 2019-09-11 21:43 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('unicef', '0013_auto_20190903_2057'), + ] + + operations = [ + migrations.AlterUniqueTogether( + name='lowerleveloutput', + unique_together=set([('external_id', 'external_business_area_code', 'cp_output')]), + ), + ] diff --git a/django_api/django_api/apps/unicef/migrations/0015_auto_20190920_1710.py b/django_api/django_api/apps/unicef/migrations/0015_auto_20190920_1710.py new file mode 100644 index 000000000..2b7a0eab8 --- /dev/null +++ b/django_api/django_api/apps/unicef/migrations/0015_auto_20190920_1710.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.20 on 2019-09-20 17:10 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('unicef', '0014_auto_20190911_2143'), + ] + + operations = [ + migrations.AlterField( + model_name='programmedocument', + name='document_type', + field=models.CharField(choices=[('PD', 'Programme Document'), ('SHP', 'Simplified Humanitarian Programme Document'), ('SSFA', 'SSFA TOR')], default='PD', max_length=4, verbose_name='Document Type'), + ), + ] diff --git a/django_api/django_api/apps/unicef/models.py b/django_api/django_api/apps/unicef/models.py index eed3145e6..bea3929ca 100644 --- a/django_api/django_api/apps/unicef/models.py +++ b/django_api/django_api/apps/unicef/models.py @@ -1,6 +1,7 @@ from __future__ import unicode_literals from datetime import date import logging +import os from django.contrib.auth import get_user_model from django.db import models @@ -25,6 +26,7 @@ CURRENCIES, OVERALL_STATUS, REPORTING_TYPES, + PR_ATTACHMENT_TYPES, PRP_ROLE_TYPES, ) from core.models import TimeStampedExternalBusinessAreaModel, TimeStampedExternalSyncModelMixin @@ -91,7 +93,7 @@ class ProgrammeDocument(TimeStampedExternalBusinessAreaModel): agreement = models.CharField(max_length=255, verbose_name='Agreement') document_type = models.CharField( - max_length=3, + max_length=4, choices=PD_DOCUMENT_TYPE, default=PD_DOCUMENT_TYPE.PD, verbose_name='Document Type' @@ -203,7 +205,8 @@ class ProgrammeDocument(TimeStampedExternalBusinessAreaModel): funds_received_to_date = models.DecimalField( decimal_places=2, max_digits=64, - default=0, + blank=True, + null=True, verbose_name='Funds received' ) @@ -216,6 +219,14 @@ class ProgrammeDocument(TimeStampedExternalBusinessAreaModel): null=True, ) + funds_received_to_date_percent = models.DecimalField( + decimal_places=2, + max_digits=64, + blank=True, + null=True, + verbose_name='Funds received %' + ) + amendments = JSONField(default=list()) # TODO: @@ -406,11 +417,6 @@ class ProgressReport(TimeStampedModel): null=True ) sent_back_feedback = models.TextField(blank=True, null=True) - attachment = models.FileField( - upload_to="unicef/progress_reports/", - blank=True, - null=True - ) report_number = models.IntegerField(verbose_name="Report Number") report_type = models.CharField(verbose_name="Report type", choices=REPORTING_TYPES, max_length=3) is_final = models.BooleanField(verbose_name="Is final report", default=False) @@ -480,12 +486,36 @@ def send_notification_on_status_change(sender, instance, **kwargs): template_data = { 'person': None, + 'report': instance, + 'pd': pd, 'pr_url': pr_url, - 'pd_ref_title': f'{pd.reference_number} ({pd.title})', 'status': instance.get_status_display() } - for person in pd.unicef_officers.all(): + template_data['person'] = instance.submitting_user + to_email_list = [template_data['person'].email] + + send_email_from_template( + subject_template_path=subject_template_path, + body_template_path=body_template_path, + template_data=template_data, + to_email_list=to_email_list, + content_subtype='html', + ) + + if instance.submitted_by.email != instance.submitting_user.email: + template_data['person'] = instance.submitted_by + to_email_list = [template_data['person'].email] + + send_email_from_template( + subject_template_path=subject_template_path, + body_template_path=body_template_path, + template_data=template_data, + to_email_list=to_email_list, + content_subtype='html', + ) + + for person in pd.unicef_focal_point.all(): template_data['person'] = person to_email_list = [person.email] @@ -498,6 +528,35 @@ def send_notification_on_status_change(sender, instance, **kwargs): ) +def get_pr_attachment_upload_to(instance, filename): + return f"unicef/progress_reports/{instance.progress_report.id}/{filename}" + + +class ProgressReportAttachment(TimeStampedModel): + """ + ProgressReportAttachment represents an attachment file for ProgressReport. + + related models: + unicef.ProgressReport (ForeignKey): "progress_report" + """ + progress_report = models.ForeignKey('unicef.ProgressReport', related_name="attachments") + file = models.FileField( + upload_to=get_pr_attachment_upload_to, + max_length=500 + ) + type = models.CharField(verbose_name="Attachment type", choices=PR_ATTACHMENT_TYPES, max_length=5) + + class Meta: + ordering = ['id'] + + def __str__(self): + return self.file.name + + @property + def filename(self): + return os.path.basename(self.file.name) + + class ReportingPeriodDates(TimeStampedExternalBusinessAreaModel): """ Used for storing start_date, end_date and due_date fields for multiple reports @@ -561,7 +620,7 @@ class LowerLevelOutput(TimeStampedExternalBusinessAreaModel): class Meta: ordering = ['id'] unique_together = ( - TimeStampedExternalBusinessAreaModel.Meta.unique_together + (*TimeStampedExternalBusinessAreaModel.Meta.unique_together, 'cp_output') ) def __str__(self): diff --git a/django_api/django_api/apps/unicef/serializers.py b/django_api/django_api/apps/unicef/serializers.py index 5cc05edd0..d18015605 100644 --- a/django_api/django_api/apps/unicef/serializers.py +++ b/django_api/django_api/apps/unicef/serializers.py @@ -1,12 +1,16 @@ from django.conf import settings + from rest_framework import serializers from core.serializers import ShortLocationSerializer from utils.filters.constants import Boolean -from .models import ProgrammeDocument, Section, ProgressReport, Person, \ - LowerLevelOutput, PDResultLink, ReportingPeriodDates +from .models import ( + ProgrammeDocument, Section, ProgressReport, Person, + LowerLevelOutput, PDResultLink, ReportingPeriodDates, + ProgressReportAttachment, +) -from core.common import PROGRESS_REPORT_STATUS, OVERALL_STATUS, CURRENCIES, PD_STATUS +from core.common import PROGRESS_REPORT_STATUS, OVERALL_STATUS, CURRENCIES, PD_STATUS, INTERVENTION_TYPES from core.models import Workspace, Location from indicator.models import IndicatorBlueprint @@ -38,6 +42,7 @@ class Meta: 'due_date', 'programme_document', 'report_type', + 'description', ) @@ -70,9 +75,9 @@ class ProgrammeDocumentSerializer(serializers.ModelSerializer): budget_currency = serializers.SerializerMethodField() cso_contribution_currency = serializers.SerializerMethodField() funds_received_to_date_currency = serializers.SerializerMethodField() - unicef_officers = PersonSerializer(read_only=True, many=True) - unicef_focal_point = PersonSerializer(read_only=True, many=True) - partner_focal_point = PersonSerializer(read_only=True, many=True) + unicef_officers = serializers.SerializerMethodField() + unicef_focal_point = serializers.SerializerMethodField() + partner_focal_point = serializers.SerializerMethodField() document_type_display = serializers.CharField(source='get_document_type_display') locations = serializers.SerializerMethodField(allow_null=True) amendments = serializers.JSONField(read_only=True) @@ -138,6 +143,15 @@ def get_locations(self, obj): many=True ).data + def get_unicef_officers(self, obj): + return PersonSerializer(obj.unicef_officers.filter(active=True), read_only=True, many=True).data + + def get_unicef_focal_point(self, obj): + return PersonSerializer(obj.unicef_focal_point.filter(active=True), read_only=True, many=True).data + + def get_partner_focal_point(self, obj): + return PersonSerializer(obj.partner_focal_point.filter(active=True), read_only=True, many=True).data + class SectionSerializer(serializers.ModelSerializer): class Meta: @@ -153,9 +167,9 @@ class ProgrammeDocumentDetailSerializer(serializers.ModelSerializer): frequency = serializers.CharField(source='get_frequency_display') # sections = serializers.SerializerMethodField() sections = SectionSerializer(read_only=True, many=True) - unicef_officers = PersonSerializer(read_only=True, many=True) - unicef_focal_point = PersonSerializer(read_only=True, many=True) - partner_focal_point = PersonSerializer(read_only=True, many=True) + unicef_officers = serializers.SerializerMethodField() + unicef_focal_point = serializers.SerializerMethodField() + partner_focal_point = serializers.SerializerMethodField() class Meta: model = ProgrammeDocument @@ -180,6 +194,15 @@ class Meta: 'budget', ) + def get_unicef_officers(self, obj): + return PersonSerializer(obj.unicef_officers.filter(active=True), read_only=True, many=True).data + + def get_unicef_focal_point(self, obj): + return PersonSerializer(obj.unicef_focal_point.filter(active=True), read_only=True, many=True).data + + def get_partner_focal_point(self, obj): + return PersonSerializer(obj.partner_focal_point.filter(active=True), read_only=True, many=True).data + class LLOutputSerializer(serializers.ModelSerializer): """ @@ -400,9 +423,9 @@ def get_is_draft(self, obj): class ProgressReportUpdateSerializer(serializers.ModelSerializer): - partner_contribution_to_date = serializers.CharField(required=False, allow_blank=True) - challenges_in_the_reporting_period = serializers.CharField(required=False, allow_blank=True) - proposed_way_forward = serializers.CharField(required=False, allow_blank=True) + partner_contribution_to_date = serializers.CharField(max_length=2000, required=False, allow_blank=True) + challenges_in_the_reporting_period = serializers.CharField(max_length=2000, required=False, allow_blank=True) + proposed_way_forward = serializers.CharField(max_length=2000, required=False, allow_blank=True) class Meta: model = ProgressReport @@ -416,7 +439,7 @@ class Meta: class ProgressReportSRUpdateSerializer(serializers.ModelSerializer): - narrative = serializers.CharField() + narrative = serializers.CharField(max_length=2000) class Meta: model = ProgressReport @@ -549,6 +572,13 @@ class ProgrammeDocumentProgressSerializer(serializers.ModelSerializer): details = serializers.SerializerMethodField() latest_accepted_pr = serializers.SerializerMethodField() latest_accepted_pr_indicator_reports = serializers.SerializerMethodField() + unicef_budget_cash = serializers.FloatField(source='total_unicef_cash') + unicef_budget_cash_currency = serializers.CharField(source='total_unicef_cash_currency') + unicef_budget_supplies = serializers.FloatField(source='in_kind_amount') + unicef_budget_supplies_currency = serializers.CharField(source='in_kind_amount_currency') + disbursement = serializers.FloatField(source='funds_received_to_date') + disbursement_currency = serializers.CharField(source='funds_received_to_date_currency') + disbursement_percent = serializers.FloatField(source='funds_received_to_date_percent') class Meta: model = ProgrammeDocument @@ -563,6 +593,13 @@ class Meta: 'details', 'latest_accepted_pr', 'latest_accepted_pr_indicator_reports', + 'unicef_budget_cash', + 'unicef_budget_cash_currency', + 'unicef_budget_supplies', + 'unicef_budget_supplies_currency', + 'disbursement', + 'disbursement_currency', + 'disbursement_percent', ) def get_details(self, obj): @@ -617,23 +654,6 @@ class Meta: extra_kwargs = {'name': {'required': True}} -class PMPPDPartnerSerializer(serializers.ModelSerializer): - - name = serializers.CharField(source='title') - short_name = serializers.CharField(source='short_title', allow_blank=True) - unicef_vendor_number = serializers.CharField(source='vendor_number') - - class Meta: - model = Partner - fields = ( - "external_id", - "name", - "short_name", - "unicef_vendor_number", - ) - validators = [] - - class PMPProgrammeDocumentSerializer(serializers.ModelSerializer): id = serializers.CharField(source='external_id') offices = serializers.CharField(source='unicef_office') @@ -648,7 +668,8 @@ class PMPProgrammeDocumentSerializer(serializers.ModelSerializer): unicef_budget_currency = serializers.ChoiceField( choices=CURRENCIES, allow_blank=True, allow_null=True, source="budget_currency" ) - funds_received = serializers.FloatField(source='funds_received_to_date', required=False) + disbursement = serializers.FloatField(source='funds_received_to_date', required=False, allow_null=True) + disbursement_percent = serializers.FloatField(source='funds_received_to_date_percent', required=False, allow_null=True) funds_received_currency = serializers.ChoiceField( choices=CURRENCIES, allow_blank=True, allow_null=True, required=False, source="funds_received_to_date_currency" ) @@ -660,6 +681,7 @@ class PMPProgrammeDocumentSerializer(serializers.ModelSerializer): workspace = serializers.PrimaryKeyRelatedField( queryset=Workspace.objects.all()) amendments = serializers.JSONField(allow_null=True) + document_type = serializers.ChoiceField(choices=INTERVENTION_TYPES, required=False) def validate(self, attrs): validated_data = super(PMPProgrammeDocumentSerializer, self).validate(attrs) @@ -694,11 +716,13 @@ class Meta: "unicef_budget_currency", "unicef_budget_cash", "unicef_budget_supplies", - "funds_received", "funds_received_currency", "workspace", "amendments", "external_business_area_code", + "disbursement", + "disbursement_percent", + "document_type", ) @@ -784,26 +808,28 @@ class Meta: class ProgressReportAttachmentSerializer(serializers.ModelSerializer): size = serializers.SerializerMethodField() file_name = serializers.SerializerMethodField() - path = serializers.FileField(source='attachment') + path = serializers.FileField(source='file', max_length=500) def get_file_name(self, obj): - return obj.attachment.name.split('/')[-1] if obj.attachment else None + return obj.file.name.split('/')[-1] if obj.file else None def get_size(self, obj): - return obj.attachment.size if obj.attachment else None + return obj.file.size if obj.file else None def to_representation(self, instance): representation = super(ProgressReportAttachmentSerializer, self).to_representation(instance) - if instance.attachment and "http" not in instance.attachment.url: - representation['path'] = settings.WWW_ROOT[:-1] + instance.attachment.url + if instance.file and "http" not in instance.file.url: + representation['path'] = settings.WWW_ROOT[:-1] + instance.file.url return representation class Meta: - model = ProgressReport + model = ProgressReportAttachment fields = ( + 'id', 'path', 'size', - 'file_name' + 'file_name', + 'type', ) diff --git a/django_api/django_api/apps/unicef/tasks.py b/django_api/django_api/apps/unicef/tasks.py index 8c14474c7..01aa16351 100644 --- a/django_api/django_api/apps/unicef/tasks.py +++ b/django_api/django_api/apps/unicef/tasks.py @@ -12,13 +12,15 @@ from core.api import PMP_API from core.models import Workspace, GatewayType, Location, PRPRole from core.serializers import PMPGatewayTypeSerializer, PMPLocationSerializer -from core.common import PARTNER_ACTIVITY_STATUS, PRP_ROLE_TYPES +from core.common import PARTNER_ACTIVITY_STATUS, PRP_ROLE_TYPES, EXTERNAL_DATA_SOURCES from partner.models import PartnerActivity +from partner.serializers import ( + PMPPartnerSerializer, +) from unicef.serializers import ( PMPProgrammeDocumentSerializer, - PMPPDPartnerSerializer, PMPPDPersonSerializer, PMPLLOSerializer, PMPPDResultLinkSerializer, @@ -37,9 +39,10 @@ DisaggregationValue, ReportableLocationGoal, create_pa_reportables_from_ca, + create_reportable_for_pp_from_ca_reportable, ) -from partner.models import Partner +from partner.models import Partner, PartnerProject, PartnerActivityProjectContext logger = logging.getLogger(__name__) @@ -168,7 +171,7 @@ def process_programme_documents(fast=False, area=False): try: partner = process_model( Partner, - PMPPDPartnerSerializer, + PMPPartnerSerializer, partner_data, { 'vendor_number': partner_data['unicef_vendor_number'] } @@ -217,6 +220,10 @@ def process_programme_documents(fast=False, area=False): logger.exception('Error trying to save ProgrammeDocument model with {}'.format(item), e) continue + pd.unicef_focal_point.all().update(active=False) + pd.unicef_officers.all().update(active=False) + pd.partner_focal_point.all().update(active=False) + # Create unicef_focal_points person_data_list = item['unicef_focal_points'] for person_data in person_data_list: @@ -311,6 +318,9 @@ def process_programme_documents(fast=False, area=False): llos.update(active=False) Reportable.objects.filter(lower_level_outputs__in=llos).update(active=False) + # Mark all ReportableLocationGoal instances referred in LLO Reportables as inactive + ReportableLocationGoal.objects.filter(reportable__lower_level_outputs__in=llos).update(is_active=False) + # Parsing expecting results and set them active, rest will stay inactive for this PD for d in item['expected_results']: # Create PDResultLink @@ -331,6 +341,7 @@ def process_programme_documents(fast=False, area=False): # Create LLO d['cp_output'] = pdresultlink.id d['external_business_area_code'] = workspace.business_area_code + llo = process_model( LowerLevelOutput, PMPLLOSerializer, d, { @@ -496,22 +507,51 @@ def process_programme_documents(fast=False, area=False): cai = Reportable.objects.get(id=int(i['cluster_indicator_id'])) reportable.ca_indicator_used_by_reporting_entity = cai + # Partner Project for this PD check + if not PartnerProject.objects.filter( + external_id="{}/{}".format(workspace.business_area_code, pd.id), + external_source=EXTERNAL_DATA_SOURCES.UNICEF + ).exists(): + pp = PartnerProject.objects.create( + external_id="{}/{}".format(workspace.business_area_code, pd.id), + external_source=EXTERNAL_DATA_SOURCES.UNICEF, + title=item['title'], + partner=partner, + ) + + logger.info( + "Created a new PartnerProject " + "from PD: " + str(item['reference_number']) + ) + else: + pp = PartnerProject.objects.get( + external_id="{}/{}".format(area, item['id']), + external_source=EXTERNAL_DATA_SOURCES.UNICEF + ) + # Force adoption of PartnerActivity from ClusterActivity Indicator if pd.partner.id not in cai.content_object.partner_activities.values_list( 'partner', flat=True): try: partner_activity = PartnerActivity.objects.create( title=cai.blueprint.title, - project=pd.partner.partner_projects.first(), partner=pd.partner, cluster_activity=cai.content_object, - start_date=cai.content_object.response_plan.start, - end_date=cai.content_object.response_plan.end, status=PARTNER_ACTIVITY_STATUS.ongoing, ) + + PartnerActivityProjectContext.objects.update_or_create( + defaults={ + 'activity': partner_activity, + 'project': pp, + }, + start_date=item['start_date'], + end_date=item['end_date'], + ) + except Exception as e: logger.exception( - "Cannot force adopt PartnerActivity from ClusterActivity " + "Cannot force adopt PartnerActivity and its project context from ClusterActivity " "for dual reporting - skipping link!: " + str(e) ) continue @@ -532,6 +572,21 @@ def process_programme_documents(fast=False, area=False): partner_activity.delete() continue + try: + # Grab Cluster Activity instance from + # this newly created Partner Activity instance + create_reportable_for_pp_from_ca_reportable( + pp, cai + ) + except Exception as e: + logger.exception( + "Cannot create Reportables for PD Partner Project " + "from referenced Cluster Activity Reportable " + " - skipping link!: " + str(e) + ) + + continue + except Reportable.DoesNotExist: logger.exception( "No ClusterActivity Reportable found " @@ -552,6 +607,7 @@ def process_programme_documents(fast=False, area=False): ReportableLocationGoal( reportable=reportable, location=l, + is_active=True, ) for l in Location.objects.filter(id__in=new_locs) ] @@ -561,11 +617,14 @@ def process_programme_documents(fast=False, area=False): ReportableLocationGoal( reportable=reportable, location=l, + is_active=True, ) for l in locations ] ReportableLocationGoal.objects.bulk_create(reportable_location_goals) + ReportableLocationGoal.objects.filter(reportable=reportable, location__in=locations).update(is_active=True) + if partner_activity: # Force update on PA Reportable instance for location update for pa_reportable in partner_activity.reportables.all(): @@ -580,11 +639,15 @@ def process_programme_documents(fast=False, area=False): ReportableLocationGoal( reportable=reportable, location=l, + is_active=True, ) for l in loc_diff ] ReportableLocationGoal.objects.bulk_create(reportable_location_goals) + # We don't overwrite is_active flag on PartnerActivity reportable from LLO locations here + # since Cluster may use those locations + # Check if another page exists if list_data['next']: logger.info("Found new page") diff --git a/django_api/django_api/apps/unicef/templates/excel/hr_export.xlsx b/django_api/django_api/apps/unicef/templates/excel/hr_export.xlsx index b10272469..47187f6dc 100644 Binary files a/django_api/django_api/apps/unicef/templates/excel/hr_export.xlsx and b/django_api/django_api/apps/unicef/templates/excel/hr_export.xlsx differ diff --git a/django_api/django_api/apps/unicef/templates/fragments/programme_information.html b/django_api/django_api/apps/unicef/templates/fragments/programme_information.html index 02ea4ca19..904951634 100644 --- a/django_api/django_api/apps/unicef/templates/fragments/programme_information.html +++ b/django_api/django_api/apps/unicef/templates/fragments/programme_information.html @@ -4,6 +4,7 @@ 1.1 Programme reference + UNICEF Office @@ -27,6 +28,7 @@ 1.2 Organization information + Organization / Acronym {{ pd.partner.title }} / {{ pd.partner.short_title }} @@ -38,7 +40,7 @@ Title of Authorized Official - {{ authorized_officer.title }} + {{ authorized_officer.title|default:"---" }} Email of Authorized Official @@ -54,7 +56,7 @@ Focal Point Title - {{ focal_point.title }} + {{ focal_point.title|default:"---" }} Focal Point Email @@ -62,26 +64,5 @@ Focal Point Telephone - {{ focal_point.phone_number }} - - - - 1.3 Programme information - - Program Duration - From {{ pd.start_date }} to {{ pd.end_date }} - - - 1.4 Budget information - Programme budget - {{ pd.cso_contribution|format_currency:pd.cso_contribution_currency }} - - - UNICEF contribution - {{ pd.budget|format_currency:pd.budget_currency }} - - - Funds received to date - {{ pd.funds_received_to_date|format_currency:pd.funds_received_to_date_currency }} - {{ funds_received_to_date_percentage }}% to date + {{ focal_point.phone_number|default:"---" }} diff --git a/django_api/django_api/apps/unicef/templates/progress_report_detail_pdf_export.html b/django_api/django_api/apps/unicef/templates/progress_report_detail_pdf_export.html index a4a305ff4..2a09298e9 100644 --- a/django_api/django_api/apps/unicef/templates/progress_report_detail_pdf_export.html +++ b/django_api/django_api/apps/unicef/templates/progress_report_detail_pdf_export.html @@ -62,13 +62,18 @@

1. Programme & Report overview

1.3 Progress Report Information - Status - {{ progress_report.get_status_display }} + + Program Duration + From {{ pd.start_date }} to {{ pd.end_date }} Reporting period {{ progress_report.get_reporting_period }} + + Status + {{ progress_report.get_status_display }} + Due Date {{ progress_report.due_date }} @@ -81,10 +86,6 @@

1. Programme & Report overview

Submitted By {{ progress_report.submitted_by.display_name|default:"---" }} - - Partner Contribution to Date - {{ progress_report.partner_contribution_to_date|default:"---" }} - Challenges / Bottlenecks in the Reporting Period {{ progress_report.challenges_in_the_reporting_period|default:"---" }} @@ -96,8 +97,10 @@

1. Programme & Report overview

Attachment - {% if progress_report.attachment %} - ✓ + {% if progress_report.attachments.exists %} + {% for attachment in progress_report.attachments.all %} + {{ attachment.filename }}
+ {% endfor %} {% else %} ✗ {% endif %} @@ -105,7 +108,49 @@

1. Programme & Report overview

SR Narrative - {{ section.progress_report.narrative|default:"---" }} + {{ progress_report.narrative|default:"---" }} + + + + 1.4 Budget information + + Programme budget + {{ pd.cso_contribution|format_currency:pd.cso_contribution_currency }} + + + UNICEF contribution + {{ pd.budget|format_currency:pd.budget_currency }} + + + Funds received to date + {{ pd.funds_received_to_date|format_currency:pd.funds_received_to_date_currency }} + {{ funds_received_to_date_percentage }}% to date + + + + 1.5 Partner Contribution to Date + {{ progress_report.partner_contribution_to_date|default:"---" }} + + + + + + + + + + + + + + + + + +
FOR UNICEF OFFICE USE ONLYRatingComment if applicable
Overall progress of the programme document{{ progress_report.get_review_overall_status_display|default:"" }}{{ progress_report.sent_back_feedback|default:"" }}
+ Name and signature of UNICEF PD focal point: {{ progress_report.reviewed_by_name|default:"" }}
+ Date: {{ progress_report.review_date|default:"" }} +
diff --git a/django_api/django_api/apps/unicef/templates/progress_report_list_pdf_export.html b/django_api/django_api/apps/unicef/templates/progress_report_list_pdf_export.html index 259336e6b..5520c7512 100644 --- a/django_api/django_api/apps/unicef/templates/progress_report_list_pdf_export.html +++ b/django_api/django_api/apps/unicef/templates/progress_report_list_pdf_export.html @@ -110,8 +110,10 @@

1. Report overview

Attachment - {% if section.progress_report.attachment %} - ✓ + {% if section.progress_report.attachments.exists %} + {% for attachment in section.progress_report.attachments.all %} + {{ attachment.filename }}
+ {% endfor %} {% else %} ✗ {% endif %} diff --git a/django_api/django_api/apps/unicef/templates/report_annex_c_pdf.html b/django_api/django_api/apps/unicef/templates/report_annex_c_pdf.html index 0cc856d44..f30fe328d 100644 --- a/django_api/django_api/apps/unicef/templates/report_annex_c_pdf.html +++ b/django_api/django_api/apps/unicef/templates/report_annex_c_pdf.html @@ -67,6 +67,40 @@

{{ header }}

Section 1. Programme & CSO overview {% render_base_programme_info_for_report report %} + + + + 1.3 Programme Information + + + Program Duration + From {{ pd.start_date }} to {{ pd.end_date }} + + + Start Date + {{ pd.start_date }} + + + Reporting period + {{ report.get_reporting_period }} + + + + 1.4 Budget information + + Programme budget + {{ pd.cso_contribution|format_currency:pd.cso_contribution_currency }} + + + UNICEF contribution + {{ pd.budget|format_currency:pd.budget_currency }} + + + Funds received to date + {{ pd.funds_received_to_date|format_currency:pd.funds_received_to_date_currency }} + {{ funds_received_to_date_percentage }}% to date + + 1.5 Partner Contribution made to date {{ report.partner_contribution_to_date }} @@ -112,7 +146,7 @@

{{ header }}

{{ indicator.title }} {% if indicator.is_number %}{{ indicator.reportable.calculated_target }}{% else %}{{ indicator.reportable.calculated_target|percentage }}{% endif %} {% if indicator.is_number %}{{ indicator.total.v|floatformat:"0" }}{% else %}{{ indicator.total.c|percentage }}{% endif %} - {% if indicator.is_number %}{{ indicator.total.v|floatformat:"0" }}{% else %}{{ indicator.total.c|percentage }}{% endif %} + {% if indicator.is_number %}{{ indicator.reportable.total.v|floatformat:"0" }}{% else %}{{ indicator.reportable.total.c|percentage }}{% endif %} {{ indicator.get_overall_status_display }} {{ indicator.narrative_assessment|default:"---" }} @@ -121,7 +155,7 @@

{{ header }}

{{ indicator.title }} {% if indicator.is_number %}{{ indicator.reportable.calculated_target}}{% else %}{{ indicator.reportable.calculated_target|percentage }}{% endif %} {% if indicator.is_number %}{{ indicator.total.v|floatformat:"0" }}{% else %}{{ indicator.total.c|percentage }}{% endif %} - {% if indicator.is_number %}{{ indicator.total.v|floatformat:"0" }}{% else %}{{ indicator.total.c|percentage }}{% endif %} + {% if indicator.is_number %}{{ indicator.reportable.total.v|floatformat:"0" }}{% else %}{{ indicator.reportable.total.c|percentage }}{% endif %} {% endif %} {% endfor %} @@ -147,5 +181,26 @@

{{ header }}

* Information directly extracted from Section 2.2 of the signed Programme document.
** Information to be updated upon submission of the report.

+ + + + + + + + + + + + + + + + + +
FOR UNICEF OFFICE USE ONLYRatingComment if applicable
Overall progress of the programme document{{ report.get_review_overall_status_display|default:"" }}{{ report.sent_back_feedback|default:"" }}
+ Name and signature of UNICEF PD focal point: {{ report.reviewed_by_name|default:"" }}
+ Date: {{ report.review_date|default:"" }} +
{% endblock %} diff --git a/django_api/django_api/apps/unicef/templatetags/pdf_extras.py b/django_api/django_api/apps/unicef/templatetags/pdf_extras.py index 8e916b0f2..704460615 100644 --- a/django_api/django_api/apps/unicef/templatetags/pdf_extras.py +++ b/django_api/django_api/apps/unicef/templatetags/pdf_extras.py @@ -27,16 +27,11 @@ def get_absolute_file_url(context, django_file, default='---'): @register.inclusion_tag('fragments/programme_information.html') def render_base_programme_info_for_report(report): - funds_received_to_date_percentage = "%.1f" % ( - report.programme_document.funds_received_to_date * 100 / report.programme_document.budget - ) if report.programme_document and report.programme_document.budget > 0 else 0 - context = { 'report': report, 'pd': report.programme_document, - 'authorized_officer': report.programme_document.unicef_officers.first(), - 'focal_point': report.programme_document.partner_focal_point.first(), - 'funds_received_to_date_percentage': funds_received_to_date_percentage + 'authorized_officer': report.programme_document.unicef_officers.filter(active=True).first(), + 'focal_point': report.programme_document.partner_focal_point.filter(active=True).first(), } return context diff --git a/django_api/django_api/apps/unicef/tests/test_models.py b/django_api/django_api/apps/unicef/tests/test_models.py new file mode 100644 index 000000000..9a4ba1ed3 --- /dev/null +++ b/django_api/django_api/apps/unicef/tests/test_models.py @@ -0,0 +1,354 @@ +from datetime import date +from dateutil.relativedelta import relativedelta +from unittest.mock import Mock, patch + +from django.db.models import Q +from unicef_notification.models import Notification + +from core.common import ( + INDICATOR_REPORT_STATUS, + OVERALL_STATUS, + PROGRESS_REPORT_STATUS, + PRP_ROLE_TYPES, +) +from core.management.commands._generate_disaggregation_fake_data import ( + generate_3_num_disagg_data, +) +from core.factories import (CartoDBTableFactory, + ProgressReportIndicatorReportFactory, + IPPRPRoleFactory, + CountryFactory, DisaggregationFactory, + DisaggregationValueFactory, GatewayTypeFactory, + LocationFactory, + LocationWithReportableLocationGoalFactory, + PartnerUserFactory, PartnerFactory, + PartnerActivityProjectContextFactory, + ProgressReportFactory, + QuantityReportableToLowerLevelOutputFactory, + QuantityTypeIndicatorBlueprintFactory, + WorkspaceFactory, + SectionFactory, + PersonFactory, + IPDisaggregationFactory, + ProgrammeDocumentFactory, + QPRReportingPeriodDatesFactory, + HRReportingPeriodDatesFactory, + PDResultLinkFactory, + LowerLevelOutputFactory, + ClusterPRPRoleFactory, + ResponsePlanFactory, + ClusterFactory, + NonPartnerUserFactory, + ClusterObjectiveFactory, + ClusterActivityFactory, + PartnerProjectFactory, + ClusterActivityPartnerActivityFactory, + QuantityReportableToPartnerActivityFactory, + ClusterIndicatorReportFactory) +from core.tests.base import BaseAPITestCase +from core.models import Location +from utils.emails import send_due_progress_report_email +from indicator.disaggregators import QuantityIndicatorDisaggregator +from indicator.models import ( + IndicatorBlueprint, + IndicatorLocationData, +) +from unicef.models import ProgressReport + + +class TestProgressReportModel(BaseAPITestCase): + + def setUp(self): + self.country = CountryFactory() + self.workspace = WorkspaceFactory(countries=[self.country, ]) + self.response_plan = ResponsePlanFactory(workspace=self.workspace) + self.cluster = ClusterFactory(type='cccm', response_plan=self.response_plan) + self.loc_type = GatewayTypeFactory(country=self.country) + self.carto_table = CartoDBTableFactory(location_type=self.loc_type, country=self.country) + self.loc1 = LocationFactory(gateway=self.loc_type, carto_db_table=self.carto_table) + self.loc2 = LocationFactory(gateway=self.loc_type, carto_db_table=self.carto_table) + self.unicef_officer = PersonFactory() + self.unicef_focal_point = PersonFactory() + self.partner_focal_point = PersonFactory() + self.objective = ClusterObjectiveFactory( + cluster=self.cluster, + locations=[ + self.loc1, + self.loc2, + ] + ) + self.activity = ClusterActivityFactory( + cluster_objective=self.objective, + locations=[ + self.loc1, self.loc2 + ] + ) + self.partner = PartnerFactory(country_code=self.country.country_short_code) + self.user = NonPartnerUserFactory() + self.partner_user = PartnerUserFactory(partner=self.partner) + ClusterPRPRoleFactory(user=self.user, workspace=self.workspace, cluster=self.cluster, role=PRP_ROLE_TYPES.cluster_imo) + IPPRPRoleFactory(user=self.partner_user, workspace=self.workspace, role=PRP_ROLE_TYPES.ip_authorized_officer) + IPPRPRoleFactory(user=self.partner_user, workspace=self.workspace, cluster=None, role=PRP_ROLE_TYPES.cluster_member) + self.project = PartnerProjectFactory( + partner=self.partner, + clusters=[self.cluster], + locations=[self.loc1, self.loc2], + ) + self.p_activity = ClusterActivityPartnerActivityFactory( + partner=self.partner, + cluster_activity=self.activity, + ) + self.project_context = PartnerActivityProjectContextFactory( + project=self.project, + activity=self.p_activity, + ) + self.sample_disaggregation_value_map = { + "height": ["tall", "medium", "short", "extrashort"], + "age": ["1-2m", "3-4m", "5-6m", '7-10m', '11-13m', '14-16m'], + "gender": ["male", "female", "other"], + } + + blueprint = QuantityTypeIndicatorBlueprintFactory( + unit=IndicatorBlueprint.NUMBER, + calculation_formula_across_locations=IndicatorBlueprint.SUM, + calculation_formula_across_periods=IndicatorBlueprint.SUM, + ) + self.partneractivity_reportable = QuantityReportableToPartnerActivityFactory( + content_object=self.p_activity, blueprint=blueprint + ) + + LocationWithReportableLocationGoalFactory( + location=self.loc1, + reportable=self.partneractivity_reportable, + ) + + LocationWithReportableLocationGoalFactory( + location=self.loc2, + reportable=self.partneractivity_reportable, + ) + + self.pd = ProgrammeDocumentFactory( + workspace=self.workspace, + partner=self.partner, + sections=[SectionFactory(), ], + unicef_officers=[self.unicef_officer, ], + unicef_focal_point=[self.unicef_focal_point, ], + partner_focal_point=[self.partner_focal_point, ] + ) + + for idx in range(2): + qpr_period = QPRReportingPeriodDatesFactory(programme_document=self.pd) + ProgressReportFactory( + start_date=qpr_period.start_date, + end_date=qpr_period.end_date, + due_date=qpr_period.due_date, + report_number=idx + 1, + report_type=qpr_period.report_type, + is_final=False, + programme_document=self.pd, + submitted_by=self.user, + submitting_user=self.user, + ) + + for idx in range(6): + hr_period = HRReportingPeriodDatesFactory(programme_document=self.pd) + ProgressReportFactory( + start_date=hr_period.start_date, + end_date=hr_period.end_date, + due_date=hr_period.due_date, + report_number=idx + 1, + report_type=hr_period.report_type, + is_final=False, + programme_document=self.pd, + submitted_by=self.user, + submitting_user=self.user, + ) + + self.cp_output = PDResultLinkFactory( + programme_document=self.pd, + ) + self.llo = LowerLevelOutputFactory( + cp_output=self.cp_output, + ) + self.llo_reportable = QuantityReportableToLowerLevelOutputFactory( + content_object=self.llo, + blueprint=QuantityTypeIndicatorBlueprintFactory( + unit=IndicatorBlueprint.NUMBER, + calculation_formula_across_locations=IndicatorBlueprint.SUM, + ) + ) + + self.llo_reportable.disaggregations.clear() + self.partneractivity_reportable.disaggregations.clear() + + # Create the disaggregations and values in the db for all response plans + # including one for no response plan as well + for disagg_name, values in self.sample_disaggregation_value_map.items(): + disagg = IPDisaggregationFactory(name=disagg_name) + cluster_disagg = DisaggregationFactory(name=disagg_name, response_plan=self.response_plan) + + self.llo_reportable.disaggregations.add(disagg) + self.partneractivity_reportable.disaggregations.add(cluster_disagg) + + for value in values: + DisaggregationValueFactory( + disaggregation=cluster_disagg, + value=value + ) + DisaggregationValueFactory( + disaggregation=disagg, + value=value + ) + + LocationWithReportableLocationGoalFactory( + location=self.loc1, + reportable=self.llo_reportable, + ) + + LocationWithReportableLocationGoalFactory( + location=self.loc2, + reportable=self.llo_reportable, + ) + + for _ in range(2): + with patch("django.db.models.signals.ModelSignal.send", Mock()): + ClusterIndicatorReportFactory( + reportable=self.partneractivity_reportable, + report_status=INDICATOR_REPORT_STATUS.submitted, + ) + + # Creating Level-3 disaggregation location data for all locations + generate_3_num_disagg_data(self.partneractivity_reportable, indicator_type="quantity") + + for loc_data in IndicatorLocationData.objects.filter(indicator_report__reportable=self.partneractivity_reportable): + QuantityIndicatorDisaggregator.post_process(loc_data) + + for pr in self.pd.progress_reports.all(): + ProgressReportIndicatorReportFactory( + progress_report=pr, + reportable=self.llo_reportable, + report_status=INDICATOR_REPORT_STATUS.submitted, + overall_status=OVERALL_STATUS.met, + ) + + # Creating Level-3 disaggregation location data for all locations + generate_3_num_disagg_data(self.llo_reportable, indicator_type="quantity") + + for loc_data in IndicatorLocationData.objects.filter(indicator_report__reportable=self.llo_reportable): + QuantityIndicatorDisaggregator.post_process(loc_data) + + super().setUp() + + # Logging in as Partner AO + self.client.force_authenticate(self.partner_user) + + self.location_id = self.loc1.id + self.queryset = self.get_queryset() + + def get_queryset(self): + pd_ids = Location.objects.filter( + Q(id=self.location_id) | + Q(parent_id=self.location_id) | + Q(parent__parent_id=self.location_id) | + Q(parent__parent__parent_id=self.location_id) | + Q(parent__parent__parent__parent_id=self.location_id) + ).values_list( + 'reportables__lower_level_outputs__cp_output__programme_document__id', + flat=True + ) + return ProgressReport.objects.filter(programme_document_id__in=pd_ids) + + @patch("django_api.apps.utils.emails.EmailTemplate.objects.update_or_create") + @patch.object(Notification, "full_clean", return_value=None) + @patch.object(Notification, "send_notification", return_value=None) + def test_send_notification_on_status_change_post_save_signal_for_submitted( + self, + mock_create, + mock_clean, + mock_send, + ): + report = ProgressReport.objects.get(report_type="QPR", report_number=1) + report.status = PROGRESS_REPORT_STATUS.due + report.save() + + report.status = PROGRESS_REPORT_STATUS.submitted + report.save() + + self.assertEqual(Notification.objects.count(), 2) + + self.assertTrue(mock_create.called) + + @patch("django_api.apps.utils.emails.EmailTemplate.objects.update_or_create") + @patch.object(Notification, "full_clean", return_value=None) + @patch.object(Notification, "send_notification", return_value=None) + def test_send_notification_on_status_change_post_save_signal_for_sent_back( + self, + mock_create, + mock_clean, + mock_send, + ): + report = ProgressReport.objects.get(report_type="QPR", report_number=1) + report.status = PROGRESS_REPORT_STATUS.due + report.save() + + report.status = PROGRESS_REPORT_STATUS.sent_back + report.save() + + # Match # of emails sent by submitting_user (also identical to submitted_by), and unicef_focal_point + self.assertEqual(Notification.objects.count(), 2) + + self.assertTrue(mock_create.called) + + @patch("django_api.apps.utils.emails.EmailTemplate.objects.update_or_create") + @patch.object(Notification, "full_clean", return_value=None) + @patch.object(Notification, "send_notification", return_value=None) + def test_send_notification_on_status_change_post_save_signal_for_accepted( + self, + mock_create, + mock_clean, + mock_send, + ): + report = ProgressReport.objects.get(report_type="QPR", report_number=1) + report.status = PROGRESS_REPORT_STATUS.due + report.save() + + report.status = PROGRESS_REPORT_STATUS.accepted + report.save() + + # Match # of emails sent by submitting_user (also identical to submitted_by), and unicef_focal_point + self.assertEqual(Notification.objects.count(), 2) + + self.assertTrue(mock_create.called) + + @patch("django_api.apps.utils.emails.EmailTemplate.objects.update_or_create") + @patch.object(Notification, "full_clean", return_value=None) + @patch.object(Notification, "send_notification", return_value=None) + def test_send_due_progress_report_email(self, mock_create, mock_clean, mock_send): + today = date.today() + + report = ProgressReport.objects.get(report_type="QPR", report_number=1) + report.status = PROGRESS_REPORT_STATUS.due + report.due_date = today + relativedelta(days=7) + report.submission_date = None + report.save() + + send_due_progress_report_email() + + # Match # of emails sent by unicef_officer and unicef_focal_point + self.assertEqual(Notification.objects.count(), 2) + + self.assertTrue(mock_create.called) + + @patch("django_api.apps.utils.emails.EmailTemplate.objects.update_or_create") + @patch.object(Notification, "full_clean", return_value=None) + @patch.object(Notification, "send_notification", return_value=None) + def test_send_overdue_progress_report_email(self, mock_create, mock_clean, mock_send): + today = date.today() + + report = ProgressReport.objects.get(report_type="QPR", report_number=1) + report.status = PROGRESS_REPORT_STATUS.overdue + report.due_date = today - relativedelta(days=30) + report.submission_date = None + report.save() + + self.assertTrue(mock_send.create) diff --git a/django_api/django_api/apps/unicef/tests/test_views.py b/django_api/django_api/apps/unicef/tests/test_views.py index 33056b8e8..ab72d1001 100644 --- a/django_api/django_api/apps/unicef/tests/test_views.py +++ b/django_api/django_api/apps/unicef/tests/test_views.py @@ -1,56 +1,77 @@ +import csv import datetime +import io +import tempfile +import os +import xlrd +from unittest.mock import Mock, patch + from django.conf import settings +from django.core.files import File +from django.core.files.uploadedfile import SimpleUploadedFile from django.db.models import Q from django.urls import reverse from rest_framework import status -from core.common import ( - INDICATOR_REPORT_STATUS, - OVERALL_STATUS, - PROGRESS_REPORT_STATUS, - PRP_ROLE_TYPES, -) -from core.management.commands._generate_disaggregation_fake_data import ( - generate_3_num_disagg_data, -) -from core.factories import (CartoDBTableFactory, - ProgressReportIndicatorReportFactory, - IPPRPRoleFactory, +from unicef_notification.models import Notification + +from core.common import (INDICATOR_REPORT_STATUS, OVERALL_STATUS, + PROGRESS_REPORT_STATUS, PRP_ROLE_TYPES, PR_ATTACHMENT_TYPES) +from core.factories import (CartoDBTableFactory, ClusterActivityFactory, + ClusterActivityPartnerActivityFactory, + ClusterFactory, ClusterIndicatorReportFactory, + ClusterObjectiveFactory, ClusterPRPRoleFactory, CountryFactory, DisaggregationFactory, DisaggregationValueFactory, GatewayTypeFactory, + HRReportingPeriodDatesFactory, + IPDisaggregationFactory, IPPRPRoleFactory, LocationFactory, LocationWithReportableLocationGoalFactory, - PartnerUserFactory, PartnerFactory, + LowerLevelOutputFactory, NonPartnerUserFactory, + PartnerFactory, PartnerProjectFactory, + PartnerActivityProjectContextFactory, + PartnerUserFactory, PDResultLinkFactory, + PersonFactory, ProgrammeDocumentFactory, + ProgressReportAttachmentFactory, ProgressReportFactory, - QuantityReportableToLowerLevelOutputFactory, - QuantityTypeIndicatorBlueprintFactory, - WorkspaceFactory, - SectionFactory, - PersonFactory, - IPDisaggregationFactory, - ProgrammeDocumentFactory, + ProgressReportIndicatorReportFactory, QPRReportingPeriodDatesFactory, - HRReportingPeriodDatesFactory, - PDResultLinkFactory, - LowerLevelOutputFactory, - ClusterPRPRoleFactory, - ResponsePlanFactory, - ClusterFactory, - NonPartnerUserFactory, - ClusterObjectiveFactory, - ClusterActivityFactory, - PartnerProjectFactory, - ClusterActivityPartnerActivityFactory, + QuantityReportableToLowerLevelOutputFactory, QuantityReportableToPartnerActivityFactory, - ClusterIndicatorReportFactory) -from core.tests.base import BaseAPITestCase + QuantityTypeIndicatorBlueprintFactory, + ResponsePlanFactory, SectionFactory, + WorkspaceFactory, faker) +from core.management.commands._generate_disaggregation_fake_data import \ + generate_3_num_disagg_data from core.models import Location +from core.tests.base import BaseAPITestCase from indicator.disaggregators import QuantityIndicatorDisaggregator -from indicator.models import ( - IndicatorReport, - IndicatorBlueprint, - IndicatorLocationData, -) -from unicef.models import ProgressReport +from indicator.models import (IndicatorBlueprint, IndicatorLocationData, + IndicatorReport) +from unicef.models import ProgressReport, ProgressReportAttachment + + +def convert_xlsx_to_csv(response): + download_file = io.BytesIO(response.content) + xlsx_file = xlrd.open_workbook(file_contents=download_file.read()) + xlsx_sheet = xlsx_file.sheet_by_index(0) + csv_filename = tempfile.NamedTemporaryFile() + with open(csv_filename.name, "w") as csv_file: + wr = csv.writer(csv_file) + for rownum in range(xlsx_sheet.nrows): + wr.writerow(xlsx_sheet.row_values(rownum)) + return csv_filename + + +def string_in_download(text, response): + exists = False + csv_filename = convert_xlsx_to_csv(response) + with open(csv_filename.name) as csv_file: + rd = csv.reader(csv_file) + for row in rd: + if text in ",".join(row): + exists = True + break + return exists class TestProgrammeDocumentListAPIView(BaseAPITestCase): @@ -92,8 +113,12 @@ def setUp(self): locations=[self.loc1, self.loc2], ) self.p_activity = ClusterActivityPartnerActivityFactory( + partner=self.partner, cluster_activity=self.activity, + ) + self.project_context = PartnerActivityProjectContextFactory( project=self.project, + activity=self.p_activity, ) self.sample_disaggregation_value_map = { "height": ["tall", "medium", "short", "extrashort"], @@ -131,7 +156,7 @@ def setUp(self): for idx in range(2): qpr_period = QPRReportingPeriodDatesFactory(programme_document=self.pd) - ProgressReportFactory( + pr = ProgressReportFactory( start_date=qpr_period.start_date, end_date=qpr_period.end_date, due_date=qpr_period.due_date, @@ -143,9 +168,14 @@ def setUp(self): submitting_user=self.user, ) + ProgressReportAttachmentFactory( + progress_report=pr, + type=PR_ATTACHMENT_TYPES.face, + ) + for idx in range(6): hr_period = HRReportingPeriodDatesFactory(programme_document=self.pd) - ProgressReportFactory( + pr = ProgressReportFactory( start_date=hr_period.start_date, end_date=hr_period.end_date, due_date=hr_period.due_date, @@ -157,6 +187,11 @@ def setUp(self): submitting_user=self.user, ) + ProgressReportAttachmentFactory( + progress_report=pr, + type=PR_ATTACHMENT_TYPES.face, + ) + self.cp_output = PDResultLinkFactory( programme_document=self.pd, ) @@ -204,10 +239,11 @@ def setUp(self): ) for _ in range(2): - ClusterIndicatorReportFactory( - reportable=self.partneractivity_reportable, - report_status=INDICATOR_REPORT_STATUS.submitted, - ) + with patch("django.db.models.signals.ModelSignal.send", Mock()): + ClusterIndicatorReportFactory( + reportable=self.partneractivity_reportable, + report_status=INDICATOR_REPORT_STATUS.submitted, + ) # Creating Level-3 disaggregation location data for all locations generate_3_num_disagg_data(self.partneractivity_reportable, indicator_type="quantity") @@ -234,6 +270,11 @@ def setUp(self): # Logging in as Partner AO self.client.force_authenticate(self.partner_user) + def tearDown(self): + for attachment in ProgressReportAttachment.objects.all(): + attachment.file.delete() + attachment.delete() + def test_list_api(self): url = reverse( 'programme-document', @@ -331,8 +372,12 @@ def setUp(self): locations=[self.loc1, self.loc2], ) self.p_activity = ClusterActivityPartnerActivityFactory( + partner=self.partner, cluster_activity=self.activity, + ) + self.project_context = PartnerActivityProjectContextFactory( project=self.project, + activity=self.p_activity, ) self.sample_disaggregation_value_map = { "height": ["tall", "medium", "short", "extrashort"], @@ -370,7 +415,7 @@ def setUp(self): for idx in range(2): qpr_period = QPRReportingPeriodDatesFactory(programme_document=self.pd) - ProgressReportFactory( + pr = ProgressReportFactory( start_date=qpr_period.start_date, end_date=qpr_period.end_date, due_date=qpr_period.due_date, @@ -382,9 +427,14 @@ def setUp(self): submitting_user=self.user, ) + ProgressReportAttachmentFactory( + progress_report=pr, + type=PR_ATTACHMENT_TYPES.face, + ) + for idx in range(6): hr_period = HRReportingPeriodDatesFactory(programme_document=self.pd) - ProgressReportFactory( + pr = ProgressReportFactory( start_date=hr_period.start_date, end_date=hr_period.end_date, due_date=hr_period.due_date, @@ -396,6 +446,11 @@ def setUp(self): submitting_user=self.user, ) + ProgressReportAttachmentFactory( + progress_report=pr, + type=PR_ATTACHMENT_TYPES.face, + ) + self.cp_output = PDResultLinkFactory( programme_document=self.pd, ) @@ -443,10 +498,11 @@ def setUp(self): ) for _ in range(2): - ClusterIndicatorReportFactory( - reportable=self.partneractivity_reportable, - report_status=INDICATOR_REPORT_STATUS.submitted, - ) + with patch("django.db.models.signals.ModelSignal.send", Mock()): + ClusterIndicatorReportFactory( + reportable=self.partneractivity_reportable, + report_status=INDICATOR_REPORT_STATUS.submitted, + ) # Creating Level-3 disaggregation location data for all locations generate_3_num_disagg_data(self.partneractivity_reportable, indicator_type="quantity") @@ -473,6 +529,11 @@ def setUp(self): # Logging in as Partner AO self.client.force_authenticate(self.partner_user) + def tearDown(self): + for attachment in ProgressReportAttachment.objects.all(): + attachment.file.delete() + attachment.delete() + def test_detail_api(self): url = reverse( 'programme-document-details', @@ -525,8 +586,12 @@ def setUp(self): locations=[self.loc1, self.loc2], ) self.p_activity = ClusterActivityPartnerActivityFactory( + partner=self.partner, cluster_activity=self.activity, + ) + self.project_context = PartnerActivityProjectContextFactory( project=self.project, + activity=self.p_activity, ) self.sample_disaggregation_value_map = { "height": ["tall", "medium", "short", "extrashort"], @@ -564,7 +629,7 @@ def setUp(self): for idx in range(2): qpr_period = QPRReportingPeriodDatesFactory(programme_document=self.pd) - ProgressReportFactory( + pr = ProgressReportFactory( start_date=qpr_period.start_date, end_date=qpr_period.end_date, due_date=qpr_period.due_date, @@ -576,9 +641,14 @@ def setUp(self): submitting_user=self.user, ) + ProgressReportAttachmentFactory( + progress_report=pr, + type=PR_ATTACHMENT_TYPES.face, + ) + for idx in range(6): hr_period = HRReportingPeriodDatesFactory(programme_document=self.pd) - ProgressReportFactory( + pr = ProgressReportFactory( start_date=hr_period.start_date, end_date=hr_period.end_date, due_date=hr_period.due_date, @@ -590,6 +660,11 @@ def setUp(self): submitting_user=self.user, ) + ProgressReportAttachmentFactory( + progress_report=pr, + type=PR_ATTACHMENT_TYPES.face, + ) + self.cp_output = PDResultLinkFactory( programme_document=self.pd, ) @@ -637,10 +712,11 @@ def setUp(self): ) for _ in range(2): - ClusterIndicatorReportFactory( - reportable=self.partneractivity_reportable, - report_status=INDICATOR_REPORT_STATUS.submitted, - ) + with patch("django.db.models.signals.ModelSignal.send", Mock()): + ClusterIndicatorReportFactory( + reportable=self.partneractivity_reportable, + report_status=INDICATOR_REPORT_STATUS.submitted, + ) # Creating Level-3 disaggregation location data for all locations generate_3_num_disagg_data(self.partneractivity_reportable, indicator_type="quantity") @@ -670,6 +746,11 @@ def setUp(self): self.location_id = self.loc1.id self.queryset = self.get_queryset() + def tearDown(self): + for attachment in ProgressReportAttachment.objects.all(): + attachment.file.delete() + attachment.delete() + def get_queryset(self): pd_ids = Location.objects.filter( Q(id=self.location_id) | @@ -758,3 +839,476 @@ def test_list_api_filter_by_due_date(self): self.assertEquals(response.status_code, status.HTTP_200_OK) self.assertEquals(len(response.data['results']), len(pr_queryset)) + + @patch("django_api.apps.utils.emails.EmailTemplate.objects.update_or_create") + @patch.object(Notification, "full_clean", return_value=None) + @patch.object(Notification, "send_notification", return_value=None) + def test_list_api_export(self, mock_create, mock_clean, mock_send): + # ensure at least one report has status overdue + report = self.queryset.first() + report.status = PROGRESS_REPORT_STATUS.overdue + report.save() + + url = reverse( + 'progress-reports', + kwargs={'workspace_id': self.workspace.id}) + response = self.client.get(url, data={"export": "xlsx"}) + + self.assertEquals(response.status_code, status.HTTP_200_OK) + disposition = response.get("Content-Disposition") + self.assertTrue(disposition.startswith("attachment; filename=")) + self.assertTrue( + disposition.endswith('Progress Report(s) Summary.xlsx"'), + ) + self.reports = self.queryset.filter( + status=PROGRESS_REPORT_STATUS.overdue + ) + self.assertTrue(len(self.reports)) + self.assertTrue(string_in_download( + PROGRESS_REPORT_STATUS[PROGRESS_REPORT_STATUS.overdue], + response, + )) + + @patch("django_api.apps.utils.emails.EmailTemplate.objects.update_or_create") + @patch.object(Notification, "full_clean", return_value=None) + @patch.object(Notification, "send_notification", return_value=None) + def test_list_api_export_filter(self, mock_create, mock_clean, mock_send): + # ensure we have needed report statuses + report_overdue = self.queryset.first() + report_overdue.status = PROGRESS_REPORT_STATUS.overdue + report_overdue.save() + report_due = self.queryset.last() + report_due.status = PROGRESS_REPORT_STATUS.due + report_due.save() + + url = reverse( + 'progress-reports', + kwargs={'workspace_id': self.workspace.id}) + response = self.client.get( + url, + data={ + "export": "xlsx", + "status": PROGRESS_REPORT_STATUS.due + }, + ) + + self.assertEquals(response.status_code, status.HTTP_200_OK) + disposition = response.get("Content-Disposition") + self.assertTrue(disposition.startswith("attachment; filename=")) + self.assertTrue( + disposition.endswith('Progress Report(s) Summary.xlsx"'), + ) + reports_overdue = self.queryset.filter( + status=PROGRESS_REPORT_STATUS.overdue + ) + self.assertTrue(len(reports_overdue)) + reports_due = self.queryset.filter( + status=PROGRESS_REPORT_STATUS.due + ) + self.assertTrue(len(reports_due)) + self.assertFalse(string_in_download( + PROGRESS_REPORT_STATUS[PROGRESS_REPORT_STATUS.overdue], + response, + )) + self.assertTrue(string_in_download( + PROGRESS_REPORT_STATUS[PROGRESS_REPORT_STATUS.due], + response, + )) + + @patch("django_api.apps.utils.emails.EmailTemplate.objects.update_or_create") + @patch.object(Notification, "full_clean", return_value=None) + @patch.object(Notification, "send_notification", return_value=None) + def test_list_api_export_filter_multiple(self, mock_create, mock_clean, mock_send): + # ensure we have needed report statuses + reports = self.queryset.all() + self.assertTrue(len(reports) > 3) + report_overdue = reports[0] + report_overdue.status = PROGRESS_REPORT_STATUS.overdue + report_overdue.save() + report_accepted = reports[1] + report_accepted.status = PROGRESS_REPORT_STATUS.accepted + report_accepted.save() + report_sent_back = reports[2] + report_sent_back.status = PROGRESS_REPORT_STATUS.sent_back + report_sent_back.save() + + url = reverse( + 'progress-reports', + kwargs={'workspace_id': self.workspace.id}) + response = self.client.get( + url, + data={ + "export": "xlsx", + "status": ",".join([ + PROGRESS_REPORT_STATUS.accepted, + PROGRESS_REPORT_STATUS.sent_back, + ]), + }, + ) + + self.assertEquals(response.status_code, status.HTTP_200_OK) + disposition = response.get("Content-Disposition") + self.assertTrue(disposition.startswith("attachment; filename=")) + self.assertTrue( + disposition.endswith('Progress Report(s) Summary.xlsx"'), + ) + reports_overdue = self.queryset.filter( + status=PROGRESS_REPORT_STATUS.overdue + ) + self.assertTrue(len(reports_overdue)) + reports_accepted = self.queryset.filter( + status=PROGRESS_REPORT_STATUS.accepted + ) + self.assertTrue(len(reports_accepted)) + reports_sent_back = self.queryset.filter( + status=PROGRESS_REPORT_STATUS.sent_back + ) + self.assertTrue(len(reports_sent_back)) + self.assertFalse(string_in_download( + PROGRESS_REPORT_STATUS[PROGRESS_REPORT_STATUS.overdue], + response, + )) + self.assertTrue(string_in_download( + PROGRESS_REPORT_STATUS[PROGRESS_REPORT_STATUS.accepted], + response, + )) + self.assertTrue(string_in_download( + PROGRESS_REPORT_STATUS[PROGRESS_REPORT_STATUS.sent_back], + response, + )) + + +class TestProgressReportAttachmentListCreateAPIView(BaseAPITestCase): + + def setUp(self): + self.country = CountryFactory() + self.workspace = WorkspaceFactory(countries=[self.country, ]) + self.loc_type = GatewayTypeFactory(country=self.country) + self.carto_table = CartoDBTableFactory(location_type=self.loc_type, country=self.country) + self.loc1 = LocationFactory(gateway=self.loc_type, carto_db_table=self.carto_table) + self.loc2 = LocationFactory(gateway=self.loc_type, carto_db_table=self.carto_table) + self.unicef_officer = PersonFactory() + self.unicef_focal_point = PersonFactory() + self.partner_focal_point = PersonFactory() + self.partner = PartnerFactory(country_code=self.country.country_short_code) + self.partner_user = PartnerUserFactory(partner=self.partner) + IPPRPRoleFactory(user=self.partner_user, workspace=self.workspace, role=PRP_ROLE_TYPES.ip_authorized_officer) + self.sample_disaggregation_value_map = { + "height": ["tall", "medium", "short", "extrashort"], + "age": ["1-2m", "3-4m", "5-6m", '7-10m', '11-13m', '14-16m'], + "gender": ["male", "female", "other"], + } + + self.pd = ProgrammeDocumentFactory( + workspace=self.workspace, + partner=self.partner, + sections=[SectionFactory(), ], + unicef_officers=[self.unicef_officer, ], + unicef_focal_point=[self.unicef_focal_point, ], + partner_focal_point=[self.partner_focal_point, ] + ) + + for idx in range(2): + qpr_period = QPRReportingPeriodDatesFactory(programme_document=self.pd) + pr = ProgressReportFactory( + start_date=qpr_period.start_date, + end_date=qpr_period.end_date, + due_date=qpr_period.due_date, + report_number=idx + 1, + report_type=qpr_period.report_type, + is_final=False, + programme_document=self.pd, + submitted_by=self.user, + submitting_user=self.user, + ) + + ProgressReportAttachmentFactory( + progress_report=pr, + type=PR_ATTACHMENT_TYPES.face, + ) + + for idx in range(6): + hr_period = HRReportingPeriodDatesFactory(programme_document=self.pd) + pr = ProgressReportFactory( + start_date=hr_period.start_date, + end_date=hr_period.end_date, + due_date=hr_period.due_date, + report_number=idx + 1, + report_type=hr_period.report_type, + is_final=False, + programme_document=self.pd, + submitted_by=self.user, + submitting_user=self.user, + ) + + ProgressReportAttachmentFactory( + progress_report=pr, + type=PR_ATTACHMENT_TYPES.face, + ) + + self.cp_output = PDResultLinkFactory( + programme_document=self.pd, + ) + self.llo = LowerLevelOutputFactory( + cp_output=self.cp_output, + ) + self.llo_reportable = QuantityReportableToLowerLevelOutputFactory( + content_object=self.llo, + blueprint=QuantityTypeIndicatorBlueprintFactory( + unit=IndicatorBlueprint.NUMBER, + calculation_formula_across_locations=IndicatorBlueprint.SUM, + ) + ) + + self.llo_reportable.disaggregations.clear() + + for disagg_name, values in self.sample_disaggregation_value_map.items(): + disagg = IPDisaggregationFactory(name=disagg_name) + + self.llo_reportable.disaggregations.add(disagg) + + for value in values: + DisaggregationValueFactory( + disaggregation=disagg, + value=value + ) + + LocationWithReportableLocationGoalFactory( + location=self.loc1, + reportable=self.llo_reportable, + ) + + LocationWithReportableLocationGoalFactory( + location=self.loc2, + reportable=self.llo_reportable, + ) + + for pr in self.pd.progress_reports.all(): + ProgressReportIndicatorReportFactory( + progress_report=pr, + reportable=self.llo_reportable, + report_status=INDICATOR_REPORT_STATUS.submitted, + overall_status=OVERALL_STATUS.met, + ) + + # Creating Level-3 disaggregation location data for all locations + generate_3_num_disagg_data(self.llo_reportable, indicator_type="quantity") + + for loc_data in IndicatorLocationData.objects.filter(indicator_report__reportable=self.llo_reportable): + QuantityIndicatorDisaggregator.post_process(loc_data) + + super().setUp() + + # Logging in as Partner AO + self.client.force_authenticate(self.partner_user) + + self.location_id = self.loc1.id + self.pr = self.pd.progress_reports.first() + + settings.MEDIA_ROOT = tempfile.mkdtemp() + + def tearDown(self): + for attachment in ProgressReportAttachment.objects.all(): + attachment.file.delete() + attachment.delete() + + def test_list_api(self): + url = reverse( + 'progress-reports-attachment-list', + kwargs={'workspace_id': self.workspace.id, 'progress_report_id': self.pr.id}) + response = self.client.get(url, format='json') + + self.assertEquals(response.status_code, status.HTTP_200_OK) + self.assertEquals(len(response.data), self.pr.attachments.count()) + + def test_create_api(self): + url = reverse( + 'progress-reports-attachment-list', + kwargs={'workspace_id': self.workspace.id, 'progress_report_id': self.pr.id}) + + f = open('test.txt', 'w') + f.write(faker.text()) + f.close() + + file = File(open('test.txt', 'rb')) + upload_file = SimpleUploadedFile('test', file.read(), content_type="multipart/form-data") + + data = {'type': 'Other', 'path': upload_file} + response = self.client.post(url, data, format="multipart") + + self.assertEquals(response.status_code, status.HTTP_201_CREATED) + self.assertEquals(response.data['size'], data['path'].size) + + os.remove('test.txt') + + +class TestProgressReportAttachmentAPIView(BaseAPITestCase): + + def setUp(self): + self.country = CountryFactory() + self.workspace = WorkspaceFactory(countries=[self.country, ]) + self.loc_type = GatewayTypeFactory(country=self.country) + self.carto_table = CartoDBTableFactory(location_type=self.loc_type, country=self.country) + self.loc1 = LocationFactory(gateway=self.loc_type, carto_db_table=self.carto_table) + self.loc2 = LocationFactory(gateway=self.loc_type, carto_db_table=self.carto_table) + self.unicef_officer = PersonFactory() + self.unicef_focal_point = PersonFactory() + self.partner_focal_point = PersonFactory() + self.partner = PartnerFactory(country_code=self.country.country_short_code) + self.partner_user = PartnerUserFactory(partner=self.partner) + IPPRPRoleFactory(user=self.partner_user, workspace=self.workspace, role=PRP_ROLE_TYPES.ip_authorized_officer) + self.sample_disaggregation_value_map = { + "height": ["tall", "medium", "short", "extrashort"], + "age": ["1-2m", "3-4m", "5-6m", '7-10m', '11-13m', '14-16m'], + "gender": ["male", "female", "other"], + } + + self.pd = ProgrammeDocumentFactory( + workspace=self.workspace, + partner=self.partner, + sections=[SectionFactory(), ], + unicef_officers=[self.unicef_officer, ], + unicef_focal_point=[self.unicef_focal_point, ], + partner_focal_point=[self.partner_focal_point, ] + ) + + for idx in range(2): + qpr_period = QPRReportingPeriodDatesFactory(programme_document=self.pd) + pr = ProgressReportFactory( + start_date=qpr_period.start_date, + end_date=qpr_period.end_date, + due_date=qpr_period.due_date, + report_number=idx + 1, + report_type=qpr_period.report_type, + is_final=False, + programme_document=self.pd, + submitted_by=self.user, + submitting_user=self.user, + ) + + ProgressReportAttachmentFactory( + progress_report=pr, + type=PR_ATTACHMENT_TYPES.face, + ) + + for idx in range(6): + hr_period = HRReportingPeriodDatesFactory(programme_document=self.pd) + pr = ProgressReportFactory( + start_date=hr_period.start_date, + end_date=hr_period.end_date, + due_date=hr_period.due_date, + report_number=idx + 1, + report_type=hr_period.report_type, + is_final=False, + programme_document=self.pd, + submitted_by=self.user, + submitting_user=self.user, + ) + + ProgressReportAttachmentFactory( + progress_report=pr, + type=PR_ATTACHMENT_TYPES.face, + ) + + self.cp_output = PDResultLinkFactory( + programme_document=self.pd, + ) + self.llo = LowerLevelOutputFactory( + cp_output=self.cp_output, + ) + self.llo_reportable = QuantityReportableToLowerLevelOutputFactory( + content_object=self.llo, + blueprint=QuantityTypeIndicatorBlueprintFactory( + unit=IndicatorBlueprint.NUMBER, + calculation_formula_across_locations=IndicatorBlueprint.SUM, + ) + ) + + self.llo_reportable.disaggregations.clear() + + for disagg_name, values in self.sample_disaggregation_value_map.items(): + disagg = IPDisaggregationFactory(name=disagg_name) + + self.llo_reportable.disaggregations.add(disagg) + + for value in values: + DisaggregationValueFactory( + disaggregation=disagg, + value=value + ) + + LocationWithReportableLocationGoalFactory( + location=self.loc1, + reportable=self.llo_reportable, + ) + + LocationWithReportableLocationGoalFactory( + location=self.loc2, + reportable=self.llo_reportable, + ) + + for pr in self.pd.progress_reports.all(): + ProgressReportIndicatorReportFactory( + progress_report=pr, + reportable=self.llo_reportable, + report_status=INDICATOR_REPORT_STATUS.submitted, + overall_status=OVERALL_STATUS.met, + ) + + # Creating Level-3 disaggregation location data for all locations + generate_3_num_disagg_data(self.llo_reportable, indicator_type="quantity") + + for loc_data in IndicatorLocationData.objects.filter(indicator_report__reportable=self.llo_reportable): + QuantityIndicatorDisaggregator.post_process(loc_data) + + super().setUp() + + # Logging in as Partner AO + self.client.force_authenticate(self.partner_user) + + self.location_id = self.loc1.id + self.pr = self.pd.progress_reports.first() + self.attachment = self.pr.attachments.first() + + settings.MEDIA_ROOT = tempfile.mkdtemp() + + def tearDown(self): + for attachment in ProgressReportAttachment.objects.all(): + attachment.file.delete() + attachment.delete() + + def test_detail_api(self): + url = reverse( + 'progress-reports-attachment', + kwargs={'workspace_id': self.workspace.id, 'progress_report_id': self.pr.id, 'pk': self.attachment.id}) + response = self.client.get(url, format='json') + + self.assertEquals(response.status_code, status.HTTP_200_OK) + self.assertEquals(response.data['id'], self.attachment.id) + + def test_update_api(self): + f = open('test.txt', 'w') + f.write(faker.text() + faker.text() + faker.text()) + f.close() + + file = File(open('test.txt', 'rb')) + upload_file = SimpleUploadedFile('test', file.read(), content_type="multipart/form-data") + + data = {'type': 'Other', 'path': upload_file} + url = reverse( + 'progress-reports-attachment', + kwargs={'workspace_id': self.workspace.id, 'progress_report_id': self.pr.id, 'pk': self.attachment.id}) + response = self.client.put(url, data, format="multipart") + + self.assertEquals(response.status_code, status.HTTP_200_OK) + self.assertEquals(response.data['size'], data['path'].size) + + os.remove('test.txt') + + def test_delete_api(self): + url = reverse( + 'progress-reports-attachment', + kwargs={'workspace_id': self.workspace.id, 'progress_report_id': self.pr.id, 'pk': self.attachment.id}) + response = self.client.delete(url, format='multipart') + + self.assertEquals(response.status_code, status.HTTP_204_NO_CONTENT) diff --git a/django_api/django_api/apps/unicef/urls.py b/django_api/django_api/apps/unicef/urls.py index 79f9a5e36..fb60ff86b 100644 --- a/django_api/django_api/apps/unicef/urls.py +++ b/django_api/django_api/apps/unicef/urls.py @@ -15,6 +15,7 @@ ProgrammeDocumentCalculationMethodsAPIView, ProgrammeDocumentProgressAPIView, ProgressReportDetailsUpdateAPIView, + ProgressReportAttachmentListCreateAPIView, ProgressReportAttachmentAPIView, ProgressReportSRSubmitAPIView, ProgressReportPullHFDataAPIView, @@ -82,8 +83,10 @@ url(r'^(?P\d+)/progress-reports/(?P\d+)/locations/$', ProgressReportLocationsAPIView.as_view(), name="progress-reports-locations"), - url(r'^(?P\d+)/progress-reports/(?P\d+)/attachment/$', + url(r'^(?P\d+)/progress-reports/(?P\d+)/attachments/$', + ProgressReportAttachmentListCreateAPIView.as_view(), + name="progress-reports-attachment-list"), + url(r'^(?P\d+)/progress-reports/(?P\d+)/attachments/(?P\d+)/$', ProgressReportAttachmentAPIView.as_view(), name="progress-reports-attachment"), - ] diff --git a/django_api/django_api/apps/unicef/views.py b/django_api/django_api/apps/unicef/views.py index dc9cfe32e..84f2c5970 100644 --- a/django_api/django_api/apps/unicef/views.py +++ b/django_api/django_api/apps/unicef/views.py @@ -10,7 +10,7 @@ from rest_framework import status as statuses from rest_framework.exceptions import ValidationError -from rest_framework.generics import RetrieveAPIView, ListAPIView +from rest_framework.generics import RetrieveAPIView, ListAPIView, ListCreateAPIView from rest_framework.parsers import FileUploadParser, FormParser, MultiPartParser from rest_framework.response import Response from rest_framework.views import APIView @@ -25,6 +25,7 @@ INDICATOR_REPORT_STATUS, OVERALL_STATUS, PD_STATUS, + PR_ATTACHMENT_TYPES, PRP_ROLE_TYPES, ) from core.paginations import SmallPagination @@ -48,6 +49,7 @@ from indicator.filters import PDReportsFilter from indicator.serializers import IndicatorBlueprintSimpleSerializer from indicator.disaggregators import QuantityIndicatorDisaggregator, RatioIndicatorDisaggregator +from indicator.utilities import convert_string_number_to_float from partner.models import Partner from unicef.exports.reportables import ReportableListXLSXExporter, ReportableListPDFExporter @@ -72,7 +74,7 @@ ProgressReportSRUpdateSerializer, ProgressReportPullHFDataSerializer, ) -from .models import ProgrammeDocument, ProgressReport, LowerLevelOutput +from .models import ProgrammeDocument, ProgressReport, LowerLevelOutput, ProgressReportAttachment from .permissions import ( CanChangePDCalculationMethod, UnicefPartnershipManagerOrRead @@ -330,15 +332,21 @@ class ProgressReportAnnexCPDFView(RetrieveAPIView): IsUNICEFAPIUser, IsPartnerAuthorizedOfficerForCurrentWorkspace, IsPartnerEditorForCurrentWorkspace, + IsPartnerViewerForCurrentWorkspace, ), ) def get(self, request, *args, **kwargs): report = self.get_object() + funds_received_to_date_percentage = "%.1f" % ( + report.programme_document.funds_received_to_date * 100 / report.programme_document.budget + ) if report.programme_document and report.programme_document.budget > 0 else 0 + data = { 'report': report, 'pd': report.programme_document, + 'funds_received_to_date_percentage': funds_received_to_date_percentage, 'challenges_in_the_reporting_period': report.challenges_in_the_reporting_period, 'proposed_way_forward': report.proposed_way_forward, 'partner_contribution_to_date': report.partner_contribution_to_date, @@ -361,6 +369,7 @@ class ProgressReportDetailsUpdateAPIView(APIView): AnyPermission( IsPartnerAuthorizedOfficerForCurrentWorkspace, IsPartnerEditorForCurrentWorkspace, + IsPartnerAdminForCurrentWorkspace, ), ) @@ -513,12 +522,13 @@ def list(self, request, workspace_id, progress_report_id, *args, **kwargs): class ProgressReportSubmitAPIView(APIView): """ - Only a partner authorized officer and partner editor can submit a progress report. + Only a partner authorized officer, partner admin, and partner editor can submit a progress report. """ permission_classes = ( AnyPermission( IsPartnerAuthorizedOfficerForCurrentWorkspace, IsPartnerEditorForCurrentWorkspace, + IsPartnerAdminForCurrentWorkspace, ), ) @@ -550,14 +560,11 @@ def post(self, request, *args, **kwargs): ) for ir in progress_report.indicator_reports.all(): - # Check if all indicator data is fulfilled - for data in ir.indicator_location_data.all(): - for key, vals in data.disaggregation.items(): - if (vals.get('d', 0) in [None, '']): - raise ValidationError( - "You have not completed all indicator location data across " - "all indicator reports for this progress report." - ) + if not ir.is_complete: + raise ValidationError( + "You have not completed all indicator location data across " + "all indicator reports for this progress report." + ) # Check if indicator was already submitted or SENT BACK if ir.submission_date is None or ir.report_status == INDICATOR_REPORT_STATUS.sent_back: @@ -578,8 +585,8 @@ def post(self, request, *args, **kwargs): if ir.overall_status not in {OVERALL_STATUS.met, OVERALL_STATUS.no_progress} \ and not ir.narrative_assessment: raise ValidationError( - "You have not completed narrative assessment for one of Outputs ({}). Unless your Output " - "status is Met or No Progress.".format( + "You have not completed the narrative assessment for one of the outputs ({}). Unless your output " + "status is Met or No Progress, you have to fill in the narrative assessment.".format( ir.reportable.content_object ) ) @@ -604,7 +611,8 @@ def post(self, request, *args, **kwargs): authorized_officer_user = get_user_model().objects.filter( email=provided_email or self.request.user.email, prp_roles__role=PRP_ROLE_TYPES.ip_authorized_officer, - email__in=progress_report.programme_document.unicef_officers.values_list('email', flat=True) + email__in=progress_report.programme_document + .unicef_officers.filter(active=True).values_list('email', flat=True) ).first() if not authorized_officer_user: @@ -650,12 +658,13 @@ def post(self, request, *args, **kwargs): class ProgressReportSRSubmitAPIView(APIView): """ A dedicated API endpoint for submitting SR Progress Report. - Only a partner authorized officer and partner editor can submit a progress report. + Only a partner authorized officer, partner admin, and partner editor can submit a progress report. """ permission_classes = ( AnyPermission( IsPartnerAuthorizedOfficerForCurrentWorkspace, IsPartnerEditorForCurrentWorkspace, + IsPartnerAdminForCurrentWorkspace, ), ) @@ -692,7 +701,7 @@ def post(self, request, *args, **kwargs): ) # Attachment field validation - if not progress_report.attachment: + if not progress_report.attachments.exists(): raise ValidationError( "Attachment is required for SR report type" ) @@ -704,7 +713,8 @@ def post(self, request, *args, **kwargs): authorized_officer_user = get_user_model().objects.filter( email=provided_email or self.request.user.email, prp_roles__role=PRP_ROLE_TYPES.ip_authorized_officer, - email__in=progress_report.programme_document.partner_focal_point.values_list('email', flat=True) + email__in=progress_report.programme_document.unicef_officers + .filter(active=True).values_list('email', flat=True) ).first() if not authorized_officer_user: @@ -743,6 +753,7 @@ class ProgressReportPullHFDataAPIView(APIView): AnyPermission( IsPartnerAuthorizedOfficerForCurrentWorkspace, IsPartnerEditorForCurrentWorkspace, + IsPartnerAdminForCurrentWorkspace, ), ) @@ -845,7 +856,6 @@ def _calculate_report_location_totals_per_reports(self, indicator_report, hf_rep # Store location_totals only for each IndicatorLocationData for ild in target_hf_ilds_by_loc: - calculated[loc_id]['total']['c'] += ild.disaggregation['()']['c'] calculated[loc_id]['total']['v'] += ild.disaggregation['()']['v'] if indicator_report.reportable.blueprint.unit == IndicatorBlueprint.NUMBER: @@ -853,6 +863,12 @@ def _calculate_report_location_totals_per_reports(self, indicator_report, hf_rep else: calculated[loc_id]['total']['d'] += ild.disaggregation['()']['d'] + + calculated[loc_id]['total']['c'] = convert_string_number_to_float(calculated[loc_id]['total']['v']) / calculated[loc_id]['total']['d'] + + if calculated[loc_id]['total']['c'] is None: + calculated[loc_id]['total']['c'] = 0 + else: target_keys = target_hf_ilds_by_loc[0].disaggregation.keys() @@ -865,7 +881,6 @@ def _calculate_report_location_totals_per_reports(self, indicator_report, hf_rep if key not in calculated[loc_id]['data']: calculated[loc_id]['data'][key] = {'c': 0, 'd': 0, 'v': 0} - calculated[loc_id]['data'][key]['c'] += ild.disaggregation[key]['c'] calculated[loc_id]['data'][key]['v'] += ild.disaggregation[key]['v'] if indicator_report.reportable.blueprint.unit == IndicatorBlueprint.NUMBER: @@ -874,6 +889,12 @@ def _calculate_report_location_totals_per_reports(self, indicator_report, hf_rep else: calculated[loc_id]['data'][key]['d'] += ild.disaggregation[key]['d'] + calculated[loc_id]['data'][key]['c'] = convert_string_number_to_float(calculated[loc_id]['data'][key]['v']) \ + / calculated[loc_id]['data'][key]['d'] + + if calculated[loc_id]['data'][key]['c'] is None: + calculated[loc_id]['data'][key]['c'] = 0 + return calculated def get(self, request, *args, **kwargs): @@ -1092,28 +1113,63 @@ def post(self, request, *args, **kwargs): return Response(serializer.data, status=statuses.HTTP_200_OK) +class ProgressReportAttachmentListCreateAPIView(ListCreateAPIView): + serializer_class = ProgressReportAttachmentSerializer + permission_classes = ( + AnyPermission( + IsUNICEFAPIUser, + IsPartnerAuthorizedOfficerForCurrentWorkspace, + IsPartnerEditorForCurrentWorkspace, + IsPartnerAdminForCurrentWorkspace, + ), + ) + parser_classes = (FormParser, MultiPartParser, FileUploadParser) + + def get_queryset(self): + return ProgressReportAttachment.objects.filter( + progress_report_id=self.kwargs['progress_report_id'], + progress_report__programme_document__workspace_id=self.kwargs['workspace_id'], + ) + + def perform_create(self, serializer): + if self.get_queryset().count() == 3: + raise ValidationError('This progress report already has 3 attachments') + + if serializer.validated_data['type'] == PR_ATTACHMENT_TYPES.face \ + and self.get_queryset().filter(type=PR_ATTACHMENT_TYPES.face).count() == 1: + raise ValidationError('This progress report already has 1 FACE attachment') + + if serializer.validated_data['type'] == PR_ATTACHMENT_TYPES.other \ + and self.get_queryset().filter(type=PR_ATTACHMENT_TYPES.other).count() == 2: + raise ValidationError('This progress report already has 2 Other attachments') + + serializer.save(progress_report_id=self.kwargs['progress_report_id']) + + class ProgressReportAttachmentAPIView(APIView): permission_classes = ( AnyPermission( IsUNICEFAPIUser, IsPartnerAuthorizedOfficerForCurrentWorkspace, IsPartnerEditorForCurrentWorkspace, + IsPartnerAdminForCurrentWorkspace, ), ) parser_classes = (FormParser, MultiPartParser, FileUploadParser) - def get(self, request, workspace_id, progress_report_id): - progress_report = get_object_or_404( - ProgressReport, - id=progress_report_id, - programme_document__workspace_id=workspace_id + def get(self, request, workspace_id, progress_report_id, pk): + attachment = get_object_or_404( + ProgressReportAttachment, + id=pk, + progress_report_id=progress_report_id, + progress_report__programme_document__workspace_id=workspace_id ) try: # lookup just so the possible FileNotFoundError can be triggered - progress_report.attachment - serializer = ProgressReportAttachmentSerializer(progress_report) + attachment.file + serializer = ProgressReportAttachmentSerializer(attachment) return Response(serializer.data, status=statuses.HTTP_200_OK) except FileNotFoundError: pass @@ -1121,16 +1177,18 @@ def get(self, request, workspace_id, progress_report_id): return Response({"message": "Attachment does not exist."}, status=statuses.HTTP_404_NOT_FOUND) @transaction.atomic - def delete(self, request, workspace_id, progress_report_id): - pr = get_object_or_404( - ProgressReport, - id=progress_report_id, - programme_document__workspace_id=workspace_id + def delete(self, request, workspace_id, progress_report_id, pk): + attachment = get_object_or_404( + ProgressReportAttachment, + id=pk, + progress_report_id=progress_report_id, + progress_report__programme_document__workspace_id=workspace_id ) - if pr.attachment: + if attachment.file: try: - pr.attachment.delete() + attachment.file.delete() + attachment.delete() return Response({}, status=statuses.HTTP_204_NO_CONTENT) except ValueError: pass @@ -1138,21 +1196,23 @@ def delete(self, request, workspace_id, progress_report_id): return Response({"message": "Attachment does not exist."}, status=statuses.HTTP_404_NOT_FOUND) @transaction.atomic - def put(self, request, workspace_id, progress_report_id): - pr = get_object_or_404( - ProgressReport, - id=progress_report_id, - programme_document__workspace_id=workspace_id) + def put(self, request, workspace_id, progress_report_id, pk): + attachment = get_object_or_404( + ProgressReportAttachment, + id=pk, + progress_report_id=progress_report_id, + progress_report__programme_document__workspace_id=workspace_id + ) serializer = ProgressReportAttachmentSerializer( - instance=pr, + instance=attachment, data=request.data ) serializer.is_valid(raise_exception=True) - if pr.attachment: + if attachment.file: try: - pr.attachment.delete() + attachment.file.delete() except ValueError: pass @@ -1242,12 +1302,31 @@ class ProgressReportExcelImportView(APIView): permission_classes = (IsAuthenticated, ) - def post(self, request, *args, **kwargs): + def post(self, request, workspace_id, pk): up_file = request.FILES['file'] filepath = "/tmp/" + up_file.name destination = open(filepath, 'wb+') + tokens = up_file.name[:up_file.name.rfind('.')].split('_') + file_report_name = tokens[0].lower() + file_ref_num = tokens[1].lower() + + progress_report = get_object_or_404( + ProgressReport, + id=pk, + programme_document__workspace_id=workspace_id, + ) + + report_name = f"{progress_report.report_type}{progress_report.report_number}".lower() + ref_num = progress_report.programme_document.reference_number.split('/')[-1].lower() + + if file_ref_num != ref_num or file_report_name != report_name: + raise ValidationError( + f"You are trying to upload a template for the wrong report. " + f"This template is for {file_report_name.upper()} and you are loading it into {report_name.upper()}." + ) + for chunk in up_file.chunks(): destination.write(chunk) destination.close() diff --git a/django_api/django_api/apps/utils/emails.py b/django_api/django_api/apps/utils/emails.py index 9f677d572..d5e018bcb 100644 --- a/django_api/django_api/apps/utils/emails.py +++ b/django_api/django_api/apps/utils/emails.py @@ -1,6 +1,24 @@ +import logging + from django.conf import settings -from django.core.mail import EmailMultiAlternatives from django.template.loader import get_template +from post_office.models import EmailTemplate +from unicef_notification.models import Notification + +logger = logging.getLogger(__name__) + + +def scrub_template_path(template_path): + """Take full template path and generate a template name + + e.g. + 'email/notify_partner_on_calculation_method_change_subject.txt' + -> + 'notify_partner_on_calculation_method_change_subject' + """ + __, name_ext = template_path.rsplit("/", 1) + name, __ = name_ext.split(".", 1) + return name def send_email_from_template( @@ -11,7 +29,6 @@ def send_email_from_template( to_email_list=(), fail_silently=True, content_subtype='plain', - **kwargs ): """ send_email_from_template simplifies Django's send_email API @@ -28,12 +45,116 @@ def send_email_from_template( fail_silently {bool} -- A flag to mute exception if it fails (default: {True}) """ - message = EmailMultiAlternatives( - get_template(subject_template_path).render(template_data).strip(), - get_template(body_template_path).render(template_data), - from_email, - to_email_list, - **kwargs + template_name = scrub_template_path(body_template_path) + subject_template = get_template(subject_template_path) + subject = subject_template.template.source.strip() + defaults = {"subject": subject} + message = get_template(body_template_path).template.source + if content_subtype == "plain": + defaults["content"] = message + else: + defaults["html_content"] = message + + EmailTemplate.objects.update_or_create( + name=template_name, + defaults=defaults, + ) + notification = Notification( + method_type=Notification.TYPE_EMAIL, + sender=None, + from_address=from_email, + recipients=to_email_list, + template_name=template_name, + template_data=template_data, + ) + notification.full_clean() + notification.save() + notification.send_notification() + + +def send_due_progress_report_email(): + """send_due_progress_report_email sends email notifications to + UNICEF Authorized Officers and Focal Points about reports due in 1 week. + """ + from datetime import date + from dateutil.relativedelta import relativedelta + from core.common import PROGRESS_REPORT_STATUS + from unicef.models import ProgressReport + + logger.info("Notifying IP due progress reports") + notified = list() + + today = date.today() + unsubmitted_due_reports = ProgressReport.objects.filter( + submission_date__isnull=True, + status=PROGRESS_REPORT_STATUS.due, + due_date=today + relativedelta(days=7), + ) + + for progress_report in unsubmitted_due_reports: + pd = progress_report.programme_document + + template_data = { + 'person': None, + 'progress_report': progress_report, + 'programme_document': pd, + } + + to_emails = set() + to_emails |= set(map(lambda person: person, pd.unicef_officers.all())) + to_emails |= set(map(lambda person: person, pd.unicef_focal_point.all())) + + for person in to_emails: + send_email_from_template( + subject_template_path='emails/due_progress_report_subject.txt', + body_template_path='emails/due_progress_report.html', + template_data=template_data, + to_email_list=[person.email, ], + content_subtype='html' + ) + + notified.append(str(progress_report.id)) + + return "Sent emails for {} Due Report IDs: {}".format(len(notified), ", ".join(notified)) if notified else "---" + + +def send_overdue_progress_report_email(): + """send_overdue_progress_report_email sends email notifications to + UNICEF Authorized Officers and Focal Points about overdue reports. + """ + from core.common import PROGRESS_REPORT_STATUS + from unicef.models import ProgressReport + + logger.info("Notifying IP overdue progress reports") + notified = list() + + unsubmitted_overdue_reports = ProgressReport.objects.filter( + submission_date__isnull=True, + status=PROGRESS_REPORT_STATUS.overdue, ) - message.content_subtype = content_subtype - message.send(fail_silently=fail_silently) + + for progress_report in unsubmitted_overdue_reports: + pd = progress_report.programme_document + + template_data = { + 'person': None, + 'progress_report': progress_report, + 'programme_document': pd, + } + + to_emails = set() + to_emails |= set(map(lambda person: person, pd.unicef_officers.all())) + to_emails |= set(map(lambda person: person, pd.unicef_focal_point.all())) + + for person in to_emails: + send_email_from_template( + subject_template_path='emails/overdue_progress_report_subject.txt', + body_template_path='emails/overdue_progress_report.html', + template_data=template_data, + to_email_list=[person.email, ], + content_subtype='html' + ) + + notified.append(str(progress_report.id)) + + return "Sent emails for {} Overdue Report IDs: {}".format(len(notified), ", ".join(notified)) if notified else "---" diff --git a/django_api/django_api/settings/base.py b/django_api/django_api/settings/base.py index 942af36cb..106cff68a 100644 --- a/django_api/django_api/settings/base.py +++ b/django_api/django_api/settings/base.py @@ -39,7 +39,7 @@ if not ENV: raise Exception('Environment variable ENV is required!') -DATA_VOLUME = '/data' +DATA_VOLUME = os.getenv('DATA_VOLUME', '/data') UPLOADS_DIR_NAME = 'uploads' MEDIA_URL = '/api/%s/' % UPLOADS_DIR_NAME @@ -123,6 +123,8 @@ 'unicef', 'ocha', 'id_management', + 'post_office', + 'unicef_notification', ] MIDDLEWARE_CLASSES = [ @@ -139,13 +141,13 @@ 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] -CORS_ORIGIN_WHITELIST = ( +CORS_ORIGIN_WHITELIST = os.getenv('CORS_ORIGIN_WHITELIST', '').replace(' ', '').strip().split(',') or [ 'etools.unicef.org', 'etools-demo.unicef.org', 'etools-test.unicef.org', 'etools-staging.unicef.org', 'etools-dev.unicef.org', -) +] ROOT_URLCONF = 'django_api.urls' @@ -445,7 +447,7 @@ # 'social_core.pipeline.user.get_username', 'core.mixins.get_username', 'social_core.pipeline.social_auth.associate_by_email', - 'social_core.pipeline.user.create_user', + # 'social_core.pipeline.user.create_user', 'social_core.pipeline.social_auth.associate_user', 'social_core.pipeline.social_auth.load_extra_data', # 'social_core.pipeline.user.user_details', diff --git a/django_api/django_api/settings/dev.py b/django_api/django_api/settings/dev.py index ad6b0a396..be0d7f641 100644 --- a/django_api/django_api/settings/dev.py +++ b/django_api/django_api/settings/dev.py @@ -36,3 +36,5 @@ ) CORS_ORIGIN_WHITELIST += ('localhost:8082', ) + +FIXTURE_DIRS += ["fixtures"] diff --git a/django_api/django_api/templates/emails/due_progress_report.html b/django_api/django_api/templates/emails/due_progress_report.html new file mode 100644 index 000000000..5a2a54914 --- /dev/null +++ b/django_api/django_api/templates/emails/due_progress_report.html @@ -0,0 +1,16 @@ +{% extends 'emails/base.html' %} + +{% block content %} +

Dear {{ person.name }},

+

Please note that the following is due in 1 week:

+
+

Report: {{progress_report.report_type}}{{progress_report.report_number}}

+

Period: {{progress_report.start_date}} - {{progress_report.end_date}}

+

Due Date: {{progress_report.due_date}}

+

Programme Document Ref: {{programme_document.reference_number}}

+

Programme Document Title: {{programme_document.title}}

+
+

Kind regards,

+

UNICEF

+

-- Please note that replies to this email are not monitored and cannot be replied to --

+{% endblock content %} \ No newline at end of file diff --git a/django_api/django_api/templates/emails/due_progress_report_subject.txt b/django_api/django_api/templates/emails/due_progress_report_subject.txt new file mode 100644 index 000000000..14185d055 --- /dev/null +++ b/django_api/django_api/templates/emails/due_progress_report_subject.txt @@ -0,0 +1 @@ +[UNICEF Partner Reporting Portal] Due Report \ No newline at end of file diff --git a/django_api/django_api/templates/emails/on_progress_report_status_change_accepted.html b/django_api/django_api/templates/emails/on_progress_report_status_change_accepted.html index f0e6ff5d4..47ba098dc 100644 --- a/django_api/django_api/templates/emails/on_progress_report_status_change_accepted.html +++ b/django_api/django_api/templates/emails/on_progress_report_status_change_accepted.html @@ -2,6 +2,17 @@ {% block content %}

Dear {{ person.name }},

-

Your progress report {{ pr_url }} for {{ pd_ref_title }}} has been Accepted by UNICEF.

-

Best Regards,

+

Please note that the following was accepted by UNICEF:

+
+

Report: {{report.report_type}}{{report.report_number}}

+

Period: {{report.start_date}} - {{report.end_date}}

+

Submission Date: {{report.submission_date}}

+

Due Date: {{report.due_date}}

+

Link to the report: {{ pr_url }}

+

Programme Document Ref: {{pd.reference_number}}

+

Programme Document Title: {{pd.title}}

+
+

Kind regards,

+

UNICEF

+

-- Please note that replies to this email are not monitored and cannot be replied to --

{% endblock content %} \ No newline at end of file diff --git a/django_api/django_api/templates/emails/on_progress_report_status_change_sent_back.html b/django_api/django_api/templates/emails/on_progress_report_status_change_sent_back.html index 44fc32cd3..c368b3a37 100644 --- a/django_api/django_api/templates/emails/on_progress_report_status_change_sent_back.html +++ b/django_api/django_api/templates/emails/on_progress_report_status_change_sent_back.html @@ -2,6 +2,19 @@ {% block content %}

Dear {{ person.name }},

-

Your progress report {{ pr_url }} for {{ pd_ref_title }}} has been Sent Back for Revision by UNICEF. Please make the necessary changes and resubmit this report.

-

Best Regards,

+

Please note that the following was sent back by UNICEF:

+
+

Report: {{report.report_type}}{{report.report_number}}

+

Period: {{report.start_date}} - {{report.end_date}}

+

Submission Date: {{report.submission_date}}

+

Due Date: {{report.due_date}}

+

Link to the report: {{ pr_url }}

+

Programme Document Ref: {{pd.reference_number}}

+

Programme Document Title: {{pd.title}}

+
+

Please log in to the UNICEF Partner Reporting Portal to see the reason and contact details of the person that sent the report back.

+
+

Kind regards,

+

UNICEF

+

-- Please note that replies to this email are not monitored and cannot be replied to --

{% endblock content %} \ No newline at end of file diff --git a/django_api/django_api/templates/emails/on_progress_report_status_change_subject.txt b/django_api/django_api/templates/emails/on_progress_report_status_change_subject.txt index 1230bfb93..58bf8f5b7 100644 --- a/django_api/django_api/templates/emails/on_progress_report_status_change_subject.txt +++ b/django_api/django_api/templates/emails/on_progress_report_status_change_subject.txt @@ -1 +1 @@ -[Partner Reporting Portal] Progress Report {{ status }} \ No newline at end of file +[UNICEF Partner Reporting Portal] Report {{ status }} \ No newline at end of file diff --git a/django_api/django_api/templates/emails/on_progress_report_status_change_submitted.html b/django_api/django_api/templates/emails/on_progress_report_status_change_submitted.html index c412f5b40..e832e1c6c 100644 --- a/django_api/django_api/templates/emails/on_progress_report_status_change_submitted.html +++ b/django_api/django_api/templates/emails/on_progress_report_status_change_submitted.html @@ -2,6 +2,17 @@ {% block content %}

Dear {{ person.name }},

-

Your progress report {{ pr_url }} for {{ pd_ref_title }}} has been submitted.

-

Best Regards,

+

Please note that the following was submitted to UNICEF:

+
+

Report: {{report.report_type}}{{report.report_number}}

+

Period: {{report.start_date}} - {{report.end_date}}

+

Submission Date: {{report.submission_date}}

+

Due Date: {{report.due_date}}

+

Link to the report: {{ pr_url }}

+

Programme Document Ref: {{pd.reference_number}}

+

Programme Document Title: {{pd.title}}

+
+

Kind regards,

+

UNICEF

+

-- Please note that replies to this email are not monitored and cannot be replied to --

{% endblock content %} \ No newline at end of file diff --git a/django_api/django_api/templates/emails/overdue_progress_report.html b/django_api/django_api/templates/emails/overdue_progress_report.html new file mode 100644 index 000000000..defb18575 --- /dev/null +++ b/django_api/django_api/templates/emails/overdue_progress_report.html @@ -0,0 +1,16 @@ +{% extends 'emails/base.html' %} + +{% block content %} +

Dear {{ person.name }},

+

Please note that the following is overdue:

+
+

Report: {{progress_report.report_type}}{{progress_report.report_number}}

+

Period: {{progress_report.start_date}} - {{progress_report.end_date}}

+

Due Date: {{progress_report.due_date}}

+

Programme Document Ref: {{programme_document.reference_number}}

+

Programme Document Title: {{programme_document.title}}

+
+

Kind regards,

+

UNICEF

+

-- Please note that replies to this email are not monitored and cannot be replied to --

+{% endblock content %} \ No newline at end of file diff --git a/django_api/django_api/templates/emails/overdue_progress_report_subject.txt b/django_api/django_api/templates/emails/overdue_progress_report_subject.txt new file mode 100644 index 000000000..ff215a266 --- /dev/null +++ b/django_api/django_api/templates/emails/overdue_progress_report_subject.txt @@ -0,0 +1 @@ +[UNICEF Partner Reporting Portal] Overdue Report \ No newline at end of file diff --git a/django_api/django_api/uwsgi.ini b/django_api/django_api/uwsgi.ini index 83586dd0b..97ade3ca3 100644 --- a/django_api/django_api/uwsgi.ini +++ b/django_api/django_api/uwsgi.ini @@ -16,7 +16,7 @@ master = true processes = 2 max-requests = 250 max-requests-delta = 25 -harakiri = 180 +harakiri = 900 listen = 32 # request queue diff --git a/django_api/requirements/base.txt b/django_api/requirements/base.txt index a5b31b9bd..2f95a0cad 100644 --- a/django_api/requirements/base.txt +++ b/django_api/requirements/base.txt @@ -30,6 +30,7 @@ Babel==2.5.3 pycountry==18.2.23 aiohttp==3.0.8 pyrestcli==0.6.6 +unicef-notification==0.2.1 # Storages boto3==1.7.0 diff --git a/django_api/requirements/dev.txt b/django_api/requirements/dev.txt index c8483e532..08e02a82a 100644 --- a/django_api/requirements/dev.txt +++ b/django_api/requirements/dev.txt @@ -4,4 +4,7 @@ django-debug-toolbar==1.7 # django-test-without-migrations==0.4 ipdb==0.8.1 -tblib==1.3.2 \ No newline at end of file +tblib==1.3.2 + +# test exports +xlrd==1.2.0 diff --git a/docker-compose.polymer-bundle.yml b/docker-compose.polymer-bundle.yml index 12bcccef6..92d8019f8 100644 --- a/docker-compose.polymer-bundle.yml +++ b/docker-compose.polymer-bundle.yml @@ -1,6 +1,38 @@ version: '2.1' services: + beater-prp: + command: bash -c "/usr/local/bin/waitforit -host=db -port=5432 && ./manage.py celery beat --loglevel=${CELERY_LOG_LEVEL:-info}" + image: 'unicef/etools-prp' + env_file: + - .env + depends_on: + - django_api + - redis + restart: always + + celerycam-prp: + command: bash -c "/usr/local/bin/waitforit -host=db -port=5432 && ./manage.py celerycam" + image: 'unicef/etools-prp' + env_file: + - .env + depends_on: + - django_api + - redis + restart: always + + worker-prp: + command: bash -c "/usr/local/bin/waitforit -host=db -port=5432 && ./manage.py celery worker -E --loglevel=${CELERY_LOG_LEVEL:-debug}" + image: 'unicef/etools-prp' + env_file: + - .env + depends_on: + - django_api + - redis + restart: always + volumes: + - './django_api:/code/' + proxy: image: unicef/etools-prp-nginx-proxy environment: @@ -11,7 +43,7 @@ services: context: ./nginx_proxy dockerfile: ./Dockerfile ports: - - "8082:80" + - "9000:80" depends_on: - django_api - polymer @@ -49,6 +81,16 @@ services: build: context: ./redis dockerfile: ./Dockerfile + + id-management-frontend: + image: unicef/etools-prp-id-management-frontend + build: + context: ./react/id_management_frontend + dockerfile: ./Dockerfile + volumes: + - ./react/id_management_frontend/:/code + - /code/node_modules + command: bash -c "npm start" polymer: image: unicef/etools-prp-polymer diff --git a/docs/.gitbook/assets/cluster_indicator_refresh.png b/docs/.gitbook/assets/cluster_indicator_refresh.png new file mode 100644 index 000000000..5e8b6678d Binary files /dev/null and b/docs/.gitbook/assets/cluster_indicator_refresh.png differ diff --git a/docs/.gitbook/assets/cluster_indicator_refresh_modal.png b/docs/.gitbook/assets/cluster_indicator_refresh_modal.png new file mode 100644 index 000000000..d400bc990 Binary files /dev/null and b/docs/.gitbook/assets/cluster_indicator_refresh_modal.png differ diff --git a/docs/.gitbook/assets/progress_report_refresh.png b/docs/.gitbook/assets/progress_report_refresh.png new file mode 100644 index 000000000..ed2b8ac04 Binary files /dev/null and b/docs/.gitbook/assets/progress_report_refresh.png differ diff --git a/docs/.gitbook/assets/progress_report_refresh_modal.png b/docs/.gitbook/assets/progress_report_refresh_modal.png new file mode 100644 index 000000000..cf3fa397a Binary files /dev/null and b/docs/.gitbook/assets/progress_report_refresh_modal.png differ diff --git a/docs/product-end-user-documentation/cluster-reporting/reporting-on-results.md b/docs/product-end-user-documentation/cluster-reporting/reporting-on-results.md index 7bf3b13ca..bd86318c8 100644 --- a/docs/product-end-user-documentation/cluster-reporting/reporting-on-results.md +++ b/docs/product-end-user-documentation/cluster-reporting/reporting-on-results.md @@ -27,6 +27,15 @@ We will have a data key to specify the labels of the indicators. Once all the data for all locations has been entered the indicator report can be submitted. Once submitted the indicator report goes under "Submitted Reports" tab, and can be reviewed by the IMO. Once submitted, none of the report data can be modified by anyone. The IMO may send back the report if they would like to see changes or incorrect data was entered, in which case the partner can re-submit after making the appropriate changes. +### **Refreshing report** +It is possible that Cluster Indicator may get updated by Cluster IMO for locations which become deactivated over the course of the year period, and generated Cluster Indicator Reports may not reflect such location changes. PRP provides a **"resetting"** mechanism for target Cluster Indicator Report to destroy its location data entries in order to regenerate clean location data entries from current state of Cluster Indicator in PRP system at given time. + +![Cluster Indicator Report Refresh button action](../../.gitbook/assets/cluster_indicator_refresh.png) + +Upon clicking `Refresh` button, a warning modal will be opened to show possible consequences by refreshing current Cluster Indicator Report. When the user agrees to do so, PRP will perform an irreversible action to delete and regenerate Indicator Location Data based on current state of Cluster Indicator which may have up-to-date location information, pertinent to current reporting purposes. + +![Cluster Indicator Report Refresh modal](../../.gitbook/assets/cluster_indicator_refresh_modal.png) + ### Import / Export of data Users will be able to export data they see here. Additionally they will be able to export an "import template" which they can then use to import data back into the system. diff --git a/docs/product-end-user-documentation/ip-reporting/progress-reports/reporting-process.md b/docs/product-end-user-documentation/ip-reporting/progress-reports/reporting-process.md index 52c34f526..a5b3d27c8 100644 --- a/docs/product-end-user-documentation/ip-reporting/progress-reports/reporting-process.md +++ b/docs/product-end-user-documentation/ip-reporting/progress-reports/reporting-process.md @@ -18,6 +18,15 @@ Once a final report has been generated, no change to the PD reporting periods sh **Edge case** \(to be handled in a future release\): Super-users in PMP can make changes that might not be in alignment with above restrictions. If that were to happen then a manual administrative data fix might be required on the PRP side as well. +### **Refreshing report** +It is possible that Programme Document may get updated for locations which become deactivated over the course of the program period, and generated Progress Reports may not reflect such location changes. PRP provides a **"resetting"** mechanism for target Progress Report to destroy its Indicator Reports along with their location data entries in order to regenerate the Indicator Reports from current state of Programme Document in PRP system at given time. + +![Progress Report Refresh button action](../../.gitbook/assets/progress_report_refresh.png) + +Upon clicking `Refresh` button, a warning modal will be opened to show possible consequences by refreshing current Progress Report. When the user agrees to do so, PRP will perform an irreversible action to delete and regenerate Indicator Reports based on current state of Programme Document which may have up-to-date location information, pertinent to current reporting purposes. + +![Progress Report Refresh modal](../../.gitbook/assets/progress_report_refresh_modal.png) + ### **Acceptance of a report** The UNICEF PO is responsible for acceptance of a progress reports that are submitted \(There is no workflow following the submission by the IP to UNICEF and Cluster\). This happens in the PMP system. The PO can also **send the report back with a note**, in which case the partner should get an email informing them that should review the note and re-submit the report \(data in the report becomes editable once its been sent back\). In that case the partner can log back in, make any changes recommended \(edit data and upload attachment \#[947](https://github.com/unicef/etools-partner-reporting-portal/issues/947)\) and resubmit the report back to UNICEF. diff --git a/fabfile.py b/fabfile.py index dfc5b6995..fbacab3e1 100644 --- a/fabfile.py +++ b/fabfile.py @@ -5,9 +5,9 @@ def ssh(service): """ ssh into running service container - :param service: ['django_api', 'polymer', 'proxy', 'db'] + :param service: ['django_api', 'polymer', 'proxy', 'db', 'id-management-frontend'] """ - assert service in ['django_api', 'polymer', 'proxy', 'db'], "%s is unrecognized service" + assert service in ['django_api', 'polymer', 'proxy', 'db', 'id-management-frontend'], "%s is unrecognized service" if service == 'polymer': local('docker-compose exec polymer ash') else: @@ -43,9 +43,9 @@ def up_with_bundle(rebuild=True): def restart(service): """ restart a service container - :param service: ['django_api', 'polymer', 'proxy', 'db'] + :param service: ['django_api', 'polymer', 'proxy', 'db', 'id-management-frontend'] """ - assert service in ['django_api', 'polymer', 'proxy', 'db', 'beater-prp', 'worker-prp'], "%s is unrecognized service" + assert service in ['django_api', 'polymer', 'proxy', 'db', 'beater-prp', 'worker-prp', 'id-management-frontend'], "%s is unrecognized service" local('docker-compose restart %s' % service) @@ -61,7 +61,7 @@ def rebuild(service): Re-build docker images for containers. """ if service: - assert service in ['django_api', 'polymer', 'proxy', 'db'], "%s is unrecognized service" + assert service in ['django_api', 'polymer', 'proxy', 'db', 'id-management-frontend'], "%s is unrecognized service" local('docker-compose build %s' % service if service else '') @@ -88,7 +88,7 @@ def stop(service): local('docker-compose stop') elif service: - assert service in ['django_api', 'polymer', 'proxy', 'db'], "%s is unrecognized service" + assert service in ['django_api', 'polymer', 'proxy', 'db', 'id-management-frontend'], "%s is unrecognized service" local('docker-compose stop %s' % service) diff --git a/polymer/.gitignore b/polymer/.gitignore index 1da2b01f3..56c3a9295 100644 --- a/polymer/.gitignore +++ b/polymer/.gitignore @@ -7,3 +7,6 @@ yarn-error.log .idea *.sublime-project *.sublime-workspace +debug/* +.coverdata +.coverrun \ No newline at end of file diff --git a/polymer/.jshintrc b/polymer/.jshintrc index b9d746457..e321af0ea 100755 --- a/polymer/.jshintrc +++ b/polymer/.jshintrc @@ -1,5 +1,6 @@ { "node": true, + "esversion": 6, "browser": true, "bitwise": true, "camelcase": false, @@ -28,6 +29,26 @@ "fixture": true, "assert": true, "moment": true, - "numeral": true + "numeral": true, + "AuthorizedOfficerModalUtils": true, + "IndicatorDetailsUtils": true, + "IndicatorsToolbarUtils": true, + "PartnerDetailsUtils": true, + "PdDetailsOverviewUtils": true, + "PdDetailsCalculationMethodsUtils": true, + "PdDetailsDocDownloadUtils": true, + "PdDetailsReportingRequirementsUtils": true, + "PdDetailsReportsUtils": true, + "PdListToolbarUtils": true, + "PdOutputListToolbarUtils": true, + "PdOutputListUtils": true, + "PdOutputUtils": true, + "PdReportInfoUtils": true, + "PdReportsToolbarUtils": true, + "PdReportsListUtils": true, + "PdReportsReportTitleUtils": true, + "ProgressReportsToolbarUtils": true, + "ReportAttachmentsUtils": true, + "ProgressReportsListUtils": true } } diff --git a/polymer/Dockerfile b/polymer/Dockerfile index d3eae3326..735276de9 100644 --- a/polymer/Dockerfile +++ b/polymer/Dockerfile @@ -1,4 +1,4 @@ -FROM mhart/alpine-node:7.8.0 +FROM mhart/alpine-node:11.13.0 RUN apk update RUN apk --update --no-cache \ @@ -18,7 +18,7 @@ RUN apk --update --no-cache \ libjpeg-turbo \ libjpeg-turbo-dev -RUN npm install -g bower polymer-cli gulp-cli +RUN npm install -g bower polymer-cli gulp-cli --unsafe-perm ADD bower.json /tmp/ ADD package.json /tmp/ diff --git a/polymer/Dockerfile-bundle b/polymer/Dockerfile-bundle index 4e926108b..0b6db6f62 100644 --- a/polymer/Dockerfile-bundle +++ b/polymer/Dockerfile-bundle @@ -1,4 +1,4 @@ -FROM mhart/alpine-node:7.8.0 +FROM mhart/alpine-node:11.13.0 RUN apk update RUN apk --update --no-cache \ @@ -18,7 +18,7 @@ RUN apk --update --no-cache \ libjpeg-turbo \ libjpeg-turbo-dev -RUN npm install -g bower polymer-cli gulp-cli +RUN npm install -g bower@~1.7.0 polymer-cli gulp-cli --unsafe-perm ADD bower.json /tmp/ ADD package.json /tmp/ diff --git a/polymer/codefresh_polymer.yml b/polymer/codefresh_polymer.yml index 17c066e50..1f488fb0a 100644 --- a/polymer/codefresh_polymer.yml +++ b/polymer/codefresh_polymer.yml @@ -9,6 +9,14 @@ steps: working_directory: ${{main_clone}}/polymer tag: ${{CF_BRANCH}} + composition_step: + type: composition + composition: 'unicef-prp-unit-tests' + composition_candidates: + test: + image: ${{build_polymer}} + command: ash -c "npm run test" + push_to_hub: type: push title: Pushing polymer image to docker hub diff --git a/polymer/gulpfile.js b/polymer/gulpfile.js index d6f91e5ce..f72b70e00 100644 --- a/polymer/gulpfile.js +++ b/polymer/gulpfile.js @@ -16,14 +16,15 @@ const gulpif = require('gulp-if'); const gutil = require('gulp-util'); const fancylog = require('fancy-log'); const argv = require('yargs').argv; +const jasmine = require('gulp-jasmine'); +const cover = require('gulp-coverage'); // Got problems? Try logging 'em // use -l to activate plylogs if (argv.l) { const logging = require('plylog'); logging.setVerbose(); -} - +}; // !!! IMPORTANT !!! // // Keep the global.config above any of the gulp-tasks that depend on it @@ -51,7 +52,7 @@ global.config = { navigateFallback: '/index.html', navigateFallbackWhitelist: [ /^\/app\//, - /^\/login\//, + /^\/landing\//, /^\/unauthorized\//, /^\/not-found\//, ], @@ -75,7 +76,6 @@ const html = require('./gulp-tasks/html.js'); //Any processing on html const css = require('./gulp-tasks/css.js'); //Any processing on css const project = require('./gulp-tasks/project.js'); - // Log task end messages var log = function(message) { return function() { @@ -118,6 +118,23 @@ function dependencies() { .pipe(project.rejoin()); } +// Run tests! +gulp.task('specs', function() { + return gulp.src('test/unit/*.js') + .pipe(cover.instrument({ + pattern: ['src/*/*/js/*.js'] + })) + // gulp-jasmine works on filepaths so you can't have any plugins before it + .pipe(jasmine()) + .pipe(cover.gather()) + .pipe(cover.format()) + .pipe(gulp.dest('test/reports')); +}); + +gulp.task('watch', function() { + gulp.watch('test/unit/**.js', {ignoreInitial: false}, gulp.series('specs')); +}); + // Clean the build directory, split all source and dependency files into streams // and process them, and output bundled and unbundled versions of the project // with their own service workers @@ -131,7 +148,6 @@ gulp.task('default', gulp.series([ project.serviceWorker ])); - // DO NOT RUN // Fully builds project // Minifying, linting, and building into eTools diff --git a/polymer/index.html b/polymer/index.html index 0974df9b4..d4ec07010 100644 --- a/polymer/index.html +++ b/polymer/index.html @@ -20,7 +20,7 @@ - + @@ -46,8 +46,9 @@ - + + - + + responsePlanID: { + type: String, + statePath: 'responsePlans.currentID', + }, + + projects: { + type: Object, + value: {} + }, + }, + + _openModal: function () { + this.$$('#modal').open(); + }, + + listeners: { + 'page-number-changed': '_tableContentChanged', + 'details-opened-changed': '_detailsChange' + }, + + _detailUrl: function(activity, query) { + var path = '/response-parameters/partners/activity/' + activity.id; + if (this.page === 'planned-action') { + path = '/planned-action/activity/' + activity.id; + } + //Query string is passed to construct the back button. + return this.buildUrl(this._baseUrlCluster, path) + '?' + query; + }, + + _getProjects: function () { + if (Object.keys(this.projects).length !== 0) { + return; + } + + var self = this; + var projectsThunk = this.$.projects.thunk(); + + this.set('projectsUrl', App.Endpoints.plannedActions(this.responsePlanID)); + + projectsThunk() + .then(function (res) { + var allProjects = {}; + res.data.results.forEach(function (project) { + allProjects[project.id] = project; + }); + + self.set('projects', allProjects); + }); + }, + + _getTitle: function (projectId) { + if (this.projects[projectId] === undefined) { + return; + } + return this.projects[projectId].title; + }, + + attached: function () { + this._getProjects(); + }, + + detached: function () { + this.openedDetails.length = 0; + }, + }); + + diff --git a/polymer/src/elements/cluster-reporting/analysis/current-progress-by-project.html b/polymer/src/elements/cluster-reporting/analysis/current-progress-by-project.html new file mode 100644 index 000000000..e5bab2e9e --- /dev/null +++ b/polymer/src/elements/cluster-reporting/analysis/current-progress-by-project.html @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + diff --git a/polymer/src/elements/cluster-reporting/analysis/indicator-bucket.html b/polymer/src/elements/cluster-reporting/analysis/indicator-bucket.html index 95e4aa7be..2629ba635 100644 --- a/polymer/src/elements/cluster-reporting/analysis/indicator-bucket.html +++ b/polymer/src/elements/cluster-reporting/analysis/indicator-bucket.html @@ -97,7 +97,7 @@
Cluster Objective:
-
[[data.co_title]]
+
[[_computeTitle(data)]]
@@ -59,6 +74,10 @@ notify: true, }, }, + + _correctIndicatorType: function (indicatorType) { + return indicatorType === 'partner_activity' || indicatorType === 'partner_project'; + }, }); diff --git a/polymer/src/elements/cluster-reporting/analysis/operational-presence-map.html b/polymer/src/elements/cluster-reporting/analysis/operational-presence-map.html index aa0d92088..e6880bbc5 100644 --- a/polymer/src/elements/cluster-reporting/analysis/operational-presence-map.html +++ b/polymer/src/elements/cluster-reporting/analysis/operational-presence-map.html @@ -336,7 +336,7 @@

Number of partners:

style.innerHTML = this.mapStyles; - this.$$('leaflet-map').shadowRoot.appendChild(style); + this.$$('leaflet-map').appendChild(style); }); }); }, diff --git a/polymer/src/elements/cluster-reporting/app-header.html b/polymer/src/elements/cluster-reporting/app-header.html index f07fb37a9..a83750624 100644 --- a/polymer/src/elements/cluster-reporting/app-header.html +++ b/polymer/src/elements/cluster-reporting/app-header.html @@ -7,7 +7,9 @@ + + @@ -54,9 +56,13 @@ @apply(--layout-vertical); @apply(--layout-center-center); } - + + + @@ -74,6 +80,10 @@
+ + [[data.indicator_name]] + allow-no-status + is-cluster> +
  • + +
      + +
    +
    +
  • +
    diff --git a/polymer/src/elements/cluster-reporting/indicator-editing-modal.html b/polymer/src/elements/cluster-reporting/indicator-editing-modal.html index 1c7a04e11..9df302fb3 100644 --- a/polymer/src/elements/cluster-reporting/indicator-editing-modal.html +++ b/polymer/src/elements/cluster-reporting/indicator-editing-modal.html @@ -547,10 +547,33 @@

    Edit Indicator

    _save: function () { var self = this; + var noLocationSet = false; + var rawLocations = this.get('data.locations'); + + var changedLocations = rawLocations.map(function (location) { + if (location.location !== undefined && location.location.id !== undefined) { + var id = location.location.id; + location.location = id; + return location; + } else if (location.loc_type !== undefined && location.location === undefined) { + self.set('errors', 'No location set - please set a location.'); + noLocationSet = true; + return location; + } else { + return location; + } + }); + + if (noLocationSet === true) { + return; + } + if (!this._fieldsAreValid()) { return; } + this.set('data.locations', changedLocations); + this.set('updatePending', true); if (this.data.frequency !== 'Csd') { @@ -568,6 +591,7 @@

    Edit Indicator

    }) .catch(function (err) { self.set('errors', err.data); + self.set('data.locations', rawLocations); self.set('updatePending', false); }); }, diff --git a/polymer/src/elements/cluster-reporting/indicator-locations-modal.html b/polymer/src/elements/cluster-reporting/indicator-locations-modal.html index 1ce43ce9c..7f60fd949 100644 --- a/polymer/src/elements/cluster-reporting/indicator-locations-modal.html +++ b/polymer/src/elements/cluster-reporting/indicator-locations-modal.html @@ -142,16 +142,16 @@

    Location settings for indicator

    is="dom-if" if="[[_equals(data.blueprint.display_type, 'number')]]" restamp="true"> -
    [[[_withDefault(data.label)]]]
    +
    [[_withDefault(data.label)]]
    @@ -303,7 +303,7 @@

    Location settings for indicator

    }, _getLocationName: function (locationId, locations) { - var location = locations.find(function (loc) { + var location = locations.results.find(function (loc) { return String(loc.id) === String(locationId); }); diff --git a/polymer/src/elements/cluster-reporting/indicator-locations-widget.html b/polymer/src/elements/cluster-reporting/indicator-locations-widget.html index 5484a391b..07de0dc4e 100644 --- a/polymer/src/elements/cluster-reporting/indicator-locations-widget.html +++ b/polymer/src/elements/cluster-reporting/indicator-locations-widget.html @@ -4,8 +4,8 @@ - + @@ -32,6 +32,9 @@ --app-grid-gutter: 24px; --app-grid-item-height: auto; --app-grid-expandible-item-columns: 2; + --esmm-list-wrapper: { + height: 350px; + }; } .app-grid { @@ -108,6 +111,10 @@ + + + @@ -191,6 +198,7 @@

    Locations ([[value.length]])

    option-value="id" option-label="title" selected="{{item.loc_type}}" + data-index$="[[index]]" on-selected-changed="_onLocTypeChanged" required> @@ -203,7 +211,7 @@

    Locations ([[value.length]])

    - [[_getLocationTitle(locations, item.loc_type, item.location)]] + [[_getLocationTitle(locations, item, item.id, index)]] @@ -214,50 +222,56 @@

    Locations ([[value.length]])

    - - - - - + + + + + @@ -286,8 +300,10 @@

    Locations ([[value.length]])

    parentIndicatorId: Number, clusterId: Number, locations: Object, + savedLocations: Object, pending: Object, isPai: Boolean, + searchLocationType: String, editing: { type: Boolean, @@ -304,6 +320,10 @@

    Locations ([[value.length]])

    computed: '_computeIsNumber(indicatorType)', }, + url: { + type: String, + }, + value: { type: Array, notify: true, @@ -321,6 +341,11 @@

    Locations ([[value.length]])

    value: false, }, + locationsInitialized: { + type: Boolean, + value: false + }, + maxAdminLevel: { type: Number, value: App.Settings.cluster.maxLocType, @@ -341,6 +366,11 @@

    Locations ([[value.length]])

    computed: '_computeLocationsUrl(responsePlanId)', }, + locationTitle: { + type: String, + value: '', + }, + ajaxData: { type: Array, computed: '_computeAjaxData(maxAdminLevel)', @@ -357,6 +387,49 @@

    Locations ([[value.length]])

    }, }, + _onValueChanged: function (event) { // This method runs whenever user begins searching in locations dropdown + var loc_type = this.get('searchLocationType') || 0; + var index = -1; + + if (event.detail.value === '') { + return; + } + + event.path.forEach(function (node) { + if (node.nodeName === 'ETOOLS-SINGLE-SELECTION-MENU') { + index = node.dataset.index; // Grab index of current location widget component + return; + } + }); + + if (loc_type === 0 && index === undefined) { + index = 0; + } + + this.debounce('fetch-locations-' + loc_type, function() { + var self = this; + + var thunk = self.$.search; + thunk.url = self.get('url'); + + thunk.params = { + loc_type: loc_type, + title: event.detail.value + }; + + thunk.thunk()() + .then(function(res) { + self._setPending(loc_type, false, index); + self._setLocations(loc_type, res.data.results, index); + }) + .catch(function (err) { + console.log(err); + self._setPending(loc_type, false, index); + }); + return; + }, 1000); + }, + _computeIsNumber: function (type) { return type === 'number'; }, @@ -420,14 +493,44 @@

    Locations ([[value.length]])

    loc_type: initial, }); - this._fetchLocations(initial); + this.set('searchLocationType', 0); + this.set('locationsInitialized', true); + + var newLocations = this.get('locations'); + var value = this.get('value'); + + value.forEach(function (location, index) { + if (location.location === undefined && newLocations[index] === undefined) { + newLocations[index] = {0: []}; + } + }); + + this.set('locations', newLocations); + + var newPendingIndex = Object.keys(this.get('pending')).length; + var pending = this.get('pending'); + + pending[newPendingIndex] = { + initial: false + }; + + this.set('pending', pending); + + this._fetchLocations(initial, undefined, this.get('value').length - 1); }, _remove: function (e) { var value = this.get('value'); var toRemove = +e.target.dataset.index; + var pending = this.get('pending'); + var locations = this.get('locations'); + + delete locations[toRemove]; + delete pending[toRemove]; + var newValue = value.slice(0, toRemove).concat(value.slice(toRemove + 1)); + this.set('pending', pending); this.set('value', newValue); }, @@ -435,67 +538,118 @@

    Locations ([[value.length]])

    e.target.validate(); }, - _onLocTypeChanged: function (_, data) { - this._fetchLocations(data.value); + _onLocTypeChanged: function (event, data) { + var index = -1; + + event.path.forEach(function (node) { + if (node.nodeName === 'ETOOLS-SINGLE-SELECTION-MENU') { + index = node.dataset.index; + return; + } + }); + + if (index === -1) { + return; + } + + this._fetchLocations(data.value, undefined, index); }, - _fetchLocations: function (loc_type) { - if (this.get('locations')[loc_type]) { + _fetchLocations: function (loc_type, title, index) { + if (loc_type === undefined) { return; } + this.set('searchLocationType', loc_type); + this.debounce('fetch-locations-' + loc_type, function () { var self = this; - this._setPending(loc_type, true); + this._setPending(loc_type, true, index); + + if (title !== undefined) { + this.$$('#locations' + loc_type).params.title = title; + } this.$$('#locations' + loc_type).thunk()() - .then(function (res) { - self._setPending(loc_type, false); - self._setLocations(loc_type, res.data); - }) - .catch(function () { - self._setPending(loc_type, false); - }); - }, 100); + .then(function (res) { + self.set('url', res.xhr.responseURL); + self._setPending(loc_type, false, index); + self._setLocations(loc_type, res.data.results, index); + }) + .catch(function () { + self._setPending(loc_type, false, index); + }); + }); }, _fetchInitialLocations: function (lockedItems) { - lockedItems.forEach(function (item) { - this._fetchLocations(item.loc_type); - }, this); + this.set('savedLocations', lockedItems); + + var newLocations = Object.assign({}, this.get('locations')); + + if (lockedItems.length > 0) { + lockedItems.forEach(function (location, index) { + if (location.admin_level === undefined) { + newLocations[index] = {}; + newLocations[index][location.loc_type] = [location]; + } else { + newLocations[index] = {}; + newLocations[index][location.admin_level] = [location]; + } + }); + } else { + lockedItems.forEach(function (location, index) { + newLocations[index] = {0: []}; + }); + } + + this.set('locations', newLocations); + }, + + _getPending: function (pending, loc_type, index) { + return !!pending[index][loc_type]; }, - _getPending: function (pending, loc_type) { - return !!pending[loc_type]; + _getLocations: function (locations, loc_type, index) { + return locations[index][loc_type] || []; }, - _getLocations: function (locations, loc_type) { - return locations[loc_type] || []; + _getLocationAdminLevel: function (location) { + return location.loc_type ? location.loc_type : location.admin_level; }, - _getLocationTitle: function (locations, loc_type, locationId) { - var allLocations = this._getLocations(locations, loc_type); + _getLocationTitle: function (locations, location, locationId, index) { + var loc_type = location.loc_type ? location.loc_type : location.admin_level; + var allLocations = this._getLocations(locations, loc_type, index); - var location = allLocations.find(function (loc) { + var targetLocation = allLocations.find(function (loc) { return String(loc.id) === String(locationId); }); - return location ? location.title : ''; + return targetLocation ? targetLocation.title : ''; }, - _setPending: function (loc_type, value) { + _setPending: function (loc_type, value, index) { var newPending = Object.assign({}, this.get('pending')); - newPending[loc_type] = value; + if (newPending[index] === undefined) { + newPending[index] = {}; + } + + newPending[index][loc_type] = value; this.set('pending', newPending); }, - _setLocations: function (loc_type, value) { + _setLocations: function (loc_type, value, index) { var newLocations = Object.assign({}, this.get('locations')); - newLocations[loc_type] = value; + if (newLocations[index] === undefined) { + newLocations[index] = {}; + } + + newLocations[index][loc_type] = value; this.set('locations', newLocations); }, diff --git a/polymer/src/elements/cluster-reporting/indicator-modal.html b/polymer/src/elements/cluster-reporting/indicator-modal.html index 645336677..cf2055e3f 100644 --- a/polymer/src/elements/cluster-reporting/indicator-modal.html +++ b/polymer/src/elements/cluster-reporting/indicator-modal.html @@ -29,6 +29,7 @@ + + @@ -322,7 +765,7 @@

    [[modalTitle]]

    + on-tap="_close"> Cancel @@ -344,6 +787,8 @@

    [[modalTitle]]

    properties: { data: Object, objectId: Number, + activityData: Object, + projectData: Object, objectType: String, modalTitle: String, @@ -352,6 +797,11 @@

    [[modalTitle]]

    computed: '_computeIsNumber(data.blueprint.display_type)', }, + mode: { + type: String, + observer: '_setDefaults', + }, + responsePlanId: { type: String, statePath: 'responsePlans.currentID', @@ -364,7 +814,88 @@

    [[modalTitle]]

    indicatorsUrl: { type: String, - value: App.Endpoints.clusterIndicators(), + value: '', + }, + + indicatorsListUrl: { + type: String, + value: App.Endpoints.indicators('co') + '/', + }, + + indicatorsListParams: { + type: Object, + value: {}, + }, + + activitiesUrl: String, + + activitiesParams: { + type: Object, + value: { + page_size: 99999, + }, + }, + + activities: { + type: Array, + value: [], + }, + + selectedActivity: { + type: String, + value: '', + }, + + clusters: { + format: Array, + value: [], + }, + + selectedCluster: { + type: String, + value: '', + }, + + objectives: { + type: Array, + value: [], + }, + + selectedObjective: { + type: String, + value: '', + }, + + objectivesParams: { + type: Object, + value: {} + }, + + indicators: { + type: Array, + value: [], + }, + + selectedIndicator: { + type: String, + value: '', + }, + + selectedIndicatorDetailType: String, + + objectivesUrl: { + type: String, + computed: '_computeObjectivesUrl(responsePlanId)', + }, + + partnerID: { + type: String, + statePath: 'partner.current.id', + }, + + prpRoles: { + type: Array, + statePath: 'userProfile.profile.prp_roles', }, updatePending: { @@ -430,11 +961,36 @@

    [[modalTitle]]

    observers: [ '_setDefaults(opened)', + '_isClusterImo(prpRoles)', '_resetCalculationFormulas(isNumber)', '_resetFields(isNumber)', '_updateCSDates(data.start_date_of_reporting_period)', + '_saveCluster(selectedCluster)', + '_fetchActivities(selectedCluster)', + '_fetchObjectivesList(selectedCluster)', + '_fetchIndicatorsList(selectedObjective)', + '_fetchActivityIndicatorsList(selectedActivity)', + '_fetchSelectedIndicatorDetailType(responsePlanId, selectedIndicator)', ], + _isClusterImo: function (prpRoles) { + var isImo = prpRoles.find(function (role) { + return role.role === 'CLUSTER_IMO'; + }); + + if (isImo !== undefined && this.modalTitle === 'Add Cluster Objective Indicator' + || isImo !== undefined && this.modalTitle === 'Add Activity Indicator' + ) { + this.set('mode', 'custom'); + return true; + } else if (isImo !== undefined && this.modalTitle === 'Add Project Indicator') { + this.set('imoInPartner', true); + return false; + } else { + return false; + } + }, + _computeIsNumber: function (type) { return type === 'number'; }, @@ -486,20 +1042,45 @@

    [[modalTitle]]

    return; } - this.set('selectedDisaggregations', []); - this.set('errors', {}); - this.set('data', { - blueprint: { - display_type: 'number', - calculation_formula_across_locations: 'sum', - calculation_formula_across_periods: 'sum', - }, - cs_dates: [], - locations: [], - disaggregations: [], - }); + if (this.mode === undefined) { + return; + } - this._fetchDisaggregations(); + if (this.mode === 'objectives') { + this.set('data', { + partner_id: this.projectData.partner_id || this.partnerID, + partner_project_id: '', + cluster_id: '', + cluster_objective_id: '', + reportable_id: '', + locations: [], + target: {d: 1}, + baseline: {d: 1} + }); + + this.set('indicatorsUrl', App.Endpoints.adoptedClusterIndicators()); + } else { + this.set('selectedDisaggregations', []); + this.set('errors', {}); + this.set('data', { + blueprint: { + display_type: 'number', + calculation_formula_across_locations: 'sum', + calculation_formula_across_periods: 'sum', + }, + cs_dates: [], + locations: [], + disaggregations: [], + }); + + if (this.mode === 'activity') { + this.set('indicatorsListUrl', App.Endpoints.indicators('ca') + '/'); + } + + this.set('indicatorsUrl', App.Endpoints.clusterIndicators()); + + this._fetchDisaggregations(); + } }, _validate: function (e) { @@ -518,6 +1099,10 @@

    [[modalTitle]]

    return date ? this._normalizeDate(date) : null; }, + _computeObjectivesUrl: function (responsePlanId) { + return App.Endpoints.responseParametersClusterObjectives(responsePlanId); + }, + _fetchDisaggregations: function() { var self = this; @@ -527,6 +1112,165 @@

    [[modalTitle]]

    }); }, + _savePartner: function (selectedPartnerId) { + this.set('data.partner_id', selectedPartnerId); + }, + + _saveCluster: function () { + if (this.mode === 'objectives') { + this.set('data.cluster_id', this.selectedCluster); + } + }, + + _fetchActivities: function (clusterId) { + var self = this; + if (typeof clusterId === 'undefined' || typeof this.responsePlanId === 'undefined') { + return; + } + this.set('activities', []); + this.set('activitiesParams.cluster_id', clusterId); + this.set('activitiesUrl', + App.Endpoints.responseParametersClusterActivities(this.responsePlanId) + + '?cluster_id=' + clusterId); + this.$.activities.abort(); + + this.$.activities.thunk()() + .then(function (res) { + self.set('activities', res.data.results); + }) + .catch(function (err) { // jshint ignore:line + // TODO: error handling + }); + }, + + _fetchActivityIndicatorsList: function (selectedId) { + if (selectedId === '') { + return; + } + + this.set('indicatorsListParams', {object_id: selectedId, page_size: 9999, page: 1}); + + this.debounce('fetch-indicators', function () { + var self = this; + + this.set('indicators', []); + + this.$.indicatorsList.abort(); + this.$.indicatorsList.thunk()() + .then(function (res) { + var simpleIndicatorsList = []; + + res.data.results.forEach(function (indicator) { + var simpleIndicator = indicator; + simpleIndicator.title = indicator.blueprint.title; + + simpleIndicatorsList.push(simpleIndicator); + }); + + self.set('indicators', simpleIndicatorsList); + self.fire('details-loaded'); + }); + }); + }, + + _fetchObjectivesList: function (selectedClusterId) { + if (selectedClusterId === '') { + return; + } + + if (this.mode === 'objectives') { + this.set('data.cluster_id', selectedClusterId); + this.set('data.partner_project_id', parseInt(this.objectId)); + } + + this.debounce('fetch-objectives', function () { + var self = this; + + this.set('objectives', []); + this.set('objectivesParams.cluster_id', selectedClusterId); + + this.$.objectives.abort(); + this.$.objectives.thunk()() + .then(function (res) { + self.set('objectives', res.data.results); + self.fire('details-loaded'); + }) + .catch(function (err) { // jshint ignore:line + // TODO: error handling + }); + }, 100); + }, + + _fetchIndicatorsList: function (selectedObjectiveId) { + if (selectedObjectiveId === '') { + return; + } + this.set('data.cluster_objective_id', selectedObjectiveId); + this.set('indicatorsListParams', {object_id: selectedObjectiveId}); + + this.debounce('fetch-indicators', function () { + var self = this; + + this.set('indicators', []); + + this.$.indicatorsList.abort(); + this.$.indicatorsList.thunk()() + .then(function (res) { + var simpleIndicatorsList = []; + + res.data.results.forEach(function (indicator) { + var simpleIndicator = {}; + simpleIndicator.id = indicator.id; + simpleIndicator.title = indicator.blueprint.title; + + simpleIndicatorsList.push(simpleIndicator); + }); + + self.set('indicators', simpleIndicatorsList); + self.fire('details-loaded'); + }) + .catch(function (err) { // jshint ignore:line + // TODO: error handling + }); + }, 100); + }, + + _fetchSelectedIndicatorDetailType: function (responsePlanId, selectedIndicator) { + if (selectedIndicator === undefined || selectedIndicator === '') { + return; + } + + this.debounce('fetch-selected-indicator', function () { + var self = this; + + if (this.mode === 'objectives') { + this.set('data.reportable_id', selectedIndicator); + } + + if (this.mode === 'activity') { + var chosenActivityIndicator = this.indicators.find(function (indicator) { + return indicator.id === selectedIndicator; + }); + + this.set('data.blueprint.title', chosenActivityIndicator.title); + this.set('data.frequency', chosenActivityIndicator.frequency); + this.set('data.label', chosenActivityIndicator.label); + this.set('data.start_date_of_reporting_period', chosenActivityIndicator.start_date_of_reporting_period); + } + + this.$.indicatorDetail.url = App.Endpoints.analysisIndicator(responsePlanId, selectedIndicator); + + this.$.indicatorDetail.abort(); + this.$.indicatorDetail.thunk()() + .then(function (res) { + self.set('selectedIndicatorDetailType', res.data.display_type); + }) + .catch(function (err) { // jshint ignore:line + // TODO: error handling + }); + }, 100); + }, + _processData: function (rawData) { var data = this._clone(rawData); @@ -559,25 +1303,138 @@

    [[modalTitle]]

    _save: function () { var self = this; + var noLocationSet = false; + var rawLocations = this.get('data.locations'); + + var changedLocations = rawLocations.map(function (location) { + if (location.location !== undefined && location.location.id !== undefined) { + var id = location.location.id; + var title = location.location.title; + location.location = id; + location.title = title; + return location; + } else if (location.loc_type !== undefined && location.location === undefined) { + self.set('errors', 'No location set - please set a location.'); + noLocationSet = true; + return location; + } else { + return location; + } + }); + + if (noLocationSet === true) { + return; + } + if (!this._fieldsAreValid()) { return; } - this.set('updatePending', true); - this._setDisaggregations(); - this.$.indicators.body = this._processData(this.data); - - this.$.indicators.thunk()() - .then(function (res) { - self.fire('indicator-added', res.data); - self.set('updatePending', false); - self.set('errors', {}); - self.close(); - }) - .catch(function (err) { - self.set('errors', err.data); - self.set('updatePending', false); + this.set('data.locations', changedLocations); + + if (this.mode === 'objectives') { + this._setDisaggregations(); + + var data = this.get('data'); + + if (this.selectedIndicatorDetailType === 'percentage') { + data.baseline.d = 100; + data.target.d = 100; + + data.locations.forEach(function (location) { + location.baseline.d = 100; + location.target.d = 100; + }); + } else if (this.selectedIndicatorDetailType === 'number') { + data.baseline.d = 1; + data.target.d = 1; + + data.locations.forEach(function (location) { + location.baseline.d = 1; + location.target.d = 1; + }); + } + + data.baseline.v = parseInt(data.baseline.v); + data.target.v = parseInt(data.target.v); + + data.baseline.d = parseInt(data.baseline.d); + data.target.d = parseInt(data.target.d); + + data.baseline.c = data.baseline.v / data.baseline.d; + data.target.c = data.target.v / data.target.d; + + data.locations.forEach(function (location) { + location.baseline.v = parseInt(location.baseline.v); + location.target.v = parseInt(location.target.v); + + location.baseline.d = parseInt(location.baseline.d); + location.target.d = parseInt(location.target.d); + + location.baseline.c = location.baseline.v / location.baseline.d; + location.target.c = location.target.v / location.target.d; }); + + this.set('data', data); + + this.$.indicators.body = this.data; + + this.$.indicators.thunk()() + .then(function (res) { + self.fire('indicator-added', res.data); + self.set('updatePending', false); + self.set('errors', {}); + self.close(); + }) + .catch(function (err) { + self.set('errors', err.data); + self.set('data.locations', rawLocations); + self.set('updatePending', false); + }); + } else { + this.set('updatePending', true); + this._setDisaggregations(); + this.$.indicators.body = this._processData(this.data); + + this.$.indicators.thunk()() + .then(function (res) { + self.fire('indicator-added', res.data); + self.set('updatePending', false); + self.set('errors', {}); + self.close(); + }) + .catch(function (err) { + self.set('errors', err.data); + self.set('data.locations', rawLocations); + self.set('updatePending', false); + }); + } + }, + + _close: function (e) { + if (e.target.nodeName === 'PAPER-DIALOG' || + e.target.nodeName === 'PAPER-BUTTON' || + e.target.nodeName === 'PAPER-ICON-BUTTON') { + this.set('mode', ''); + this.set('data', {}); + + this.set('clusters', []); + this.set('selectedCluster', ''); + + this.set('objectives', []); + this.set('selectedObjective', ''); + + this.set('activities', []); + this.set('selectedActivity', ''); + + this.set('indicators', []); + this.set('selectedIndicator', ''); + this.set('selectedIndicatorDetailType', undefined); + + this.close(); + } else { + return; + } }, }); diff --git a/polymer/src/elements/cluster-reporting/nav.html b/polymer/src/elements/cluster-reporting/nav.html index 0b655cd54..e1616be42 100644 --- a/polymer/src/elements/cluster-reporting/nav.html +++ b/polymer/src/elements/cluster-reporting/nav.html @@ -16,6 +16,8 @@ + + diff --git a/polymer/src/elements/cluster-reporting/planned-action/activities/creation-modal.html b/polymer/src/elements/cluster-reporting/planned-action/activities/creation-modal.html index 37fe9d17e..b169ef807 100644 --- a/polymer/src/elements/cluster-reporting/planned-action/activities/creation-modal.html +++ b/polymer/src/elements/cluster-reporting/planned-action/activities/creation-modal.html @@ -51,10 +51,58 @@ }; } + .app-grid { + margin: 0 -var(--app-grid-gutter); + padding-bottom: 24px; + } + + .row { + margin-bottom: 1em; + } + + .remove-btn { + width: 34px; + height: 34px; + color: var(--paper-deep-orange-a700); + } + + .fields { + margin-left: 24px; + } + + .add-project-btn { + width: 100px; + margin: 0; + text-align: start; + + justify-content: flex-start; + } + + h3 { + font-size: 14px; + } + + header.item-wide { + background-color: var(--paper-grey-200); + padding: 2px 10px; + margin: 0 0 1em; + height: 24px; + + display: flex; + justify-content: flex-start; + align-items: center; + } + .item-wide { @apply --app-grid-expandible-item; } + .col-actions { + width: 40px; + margin-right: 24px; + border-right: 1px solid var(--paper-grey-400); + } + paper-radio-group { display: block; padding-top: 16px; @@ -125,13 +173,14 @@

    Add activity

    @@ -204,62 +253,110 @@

    Add activity

    required> -
    - - -
    -
    - - - -
    -
    - - -
    -
    - - - - - -
    + + + + + + + @@ -319,61 +416,99 @@

    Add activity

    required> -
    - - -
    -
    - - - -
    -
    - - -
    -
    - - - - - -
    + +
    +

    Projects ([[data.custom.projects.length]])

    +
    + + + + + Add Project + + @@ -389,7 +524,7 @@

    Add activity

    + on-tap="_close"> Cancel @@ -527,6 +662,7 @@

    Add activity

    listeners: { 'mode.selected-changed': 'adjustPosition', + 'project-details-selection-refit': 'adjustPosition', }, observers: [ @@ -535,10 +671,35 @@

    Add activity

    '_fetchObjectives(data.custom.cluster)', ], + _add: function () { + if (this.mode === 'cluster') { + this.push('data.cluster.projects', {}); + } else { + this.push('data.custom.projects', {}); + } + this.fire('project-details-selection-refit'); + }, + + _remove: function (e) { + var currentIndex = +e.target.dataset.index; + + if (this.mode === 'cluster') { + this.splice('data.cluster.projects', currentIndex, 1); + } else { + this.splice('data.custom.projects', currentIndex, 1); + } + + this.fire('project-details-selection-refit'); + }, + _setDefaults: function () { this.set('data', { - cluster: {}, - custom: {}, + cluster: { + projects: [] + }, + custom: { + projects: [] + }, }); this.set('activities', []); this.set('objectives', []); @@ -547,7 +708,7 @@

    Add activity

    _onOpenedChanged: function (opened) { if (opened) { - this.set('mode', 'cluster'); + // this.set('mode', 'cluster'); // this.async(function () { // this.set('mode', 'cluster'); @@ -659,16 +820,35 @@

    Add activity

    partner: this.partner, }, this.data[this.mode]); this.$.activity.thunk()() - .then(function (res) { - self.fire('activity-added', res.data); - self.set('updatePending', false); - self.set('errors', {}); - self.close(); - }) - .catch(function (err) { - self.set('errors', err.data); - self.set('updatePending', false); - }); + .then(function (res) { + self.fire('activity-added', res.data); + self.set('updatePending', false); + self.set('errors', {}); + self._close(); + }) + .catch(function (err) { + self.set('errors', err.data); + self.set('updatePending', false); + self.fire('project-details-selection-refit'); + }); + }, + + _close: function (e) { + if (e.target.nodeName === 'PAPER-DIALOG' || + e.target.nodeName === 'PAPER-BUTTON' || + e.target.nodeName === 'PAPER-ICON-BUTTON') { + this.set('mode', ''); + this.set('data', {}); + + this.set('objectives', []); + this.set('activities', []); + + this.set('errors', {}); + + this.close(); + } else { + return; + } }, }); diff --git a/polymer/src/elements/cluster-reporting/planned-action/activities/editing-modal.html b/polymer/src/elements/cluster-reporting/planned-action/activities/editing-modal.html index 9d92f824a..e7976c74f 100644 --- a/polymer/src/elements/cluster-reporting/planned-action/activities/editing-modal.html +++ b/polymer/src/elements/cluster-reporting/planned-action/activities/editing-modal.html @@ -26,6 +26,7 @@ + + +
    @@ -253,6 +483,7 @@

    Edit activity

    data: Object, activitiesUrl: String, + editData: { type: Object, value: {}, @@ -304,6 +535,28 @@

    Edit activity

    statePath: 'location.id', }, + clusters: { + type: Array, + statePath: 'responsePlans.current.clusters', + }, + + objectives: { + type: Array, + value: [], + }, + + objectivesParams: { + type: Object, + value: { + page_size: 99999, + }, + }, + + objectivesUrl: { + type: String, + computed: '_computeObjectivesUrl(responsePlanId)', + }, + projects: { type: Array, value: [], @@ -332,22 +585,44 @@

    Edit activity

    }, }, + listeners: { + 'project-details-selection-refit': 'adjustPosition', + }, + observers: [ '_fetchProjects(partnerId)', + '_fetchActivities(data.cluster)', + '_fetchObjectives(data.cluster)', ], + _add: function () { + this.push('data.projects', {}); + this.fire('project-details-selection-refit'); + }, + + _remove: function (e) { + var currentIndex = +e.target.dataset.index; + this.splice('data.projects', currentIndex, 1); + this.fire('project-details-selection-refit'); + }, + _setDefaults: function () { this.set('data', Object.assign({}, {id: this.editData.id, - status: this.editData.status, - start_date: this.editData.start_date, - end_date: this.editData.end_date, - project: this.editData.project.id})); + cluster: this.editData.cluster.id, + cluster_activity: null, + cluster_objective: this.editData.cluster_objective.id, + title: this.editData.title, + is_custom: this.editData.is_custom, + partner: this.editData.partner, + reportables: this.editData.reportables, + projects: this.editData.projects})); if (this.editData.is_custom) { this.set('data.title', this.editData.title); + } else { + this.set('data.cluster_activity', this.editData.cluster_activity.id); } - }, open: function () { @@ -375,6 +650,10 @@

    Edit activity

    return App.Endpoints.partnerActivityUpdate(responsePlanId, activityId); }, + _computeObjectivesUrl: function (responsePlanId) { + return App.Endpoints.responseParametersClusterObjectives(responsePlanId); + }, + _computeProjectsUrl: function (responsePlanId) { return App.Endpoints.plannedActions(responsePlanId); }, @@ -387,6 +666,48 @@

    Edit activity

    } }, + _fetchActivities: function (clusterId) { + var self = this; + if (typeof clusterId === 'undefined') { + return; + } + this.set('activities', []); + this.set('activitiesParams.cluster_id', clusterId); + this.set('activitiesUrl', + App.Endpoints.responseParametersClusterActivities(this.responsePlanId) + + '?cluster_id=' + clusterId); + this.$.activities.abort(); + + this.$.activities.thunk()() + .then(function (res) { + self.set('activities', res.data.results); + }) + .catch(function (err) { // jshint ignore:line + // TODO: error handling + }); + }, + + _fetchObjectives: function (clusterId) { + var self = this; + + if (typeof clusterId === 'undefined') { + return; + } + + this.set('objectivesParams.cluster_id', clusterId); + this.set('objectives', []); + + this.$.objectives.abort(); + + this.$.objectives.thunk()() + .then(function (res) { + self.set('objectives', res.data.results); + }) + .catch(function (err) { // jshint ignore:line + // TODO: error handling + }); + }, + _fetchProjects: function (partnerId) { var self = this; diff --git a/polymer/src/elements/cluster-reporting/planned-action/projects/creation-modal.html b/polymer/src/elements/cluster-reporting/planned-action/projects/creation-modal.html index 7759d1584..d937e1124 100644 --- a/polymer/src/elements/cluster-reporting/planned-action/projects/creation-modal.html +++ b/polymer/src/elements/cluster-reporting/planned-action/projects/creation-modal.html @@ -41,6 +41,7 @@ + @@ -230,12 +231,13 @@

    [[_computeTitle(edit)]]

    @@ -425,6 +427,23 @@

    Fields required

    +
    + + +
    + + + + Fields required on-input="_validate"> - - - Fields required Save - + Cancel @@ -928,11 +938,20 @@

    Fields required

    return App.Endpoints.ochaProjectDetails(selectedProject); }, - close: function () { - this.set('data', {}); - this.set('opened', false); - this.set('refresh', false); - this.set('detailsOpened', false); + _close: function (e) { + if (e.target.nodeName === 'PAPER-DIALOG' || + e.target.nodeName === 'PAPER-BUTTON' || + e.target.nodeName === 'PAPER-ICON-BUTTON') { + this.set('data', {}); + this.set('opened', false); + this.set('refresh', false); + this.set('detailsOpened', false); + this.set('errors', {}); + + this.close(); + } else { + return; + } }, open: function () { @@ -946,7 +965,12 @@

    Fields required

    if (!this.canAddOchaProjects) { this.set('mode', 'custom'); } - this.data = {'custom_fields': [], 'funding': {}}; + this.data = { + 'custom_fields': [], + 'funding': {}, + 'locations': [], + 'description': '', + }; this.selectedClusters = []; } this.set('opened', true); @@ -1096,7 +1120,9 @@

    Fields required

    this.set('selectedPartner', {}); this.set('data', { 'custom_fields': [], - 'funding': {} + 'funding': {}, + 'locations': [], + 'description': '', }); this.set('projectDetails', {}); this.set('errors', {}); @@ -1104,6 +1130,34 @@

    Fields required

    _save: function () { var self = this; + + var locationError = false; + var rawLocations = this.get('data.locations'); + + var changedLocations = rawLocations.map(function (location) { + if (location.location !== undefined) { + return location.location; + } else { + return location; + } + }); + + changedLocations.forEach(function (location) { + if (location.title === undefined) { + self.set('errors', 'No location set - please set a location.'); + locationError = true; + } else if (changedLocations[0].admin_level !== location.admin_level) { + self.set('errors', 'All locations need to have the same admin level.'); + locationError = true; + } + }); + + if (locationError === true) { + return; + } + + this.set('data.locations', changedLocations); + if (!this.data.partner_id) { this.data.partner_id = this.partnerID; } @@ -1128,7 +1182,8 @@

    Fields required

    .catch(function (err) { // jshint ignore:line self.updatePending = false; self.set('errors', err.data); - }); + self.set('data.locations', rawLocations); // If there are backend validation errors, reset locations + }); // to what they were before request was sent! }, detached: function () { @@ -1139,4 +1194,4 @@

    Fields required

    }, }); -
    +
    \ No newline at end of file diff --git a/polymer/src/elements/cluster-reporting/project-details.html b/polymer/src/elements/cluster-reporting/project-details.html index 5666c2b48..1ac824fc2 100644 --- a/polymer/src/elements/cluster-reporting/project-details.html +++ b/polymer/src/elements/cluster-reporting/project-details.html @@ -16,7 +16,7 @@ --app-grid-columns:4; --app-grid-gutter: 25px; --app-grid-item-height: auto; - --app-grid-expandible-item-columns: 4; + --app-grid-expandible-item-columns: 3; } .app-grid { @@ -25,10 +25,26 @@ list-style: none; } - .full-width { + .extended { @apply(--app-grid-expandible-item); } + .location { + margin: 2px 0px; + } + + .top-row { + display: flex; + justify-content: flex-start; + align-items: flex-start; + flex-direction: row; + } + + .top-element { + margin-right: 50px; + min-width: 200px; + } + ul { padding-left: 0; } @@ -60,12 +76,22 @@
      -
    • +
    • [[projectData.title]]
    • +
    • + + + +
    • +
    • [[_commaSeparatedDictValues(projectData.clusters, 'title')]] diff --git a/polymer/src/elements/cluster-reporting/response-parameters/partners/activities/indicators.html b/polymer/src/elements/cluster-reporting/response-parameters/partners/activities/indicators.html index 936129b48..97016867c 100644 --- a/polymer/src/elements/cluster-reporting/response-parameters/partners/activities/indicators.html +++ b/polymer/src/elements/cluster-reporting/response-parameters/partners/activities/indicators.html @@ -59,6 +59,7 @@ diff --git a/polymer/src/elements/cluster-reporting/response-parameters/partners/projects/indicators.html b/polymer/src/elements/cluster-reporting/response-parameters/partners/projects/indicators.html index 840496fc0..94169b403 100644 --- a/polymer/src/elements/cluster-reporting/response-parameters/partners/projects/indicators.html +++ b/polymer/src/elements/cluster-reporting/response-parameters/partners/projects/indicators.html @@ -59,6 +59,7 @@ diff --git a/polymer/src/elements/disaggregations/disaggregation-field.html b/polymer/src/elements/disaggregations/disaggregation-field.html index 4b91e29ec..4dcafb13a 100644 --- a/polymer/src/elements/disaggregations/disaggregation-field.html +++ b/polymer/src/elements/disaggregations/disaggregation-field.html @@ -73,6 +73,7 @@ }, attached: function () { + this.$.field.validate(); this.fire('register-field', this); }, diff --git a/polymer/src/elements/disaggregations/disaggregation-modal.html b/polymer/src/elements/disaggregations/disaggregation-modal.html index 018ee116d..18d6c7b81 100644 --- a/polymer/src/elements/disaggregations/disaggregation-modal.html +++ b/polymer/src/elements/disaggregations/disaggregation-modal.html @@ -8,6 +8,8 @@ + + @@ -37,10 +39,10 @@ with-backdrop opened="{{opened}}">
      -

      Enter data

      +

      [[localize('enter_data')]]

      -

      Reporting period: [[reportingPeriod]]

      +

      [[localize('reporting_period')]]: [[reportingPeriod]]

      Enter data class="btn-primary" on-tap="_save" raised> - Save + [[localize('save')]] - Cancel + [[localize('cancel')]]
      @@ -83,7 +85,10 @@

      Enter data

      is: 'disaggregation-modal', behaviors: [ + App.Behaviors.ReduxBehavior, App.Behaviors.ModalBehavior, + App.Behaviors.LocalizeBehavior, + Polymer.AppLocalizeBehavior, ], properties: { diff --git a/polymer/src/elements/disaggregations/disaggregation-switches.html b/polymer/src/elements/disaggregations/disaggregation-switches.html index 259076311..9265c006d 100644 --- a/polymer/src/elements/disaggregations/disaggregation-switches.html +++ b/polymer/src/elements/disaggregations/disaggregation-switches.html @@ -4,6 +4,8 @@ + + @@ -40,7 +42,7 @@ if="[[editableBool]]" restamp>
      -

      Enter data by disaggregation

      +

      [[localize('enter_data_by_disaggregation')]]

      @@ -180,36 +180,6 @@

      Progress against Cluster target:

      -
    @@ -475,7 +445,7 @@

    Percentage funded by:

    .map(function (location) { return { title: location.reporting_entity.title, - percentage: Number(location.percentage_allocated), + percentage: 1, }; }); }, diff --git a/polymer/src/elements/error-box.html b/polymer/src/elements/error-box.html index 0918e07e9..41442848d 100644 --- a/polymer/src/elements/error-box.html +++ b/polymer/src/elements/error-box.html @@ -92,6 +92,9 @@ value: error, }, ]; + + case 'undefined': + return []; default: return Object.keys(error) diff --git a/polymer/src/elements/error-modal.html b/polymer/src/elements/error-modal.html index ad91c8cf6..5b1a08394 100644 --- a/polymer/src/elements/error-modal.html +++ b/polymer/src/elements/error-modal.html @@ -2,6 +2,10 @@ + + + + @@ -26,9 +30,9 @@
    @@ -46,12 +50,24 @@ Polymer({ is: 'error-modal', + behaviors: [ + App.Behaviors.ReduxBehavior, + App.Behaviors.UtilsBehavior, + App.Behaviors.LocalizeBehavior, + Polymer.AppLocalizeBehavior, + ], + properties: { errors: { type: Array, value: [], }, + localizedErrors: { + type: Array, + computed: '_localizeErrors(errors, localize)' + }, + opened: { type: Boolean, value: false, @@ -77,6 +93,32 @@ return this._result; }, + _localizeErrors: function (errors, localize) { + if (errors.length === 0) { + return; + } + + var localizedErrors = errors.map(function (error) { + switch (error) { + case 'You have not selected overall status for one of Outputs': + return localize('not_selected_overall_status'); + case 'You have not completed Partner Contribution To Date field on Other Info tab.': + return localize('not_completed_partner_contribution'); + case 'You have not completed Challenges / bottlenecks in the reporting period field on Other Info tab.': + return localize('not_completed_challenges_bottlenecks'); + case 'You have not completed Proposed way forward field on Other Info tab.': + return localize('not_completed_proposed_way'); + case 'You have not completed all indicator location data across all indicator reports for this progress' + + ' report.': + return localize('not_completed_indicator_location'); + default: + return error; + } + }); + + return localizedErrors; + }, + close: function () { this.set('errors', []); this.set('opened', false); diff --git a/polymer/src/elements/etools-prp-ajax.html b/polymer/src/elements/etools-prp-ajax.html index 0f231aade..8ee1fa0f1 100644 --- a/polymer/src/elements/etools-prp-ajax.html +++ b/polymer/src/elements/etools-prp-ajax.html @@ -91,6 +91,12 @@ notify: true, }, + lastProgress: { + notify: true, + readOnly: true, + type: Object, + }, + activeRequests: { notify: true, }, @@ -158,6 +164,7 @@ thunk: function () { return (function () { var req = this.generateRequest(); + var self = this; return req.completes diff --git a/polymer/src/elements/etools-prp-languages.html b/polymer/src/elements/etools-prp-languages.html new file mode 100644 index 000000000..a8b3d0288 --- /dev/null +++ b/polymer/src/elements/etools-prp-languages.html @@ -0,0 +1,49 @@ + + + + + + + + diff --git a/polymer/src/elements/etools-prp-permissions.html b/polymer/src/elements/etools-prp-permissions.html index 3eecd0371..f048acaf3 100644 --- a/polymer/src/elements/etools-prp-permissions.html +++ b/polymer/src/elements/etools-prp-permissions.html @@ -29,6 +29,7 @@ editProgressReport: [ App.Constants.PRP_ROLE.IP_AUTHORIZED_OFFICER, App.Constants.PRP_ROLE.IP_EDITOR, + App.Constants.PRP_ROLE.IP_ADMIN, ], exportSubmittedProgressReport: [ @@ -39,6 +40,7 @@ savePdReport: [ App.Constants.PRP_ROLE.IP_AUTHORIZED_OFFICER, App.Constants.PRP_ROLE.IP_EDITOR, + App.Constants.PRP_ROLE.IP_ADMIN, ], changeProgrammeDocumentCalculationMethod: [ @@ -115,9 +117,13 @@ return responsePlanClusters.some(function (cluster) { return params.prpRoles.some(function (item) { - return item.role === App.Constants.PRP_ROLE.CLUSTER_SYSTEM_ADMIN || - (String(item.cluster.id) === String(cluster.id) && - allowedRoles.indexOf(item.role) > -1); + if (item.cluster === null) { + return item.role === App.Constants.PRP_ROLE.CLUSTER_SYSTEM_ADMIN; + } else { + return item.role === App.Constants.PRP_ROLE.CLUSTER_SYSTEM_ADMIN || + (String(item.cluster.id) === String(cluster.id) && + allowedRoles.indexOf(item.role) > -1); + } }); }); }, @@ -127,9 +133,13 @@ return entityClusters.some(function (cluster) { return params.prpRoles.some(function (item) { - return item.role === App.Constants.PRP_ROLE.CLUSTER_SYSTEM_ADMIN || - (String(item.cluster.id) === String(cluster.id) && - allowedRoles.indexOf(item.role) > -1); + if (item.cluster === null) { + return item.role === App.Constants.PRP_ROLE.CLUSTER_SYSTEM_ADMIN; + } else { + return item.role === App.Constants.PRP_ROLE.CLUSTER_SYSTEM_ADMIN || + (String(item.cluster.id) === String(cluster.id) && + allowedRoles.indexOf(item.role) > -1); + } }); }); }, diff --git a/polymer/src/elements/etools-prp-progress-bar-alt.html b/polymer/src/elements/etools-prp-progress-bar-alt.html index 129737ce2..c63884bf3 100644 --- a/polymer/src/elements/etools-prp-progress-bar-alt.html +++ b/polymer/src/elements/etools-prp-progress-bar-alt.html @@ -17,7 +17,7 @@ } - + diff --git a/polymer/src/elements/filter-list.html b/polymer/src/elements/filter-list.html index bd0aff9fa..72315822e 100644 --- a/polymer/src/elements/filter-list.html +++ b/polymer/src/elements/filter-list.html @@ -6,6 +6,10 @@ + + + + @@ -55,6 +59,12 @@ Polymer({ is: 'filter-list', + behaviors: [ + App.Behaviors.ReduxBehavior, + App.Behaviors.LocalizeBehavior, + Polymer.AppLocalizeBehavior, + ], + properties: { queryParams: Object, filters: Array, diff --git a/polymer/src/elements/filters/cluster-indicator-type-filter/cluster-indicator-type-filter.html b/polymer/src/elements/filters/cluster-indicator-type-filter/cluster-indicator-type-filter.html index 8d187ba3e..c54e541c0 100644 --- a/polymer/src/elements/filters/cluster-indicator-type-filter/cluster-indicator-type-filter.html +++ b/polymer/src/elements/filters/cluster-indicator-type-filter/cluster-indicator-type-filter.html @@ -38,13 +38,24 @@ ], properties: { - isPartner: Boolean, + isPartner: { + type: Boolean, + computed: '_computeRole(currentUserRoles)', + }, + + currentUserRoles: { + type: Array, + statePath: 'userProfile.profile.prp_roles' + }, + data: { type: Array, computed: '_computeData(isPartner)', }, + value: String, }, + _computeData: function (isPartner) { if (isPartner) { return options.filter(function (option) { @@ -53,7 +64,13 @@ } return options; - } + }, + + _computeRole: function (roles) { + return roles.every(function (role) { + return role.role !== 'CLUSTER_IMO'; + }); + }, }); diff --git a/polymer/src/elements/filters/dropdown-filter/dropdown-filter-multi.html b/polymer/src/elements/filters/dropdown-filter/dropdown-filter-multi.html index 1a5ad3c7a..b41b6b7c7 100644 --- a/polymer/src/elements/filters/dropdown-filter/dropdown-filter-multi.html +++ b/polymer/src/elements/filters/dropdown-filter/dropdown-filter-multi.html @@ -82,6 +82,10 @@ _handleData: function (data) { if (data.length) { this._filterReady(); + } else if (this.name === 'location') { + // Locations get populated by PDs so user can filter by location, so if there are no PDs, + // there are no locations - in that case, fire filterReady method to have filters stop loading. + this._filterReady(); } }, diff --git a/polymer/src/elements/filters/dropdown-filter/dropdown-filter.html b/polymer/src/elements/filters/dropdown-filter/dropdown-filter.html index 9fb5e7a44..2a16c955b 100644 --- a/polymer/src/elements/filters/dropdown-filter/dropdown-filter.html +++ b/polymer/src/elements/filters/dropdown-filter/dropdown-filter.html @@ -5,6 +5,10 @@ + + + +