Ocorreu um erro ao processar o template.
The following has evaluated to null or missing: ==> obj.getStartDate() [in template "20101#20127#DISCUSSION_DOC_DETAILS_TEMPLATE" at line 192, column 60] ---- Tip: If the failing expression is known to be 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: ${obj.getStartDate()} [in template "20101#20127#DISCUSSION_DOC_DETAILS_TEMPLATE" at line 192, column 58] ----
1<style type="text/css">
2
3 .information-container {
4 min-height: 15rem;
5 padding-top: 1rem;
6 padding-bottom: 1rem;
7 font-size: 1rem;
8 }
9
10 .information-container .col-md-9 {
11 padding-right: 80px;
12 }
13
14 .information-container .col-md-9 .entity-paragraph {
15 display: inline-block;
16 background-color: DarkGrey;
17 color: White;
18 padding-top: 0.25rem;
19 padding-bottom: 0.25rem;
20 padding-left: 2rem;
21 padding-right: 2rem;
22 border-radius: 5rem;
23 }
24
25 .information-container .copyright-container {
26 text-align: center;
27 }
28
29 .information-container .copyright-container .share-container {
30 background-color: WhiteSmoke;
31 color: #729FCF;
32 text-align: left;
33 margin-top: 1rem;
34 padding: 1.5rem;
35 }
36
37 .information-container .copyright-container .share-container .col-md-3 {
38 width: 2rem;
39 height: 2rem;
40 padding: 0.25rem;
41 }
42
43 .information-container .copyright-container .share-container .col-md-3:nth-child(n+5) {
44 margin-top: 0.5rem;
45 }
46
47 .download-container {
48 display: flex;
49 margin-bottom: 1px;
50 }
51
52 .download-container div {
53 display: flex;
54 flex-direction: column;
55 align-items: center;
56 text-align: center;
57 width: 100px;
58 height: 75px;
59 background-color: WhiteSmoke;
60 padding: 5px;
61 margin-right: 1px;
62 word-break: break-all;
63 overflow: hidden;
64 text-overflow: ellipsis;
65 }
66
67 .download-container div img {
68 width: 25px;
69 height: 25px;
70 }
71
72 .download-container div span {
73 color: #222E5E;
74 font-size: small;
75 }
76
77 .download-container div:first-child {
78 width: 75px;
79 height: 75px;
80 background-color: LightGrey;
81 margin-right: 0px;
82 }
83
84 .download-container div:first-child img {
85 position: relative;
86 top: 50%;
87 transform: translateY(-50%);
88 width: 35px;
89 height: 35px;
90 }
91
92
93 .consultant-block {
94 padding: 20px 20px 10px 20px;
95 background-color: #cccccc;
96 }
97
98
99 .consultant-block h5 {
100 font-size: 16px;
101 text-transform: uppercase;
102 margin: 0;
103 border-bottom: 2px solid #232f5d;
104 padding-bottom: 5px;
105 }
106
107 .cons-inner-block {
108 display: flex;
109 flex-wrap: wrap;
110 justify-content: space-evenly;
111 text-align: center;
112 }
113
114 .cons-inner-block ul{
115 padding: 0;
116 display: flex;
117 justify-content: space-evenly;
118 width: 100%;
119 margin: 0;
120 margin: 10px 0;
121 flex-wrap: wrap;
122 }
123
124 .cons-inner-block li {
125 list-style: none;
126 display: flex;
127 flex-direction: column;
128 padding: 0 8px;
129 margin-bottom: 10px;
130 }
131
132 .cons-inner-block li p {
133 margin: 0;
134 font-size: 14px;
135 font-weight: 600;
136 color: #000;
137 margin-bottom: 5px;
138 }
139
140 .cons-inner-block li span{
141 font-size: 14px;
142 }
143
144 .cons-inner-block li.days span{
145 font-size: 22px;
146 color: #232f5d;
147 font-weight: 600;
148 }
149
150 .summary{
151 font-weight: bold;
152 }
153
154</style>
155
156<#assign obj = customTemplateUtil.getDiscussionDoc(.vars['reserved-article-id'].getData(),.vars['reserved-article-version'].getData(),themeDisplay.getScopeGroupId(),themeDisplay.getPortalURL(),themeDisplay.getLanguageId())/>
157<#assign props = obj.getProperties() />
158
159<#assign pathThemeImages = themeDisplay.pathThemeImages />
160<#if pathThemeImages?contains("admin-theme")>
161 <#assign pathThemeImages = pathThemeImages?replace("admin-theme", "portal.theme.default") >
162</#if>
163
164<span class="gra--title-text">${obj.getTitle()}</span>
165<div class="gra--title-underline"> </div>
166<#if obj.getSubTitle()?has_content >
167 <span class="gra--title-text gra-title--sm">${obj.getSubTitle()}</span>
168</#if>
169
170<div class="information-container row">
171 <div class="col-md-9 col-xs-12 summary">
172 <p>${obj.getSummary()}</p>
173 </div>
174
175 <div class="col-md-9 col-xs-12">
176 <p>${obj.getBody()}</p>
177
178 <#if obj.getRules()?has_content >
179 <p>${props["discussion.rules"]}: <br/> ${obj.getRules()}</p>
180 </#if>
181
182 <div class="consultant-block">
183 <h5>${props["discussion.consultation.data"]}</h5>
184 <div class="cons-inner-block">
185 <ul>
186 <li class="days col-lg-3 col-md-6">
187 <p>${props["discussion.initiated.to"]}</p>
188 <span>${obj.getDays()} ${props["discussion.days"]}</span>
189 </li>
190 <li class="col-lg-3 col-md-6">
191 <p>${props["discussion.term"]}</p>
192 <span>De ${obj.getStartDate()}</span>
193 <span>a ${obj.getExpirationDate()}</span>
194 </li>
195 <li class="col-lg-3 col-md-6">
196 <p>${props["discussion.consultation.status"]}</p>
197 <span class="chg-color">${obj.getSituationStatus()}</span>
198 </li>
199 <li class="col-lg-3 col-md-6">
200 <p>${props["discussion.promoting.entity"]}</p>
201 <span>${obj.getEntity()}</span>
202 </li>
203 </ul>
204 </div>
205 </div>
206 </div>
207
208 <div class="copyright-container col-md-3 col-xs-12">
209 <#assign liferay_portlet = taglibLiferayHash["/META-INF/liferay-portlet-ext.tld"] /> <@liferay_portlet["runtime"] instanceId="3er4" portletName="portal_portlet_print_PrintPortlet" />
210 <#assign liferay_portlet = taglibLiferayHash["/META-INF/liferay-portlet-ext.tld"] /> <@liferay_portlet["runtime"] instanceId="3er4" portletName="portal_portlet_socialShare_socialSharePortlet" />
211 </div>
212</div>
213
214<#if 0 < obj.getAudios()?size >
215 <div class="download-container">
216 <div>
217 <img src="${pathThemeImages}/audio_detail.svg">
218 </div>
219
220 <#list obj.getAudios() as cur_attachments>
221 <div>
222 <a href="${cur_attachments.getAttachmentURL()}"> <span>${cur_attachments.getAttachmentName()}</span> </a>
223 </div>
224 </#list>
225 </div>
226</#if>
227
228<#if 0 < obj.getOthers()?size >
229 <div class="download-container">
230 <div>
231 <img src="${pathThemeImages}/attachment_detail.svg">
232 </div>
233
234 <#list obj.getOthers() as cur_attachments>
235 <div>
236
237 <#if cur_attachments.getType()?starts_with("DOCUMENT")>
238 <img src="${pathThemeImages}/attachment_document.svg">
239 <#elseif cur_attachments.getType()?starts_with("XLS")>
240 <img src="${pathThemeImages}/attachment_xls.svg">
241 <#elseif cur_attachments.getType()?starts_with("PDF")>
242 <img src="${pathThemeImages}/attachment_pdf.svg">
243 <#else>
244 <img src="${pathThemeImages}/attachment_detail.svg">
245 </#if>
246 <a href="${cur_attachments.getAttachmentURL()}"> <span>${cur_attachments.getAttachmentName()}</span> </a>
247 </div>
248 </#list>
249 </div>
250</#if>
251
252<#if guestEnable??>
253 <#if getterUtil.getBoolean(guestEnable.getData())>
254 <#assign guestEnableField = "yes" />
255 <#else>
256 <#assign guestEnableField = "no" />
257 </#if>
258
259 <input type="hidden" id="guestEnable" name="guestEnable" value="${guestEnableField}" />
260</#if>
261
262<#if !obj.getIsExpired()>
263 <#assign liferay_portlet = taglibLiferayHash["/META-INF/liferay-portlet-ext.tld"] />
264 <@liferay_portlet["runtime"] instanceId="3er4" portletName="com_gra_gov_publicDiscussionReview_PublicDiscussionReviewPortlet" />
265</#if>