/o//commerce-media/accounts/-1/images/18553176?download=true

Scrum-Portlet Plus
DXP App
Analytics and Optimization
18553120

This is the "Plus" version of our established Scrum Portlet. It is addressed to Scrum teams that are looking for an application suiting their specific needs in project management and development. Since a comprehensive project documentation is often a key requirement, integrating software into the process is a common task. Derived from our personal experience, we aim at developing a portlet, that is adjusted specifically to the daily work of a Scrum team without slowing it down.

Compared to the free version, Scrum Portlet Plus offers several improvements and new features including:

• Liferay DXP and 7.0 CE support
• Scrum board optimization for high resolutions
• Fast task creation directly on the board
• Sprint reports in PDF and Excel format
• Ability to mark a Liferay user group as Scrum team
• Space for your project vision to always keep it in mind
• … and many more to come in future

The general key features of our Scrum Portlet include:

• Fully customizable drag & drop Scrum board
• Versioned document management
• Reports of sprint progress
• Time tracking and discussions
• Always up-to-date thanks to Ajax Push
• Manage several Scrum teams in one portal instance
• Individual color scheme per user
• Available in English and German
• Based on JSF 2.2 and PrimeFaces 6.1

DEVELOPER
Virhe tapahtui prosessoidessa esitysmallia.
The following has evaluated to null or missing:
==> publisePages.items  [in template "3192443#3192485#null" at line 36, column 38]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
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 publisePage = publisePages.items  [in template "3192443#3192485#null" at line 36, column 17]
----
1<#if themeDisplay?has_content> 
2	<#assign scopeGroupId = themeDisplay.getScopeGroupId() /> 
3</#if> 
4 
5<#if currentURL?has_content> 
6	<#if currentURL?contains('web')> 
7		<#assign 
8			index = 2 
9			partsUrl = currentURL?split('/') 
10			siteName = partsUrl[index..index]?join('/') 
11		/> 
12	</#if> 
13</#if> 
14 
15<#assign channel = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels?accountId=-1&filter=name eq 'Marketplace Channel' and siteGroupId eq '${scopeGroupId}'") /> 
16 
17<#if channel?has_content> 
18	<#assign channelId = channel.items[0].id /> 
19</#if> 
20 
21<#if (CPDefinition_cProductId.getData())??> 
22	<#assign productId = CPDefinition_cProductId.getData() /> 
23</#if> 
24 
25<#assign 
26	product = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels/"+ channelId +"/products/"+ productId +"?accountId=-1&nestedFields=productSpecifications") 
27	productSpecifications = product.productSpecifications![] 
28	catalogName=product.catalogName 
29/> 
30 
31<#if catalogName?has_content> 
32	<#assign publisePages=restClient.get("/c/publisherdetailses?filter=catalogName eq '${catalogName}'" ) /> 
33	<#assign redirectPath="https://marketplace-uat.liferay.com/e/publisher-details/29282497"/> 
34	 
35	<#if publisePages?has_content> 
36		<#assign publisePage=publisePages.items /> 
37			<#if publisePage?has_content> 
38						<#assign publisherDetail=publisePage[0]/> 
39			</#if> 
40	</#if> 
41</#if> 
42 
43<div> 
44	<#if productSpecifications?has_content> 
45		<#assign developerNames = productSpecifications?filter(item -> stringUtil.equals(item.specificationKey, "developer-name")) /> 
46 
47		<#if developerNames?has_content> 
48			<#list developerNames as developerName> 
49				<#if publisherDetail?has_content> 
50					<a class="bg-neutral-8" href="${redirectPath}/${publisherDetail.id}"> 
51						${developerName.value} 
52					</a> 
53				<#else> 
54					<a class="bg-neutral-8" 	href="/?developer-name=${developerName.value}"> 
55						${developerName.value} 
56					</a> 
57				</#if> 
58			</#list> 
59		</#if> 
60	</#if> 
61</div> 
DEVELOPER
21.11.2024 18:14
Published date
21.11.2024 18:14
Published Date
21.11.2024 18:14
SUPPORTED OFFERINGS
Liferay PaaS, Liferay Self-Hosted
Supported Versions
7.0, 6.2
Resource Requirements
Edition
CE, EE
PRICE
Paid
help & support
SHARE LINK
Copy & Share

HTML Example

A paragraph is a self-contained unit of a discourse in writing dealing with a particular point or idea. Paragraphs are usually an expected part of formal writing, used to organize longer prose.