An error occurred while processing the template.
The following has evaluated to null or missing: ==> serviceLocator.findService("com.liferay.portal.service.GroupLocalService") [in template "20155#20195#276660" at line 216, column 26] ---- 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 group = serviceLocator.findSe... [in template "20155#20195#276660" at line 216, column 9] ----
1<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
2<#assign curArticle = journalArticleLocalService.getArticle(groupId, .vars['reserved-article-id'].getData())>
3<#if locale.getLanguage() == "es" || locale.getLanguage() == "ca">
4 <#if getterUtil.getBoolean(Reservada.getData())>
5 <#assign url = "/" + locale.getLanguage() + "/sobre-tmb/treballa-amb-nosaltres/formulari-candidats?id=" + reference_number.getData() + "&type=student&reserved=true">
6 <#else>
7 <#assign url = "/" + locale.getLanguage() + "/sobre-tmb/treballa-amb-nosaltres/formulari-candidats?id=" + reference_number.getData() + "&type=student">
8 </#if>
9
10
11 <#assign target = "">
12 <#if URL_formulari_extern.getData()?has_content && URL_formulari_extern.getData()?has_content>
13 <#assign url = URL_formulari_extern.getData()>
14 <#assign target = "_blank">
15 </#if>
16 <#assign knownFormats = ["pdf", "doc", "jpg", "mov", "zip"]>
17 <#assign DLAppServiceUtil = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService")>
18
19 <div class="sidebar-body">
20 <div class="sidebar-body__container">
21 <div class="secondary grid__col-4">
22 <div class="page-preheader">
23 <h1 class="title title--1 page-header__title">
24 ${position.getData()}</h1>
25 <div class="page-header__intro truncate js-truncate-expand" data-expand-text="<@liferay.language key="view.more"/>
26 ">
27 <div class="truncate__content">
28 <p>
29 </p>
30 </div>
31 </div>
32 </div>
33 </div>
34 <div class="primary grid__col-8">
35 <div class="content intro">
36 <p>
37 <@liferay.language key="offer.reference.text"/>
38 ${reference_number.getData()}</p>
39 <p>
40 <@liferay.language key="offer.receipt.text"/>
41 : <#if request_date?has_content && request_date.getData()?has_content>
42 ${request_date.getData()} </#if>
43 </p>
44 <#if functions?has_content && functions.getData()?has_content>
45 <p>
46 ${functions.getData()}</p>
47 </#if>
48 </div>
49 <#if responsabilities?has_content && responsabilities.getData()?has_content>
50 <h2 class="title title--2">
51 ${responsabilities.getData()}</h2>
52 <#if responsabilities.list_resp.getSiblings()?has_content>
53 <div class="content">
54 <ul class="list list--standard">
55 <#foreach cur_resp in responsabilities.list_resp.getSiblings()>
56 <li class="list__item">
57 ${cur_resp.getData()}</li>
58 </#foreach>
59 </ul>
60 </div>
61 </#if>
62 </#if>
63
64 <h2 class="title title--2">
65 <@liferay.language key="offer.requirements.text"/>
66 </h2>
67 <#if list_requ.getSiblings()?has_content>
68 <div class="content">
69 <ul class="list list--standard">
70 <#foreach cur_reque in list_requ.getSiblings()>
71 <li class="list__item">
72 ${cur_reque.getData()}</li>
73 </#foreach>
74 </ul>
75 </div>
76 </#if>
77
78 <#if salary?has_content && salary.getData()?has_content>
79 <h2 class="title title--2">
80 ${salary.getData()}</h2>
81 <#if salary.list_salary.getSiblings()?has_content>
82 <div class="content">
83 <ul class="list list--standard">
84 <#foreach cur_sal in salary.list_salary.getSiblings()>
85 <li class="list__item">
86 ${cur_sal.getData()}</li>
87 </#foreach>
88 </ul>
89 </div>
90 </#if>
91 </#if>
92 <#if more_info?has_content && more_info.getData()?has_content>
93 <h2 class="title title--2">
94 ${more_info.getData()}</h2>
95 <#if more_info.list_more_info.getSiblings()?has_content>
96 <div class="content">
97 <ul class="list list--standard">
98 <#foreach cur_info in more_info.list_more_info.getSiblings()>
99 <li class="list__item">
100 ${cur_info.getData()}</li>
101 </#foreach>
102 </ul>
103 </div>
104 </#if>
105 </#if>
106 <#if more_info2?has_content && more_info2.getData()?has_content>
107 <h2 class="title title--2">
108 ${more_info2.getData()}</h2>
109 <#if more_info2.list_more_info2.getSiblings()?has_content>
110 <div class="content">
111 <ul class="list list--standard">
112 <#foreach cur_info2 in more_info2.list_more_info2.getSiblings()>
113 <li class="list__item">
114 ${cur_info2.getData()}</li>
115 </#foreach>
116 </ul>
117 </div>
118 </#if>
119 </#if>
120 <#if final_text?has_content && final_text.getData()?has_content>
121 <div class="content">
122 ${final_text.getData()}
123 </div>
124 </#if>
125
126 <#-- Documents
127 -->
128 <#if Document.getSiblings()?has_content>
129 <ul class="list list--files">
130 <#foreach cur_docfile in Document.getSiblings()>
131 <#if cur_docfile.Document_URL?has_content && cur_docfile.Document_URL.getData()?has_content>
132 <#assign docUrlList = cur_docfile.Document_URL.getData()?split("/")>
133 <#assign docUrlUuidNum = getterUtil.getInteger(docUrlList?size)-1>
134 <#assign docUrlNameNum = getterUtil.getInteger(docUrlList?size)-2>
135 <#assign docClassUuid = docUrlList[docUrlUuidNum]>
136 <#assign docClassUuidData = docClassUuid?split("?")>
137
138 <#if (getterUtil.getInteger(docClassUuidData?size)>
139 0)>
140 <#assign docClassUuid = docClassUuidData[0]>
141 </#if>
142
143 <#assign fileExtension = "">
144 <#assign fileSize = "">
145 <#assign fileEntry = "">
146
147 <#if cur_docfile.Visible_Name.getData()?has_content>
148 <#assign docName = cur_docfile.Visible_Name.getData()>
149 <#else>
150 <#assign docName = docUrlList[docUrlNameNum]>
151 <#assign docName = docName?replace("+", " ")>
152 </#if>
153
154 <#assign fileEntry = DLAppServiceUtil.getFileEntryByUuidAndGroupId(docClassUuid, groupId)>
155 <#assign fileSize = fileEntry.getSize()/1024>
156 <#assign fileVersion = fileEntry.getFileVersion()>
157 <#assign fileExtension = fileEntry.getExtension()?lower_case>
158
159 <#if knownFormats?seq_contains(fileExtension) && codeHTML?has_content && codeHTML != "true">
160 <#assign iconClass = "icon--file-" + fileExtension>
161 <#else>
162 <#assign iconClass = "icon--file-generic">
163 </#if>
164
165 <#assign accessibleDocName = "">
166
167 <#if cur_docfile.Accessible_Name.getData()?has_content>
168 <#assign accessibleDocName = cur_docfile.Accessible_Name.getData()>
169 </#if>
170
171 <li class="list__item">
172 <a class="file" href="${cur_docfile.Document_URL.getData()}" title="${accessibleDocName}" rel="external" target="_blank">
173 <span class="icon ${iconClass}">
174 </span>
175 <span class="file__name">
176 ${docName}</span>
177 <#if fileExtension?has_content && fileSize?has_content>
178 <span class="file__data">
179 [${fileExtension?upper_case}: ${fileSize?round} KB]</span>
180 </#if>
181 </a>
182 </li>
183 </#if>
184 </#foreach>
185 </ul>
186 </#if>
187
188 <#if !tmbPortalUtil.isExpiredContent(curArticle, locale)>
189 <div class="cta">
190 <div class="cta__text">
191 <p>
192 <@liferay.language key="label.formWorkWithUs.inputdata"/>
193 </p>
194 </div>
195 <div class="cta__actions">
196 <a href="${url}" target="${target}" class="button button--a">
197 <@liferay.language key="label.formWorkWithUs.button"/>
198 </a>
199 </div>
200 </div>
201 </#if>
202 </div>
203
204 </div>
205
206 <script type="text/javascript">
207
208 $(document).ready(function() {
209 localStorage["OFFER-ID-${reference_number.getData()}-${locale.getLanguage()}"] = "${position.getData()}";
210 });
211
212 </script>
213
214 </div>
215<#else>
216 <#assign group = serviceLocator.findService("com.liferay.portal.service.GroupLocalService").getGroup(groupId)>
217 <#assign articleId = group.getExpandoBridge().getAttribute("CONTENT_APPRENTICESHIP_OFFERS")>
218 <#assign webContent = journalContentUtil.getContent(groupId, articleId, "", "view", "en_US", xmlRequest)>
219 <#if webContent?has_content>
220 <div class="sidebar-body">
221 <div class="sidebar-body__container">
222 ${webContent} ?
223 </div>
224 </div>
225
226 </#if>
227</#if>