Asset Publisher

Pixabay / RichardMC

Development Policy Monitor

The "elephant" caught in the balancing act between idealism and pragmatism

by Elias Marini Schäfer

India's role in global development cooperation

With its "Monitor Development Policy" series, the Konrad Adenauer Foundation focuses on the role of non-traditional donors in development cooperation. This time, we take a look at India which, as part of its development policy, is striving to propagate the image of a self-sufficient donor of development assistance worldwide.

Asset Publisher

India's self-image in development cooperation is one of a needs-driven development partner. Since 2003, the “elephant" has been attempting to promote the image of a self-sufficient donor of development assistance worldwide to combat the international perception of India as a recipient of development aid. Against the backdrop of this emphasis on being a donor, an increasing interlinkage of the foreign, development and economic policy agendas can be observed.
​​​​​
A combination of idealism within the framework of South-South cooperation and pragmatism, as can be observed in various triangular cooperation initiatives, characterises Indian development cooperation to this day.
 
The competition for influence between the Asian giants India and China is becoming increasingly apparent in the development policy arena. India's development policy activities are often geared towards curbing China's expansion in strategically important regions and increasing its own economic and political influence.
 
Since the “BMZ 2030” reform, India has been classified as a “global partner” of German development cooperation, with whom it intends to collaborate with greater intensity in order to tackle global challenges. Given mutual interests, deeper development cooperation between the two countries seems possible.
​​​​​​​
Read the full "Monitor Development Policy" here as a PDF.

Asset Publisher

An error occurred while processing the template.
Java method "de.usu.kas.frontend.service.impl.common.KASArticleServiceImpl.getMarginalPublication(long, com.liferay.portal.kernel.theme.ThemeDisplay)" threw an exception when invoked on de.usu.kas.frontend.service.impl.common.KASArticleServiceImpl object "de.usu.kas.frontend.service.impl.common.KASArticleServiceImpl@3ef2de38"; see cause exception in the Java stack trace.
----
FTL stack trace ("~" means nesting-related):
- Failed at: #local pub = FrontendService.article... [in template "kas-de-theme_SERVLET_CONTEXT_/templates/macros/atomic-modules/AMMarginalLinks.ftl" in macro "AMMarginalArticlePublication" at line 75, column 5]
- Reached through: @AMMarginalArticlePublication assetEntry [in template "kas-de-theme_SERVLET_CONTEXT_/templates/macros/atomic-modules/AMMarginalLinks.ftl" in macro "AMMarginalArticle" at line 66, column 9]
- Reached through: @AMMarginalArticle entry [in template "kas-de-theme_SERVLET_CONTEXT_/templates/macros/atomic-modules/AMMarginalLinks.ftl" in macro "AMMarginalArticleFilteredList" at line 182, column 9]
- Reached through: @AMMarginalArticleFilteredList "WCS_K... [in template "kas-de-theme_SERVLET_CONTEXT_/templates/macros/atomic-modules/AMMarginalLinks.ftl" in macro "AMMarginalLinks" at line 293, column 21]
~ Reached through: #nested [in template "kas-de-theme_SERVLET_CONTEXT_/templates/macros/atomic-modules/AMMarginalLinks.ftl" in macro "AMSegmentWithIcon" at line 174, column 9]
~ Reached through: @AMSegmentWithIcon "#icon-publication... [in template "kas-de-theme_SERVLET_CONTEXT_/templates/macros/atomic-modules/AMMarginalLinks.ftl" in macro "AMMarginalLinks" at line 292, column 17]
- Reached through: @AMMarginalLinks data [in template "kas-de-theme_SERVLET_CONTEXT_/templates/macros/page-modules/PMMarginalspalte.ftl" in macro "PMMarginalspalte" at line 788, column 17]
- Reached through: @PMMarginalspalte "ADT_KASDE_MARGINAL... [in template "252001#252047#252853" at line 139, column 5]
----
1<#include "${fullTemplatesPath}/functions/relatedContentUtil.ftl" /> 
2<#include "${fullTemplatesPath}/functions/freemarkerUtil.ftl" /> 
3<#include "${fullTemplatesPath}/macros/debugging.ftl" /> 
4<#include "${fullTemplatesPath}/functions/liferayServicesUtil.ftl" /> 
5 
6<#include "${fullTemplatesPath}/macros/page-modules/PMNavigation.ftl" /> 
7<#include "${fullTemplatesPath}/macros/page-modules/PMMarginalspalte.ftl" /> 
8<#include "${fullTemplatesPath}/macros/atomic-modules/AMVenue.ftl" /> 
9<#include "${fullTemplatesPath}/macros/atomic-modules/AMMarginalContent.ftl" /> 
10<#include "${fullTemplatesPath}/macros/atomic-modules/AMPricing.ftl" /> 
11<#include "${fullTemplatesPath}/macros/atomic-modules/AMPerson.ftl" /> 
12<#include "${fullTemplatesPath}/macros/atomic-modules/AMMediaElement.ftl" /> 
13<#include "${fullTemplatesPath}/macros/atomic-modules/AMDatetime.ftl" /> 
14<#include "${fullTemplatesPath}/macros/atomic-modules/AMMap.ftl" /> 
15<#include "${fullTemplatesPath}/macros/atomic-modules/AMMarginalLinks.ftl" /> 
16<#include "${fullTemplatesPath}/macros/atomic-modules/AMCollapsibleListItem.ftl" /> 
17 
18<#assign 
19 JournalArticleLocalService = getJournalArticleLocalService() 
20  
21  
22 
23 themeDisplay = getThemeDisplay() 
24 languageId = themeDisplay.getLocale() 
25 editmode = FrontendService.user.isPrivilegedUser(themeDisplay) 
26 
27 groupId = themeDisplay.getScopeGroupId() 
28 currentUrl = themeDisplay.getURLCurrent() 
29 
30 layout = themeDisplay.getLayout() 
31 layouttpl = layout.getTypeSettingsProperties().getProperty("layout-template-id") 
32 
33 isMicrosite = FrontendService.site.isMicrosite(groupId)!false 
34/> 
35 
36<#-- Veranstaltungen-Detail, Publikationen-Detail --> 
37<#if currentUrl?contains("/-/content") > 
38 
39 <#assign journalArticle = FrontendService.article.getArticleToUrl(currentUrl, groupId?number)! > 
40 
41 <#if journalArticle?has_content> 
42 <#if journalArticle.resourcePrimKey??> 
43 <#assign primaryKey = journalArticle.resourcePrimKey?number > 
44 <#elseif journalArticle.classPK??> 
45 <#assign primaryKey = journalArticle.classPK?number > 
46 </#if> 
47 
48 <#assign 
49 jsonString = FrontendService.article.getWebcontent(primaryKey) 
50 json = FrontendService.json.parseAsJson(jsonString) 
51 /> 
52 
53 
54 <@debugJsonString jsonString "ADT_KASDE_MARGINALSPALTE" /> 
55 
56 <#if hasContent('title', locale, json)> 
57 <#assign 
58 pageName = "" 
59 title = " - " + getValueForLanguage("title", languageId, json, "first") 
60 /> 
61 <#if isMicrosite > 
62 <#assign 
63 pageGroup = layout.getGroup() 
64 pageName = " - " + htmlUtil.escape(pageGroup.getDescriptiveName()) 
65 /> 
66 </#if> 
67  
68 </#if> 
69 
70 <#assign content = getMarginalContent(json, locale, primaryKey, FrontendService, JournalArticleLocalService, themeDisplay) >  
71 
72 
73 <#if hasContent('ausgebucht', locale, json)> 
74 <#assign content = content + { "ausgebucht" : getValueForLanguage('ausgebucht', locale, json, "first") }> 
75 </#if> 
76 
77 <#if hasContent('storniert', locale, json)> 
78 <#assign content = content + { "storniert" : getValueForLanguage('storniert', locale, json, "first") }> 
79 </#if> 
80 
81 <#if hasContent('document_pdfDMTBASICDOCUMENT', locale, json)> 
82 <#assign 
83 pdfDocumentString = getValueForLanguage('document_pdfDMTBASICDOCUMENT', locale, json, "first") 
84 pdfDocument = FrontendService.json.parseAsJson(pdfDocumentString) 
85 fileEntry = FrontendService.media.getFileEntry(pdfDocument.uuid, pdfDocument.groupId?number)!/> 
86 <#if fileEntry?has_content> 
87 <#assign 
88 linkToThumbnail = FrontendService.link.getThumbnailSrc(fileEntry , themeDisplay) 
89 covermedia = getDefaultMediaObject(linkToThumbnail, "pdf cover") 
90 covermedia = covermedia + {"hrefSource" : content.pdfBasicDocumentUrl.url } 
91 content = content + { "covermedia": covermedia } 
92 /> 
93 </#if> 
94 </#if> 
95 
96 <#if layouttpl?contains("LAYOUT_KASDE_VERANSTALTUNGEN_DETAIL")> 
97 <#assign calendar = FrontendService.event.createCalendarFile(primaryKey, locale) /> 
98 <#assign content = content + {"calendar": calendar } /> 
99 </#if> 
100 <#elseif (editmode?? && editmode)> 
101 <@errorMessage languageUtil.get(locale, "kein.journalArticle.gefunden") "ADT_KASDE_MARGINALSPALTE" layouttpl /> 
102 </#if> 
103 
104<#-- Themen-Detail and others --> 
105<#else> 
106 <#-- content in marginalspalte --> 
107 <#if entries?has_content> 
108 <#assign 
109 entry = entries?first 
110 primaryKey = entry.classPK?number 
111 
112 jsonString = FrontendService.article.getWebcontent(primaryKey) 
113 json = FrontendService.json.parseAsJson(jsonString) 
114 /> 
115 <@debugJsonString jsonString "ADT_KASDE_MARGINALSPALTE" /> 
116 <@debugJson json "MARGINALSPALTE_CONTENT_JSON" /> 
117 
118 <#assign content = getMarginalContent(json, locale, primaryKey, FrontendService, JournalArticleLocalService, themeDisplay) > 
119 <#elseif (editmode?? && editmode)> 
120 <@errorMessage languageUtil.get(locale, "es.existieren.keine.entries") "ADT_KASDE_MARGINALSPALTE" layouttpl /> 
121 </#if> 
122</#if> 
123 
124 
125<#if content??> 
126 <#if layouttpl?contains("LAYOUT_KASDE_VERANSTALTUNGEN_DETAIL")> 
127 <#assign type = "veranstaltung" /> 
128 
129 <#elseif layouttpl?contains("LAYOUT_KASDE_PUBLIKATIONEN_DETAIL")> 
130 <#assign type = "publikation" /> 
131 <#elseif layouttpl?contains("LAYOUT_KASDE_THEMEN_DETAIL")> 
132 <#assign type = "thema" /> 
133 <#else> 
134 <#assign type = "default" /> 
135 </#if> 
136 
137 <#assign content = content + {"type": type } /> 
138 <@debugJsonString content "ADT_KASDE_MARGINALSPALTE_CONTENT" /> 
139 <@PMMarginalspalte "ADT_KASDE_MARGINALSPALTE" content AMArticle AMPerson AMVenue AMPricing AMMediaElement AMDatetime AMMap AMMarginalContent AMMarginalLinks/> 
140<#elseif (editmode?? && editmode)> 
141 <@errorMessage languageUtil.get(locale, "entries.enthalten.keinen.content") "ADT_KASDE_MARGINALSPALTE" layouttpl /> 
142</#if> 

comment-portlet

Asset Publisher

About this series

The publications of the Development Policy Monitor are part of our Monitor publication series. The Monitor series deals with one main topic at a time from the perspective of KAS experts and places it in the political and social context on the basis of a few key points.