diff --git a/apps/analysis/dataloaders.py b/apps/analysis/dataloaders.py index d9dc6b23c4..56f9f3ee51 100644 --- a/apps/analysis/dataloaders.py +++ b/apps/analysis/dataloaders.py @@ -9,10 +9,15 @@ from .models import ( Analysis, AnalysisPillar, + AnalysisReport, AnalyticalStatement, AnalyticalStatementEntry, DiscardedEntry, TopicModelCluster, + AnalysisReportUpload, + AnalysisReportContainerData, + AnalysisReportContainer, + AnalysisReportSnapshot, ) @@ -140,6 +145,75 @@ def batch_load_fn(self, keys): return Promise.resolve([_map.get(key, []) for key in keys]) +# -------------- Report Module ------------------------------- +class AnalysisReportUploadsLoader(DataLoaderWithContext): + def batch_load_fn(self, keys): + qs = AnalysisReportUpload.objects.filter( + id__in=keys, + ) + _map = { + item.pk: item + for item in qs + } + return Promise.resolve([_map.get(key, []) for key in keys]) + + +class AnalysisReportContainerDataByContainerLoader(DataLoaderWithContext): + def batch_load_fn(self, keys): + qs = AnalysisReportContainerData.objects.filter( + container__in=keys, + ) + _map = defaultdict(list) + for item in qs: + _map[item.container_id].append(item) + return Promise.resolve([_map.get(key, []) for key in keys]) + + +class OrganizationByAnalysisReportLoader(DataLoaderWithContext): + def batch_load_fn(self, keys): + qs = AnalysisReport.organizations.through.objects.filter( + analysisreport__in=keys, + ).select_related('organization') + _map = defaultdict(list) + for item in qs: + _map[item.analysisreport_id].append(item.organization) + return Promise.resolve([_map[key] for key in keys]) + + +class ReportUploadByAnalysisReportLoader(DataLoaderWithContext): + def batch_load_fn(self, keys): + qs = AnalysisReportUpload.objects.filter( + report__in=keys, + ) + _map = defaultdict(list) + for item in qs: + _map[item.report_id].append(item) + return Promise.resolve([_map[key] for key in keys]) + + +class AnalysisReportContainerByAnalysisReportLoader(DataLoaderWithContext): + def batch_load_fn(self, keys): + qs = AnalysisReportContainer.objects.filter( + report__in=keys, + ) + _map = defaultdict(list) + for item in qs: + _map[item.report_id].append(item) + return Promise.resolve([_map[key] for key in keys]) + + +class LatestReportSnapshotByAnalysisReportLoader(DataLoaderWithContext): + def batch_load_fn(self, keys): + qs = AnalysisReportSnapshot.objects.filter( + report__in=keys, + ).order_by('report_id', '-published_on').distinct('report_id') + _map = { + snapshot.report_id: snapshot + for snapshot in qs + } + return Promise.resolve([_map.get(key) for key in keys]) + + class DataLoaders(WithContextMixin): @cached_property def analysis_publication_date(self): @@ -176,3 +250,27 @@ def analytical_statement_entries(self): @cached_property def topic_model_cluster_entries(self): return AnalysisTopicModelClusterEntryLoader(context=self.context) + + @cached_property + def analysis_report_uploads(self): + return AnalysisReportUploadsLoader(context=self.context) + + @cached_property + def analysis_report_container_data_by_container(self): + return AnalysisReportContainerDataByContainerLoader(context=self.context) + + @cached_property + def organization_by_analysis_report(self): + return OrganizationByAnalysisReportLoader(context=self.context) + + @cached_property + def analysis_report_uploads_by_analysis_report(self): + return ReportUploadByAnalysisReportLoader(context=self.context) + + @cached_property + def analysis_report_container_by_analysis_report(self): + return AnalysisReportContainerByAnalysisReportLoader(context=self.context) + + @cached_property + def latest_report_snapshot_by_analysis_report(self): + return LatestReportSnapshotByAnalysisReportLoader(context=self.context) diff --git a/apps/analysis/factories.py b/apps/analysis/factories.py index e138ddb2f0..7586925284 100644 --- a/apps/analysis/factories.py +++ b/apps/analysis/factories.py @@ -1,12 +1,15 @@ import factory from factory.django import DjangoModelFactory +from gallery.factories import FileFactory from .models import ( Analysis, AnalysisPillar, AnalyticalStatement, AnalyticalStatementEntry, DiscardedEntry, + AnalysisReport, + AnalysisReportUpload, ) @@ -44,3 +47,16 @@ class AnalyticalStatementEntryFactory(DjangoModelFactory): class Meta: model = AnalyticalStatementEntry + + +class AnalysisReportFactory(DjangoModelFactory): + class Meta: + model = AnalysisReport + + +class AnalysisReportUploadFactory(DjangoModelFactory): + type = AnalysisReportUpload.Type.CSV + file = factory.SubFactory(FileFactory) + + class Meta: + model = AnalysisReportUpload diff --git a/apps/analysis/models.py b/apps/analysis/models.py index fc87613085..02530eef8f 100644 --- a/apps/analysis/models.py +++ b/apps/analysis/models.py @@ -546,6 +546,7 @@ class AnalyticalStatementGeoEntry(models.Model): data = models.JSONField(default=list) +# ---- Analysis Report ---- class AnalysisReport(UserResource): analysis = models.ForeignKey(Analysis, on_delete=models.CASCADE) is_public = models.BooleanField( @@ -569,6 +570,7 @@ def get_latest_snapshot(slug=None, report_id=None): return queryset = AnalysisReportSnapshot.objects.filter( report__is_public=True, + report__analysis__project__enable_publicly_viewable_analysis_report_snapshot=True, ) if slug is not None: queryset = queryset.filter(report__slug=slug) @@ -615,6 +617,9 @@ class AnalysisReportContainerData(models.Model): # Generic for now. Client will define this later data = models.JSONField(default=dict) + # Types + container_id: int + class AnalysisReportSnapshot(UserResource): report = models.ForeignKey(AnalysisReport, on_delete=models.CASCADE) diff --git a/apps/analysis/mutation.py b/apps/analysis/mutation.py index d25fb93384..de5bd03c19 100644 --- a/apps/analysis/mutation.py +++ b/apps/analysis/mutation.py @@ -212,7 +212,7 @@ class Arguments: result = graphene.Field(AnalyticalStatementGeoTaskType) -# Analysis Report +# ----------------- Analysis Report ------------------------------------------ class CreateAnalysisReport(AnalysisReportMutationMixin, PsGrapheneMutation): class Arguments: data = AnalysisReportInputType(required=True) @@ -229,6 +229,13 @@ class Arguments: serializer_class = AnalysisReportSerializer result = graphene.Field(AnalysisReportType) + @classmethod + def get_serializer_context(cls, instance, context): + return { + **context, + 'report': instance, + } + class DeleteAnalysisReport(AnalysisReportMutationMixin, PsDeleteMutation): class Arguments: diff --git a/apps/analysis/schema.py b/apps/analysis/schema.py index 513b1aee76..b5b24283cd 100644 --- a/apps/analysis/schema.py +++ b/apps/analysis/schema.py @@ -564,7 +564,7 @@ class Meta: model = AnalysisReportUpload only_fields = ( 'id', - 'file', # TODO Dataloader + 'file', ) report = graphene.ID(source='report_id', required=True) @@ -578,16 +578,24 @@ class Meta: def get_custom_queryset(queryset, info, **_): return get_analysis_report_upload_qs(info) + @staticmethod + def resolve_file(root, info, **_): + return info.context.dl.deep_gallery.file.load(root.file_id) + class AnalysisReportContainerDataType(ClientIdMixin, DjangoObjectType): class Meta: model = AnalysisReportContainerData only_fields = ( 'id', - 'upload', # AnalysisReportUploadType # TODO: Dataloader + 'upload', # AnalysisReportUploadType 'data', # NOTE: This is Generic for now ) + @staticmethod + def resolve_upload(root, info, **_): + return info.context.dl.analysis.analysis_report_uploads.load(root.upload_id) + class AnalysisReportContainerType(ClientIdMixin, DjangoObjectType): class Meta: @@ -619,9 +627,9 @@ class Meta: ) content_data = graphene.List(graphene.NonNull(AnalysisReportContainerDataType), required=True) + @staticmethod def resolve_content_data(root, info, **_): - # TODO: Dataloader - return root.analysisreportcontainerdata_set.all() + return info.context.dl.analysis.analysis_report_container_data_by_container.load(root.pk) class AnalysisReportSnapshotType(DjangoObjectType): @@ -647,15 +655,14 @@ def resolve_published_by(root, info, **_): @staticmethod def resolve_files(root, info, **_): - # TODO: Maybe filter this out? # For now # - organization logos # - report uploads - # TODO: use queryset instead - related_file_id = [ - *list(root.report.analysisreportupload_set.values_list('file_id', flat=True)), - *list(root.report.organizations.values_list('logo_id', flat=True)), - ] + related_file_id = ( + root.report.analysisreportupload_set.values_list('file').union( + root.report.organizations.values_list('logo') + ) + ) return GalleryFile.objects.filter(id__in=related_file_id).all() @@ -692,23 +699,19 @@ def get_custom_queryset(queryset, info, **_): @staticmethod def resolve_organizations(root, info, **_): - # TODO: Dataloader - return root.organizations.all() + return info.context.dl.analysis.organization_by_analysis_report.load(root.pk) @staticmethod def resolve_uploads(root, info, **_): - # TODO: Dataloader - return root.analysisreportupload_set.all() + return info.context.dl.analysis.analysis_report_uploads_by_analysis_report.load(root.pk) @staticmethod def resolve_containers(root, info, **_): - # TODO: Dataloader - return root.analysisreportcontainer_set.all() + return info.context.dl.analysis.analysis_report_container_by_analysis_report.load(root.pk) @staticmethod def resolve_latest_snapshot(root, info, **_): - # TODO: Dataloader - return AnalysisReport.get_latest_snapshot(report_id=root.id) + return info.context.dl.analysis.latest_report_snapshot_by_analysis_report.load(root.pk) class AnalysisReportListType(CustomDjangoListObjectType): diff --git a/apps/analysis/serializers.py b/apps/analysis/serializers.py index 8119934bcd..cb6656b8fd 100644 --- a/apps/analysis/serializers.py +++ b/apps/analysis/serializers.py @@ -5,7 +5,7 @@ from rest_framework import serializers from drf_dynamic_fields import DynamicFieldsMixin -from drf_writable_nested import UniqueFieldsMixin, NestedCreateMixin, WritableNestedModelSerializer +from drf_writable_nested import UniqueFieldsMixin, NestedCreateMixin from django.db import transaction, models from deep.graphene_context import GQLContext @@ -578,43 +578,43 @@ class HeadingConfigurationVariant(models.TextChoices): class AnalysisReportVariableSerializer(serializers.Serializer): - name = serializers.CharField(required=False) - type = serializers.ChoiceField(choices=ReportEnum.VariableType.choices, required=False) - completeness = serializers.IntegerField(required=False) + name = serializers.CharField(required=False, allow_null=True) + type = serializers.ChoiceField(choices=ReportEnum.VariableType.choices, required=False, allow_null=True) + completeness = serializers.IntegerField(required=False, allow_null=True) class AnalysisReportTextStyleSerializer(serializers.Serializer): - color = serializers.CharField(required=False) - family = serializers.CharField(required=False) - size = serializers.IntegerField(required=False) - weight = serializers.IntegerField(required=False) - align = serializers.ChoiceField(choices=ReportEnum.TextStyleAlign.choices, required=False) + color = serializers.CharField(required=False, allow_null=True) + family = serializers.CharField(required=False, allow_null=True) + size = serializers.IntegerField(required=False, allow_null=True) + weight = serializers.IntegerField(required=False, allow_null=True) + align = serializers.ChoiceField(choices=ReportEnum.TextStyleAlign.choices, required=False, allow_null=True) class AnalysisReportMarginStyleSerializer(serializers.Serializer): - top = serializers.IntegerField(required=False) - bottom = serializers.IntegerField(required=False) - left = serializers.IntegerField(required=False) - right = serializers.IntegerField(required=False) + top = serializers.IntegerField(required=False, allow_null=True) + bottom = serializers.IntegerField(required=False, allow_null=True) + left = serializers.IntegerField(required=False, allow_null=True) + right = serializers.IntegerField(required=False, allow_null=True) class AnalysisReportPaddingStyleSerializer(serializers.Serializer): - top = serializers.IntegerField(required=False) - bottom = serializers.IntegerField(required=False) - left = serializers.IntegerField(required=False) - right = serializers.IntegerField(required=False) + top = serializers.IntegerField(required=False, allow_null=True) + bottom = serializers.IntegerField(required=False, allow_null=True) + left = serializers.IntegerField(required=False, allow_null=True) + right = serializers.IntegerField(required=False, allow_null=True) class AnalysisReportBorderStyleSerializer(serializers.Serializer): - color = serializers.CharField(required=False) - width = serializers.IntegerField(required=False) - opacity = serializers.IntegerField(required=False) + color = serializers.CharField(required=False, allow_null=True) + width = serializers.IntegerField(required=False, allow_null=True) + opacity = serializers.IntegerField(required=False, allow_null=True) style = serializers.ChoiceField(choices=ReportEnum.BorderStyleStyle.choices, required=False) class AnalysisReportBackgroundStyleSerializer(serializers.Serializer): - color = serializers.CharField(required=False) - opacity = serializers.IntegerField(required=False) + color = serializers.CharField(required=False, allow_null=True) + opacity = serializers.IntegerField(required=False, allow_null=True) class AnalysisReportPageStyleSerializer(serializers.Serializer): @@ -632,7 +632,7 @@ class AnalysisReportHeaderStyleSerializer(serializers.Serializer): class AnalysisReportBodyStyleSerializer(serializers.Serializer): - gap = serializers.IntegerField(required=False) + gap = serializers.IntegerField(required=False, allow_null=True) class AnalysisReportContainerStyleSerializer(serializers.Serializer): @@ -658,33 +658,27 @@ class AnalysisReportHeadingContentStyleSerializer(serializers.Serializer): class AnalysisReportImageContentStyleSerializer(serializers.Serializer): caption = AnalysisReportTextStyleSerializer(required=False, allow_null=True) - fit = serializers.ChoiceField(choices=ReportEnum.ImageContentStyleFit.choices, required=False) - - -class AnalysisReportUrlContentStyleSerializer(serializers.Serializer): - # TODO: Define fields here - noop = serializers.CharField(required=False) + fit = serializers.ChoiceField(choices=ReportEnum.ImageContentStyleFit.choices, required=False, allow_null=True) class AnalysisReportTextConfigurationSerializer(serializers.Serializer): - content = serializers.CharField(required=False) + content = serializers.CharField(required=False, allow_null=True) style = AnalysisReportTextContentStyleSerializer(required=False, allow_null=True) class AnalysisReportHeadingConfigurationSerializer(serializers.Serializer): - content = serializers.CharField(required=False) + content = serializers.CharField(required=False, allow_null=True) style = AnalysisReportHeadingConfigurationStyleSerializer(required=False, allow_null=True) variant = serializers.ChoiceField(choices=ReportEnum.HeadingConfigurationVariant.choices, required=False) class AnalysisReportUrlConfigurationSerializer(serializers.Serializer): - url = serializers.CharField(required=False) - style = AnalysisReportUrlContentStyleSerializer(required=False, allow_null=True) + url = serializers.CharField(required=False, allow_null=True) class AnalysisReportImageConfigurationSerializer(serializers.Serializer): - caption = serializers.CharField(required=False) - altText = serializers.CharField(required=False) + caption = serializers.CharField(required=False, allow_null=True) + altText = serializers.CharField(required=False, allow_null=True) style = AnalysisReportImageContentStyleSerializer(required=False, allow_null=True) @@ -723,12 +717,24 @@ class Meta: fields = ( 'id', 'client_id', - 'upload', # TODO Validation + 'upload', 'data', ) + def validate_upload(self, upload): + report = self.context.get('report') + if report is None: + raise serializers.ValidationError( + 'Report needs to be created before assigning uploads to container' + ) + if report.id != upload.report_id: + raise serializers.ValidationError( + 'Upload within report are only allowed' + ) + return upload + -class AnalysisReportContainerSerializer(TempClientIdMixin, WritableNestedModelSerializer): +class AnalysisReportContainerSerializer(TempClientIdMixin, UserResourceSerializer): id = IntegerIDField(required=False) class Meta: @@ -753,15 +759,21 @@ class Meta: content_configuration = AnalysisReportContainerContentConfigurationSerializer( required=False, allow_null=True) - # TODO: Model Field, Nested Serializer content_data = AnalysisReportContainerDataSerializer(many=True, source='analysisreportcontainerdata_set') + # NOTE: This is a custom function (apps/user_resource/serializers.py::UserResourceSerializer) + # This makes sure only scoped (individual Analysis Report) instances (container data) are updated. + def _get_prefetch_related_instances_qs(self, qs): + if self.instance: + return qs.filter(container=self.instance) + return qs.none() # On create throw error if existing id is provided + -class AnalysisReportSerializer(UserResourceSerializer): +class AnalysisReportSerializer(ProjectPropertySerializerMixin, UserResourceSerializer): class Meta: model = AnalysisReport fields = ( - 'analysis', # TODO Validation + 'analysis', 'slug', 'title', 'sub_title', @@ -775,6 +787,23 @@ class Meta: configuration = AnalysisReportConfigurationSerializer(required=False, allow_null=True) containers = AnalysisReportContainerSerializer(many=True, source='analysisreportcontainer_set') + # NOTE: This is a custom function (apps/user_resource/serializers.py::UserResourceSerializer) + # This makes sure only scoped (individual Analysis Report) instances (containers) are updated. + def _get_prefetch_related_instances_qs(self, qs): + if self.instance: + return qs.filter(report=self.instance) + return qs.none() # On create throw error if existing id is provided + + def validate_analysis(self, analysis): + existing_analysis_id = self.instance and self.instance.analysis_id + # NOTE: if changed, make sure user have access to that analysis + if ( + analysis.id != existing_analysis_id and + analysis.project_id != self.project.id + ): + raise serializers.ValidationError('You need access to analysis') + return analysis + # -- Snapshot class AnalysisReportSnapshotSerializer(ProjectPropertySerializerMixin, serializers.ModelSerializer): @@ -847,21 +876,38 @@ class AnalysisReportUploadMetadataSerializer(serializers.Serializer): xlsx = AnalysisReportUploadMetadataXlsxSerializer(required=False, allow_null=True) csv = AnalysisReportUploadMetadataCsvSerializer(required=False, allow_null=True) geojson = AnalysisReportUploadMetadataGeoJsonSerializer(required=False, allow_null=True) - # image = AnalysisReportUploadMetadataGeoJsonSerializer() -# TODO: Seperate mutation -class AnalysisReportUploadSerializer(serializers.ModelSerializer): +class AnalysisReportUploadSerializer(ProjectPropertySerializerMixin, serializers.ModelSerializer): class Meta: model = AnalysisReportUpload fields = ( 'id', - 'report', # TODO Validation - 'file', # TODO Validation + 'report', + 'file', 'type', # Custom 'metadata', ) metadata = AnalysisReportUploadMetadataSerializer() - # TODO Validations + + def validate_file(self, file): + existing_file_id = self.instance and self.instance.file_id + # NOTE: if changed, make sure only owner can assign files + if ( + file.id != existing_file_id and + file.created_by != self.context['request'].user + ): + raise serializers.ValidationError('Only owner can assign file') + return file + + def validate_report(self, report): + existing_report_id = self.instance and self.instance.report_id + # NOTE: if changed, make sure user have access to that report + if ( + report.id != existing_report_id and + report.project_id != self.project + ): + raise serializers.ValidationError('You need access to report') + return report diff --git a/apps/analysis/tests/analysis_report/data.json b/apps/analysis/tests/analysis_report/data.json new file mode 100644 index 0000000000..4ccf177379 --- /dev/null +++ b/apps/analysis/tests/analysis_report/data.json @@ -0,0 +1,600 @@ + +{ + "configuration": { + "bodyStyle": { + "gap": 32 + }, + "textContentStyle": { + "content": { + "family": "Source Sans Pro", + "weight": 300, + "align": "JUSTIFIED" + } + }, + "containerStyle": { + "background": { + "color": "#f9f9f9" + }, + "border": { + "color": "#d3d3d5", + "style": "DASHED", + "width": 1 + }, + "padding": null + }, + "headerStyle": { + "background": null, + "padding": null, + "subTitle": null, + "title": null + }, + "imageContentStyle": { + "caption": null + }, + "headingContentStyle": { + "h1": null, + "h2": null, + "h3": null, + "h4": null + } + }, + "containers": [ + { + "clientId": "random-client-id", + "row": 1, + "column": 1, + "width": 12, + "contentType": "HEADING", + "style": { + "background": null, + "border": null, + "padding": null + }, + "contentData": [], + "contentConfiguration": { + "heading": { + "content": "Turkey Situational Analysis", + "variant": "H1", + "style": { + "content": null + } + } + } + }, + { + "clientId": "random-client-id", + "row": 2, + "column": 1, + "width": 12, + "contentType": "HEADING", + "style": { + "background": null, + "border": null, + "padding": null + }, + "contentData": [], + "contentConfiguration": { + "heading": { + "content": "Information and Communication", + "variant": "H2", + "style": { + "content": null + } + } + } + }, + { + "clientId": "random-client-id", + "row": 3, + "column": 1, + "width": 6, + "contentType": "TEXT", + "style": { + "background": null, + "border": null, + "padding": null + }, + "contentData": [], + "contentConfiguration": { + "text": { + "content": "**alsdakjsdbakjsd**", + "style": { + "content": { + "color": "#3500ff", + "size": 20 + } + } + } + } + }, + { + "clientId": "random-client-id", + "row": 3, + "column": 2, + "width": 6, + "contentType": "IMAGE", + "style": { + "background": null, + "border": null, + "padding": null + }, + "contentData": [], + "contentConfiguration": { + "image": { + "altText": "test", + "caption": "test", + "style": { + "caption": { + "color": "#3f21e0", + "family": "Roboto", + "weight": 700 + } + } + } + } + }, + { + "clientId": "random-client-id", + "row": 5, + "column": 1, + "width": 12, + "contentType": "TEXT", + "style": { + "background": null, + "border": null, + "padding": null + }, + "contentData": [], + "contentConfiguration": { + "text": { + "content": "#### Main Statement\nThe data indicates that Syrian refugees in Turkey face critical challenges, including limited access to rehabilitative health services and a language barrier. Additionally, there is a significant gap in information regarding menstruation, with a majority relying on family and friends for knowledge, highlighting the need for comprehensive education programs. Furthermore, the preferred channels of information for different refugee groups vary, emphasizing the importance of tailored communication strategies to effectively reach and support diverse communities.\n#### Information Gaps\nInformation gaps among Syrian refugees in Turkey pose significant challenges. Many lack awareness of critical needs and rely on one-time assistance. Limited access to accurate news, especially for those with language barriers, hinders their understanding of the broader context. Additionally, there is a deficiency in knowledge about important topics like menstruation, highlighting the need for comprehensive education programs. Targeted initiatives and tailored communication strategies are crucial to address these gaps and empower refugees to make informed decisions.\n#### My Analysis\nFor example, the target group does not know what needs are considered critical in which conditions, and thus cannot ask for assistance but can only receive one-time or temporary in-kind or in-cash assistance when reached on site by project teams. Several such cases were encountered during the field work and the GOAL Turkey team was notified about families with critical needs ([GOAL](https://www.ka.org.tr/dosyalar/file/Yayinlar/Baris%20Kalkinma/Unseen-Lives-on-Migration-Routes-Current-Situation-and-Needs-Analysis.pdf), 2021-11-11).\n\nAnother man in Izmir related, “My two siblings are in Aleppo. I speak with them. Since we only have Turkish television, I cannot follow events there. When I talk with my siblings, they tell me about life there and continuously say there is no water, electricity or work” (Interview, Izmir, 2018, SRII_25). We found that migrants are generally aware, engaged and interested in the news, at least to the extent that it affects them and their family ([European Commission](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/e5f1cd50-b9bc-41cb-b480-3996111ab4c3), 2021-12-27).\n\nLimited rehabilitative health services, such as counselling, and the language barrier are the most important issues for Syrian refugees who need rehabilitation in Turkey ([Elsevier](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/65500892-fa44-45b9-9314-533d98165a7e), 2021-11-25).\n\nRespondents were asked about their suggestions on the activities that will support school adaptation. When respondents were asked if they have any idea on activities that will help school adaptation, 49% answered yes, with 22% stated “no” and 29% having no idea on the subject. It is one of the striking findings that respondents having insufficient information about the matter have no idea about what school adaptation improvement activities and methods are ([Turkish Red Cresent](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/d894be81-74ae-4e1f-aa73-64ec019055f0), 2023-01-06).\n\nAmong the refugee population in Türkiye, five in ten girls (51%) and six in ten women (59%) did not have any information of menstruation before menarche (first menstruation). The main source of the information among women and girls is limited by family and friends (including mother, sister, aunt, friend, etc.) that amounts to 94%. The rate of women and girls who received information of menstruation from multiple sources (including social media, school counselor) is low and amounts to 8% and 25% respectively. Receiving information from health professionals is low in both groups ([United Nations Population Fund](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/3a7e36cc-2500-4feb-b852-112e1d2bfcdc), 2022-12-08).\n\nThe rate of obtaining information from television is significantly higher in those (50,0%) who have been living in Turkey for 6-9 years compared to those who have been living in Turkey for 1-5 years (35.3%) (p <0.05) ([United Nations High Commissioner for Refugees](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/7b189e77-d441-49ea-93ac-20f250ab9e74), 2022-01-14).\n\nRate of getting information from the internet is significantly higher among the participants of AB socio-economic group (88,0%) compared to the individuals of other socio-economic groups (p<0,05) ([United Nations High Commissioner for Refugees](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/7b189e77-d441-49ea-93ac-20f250ab9e74), 2022-01-12).\n\nRate of getting information from friends/social circle is significantly higher among the participants living in Turkey for 1-5 years (44%) compared to those who have been living in Turkey for 6-9 years (28,9%) p<0,05) ([United Nations High Commissioner for Refugees](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/7b189e77-d441-49ea-93ac-20f250ab9e74), 2022-01-12).\n\nRate of getting information about chronic diseases from the internet (55,7%), printed media such as newspaper/journal/brochure/book (19,4%) and healthcare personnel (nurse, etc.) (11,4%) is significantly higher among the participants speaking Turkish compared to those who don’t speak Turkish (p<0,05) ([United Nations High Commissioner for Refugees](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/7b189e77-d441-49ea-93ac-20f250ab9e74), 2022-01-12).\n\nThe most preferred and utilized channels of information also remained the same with previous Rounds, namely messaging applications, social media and the internet. However, individual counselling via phone is the second preferred modality to receive information for Afghans, and Iranians were also identified to rank this modality higher compared to other groups. Additionally, Iraqis rank individual counselling in-person higher than other groups. Lastly, for Iraqis, social media as a channel to receive information is ranked as the top modality ([United Nations High Commissioner for Refugees](https://data.unhcr.org/en/documents/download/93797), 2022-06-22).", + "style": { + "content": null + } + } + } + }, + { + "clientId": "random-client-id", + "row": 6, + "column": 1, + "width": 12, + "contentType": "TEXT", + "style": { + "background": null, + "border": null, + "padding": null + }, + "contentData": [], + "contentConfiguration": { + "text": { + "content": "#### Main Statement\nAccess to accurate and timely information, particularly regarding international protection procedures, health-care services, and program updates, remains a critical concern for Syrian refugees in Turkey. Efforts to bridge this gap have included the use of multiple languages and various media channels, but challenges persist, highlighting the need for continued and targeted outreach initiatives.\n#### Information Gaps\nInformation gaps persist among Syrian refugees in Turkey, notably concerning international protection procedures, health-care services, and program updates. Despite efforts to disseminate information through multiple languages and media channels, challenges in accessing accurate and timely information persist, emphasizing the ongoing need for targeted outreach and improved communication strategies to address these gaps and better support the refugee population.\n#### My Analysis\nAccess to information: Access to information on the international protection procedure and applicable rights and obligations remains a serious matter of concern in practice. Information as to which PDMM office was open during COVID-19 was reported as a particular concern, as well as the impossibility to access in-person and counselling services. Nevertheless, information resources specifically on Coronavirus such as how to look after your health, government measures on curfews and travel restrictions, and how to access government assistance were made available in Turkish, Arabic, English, Farsi, for example by SGDD-ASAM ([Asylum Information Database](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/27febb2c-6369-47c3-ab35-be7e0ab498f7), 2022-01-14).\n\nComprehensive outreach efforts have been undertaken to reach the intended population and key stakeholders. This included the use of multiple media (workshops, printed materials, social media) in four languages to provide accurate information on the program and support ESSN reach the target population and relevant actors—for example, Turkish Social Assistance and Solidarity Foundations (SASFs), Social Service Centers (SSCs), Nüfus, Provincial Directorate of Migration Management (PDMM) offices, Provincial Governors, Kaymakams (heads of district), and Muhtars (community leaders) ([World Bank](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/768ef414-8c9e-4ed5-b291-379965adb3ef), 2022-02-03).\n\nThe lack of information on health-care services and how to benefit from them is another impediment. Only 5.2% of women overall stated this as a reason for not accessing health services, but there are significant variations among provinces. While no one seems to lack information about general health services in Gaziantep and Adana, 12.5% lack information in Şanlıurfa (Chart 29) ([United Nations Entity for Gender Equality and the Empowerment of Women](https://www2.unwomen.org/-/media/field%20office%20eca/attachments/publications/country/turkey/the%20needs%20assessmentengwebcompressed.pdf?la=en&vs=3139), 2022-01-06).\n\nTo inform eligible households regarding criteria changes occurred with the launch of the C-ESSN programme, 83,576 SMSes were sent to the recipients for update. In addition, in December, 15,810 calls were received and recorded through toll-free TRC 168 Call Centre; 46.83 per cent from female, 53.16 per cent from male callers. All questions submitted through Facebook (61 queries), and more than 165 questions asked through the website were responded timely. A total of 285,856 SMSes were sent out to recipients ([Turkish Red Cresent, International Federation of Red Cross And Red Crescent Societies](https://reliefweb.int/sites/reliefweb.int/files/resources/Emergency-Social-Safety-Net-ESSN-Report-December-2021.pdf), 2022-04-08).\n\nWFP field staff occasionally observe or being reported about misinformation spread regarding camp closures, deportation of camp residents, and transfer value amount. Camp managements, TK, and WFP personnel put efforts to refute such fabricated information ([United Nations High Commissioner for Refugees](https://data.unhcr.org/en/documents/download/97817), 2022-12-29).\n\nAccording to the result of z-test, when we compare findings of 2020 with the data of 2018, rate of getting information through Turkish (13,3%) and English (6,2%) resources has increased significantly compared to the year 2018 (p<0,05) ([United Nations High Commissioner for Refugees](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/7b189e77-d441-49ea-93ac-20f250ab9e74), 2022-01-18).\n\n6. Language of the Resources Read about Chronic Diseases: 232 individuals who stated they get information about chronic diseases from newspaper, magazine, brochure, books and the Internet were asked about language of the respective information resources. The respective answers are demonstrated in Graphic 16. According to the graphic, it is determined that almost all the resources they read are in native language (99,1%). It is followed by English resources (6%) and Turkish resources (2,6%), respectively ([United Nations High Commissioner for Refugees](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/7b189e77-d441-49ea-93ac-20f250ab9e74), 2022-01-12).\n\nAccording to the result of z-test, when we compare findings of 2020 with the data of 2018, proportion of being informed by doctors (30,5%) and paramedics (11,8%) has increased significantly while proportion of being informed by television (40%) and the internet (43,3%) has decreased significantly (p<0,05) ([United Nations High Commissioner for Refugees](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/7b189e77-d441-49ea-93ac-20f250ab9e74), 2022-01-18).\n\nIn April, 11,670 calls were received and recorded by toll-free 168 Kizılay Call Center. 5,526 of these calls received from females callers, 6,144 calls are received from the male callers. 93,97 per cent of these calls were in Arabic ([International Federation of Red Cross And Red Crescent Societies, Turkish Red Cresent](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/c25edff1-28a4-40cb-ab11-87894e38573a), 2022-05-27).\n\nWith an objective of providing ESSN applicants with accurate and up-to-date information, over 277,000 SMSes were sent in various categories such as important programme updates, the applicants' eligibility status, programme information channels and monthly uploads. In August, 450 questions were received and responded to through facebook and programme website, in addition to 21,015 calls being received through the 168 call centre ([Turkish Red Cresent, International Federation of Red Cross And Red Crescent Societies](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/3acb21fb-3869-4af7-b9ab-4a4b6ad02107), 2022-09-21).", + "style": { + "content": null + } + } + } + }, + { + "clientId": "random-client-id", + "row": 7, + "column": 1, + "width": 12, + "contentType": "TEXT", + "style": { + "background": null, + "border": null, + "padding": null + }, + "contentData": [], + "contentConfiguration": { + "text": { + "content": "#### Main Statement\nThe data underscores significant information gaps, particularly concerning crucial topics like menstruation and mental health, among Syrian refugees in Turkey. These gaps lead to feelings of stigma and shame during important life events. Efforts have been made to bridge these gaps, including providing information in multiple languages and utilizing various communication channels. However, the reliance on family and social networks for information highlights the need for comprehensive educational programs. Additionally, the prevalence of social media and Internet use among refugees illustrates their importance as sources of information and communication within the community. Female-headed households tend to rely more on social media, indicating potential differences in information-seeking behavior based on household composition. These findings highlight the necessity for tailored communication strategies and targeted outreach efforts to ensure that accurate and pertinent information reaches all members of the refugee population.\n#### Information Gaps\nThe information gaps among Syrian refugees in Turkey are striking and concerning. Many women and girls have limited knowledge about critical topics like menstruation, leading to feelings of stigma and shame during important life events. They primarily rely on family and social networks for information, but in most cases, the knowledge they receive is limited. Efforts have been made to bridge these gaps, such as providing information in multiple languages and utilizing various communication channels. However, there remains a clear need for comprehensive educational programs to address these vital gaps in knowledge and understanding. This highlights the importance of tailored communication strategies to ensure accurate and pertinent information reaches all members of the refugee population.\n#### My Analysis\nWhen the women and the girls reach menarche, they had limited knowledge about menstruation. They all experienced stigma and shame during the first menstrual cycle. They relied on their families and friends for getting information about menstruation. But in most cases, the information that they received was limited ([United Nations Population Fund](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/3a7e36cc-2500-4feb-b852-112e1d2bfcdc), 2022-12-05).\n\nFGD participants stated that most of the girls did not have knowledge before menstruation, sometimes they hid it for a long time out of fear or embarrassment, and received information from their mothers or a younger female family members at home, such as an older sister or aunt-in-law. They stated that the information they received was that it happened to all women, that their body would change, and that they were told what they should or should not do ([United Nations Population Fund](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/3a7e36cc-2500-4feb-b852-112e1d2bfcdc), 2022-12-05).\n\nAccording to the result of z-test, when we compare findings of the year 2020 with data of 2018, rate of getting information from resources in English has increased significantly in 2020 (p<0,05) ([United Nations High Commissioner for Refugees](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/7b189e77-d441-49ea-93ac-20f250ab9e74), 2022-01-12).\n\nAccountability: Almost 93% percent (65) of all CBI programmes mapped in the round of 2021-22 has complaint mechanisms in place. Complaint channels include rather common ones like call lines etc. and some less prevalent methods such as deploying community focal points (20%, 14) who are trusted community members provided with relevant trainings helping organisations get community feedback during the entirety of their CBI projects ([United Nations High Commissioner for Refugees](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/c6c75372-345d-47d9-8e26-44ccc075e617), 2022-04-22).\n\nLanguage of the Information Resources about Mental Illnesses: 423 participants who stated they get information on mental illnesses through Newspaper, Magazine, Brochure, Books and the Internet were asked about language of the information resources. The relevant answers are presented in Graphic 23. According to the graphic, it is determined that all of the resources they read were in native language (100%). It is followed by Turkish resources (13,3%) and English resources (6,2%) ([United Nations High Commissioner for Refugees](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/7b189e77-d441-49ea-93ac-20f250ab9e74), 2022-01-18).\n\nSMS is the most commonly preferred means of communication (81%) for those receiving ESSN support. As for people not receiving ESSN, it is seen that the 168 Türk Kızılay toll-free Call Centre is the most preferred communication channel (almost 60 per cent) for programme- related developments ([International Federation of Red Cross And Red Crescent Societies, Turkish Red Cresent](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/e5e43812-4b20-42ec-8eee-02b1b7d7ac25), 2022-04-06).\n\nIn the discussions, the effects of debt on family relations were also explored. There was consensus that stress, anxiety, and debt concerned state of mind directly affect and harm the relationship of and communication between family members. These issues were thought to put a particular strain on the relationship between spouses. Examples were given for actual divorces caused by debt and for situations where the head of household reflects his stress by shouting to his wife, or women leaving their husbands for not meeting the household needs ([Turkish Red Cresent, International Federation of Red Cross And Red Crescent Societies](https://reliefweb.int/sites/reliefweb.int/files/resources/FGD-report_211207.pdf), 2022-04-05).\n\nMany Syrians in Turkey continue to think about migration opportunities to third countries and use the Internet and social media for these purposes (see Jauhiainen, 2018). In their precarious contexts, mobility plans (including plans to migrate to other countries) remain important for many displaced Syrians who live in Turkey, at least as aspiration and imagination, even though realizing these goals is challenging. Of the respondents who planned to move to Europe, 92% used the Internet (69% daily), 87% used WhatsApp, and 70% used Facebook—a higher rate than among the respondents in general ([Research Gate](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/6e8bacea-0689-4a2b-aa07-8c0ad0f63a21), 2022-04-26).\n\nMigrants, asylum seekers, and refugees try to verify information on social media by reflecting on the content and their personal experiences, using trusted social ties and comparing various information sources, as our interviews revealed. Aware of the widespread usage of smart phones and social media, the Turkish government also uses these channels to issue warnings for Syrians. For example, in 2018, the Turkish migration authorities (DGMM) sent several text messages to displaced Syrians in Turkey warning about human smugglers (Government of Turkey, 2018) ([Research Gate](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/6e8bacea-0689-4a2b-aa07-8c0ad0f63a21), 2022-04-26).\n\nDuring our interviews and observations, many details appeared in terms of how social media and Internet use impacts Syrians in Turkey. For example, local public helpers use WhatsApp to disseminate information via the Syrian community leader in each neighbourhood: “When we tell them that there is an aid truck coming in couple of hours, they organize thousands of people in no time using their WhatsApp.” ([Research Gate](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/6e8bacea-0689-4a2b-aa07-8c0ad0f63a21), 2022-04-26).\n\nChapter 5: Process Indicators: 5.1. AWARENESS AND SENSITIZATION: Almost all respondents know how much they are entitled to receive (99.7%) and are aware of the date that they receive the assistance (99%). More than half (72%) state that their social network, including family, friends and neighbours, is their primary source of information about the programme, followed by social media (17%). Female-headed households use social media more than male headed households (19% and 6% respectively) and in case of a problem male-headed households consult with TRC staff and information desk more compared to female-headed households (63% and 49% respectively). 37 percent of the female-headed households state that they did not communicate with official channels in case of a problem ([United Nations High Commissioner for Refugees](https://data.unhcr.org/en/documents/download/97813), 2022-12-29).", + "style": { + "content": null + } + } + } + }, + { + "clientId": "random-client-id", + "row": 8, + "column": 1, + "width": 12, + "contentType": "TEXT", + "style": { + "background": null, + "border": null, + "padding": null + }, + "contentData": [], + "contentConfiguration": { + "text": { + "content": "#### Main Statement\nThe data reveals distinct patterns in how Syrian refugees access information on various health-related topics. For instance, when it comes to chronic diseases, television serves as a prominent source, with a notably higher percentage of women relying on this medium compared to men. This disparity underscores the importance of tailored communication strategies that account for gender-specific information preferences. Additionally, for communicable diseases, television and the internet emerge as primary sources of information, highlighting the significance of mass media in disseminating crucial health-related knowledge within this population. Interestingly, the study also highlights the role of formal education settings in providing comprehensive information about menstruation, supplementing what participants learn from their families. Overall, the findings emphasize the diverse sources and channels through which Syrian refugees seek and receive health-related information, underscoring the need for a multifaceted approach to information dissemination and education.\n#### Information Gaps\nInformation gaps among Syrian refugees in Turkey are evident in their health knowledge. While healthcare workers offer information in participants' native language, clarity hasn't significantly improved since 2018. There's a gender disparity in chronic disease information sources, with more women relying on TV. Limited menstrual information from family contrasts with detailed training in schools and centers. This highlights the need for comprehensive women's health education. Reliance on TV and the internet for mental health information suggests potential gaps in accessible mental health services. Bridging these gaps is vital for refugees' well-being and empowerment.\n#### My Analysis\nAccording to the result of z-test, percentage of getting information about chronic diseases from television is significantly higher among women (53,1%) compared to men (41,7%) (p<0,05) ([United Nations High Commissioner for Refugees](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/7b189e77-d441-49ea-93ac-20f250ab9e74), 2022-01-12).\n\n6. Information Sources About Communicable Diseases: While television (43.2%) is the primary source of information about the communicable diseases of Syrian Population under temporary protection, internet (40.9%) is in the second place. Other sources of information are the circle of friends (28.5%), physician (21.9%), print media such as newspaper, magazine (12.0%) and health officer (7.2%), respectively ([United Nations High Commissioner for Refugees](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/7b189e77-d441-49ea-93ac-20f250ab9e74), 2022-01-14).\n\nFGD participants reported that they received information from different sources. Apart from their mothers and close female relatives in the family, they said they were given information about menstruation and its management at schools and centers. However, the information that participants received from their mothers and other family members was mostly limited to the fact that menstruation was a normal process for women and that there were certain things that they could do or not to do. There was no mention of the biology of menstruation or its link to reproduction. However, they had received more detailed information in the school and center trainings, including information about menstrual materials available and how they could be used ([United Nations Population Fund](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/3a7e36cc-2500-4feb-b852-112e1d2bfcdc), 2022-12-05).\n\nINTRODUCTION: Strains on Syrians’ mobility are multifaceted and confirm multiple sources of what scholars call precarity (Baban et al. 2017). While legally they can return, Syria is still not safe for them. The Turkey-EU deal from 2016 actively constrains irregular migration to Europe. Turkish regulations governing temporary protection restrict also Syrians’ mobility within Turkey so that they can only receive public services in the city where they registered for the first time after entry. Since March 2020, the COVID-19 public health measures include inter-city travel restrictions and continue with timed lockdowns. These further constrain Syrians’ mobility even within neighbourhoods. Therefore, ICTs, the Internet, and social media constitute the only plausible channels for many to sustaining local to transnational connections in their everyday lives ([Research Gate](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/6e8bacea-0689-4a2b-aa07-8c0ad0f63a21), 2022-04-26).\n\n97,2% of the participants stated that they were informed clearly in their native language by healthcare workers. Proportion of those who find the information clear (97,2%) has increased compared to the year 2018. However, this increase is not statistically significant (p>0,05) ([United Nations High Commissioner for Refugees](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/7b189e77-d441-49ea-93ac-20f250ab9e74), 2022-01-18).\n\n5. Information Resources for Mental Illnesses: Television (44,2%) is the main resource where the participants get information about mental illnesses and it is followed by the internet (43,3%). Other information resources are Doctor (30,5%), social circle (21,5%), printed media like newspaper/magazine (14,2%) and paramedics (11,8%), respectively ([United Nations High Commissioner for Refugees](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/7b189e77-d441-49ea-93ac-20f250ab9e74), 2022-01-18).\n\nMoreover, compared to Q1 2021, importance of social media as information source overall grew by 33 percent especially in Adana although not being preferred by residents of Kahramanmaras and Yayladagi (Hatay) camps. Female-headed households use social media more than male headed households (29% and 21% respectively) and male-headed households consult TRC staff and information desk more compared to female-headed households (10% and 2% respectively) ([United Nations High Commissioner for Refugees](https://data.unhcr.org/en/documents/download/97812), 2022-12-28).", + "style": { + "content": null + } + } + } + }, + { + "clientId": "random-client-id", + "row": 9, + "column": 1, + "width": 12, + "contentType": "HEADING", + "style": { + "background": null, + "border": null, + "padding": null + }, + "contentData": [], + "contentConfiguration": { + "heading": { + "content": "Displacement", + "variant": "H2", + "style": { + "content": null + } + } + } + }, + { + "clientId": "random-client-id", + "row": 10, + "column": 1, + "width": 12, + "contentType": "TEXT", + "style": { + "background": null, + "border": null, + "padding": null + }, + "contentData": [], + "contentConfiguration": { + "text": { + "content": "#### Main Statement\nThe data highlights the significant presence of foreign nationals, particularly those seeking international protection, within Turkish territory. Syrians constitute the largest group, with millions granted temporary protection status. Additionally, there is a notable increase in apprehensions of irregular migrants by the Turkish Coast Guard in 2022, underscoring ongoing migration challenges. This diverse demographic landscape poses unique integration and protection challenges for both refugees and the host community.\n#### Information Gaps\nThe accounts of LGBTQ refugees in Turkey reveal a distressing reality of discrimination and threats, both within their communities and in interactions with migration authorities. Their experiences shed light on systemic issues, such as the mistreatment of LGBTQ individuals by clerks at migration agencies. Addressing these gaps requires targeted interventions to ensure the safety, dignity, and inclusion of LGBTQ refugees in Turkey.\n\nMoreover, the narratives of LGBTQ refugees from the Middle East underscore the intersectionality of their struggles, which encompass not only their sexual orientation but also experiences of war, family rejection, and social stigma. These intersecting challenges necessitate comprehensive support systems that recognize and address the complex layers of vulnerability faced by LGBTQ individuals in displacement.\n#### My Analysis\nAccording to PMM, there were 29,256* international protection applicants present in Türkiye in 2021, published annually. Moreover, according to UNHCR, there are close to 330,000 international protection status holders and asylum-seekers. Since March 2022 the number of Syrians residing in camps has decreased by 1,386 ([International Organization for Migration](https://reliefweb.int/attachments/3da61f69-79c3-478f-93e9-ea1c5ef4ed44/Q2_quarterly-Apr-May-Jun-22.pdf), 2022-07-22).\n\nAccording to Turkish Coast Guard (TCG) daily reports, TCG apprehended 12,580* irregular migrants at sea and registered three fatalities in the second quarter of 2022. During the reporting period, there has been an increase of 5,245 apprehended persons on sea by TCG compared to previous reporting period. The top ten nationalities of apprehended/rescued persons are Syrian, Afghan, Iraqi, Liberian, Congolese, Palestinian, Yemeni, Bengali, Eritrean** and Central African ([International Organization for Migration](https://reliefweb.int/attachments/3da61f69-79c3-478f-93e9-ea1c5ef4ed44/Q2_quarterly-Apr-May-Jun-22.pdf), 2022-07-22).\n\nAccording to the latest available figures from the Turkish Presidency of Migration Management (PMM), there are more than 5.1* million foreign nationals present in Turkish territory, 3.6* million of whom are seeking international protection. Most are Syrians (3,648,983* individuals) who are granted temporary protection status. In addition, international protection applicants from countries including Afghanistan, the Islamic Republic of Iran and Iraq constitute another group of foreign nationals ([International Organization for Migration](https://reliefweb.int/attachments/3da61f69-79c3-478f-93e9-ea1c5ef4ed44/Q2_quarterly-Apr-May-Jun-22.pdf), 2022-07-22).\n\nShe continued, “Things are especially hard for gay men and trans people. I have a gay friend who was threatened by a man at the cafe where he worked. He wouldn’t say what happened, but he wouldn’t go out for weeks and is still very frightened. We also have a trans friend, and when we go to the migration administration, the clerks there laugh at trans people. I’d like to go to university in one of Turkey’s smaller cities, but I hear that the migration agencies there mistreat refugees and LGBT+ people alike. So I’m scared to go ([Al-Monitor](https://www.al-monitor.com/originals/2022/07/life-lgbtq-refugee-turkey), 2022-08-03).\n\nM., a gay man from Damascus, recounted how his family banished him at the age of 13 because of his sexual orientation. Still, he managed to get a university degree in French literature and had just begun to feel that his life was coming back together when the war in Syria erupted. M. said he decided to flee to Turkey out of fear of persecution after an LGBTQ friend of his was caught by Islamist radicals and tortured into giving the names and whereabouts of fellow gays. He crossed to Turkey in early 2015 and rented a home in the border city of Antakya, which he kept open to fellow LGBTQ refugees from Syria ([Al-Monitor](https://www.al-monitor.com/originals/2022/07/life-lgbtq-refugee-turkey), 2022-08-03).\n\nOther push factors in the camps include the small size of containers for large families, which does not allow enough privacy especially for the girls in the households, and the inability to purchase household appliances in the containers, such as washing machines. Despite the fact that vaccination is voluntary, some beneficiaries claim that individuals who are not vaccinated find it difficult to enter and exit the camp. Residents of the camps who meet the ESSN criteria are considering leaving since the ESSN transfer value of 155 TRY is appealing ([World Food Programme](https://data.unhcr.org/en/documents/download/94073), 2022-07-07).\n\nFindings: Drawing from our interviews, we find that the political discourse built on the three major frames described above is important but ultimately insufficient to account for the complexity of people’s attitudes toward Syrian refugees. Figure 1 provides evidence for the salience of all three discursive frames and shows that a large majority of respondents with relatively positive attitudes toward Syrian refugees, at least in the early years of the crisis, primarily discuss humanitarian values, compassion, and the importance of hospitality, thereby referencing the humanitarian frame ([Comparative Politics](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/d33a607b-1983-4ab9-915d-cc66cd32f3aa), 2022-07-06).\n\nStruggles with social stigma, family rejection, war, migration and unemployment were intertwined in the stories of Middle Eastern LGBTQ refugees that Al-Monitor interviewed recently in Turkey, the country with the world’s largest refugee population. They all spoke on the condition that their names and other personal details be withheld ([Al-Monitor](https://www.al-monitor.com/originals/2022/07/life-lgbtq-refugee-turkey), 2022-08-03).\n\nSame-sex relationships may have never been criminalized in Turkey as in many other predominantly Muslim nations, but LGBTQ individuals continue to be seen as depraved or deviant by various social layers and sometimes by those responsible for enforcing the law. And with the alarming rise in anti-refugee sentiment in Turkey, LGBTQ refugees face multifold hardships with potentially dangerous consequences ([Al-Monitor](https://www.al-monitor.com/originals/2022/07/life-lgbtq-refugee-turkey), 2022-08-03).", + "style": { + "content": null + } + } + } + }, + { + "clientId": "random-client-id", + "row": 11, + "column": 1, + "width": 12, + "contentType": "TEXT", + "style": { + "background": null, + "border": null, + "padding": null + }, + "contentData": [], + "contentConfiguration": { + "text": { + "content": "#### Main Statement\nThe interviews reveal a complex interplay of sentiments among the host community in Turkey regarding Syrian refugees. While many express frustration and resentment towards refugees, perceiving them as arrogant and overly reliant on government benefits, there are also nuanced perspectives. Some respondents highlight cultural differences as a source of concern, while others view diversity as an opportunity for societal growth and progress. Shared religion, although expected to be a unifying factor, can also have polarizing effects. These findings underscore the multifaceted nature of attitudes toward refugees, influenced by cultural, economic, and social factors.\n#### Information Gaps\nThe interviews provide insight into the sentiments and concerns of the host community towards Syrian refugees. However, the data lacks a deeper exploration of the specific cultural differences and interactions that lead to these perceptions. Understanding the root causes of resentment and frustration would require a more comprehensive examination of the daily experiences and interactions between host communities and refugees. Additionally, the data could benefit from a broader representation of diverse voices within the host community to capture a wider range of attitudes and perspectives. A more detailed analysis of the impact of government policies and support systems on these attitudes would also provide valuable insights into potential areas for improvement in refugee integration efforts.\n#### My Analysis\nMore than half of the people we interviewed were resentful because they perceived that Syrian refugees had become arrogant and accustomed to receiving benefits from the Turkish government without necessarily giving back to society ([Comparative Politics](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/d33a607b-1983-4ab9-915d-cc66cd32f3aa), 2022-07-07).\n\nA grocer in Gaziantep explained that she did everything she possibly could for her Syrian neighbors: “We [she and her husband] gave them [Syrian neighbors] clothes, blankets, and unused furniture. We shared our food with them. But it has been a long time, and we are burned-out. We don’t have anything to give anymore. It will be best for everyone if they go back to their own country.” ([Comparative Politics](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/d33a607b-1983-4ab9-915d-cc66cd32f3aa), 2022-07-07).\n\nMany of the people we interviewed across all provinces felt that Syrian refugees are treated as if they were native citizens of Turkey, and Turks are downgraded to a status of second-class citizens in their home country, which they find to be unfair and disheartening ([Comparative Politics](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/d33a607b-1983-4ab9-915d-cc66cd32f3aa), 2022-07-07).\n\nSecond, despite the government’s emphasis on shared culture and history, more than half of our respondents believe that there are cultural differences between Syrians and Turkish people, which they see as a threat to Turkish values and traditions ([Comparative Politics](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/d33a607b-1983-4ab9-915d-cc66cd32f3aa), 2022-07-07).\n\nOur respondents are therefore frustrated because they believe that Syrian refugees fail to fulfill these expectations. There is a widespread perception that Syrian refugees do not respect the cultural sensitivities of the Turkish people nor make an effort to adjust to the way of life in Turkey ([Comparative Politics](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/d33a607b-1983-4ab9-915d-cc66cd32f3aa), 2022-07-07).\n\nA party affiliate in Gaziantep said: “They love to live at night, we don’t feel comfortable going to parks anymore because they are overcrowded with Syrian people who smoke nargiles [hookhas] and listen to loud music…they are too comfortable, you would not guess that these are the same people who experienced and ran away from war.” ([Comparative Politics](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/d33a607b-1983-4ab9-915d-cc66cd32f3aa), 2022-07-07).\n\nAnother participant in Hatay brought up the issue of polygamy and child brides: “…such conservative yet corrupt moral practices do not align with our social structure, and they will take us backward as a society.” A female shop-owner in Eskisehir, which as a city hosts far fewer refugees than other cities we visited, was also worried that down the road cultural differences between the two groups and intergroup marriages will harm Turkey ([Comparative Politics](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/d33a607b-1983-4ab9-915d-cc66cd32f3aa), 2022-07-07).\n\nAll of that said, not everyone is equally worried. About a third of our respondents did not raise any concerns over cultural incompatibility, with half of this group saying that diversity allows for societal growth, reflection, and progress ([Comparative Politics](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/d33a607b-1983-4ab9-915d-cc66cd32f3aa), 2022-07-07).\n\nShared Religion is Less Salient than Expected and Can Play a Polarizing Role as Well: Considering this, about a third of respondents refer to religious justifications while explaining their attitudes toward Syrian refugees. Among this group, nearly two-thirds think of shared religious identity as a positive attachment that unites different groups of people and fosters tolerance among them. For the remaining one-third, religion is considered to be more divisive than unifying and serves as a means to pronounce and amplify differences between Syrian and Turkish people ([Comparative Politics](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/d33a607b-1983-4ab9-915d-cc66cd32f3aa), 2022-07-07).", + "style": { + "content": null + } + } + } + }, + { + "clientId": "random-client-id", + "row": 12, + "column": 1, + "width": 12, + "contentType": "TEXT", + "style": { + "background": null, + "border": null, + "padding": null + }, + "contentData": [], + "contentConfiguration": { + "text": { + "content": "#### Main Statement\nThe data underscores the significance of various frames in shaping attitudes towards Syrian refugees in Turkey. Humanitarianism emerges as a prominent influence, reflecting the widespread acknowledgment of Turkey's cultural tradition of hospitality and compassion. However, this frame has its limits, as a sizable portion of respondents express concerns about potential exploitation of humanitarian values. Additionally, selectivity in compassion becomes apparent, with some respondents distinguishing between vulnerable groups within the Syrian refugee population. This nuanced perspective highlights the complex interplay between compassion and skepticism in shaping public sentiment.\n#### Information Gaps\nWhile the data provides valuable insights into the dominant frames influencing attitudes towards Syrian refugees, it could benefit from a deeper exploration of the factors contributing to the selective compassion observed among respondents. Understanding the specific criteria used to categorize different groups within the refugee population would offer a more comprehensive view of public sentiment. Additionally, the data could benefit from a qualitative analysis of individual narratives to uncover the underlying motivations and beliefs driving these attitudes. Furthermore, exploring regional variations in attitudes could provide a more nuanced understanding of how factors like proximity to refugee populations or economic conditions influence perceptions.\n#### My Analysis\nNext, but with considerably fewer respondents, were economic justifications, whereby people note the financial benefits and potential contributions of refugees to the domestic economy. Lastly, a relatively small number of respondents acknowledge religious affinity and shared religious identity while discussing their attitudes. In a predominantly Muslim country with a conservative government in power, it is notable that the religious frame is less prevalent in individuals’ self-narratives of attitude formation about refugees compared to humanitarian or economic considerations ([Comparative Politics](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/d33a607b-1983-4ab9-915d-cc66cd32f3aa), 2022-07-06).\n\nHumanitarianism Is a Positive Influence : Early, but Has Limits The humanitarian frame alludes to the Turkish culture of hospitality and humanitarian values intended to motivate people to help and protect vulnerable populations. Our interview data show that a large majority of respondents recognize the importance of humanitarian values, as well as the difference that compassion and charity could make in the lives of those affected by war. In fact, humanitarianism was one of the most frequently referenced frames: more than two-thirds of interviewees acknowledged the vulnerability of Syrian civilians against the backdrop of war and violence in their country and the importance of the humanitarian aid offered to Syrian refugees ([Comparative Politics](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/d33a607b-1983-4ab9-915d-cc66cd32f3aa), 2022-07-07).\n\nThe remaining one-third of respondents did not refer to the humanitarian frame at all, and when asked, they generally felt that humanitarianism can be open to exploitation. Their responses ranged from benign neglect to discriminatory remarks filled with outrage and xenophobic comments about Syrian refugees ([Comparative Politics](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/d33a607b-1983-4ab9-915d-cc66cd32f3aa), 2022-07-07).\n\nAdditionally, while one might think that advocates of humanitarianism would support the cause of all refugees, our interviews show that this is not the case. People are in fact selective with their compassion and sympathy. Our respondents believe that not all Syrian people are equally vulnerable and thus not similarly deserving of the sacrifices that Turkish society is making on their behalf. Some of the people we interviewed categorize Syrian women, children, and elderly differently than able-bodied Syrian men, who they believe could have stayed and fought for their country, and therefore refuse to acknowledge this latter group as vulnerable ([Comparative Politics](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/d33a607b-1983-4ab9-915d-cc66cd32f3aa), 2022-07-07).\n\nCompassion Fatigue Undermines the Positive Influence of Humanitarianism over Time: We see a widespread consensus among our respondents that Turkish people have done more than enough for Syrian refugees, fulfilled their humanitarian responsibilities, and at this point are not willing to provide more. There was also a shared perception that Syrians have been taking advantage of Turkish hospitality and respect for humanitarian values for an extended period, which produced frustration ([Comparative Politics](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/d33a607b-1983-4ab9-915d-cc66cd32f3aa), 2022-07-07).\n\nFor instance, one respondent argued that even Syrian women do not deserve immunity, since they can fight for their country: “We can help Syrian children. They can stay. But, we do not need to help Syrian men or women; they should be defending their country. We cannot accept them fiddling around when there is a war going on in their country. They have to go back.” ([Comparative Politics](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/d33a607b-1983-4ab9-915d-cc66cd32f3aa), 2022-07-07).", + "style": { + "content": null + } + } + } + }, + { + "clientId": "random-client-id", + "row": 13, + "column": 1, + "width": 12, + "contentType": "TEXT", + "style": { + "background": null, + "border": null, + "padding": null + }, + "contentData": [], + "contentConfiguration": { + "text": { + "content": "#### Main Statement\nThe narratives from Syrian refugees in Turkey highlight the complex dynamics they face, including economic challenges and social tensions with the local community. Many express concerns about lower wages and the resentment they encounter from locals, who perceive them as a threat to job security. This sentiment is exacerbated by political rhetoric linking economic difficulties to the presence of Syrian refugees. The data underscores the need for comprehensive policies and initiatives that address economic disparities and foster social cohesion between host communities and refugees.\n#### Information Gaps\nWhile the data provides valuable insights into the economic and social challenges faced by Syrian refugees in Turkey, it could benefit from a deeper exploration of the specific economic sectors where refugees are predominantly employed, and how this impacts their interactions with locals. Additionally, understanding the nuances of political discourse surrounding refugees and its influence on public sentiment would offer a more comprehensive view of the challenges they face. Furthermore, an examination of regional variations in economic opportunities and social integration could provide a more nuanced understanding of the refugee experience in different parts of Turkey.\n#### My Analysis\n\"Employers pay us less, so locals are annoyed, blaming us for accepting a wage less than theirs,\" she said, sitting next to her three young sons. \"Sometimes we hear from the locals that we should go back, that we have caused them to lose their jobs\" she said ([Al-Monitor](https://www.al-monitor.com/originals/2022/05/syrian-refugees-turkey-left-limbo), 2022-07-05).\n\nUNHCR supported the Syrians Barometer, an academic research study which measures the trends on perceptions of the host community and Syrian refugees towards each other. It offers the most comprehensive research conducted at a national scale and is widely used as a reference by a wide range of actors, including NGOs, state institutions and academia. One of the findings of the 2020 Syrians Barometer suggested that though there has been an increase in social distance between Syrians and the host community, particularly from the perspective of host community members, there is still a high level of social acceptance ([United Nations High Commissioner for Refugees](https://data.unhcr.org/en/documents/download/93928), 2022-06-30).\n\nTürkiye is home to the world’s largest refugee population, 3.6 million of whom are Syrian under temporary protection and over 330,000 are international protection beneficiaries or applicants ([United Nations High Commissioner for Refugees](https://data.unhcr.org/en/documents/download/93928), 2022-06-30).\n\nThe latest challenge for Syrian businessmen in Turkey has been political. Turkish politicians have seized on growing anti-refugee sentiment by blaming the economic disarray on Syrians. The amount of Turkish citizens who say Syrians need to definitely be sent back has quadrupled in three years and grown further in the current financial downturn ([Al-Monitor](https://www.al-monitor.com/originals/2022/06/syrians-adapt-tumultuous-turkish-environment), 2022-07-06).\n\nOur findings indicate that such processes can occur among members of both advantaged groups (e.g., Turks) and disadvantaged groups (e.g., Kurds) in reference to another disadvantaged secondary outgroup (e.g., Syrian refugees in Turkey). Moreover, we have observed that secondary transfer processes may involve positive and negative forms of intergroup contact that these groups have a conflict with each other. Taken together, these trends move us several steps forward in understanding the implications of intergroup contact between advantaged and disadvantaged groups for support for refugee rights ([WILEY](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/e105dfd2-a072-4e66-96f2-f215a8605bbd), 2022-07-06).\n\nFor instance, as our findings show, both Turks and Kurds have low levels of contact with Syrian refugees, likely due to the lack of Syrian refugees' Turkish language proficiency. It is, however, plausible that, over time, some Syrian refugees may acquire stronger Turkish language skills, and as their Turkish language proficiency improves, one would expect that contact between Syrian refugees and the Turkish and Kurdish host communities would increase as well ([WILEY](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/e105dfd2-a072-4e66-96f2-f215a8605bbd), 2022-07-06).\n\nIt is possible that Turks' and Kurds' prior interactions with Arabs living in Turkey could have somehow shaped their perceptions of Syrian refugees, even if these Arabs residing in Turkey are not necessarily of Syrian origin. Our study did not directly assess contact and attitudes toward other Arabs living in Turkey; however, future studies could examine secondary transfer processes involving Syrian refugees in relation to Turks' and Kurds' experiences with other Arabs residing in Turkey ([WILEY](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/e105dfd2-a072-4e66-96f2-f215a8605bbd), 2022-07-06).\n\nWe also observed that greater perceptions of threat from Syrian refugees negatively moderated the link between primary outgroup attitudes and secondary outgroup attitudes, that is, attitude generalization process ([WILEY](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/e105dfd2-a072-4e66-96f2-f215a8605bbd), 2022-07-06).\n\nTurks' and Kurds' contact with each other not only predicted their attitudes toward each other but indirectly predicted their attitudes toward Syrian refugees (as a secondary outgroup) and their support for the rights of Syrian refugees. Such patterns suggest that examination of secondary transfer processes could be usefully extended in future research to consider how intergroup contact might play direct and/or indirect roles in predicting political solidarity and inclinations to engage in collective action to benefit primary and secondary outgroups ([WILEY](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/e105dfd2-a072-4e66-96f2-f215a8605bbd), 2022-07-06).\n\nMoreover, most Kurds who live in urban areas speak Turkish as their first language. Kurdish children start and complete their education in the Turkish language, just like their Turkish peers do. Kurds are considered a native community of Turkish society, and two groups, at least in urban centres, maintain relatively non-violent low conflictual intergroup relations, at least in urban centres ([WILEY](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/e105dfd2-a072-4e66-96f2-f215a8605bbd), 2022-07-06).", + "style": { + "content": null + } + } + } + }, + { + "clientId": "random-client-id", + "row": 14, + "column": 1, + "width": 12, + "contentType": "TEXT", + "style": { + "background": null, + "border": null, + "padding": null + }, + "contentData": [], + "contentConfiguration": { + "text": { + "content": "#### Main Statement\nThe data highlights the evolving demographic landscape in Turkey, with a significant number of foreign nationals residing in the country. It's noteworthy that a substantial portion of them hold residence permits, indicating a degree of formalized stay. Additionally, the increase in irregular migrants apprehended at sea compared to the previous year underscores the ongoing challenges related to irregular migration in the region. The data also sheds light on the resettlement efforts, with several European countries being the primary destinations for resettled individuals. Moreover, the insights into social tensions between different population groups and their impact on peer interactions and social cohesion provide valuable context for understanding the dynamics between host and refugee communities.\n#### Information Gaps\nWhile the data provides a comprehensive overview of the foreign national population and migration trends, it would be beneficial to have a breakdown of nationalities and regions of origin for a more nuanced understanding of the composition of the foreign population in Turkey. Additionally, exploring the factors contributing to social tensions and peer bullying incidents could offer deeper insights into the challenges faced by both host and refugee communities. Furthermore, understanding the specific contexts and regions where social tensions are more pronounced would enable targeted interventions to enhance social cohesion and integration efforts.\n#### My Analysis\nNumber of Foreign Nationals Currently Living in Turkey; 1.414.776 Number of foreigners with residence permit; 320.068 Number of International Protection status holders ([United Nations High Commissioner for Refugees](https://data.unhcr.org/en/documents/download/93643), 2022-06-17).\n\nThe Turkish Coast Guard (TCG) recorded 4,680* irregular migrants and no fatalities in May 2022. Comparing to May 2021, there is an increase of 3,818 apprehended individuals, when 862 irregular migrants were recorded. These figures only include those apprehended and rescued by the TCG, while the actual number of migrants and refugees departing Türkiye by sea may be higher ([International Organization for Migration](https://reliefweb.int/attachments/67db77d3-4b9a-401a-b819-5a54555413c2/T%C3%BCrkiye_Compilation_06_June_22.pdf), 2022-06-13).\n\nAccording to PMM data released on 2 June 2022, there are 33,792 persons that have been resettled under this instrument, with primary resettlement destinations being Germany, France, the Netherlands and Sweden ([International Organization for Migration](https://reliefweb.int/attachments/67db77d3-4b9a-401a-b819-5a54555413c2/T%C3%BCrkiye_Compilation_06_June_22.pdf), 2022-06-13).\n\nTo specify, rural communities report slightly higher levels (7%) of social tension compared to respondents living in urban settings. The major difference, however, is identified in relation to population groups. Against the overall average of 32%, 65% of Iranians indicate they observe increases in social tension with communities ([United Nations High Commissioner for Refugees](https://data.unhcr.org/en/documents/download/93797), 2022-06-24).\n\nA significant portion of respondents indicate that they increasingly observe peer bullying between refugee and host community children and youth. To specify, 41% across groups confirm observing peer bullying, with, once again, Iranians reporting highest levels (49%) ([United Nations High Commissioner for Refugees](https://data.unhcr.org/en/documents/download/93797), 2022-06-24).\n\nSocial cohesion between refugee and host communities also remained unchanged compared to the previous Round. In this Round, 32% indicated that they observe increases in social tensions with host community members ([United Nations High Commissioner for Refugees](https://data.unhcr.org/en/documents/download/93797), 2022-06-24).", + "style": { + "content": null + } + } + } + }, + { + "clientId": "random-client-id", + "row": 15, + "column": 1, + "width": 12, + "contentType": "HEADING", + "style": { + "background": null, + "border": null, + "padding": null + }, + "contentData": [], + "contentConfiguration": { + "heading": { + "content": "Humanitarian Access", + "variant": "H2", + "style": { + "content": null + } + } + } + }, + { + "clientId": "random-client-id", + "row": 16, + "column": 1, + "width": 12, + "contentType": "TEXT", + "style": { + "background": null, + "border": null, + "padding": null + }, + "contentData": [], + "contentConfiguration": { + "text": { + "content": "#### Main Statement\nThe provided information underscores the persistent challenges faced by migrant seasonal agriculture workers and marginalized communities in Turkey. Accessing essential services like healthcare, education, and social assistance remains a significant hurdle for these vulnerable groups. This points to the need for targeted interventions and improved support mechanisms to ensure their well-being and integration into society.\n#### Information Gaps\nWhile efforts to fortify the Turkish-Syrian border are detailed, there's a lack of information regarding the impact of these measures on the communities residing in these border areas. Specifically, the potential effects on the livelihoods and living conditions of individuals and families in these regions remain unclear. Additionally, the effectiveness of the employed technologies like UAVs, drones, and thermal cameras in enhancing border security needs further evaluation.\n#### My Analysis\nMigrant seasonal agriculture workers and marginalized communities such as Doms, Abdals, and other nomadic or semi-nomadic groups who have sought refuge in Turkey frequently face challenges in accessing essential services like health, education, social assistance, and humanitarian aid ([GOAL](https://reliefweb.int/report/turkey/irish-aid-agency-goal-receives-eu-funding-expand-its-support-programme-refugee), 2021-06-28).\n\nVan Governor Mehmet Emin Bilmez told Anadolu Agency that the efforts to build a wall, a new optical tower, and a police station, as well as the trench digging and razor wire drawing activities are underway along the border.\"Since last year, 104 lego and monoblock towers have been built. The construction of two outposts is ongoing. 175 kilometers (108 miles) of the trench has been dug. A 64-kilometer (39-mile) wall is being built in three stages. Currently, the installation of the 20-kilometer wall has been completed. From now on, the installation work on the borderline will continue at a faster pace,\" Bilmez said. UAVs, drones, and thermal cameras are also used to ensure border security, Bilmez added ([Anadolu Agency](https://www.aa.com.tr/en/turkey/turkey-continues-to-strengthen-its-borderlines-to-prevent-illegal-crossings/2385425), 2022-04-19).\n\nCompared with adult population in Syria and Turkey, a larger share of displaced Syrians in Turkey became Internet users or more frequent Internet users. In 2018, the share of the Internet users among the survey respondents was 90%, while it was approximately 36% among the Syrian adult population in Syria and 71% among the adult population in Turkey (International Telecommunication Union, 2019). Already before fleeing, the share of Internet users among the respondents was substantially higher (78%) than of those who remained in Syria ([Research Gate](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/6e8bacea-0689-4a2b-aa07-8c0ad0f63a21), 2022-04-26).\n\nAfghans and Iranians have the least access relative to other populations, 59% of Afghans and Iranians state that they do not receive assistance. According to the Intersectoral Vulnerability Survey (IFRC/TRC, 2021), the primary source of income for the ESSN eligible population is the ESSN cash assistance, followed by unskilled/semi-skilled labour and remittances ([United Nations High Commissioner for Refugees](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/16060353-8345-4c6a-a984-b09e7147db9f), 2022-11-02).\n\nFurther, partners observed enhanced challenges in terms of timely follow-up by statutory services of referrals made via their organizations. However, in 2021, public institutions and local authorities continued to deliver in person services, and sector partners shifted from remote service delivery increasingly towards hybrid service delivery modalities (i.e. in person and remote) ([United Nations High Commissioner for Refugees](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/1a231d30-346a-4c90-ba6a-7a24e67a005f), 2022-10-12).\n\nIn addition to ESSN, registration seems to be more difficult to reach for Iraqis (12% higher than overall) as well as PDoFSS services (5% higher). Iranians seem to be at more disadvantage in accessing Government hotlines (12% higher than overall), UN agencies (11% higher), SASFs (8% higher) and data updates (5%). Lastly, Afghans were identified to face slightly more difficulties in reaching NGO services, for which respondents indicated reasons such as closure of services, lack of/inadequate translation services, and lack of information on service providers ([United Nations High Commissioner for Refugees](https://data.unhcr.org/en/documents/download/93797), 2022-06-22).\n\nThe current cross-border authorization will expire in six months — at the peak of winter — if the Security Council does not grant an additional extension. Efforts are under way to increase the delivery of cross-line aid from Syria, but at present such deliveries cannot replace the scope and scale of the cross-border operation ([United Nations Office for the Coordination of Humanitarian Affairs](https://reliefweb.int/attachments/bed1ff72-6db2-4a9c-8b34-4b9b1a681816/Press%20release%3B%20ASG%20mission%20to%20Tu%CC%88rkiye.pdf), 2022-09-08).", + "style": { + "content": null + } + } + } + }, + { + "clientId": "random-client-id", + "row": 17, + "column": 1, + "width": 12, + "contentType": "TEXT", + "style": { + "background": null, + "border": null, + "padding": null + }, + "contentData": [], + "contentConfiguration": { + "text": { + "content": "#### Main Statement\nFollowing the attempted coup in 2016, Turkey implemented restrictions on (I)NGOs and refugees, affecting their operations and movement. This had significant implications for international and national organizations involved in refugee response efforts. While some programs faced delays and challenges, major Facility initiatives working with government intermediaries were able to resume activities with relatively less hindrance.\n#### Information Gaps\nThe impact of post-coup restrictions on specific aspects of refugee support, such as education access and essential services, requires further assessment. Understanding the reasons behind limited Red Crescent Card distribution among seasonal migrant agricultural workers is crucial for more inclusive assistance programs. Additionally, exploring the challenges faced by nomadic and semi-nomadic communities in accessing essential services can inform more effective outreach strategies.\n#### My Analysis\nFollowing the attempted coup of July 2016, a number of restrictions were placed on (I)NGOs and refugees. As a result, some international and national organisations were no longer able to work in the refugee response. In 2018, refugee registration in Istanbul and Hatay was effectively suspended, as were some inter-provincial transfers, especially in Istanbul129. Previously loosely applied regulations on household outreach and on the collection of personal data on refugees, and more recently, local decisions to remove refugees who are outside their provinces of registration, were tightened130. The Facility was able to move resources around to adapt to the new government policy ([European Commission's Directorate-General for European Civil Protection and Humanitarian Aid Operations](https://reliefweb.int/sites/reliefweb.int/files/resources/strategic_mid-term_evaluation_main_report.pdf), 2021-07-20).\n\nA significant consequence of the attempted coup has been that the Government has constrained the operating space of international organisations and NGOs. The Government issued a decree following the coup that withdrew the operating permits for several national and international organisations, resulting in the immediate freeze of activities and abrogated contracts. Protection and health NGOs were particularly affected by these measures, including many DG ECHO partners. However, the major structural Facility programmes that worked primarily with government intermediaries (ESSN, CCTE, SIHHAT, PICTES, DGMM/verification, etc.) were able to resume activities with little hindrance after brief delays ([European Commission's Directorate-General for European Civil Protection and Humanitarian Aid Operations](https://reliefweb.int/sites/reliefweb.int/files/resources/strategic_mid-term_evaluation_main_report.pdf), 2021-07-13).\n\nWhen the refugees began crossing the Turkish border in 2011-2012, the media initially covered the issue from a supportive, humanitarian perspective. Aid to Syrian refugees has been affected – and sometimes exploited – in political struggles between Turkey’s governing Justice and Development Party (AKP) and CHP, which has called for a diplomatic solution to the Syrian conflict. As a result, the refugee issue has polarized Turkey’s population and political parties since 2015 (Ahmadoun, 2014). During 2015 and 2016, after failing the Turkey-EU deal and the possibility to give Turkish citizenship to Syrian refugees, their access to higher education became the main theme. This deal and President Erdoğan’s statement in a refugee camp on July 2nd, 2016, offering citizenship created an unsustainable naturalization policy (Atasü-Topçuoğlu, 2018) or ‘moral panic’ (Cohen, 1973) within society, which created an ‘us versus them’ perception that fuelled negative media framing and hostile public attitudes against the refugees.i ([Hungarian Communication Studies Association](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/43cb54d9-c2e0-413d-8e69-f59dadfcc03c), 2021-09-14).\n\nMost of the services are provided at city centres, in buildings and offices distant to the settlement places of the target group, with people expected to travel from their homes to these centres. The location of these centres, far from the target group in physical or cultural terms, is a factor restricting access ([GOAL](https://www.ka.org.tr/dosyalar/file/Yayinlar/Baris%20Kalkinma/Unseen-Lives-on-Migration-Routes-Current-Situation-and-Needs-Analysis.pdf), 2021-11-10).\n\nOf 20 persons with whom in-depth interviews were conducted, only 7 had Red Crescent Cards while the remaining 13 had no card and no assistance. It is stated that at least half of seasonal migrant agricultural workers on Adana Plain have no Red Crescent Card. It is further stated that access to ESSN remains limited for various reasons including the absence of proper residence address, failing to meet the eligibility criteria together with others living in the same house, not being found at home when they are checked by authorities in relation to 15 days long permission to leave the province, etc ([GOAL](https://www.ka.org.tr/dosyalar/file/Yayinlar/Baris%20Kalkinma/Unseen-Lives-on-Migration-Routes-Current-Situation-and-Needs-Analysis.pdf), 2021-11-10).\n\nIt appears that the main reason why aid organizations active in the field do not directly target this group is the difficulty in access. During interviews with local actors, when their opinion was asked on why the majority of the target group is far from having their essential needs met in spite of the many activities carried out in the field, they said the main reason is the pressure for target attainment in project-based activities ([GOAL](https://www.ka.org.tr/dosyalar/file/Yayinlar/Baris%20Kalkinma/Unseen-Lives-on-Migration-Routes-Current-Situation-and-Needs-Analysis.pdf), 2021-11-10).\n\nIn other words, with the exception of health issue, people do not or cannot travel for activities taking place in distant locations, including their children’s education. This point must be borne in mind where there is the question of services offered at town centres or places distant to settlements. Nomadic and semi-nomadic people usually settle at the margins of areas, whereas public or private actors extending services in protection, education, health, cash transfers and means of subsistence often operate in urban centres ([GOAL](https://www.ka.org.tr/dosyalar/file/Yayinlar/Baris%20Kalkinma/Unseen-Lives-on-Migration-Routes-Current-Situation-and-Needs-Analysis.pdf), 2021-11-09).", + "style": { + "content": null + } + } + } + }, + { + "clientId": "random-client-id", + "row": 18, + "column": 1, + "width": 12, + "contentType": "TEXT", + "style": { + "background": null, + "border": null, + "padding": null + }, + "contentData": [], + "contentConfiguration": { + "text": { + "content": "#### Main Statement\nThe construction of a wall along the Iranian border in the province of Van illustrates Turkey's efforts to manage refugee influxes. This physical barrier is aimed at regulating the movement of refugees, highlighting the evolving strategies employed by the Turkish government.\n#### Information Gaps\nUnderstanding the specific challenges faced by Syrian Nomadic and Semi-Nomadic communities in accessing aid is crucial for targeted support. Further research is needed to assess the impact of barriers, such as trust issues and limited NGO presence, on the outreach efforts to these groups. Additionally, investigating the reasons behind the low utilization of mental health services among refugees, despite evident emotional/behavioral issues, can inform more effective mental health support programs.\n#### My Analysis\nTurkey is building a wall along a 64-km stretch of the Iranian border in the eastern province of Van, where many of the refugees cross ([Duvar English](https://www.duvarenglish.com/isbank-founded-with-money-sent-by-afghans-pakistanis-turkish-minister-soylu-news-58337), 2021-08-17).\n\nNevertheless, it can be argued that Syrian Nomadic and Semi-Nomadic communities are accessing non-governmental organizations much less often than other refugee groups in Turkey due to few main reasons. Firstly, as discussed before, the target group is quite untrustful against unknown persons and institutions. It is hard for them to trust strangers without any reference. So, it may be difficult for organizations to approach these groups ([GOAL](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/21c4878b-1d76-4f01-b4ab-e3e5f4f512d8), 2021-07-05).\n\nNon-governmental organizations in South East of Turkey are mostly concentrated on city centres. Thus, as a huge gap, most of non-governmental organizations in the region are not quite aware of the existence of Syrian Nomadic and Semi-Nomadic communities and their particular problems ([GOAL](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/21c4878b-1d76-4f01-b4ab-e3e5f4f512d8), 2021-10-26).\n\nIn total, 249 respondents (15%) screened positive for either\nPTSD, depression or anxiety in our survey and self-reported emotional/behavioural problems\nsince arriving in Sultanbeyli. The treatment gap (the proportion of these 249 people who did\nnot seek care) was 89% for PTSD, 90% for anxiety and 88% for depression. Several structural\nand attitudinal barriers for not seeking care were reported, including the cost of mental health\ncare, the belief that time would improve symptoms, fear of being stigmatised and lack of\nknowledge on where and how to get help. Some negative attitudes towards people with mental\nhealth problems were reported by respondents ([Epidemiology and Psychiatric Sciences](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/6d3798b8-681f-43ce-9443-4b61a6b89180), 2021-02-19).\n\nAlthough, thanks to the said-decree, persons lacking social security coverage were also introduced to this scheme and migrants still experience challenges in accessing face masks. For instance, just like Turkish citizens, they also couldn’t benefit from free face mask distributions at pharmacies due to various obstacles regarding access. As problems have grown more complex, the government later announced the ban on the sale of face masks would be lifted as of May 4th, 2020 ([Heinrich Boell Foundation](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/02014c6c-e672-44bd-aa6f-c3665f6adebe), 2021-07-27).\n\nWhile the COVID-19 pandemic had significant impact on communities in terms of increased needs, it also significantly affected the operational capacity of service providers To deliver services in a safe manner and in line with COVID-19 prevention measures, service providers were required to make changes to their programmes on outreach, methodologies in identification, and face-toface service delivery, while focusing on the delivery of remote services ([United Nations High Commissioner for Refugees, United Nations Development Programme](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/214e784e-8e6b-45e6-bc2d-f3de45ac7222), 2021-12-15).\n\nTreatment gap and barriers to seeking care In total, 249 respondents (15%) screened positive for either symptoms of PTSD, depression or anxiety in our survey, and also selfreported emotional/behavioural problems since arriving in Sultanbeyli. Out of those 249 respondents, only 22 respondents (9%) sought care, and 219 respondents did not (88%). The treatment gap (i.e. the proportion of people that did not seek care) was similar for all three disorders: 89% for PTSD, 90% for anxiety and 88% for depression. The reasons for not seeking care are given in Fig. 1. Over half of the respondents wanted to handle the behavioural problem they were facing on their own, were concerned about the cost of health care or believed that time would improve symptoms. A large proportion of the respondents (n = 102, 47%) were also unsure which service they should attend and did not know where and how to get help. Around one-quarter of participants (n = 60, 27%) did not believe that treatment would improve symptoms, and were concerned about opportunity costs and time spent on treatment. Embarrassment to seek treatment (n = 51, 23%) and the concern about what other people would think were also named as reasons for not seeking care. A small proportion of participants (n = 22, 10%) mentioned unavailability of appointments, lack of medication and the fear of being put into hospital against their own will as reasons for not seeking care. Out of the 22 respondents who sought care, 12 (55%) did not complete the full course of treatment. Respondents tended to discontinue treatment due to a desire to handle the problem on their own, and mentioned structural barriers hindering them to continuing treatment like lack of time, transportation and problems with the treatment schedule ([Epidemiology and Psychiatric Sciences](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/6d3798b8-681f-43ce-9443-4b61a6b89180), 2021-02-19).\n\nHowever, beneficiaries and implementers reported a number of barriers to accessing the SDA top-up. They relate mostly to the DHR, its cost, translation of the documents, language barriers, limited hospital capacities and long appointment periods, the appeal process, DHR expiry dates and incomplete reports. As for the cost of the DHR, the 200TL fee was not reported in KIIs as the main financial barrier. The associated indirect costs, such as travel costs and expenses related to making and keeping a number of doctors’ appointments, could be much higher. There were also cases cited where applicants were referred to an expert in another hospital, where they had to pay again ([Oxford Policy Management](https://cash-hub.org/wp-content/uploads/sites/3/2021/07/202002-ESSN-Mid-Term-Review-2018-19_WFP-et-al_EXTERNAL.pdf), 2021-10-21).", + "style": { + "content": null + } + } + } + }, + { + "clientId": "random-client-id", + "row": 19, + "column": 1, + "width": 12, + "contentType": "TEXT", + "style": { + "background": null, + "border": null, + "padding": null + }, + "contentData": [], + "contentConfiguration": { + "text": { + "content": "#### Main Statement\nThe coordination challenges among organizations and bureaucratic procedures hinder swift responses, even in planned situations. This underscores the need for improved inter-organizational cooperation and streamlined internal processes for more effective assistance delivery.\n#### Information Gaps\nDetailed research on the specific bureaucratic hurdles and hierarchical structures within organizations is needed to pinpoint areas where coordination can be enhanced.\n\nA comprehensive assessment of the economic sectors and working conditions of Syrians in Turkey, especially in textile, construction, and agriculture, would shed light on the extent of economic exploitation and informal labor practices.\n\nFurther investigation into the experiences and needs of marginalized groups, particularly LGBTI individuals, during emergencies is crucial for developing targeted support mechanisms and improving their access to rights and services.\n\nA detailed analysis of policy changes over time in both Turkey and Syria, particularly those impacting refugees' rights to work, would provide insights into shifts in governmental approaches and their implications for refugees' livelihoods.\n#### My Analysis\nPoor coordination between organizations and hierarchical procedures in the internal\nbureaucracy of each organization prevents quick action, even during planned situations that\nrequire a quick response ([International Blue Crescent Relief and Development Foundation, The Research Centre On Asylum And Migration](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/d853aa13-5348-4483-96b6-c4af103c1a60), 2020-08-19).\n\nInsufficient coordination between organizations results in a duplication of support being\ndelivered by different organizations to the same refugees ([International Blue Crescent Relief and Development Foundation, The Research Centre On Asylum And Migration](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/d853aa13-5348-4483-96b6-c4af103c1a60), 2020-08-19).\n\nSyrians face significant legal barriers to accessing formal employment – Employing a Syrian\nunder TP incurs administrative and financial burdens, leading small- and medium-sized enterprises\n(SMEs) to default to informal labor. Existing rules under the 2016 Regulation on work permits\nlegally limits TP beneficiaries to a quota of 10 percent of total staff at a workplace. Additionally, a\ngeographical limitation means that work permit issuance is restricted to cities in which Syrians were\nregistered upon arrival in Turkey, presenting a big hurdle for many who seek more employment\nopportunities in different parts of the country ([The Research Centre On Asylum And Migration](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/1437d97a-e5c7-48a9-91ad-edc7f4e273fd), 2020-08-19).\n\nEconomic precariousness and financial pressures are hurdles to self-reliance – Many Syrians\nare at risk of economic exploitation, being paid below the minimum wage on an irregular basis or\nsometimes not at all. Moreover, the economic sectors that Syrians are mostly engaged in, such as\nthe textile, construction and agricultural sectors, were already prone to informality before Syrians’\narrival in Turkey. A major expense for Syrian families is rent, which is not covered or supported by\nthe TP regime, unlike healthcare and education costs. With almost half of Syrian households in\nTurkey considered poor, rent costs contribute to socio-economic precarity, leading many to live in\novercrowded flats and makeshift arrangements ([The Research Centre On Asylum And Migration](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/1437d97a-e5c7-48a9-91ad-edc7f4e273fd), 2020-08-19).\n\nProcesses for obtaining emergency support from governmental institutions for LGBTI\nindividuals who are marginalized by the community due to their sexual orientation and gender\nidentity to be directed to safe areas in emergencies need to be accelerated. Internal\nbureaucracies of governmental institutions and different practices make it more difficult for\nmarginalized individuals to have access to rights and services. According to observations of\norganizations working in the field, marginalized groups prefer to contact and request\nprotection from non-governmental organization rather than governmental institutions in\nemergencies. Lack of a certain standard in the field regarding access to rights and services\ncauses marginalized refugees to be passed back and forth between different governmental\ninstitutions and non-governmental organizations ([International Blue Crescent Relief and Development Foundation, The Research Centre On Asylum And Migration](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/d853aa13-5348-4483-96b6-c4af103c1a60), 2020-08-19).\n\nBoth countries have policies that affect the delivery of assistance to refugees and the ability of refugees to transition from humanitarian assistance. While Turkey was initially permissive on refugee rights to work in Turkey, that has changed over time ([United States Agency for International Development](https://reliefweb.int/sites/reliefweb.int/files/resources/pa00t2bz.pdf), 2020-07-13).\n\nt the Syrian Economic Forum (SEF),\na think-tank focused on rebuilding post-war Syria, has established a small special zone in Gaziantep\nwhere firms can formally employ Syrians outside the regular quota limit. Further, 85% of the produced\nexport goods within this zone are tax-free when exported from Turkey. Here, Syrians can acquire formal\nwork permits without interfering with the employment structure of Turkish citizens, thus eliminating\nthe political costs and the need for quotas. This means that Syrians can access economic opportunities\nmore freely, with the potential for escaping the ‘position of limbo’ where some citizenship rights are\ngranted but in many ways the legal environment remains restrictive (Baban, Ilcan and Rygiel, 2016) ([Journal of Turkish Social Sciences Research](https://alpha-report-module.dev.thedeep.io/permalink/leads-uuid/02442a8c-1f27-4acf-ab2f-c448031d3e62), 2021-01-17).", + "style": { + "content": null + } + } + } + }, + { + "clientId": "random-client-id", + "row": 20, + "column": 1, + "width": 12, + "contentType": "TEXT", + "style": { + "background": null, + "border": null, + "padding": null + }, + "contentData": [], + "contentConfiguration": { + "text": { + "content": "#### Main Statement\nThe Turkish Red Crescent's response to the Syrian crisis has evolved over time, from initially providing hot meals in temporary accommodation centers to introducing the KIZILAYKART debit card system. This transition was driven by the need to better cater to the cultural preferences of Syrian refugees while minimizing food waste and logistical costs. The implementation of targeted programs both within and outside refugee camps further reflects an adaptive approach to addressing the evolving needs of displaced populations.\n#### Information Gaps\nDetailed insights into the cultural considerations and preferences that influenced the shift from hot meal distribution to the KIZILAYKART debit card system would provide a deeper understanding of the decision-making process.\n\nComprehensive data on the effectiveness and impact of the KIZILAYKART system, including its acceptance among Syrian refugees and its role in enhancing their self-reliance, would be valuable for program evaluation.\n\nFurther research on the challenges faced by municipalities in providing services to refugee and migrant populations, especially in terms of legal frameworks and budget allocations, is necessary for informed policy-making.\n\nA thorough assessment of the Livelihoods Sector's support for Syrians under Temporary Protection and host community members, including outcomes related to job placement and income generation, would help gauge the program's effectiveness in enhancing social cohesion.\n#### My Analysis\nTurkish Red Crescent has been providing cash assistance to\nTurkish citizens for a long time. Turkish Red Crescent\nstarted implementing cash assistance to Turkish citizens through\na debit card model, KIZILAYKART in 2011. Due to the internal\nconflicts which began in Syria, 11 million people have been\nforced to leave their country since 2011. Turkish\nRed Crescent responded to the 'Syrian Crisis Humanitarian Aid\nOperation' on April 29, 2011. At the first stage of\nthe operation, hot meal was provided to\ntemporary accommodation centers for foreigners who\nhad to leave their country as they were affected by the war ([Turkish Red Cresent](https://reliefweb.int/sites/reliefweb.int/files/resources/KIZILAYKART%20CBI%2C%20Monthly%20Summary%20Report.pdf), 2020-07-15).\n\nTo the south of the U.N.-patrolled Green Line separating the two halves of the island, the Greek Cypriot Administration announced nine new cases of COVID-19, with one person dying of the virus. The total number of cases there has risen to 804, while the total number of deaths has come to 14. Greek Cypriot authorities on Friday also extended a ban on commercial air traffic until May 17 to curb the spread of coronavirus ([Daily Sabah](https://www.dailysabah.com/turkey/turkish-cyprus-reports-no-covid-19-cases-in-week/news), 2020-05-15).\n\nTurkey lastly has imposed a four-day curfew that ended after Sunday midnight to curb the pandemic. Although people largely follow advice to keep social distancing and stay at home, authorities had to declare curfews over the past weeks as people tend to go out more especially over the weekend as temperatures rise. As the latest curfew exclusive to big cities ended, crowds were back on the streets again with traffic seeing a rise again ([Daily Sabah](https://www.dailysabah.com/turkey/covid-19-cases-drop-further-in-turkey-while-plasma-therapy-gets-results/news), 2020-05-18).\n\nThe first challenge facing municipalities affected by the Syria crisis is the ambiguity of the legal framework concerning whether they are entitled to provide services to refugee and migrant populations or only to citizens.The second challenge is that municipal budgets predominantly come from transfers from central government, the amounts of which are indexed to the Turkish population only. Hence municipalities hosting refugees do not receive additional income to cater for the additional population in need of their services ([United Nations Development Programme](https://reliefweb.int/sites/reliefweb.int/files/resources/Strenghtening%20Municipal%20Resilience.pdf), 2020-06-04).\n\nTurkish officials have made great efforts to completely erase all traces of terrorism, strengthen security, ease civilians' return home and bring a sense of normality to the region. Ammunition and artillery belonging to the terror group were found and destroyed. Furthermore, work is ongoing to detect and destroy mines and other explosive devices planted by the terrorists ([Daily Sabah](https://www.dailysabah.com/politics/ypgpkk-mine-explosion-kills-1-civilian-in-syrias-afrin/news), 2020-04-20).\n\nA weekend curfew was declared Friday in 31 mainly urban provinces. The country’s coronavirus death toll on Monday rose to 1,296 with 98 new deaths and 511 recoveries in 24 hours, Health Minister Fahrettin Koca announced ([Daily Sabah](https://www.dailysabah.com/politics/turkey-to-reimpose-curfew-next-weekend-erdogan-announces/news), 2020-05-13).\n\nSince January 2018 Livelihoods Sector partners have supported 66,867 bene\u001fciaries from the Syrians under Temporary Protection and host community members. Of these, the majority (50,722 Syrian refugees) have been bene\u001ftted from training activities such as language, skills and vocational training. In addition, 2,159 Syrian refugees and host population have been supported by income generation activities through job placement, self employment and cash for work (CfW) programme mainly in the provinces of South East region where the population of Syrian refugees are highest. The livelihoods activities help to enhance social cohesion in these areas as well ([United Nations High Commissioner for Refugees](https://reliefweb.int/sites/reliefweb.int/files/resources/67616_0.pdf), 2020-05-27).\n\nThe ban, first introduced on March 21 and extended by following decrees ever since, will now extend from April 30 to May 17, Transport Minister Yiannis Karousos said in a tweet, citing a cabinet decision. Cargo and humanitarian flights, as well as repatriation flights to and from the Mediterranean island, are exempt. Greek Cyprus has imposed restrictions on movement, including a night curfew and allowing people to leave their homes only once a day with a special permit ([Daily Sabah](https://www.dailysabah.com/turkey/turkish-cyprus-reports-no-covid-19-cases-in-week/news), 2020-05-15).\n\nIn the first instance, despite the fact that the emergency food supply provided meets the needs of foreigners, KIZILAYKART Platform has been established as an alternative to hot meal distribution as it did not comply with the local taste and cultural habits of the Syrian people. Therefore the practice of hot-meal distribution caused considerable food waste as well as logistics costs. The pilot implementation of the KIZILAYKART started by the beginning of the Syrian Crisis for Syrians residing in Kilis-Öncüpınar temporary accommodation center. In October 2012, Turkish Red Crescent started the In-Camp Programme in cooperation with the United Nations World Food Programme. In 2015, the foreigners living outside the camps were targeted with the Off-Camp Programme as a transitional programme towards a more comprehensive approach ([Turkish Red Cresent](https://reliefweb.int/sites/reliefweb.int/files/resources/KIZILAYKART%20CBI%2C%20Monthly%20Summary%20Report.pdf), 2020-07-15).", + "style": { + "content": null + } + } + } + }, + { + "clientId": "random-client-id", + "row": 21, + "column": 1, + "width": 12, + "contentType": "HEADING", + "style": { + "background": null, + "border": null, + "padding": null + }, + "contentData": [], + "contentConfiguration": { + "heading": { + "content": "Context", + "variant": "H2", + "style": { + "content": null + } + } + } + }, + { + "clientId": "random-client-id", + "row": 22, + "column": 1, + "width": 12, + "contentType": "TEXT", + "style": { + "background": null, + "border": null, + "padding": null + }, + "contentData": [], + "contentConfiguration": { + "text": { + "content": "#### Main Statement\nThe provided information highlights ongoing tensions between Greece and Turkey over migration issues, with allegations of pushbacks at sea. It also touches on the role of Frontex in these incidents. While the report sheds light on these complex geopolitical dynamics, it lacks specific details on individual cases and the extent of Frontex's involvement. Moreover, the potential consequences and diplomatic implications of these allegations are not fully explored. Additionally, the report touches on the potential impact of upcoming elections in Turkey on its foreign policy decisions, particularly regarding Syrian refugees. However, a deeper analysis of the broader political landscape, including the positions of various political parties and potential shifts in policy, would provide a more comprehensive understanding of the situation. Despite these gaps, it is evident that the handling of migration remains a significant point of contention between Greece and Turkey, with far-reaching implications for the region.\n#### Information Gaps\nThe provided information lacks specific details about the alleged pushback incidents at sea and Frontex's involvement, such as individual cases, dates, and precise locations. This makes it challenging to assess the gravity of the situation and verify the claims. Additionally, the report does not delve into the potential consequences of these allegations, both in terms of diplomatic relations and legal repercussions for the agencies involved. Furthermore, while the upcoming elections in Turkey and potential policy shifts regarding Syrian refugees are mentioned, a deeper analysis of the political landscape and the stances of various parties would provide valuable context. Lastly, a broader geopolitical overview, beyond the mention of NATO membership and historical rivalries, would enhance comprehension of the regional dynamics influencing these events. Addressing these information gaps is crucial for a more comprehensive and nuanced understanding of the complex issues surrounding migration, pushbacks, and foreign policy in the region.\n#### My Analysis\nAthens has repeatedly denied accusations by rights groups and United Nations refugee agency UNHCR that it pushes migrants out of Greek waters, saying it intercepts boats at sea to protect its borders. Greece was the frontline of Europe's migration crisis in 2015 and 2016 when around a million refugees fleeing war and poverty in Syria, Iraq and Afghanistan arrived, mainly via Turkey. The number of arrivals has fallen sharply since then ([Reuters - Thomson Reuters Foundation](https://www.reuters.com/world/middle-east/turkey-says-greece-pushed-migrant-boat-back-into-turkish-waters-2022-07-25/), 2022-08-03).\n\nTurkey on Monday accused Greece of pushing a boat carrying migrants out of Greek territorial waters and back into Turkish ones. The defense ministry in Ankara said the incident occurred on Sunday near Rhodes, and posted drone footage on social media that it said showed the coast guard pulling the boat into Turkish waters near the southwestern resort of Marmaris ([Reuters - Thomson Reuters Foundation](https://www.reuters.com/world/middle-east/turkey-says-greece-pushed-migrant-boat-back-into-turkish-waters-2022-07-25/), 2022-08-03).\n\nThe border protection agency Frontex allegedly cooperated with Greece in pushing asylum seekers back into Turkish territorial waters. Media outlets Le Monde, Lighthouse Reports and Der Spiegel have uncovered the report of the EU's Anti-Corruption Office (OLAF) investigation into Frontex's collaboration with Greece.The report said Frontex had covered up Greece's pushbacks and deliberately lied to the EU parliament about it. Frontex officials reportedly did not report the actions in order to avoid a backlash from the Greek authorities, even when they witnessed the illegal pushbacks. \"The incidents were not reported through official channels because Frontex-appointed personnel feared a response from the Greek authorities,\" the report said ([haberglobal](https://haberglobal.com.tr/gundem/frontexin-siginmacilarin-turk-karasularina-geri-itilmesinde-yunanistan-ile-is-birligi-yaptigi-iddia-ediliyor-191572), 2022-08-05).\n\nOne thing that could change the calculus in Ankara is if the opposition capitalises on Erdoğan’s waning popularity to clinch victory in the upcoming elections. Most Turkish parties share the president’s concerns about Kurdish militias but criticise his decision to back the Syrian rebels. All the large parties have said that, if they win power, they would re-establish relations with Damascus, a move they say would be a prelude to sending Syrians home ([Financial Times](https://www.ft.com/content/a14241de-8dbf-4a69-b064-2991f5992503), 2022-08-05).\n\nStakeholders I met with, unequivocally recognize the value that Türkiye’s ratification of the Istanbul Convention has had on providing significant impetus for improving the national legislative and policy framework to prevent and respond to violence against women and girls. In many ways, the bearing that the Istanbul Convention has had on the human rights framework of the country cannot be overstated. For many, the Istanbul Convention is intrinsically linked to Turkiye’s identity, aspirations, as well as its intended role and standing regionally and beyond ([UN Human Rights Council](https://reliefweb.int/attachments/3b8eb46d-86ab-4c32-80fe-08265ebbd450/Original%20statement%20-%20English%20version.pdf), 2022-08-18).\n\nGreece and Turkey, NATO member states and historic rivals, have long been at odds over migrant issues and competing territorial claims ([Reuters - Thomson Reuters Foundation](https://www.reuters.com/world/middle-east/turkey-says-greece-pushed-migrant-boat-back-into-turkish-waters-2022-07-25/), 2022-08-03).\n\nThose clashes ended with Turkey and Russia reaching a ceasefire agreement and the main front lines have been stagnant since, underscoring the foreign actors’ influence over the fate of millions of Syrians. Today, Ankara has varying degrees of responsibility for more than 9mn Syrians, including the refugees inside Turkey, just under half the Arab state’s prewar population ([Financial Times](https://www.ft.com/content/a14241de-8dbf-4a69-b064-2991f5992503), 2022-08-05).", + "style": { + "content": null + } + } + } + }, + { + "clientId": "random-client-id", + "row": 23, + "column": 1, + "width": 12, + "contentType": "TEXT", + "style": { + "background": null, + "border": null, + "padding": null + }, + "contentData": [], + "contentConfiguration": { + "text": { + "content": "#### Main Statement\nThe report implicating Frontex in alleged cooperation with Greece to push asylum seekers back into Turkish waters highlights a significant breach of trust in the management of migration in the region. This revelation underscores the complex dynamics surrounding migration policies, with EU agencies potentially involved in actions contrary to established humanitarian principles. The failure to report such incidents through official channels, as detailed in the report, raises questions about accountability and transparency within these organizations. This development is likely to have repercussions on diplomatic relations and may lead to a reevaluation of the role and oversight of border protection agencies in the region.\n#### Information Gaps\nWhile the report outlines Frontex's alleged involvement in pushbacks and the subsequent cover-up, it lacks specific cases or incidents to provide a more detailed understanding of the scale and impact of these actions. Additionally, there is limited information regarding the potential legal and diplomatic consequences for Frontex and its officials if these allegations are substantiated. Furthermore, the report does not delve into the reactions and statements of the Greek and EU authorities in response to these allegations, leaving gaps in understanding the broader context and implications of this situation. Clarification on these aspects would contribute to a more comprehensive assessment of the issue.\n#### My Analysis\nThe border protection agency Frontex allegedly cooperated with Greece in pushing asylum seekers back into Turkish territorial waters. Media outlets Le Monde, Lighthouse Reports and Der Spiegel have uncovered the report of the EU's Anti-Corruption Office (OLAF) investigation into Frontex's collaboration with Greece.The report said Frontex had covered up Greece's pushbacks and deliberately lied to the EU parliament about it. Frontex officials reportedly did not report the actions in order to avoid a backlash from the Greek authorities, even when they witnessed the illegal pushbacks. \"The incidents were not reported through official channels because Frontex-appointed personnel feared a response from the Greek authorities,\" the report said ([haberglobal](https://haberglobal.com.tr/gundem/frontexin-siginmacilarin-turk-karasularina-geri-itilmesinde-yunanistan-ile-is-birligi-yaptigi-iddia-ediliyor-191572), 2022-08-05).\n\nThose clashes ended with Turkey and Russia reaching a ceasefire agreement and the main front lines have been stagnant since, underscoring the foreign actors’ influence over the fate of millions of Syrians. Today, Ankara has varying degrees of responsibility for more than 9mn Syrians, including the refugees inside Turkey, just under half the Arab state’s prewar population ([Financial Times](https://www.ft.com/content/a14241de-8dbf-4a69-b064-2991f5992503), 2022-08-05).\n\nStakeholders I met with, unequivocally recognize the value that Türkiye’s ratification of the Istanbul Convention has had on providing significant impetus for improving the national legislative and policy framework to prevent and respond to violence against women and girls. In many ways, the bearing that the Istanbul Convention has had on the human rights framework of the country cannot be overstated. For many, the Istanbul Convention is intrinsically linked to Turkiye’s identity, aspirations, as well as its intended role and standing regionally and beyond ([UN Human Rights Council](https://reliefweb.int/attachments/3b8eb46d-86ab-4c32-80fe-08265ebbd450/Original%20statement%20-%20English%20version.pdf), 2022-08-18).\n\nGreece and Turkey, NATO member states and historic rivals, have long been at odds over migrant issues and competing territorial claims ([Reuters - Thomson Reuters Foundation](https://www.reuters.com/world/middle-east/turkey-says-greece-pushed-migrant-boat-back-into-turkish-waters-2022-07-25/), 2022-08-03).\n\nTurkey on Monday accused Greece of pushing a boat carrying migrants out of Greek territorial waters and back into Turkish ones. The defense ministry in Ankara said the incident occurred on Sunday near Rhodes, and posted drone footage on social media that it said showed the coast guard pulling the boat into Turkish waters near the southwestern resort of Marmaris ([Reuters - Thomson Reuters Foundation](https://www.reuters.com/world/middle-east/turkey-says-greece-pushed-migrant-boat-back-into-turkish-waters-2022-07-25/), 2022-08-03).\n\nOne thing that could change the calculus in Ankara is if the opposition capitalises on Erdoğan’s waning popularity to clinch victory in the upcoming elections. Most Turkish parties share the president’s concerns about Kurdish militias but criticise his decision to back the Syrian rebels. All the large parties have said that, if they win power, they would re-establish relations with Damascus, a move they say would be a prelude to sending Syrians home ([Financial Times](https://www.ft.com/content/a14241de-8dbf-4a69-b064-2991f5992503), 2022-08-05).", + "style": { + "content": null + } + } + } + }, + { + "clientId": "random-client-id", + "row": 24, + "column": 1, + "width": 12, + "contentType": "TEXT", + "style": { + "background": null, + "border": null, + "padding": null + }, + "contentData": [], + "contentConfiguration": { + "text": { + "content": "#### Main Statement\nThe Turkish government's integration policy for Syrian refugees, while aimed at providing opportunities, has inadvertently led to a decline in Arabic language proficiency among Syrian children. The policy, which encourages enrollment in Turkish public schools, is a cost-effective option for parents compared to licensed Arab schools. This shift in language usage may have broader cultural and social implications for Syrian refugee communities in Turkey, potentially impacting their sense of identity and cultural preservation.\n#### Information Gaps\nWhile the report highlights the unintended consequence of language decline among Syrian children due to the integration policy, it does not delve into the specific challenges or experiences faced by these children in adapting to Turkish public schools. Additionally, there is limited information on the broader impact of this language shift on the overall well-being and social integration of Syrian refugees in Turkey. Further insights into the cultural adjustments and potential support mechanisms for Syrian children navigating this transition would provide a more comprehensive understanding of this issue.\n#### My Analysis\nThe Turkish government has been implementing an integration policy for Syrian refugees for nearly two years now, which has largely contributed to the decline of the Arabic language among Syrian children, especially since licensed Arab schools in Turkey are costly for most parents, forcing them to enroll their children in free Turkish public schools ([Al-Monitor](https://www.al-monitor.com/originals/2022/07/syrian-children-turkey-lose-touch-arabic-language), 2022-07-21).\n\nOne thing that could change the calculus in Ankara is if the opposition capitalises on Erdoğan’s waning popularity to clinch victory in the upcoming elections. Most Turkish parties share the president’s concerns about Kurdish militias but criticise his decision to back the Syrian rebels. All the large parties have said that, if they win power, they would re-establish relations with Damascus, a move they say would be a prelude to sending Syrians home ([Financial Times](https://www.ft.com/content/a14241de-8dbf-4a69-b064-2991f5992503), 2022-08-05).\n\nThose clashes ended with Turkey and Russia reaching a ceasefire agreement and the main front lines have been stagnant since, underscoring the foreign actors’ influence over the fate of millions of Syrians. Today, Ankara has varying degrees of responsibility for more than 9mn Syrians, including the refugees inside Turkey, just under half the Arab state’s prewar population ([Financial Times](https://www.ft.com/content/a14241de-8dbf-4a69-b064-2991f5992503), 2022-08-05).\n\nStatistics from the 2018 Turkish Demographic and Health Survey on the prevalence of child, early and forced marriage among Turkey’s Syrian migrant population have shown that 9.2% of Syrian women between the ages of 20-24 were married by 15 and 13.4% of Syrian women aged between 15-19 were married by the age of 15 ([UN Human Rights Council](https://reliefweb.int/attachments/3b8eb46d-86ab-4c32-80fe-08265ebbd450/Original%20statement%20-%20English%20version.pdf), 2022-08-19).\n\nThe border protection agency Frontex allegedly cooperated with Greece in pushing asylum seekers back into Turkish territorial waters. Media outlets Le Monde, Lighthouse Reports and Der Spiegel have uncovered the report of the EU's Anti-Corruption Office (OLAF) investigation into Frontex's collaboration with Greece.The report said Frontex had covered up Greece's pushbacks and deliberately lied to the EU parliament about it. Frontex officials reportedly did not report the actions in order to avoid a backlash from the Greek authorities, even when they witnessed the illegal pushbacks. \"The incidents were not reported through official channels because Frontex-appointed personnel feared a response from the Greek authorities,\" the report said ([haberglobal](https://haberglobal.com.tr/gundem/frontexin-siginmacilarin-turk-karasularina-geri-itilmesinde-yunanistan-ile-is-birligi-yaptigi-iddia-ediliyor-191572), 2022-08-05).\n\nWhile recognizing the numerous new laws and policies that have been adopted to combat violence against women and girls over the last 15 years, considerable implementation gaps exist in almost all social policies related to women’s rights, ranging from sexual violence and domestic violence to trafficking and continue to pose a considerable challenge. For example, the Turkish Criminal Code does not define all types of violence against women as crimes, it does not specifically criminalize , forced marriage or psychological violence. The incompatibility and lack of harmonization of Türkiye’s national laws with its international human rights obligations is also of concern ([UN Human Rights Council](https://reliefweb.int/attachments/3b8eb46d-86ab-4c32-80fe-08265ebbd450/Original%20statement%20-%20English%20version.pdf), 2022-08-18).\n\nTürkiye has made considerable strides over the last 15 years in strengthening its legal framework to eliminate discrimination and combat violence against women and girls, including domestic violence. Law 6284 on the Protection of Family and Prevention of Violence against Women, adopted in 2012, establishes an important legal framework for the prevention and elimination of violence against women and girls in the country. The law recalls as its foundation international women’s human rights instruments adopted by Türkiye, including the Istanbul Convention. Some aspects of the Criminal Code are progressive, for example, the offence of sexual violence does not stipulate that there must have been use of force and marital rape is explicitly recognized as an offence under Article 102(2), although it is subject to prosecution only if the victim files a complaint ([UN Human Rights Council](https://reliefweb.int/attachments/3b8eb46d-86ab-4c32-80fe-08265ebbd450/Original%20statement%20-%20English%20version.pdf), 2022-08-18).\n\nArticle 10 of the Constitution of Türkiye specifically provides that everyone is equal before the law without distinction. The State has the obligation to ensure that this equality exists in practice and any measures taken for this purpose shall not be interpreted as contrary to the principle of equality. According to article 90 of the Constitution, international treaties ratified by Türkiye1 form an integral part of national law and any violation of the rights enshrined in the Convention may be challenged by citizens before the Constitutional Court ([UN Human Rights Council](https://reliefweb.int/attachments/3b8eb46d-86ab-4c32-80fe-08265ebbd450/Original%20statement%20-%20English%20version.pdf), 2022-08-18).\n\nThe National Strategy and Action Plan on the Prevention of Early and Forced Marriage, drafted in 2018 and revised in 2020, has not yet been officially endorsed. However, through my meetings with various stakeholders at the provincial level I was pleased to see that efforts are being made to raise awareness and to develop provincial action plans on combating early and forced marriage. Despite these efforts insufficient funding and monitoring of these plans is hindering implementation ([UN Human Rights Council](https://reliefweb.int/attachments/3b8eb46d-86ab-4c32-80fe-08265ebbd450/Original%20statement%20-%20English%20version.pdf), 2022-08-19).", + "style": { + "content": null + } + } + } + }, + { + "clientId": "random-client-id", + "row": 25, + "column": 1, + "width": 12, + "contentType": "TEXT", + "style": { + "background": null, + "border": null, + "padding": null + }, + "contentData": [], + "contentConfiguration": { + "text": { + "content": "#### Main Statement\nThe legal framework in Turkey regarding issues like domestic violence, child marriage, and trafficking reveals significant gaps in the protection and support provided to vulnerable individuals, particularly women and girls. Preventive orders issued by courts are often of short duration, potentially leaving victims at risk, and there is a lack of routine protection during the pre-trial period. Additionally, penalties for convictions related to domestic violence may be insufficient to act as an effective deterrent. The prevalence of child marriage, despite the legal age of marriage being set at 18, highlights the need for more rigorous enforcement and awareness campaigns. Moreover, the absence of a specific definition of trafficking in national law and detailed guidance on its punishable elements poses a challenge in combating this crime effectively.\n#### Information Gaps\nWhile the report outlines the legal framework and its shortcomings, it would be beneficial to have more data on the practical implementation of these laws and policies. Specifically, insights into the experiences of individuals seeking legal recourse in cases of domestic violence, child marriage, and trafficking would provide a deeper understanding of the challenges they face within the legal system. Additionally, information on the availability and effectiveness of support services for victims of these crimes would shed light on the broader ecosystem surrounding these issues.\n#### My Analysis\nCourts often issue preventive (restraining) orders for short periods, in some cases just weeks or a month, irrespective of the persistent risk and threat of violence. In particular, there is no indication that orders are routinely issued to protect women for the pre-trial period, when the alleged abuser is being prosecuted. When courts convict perpetrators of domestic violence for crimes such as intentional injury, threats and insults, the penalties are often issued late and are too little to constitute an effective deterrent to prevent further abuse ([UN Human Rights Council](https://reliefweb.int/attachments/3b8eb46d-86ab-4c32-80fe-08265ebbd450/Original%20statement%20-%20English%20version.pdf), 2022-08-19).\n\nThe legal age of marriage is 18 under the Civil Code, however exceptions are allowed for marriages at the age of 17 with approval of the parents and, in exceptional circumstances, at the age of 16 with approval by a judge. A 2014 study commissioned by the Turkish Government showed that more than 26% of women reported having been married before the age of 18 and almost 20% of those who were married as a child reported that they were compelled to do so and had not consented. The difficulties and uncertainties caused by war and other crises dramatically increase the number of child marriages ([UN Human Rights Council](https://reliefweb.int/attachments/3b8eb46d-86ab-4c32-80fe-08265ebbd450/Original%20statement%20-%20English%20version.pdf), 2022-08-19).\n\nTrafficking is also a matter of considerable concern in the country, particularly with regard to irregular migrant and refugee women and girls. The crime of human trafficking is regulated in Article 80 of the Turkish Penal Code No. 5237 however the lack of a specific definition of the crime of trafficking in national law, or detailed guidance as to its various punishable elements, has done little to deter perpetrators ([UN Human Rights Council](https://reliefweb.int/attachments/3b8eb46d-86ab-4c32-80fe-08265ebbd450/Original%20statement%20-%20English%20version.pdf), 2022-09-02).\n\nOne thing that could change the calculus in Ankara is if the opposition capitalises on Erdoğan’s waning popularity to clinch victory in the upcoming elections. Most Turkish parties share the president’s concerns about Kurdish militias but criticise his decision to back the Syrian rebels. All the large parties have said that, if they win power, they would re-establish relations with Damascus, a move they say would be a prelude to sending Syrians home ([Financial Times](https://www.ft.com/content/a14241de-8dbf-4a69-b064-2991f5992503), 2022-08-05).", + "style": { + "content": null + } + } + } + }, + { + "clientId": "random-client-id", + "row": 26, + "column": 1, + "width": 12, + "height": 500, + "contentType": "URL", + "style": { + "background": null, + "border": null, + "padding": null + }, + "contentData": [], + "contentConfiguration": { + "url": { + "url": "https://matthewsmawfield.github.io/map-vizzard/?embed=true" + } + } + } + ] +} diff --git a/apps/analysis/tests/analysis_report/error1.json b/apps/analysis/tests/analysis_report/error1.json new file mode 100644 index 0000000000..755e788146 --- /dev/null +++ b/apps/analysis/tests/analysis_report/error1.json @@ -0,0 +1,44 @@ +[ + { + "arrayErrors": null, + "clientId": null, + "field": "slug", + "messages": "analysis report with this slug already exists.", + "objectErrors": null + }, + { + "arrayErrors": [ + { + "clientId": "random-client-id", + "messages": null, + "objectErrors": [ + { + "arrayErrors": [ + { + "clientId": "NOT_FOUND_0", + "messages": null, + "objectErrors": [ + { + "arrayErrors": null, + "clientId": null, + "field": "upload", + "messages": "Report needs to be created before assigning uploads to container", + "objectErrors": null + } + ] + } + ], + "clientId": "random-client-id", + "field": "contentData", + "messages": null, + "objectErrors": null + } + ] + } + ], + "clientId": null, + "field": "containers", + "messages": null, + "objectErrors": null + } +] diff --git a/apps/analysis/tests/analysis_report/error2.json b/apps/analysis/tests/analysis_report/error2.json new file mode 100644 index 0000000000..9e67cf4b28 --- /dev/null +++ b/apps/analysis/tests/analysis_report/error2.json @@ -0,0 +1,37 @@ +[ + { + "arrayErrors": [ + { + "clientId": "random-client-id", + "messages": null, + "objectErrors": [ + { + "arrayErrors": [ + { + "clientId": "NOT_FOUND_0", + "messages": null, + "objectErrors": [ + { + "arrayErrors": null, + "clientId": null, + "field": "upload", + "messages": "Upload within report are only allowed", + "objectErrors": null + } + ] + } + ], + "clientId": "random-client-id", + "field": "contentData", + "messages": null, + "objectErrors": null + } + ] + } + ], + "clientId": null, + "field": "containers", + "messages": null, + "objectErrors": null + } +] diff --git a/apps/analysis/tests/test_mutations.py b/apps/analysis/tests/test_mutations.py index 58c3ffb0ab..ab5eeaa285 100644 --- a/apps/analysis/tests/test_mutations.py +++ b/apps/analysis/tests/test_mutations.py @@ -1,16 +1,24 @@ +import os import datetime +import json from unittest import mock from utils.graphene.tests import GraphQLTestCase from deepl_integration.handlers import AnalysisAutomaticSummaryHandler from deepl_integration.serializers import DeeplServerBaseCallbackSerializer +from commons.schema_snapshots import SnapshotQuery from user.factories import UserFactory from project.factories import ProjectFactory from lead.factories import LeadFactory from entry.factories import EntryFactory from analysis_framework.factories import AnalysisFrameworkFactory -from analysis.factories import AnalysisFactory, AnalysisPillarFactory +from analysis.factories import ( + AnalysisFactory, + AnalysisPillarFactory, + AnalysisReportFactory, + AnalysisReportUploadFactory, +) from analysis.models import ( TopicModel, @@ -18,6 +26,7 @@ AutomaticSummary, AnalyticalStatementNGram, AnalyticalStatementGeoTask, + AnalysisReportSnapshot, ) @@ -835,3 +844,440 @@ def _query_check(_id): geo_task.refresh_from_db() assert geo_task.status == AnalyticalStatementGeoTask.Status.FAILED + + +class TestAnalysisReportQueryAndMutationSchema(GraphQLTestCase): + factories_used = [ + AnalysisReportUploadFactory, + ] + + REPORT_SNAPSHOT_FRAGMENT = ''' + fragment AnalysisReportSnapshotResponse on AnalysisReportSnapshotType { + id + publishedOn + report + publishedBy { + displayName + } + reportDataFile { + name + url + } + files { + id + title + mimeType + metadata + file { + name + url + } + } + } + ''' + + CREATE_REPORT = ( + SnapshotQuery.AnalysisReport.SnapshotFragment + + '''\n + mutation CreateReport($projectId: ID!, $input: AnalysisReportInputType!) { + project(id: $projectId) { + analysisReportCreate(data: $input) { + result { + ...AnalysisReportQueryType + } + errors + ok + } + } + } + ''' + ) + + CREATE_REPORT_SNAPSHOT = ( + REPORT_SNAPSHOT_FRAGMENT + + '''\n + mutation CreateReportSnapshot($projectId: ID!, $input: AnalysisReportSnapshotInputType!) { + project(id: $projectId) { + analysisReportSnapshotCreate(data: $input) { + result { + ...AnalysisReportSnapshotResponse + } + errors + ok + } + } + } + ''' + ) + + UPDATE_REPORT = ( + SnapshotQuery.AnalysisReport.SnapshotFragment + + '''\n + mutation UpdateReport($projectId: ID!, $reportId: ID!, $input: AnalysisReportInputUpdateType!) { + project(id: $projectId) { + analysisReportUpdate(id: $reportId, data: $input) { + result { + ...AnalysisReportQueryType + } + errors + ok + } + } + } + ''' + ) + + QUERY_REPORT = ( + SnapshotQuery.AnalysisReport.SnapshotFragment + + '''\n + query Report($projectId: ID!, $reportId: ID!) { + project(id: $projectId) { + analysisReport(id: $reportId) { + ...AnalysisReportQueryType + } + } + } + ''' + ) + + QUERY_REPORT_SNAPSHOT = ( + REPORT_SNAPSHOT_FRAGMENT + + '''\n + query QueryReportSnapshot($projectId: ID!, $snapshotId: ID!) { + project(id: $projectId) { + analysisReportSnapshot(id: $snapshotId) { + ...AnalysisReportSnapshotResponse + } + } + } + ''' + ) + + QUERY_PUBLIC_REPORT_SNAPSHOT = ( + REPORT_SNAPSHOT_FRAGMENT + + '''\n + query QueryPublicReportSnapshot($slug: String!) { + publicAnalysisReportSnapshot(slug: $slug) { + ...AnalysisReportSnapshotResponse + } + } + ''' + ) + + def setUp(self): + super().setUp() + self.project = ProjectFactory.create() + # User with role + self.non_member_user = UserFactory.create() + self.readonly_member_user = UserFactory.create() + self.member_user = UserFactory.create() + self.project.add_member(self.member_user, role=self.project_role_member) + self.project.add_member(self.readonly_member_user, role=self.project_role_reader) + + def test_mutation_and_query(self): + analysis = AnalysisFactory.create( + project=self.project, + team_lead=self.member_user, + end_date=datetime.date(2022, 4, 1), + ) + + def _create_mutation_check(minput, **kwargs): + return self.query_check( + self.CREATE_REPORT, + minput=minput, + mnested=['project'], + variables={'projectId': self.project.id}, + **kwargs + ) + + def _create_snapshot_mutation_check(minput, **kwargs): + return self.query_check( + self.CREATE_REPORT_SNAPSHOT, + minput=minput, + mnested=['project'], + variables={'projectId': self.project.id}, + **kwargs + ) + + def _query_snapshot_check(snapshot_id, **kwargs): + return self.query_check( + self.QUERY_REPORT_SNAPSHOT, + variables={ + 'projectId': self.project.id, + 'snapshotId': snapshot_id + }, + **kwargs, + ) + + def _query_public_snapshot_check(slug, **kwargs): + return self.query_check( + self.QUERY_PUBLIC_REPORT_SNAPSHOT, + variables={ + 'slug': slug + }, + **kwargs, + ) + + def _update_mutation_check(_id, minput, **kwargs): + return self.query_check( + self.UPDATE_REPORT, + minput=minput, + mnested=['project'], + variables={ + 'projectId': self.project.id, + 'reportId': _id, + }, + **kwargs + ) + + def _query_check(_id, **kwargs): + return self.query_check( + self.QUERY_REPORT, + variables={ + 'projectId': self.project.id, + 'reportId': _id + }, + **kwargs, + ) + + test_data_dir = os.path.join( + os.path.dirname(os.path.abspath(__file__)), + 'analysis_report', + ) + with\ + open(os.path.join(test_data_dir, 'data.json'), 'r') as test_data_file, \ + open(os.path.join(test_data_dir, 'error1.json'), 'r') as test_error1_file, \ + open(os.path.join(test_data_dir, 'error2.json'), 'r') as test_error2_file: + test_data = json.load(test_data_file) + error_1_data = json.load(test_error1_file) + error_2_data = json.load(test_error2_file) + + minput = { + 'isPublic': False, + 'analysis': str(analysis.pk), + 'slug': 'analysis-test-1001', + 'title': 'Test 2', + 'subTitle': 'Test 2', + **test_data, + } + + # Create + # -- Without login + _create_mutation_check(minput, assert_for_error=True) + # -- With login (non-member) + self.force_login(self.non_member_user) + _create_mutation_check(minput, assert_for_error=True) + _create_mutation_check(minput, assert_for_error=True) + # --- member user (read-only) + self.force_login(self.readonly_member_user) + _create_mutation_check(minput, assert_for_error=True) + + # --- member user (All good) + self.force_login(self.member_user) + response = _create_mutation_check(minput, okay=True) + created_report1_data = response['data']['project']['analysisReportCreate']['result'] + report1_id = created_report1_data['id'] + + report1_upload1, report1_upload2 = AnalysisReportUploadFactory.create_batch(2, report_id=report1_id) + + minput['containers'][0]['contentData'] = [ + {'upload': str(report1_upload1.pk)}, + ] + + # -- Validation check + errors = _create_mutation_check( + minput, + okay=False, + )['data']['project']['analysisReportCreate']['errors'] + assert errors == error_1_data + del errors + + minput['containers'][0]['contentData'] = [] + minput['slug'] = 'analysis-test-1002' + created_report2_data = _create_mutation_check( + minput, + okay=True, + )['data']['project']['analysisReportCreate']['result'] + report2_id = created_report2_data['id'] + + # Update + # -- -- Report 1 + minput = { + **created_report1_data, + } + minput.pop('id') + # -- Without login + self.logout() + _update_mutation_check(report1_id, minput, assert_for_error=True) + # -- With login (non-member) + self.force_login(self.non_member_user) + _update_mutation_check(report1_id, minput, assert_for_error=True) + _update_mutation_check(report1_id, minput, assert_for_error=True) + # --- member user (read-only) + self.force_login(self.readonly_member_user) + _update_mutation_check(report1_id, minput, assert_for_error=True) + + # --- member user (error since input is empty) + self.force_login(self.member_user) + response = _update_mutation_check(report1_id, minput, okay=True) + updated_report_data = response['data']['project']['analysisReportUpdate']['result'] + assert updated_report_data == created_report1_data + del updated_report_data + # -- -- Report 2 + minput = { + **created_report2_data, + } + minput.pop('id') + # Invalid data + minput['containers'][0]['contentData'] = [ + {'upload': str(report1_upload2.pk)}, + ] + errors = _update_mutation_check( + report2_id, + minput, + okay=False, + )['data']['project']['analysisReportUpdate']['errors'] + + assert errors == error_2_data + + report2_upload1 = AnalysisReportUploadFactory.create(report_id=report2_id) + minput['containers'][0]['contentData'] = [ + {'upload': str(report2_upload1.pk)}, + ] + response = _update_mutation_check(report2_id, minput, okay=True) + updated_report_data = response['data']['project']['analysisReportUpdate']['result'] + assert updated_report_data != created_report2_data + + # Basic query check + # -- Without login + self.logout() + _query_check(report1_id, assert_for_error=True) + _query_check(report2_id, assert_for_error=True) + # -- With login (non-member) + self.force_login(self.non_member_user) + assert _query_check(report1_id)['data']['project']['analysisReport'] is None + assert _query_check(report2_id)['data']['project']['analysisReport'] is None + # --- member user + for user in [ + self.readonly_member_user, + self.member_user + ]: + self.force_login(user) + assert _query_check(report1_id)['data']['project']['analysisReport'] is not None + assert _query_check(report2_id)['data']['project']['analysisReport'] is not None + + # Snapshot Mutation + minput = {'report': str(report1_id)} + self.logout() + _create_snapshot_mutation_check(minput, assert_for_error=True) + # -- With login (non-member) + self.force_login(self.non_member_user) + _create_snapshot_mutation_check(minput, assert_for_error=True) + # --- member user (read-only) + self.force_login(self.readonly_member_user) + _create_snapshot_mutation_check(minput, assert_for_error=True) + + # --- member user + self.force_login(self.member_user) + snapshot_data = _create_snapshot_mutation_check( + minput, + okay=True, + )['data']['project']['analysisReportSnapshotCreate']['result'] + snapshot_id = snapshot_data['id'] + assert snapshot_data['report'] == minput['report'] + assert snapshot_data['reportDataFile']['url'] not in ['', None] + + another_report = AnalysisReportFactory.create( + analysis=AnalysisFactory.create( + project=ProjectFactory.create(), + team_lead=self.member_user, + end_date=datetime.date(2022, 4, 1), + ) + ) + minput = {'report': str(another_report.pk)} + _create_snapshot_mutation_check(minput, okay=False) + + # Snapshot Query + self.logout() + _query_snapshot_check(snapshot_id, assert_for_error=True) + # -- With login (non-member) + self.force_login(self.non_member_user) + assert _query_snapshot_check( + snapshot_id, + )['data']['project']['analysisReportSnapshot'] is None + # --- member user (read-only) + self.force_login(self.readonly_member_user) + assert _query_snapshot_check( + snapshot_id, + )['data']['project']['analysisReportSnapshot'] is not None + # --- member user + self.force_login(self.member_user) + assert _query_snapshot_check( + snapshot_id, + )['data']['project']['analysisReportSnapshot'] is not None + + # Snapshot Public Query + snapshot = AnalysisReportSnapshot.objects.get(pk=snapshot_id) + snapshot_slug = snapshot.report.slug + + # -- Not Public [Not enabled in project] + snapshot.report.is_public = False + snapshot.report.save() + for user in [ + None, + self.non_member_user, + self.readonly_member_user, + self.member_user, + ]: + if user is None: + self.logout() + else: + self.force_login(user) + assert _query_public_snapshot_check(snapshot_slug)['data']['publicAnalysisReportSnapshot'] is None + + # -- Public [Not enabled in project] + snapshot.report.is_public = True + snapshot.report.save() + for user in [ + None, + self.non_member_user, + self.readonly_member_user, + self.member_user, + ]: + if user is None: + self.logout() + else: + self.force_login(user) + assert _query_public_snapshot_check(snapshot_slug)['data']['publicAnalysisReportSnapshot'] is None + + self.project.enable_publicly_viewable_analysis_report_snapshot = True + self.project.save(update_fields=('enable_publicly_viewable_analysis_report_snapshot',)) + # -- Not Public [Enabled in project] + snapshot.report.is_public = False + snapshot.report.save() + for user in [ + None, + self.non_member_user, + self.readonly_member_user, + self.member_user, + ]: + if user is None: + self.logout() + else: + self.force_login(user) + assert _query_public_snapshot_check(snapshot_slug)['data']['publicAnalysisReportSnapshot'] is None + + # -- Public [Enabled in project] + snapshot.report.is_public = True + snapshot.report.save() + for user in [ + None, + self.non_member_user, + self.readonly_member_user, + self.member_user, + ]: + if user is None: + self.logout() + else: + self.force_login(user) + assert _query_public_snapshot_check(snapshot_slug)['data']['publicAnalysisReportSnapshot'] is not None diff --git a/apps/commons/schema_snapshots.py b/apps/commons/schema_snapshots.py index fd236b9f9a..60ddedadf6 100644 --- a/apps/commons/schema_snapshots.py +++ b/apps/commons/schema_snapshots.py @@ -182,7 +182,7 @@ class DeepExplore: """ class AnalysisReport: - Snapshot = ''' + SnapshotFragment = ''' fragment OrganizationGeneralResponse on OrganizationType { id title @@ -219,126 +219,134 @@ class AnalysisReport: style width } - query MyQuery($projectID: ID!, $reportID: ID!) { - project(id: $projectID) { - analysisReport(id: $reportID) { - id - analysis - title - subTitle - slug - organizations { - ...OrganizationGeneralResponse + fragment AnalysisReportQueryType on AnalysisReportType { + id + analysis + title + subTitle + slug + organizations { + ...OrganizationGeneralResponse + } + configuration { + containerStyle { + border { + ...BorderStyle } - configuration { - containerStyle { - border { - ...BorderStyle - } - padding { - ...PaddingStyle - } - background { - color - opacity - } + padding { + ...PaddingStyle + } + background { + color + opacity + } + } + textContentStyle { + content { + ...TextStyle + } + } + imageContentStyle { + caption { + ...TextStyle + } + } + headingContentStyle { + h1 { + ...TextStyle + } + h2 { + ...TextStyle + } + h3 { + ...TextStyle + } + h4 { + ...TextStyle + } + } + bodyStyle { + gap + } + } + containers { + id + clientId + row + column + width + height + contentType + style { + border { + ...BorderStyle + } + padding { + ...PaddingStyle + } + background { + color + opacity + } + } + contentData { + clientId + data + id + upload { + id + file { + id } - textContentStyle { + } + } + contentConfiguration { + heading { + content + variant + style { content { ...TextStyle } } - imageContentStyle { + } + image { + altText + caption + style { caption { ...TextStyle } - } - headingContentStyle { - h1 { - ...TextStyle - } - h2 { - ...TextStyle - } - h3 { - ...TextStyle - } - h4 { - ...TextStyle - } - } - bodyStyle { - gap + fit } } - containers { - id - clientId - row - column - width - height - contentType + text { + content style { - border { - ...BorderStyle - } - padding { - ...PaddingStyle - } - background { - color - opacity - } - } - contentData { - clientId - data - id - upload { - id - file { - id - } - } - } - contentConfiguration { - heading { - content - variant - style { - content { - ...TextStyle - } - } - } - image { - altText - caption - style { - caption { - ...TextStyle - } - fit - } - } - text { - content - style { - content { - ...TextStyle - } - } - } - url { - url + content { + ...TextStyle } } } + url { + url + } } } } ''' + Snapshot = ( + SnapshotFragment + + '''\n + query MyQuery($projectID: ID!, $reportID: ID!) { + project(id: $projectID) { + analysisReport(id: $reportID) { + ...AnalysisReportQueryType + } + } + } + ''' + ) class DummyContext: diff --git a/apps/gallery/dataloaders.py b/apps/gallery/dataloaders.py new file mode 100644 index 0000000000..69c9700796 --- /dev/null +++ b/apps/gallery/dataloaders.py @@ -0,0 +1,22 @@ +from promise import Promise +from django.utils.functional import cached_property + +from utils.graphene.dataloaders import DataLoaderWithContext, WithContextMixin + +from gallery.models import File + + +class GalleryFileLoader(DataLoaderWithContext): + def batch_load_fn(self, keys): + qs = File.objects.filter(pk__in=keys) + _map = { + item.pk: item + for item in qs + } + return Promise.resolve([_map.get(key) for key in keys]) + + +class DataLoaders(WithContextMixin): + @cached_property + def file(self): + return GalleryFileLoader(context=self.context) diff --git a/apps/geo/migrations/0016_auto_20171210_0606.py b/apps/geo/migrations/0016_auto_20171210_0606.py index 351ae77eac..c52ea8dfee 100644 --- a/apps/geo/migrations/0016_auto_20171210_0606.py +++ b/apps/geo/migrations/0016_auto_20171210_0606.py @@ -9,6 +9,7 @@ class Migration(migrations.Migration): dependencies = [ + ('gallery', '0001_initial'), ('geo', '0015_auto_20171210_0602'), ] diff --git a/apps/project/migrations/0004_project_enable_publicly_viewable_analysis_report_snapshot.py b/apps/project/migrations/0004_project_enable_publicly_viewable_analysis_report_snapshot.py new file mode 100644 index 0000000000..c9e1a6c182 --- /dev/null +++ b/apps/project/migrations/0004_project_enable_publicly_viewable_analysis_report_snapshot.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.17 on 2023-10-06 04:56 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('project', '0003_auto_20230508_0608'), + ] + + operations = [ + migrations.AddField( + model_name='project', + name='enable_publicly_viewable_analysis_report_snapshot', + field=models.BooleanField(default=False), + ), + ] diff --git a/apps/project/models.py b/apps/project/models.py index 83ab7a397f..9feb9e0e0a 100644 --- a/apps/project/models.py +++ b/apps/project/models.py @@ -101,6 +101,8 @@ class Status(models.TextChoices): has_publicly_viewable_restricted_leads = models.BooleanField(default=False) has_publicly_viewable_confidential_leads = models.BooleanField(default=False) + enable_publicly_viewable_analysis_report_snapshot = models.BooleanField(default=False) + # Store project stats data as cache. View project/tasks for structure stats_cache = models.JSONField(default=dict, blank=True) # Stores the geo locations data as cache. diff --git a/apps/project/schema.py b/apps/project/schema.py index d7b6632631..e1ec31094b 100644 --- a/apps/project/schema.py +++ b/apps/project/schema.py @@ -414,6 +414,7 @@ class Meta: 'has_publicly_viewable_unprotected_leads', 'has_publicly_viewable_restricted_leads', 'has_publicly_viewable_confidential_leads', + 'enable_publicly_viewable_analysis_report_snapshot', ) analysis_framework = graphene.Field(AnalysisFrameworkDetailType) diff --git a/apps/project/serializers.py b/apps/project/serializers.py index 5abe4fd721..f96d4b1b0a 100644 --- a/apps/project/serializers.py +++ b/apps/project/serializers.py @@ -810,6 +810,7 @@ class Meta: 'has_publicly_viewable_unprotected_leads', 'has_publicly_viewable_restricted_leads', 'has_publicly_viewable_confidential_leads', + 'enable_publicly_viewable_analysis_report_snapshot', 'organizations', ) diff --git a/deep/dataloaders.py b/deep/dataloaders.py index 7e4c41c04b..7dbbaa1072 100644 --- a/deep/dataloaders.py +++ b/deep/dataloaders.py @@ -13,6 +13,7 @@ from geo.dataloaders import DataLoaders as GeoDataLoaders from unified_connector.dataloaders import DataLoaders as UnifiedConnectorDataLoaders from analysis.dataloaders import DataLoaders as AnalysisDataLoaders +from gallery.dataloaders import DataLoaders as DeepGalleryDataLoaders class GlobalDataLoaders(WithContextMixin): @@ -59,3 +60,7 @@ def unified_connector(self): @cached_property def analysis(self): return AnalysisDataLoaders(context=self.context) + + @cached_property + def deep_gallery(self): + return DeepGalleryDataLoaders(context=self.context) diff --git a/schema.graphql b/schema.graphql index 42017cfadb..ac4f590bce 100644 --- a/schema.graphql +++ b/schema.graphql @@ -748,20 +748,10 @@ enum AnalysisReportUploadTypeEnum { input AnalysisReportUrlConfigurationInputType { url: String - style: AnalysisReportUrlContentStyleInputType } type AnalysisReportUrlConfigurationType { url: String - style: AnalysisReportUrlContentStyleType -} - -input AnalysisReportUrlContentStyleInputType { - noop: String -} - -type AnalysisReportUrlContentStyleType { - noop: String } input AnalysisReportVariableInputType { @@ -2798,6 +2788,7 @@ input ProjectCreateInputType { hasPubliclyViewableUnprotectedLeads: Boolean hasPubliclyViewableRestrictedLeads: Boolean hasPubliclyViewableConfidentialLeads: Boolean + enablePubliclyViewableAnalysisReportSnapshot: Boolean organizations: [ProjectOrganizationGqInputType!] } @@ -2826,6 +2817,7 @@ type ProjectDetailType { hasPubliclyViewableUnprotectedLeads: Boolean! hasPubliclyViewableRestrictedLeads: Boolean! hasPubliclyViewableConfidentialLeads: Boolean! + enablePubliclyViewableAnalysisReportSnapshot: Boolean! currentUserRole: ProjectRoleTypeEnum allowedPermissions: [ProjectPermission!]! stats(filters: LeadsFilterDataInputType): ProjectStatType @@ -3171,6 +3163,7 @@ input ProjectUpdateInputType { hasPubliclyViewableUnprotectedLeads: Boolean hasPubliclyViewableRestrictedLeads: Boolean hasPubliclyViewableConfidentialLeads: Boolean + enablePubliclyViewableAnalysisReportSnapshot: Boolean organizations: [ProjectOrganizationGqInputType!] }