Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Get the assessment score from data aggregation API

  2. Get course/assessment details using hierarchy API

  3. Expose a method in CSL which uses the hierarchy response and replace the do_id of assessment with name

    Code Block
    getFlatJson(aggregationData){
    activity-service.ts
    /** 
    return [* @param {object} hierarchyData - {hierarchy Name:api Bala,response
    Progress: 60, do_2129493337594429441162: 9 * @param {object} aggregateData - aggregate api response
    { Name: Vinu, Progress: 97, do_2129493337594429441162: 9,  }
      ]
    }
    Code Block
    getDataForDashlets(hierarchyData, aggregationData): dashletData{
    
    }
    // from aggreagate data replace the do_id with the name from hierarchy data
    hierarchyData: course details from hierarchy response
    aggregationData: agregation API response
    Return type Example: 
    dashletData: {
      columnConfig : [
        { title: "Name", data: "Name", searchable: true, orderable: true, autoWidth: true, visible: true },
        { title: "Progress", data: "Progress", searchable: true, orderable: true, autoWidth: true, visible: true },
        { title: "Assessment1", data: "Assessment1", orderable: true, autoWidth: true, visible: true },
        { title: "Assessment2", data: "Assessment2", orderable: true, autoWidth: true, visible: true },
      ]
      tableData: [
        [
           {**/
    getDasletsData(hierarchyData, aggregateData) {
        var assessments = getAssessments(hierarchyData);
        return getFlatJson(aggregateData, assessments);
    }
    /** 
     * @param {object} aggregateData - aggregate API response
     * @param {object} assessments - assessments from hierarchy API
     **/
    getFlatJson(aggregateData, assessments) {
        // metric: { score: do_123, value: 5}
        var dashletsColumns = []
        var dashletsData = [];
        forEach() {
            //if dashletsColumns is not having  "Name": "Bala",
    the object.key then append
            dashletsData.push({Name:   "Progress"Bala, progress: 60, Assessment1: 5}),
              "Assessment1": 9,}
        var dashletsConfig = {
      // user has not taken Assessment2. data: tabledashletsData
    will show it as NA    columns: dashletsColumns
        },
        retun dashletsData;
    }
    /** {
     * @param {object} hierarchyData - hierarchy api response
      "Name": "Vinu",**/
    getAssessments(hierarchyData) {
        //returns only assessment in the course hierarchyData
     "Progress": 97,  return {
            do_123: "Assessment1": 5,
                "Assessment2": 6do_567: Assessment2,
             }
      ]
    }

  4. use the dash lets library to populate the table as per the documentation https://project-sunbird.atlassian.net/wiki/spaces/SBDES/pages/2312110137/Dashlets+Design+Doc?focusedCommentId=2394980376#comment-2394980376

    Code Block
    <sb-dashlet [type]="string" [config]="config" [data]="data | IDataLocation" , [id]="string | uuid" [height]="string"
        [width]="string" (...anyOtherEvent)="eventListener($event)">
    </sb-dashlet>

...