
The following has evaluated to null or missing: ==> xPathSelector.selectSingleNode(rootElement) [in template "20097#20123#19677868" at line 193, column 30] ---- 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: news_title = xPathSelector.selectSing... [in template "20097#20123#19677868" at line 193, column 17] ----
1<style type="text/css">
2h3.uni-title__text--dark {
3 font-family: 'Bebas Neue', serif;
4 font-size: 3rem;
5 font-weight: 400;
6 color: #1d1d1b;
7 text-align: center;
8}
9.image_uninorte {
10 width: 100%;
11 background-position: center center;
12 background-size: cover!important;
13}
14.continuar-noticias .icon-right{
15 margin-left:0.5rem;
16}
17
18.body_card_uninorte {
19 padding: 10px;
20 min-width:40px;
21}
22.uni-card--grey {
23 background: #f4f4f4;
24}
25.uni-card__title {
26 font-family: 'Open Sans', sans-serif!important;
27 font-weight: bold!important;
28 font-style: italic!important;
29 font-size: 15px;
30 color: #aa2131;
31 margin: 0;
32 min-height: 60px;
33
34}
35.uni-card-link {
36 color: inherit;
37 text-decoration: none;
38}
39.uni-card-link:hover {
40 color: inherit;
41 opacity: .8;
42 transition: all .2s ease-in;
43}
44.uni-card__footer--align-right {
45 display: flex;
46 justify-content: flex-end;
47}
48.continuar-noticias {
49 font-family: 'Open Sans', sans-serif!important;
50 font-weight: 600!important;
51 font-size: 13px!important;
52 color: #1d1d1b;
53}
54.continuar-noticias:hover {
55 color: inherit;
56 opacity: .75;
57 transition: all .2s ease-in;
58}
59.uni-link--with-icon {
60 display: inline-flex;
61 align-items: center;
62}
63
64@media (min-width: 1200px){
65.container.adtnoticias {
66 max-width: 1140px;
67}
68}
69
70
71.uni-card-description {
72 font-family: 'Open Sans', sans-serif;
73 font-weight: 300;
74 font-size: 14px;
75 color: #1d1d1b;
76 min-height: 170px;
77 max-height:250px;
78}
79.uni-card__date {
80 color: #1d1d1b;
81 font-style: italic;
82 font-size: 15px;
83 margin-bottom: 15px;
84 display: block;
85}
86.ver-mas-noticias {
87 font-family: 'Open Sans', sans-serif!important;
88 font-weight: 600!important;
89 font-size: 17px!important;
90 margin: 0 auto;
91}
92.post-img {
93 height: auto;
94 overflow: hidden;
95 max-height: 160px;
96 min-width: 50px;
97}
98
99.adtnoticias .post-slide10{min-width: 50px;;padding-bottom:10px;margin:0 15px;position:relative;background:#1d1d1d;margin-bottom:2em; }
100.adtnoticias .owl-buttons{margin-top:2px;position:relative}
101.adtnoticias .owl-prev {position:absolute;left:-40px;bottom:18rem;padding:8px 17px; transition:background .5s ease}
102.adtnoticias .owl-prev span {
103 top: 14px;
104 left: 5px;
105 bottom: 0;
106 position: absolute;
107}
108.adtnoticias .owl-next {position:absolute;right:-40px;bottom:18rem;padding:8px 17px;transition:background .5s ease}
109.adtnoticias .owl-next span {
110 top: 12px;
111 right: 4px;
112 bottom: 0;
113 position: absolute;
114}
115.adtnoticias .owl-next:after,
116.adtnoticias .owl-prev:after{content:"\f053";font-family:FontAwesome;color:#1d1d1d;font-size:2.4rem;}
117.adtnoticias .owl-next:after{content:"\f054"}
118.adtnoticias .owl-next:hover,
119.adtnoticias .owl-prev:hover{/*background:#e74c3c*/}
120@media only screen and (max-width:990px){
121 .adtnoticias .post-slide10{margin:0 20px}
122 .adtnoticias .owl-prev {left:-20px;padding:5px 14px}
123 .adtnoticias .owl-next {right:-20px;padding:5px 14px}
124}
125@media only screen and (max-width:767px){
126 .adtnoticias .owl-prev {left:0;bottom:260px}
127 .adtnoticias .owl-next {right:0;bottom:260px}
128}
129.adtnoticias .owl-theme .owl-dots {
130 text-align: center;
131 -webkit-tap-highlight-color: transparent;
132}
133.adtnoticias .owl-theme .owl-dots .owl-dot.active span,
134.adtnoticias .owl-theme .owl-dots .owl-dot:hover span {
135 background: #aa2131;
136}
137.adtnoticias .owl-theme .owl-dots .owl-dot {
138 display: inline-block;
139 zoom: 1;
140}
141.adtnoticias .owl-theme .owl-dots .owl-dot span {
142 width: 12px;
143 height: 12px;
144 margin: 5px 7px;
145 background: #ccc;
146 display: block;
147 -webkit-backface-visibility: visible;
148 transition: opacity .2s ease;
149 border-radius: 30px;
150}
151</style>
152<#-- Truncate Text -->
153<#macro truncate_text text limit>
154
155 <#assign truncatedText = "" />
156
157 <#if text?length gt limit>
158
159 <#assign truncatedText = text?substring(0,limit)/>
160 <#assign truncatedText = truncatedText + "..."/>
161
162 ${truncatedText}
163
164 <#else>
165
166 ${text}
167
168 </#if>
169
170</#macro>
171
172<div class="container adtnoticias">
173
174 <div class="row">
175 <div class="col-md-12">
176
177 <#if entries?has_content>
178 <#list entries as curEntry>
179 <#assign
180 renderer = curEntry.getAssetRenderer()
181 className = renderer.getClassName()
182 />
183
184 <#assign
185
186 slash="/"
187 constantDocuments="documents"
188 journalArticle = renderer.getArticle()
189 document = saxReaderUtil.read(journalArticle.getContent())
190 rootElement = document.getRootElement()
191
192 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='tituloNoticia']")
193 news_title = xPathSelector.selectSingleNode(rootElement).getStringValue()
194
195 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='fecha']")
196 news_fecha = xPathSelector.selectSingleNode(rootElement).getStringValue()
197
198 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='imagenField']")
199 jsonImagenString = xPathSelector.selectSingleNode(rootElement).getStringValue()
200 jsonObjectImagen = jsonFactoryUtil.createJSONObject(jsonImagenString)
201
202 nombre_documento= jsonObjectImagen.getString('title')
203 groupIdDocumento = jsonObjectImagen.getString("groupId")
204 uuidDocumento = jsonObjectImagen.getString("uuid")
205 classPKDocumento = jsonObjectImagen.getString("classPK")
206 imagen= slash+constantDocuments+slash+groupIdDocumento+slash+classPKDocumento+slash+nombre_documento+slash+uuidDocumento
207
208 />
209
210 <#assign viewURL = "/web/grupo-prensa/noticia?articleId=${journalArticle.getArticleId()}&groupId=${journalArticle.getGroupId()}" >
211
212 <div class="post-slide10" >
213 <div class="post-img">
214 <img class="image_uninorte" src="${imagen}" alt="...">
215 </div>
216
217 <div class="card-body body_card_uninorte uni-card--grey" style="height:120px;">
218 <h4 class="uni-card__title">
219 <a href="${viewURL}" class="uni-card-link">
220 <#assign title = news_title />
221 <@truncate_text text=title limit=100 />
222 </a>
223 </h4>
224
225 <span class="uni-card__date">
226 <#assign fecha = news_fecha />
227 <@truncate_text text=fecha limit=100 />
228 </span>
229 <!--
230 <div class="uni-card-description mb-5">
231 ${stringUtil.shorten(curEntry.getSummary(locale), 300)}
232 </div>
233 -->
234
235 </div>
236
237 </div>
238
239 </#list>
240
241 </#if>
242
243 </div>
244 </div>
245
246</div>
247<script type="text/javascript" src="https://owlcarousel2.github.io/OwlCarousel2/assets/owlcarousel/owl.carousel.js"></script>
248<script type="text/javascript">
249
250</script>
PROYECTOS
Identidad digital
Área responsable: Dirección de Tecnología Informática y Comunicaciones y Dirección de Servicios Administrativos – Seguridad Física
El planteamiento del proyecto inició desde el año 2019 con la implementación de un piloto, sin embargo, debido a situaciones externas como la pandemia por covid-19 el proyecto tomo mayor fuerza y se adaptó a la nueva realidad, en donde deshabilitamos el uso de la huella dactilar y se decidió manejar todo el control de acceso por medio de la lectura de un código QR desde el celular. En un futuro se habilitará el acceso por medio de biometría facial.
Se implementó entonces una identificación digital que se puede generar en un dispositivo celular, reemplazando la impresión de un carné físico y que funciona por medio de la generación de un código QR dinámico para el ingreso a los diferentes controles de acceso del campus.
Características:
- La App IDUninorte se encuentra disponible tanto para dispositivos IOS como Android.
- La App genera un código QR, que es el que permite la apertura de molinetes y puertas.
- El código QR es único, variable en el tiempo, y se invalida una vez es utilizado.
- La App IDUninorte solo puede ser instalada en un solo dispositivo celular por usuario.
- Para la implementación de la Identidad Digital fue necesario realizar un cambio en los dispositivos de control de acceso del campus, los cuales ahora deben leer el código QR.
Beneficios:
- Minimizar la compra de activos involucrados en la impresión del carné tales como impresoras, tarjetas PVC, cintas, entre otros.
- Contribuir al cuidado del Medio Ambiente al minimizar el uso de elementos contaminantes.
- Reducir tiempos de espera en la atención al público para la obtención del carné.
- En caso de perdida, robo o daño del carné el usuario ya no debe asumir costos por el mismo.
- Facilitar la obtención del carné digital para miembros de la comunidad que se encuentran por fuera de la ciudad (autoservicio).
- Consolidar en uno solo todos los perfiles activos que puede tener una persona dentro de la comunidad universitaria (estudiante, profesor, colaborador administrativo, egresado, etc.)
- Se mantienen los mismo beneficios que se manejaban anteriormente como el préstamo de libros, ingreso a salas de usuario, etc.
CONTACTO DIRECTO: QUEREMOS CONOCER SU OPINIÓN
Nuestros Procesos y Servicios
- Comparta sus experiencias
- ¿Tiene una necesidad no resuelta?
- ¿Desea información o atención?
Ayúdenos a servir y mejorar.
El portal de Gestión Administrativa
- ¿Ha encontrado un enlace roto?
- ¿Es difícil encontrar la información que busca?