You need to sign in to do that
Don't have an account?
farouk fakunle
Superbadge- Lightning Experience Step #9
I am get this error: "Challenge Not yet complete... here's what's wrong:
The 'Opp Stage by Adventure' report does not appear to be configured correctly. Make sure it has the correct report type, groupings, filters and chart type".
I believe i configured the report according to the instructions but it is still showing and error. Any assistance or insight would be apreciated.
The 'Opp Stage by Adventure' report does not appear to be configured correctly. Make sure it has the correct report type, groupings, filters and chart type".
I believe i configured the report according to the instructions but it is still showing and error. Any assistance or insight would be apreciated.
Go back and check the requiements again. We made an update yesterday and I think some of them has changed slightly. Check the report name, report type, groupings, filters and type of chart to make sure everything is correct.
Jeff Douglas
Trailhead Developer Advocate
All Answers
Go back and check the requiements again. We made an update yesterday and I think some of them has changed slightly. Check the report name, report type, groupings, filters and type of chart to make sure everything is correct.
Jeff Douglas
Trailhead Developer Advocate
Still getting an error:Has anyone completed #9, i am getting this error: Challenge Not yet complete... here's what's wrong:
The 'Opp Stage by Adventure' report does not appear to be configured correctly. Make sure it has the correct report type, groupings, filters and chart type.
This is my customization -
a
I am having the same problem as Farouk. The requirements state:
First, create a summary report on opportunities named Opp Stage by Adventure. Filter it by Product Date within the past year. For the purpose of this superbadge, assume this date range is 1/1/2026-12/31/2026. Second, add a stacked vertical bar chart of the number of explorers by product name, grouped by stage, to your summary report.
First question, is where is Product Date? Can't find it on any object. But can't seem to get past this piece.
Challenge Not yet complete... here's what's wrong:
The 'Opp Stage by Adventure' report does not appear to be configured correctly. Make sure it has the correct report type, groupings, filters and chart type.
I'm using the Opportunities with Adventures Report Type and have the below. Can anyone see what's wrong?
Requirement: "A stacked vertical bar chart of the number of explorers by product name, grouped by stage"
But I actually made that Close Date change last night and that's the only thing I had wrong. Still, they had conflicting requirements in my opinion. Earlier they stated that the Opportunity Product Service Date should be 2026, but below, the Product Date should be 2026, and neither of them was adhering to the new naming convention of Adventure date.
Still, an interesting exercise.
Waahhhh.. Stacked Vertical Bar Chart !!! I missed the word Stacked. That was the issue! I was using just a vertical chart. Completed the superbadge now!!
One questions though, I can't use the correct api name as I deleted a report and then emptied the recycle bin. I read in other forums that if the label of the report is
Opp Stage by Adventure
then the namje can be something like
Opp_Stage_by_Adventure3
Can anyone here confirm that?
Other than that, I'm lost. I've tried grouping by Stage and Product Name....
Nothing seems to work... any more suggestions?
You can try
Opp_Stage_by_Adventure_New
It did work for me.
Another issue I found after making the change sfdcFanBoy suggested was the fact I had an old report called:
oldOpp Stage by Adventure
oldOpp_Stage_by_Adventure
I renamed that report to:
old Stage by Adventure
old_Stage_by_Adventure
...and boom, complete.
Thanks for the help.
But I still get the error:
Challenge Not yet complete... here's what's wrong:
The 'Opp Stage by Adventure' report does not appear to be configured correctly. Make sure it has the correct report type, groupings, filters and chart type.
Can anyone else where I may be going wrong? Thanks
UI Changes for Sales Reps
Sometimes reps show adventure records to prospective customers on their phones. Add the custom photo uploader component included in your unmanaged package to the top-level record view so that reps see it when they open an adventure record.
I'm either missing it or I'm not understanding what component in the unmanaged package this is referring to.
Thank you.
Have tried and followed everything in the forum suggestion. But I still get the error:
Challenge Not yet complete... here's what's wrong:
The 'Opp Stage by Adventure' report does not appear to be configured correctly. Make sure it has the correct report type, groupings, filters and chart type.
Please help.
UI Changes for Sales Reps
Sometimes reps show adventure records to prospective customers on their phones. Add the custom photo uploader component included in your unmanaged package to the top-level record view so that reps see it when they open an adventure record.
In case somebody else is looking for the same input, here it goes. There is a custom lightning component (PictureGallery) in the unmanaged LEX Superbadge package which we installed as part of the prework. You should be able to find the component in Lightning App Builder window, Custom component section.
But to have the custom component available in the given window, we have to setup and configure My Domain first. Due to security standards, the custom components can't be used without My Domain enabled.
I have cleared the superbadge - please drop a comment if I can share any other input on this.
Thanks!
Probably you have already resolved the above reporting issue now. Looks to me: it's about the chart type you have choosen. The challenge requirement asks for 'stacked vertical bar chart'. Depending on the axis choice and group by/ stack by parameters it should look like this:
Hope this helps. Please let me know if I can share any other input. Thanks!
1. Report Type: Opportunities with Adventures
2. Check out report name and API names through Report Properties window:
3. Check out filters and Grouping configurations.
4. Then, I ran the report. In the report view page I configured the 'stacked vertical bar chart'.
This is how my report looks without the chart.
5. Stacked vertical bar chart configurations:
---
These should be all. Please let me know if this helps. Thanks!
Finaly got the badge my probleme was the domaine i did have it but i didn't change the color background of the org
Good luck
How does this fail?
It's not very clear in the instructions, but you need to switch the grouping so that it is by Adventure Name first, then the stage name.
Challenge Not yet complete... here's what's wrong:
Could not find the setup of your My Domain in your org. Ensure that you have properly set the Background Color. Make sure that you've received an email from Salesforce notifying you that your domain is ready for testing before running this challenge.
I am using a trailhead playground and it has worked fine up to now. Also I shouldn't need to set up My Domain in a trailhead playground!!!! Any help will be great .... hope I have done something really stupid
After battling this forever, and not being able to find any mistakes, I did as you suggested and closed everything. I logged back in and checked #9 again. Boom, there's my superbadge.
Thanks again!
The 'Opp Stage by Adventure' report does not appear to be configured correctly. Make sure it has the correct report type, groupings, filters and chart type.
Don't Know what is the problem. It's not happening. Stuck for 3 days. Please Help me.
Lightning Component Framework Specialist
1. AddBoatReview.cmp
<aura:component implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,forceCommunity:availableForAllPageTypes,force:lightningQuickAction" access="global" >
<aura:attribute name="boatReview" type="BoatReview__c" access="public"/>
<aura:attribute name="boatReviewRecord" type="Object" access="public"/>
<aura:attribute name="boat" type="Boat__c"/>
<aura:attribute name="recordError" type="String" access="private"/>
<aura:registerEvent name="BoatReviewAdded" type="c:BoatReviewAdded"/>
<aura:handler name="init" value="{!this}" action="{!c.doInit}"/>
<force:recordData aura:id="service"
targetError="{!v.recordError}"
targetRecord="{!v.boatReviewRecord}"
targetFields="{!v.boatReview}"
fields="Id,Name,Comment__c,Boat__c"
recordUpdated="{!c.onRecordUpdated}"
/>
<lightning:layout multipleRows="true">
<lightning:layoutItem size="12" padding="around-small">
<lightning:input name="title" label="Title" value="{!v.boatReview.Name}"/>
</lightning:layoutItem>
<lightning:layoutItem size="12" padding="around-small">
<label class="slds-form-element__label" for="input-id-01">Description</label>
<lightning:inputRichText value="{!v.boatReview.Comment__c}" disabledCategories="FORMAT_FONT"/>
</lightning:layoutItem>
<lightning:layoutItem size="12" padding="around-small">
<label class="slds-form-element__label" for="input-id-01">Description</label>
<c:FiveStarRating value="{!v.boatReview.Rating__c}" readonly="false"/>
</lightning:layoutItem>
<lightning:layoutItem size="12" class="slds-align--absolute-center">
<lightning:button iconName="utility:save" label="Submit" onclick="{!c.onSave}"/>
</lightning:layoutItem>
</lightning:layout>
<aura:if isTrue="{!not(empty(v.recordError))}">
<div class="recordError">
<ui:message title="Error" severity="error" closable="true">
{!v.recordError}
</ui:message>
</div>
</aura:if>
</aura:component>
2. AddBoatReviewController.js
({
doInit : function(component, event, helper) {
helper.onInit(component,event);
},
onSave : function(component, event, helper) {
component.set("v.boatReview.Boat__c",component.get("v.boat.Id"));
component.find("service").saveRecord(function(saveResult){
if(saveResult.state==="SUCCESS" || saveResult.state === "DRAFT")
{
var resultsToast = $A.get("e.force:showToast");
if(resultsToast)
{
resultsToast.setParams({
"title": "Saved",
"message": "Boat Review Created"
});
resultsToast.fire();
}
else
{
alert('Boat Review Created');
}
}
else if (saveResult.state === "ERROR") {
var errMsg='';
console.log('Problem saving record, error: ' + JSON.stringify(saveResult.error));
for (var i = 0; i < saveResult.error.length; i++) {
errMsg += saveResult.error[i].message + "\n";
}
component.set("v.recordError", errMsg);
}
else
{
console.log('Unknown problem, state: ' + saveResult.state + ', error: ' + JSON.stringify(saveResult.error));
}
var boatReviewAddedEvnt=component.getEvent("boatReviewAdded");
boatReviewAddedEvnt.fire();
helper.onInit(component,event,helper);
});
},
onRecordUpdated : function(component, event, helper) {
var eventParams = event.getParams();
if(eventParams.changeType === "CHANGED") {
var changedFields = eventParams.changedFields;
var saveResultsToast = $A.get("e.force:showToast");
if(saveResultsToast!='undefined')
{
saveResultsToast.setParams({
"title": "Saved",
"message": "Boat Review Saved"
});
saveResultsToast.fire();
}
else
{
alert('Boat Review Saved');
}
}
}
})
3.AddBoatReviewHelper.js
({
onInit : function(component,event) {
component.find("service").getNewRecord(
"BoatReview__c", // sObject type (entityAPIName)
null, // recordTypeId
false, // skip cache?
$A.getCallback(function() {
var rec = component.get("v.boatReview");
var error = component.get("v.recordError");
var boat=component.get("v.boat");
if(error || (rec === null)) {
console.log("Error initializing record template: " + error);
}
else {
component.set("v.boatReviewRecord.Boat__c",boat.Id);
component.set("v.boatReview.Boat__c",boat.Id);
}
})
);
}
})
4. FiveStar.cmp
<aura:component implements="flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,force:lightningQuickAction" access="global" >
<aura:attribute name="value" type="Integer" default="0" />
<aura:attribute name="readonly" type="Boolean" default="false" />
<aura:handler name="change" value="{!v.value}" action="{!c.onValueChange}"/>
<ltng:require styles="{!$Resource.fivestar.rating.css}" />
<ltng:require scripts="{!$Resource.fivestar.rating.js}"
afterScriptsLoaded="{!c.afterScriptsLoaded}" />
<ul aura:id="ratingarea" class="{!v.readonly ? 'readonly c-rating' : 'c-rating'}"></ul>
</aura:component>
5. FiveStarContoller.js
({
afterScriptsLoaded : function(component, event, helper) {
var domEl = component.find("ratingarea").getElement();
var currentRating = component.get('v.value');
var readOnly = component.get('v.readonly');
var maxRating = 5;
var callback = function(rating) {
component.set('v.value',rating);
}
component.ratingObj = rating(domEl,currentRating,maxRating,callback,readOnly);
},
onValueChange: function(component,event,helper) {
if (component.ratingObj) {
var value = component.get('v.value');
component.ratingObj.setRating(value,false);
}
}
})
6. BoatReviews.cmp
<aura:component implements="flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId" access="global"
controller="BoatReviews">
<aura:attribute name="boat" type="Boat__c" access="public"/>
<aura:attribute name="boatReviews" type="BoatReview__c[]" access="private"/>
<aura:handler name="init" action="{!c.doInit}" value="{!this}"/>
<aura:handler name="change" value="{!v.boat}" action="{!c.doInit}"/>
<aura:method name="refresh" action="{!c.doInit}">
</aura:method>
<aura:iteration items="{!v.boatReviews}" var="BoatReview">
<c:FiveStarRating aura:id="FiveStarRating" value="{!BoatReview.Rating__c}" readonly="true"/>
</aura:iteration>
<aura:if isTrue="{!v.boatReviews.length==0}">
<lightning:layoutItem class="slds-align_absolute-center" flexibility="auto" padding="around-small">
<ui:outputText value="No reviews available" />
</lightning:layoutItem>
</aura:if>
<div class="slds-feed">
<ul class="slds-feed__list">
<ui:scrollerWrapper class="scrollerSize">
<aura:iteration items="{!v.boatReviews}" var="review">
<li class="slds-feed__item slds-scrollable_y">
<article class="slds-post">
<header class="slds-post__header slds-media">
<div class="slds-media__figure">
<a href="javascript:void(0);" class="slds-avatar slds-avatar_circle slds-avatar_large">
<img alt="{!review.CreatedBy.Name}" src="{!review.CreatedBy.SmallPhotoUrl}" title="{!review.CreatedBy.Name}" />
</a>
</div>
<div class="slds-media__body">
<div class="slds-grid slds-grid_align-spread slds-has-flexi-truncate">
<p><a data-userid="{!review.CreatedBy.Id}" href="javascript:void(0);" title="{!review.CreatedBy.Name}" onclick="{!c.onUserInfoClick}">
{!review.CreatedBy.Name}
</a>
— {!review.CreatedBy.CompanyName}
</p>
</div>
<p class="slds-text-body_small">
<lightning:formattedDateTime value="{!review.LastModifiedDate}" year="numeric" month="short" day="numeric" hour="2-digit" minute="2-digit" second="2-digit" />
</p>
</div>
</header>
<div class="slds-post__content slds-text-longform">
<p class="slds-text-title_caps">{!review.Name}</p>
<p class="slds-text-body_small"><lightning:formattedRichText value="{!review.Comment__c}"/> </p>
</div>
<footer class="slds-post__footer">
<ul class="slds-post__footer-actions-list slds-list_horizontal">
<li class="slds-col slds-item slds-m-right_medium">
<c:FiveStarRating value="{!review.Rating__c}" readonly="true"/>
</li>
</ul>
</footer>
</article>
</li>
</aura:iteration>
</ui:scrollerWrapper>
</ul>
</div>
</aura:component>
6. BoatReviewsContoller.js
({
refresh : function(component,event,helper){
console.log("refresh called")
this.doInit;
},
doInit : function(component,event,helper){
console.log("BRCjs: doInit");
helper.onInit(component, event);
},
onUserInfoClick : function(component,event,helper){
var userId = event.currentTarget.getAttribute("data-userid");
var navEvt = $A.get("e.force:navigateToSObject");
navEvt.setParams({
"recordId" : userId,
});
navEvt.fire()
},
})
7. BoatReviewsHelper.js
({
onInit : function(component, event){
var boat = component.get("v.boat");
console.log("BRHjs:onInit started: boatId is " + boat.Id);
var action = component.get("c.getAll");
action.setParams({"boatId" : boat.Id});
console.log("boatId: " + boat.Id);
//add the callback behavior for when the response is received
action.setCallback(this,function(response){
var state = response.getState();
if (state === "SUCCESS"){
component.set("v.boatReviews", response.getReturnValue());
console.log("APEX success");
}
else {
console.log("Failed with state: " + state);
}
});
//send action off to be executed in APEX
$A.enqueueAction(action);
},
})
Please like if you are able to clear your challenge.
Regards,
Shashi kumar
Lightning Component Framework Specialist
Challenge No #8
1. AddBoatReview.cmp
2. AddBoatReviewController.js
({
doInit : function(component, event, helper) {
helper.onInit(component,event);
},
onSave : function(component, event, helper) {
component.set("v.boatReview.Boat__c",component.get("v.boat.Id"));
component.find("service").saveRecord(function(saveResult){
if(saveResult.state==="SUCCESS" || saveResult.state === "DRAFT")
{
var resultsToast = $A.get("e.force:showToast");
if(resultsToast)
{
resultsToast.setParams({
"title": "Saved",
"message": "Boat Review Created"
});
resultsToast.fire();
}
else
{
alert('Boat Review Created');
}
}
else if (saveResult.state === "ERROR") {
var errMsg='';
console.log('Problem saving record, error: ' + JSON.stringify(saveResult.error));
for (var i = 0; i < saveResult.error.length; i++) {
errMsg += saveResult.error[i].message + "\n";
}
component.set("v.recordError", errMsg);
}
else
{
console.log('Unknown problem, state: ' + saveResult.state + ', error: ' + JSON.stringify(saveResult.error));
}
var boatReviewAddedEvnt=component.getEvent("boatReviewAdded");
boatReviewAddedEvnt.fire();
helper.onInit(component,event,helper);
});
},
onRecordUpdated : function(component, event, helper) {
var eventParams = event.getParams();
if(eventParams.changeType === "CHANGED") {
var changedFields = eventParams.changedFields;
var saveResultsToast = $A.get("e.force:showToast");
if(saveResultsToast!='undefined')
{
saveResultsToast.setParams({
"title": "Saved",
"message": "Boat Review Saved"
});
saveResultsToast.fire();
}
else
{
alert('Boat Review Saved');
}
}
}
})
3. AddBoatReviewHelper.js
({
onInit : function(component,event) {
component.find("service").getNewRecord(
"BoatReview__c", // sObject type (entityAPIName)
null, // recordTypeId
false, // skip cache?
$A.getCallback(function() {
var rec = component.get("v.boatReview");
var error = component.get("v.recordError");
var boat=component.get("v.boat");
if(error || (rec === null)) {
console.log("Error initializing record template: " + error);
}
else {
component.set("v.boatReviewRecord.Boat__c",boat.Id);
component.set("v.boatReview.Boat__c",boat.Id);
}
})
);
}
})
4. BoatReviewAdded.evt
<aura:event type="Component" description="Event template">
<aura:attribute name="BoatReviewAdded" type="Boat__c"/>
</aura:event>
5. BoatReviews.cmp
<aura:component implements="flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId" access="global"
controller="BoatReviews">
<aura:attribute name="boat" type="Boat__c" access="public"/>
<aura:handler name="change" value="{!v.boat}" action="{!c.refresh}"/>
<aura:attribute name="boatReviews" type="BoatReview__c[]" access="private"/>
<!-- set up the aura:method for refresh -->
<aura:method name="refresh" action="{!c.doInit}" access="public"
description="BoatDetailsController.js invokes refresh whenever boat is updated">
</aura:method>
<ui:scrollerWrapper class="scrollerSize">
<!--Scrollable content here -->
<aura:if isTrue="{!v.boatReviews.length==0}">
<lightning:layoutItem class="slds-align_absolute-center" flexibility="auto" padding="around-small">
<ui:outputText value="No Reviews Available" />
</lightning:layoutItem>
</aura:if>
<div class="slds-feed">
<ul class="slds-feed__list">
<aura:iteration items="{!v.boatReviews}" var="boatReview">
<li class="slds-feed__item">
<div class="slds-media__body">
<div class="slds-grid slds-has-flexi-truncate">
<a href="javascript:void(0)" onclick="{!c.onUserInfoClick}"
data-userid="{!boatReview.CreatedBy.Id}">
{!boatReview.CreatedBy.Name}
</a>
— {!boatReview.CreatedBy.CompanyName}
</div>
<p><lightning:formattedDateTime value="{!boatReview.CreatedDate}"
year="numeric" month="short" day="numeric"
hour="2-digit" minute="2-digit" hour12="true"/></p>
</div>
</li>
</aura:iteration>
</ul>
</div>
</ui:scrollerWrapper>
</aura:component>
6.BoatReviewsController.js
({
refresh : function(component,event,helper){
console.log("refresh called")
this.doInit;
},
doInit : function(component,event,helper){
console.log("BRCjs: doInit");
helper.onInit(component, event);
},
onUserInfoClick : function(component,event,helper){
var userId = event.currentTarget.getAttribute("data-userid");
var navEvt = $A.get("e.force:navigateToSObject");
navEvt.setParams({
"recordId" : userId,
});
navEvt.fire()
},
})
7. BoatReviewsHelper.js
({
onInit : function(component, event){
var boat = component.get("v.boat");
console.log("BRHjs:onInit started: boatId is " + boat.Id);
var action = component.get("c.getAll");
action.setParams({"boatId" : boat.Id});
console.log("boatId: " + boat.Id);
//add the callback behavior for when the response is received
action.setCallback(this,function(response){
var state = response.getState();
if (state === "SUCCESS"){
component.set("v.boatReviews", response.getReturnValue());
console.log("APEX success");
}
else {
console.log("Failed with state: " + state);
}
});
//send action off to be executed in APEX
$A.enqueueAction(action);
},
})
8. BoatDetailController.js
({
onFullDetails: function(component, event, helper) {
var navEvt = $A.get("e.force:navigateToSObject");
navEvt.setParams({
"recordId": component.get("v.boat.Id")
});
navEvt.fire();
}
})
9. BoatSelected.evt
<aura:event type="APPLICATION" description="BoatSelected fired from BoatTileController's onBoatClick handler">
<aura:attribute name="boat" type="Boat__c"/>
</aura:event>
10. BoatSelect.evt
<aura:event type="COMPONENT" description="Boat Event">
<aura:attribute name="boatId" type="Id"/>
</aura:event>
11. BoatDetail.cmp
<aura:component implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,forceCommunity:availableForAllPageTypes,force:lightningQuickAction" access="global" >
<aura:attribute name="boat" type="Boat__c"/>
<aura:handler name="init" value="{!this}" action="{!c.doInit}"/>
<aura:attribute name="showButton" type="Boolean" default="false"/>
<lightning:button label="Full Details" onclick="{!c.onFullDetails }" />
<lightning:card iconName="utility:anchor">
<aura:set attribute="title">
{!v.boat.Contact__r.Name}'s boat
</aura:set>
<aura:set attribute="actions">
<aura:if isTrue='{!v.showButton}'>
<lightning:button label="Full Details" onclick="{!c.onFullDetails}"/>
</aura:if>
</aura:set>
<p class="slds-p-horizontal_small">
<lightning:layout >
<lightning:layoutItem flexibility="grow" size="6" mediumDeviceSize="6" largeDeviceSize="6">
<div class="slds-p-horizontal--small">
<div class="boatproperty">
<span class="label">Boat Name:</span>
<span><ui:outputText value="{!v.boat.Name}"/></span>
</div>
<div class="boatproperty">
<span class="label">Type:</span>
<span><ui:outputText value="{!v.boat.BoatType__r.Name}"/></span>
</div>
<div class="boatproperty">
<span class="label">Length:</span>
<span><ui:outputText value="{!v.boat.Length__c}"/> ft</span>
</div>
<div class="boatproperty">
<span class="label">Est. Price:</span>
<span><lightning:formattedNumber value="{!v.boat.Price__c}" currencyCode="USD" style="currency" currencyDisplayAs="symbol"/></span>
</div>
<div class="boatproperty">
<span class="label">Description:</span>
<span><ui:outputRichText class="slds-text-longform" value="{!v.boat.Description__c}"/></span>
</div>
</div>
</lightning:layoutItem>
<lightning:layoutItem flexibility="grow" size="6" mediumDeviceSize="6" largeDeviceSize="6">
<div class="imageview" style="{!'background-image:url(\'' + v.boat.Picture__c + '\')'}"/>
</lightning:layoutItem>
</lightning:layout>
</p>
</lightning:card>
</aura:component>
12. BoatDetailsController.js
({
init: function(component, event, helper) {
component.set("v.enableFullDetails", $A.get("e.force:navigateToSObject"));
},
onFullDetails: function(component, event, helper) {
var navEvt = $A.get("e.force:navigateToSObject");
navEvt.setParams({
"recordId": component.get("v.boat.Id")
});
navEvt.fire();
},
onBoatSelected : function(component, event, helper) {
var boatSelected = event.getParam("boat");
component.set("v.id",boatSelected.Id);
var service = component.find("service");
service.reloadRecord() ;
},
onRecordUpdated : function(component, event, helper){
var boat = component.get("v.boat");
console.log("onRecordUpdated called | boat: " + boat.Id);
//invoke a refresh on the reviews tab, calling public method refresh
var BoatReviews = component.find("BoatReviews");
console.log("BoatReviews: " + BoatReviews);
if(typeof BoatReviews != 'undefined'){
BoatReviews.refresh();
}
},
/* Earlier dated on 8 Jan2018
* onBoatReviewAdded : function(component, event, helper) {
console.log('Event received');
component.find("details").set("v.selectedTabId", "boatreviewtab");
}*/
onBoatReviewAdded : function(component, event, helper){
console.log("BDCjs: onBoatReviewAdded")
component.find("tabs").set("v.selectedTabId", "boatreviewtab");
//invoke a refresh on the reviews tab, calling public method refresh
var BoatReviews = component.find("BoatReviews");
//BRcmp is the aura:id for the component when invoked in BoatDetails.cmp
BoatReviews.refresh();
},
})
13. BoatDetails.cmp
<aura:component description="BoatDetails"
implements="flexipage:availableForAllPageTypes">
<aura:registerEvent name="BoatReviewAdded" type="c:BoatReviewAdded"/>
<aura:handler name="reviewAdded" event="c:BoatReviewAdded" action="{!c.onBoatReviewAdded}"/>
<aura:attribute name="boat" type="Boat__c"/>
<aura:attribute name="recordError" type="String"/>
<aura:attribute name="id" type="Id" default="" access="public"/>
<aura:handler event="c:BoatSelected" action="{!c.onBoatSelected}"/>
<lightning:tab label="Reviews" id="boatreviewtab">
<c:BoatReviews boat="{!v.boat}" aura:id="BRcmp"/>
</lightning:tab>
<force:recordData aura:id="service"
recordId="{!v.id}"
mode="VIEW"
fields="Id,
Name,
Description__c,
Price__c, Length__c,
Contact__r.Name,
Contact__r.Email,
Contact__r.HomePhone,
BoatType__r.Name,
Picture__c"
targetFields="{!v.boat}"
targetError="{!v.recordError}"
recordUpdated="{!c.onRecordUpdated}" />
<lightning:tabset variant="scoped" selectedTabId="{!v.selTabId}">
<lightning:tab label="Details" id="details" >
<c:BoatDetail boat="{!v.boat}"/>
</lightning:tab>
<lightning:tab label="Reviews" id="boatreviewtab" >
</lightning:tab>
<lightning:tab label="Add Review" id="addReview" >
<c:AddBoatReview boat="{!v.boat}"/>
</lightning:tab>
</lightning:tabset>
<aura:if isTrue="{! !empty(v.boat)}">
<article class="slds-card">
<lightning:tabset >
<lightning:tab label="Details" id="details">
<c:BoatDetail boat="{!v.boat}"/>
</lightning:tab>
<lightning:tab label="Reviews" id="boatreviewtab">
Sample review
</lightning:tab>
<lightning:tab label="Add Review" id="addReview">
Sample add review
</lightning:tab>
</lightning:tabset>
</article>
</aura:if>
</aura:component>
14. BoatTileController.js
({
onBoatClick : function(component, event, helper) {
var BoatSelectEvent = component.getEvent('BoatSelect');
var boat = component.get('v.boat');
BoatSelectEvent.setParams({
"boatId" : boat.Id
});
BoatSelectEvent.fire();
//var BoatSelectedEvt = component.getEvent('boatselected');
var BoatSelectedEvt = $A.get('e.c:BoatSelected');
BoatSelectedEvt.setParams({
"boat" : boat
});
BoatSelectedEvt.fire();
}
})
The 'Opp Stage by Adventure' report does not appear to be configured correctly. Make sure it has the correct report type, groupings, filters and chart type."
I'm beyond frustrated at this point. I'd be willing to PAY someone to review it for me since there apparently isn't any Trailhead support.
Here are my screenshots.
@Mike Davis 43, first check the dates - it's 2026
I don't know what is wrong here.
Hello all,
can someone help, i m really getting crazy with the step 9 .
especially this one :
Challenge Not yet complete... here's what's wrong:
The 'Opp Stage by Adventure' report does not appear to be configured correctly. Make sure it has the correct report type, groupings, filters and chart type.
I will really apreciate your help guys
here my report
Thank you so much Aksinia for you help !
hi @Aditya Deshmukh
can you help me, I posted above my problem, I m really getting mad.
Hope this helps !
hi @Aditya Deshmukh
What is this explorer count? where it's required to be done?
do you mean 'Record Count', is that wrong? where i can find this 'Explorer count'
1) Name it Explorer Count
2)In the formula section, click summary fields and select Record Count and then 'ok'
Do this and complete the further steps of creating the record page.
Hope this helps !
thank you @Aditya Deshmukh for your help.
The problem was really stupid and it takes me the whole night yesterday, the problem is I didn't have the show as 'Details', so the columns were hidden, now it's okay and complete this step, oufffff
hello i stuck at challenge 9 I want to create Any new lightning App Builder to complete challenge9
I'm also stuck on the last challenge of this superbadge, with the same old "Challenge Not yet complete... here's what's wrong:
The 'Opp Stage by Adventure' report does not appear to be configured correctly. Make sure it has the correct report type, groupings, filters and chart type.", so frustrating.
I've described my case and tried solutions in a new post, any help would be more than welcome!
https://developer.salesforce.com/forums/ForumsMain?id=9060G0000005n5fQAA
Thanks, Quentin
"Failed to save FiveStarRating.cmp: resource rating cannot be found in namespace .resource js cannot be found in namespace .resource rating cannot be found in namespace .resource css cannot be found in namespace .: Source"
<aura:component implements="flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,force:lightningQuickAction" access="global" >
<aura:attribute name="value" type="Integer" default="0" />
<aura:attribute name="readonly" type="Boolean" default="false" />
<aura:handler name="change" value="{!v.value}" action="{!c.onValueChange}"/>
<ltng:require styles="{!$Resource.fivestar.rating.css}"/>
<ltng:require scripts="{!$Resource.fivestar.rating.js}"/>
<ul aura:id="ratingarea" class="{!v.readonly ? 'readonly c-rating' :'c-rating'}"></ul>
</aura:component>
The 'Opp Stage by Adventure' report does not appear to be configured correctly. Make sure it has the correct report type, groupings, filters and chart type". For me, once I changed the Chart Title in the report to "Adventure Stage Comparison," I was able to pass challenge #9 on the Lightning Experience Specialist Superbadge.
I am not able to Filter on "Product Date" from 1/12026 to 12/1/2026. I am getting like "Invalid start date".
I am not sure where I am going wrong. Please help me on this!
Object: Opportunity
Fields take All opportunity fields as default
Group By Drag "Stage" and "Product Name"
Summry Report
Got to Chart select "Stacked Collumn" Enter the Chart Name as "Adventure Stage Comparison"
Select X axis "Product Name" Y Axis " Record Count" Stack "Stage"
Filter Enter Product Date as Given 1/1/2026 to 12/31/2026 Run and Save
Quick find box "My Domain" Edit Authentication part , Select some back ground color Save >>> Run the challenge and you will get a superbadge