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={