Cidades Sustentáveis

O Estudo

O Estudo Cidades Sustentáveis está sendo desenvolvido pelo CGEE para o Programa Tecnologias para Cidades Sustentáveis, da Secretaria de Ciência e Tecnologia para Inclusão Social (SECIS) do Ministério da Ciência, Tecnologia e Inovação (MCTI), com vistas ao desenvolvimento de uma estratégia de ação para o tema dentro do Ministério através da construção de uma agenda de CTI.

 

Objetivos

O Estudo tem como objetivo identificar potenciais papeis para o MCTI fomentar soluções de CTI à desafios atuais e futuros relacionados à cidades sustentáveis, bem como apontar possíveis passos para o desenho de políticas de CTI que levem em consideração o território e seu contexto. Nesse contexto, são sete os objetivos específicos:

  • Definir um conceito de cidade sustentável operacional ao MCTI no seu Programa Tecnologias para Cidades Sustentáveis da SECIS;
  • Identificar os principais desafios para que as cidades sejam mais sustentáveis;
  • Mapear possíveis soluções aos principais desafios identificados, tanto atuais como futuros, para o desenvolvimento de cidades sustentáveis;
  • Selecionar potenciais critérios para que o MCTI possa priorizar demandas e potenciais soluções a serem fomentadas ou induzidas;
  • Pesquisar formas de se usar o contexto territorial como elemento para balizar políticas e investimentos de CTI;
  • Propor uma agenda de CTI que aponte potenciais papeis para o MCTI fomentar soluções integradas em alinhamento com atores selecionados do SNCTI; e
  • Dar subsídios para orientar o desenho e/ou implementação de políticas de CTI para alavancar uma estratégia de ação para o tema “cidades sustentáveis”.

 

Abordagem metodológica

O estudo foi realizado em cinco etapas, a saber:

  • Etapa 1. Escopo do estudo: caracterização da demanda, definição de contornos e planejamento das atividades do estudo;
  • Etapa 2. Diagnóstico: levantamento e análise de informações e de referências bibliográficas acerca de conceitos e dos desafios e soluções associadas para o desenvolvimento de cidades sustentáveis, bem como mapeamento de stakeholders;
  • Etapa 3. Exploração de Alternativas: exercício criativo visando a construção de alternativas de futuro para identificar pressupostos antecipatórios e fomentar um debate acerca de desafios e soluções associadas, além de um conceito de cidade sustentável que seja apropriado ao MCTI e de possíveis papeis a serem fomentados pelo Ministério e atores selecionados do SNCTI;
  • Etapa 4. Priorização: refinamento e validação dos achados nas três etapas anteriores, além da seleção de critérios de priorização a serem potencialmente usados pelo MCTI para fomentar soluções contextualizadas em alinhamento com atores selecionados do SNCTI; e
  • Etapa 5. Recomendação: definição das ações a serem fomentadas pelo MCTI através da proposta de uma agenda de CTI.

Em cada Etapa foram realizadas diversas reuniões com o MCTI, objetivando analisar o progresso do estudo e indicar oportunidades de correção de rumo.

 

Equipe CGEE

Diretor Supervisor:

Antônio Galvão

Coordenador:

Cristiano Cagnin

Equipe:

Raiza Fraga, Beatriz Vilela, Ivone Oliveira e Katia de Alencar

Colaboradores:

Haroldo Torres e Maurício Broinizi

 

Vídeos

Sem publicações relacionadas

Sem produtos pactuados relacionados

Sem eventos relacionados

Um erro ocorreu enquanto processava o modelo.
The following has evaluated to null or missing:
==> tempDDMFormFieldsReferencesMap["subtitle"]  [in template "11501720881606#20120#PROJECT_RELATED_NEWS" at line 47, column 41]

----
Tip: It's the final [] step that caused this error, not those before it.
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: subtitleField = tempDDMFormFieldsRefe...  [in template "11501720881606#20120#PROJECT_RELATED_NEWS" at line 47, column 25]
----
1<#assign
 
2    assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")
 
3    groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService")
 
4    vocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")
 
5/>
 
6
 
7<div class="news-home-wrapper d-flex">
 
8    <#assign 
 
9        groupFriendlyURL = groupLocalService.getGroup(groupId?number).getFriendlyURL()
 
10        hasRelatedNews = false
 
11    />
 
12    
 
13    <#if projectRelatedNews.getSiblings()?has_content>
 
14        <#list projectRelatedNews.getSiblings() as cur_projectRelatedNews>
 
15            <#assign
 
16                webContentData = jsonFactoryUtil.createJSONObject(cur_projectRelatedNews.getData())
 
17            />
 
18            
 
19            <#if webContentData?? && webContentData.assetEntryId??>
 
20                <#assign
 
21                    newsAssetEntryId = webContentData.assetEntryId
 
22                    hasRelatedNews = true
 
23                />
 
24                
 
25                <#if newsAssetEntryId?has_content>
 
26                    <#assign
 
27                        relatedAssetEntry = assetEntryLocalService.getEntry(getterUtil.getLong(newsAssetEntryId))
 
28                        relatedAssetRenderer = relatedAssetEntry.getAssetRenderer()
 
29                        newsCategory = []
 
30                    />
 
31                    
 
32                    <#-- Obter categorias do vocabulário "Categoria de Notícias" -->
 
33                    <#list relatedAssetEntry.getCategories() as category>
 
34                        <#assign vocabulary = vocabularyLocalService.getAssetVocabulary(category.vocabularyId) />
 
35                        <#if vocabulary.getName()?lower_case == "categoria de notícias">
 
36                            <#assign newsCategory = newsCategory + [category.getTitle(locale)] />
 
37                        </#if>
 
38                    </#list>
 
39                    
 
40                    <#assign
 
41                        tempDDMFormFieldValuesMap = relatedAssetRenderer.getDDMFormValuesReader().getDDMFormValues().getDDMFormFieldValuesMap()
 
42                        tempDDMFormFieldsReferencesMap = relatedAssetRenderer.article.DDMStructure.DDMForm.getDDMFormFieldsReferencesMap(true)
 
43                        
 
44                        entryCoverField = tempDDMFormFieldsReferencesMap["cover"].name
 
45                        entryCoverJSON = jsonFactoryUtil.createJSONObject(tempDDMFormFieldValuesMap[entryCoverField][0].getValue().getString(locale))
 
46                        
 
47                        subtitleField = tempDDMFormFieldsReferencesMap["subtitle"].name
 
48                        subtitle = tempDDMFormFieldValuesMap[subtitleField][0].getValue().getString(locale)
 
49                        
 
50                        dateField = tempDDMFormFieldsReferencesMap["date"].name
 
51                        dateValue = tempDDMFormFieldValuesMap[dateField][0].getValue().getString(locale)
 
52                        date = dateUtil.parseDate("yyyy-MM-dd", dateValue, locale)
 
53                        
 
54                        displayPageUrl = "/web" + groupFriendlyURL + "/w/" + relatedAssetRenderer.getUrlTitle()
 
55                    />
 
56
 
57                    <a class="news-card btn-outline-primary p-4 text-decoration-none text-left" href="${displayPageUrl}">
 
58                        <div class="news-card-category d-flex flex-row flex-wrap align-items-center mb-2">
 
59                            <#if newsCategory?size gt 0>
 
60                                <#list newsCategory as categoryName>
 
61                                    <span class="category-badge etiqueta-pequena text-uppercase text-primary-darken">
 
62                                        ${categoryName}
 
63                                    </span>
 
64                                </#list>
 
65                            <#else>
 
66                                <span class="category-badge bg-transparent etiqueta-pequena text-uppercase text-primary-darken">
 
67                                    <@liferay.language key="no-category" />
 
68                                </span>
 
69                            </#if>
 
70                        </div>
 
71
 
72                        <#if entryCoverJSON.url?has_content>
 
73                            <div class="news-card-image-wrapper overflow-hidden">
 
74                                <img class="w-100 h-100" alt="${entryCoverJSON.alt!'article'}" src="${entryCoverJSON.url}" />
 
75                            </div>
 
76                        </#if>
 
77
 
78                        <div class="news-card-body">
 
79                            <h3 class="news-card-title text-primary-darken mt-2">
 
80                                ${webContentData.title}
 
81                            </h3>
 
82
 
83                            <span class="text-uppercase text-primary-darken etiqueta-pequena-leve mb-2">
 
84                                ${dateUtil.getDate(date, "d", locale)}
 
85                                <@liferay.language key="of" />
 
86                                ${dateUtil.getDate(date, "MMMM, yyyy", locale)}
 
87                            </span>
 
88
 
89                            <div class="news-card-description-wrapper text-primary-darken corpo-pequeno">
 
90                                <p>${subtitle}</p>
 
91                            </div>
 
92                        </div>
 
93                    </a>
 
94                </#if>
 
95            </#if>
 
96        </#list>
 
97    </#if>
 
98    
 
99    <#if !hasRelatedNews>
 
100        <h2 class="my-4 px-4"><@liferay.language key="no-related-news" /></h2>
 
101    </#if>
 
102</div>
 
103
 
104<style>
 
105    .news-home-wrapper {
 
106        background-color: var(--secondaryLightColor, #FFFFF6);
 
107        overflow-x: auto;
 
108    }
 
109    
 
110    .news-home-wrapper .news-card:first-child {
 
111        border-left: 1px solid var(--body-bg);
 
112    }
 
113    
 
114    .news-home-wrapper .news-card {
 
115        border-right: 1px solid var(--body-bg);
 
116        max-width: 25rem;
 
117    }
 
118
 
119    .news-home-wrapper .news-card .news-card-category {
 
120        gap: 1rem;
 
121    }
 
122
 
123    .news-home-wrapper .news-card .news-card-image-wrapper {
 
124        height: 9rem;
 
125        border-radius: 32px;
 
126    }
 
127
 
128    .news-home-wrapper .news-card .news-card-image-wrapper img {
 
129        object-fit: cover;
 
130    }
 
131
 
132    .news-home-wrapper .news-card-image-wrapper:has(img:not([src])),
 
133    .news-home-wrapper .news-card-image-wrapper:has(img[src=""]) {
 
134        display: none;
 
135    }
 
136
 
137    .news-home-wrapper .news-card .news-card-image-wrapper img:not([src]),
 
138    .news-home-wrapper .news-card .news-card-image-wrapper img[src=""] {
 
139        display: none;
 
140    }
 
141
 
142    .news-home-wrapper .news-card .news-card-body .news-card-title a,
 
143    .news-home-wrapper .news-card .news-card-body .news-card-title a:hover {
 
144        color: var(--primaryDarkenColor);
 
145    }
 
146
 
147    .news-home-wrapper .news-card .news-card-body .news-card-description-wrapper {
 
148        display: -webkit-box;
 
149        line-clamp: 3;
 
150        -webkit-line-clamp: 3;
 
151        -webkit-box-orient: vertical;
 
152        overflow: hidden;
 
153    }
 
154	
 
155    @media screen and (max-width: 768px) {
 
156        .news-home-wrapper {
 
157            overflow-x: scroll;
 
158        }
 
159        
 
160        .news-home-wrapper .news-card {
 
161            min-width: 17.5rem;
 
162            width: 85%;
 
163        }
 
164    }
 
165</style> 

Sem projetos relacionados

Apresentação do Estudo - PDF

Resumo do Estudo - PDF

Sem relatórios relacionados