From cdb9459eddf30e9c24e90e985fc054b1d2eade5a Mon Sep 17 00:00:00 2001 From: Martin Krulis Date: Tue, 30 Apr 2019 13:47:27 +0200 Subject: [PATCH] Adding filter for best solutions only to the assignment solutions page. --- src/pages/AssignmentStats/AssignmentStats.js | 66 +++++++++----------- 1 file changed, 31 insertions(+), 35 deletions(-) diff --git a/src/pages/AssignmentStats/AssignmentStats.js b/src/pages/AssignmentStats/AssignmentStats.js index 3da50764e..fcb136a00 100644 --- a/src/pages/AssignmentStats/AssignmentStats.js +++ b/src/pages/AssignmentStats/AssignmentStats.js @@ -1,7 +1,7 @@ import React, { Component } from 'react'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; -import { Row, Col, Grid } from 'react-bootstrap'; +import { Row, Col } from 'react-bootstrap'; import { connect } from 'react-redux'; import { injectIntl, FormattedMessage, FormattedNumber } from 'react-intl'; import { LinkContainer } from 'react-router-bootstrap'; @@ -172,11 +172,11 @@ const prepareTableColumnDescriptors = defaultMemoize((loggedUserId, assignmentId return columns; }); -const prepareTableData = defaultMemoize((assigmentSolutions, users, runtimeEnvironments) => { +const prepareTableData = defaultMemoize((assigmentSolutions, users, runtimeEnvironments, onlyBestSolutionsCheckbox) => { return assigmentSolutions .toArray() .map(getJsData) - .filter(identity) + .filter(onlyBestSolutionsCheckbox ? solution => solution && solution.isBestSolution : identity) .map( ({ id, @@ -335,36 +335,27 @@ class AssignmentStats extends Component {

- - - - - - - - - {false /* TODO -- when implemented changes in API */ && ( - - - - - - )} - - + + + + + + + + + + + @@ -375,7 +366,7 @@ class AssignmentStats extends Component { loading={} failed={}> {() => - this.state.groupByUsersCheckbox ? ( + this.state.groupByUsersCheckbox && !this.state.onlyBestSolutionsCheckbox ? (
{getStudents(group.id) .sort( @@ -411,7 +402,12 @@ class AssignmentStats extends Component { hover columns={prepareTableColumnDescriptors(loggedUserId, assignmentId, locale, links)} defaultOrder="date" - data={prepareTableData(assigmentSolutions, getStudents(group.id), runtimes)} + data={prepareTableData( + assigmentSolutions, + getStudents(group.id), + runtimes, + this.state.onlyBestSolutionsCheckbox + )} empty={