CAO Patrimônio Público apresenta painel que reúne informações sobre cargos em comissão nos governos estadual e municipais - CAOs
CAO Patrimônio Público apresenta painel que reúne informações sobre cargos em comissão nos governos estadual e municipais
02/05/2024 - Os membros do Ministério Público de Pernambuco (MPPE) com atuação na defesa do Patrimônio Público contam com uma nova ferramenta para potencializar o trabalho de fiscalização das gestões públicas: o programa Livre Nomeação, idealizado pelo Centro de Apoio Operacional de Defesa do Patrimônio Público (CAO Patrimônio Público).
A grande novidade do Livre Nomeação foi a criação de um painel BI que reúne, em uma interface simples e acessível, os dados disponibilizados pelo Tribunal de Contas do Estado de Pernambuco (TCE-PE) sobre cargos comissionados.
O painel foi apresentado na última sexta-feira (26), a mais de 30 Promotores e Procuradores de Justiça do MPPE, em reunião virtual promovida pelo CAO Patrimônio Público.
De acordo com o coordenador do CAO, Promotor de Justiça Hodir Melo, o controle dos quadros funcionais dos Poderes Executivo e Legislativo dos municípios é uma atividade que exige dedicação permanente dos membros do MPPE.
"Com esse painel estruturado, vamos ter mais facilidade para identificar cargos em comissão irregulares, desrespeito à proporcionalidade entre servidores comissionados e efetivos, além de práticas como rachadinhas e servidores fantasmas. Teremos um argumento tangível para cobrar dos gestores públicos uma resolução dos problemas", detalhou.
Durante a apresentação, o analista ministerial Assis Clemente, da Coordenadoria Ministerial de Tecnologia da Informação, apresentou a interface do painel e suas funcionalidades.
"Essa é a primeira versão, que foi elaborada ouvindo alguns membros da área do Patrimônio Público. Estamos trabalhando para agregar outras informações e indicadores", ressaltou.
Para concluir a reunião, o CAO Patrimônio Público alertou os Promotores e Procuradores de Justiça que o projeto Livre Nomeação também disponibiliza, por meio do Google Drive do CAO, modelos de portarias, recomendações, termos de ajustamento de conduta relacionados ao tema.
The following has evaluated to null or missing: ==> fieldName.getValue().getString(locale) [in template "20097#20123#687741" at line 123, column 60] ---- 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: #assign dataNoticia = fieldName.getVa... [in template "20097#20123#687741" at line 123, column 37] ----
1<style>
2
3 .noticias-recentes{
4 background-color: #e5e5e5;
5 padding: 16px 5px;
6 margin:0px 10px;
7 border-radius:5px;
8 }
9
10 .noticias-recentes .tag-noticias{
11 color:#7d1f0d;
12 text-transform:uppercase;
13 font-weight:900;
14 }
15 .noticias-recentes .tag-noticias hr{
16 width:60%;
17 margin-top:-3px;
18 border:solid #FF2F2F 2px;
19 }
20 .noticias-recentes .logo{
21 width: 100%;
22 border-radius: 8px;
23 height: 100px;
24 background-position: center;
25 background-repeat: no-repeat;
26 background-size: cover;
27 }
28 .noticias-recentes .noticia{
29 position: relative;
30 padding: 10px;
31 }
32
33 .noticias-recentes .noticia:hover{
34 position: relative;
35 background: #fff;
36 border-radius: 8px;
37 scale: 1.02;
38 padding: 15px;
39 cursor:pointer;
40 transition: all ease-in 0.3s;
41 }
42 .noticias-recentes .noticia .data-noticia{
43 color:#FF2F2F;
44 font-size:20px;
45 text-align:left !important;
46 }
47
48 .noticias-recentes .noticia .title-desc .title{
49 display: -webkit-box;
50 margin: 0 auto;
51 line-height: 1.4;
52 -webkit-line-clamp: 4;
53 -webkit-box-orient: vertical;
54 overflow: hidden;
55 text-overflow: ellipsis;
56 color:#474747;
57 font-weight: bold !important;
58 font-size:20px;
59 }
60
61 .noticias-recentes .description * {
62 font-weight: 300 !important;
63 background: transparent!important;
64 font-size: initial!important;
65 opacity:0.5;
66 display: -webkit-box;
67 margin: 0 auto;
68 line-height: 1.4;
69 -webkit-line-clamp: 4;
70 -webkit-box-orient: vertical;
71 overflow: hidden;
72 text-overflow: ellipsis;
73 font-size:20px;
74}
75 .noticias-recentes .description p:first-child {
76 display: -webkit-box;
77 margin: 0 auto;
78 line-height: 1.4;
79 -webkit-line-clamp: 3;
80 -webkit-box-orient: vertical;
81 overflow: hidden;
82 text-overflow: ellipsis;
83 text-align: start !important;
84 font-weight:900 !important;
85 }
86
87 .noticias-recentes .description *:not(:first-child){
88 display: none;
89 }
90
91 </style>
92
93<#assign dlService=serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")>
94 <#assign
95 ddmFieldLocalService=serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMFieldLocalService") />
96
97 <div class="noticias-recentes container">
98 <#if entries?has_content>
99 <div class="tag-noticias pt-3 pb-2 pl-2">
100 <h4 class="font-weight-bold pl-2"> Mais Notícias </h4>
101 <hr>
102 </div>
103
104 <#list entries as curEntry>
105 <#if curEntry.getClassName()=="com.liferay.journal.model.JournalArticle">
106 <#assign assetRenderer=curEntry.getAssetRenderer() />
107 <#assign journalArticle=assetRenderer.getAssetObject() />
108 <#assign ddmStructure=journalArticle.getDDMStructure() />
109 <#assign ddmForm=ddmStructure.getDDMForm() />
110 <#assign ddmFormValues=ddmFieldLocalService.getDDMFormValues(ddmForm, journalArticle.getId()) />
111 <#assign ddmFormFieldValues=ddmFormValues.getDDMFormFieldValues() />
112 <#assign imageURL="/documents/" + curEntry.getGroupId() + "/" + curEntry.getEntryId() + "/" />
113 <#assign titulo = "" />
114 <#assign desc = "" />
115 <#assign jsonObj = "" />
116 <#assign viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, curEntry) />
117 <#if assetLinkBehavior != "showFullContent" && assetRenderer.getURLViewInContext(renderRequest, renderResponse, viewURL)??>
118 <#assign viewURL = assetRenderer.getURLViewInContext(renderRequest, renderResponse, viewURL) />
119 </#if>
120
121 <#list ddmFormFieldValues as fieldName>
122 <#if fieldName.getFieldReference()=='data'>
123 <#assign dataNoticia = fieldName.getValue().getString(locale) />
124 </#if>
125 <#if fieldName.getFieldReference() == 'descricao'>
126 <#assign desc = fieldName.getValue().getString(locale) />
127 </#if>
128 </#list>
129 <div class="noticia d-flex align-items-center flex-column mt-3 ">
130 <a class="stretched-link" href="${viewURL}"></a>
131 <p class="data-noticia w-100 d-block">
132 ${dataNoticia?split("-")?reverse?join("/")}
133 </p>
134 <div class="title-desc">
135 <h6 class="title">${curEntry.getTitle(locale)}</h6>
136 <div class="description mt-3"> ${desc}</div>
137 </div>
138 </div>
139 <hr class="mt-2 mb-2">
140 </#if>
141 </#list>
142 </div>
143 </#if>
144 </div>