Asset Publisher

Exploring Coastal Hazards: XBeach & SFINCS Free User Conference

An error occurred while processing the template.
Java method "nl.deltares.portal.utils.impl.DsdParserUtilsImpl.getRegistration(long, String)" threw an exception when invoked on nl.deltares.portal.utils.impl.DsdParserUtilsImpl object "nl.deltares.portal.utils.impl.DsdParserUtilsImpl@7f07ff4b"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign registration = dsdParserUtils...  [in template "4257214#4257249#SESSION-1.0.1" at line 34, column 5]
----
1<#-- DO NOT LOAD SESSIONS when in search resutls -->  
2<#assign portletName = themeDisplay.getPortletDisplay().getPortletName() > 
3<#if !(portletName?ends_with("SearchResultsPortlet")) > 
4 
5    <style xmlns="http://www.w3.org/1999/html"> 
6        .videoThumbnail { 
7            width: 250px; 
8            border: 1px solid grey; 
9
10 
11        .icon-film { 
12            line-height: 72px; 
13            padding: 21px; 
14            border: 1px solid grey; 
15
16 
17        .presentation { 
18            margin-bottom: 24px; 
19
20 
21        .presentation_title { 
22            display: inline-block; 
23            min-width: 50%; 
24            vertical-align: middle; 
25            max-width: calc(100% - 300px); 
26
27 
28    </style> 
29    <#assign dsdParserUtils = serviceLocator.findService("nl.deltares.portal.utils.DsdParserUtils") /> 
30    <#assign dsdSessionUtils = serviceLocator.findService("nl.deltares.portal.utils.DsdSessionUtils") /> 
31    <#assign dsdJournalArticleUtils = serviceLocator.findService("nl.deltares.portal.utils.DsdJournalArticleUtils") /> 
32    <#assign articleId = .vars['reserved-article-id'].getData() /> 
33    <#assign urltitle=.vars['reserved-article-url-title'].data /> 
34    <#assign registration = dsdParserUtils.getRegistration(groupId,articleId) /> 
35    <#assign displayContext = dsdParserUtils.getDisplayContextInstance(articleId, themeDisplay) /> 
36    <#assign timeZoneId = registration.getTimeZoneId() /> 
37    <#assign timeZone = timeZoneUtil.getTimeZone(timeZoneId) /> 
38    <#assign room = registration.getRoom() /> 
39    <#if registration.isEventInPast() > 
40        <#assign isEventPast = "past-event"/> 
41    <#else> 
42        <#assign isEventPast = "upcoming-event"/> 
43    </#if> 
44    <#assign typeMap = dsdJournalArticleUtils.getStructureFieldOptions(groupId,"SESSION","registrationType", locale) /> 
45    <#if typeMap?? > 
46        <#assign typeDisplayName = typeMap[registration.getType()] /> 
47    <#else> 
48        <#assign typeDisplayName = registration.getType() /> 
49    </#if> 
50     
51    <#assign calDescription = ""> 
52 
53    <#assign price = registration.getPrice() /> 
54    <#assign vat = registration.getVAT() /> 
55    <#if registration.getCapacity() == 0 > 
56        <#assign available = ""  /> 
57    <#else>  
58        <#assign registrations = dsdSessionUtils.getRegistrationCount(registration) /> 
59        <#assign available = registration.getCapacity() - registrations /> 
60    </#if> 
61    <#assign siteUrl=themeDisplay.getSiteGroup().getDisplayURL(themeDisplay) /> 
62    <#assign cancellationExceeded = registration.isCancellationPeriodExceeded() />    
63    <div class="c-sessions page"> 
64        <div class="c-sessions__item ${isEventPast}"> 
65            <div class="clearfix"> 
66                <div class="media-section"> 
67                    <img class="c-sessions__item__image" src="${displayContext.getSmallImageURL()}" alt="${registration.getTitle()}" style="max-width:400px;max-height:400px;"/> 
68                </div> 
69                <div class="data-section"> 
70                    <div class="c-sessions__item__date"> 
71                        <#if registration.isToBeDetermined() > 
72                            <span></span> 
73                        <#else> 
74                            <span>${dateUtil.getDate(registration.getStartTime(), "dd", locale, timeZone)}</span> 
75                            ${dateUtil.getDate(registration.getStartTime(), "MMM", locale, timeZone)} 
76                        </#if> 
77                    </div> 
78                    <h3 class="c-sessions__item__title h1">${registration.getTitle()}</h3> 
79                    <#assign calDescription += (registration.getTitle() + "<br/>") /> 
80                    <#if !registration.isOpen() || registration.isEventInPast() > 
81                        <b>${languageUtil.get(locale, "dsd.theme.session.closed")}</b> 
82                    </#if> 
83                    <p class="c-sessions__item__time-date-place"> 
84                    <#if registration.isMultiDayEvent() > 
85                        <#if registration.isDaily() > 
86                            <#assign dateString = dateUtil.getDate(registration.getStartTime(), "dd MMM yyyy", locale, timeZone) 
87                            + "&nbsp;-&nbsp;" + dateUtil.getDate(registration.getEndTime(), "dd MMM yyyy", locale, timeZone) /> 
88                            <#assign timeString = displayContext.getStartTime() + "&nbsp;-&nbsp;" +  displayContext.getEndTime() + " (" + timeZoneId + ")" /> 
89                            <span class="c-sessions__item__time-date-place__date"> 
90                                ${dateString} 
91                            </span> 
92                            <span class="c-sessions__item__time-date-place__time"> 
93                                ${timeString} 
94                            </span> 
95                        <#else> 
96                            <#assign periods = registration.getStartAndEndTimesPerDay() /> 
97                            <#list periods as period > 
98                                <#assign dateString = dateUtil.getDate(period.getStartDate(), "dd MMM yyyy", locale, timeZone) /> 
99                                <#assign timeString = dateUtil.getDate(period.getStartDate(), "HH:mm", locale, timeZone) 
100                                + "&nbsp;-&nbsp;" + dateUtil.getDate(period.getEndDate(), "HH:mm", locale, timeZone) 
101                                + " (" + timeZoneId + ")" /> 
102                                <span class="c-sessions__item__time-date-place__date"> 
103                                    ${dateString} 
104                                </span> 
105                                <span class="c-sessions__item__time-date-place__time"> 
106                                    ${timeString} 
107                                </span> 
108                            </#list> 
109                        </#if> 
110                    <#elseif registration.isToBeDetermined() > 
111                        <span class="c-sessions__item__time-date-place__date"> 
112                            ${languageUtil.get(locale, "dsd.theme.session.tobedetermined")} 
113                        </span> 
114                    <#else> 
115                        <#assign dateString = dateUtil.getDate(registration.getStartTime(), "dd MMM yyyy", locale, timeZone) /> 
116                        <#assign timeString = displayContext.getStartTime() + "&nbsp;-&nbsp;" + displayContext.getEndTime() + " (" + timeZone.getID() + ")" /> 
117                        <span class="c-sessions__item__time-date-place__date"> 
118                            ${dateString} 
119                        </span> 
120                        <span class="c-sessions__item__time-date-place__time"> 
121                            ${timeString} 
122                        </span> 
123                    </#if> 
124                    <br/> 
125                    <span class="c-sessions__item__time-date-place__place"> 
126                        <img src="${themeDisplay.getPathThemeImages()}/dsd/${registration.getType()?lower_case}.png" 
127                             alt=""> ${typeDisplayName} </img> 
128                        <#assign calDescription += typeDisplayName + "<br/>"/> 
129                        <br/> 
130                        <br/> 
131                        ${registration.getCurrency()} 
132                        <#assign calDescription += registration.getCurrency()/> 
133                        <#if price == 0 > 
134                            ${languageUtil.get(locale, "dsd.theme.session.free")} 
135                            <#assign calDescription += (languageUtil.get(locale, "dsd.theme.session.free") + "<br/>") /> 
136                        <#else> 
137                            <#assign vatText = languageUtil.get(locale, "dsd.theme.session.vat")?replace("%d", vat) /> 
138                            ${registration.getPrice()}&nbsp;(${vatText}) 
139                            <#assign calDescription += (registration.getPrice() + "&nbsp;" +  vatText + "<br/>") /> 
140                        </#if> 
141                        <br/> 
142                        <#if registration.getEventId() gt 0 > 
143                            <#assign event = dsdParserUtils.getEvent(groupId, registration.getEventId()?string) /> 
144                        </#if> 
145                        ${languageUtil.get(locale, "dsd.theme.session.room")} : 
146                        <#if room??> 
147                            ${room.getTitle()} 
148                            <#if event?? && event.findBuilding(room)?? > 
149                                <#assign building = event.findBuilding(room) /> 
150                                -  ${languageUtil.get(locale, "dsd.theme.session.building")} : ${building.getTitle()} 
151                            </#if> 
152                        </#if> 
153                        <br/> 
154                        <#if registration.isOpen() && !registration.isEventInPast() > 
155                            ${languageUtil.get(locale, "dsd.theme.session.available")} : ${available} 
156                        </#if> 
157                    </span> 
158                    <br/> 
159                    <#list registration.getPresenters() as presenter > 
160                        <#assign expert = presenter /> 
161                        <#assign expertImageUrl = expert.getSmallImageURL(themeDisplay) /> 
162                        <span> 
163                            <#if expertImageUrl?? && expertImageUrl != ""> 
164                                <img class="expert-data__image" src="${expertImageUrl}" alt="expert image"/> 
165                            </#if> 
166                            <a href="mailto:${expert.getEmail()}">${expert.getName()}</a> 
167                        </span> 
168                    </#list> 
169                    <#assign isRegistered = dsdSessionUtils.isUserRegisteredFor(user, registration) /> 
170                    <span class="d-block"> 
171                         
172                        <#if isRegistered > 
173                            <a href="${displayContext.getUnregisterURL(renderRequest)}" class="btn-lg btn-primary" 
174                               role="button" aria-pressed="true"> 
175                                ${languageUtil.get(locale, "registrationform.unregister")} 
176                            </a> 
177                            &nbsp; 
178                            <a href="${displayContext.getUpdateURL(renderRequest)}" class="btn-lg btn-primary" 
179                               role="button" aria-pressed="true"> 
180                                 ${languageUtil.get(locale, "registrationform.update")} 
181                            </a> 
182				                    <#if cancellationExceeded > 
183                                <div> 
184                                    <#assign courseConditionsUrl = displayContext.getCourseConditionsUrl() /> 
185                                    <small><i>${languageUtil.get(locale, "registrationform.cancelExpired")?replace("{0}", courseConditionsUrl)}</i></small> 
186                                </div> 
187                            </#if> 
188                        <#else > 
189														<#if registration.canUserRegister(user.getUserId()) && themeDisplay.isSignedIn()  && available gt 0> 
190                                <a href="#" data-article-id="${articleId}" class="btn-lg btn-primary add-to-cart" 
191                                   role="button" aria-pressed="true"> 
192                                    ${languageUtil.get(locale, "shopping.cart.add")} 
193                                </a> 
194                            </#if> 
195                        </#if> 
196                        <#assign joinLink = dsdSessionUtils.getUserJoinLink(user, registration) /> 
197                        <#if joinLink?? && joinLink != ""> 
198                            <a href="${joinLink}" target="-_blank" class="btn-lg btn-primary" role="button" 
199                               aria-pressed="true"> 
200                                ${languageUtil.get(locale, "registrationform.join")} 
201                            </a> 
202                            <#assign calDescription += (languageUtil.get(locale, "registrationform.join") + ": " + joinLink )/> 
203                        </#if> 
204                        <div class="add-to-calendar c-session__item__calendar"></div> 
205                    </span> 
206                </div> 
207            </div> 
208        </div> 
209        <div class="c-sessions__item__description"> 
210            ${description.getData()} 
211        </div> 
212        <#if schedules?? && schedules.getSiblings()?has_content && validator.isNotNull(schedules.getSiblings()?first.getData())> 
213            <#list schedules.getSiblings() as cur_Schedule> 
214                <#if cur_Schedule.scheduleDate?has_content > 
215                    <h3 class="c-sessions__item__title h1"> 
216                        <#assign schedules_date_Data = getterUtil.getString(cur_Schedule.scheduleDate.getData())> 
217                        <#if validator.isNotNull(schedules_date_Data)> 
218                            <#assign schedules_date_DateObj = dateUtil.parseDate("yyyy-MM-dd", schedules_date_Data, locale)> 
219                            ${languageUtil.get(locale, "dsd.theme.session.schedule")} - 
220                            ${dateUtil.getDate(schedules_date_DateObj, "dd MMM yyyy", locale, timeZone)} 
221                        </#if> 
222                    </h3> 
223                </#if> 
224                <div class="c-sessions__item__description"> 
225                    ${cur_Schedule.getData()} 
226                </div> 
227            </#list> 
228        </#if> 
229        <#if (registration.getPresentations()?size > 0) > 
230            <div class="c-events__item__uploads"> 
231                <p class="bold">${languageUtil.get(locale, "dsd.theme.session.presentations")}</p> 
232                <#list registration.getPresentations() as presentation> 
233                    <#if presentation.isDownloadLink() > 
234                        <#assign iconClass = "icon-download-alt" /> 
235                    <#else > 
236                        <#assign iconClass = "icon-film" /> 
237                    </#if> 
238                    <#if presentation.getThumbnailLink()?? > 
239                        <#assign thumbnail = presentation.getThumbnailLink() /> 
240                    <#else> 
241                        <#assign thumbnail = "" /> 
242                    </#if> 
243                    <#assign viewURL = siteUrl + "/-/" + presentation.getJournalArticle().getUrlTitle() /> 
244                    <div class="presentation"> 
245                        <a href="${viewURL}"> 
246                            <#if thumbnail?? && thumbnail != ""> 
247                                <img class="videoThumbnail" src="${thumbnail}" alt="${presentation.getTitle()}"/> 
248                            <#else> 
249                                <i class=${iconClass}></i> 
250                            </#if> 
251                            <div class="presentation_title"> 
252                                <strong>${presentation.getTitle()}</strong> 
253                            </div> 
254                        </a> 
255                        <#if presentation.getPresenter() != "" > 
256                            <div> 
257                                &nbsp;&gt;&nbsp; 
258                                <span>${presentation.getPresenter()}</span> 
259                                <span>(${presentation.getOrganization()})</span> 
260                            </div> 
261                        </#if> 
262                    </div> 
263                </#list> 
264            </div> 
265        </#if> 
266</div> 
267<script> 
268    var myCalendar = createCalendar({ 
269        options: { 
270            class: '', 
271            id: '${articleId}' // You need to pass an ID. If you don't, one will be generated for you. 
272        }, 
273        data: { 
274            title: '${registration.getTitle()}',     // Event title 
275            start: new Date(${registration.getStartTime()?long}), 
276            end: new Date(${registration.getEndTime()?long}), 
277            // If an end time is set, this will take precedence over duration 
278            address: '${registration.getRoom().getTitle()}', 
279 
280            description: '${calDescription}' 
281
282    }); 
283 
284    document.querySelector('.add-to-calendar').appendChild(myCalendar); 
285 
286</script> 
287 
288</#if> 

Registration info - DSD-INT

REGISTRATION

1. Sign in (top right corner) using your MyDeltares account or register first if you don’t have an account yet.

Note: if you already have a DSD or OSS account but not yet a MyDeltares account, simply click Forgot Password? to initiate the setup of your MyDeltares account. After completing the password reset process, you'll be able to log in seamlessly.
 

2. Click <ADD TO CART> button for your session of interest.
 

3. Go to your “Shopping cart” (top right corner) to finalise your registration.
 

If you come across any problems with the registration, please contact our team at mydeltares@deltares.nl