Retningslinjer for fritak for deler av studium ved OsloMet på grunnlag av realkompetanse | Regelverk - Student
An error occurred while processing the template.
Java method "no.oslomet.liferay.service.customjournalservice.impl.JournalServiceImpl.getAccordions(com.liferay.portal.kernel.theme.ThemeDisplay, String, String, String, String, boolean)" threw an exception when invoked on no.oslomet.liferay.service.customjournalservice.impl.JournalServiceImpl object "no.oslomet.liferay.service.customjournalservice.impl.JournalServiceImpl@1c38be63"; see cause exception in the Java stack trace.
----
FTL stack trace ("~" means nesting-related):
- Failed at: #list journalService.getAccordions(th... [in template "10155#10195#590749" at line 154, column 17]
----
1<#assign breadCrumbService=serviceLocator.findService("no.oslomet.liferay.service.breadcrumbservice.api.BreadcrumbService")/>
2<#assign journalService=serviceLocator.findService("no.oslomet.liferay.service.customjournalservice.api.JournalService")/>
3<#assign urlService=serviceLocator.findService("no.oslomet.liferay.service.urlservice.api.UrlService")/>
4
5<#if themeDisplay??>
6 <#assign breadcrumbs = breadCrumbService.getBreadCrumbs(themeDisplay.getPlid(), locale, false)>
7</#if>
8
9<#assign displaydate = .vars['reserved-article-create-date'].data>
10<#assign modifydate = .vars['reserved-article-modified-date'].data>
11<#assign orgloc = locale>
12<#assign originalLocale = .locale>
13<#setting locale = localeUtil.getDefault()>
14<#assign displaydate = displaydate?datetime("EEE, d MMM yyyy HH:mm:ss Z")>
15<#assign modifydate = modifydate?datetime("EEE, d MMM yyyy HH:mm:ss Z")>
16<#assign locale = originalLocale>
17
18<#assign showNoEnglish = false />
19<#if (orgloc == "en_US" && journalService.shouldShowLanguageMessage(themeDisplay,.vars['reserved-article-id'].getData()))>
20 <#assign showNoEnglish = true />
21</#if>
22
23<#assign showNoNorwegian = false />
24<#if (orgloc == "nb_NO" && nonorwegian?? && getterUtil.getBoolean(nonorwegian.getData()))>
25 <#assign showNoNorwegian = true />
26</#if>
27
28<#macro l key>
29 ${languageUtil.get(orgloc, key)}
30</#macro>
31
32<#-- Main content -->
33<div class="main row-fluid">
34 <#-- Article -->
35 <article class="article article-static" aria-label="<@l "template.aria.main.article"/>">
36 <#if (showNoEnglish || showNoNorwegian)>
37 <div class="article-header">
38 <h1 title="${.vars['reserved-article-title'].data}" class="article-title">
39
40 <#if (retur?? && retur?length >0)>
41 <span class="header-back-to"> <a class="icon-circle-arrow-left previous-level" href="${urlService.decodeURL(retur)}" title="<@l "template.back.to.overview"/>"> <span class="helper-hidden-accessible"><@l "template.back.to.overview"/></span> </a> </span>
42 </#if>
43
44 ${.vars['reserved-article-title'].data}
45 </h1>
46
47 <#if showNoEnglish>
48 <div class="alert alert-info"><@l "template.static.article.info.no.english"/></div>
49 <#else>
50 <div class="alert alert-info"><@l "template.static.article.info.no.norwegian"/></div>
51 </#if>
52 </div>
53 <#else>
54 <div class="article-header">
55 <#-- Title -->
56 <h1 title="${.vars['reserved-article-title'].data}" class="article-title">
57
58 <#if (retur?? && retur?length >0)>
59 <span class="header-back-to"> <a class="icon-circle-arrow-left previous-level" href="${urlService.decodeURL(retur)}" title="<@l "template.back.to.overview"/>"> <span class="helper-hidden-accessible"><@l "template.back.to.overview"/></span> </a> </span>
60 </#if>
61
62 ${.vars['reserved-article-title'].data}
63 </h1>
64 <#-- Lead -->
65 <div class="article-lead lead clearfix">
66 <strong>
67 ${ingress.getData()}
68 </strong>
69 </div>
70 <#-- Article meta -->
71 <div class="article-body clearfix">
72 <div class="article-meta clearfix">
73 <div class="published"><@l "template.statisk.artikkel.published"/> <time datetime="${displaydate?string["yyyy-MM-dd"]}">${displaydate?string["dd.MM.yyyy"]}</time></div>
74 <div class="modified"><@l "template.statisk.artikkel.last.update"/> <time datetime="${modifydate?string["yyyy-MM-dd"]}">${modifydate?string["dd.MM.yyyy"]}</time></div>
75 </div>
76 </div>
77 </div>
78 <#-- Body pt1 -->
79 <#if (body1.getData()) == "" >
80 <#elseif (body1.getData()) == "" >
81 <#else>
82 <div class="article-body clearfix">
83 ${body1.getData()}
84 </div>
85 </#if>
86 <#-- Shortcuts -->
87 <#if actionbuttonalttext?? && actionbuttonalttext.getSiblings()?has_content>
88 <#if (actionbuttonalttext.getSiblings()[0].getData()?length > 0)>
89 <ul class="article-btn-group clearfix">
90 <#list actionbuttonalttext.getSiblings() as cur_actionbuttonalttext>
91 <li class="article-btn">
92 <div class="article-bordered">
93 <div class="title">
94 <#if cur_actionbuttonalttext.getChild("title")??>
95 ${cur_actionbuttonalttext.getChild("title").getData()}
96 </#if>
97 </div>
98 <div class="text">
99 ${cur_actionbuttonalttext.getData()}
100 </div>
101 </div>
102 </li>
103 </#list>
104 </ul>
105 </#if>
106 </#if>
107 <#-- Button -->
108 <#if calltoactiontext?has_content>
109 <#if (calltoactiontext.getData()?length > 0)>
110 <#if body2.getData()?has_content>
111 <#assign bodyextra = ""/>
112 <#else>
113 <#assign bodyextra = "nobody"/>
114 </#if>
115 <div class="hidden-print">
116 <div class="btn-wrapper cta-btn-wrapper-bord">
117 <a href="${calltoactiontext.getChild('calltoactionlink').getData()}" class="btn article-btn2-top article-btn2 btn-large btn-primary offset3 clearfix ${bodyextra}" title="${calltoactiontext.getData()}" role="button">
118 ${calltoactiontext.getData()}
119 </a>
120 </div>
121 </div>
122 </#if>
123 </#if>
124 <#-- Body pt2 -->
125 <#if body2.getData()?has_content>
126 <div class="article-body clearfix">
127 <#if body3.getData()?has_content>
128 <div class="row">
129 <div class="col-md-6">
130 ${body2.getData()}
131 </div>
132 <div class="col-md-6">
133 ${body3.getData()}
134 </div>
135 </div>
136 <#else>
137 ${body2.getData()}
138 </#if>
139 </div>
140 </#if>
141
142 <#if themeDisplay.locale == "nb_NO" && paragraph??>
143 <#assign name = paragraph/>
144 <#assign body = "body"/>
145 </#if>
146 <#if themeDisplay.locale == "en_US" && enparagraph??>
147 <#assign name = enparagraph/>
148 <#assign body = "enbody"/>
149 </#if>
150 <#if (name?? && name.getSiblings()?has_content)>
151 <#assign has_content = false/>
152 <#assign accordions>
153 <ul type="A" id="statisk-artikkel-toggle">
154 <#list journalService.getAccordions(themeDisplay,.vars['reserved-article-id'].getData(), .vars['reserved-article-version'].getData(), name["name"], body, true) as cur_item>
155 <#if (cur_item["name"]?? && cur_item["name"]?length > 0 && cur_item["body"]?? && cur_item["body"]?length > 0)>
156 <#assign has_content = true/>
157 <li class="statisk-artikkel-accordion">
158 <h2 data-hasher="statisk_avsnitt_${cur_item["id"]}" tabindex="0" class="sa-t-header toggler-header">
159 ${cur_item["name"]}
160 <div class="hash-hack" id="statisk_avsnitt_${cur_item["id"]}"></div>
161 </h2>
162 <div class="clearfix"></div>
163 <div class="sa-t-content toggler-content">
164 ${cur_item["body"]}
165 </div>
166 </li>
167 </#if>
168 </#list>
169 </ul>
170 <script>
171 AUI().ready("aui-toggler", function (A) {
172 new A.TogglerDelegate({
173 animated: false,
174 closeAllOnExpand: false,
175 container: "#statisk-artikkel-toggle",
176 content: ".sa-t-content",
177 expanded: false,
178 header: ".sa-t-header",
179 transition: {
180 duration: 0.2,
181 easing: "cubic-bezier(0, 0.1, 0, 1)"
182 },
183 after: {
184 init: function (e) {
185 if (!Liferay.trekkspilllhopper) {
186 Liferay.trekkspillhopper = {
187 hopp: function (id) {
188 Liferay.trekkspillhopper.targets[id].expand();
189 A.one('#'+Liferay.trekkspillhopper.targets[id].get('header').getAttribute('data-hasher')).scrollIntoView();
190 },
191 targets: {}
192 }
193 }
194 e.target.collapseAll();
195 if (e.target.items.length > 0) {
196 e.target.items.forEach(function (item) {
197 Liferay.trekkspillhopper.targets[item.get('header').getAttribute('data-hasher')] = item;
198 if (window.location.hash.substr(1)) {
199 if (item.get('header').getAttribute('data-hasher') === window.location.hash.substr(1)) {
200 item.expand();
201 A.one('#'+item.get('header').getAttribute('data-hasher')).scrollIntoView();
202 }
203 }
204 item.get('header').on('click', function (event) {
205 if (event.altKey) {
206 if (event.shiftKey) {
207 console.log('URL for intern direktelenke: javascript:Liferay.trekkspillhopper.hopp(\'' +
208 item.get('header').getAttribute('data-hasher')+'\');');
209 prompt("Bruk denne URL-en for intern direktelenking til trekkspill:",
210 'javascript:Liferay.trekkspillhopper.hopp(\'' +
211 item.get('header').getAttribute('data-hasher')+'\');');
212 } else {
213 console.log('URL for direktelenke: ' +
214 location.protocol + '//' + location.host + location.pathname + '#' + item.get('header').getAttribute('data-hasher'));
215 prompt("Bruk denne URL-en for direktelenking til trekkspill:",
216 location.protocol + '//' + location.host + location.pathname + '#' + item.get('header').getAttribute('data-hasher'));
217 }
218 }
219 });
220 item.get('header').on('', function(event) {
221 if (event.keyCode === 13) {
222 item.toggle();
223 }
224 });
225 document.addEventListener('keydown', function(event){
226 if (event.key === "f" && (event.ctrlKey || event.metaKey)) {
227 item.expand();
228 }
229 });
230 });
231 <#--
232 <#if !.vars['nonexpand']?? || !getterUtil.getBoolean(.vars['nonexpand'].getData())>
233 e.target.items[0].expand();
234 </#if>
235 -->
236 }
237 }
238 }
239 });
240 });
241 </script>
242 </#assign>
243 <#if has_content>
244 ${accordions}
245 </#if>
246 </#if>
247 </#if>
248 </article>
249</div>