Skip to content

Commit

Permalink
Old behaviour, new data format inside
Browse files Browse the repository at this point in the history
  • Loading branch information
SemaiCZE committed Nov 14, 2017
1 parent 11647ef commit e234019
Show file tree
Hide file tree
Showing 6 changed files with 53 additions and 58 deletions.
14 changes: 3 additions & 11 deletions src/components/Groups/ResultsTable/ResultsTableRow.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,11 @@ const ResultsTableRow = ({ userId, assignmentsIds, submissions }) => {
.filter(s => s !== null)
.filter(s => s.exerciseAssignmentId === assignmentId)[0];
const points =
submission &&
submission !== null &&
submission.evaluation &&
submission.evaluation !== null
? submission.evaluation.points
submission !== null
? submission.lastSubmission.evaluation.points
: '-';
const bonusPoints =
submission &&
submission !== null &&
submission.evaluation &&
submission.evaluation !== null
? submission.evaluation.bonusPoints
: 0;
submission && submission !== null ? submission.bonusPoints : 0;
totalPoints += points !== '-' ? points : 0;
totalPoints += bonusPoints;
return (
Expand Down
23 changes: 12 additions & 11 deletions src/components/Submissions/EvaluationDetail/EvaluationDetail.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ const EvaluationDetail = ({
evaluation,
isCorrect,
submittedAt,
maxPoints
maxPoints,
bonusPoints
}) =>
<Box
title={
Expand Down Expand Up @@ -117,15 +118,15 @@ const EvaluationDetail = ({
<td
className={classnames({
'text-center': true,
'text-danger': !isCorrect && evaluation.bonusPoints === 0,
'text-success': isCorrect && evaluation.bonusPoints === 0,
'text-danger': !isCorrect && bonusPoints === 0,
'text-success': isCorrect && bonusPoints === 0,
'text-bold': evaluation.bonusPoints === 0
})}
>
{evaluation.points}/{maxPoints}
</td>
</tr>
{evaluation.bonusPoints !== 0 &&
{bonusPoints !== 0 &&
<tr>
<th>
<FormattedMessage
Expand All @@ -134,10 +135,10 @@ const EvaluationDetail = ({
/>
</th>
<td className="text-center">
<BonusPoints bonus={evaluation.bonusPoints} />
<BonusPoints bonus={bonusPoints} />
</td>
</tr>}
{evaluation.bonusPoints !== 0 &&
{bonusPoints !== 0 &&
<tr>
<th>
<FormattedMessage
Expand All @@ -149,13 +150,12 @@ const EvaluationDetail = ({
className={classnames({
'text-center': true,
'text-danger':
!isCorrect || evaluation.points + evaluation.bonusPoints <= 0,
'text-success':
isCorrect && evaluation.points + evaluation.bonusPoints > 0
!isCorrect || evaluation.points + bonusPoints <= 0,
'text-success': isCorrect && evaluation.points + bonusPoints > 0
})}
>
<b>
{evaluation.points + evaluation.bonusPoints}/{maxPoints}
{evaluation.points + bonusPoints}/{maxPoints}
</b>
</td>
</tr>}
Expand All @@ -172,7 +172,8 @@ EvaluationDetail.propTypes = {
isCorrect: PropTypes.bool.isRequired,
submittedAt: PropTypes.number.isRequired,
evaluation: PropTypes.object,
maxPoints: PropTypes.number.isRequired
maxPoints: PropTypes.number.isRequired,
bonusPoints: PropTypes.number.isRequired
};

export default EvaluationDetail;
48 changes: 26 additions & 22 deletions src/components/Submissions/SubmissionDetail/SubmissionDetail.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,17 @@ class SubmissionDetail extends Component {
submission: {
id,
note = '',
evaluationStatus,
submittedAt,
userId,
submittedBy,
solution: { createdAt, userId, files, ...restSolution },
lastSubmission: {
submittedBy,
evaluation,
isCorrect,
evaluationStatus
},
maxPoints,
files,
evaluation,
bonusPoints,
accepted,
originalSubmissionId,
runtimeEnvironmentId,
isCorrect
runtimeEnvironmentId
},
assignment,
isSupervisor
Expand All @@ -46,12 +46,12 @@ class SubmissionDetail extends Component {
<Col md={6} sm={12}>
<SubmissionStatus
evaluationStatus={evaluationStatus}
submittedAt={submittedAt}
submittedAt={createdAt}
userId={userId}
submittedBy={submittedBy}
note={note}
accepted={accepted}
originalSubmissionId={originalSubmissionId}
originalSubmissionId={restSolution.id}
assignmentId={assignment.id}
/>
<Row>
Expand Down Expand Up @@ -81,15 +81,16 @@ class SubmissionDetail extends Component {
<EvaluationDetail
assignment={assignment}
evaluation={evaluation}
submittedAt={submittedAt}
submittedAt={createdAt}
maxPoints={maxPoints}
isCorrect={isCorrect}
bonusPoints={bonusPoints}
/>

{isSupervisor &&
<BonusPointsContainer
submissionId={id}
evaluation={evaluation}
bonusPoints={bonusPoints}
/>}

<TestResults
Expand Down Expand Up @@ -119,17 +120,20 @@ class SubmissionDetail extends Component {
SubmissionDetail.propTypes = {
submission: PropTypes.shape({
id: PropTypes.string.isRequired,
evaluationStatus: PropTypes.string.isRequired,
note: PropTypes.string,
submittedAt: PropTypes.number.isRequired,
userId: PropTypes.string.isRequired,
submittedBy: PropTypes.string,
evaluation: PropTypes.object,
lastSubmission: PropTypes.shape({
evaluationStatus: PropTypes.string.isRequired,
submittedBy: PropTypes.string,
evaluation: PropTypes.object,
isCorrect: PropTypes.bool
}).isRequired,
solution: PropTypes.shape({
createdAt: PropTypes.number.isRequired,
userId: PropTypes.string.isRequired,
files: PropTypes.array
}).isRequired,
maxPoints: PropTypes.number.isRequired,
files: PropTypes.array,
originalSubmissionId: PropTypes.string,
runtimeEnvironmentId: PropTypes.string,
isCorrect: PropTypes.bool
runtimeEnvironmentId: PropTypes.string
}).isRequired,
assignment: PropTypes.object.isRequired,
isSupervisor: PropTypes.bool
Expand Down
11 changes: 4 additions & 7 deletions src/containers/BonusPointsContainer/BonusPointsContainer.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,15 @@ import BonusPointsForm from '../../components/forms/BonusPointsForm';

import { setPoints } from '../../redux/modules/submissions';

const BonusPointsContainer = ({ evaluation, setPoints }) => (
const BonusPointsContainer = ({ bonusPoints, setPoints }) =>
<BonusPointsForm
onSubmit={setPoints}
initialvalues={{ points: evaluation.bonusPoints }}
/>
);
initialvalues={{ points: bonusPoints }}
/>;

BonusPointsContainer.propTypes = {
submissionId: PropTypes.string.isRequired,
evaluation: PropTypes.shape({
bonusPoints: PropTypes.number.isRequired
}).isRequired,
bonusPoints: PropTypes.number.isRequired,
setPoints: PropTypes.func.isRequired
};

Expand Down
13 changes: 7 additions & 6 deletions src/redux/modules/submissions.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ const needsRefetching = item =>

const { actions, actionTypes, reduceActions } = factory({
resourceName,
apiEndpointFactory: id => `/assignment-solutions/${id}`,
needsRefetching
});

Expand Down Expand Up @@ -53,7 +54,7 @@ export const fetchSubmissionIfNeeded = actions.fetchOneIfNeeded;
export const setPoints = (submissionId, bonusPoints) =>
createApiAction({
type: additionalActionTypes.SET_BONUS_POINTS,
endpoint: `/submissions/${submissionId}`,
endpoint: `/assignment-solutions/${submissionId}/bonus-points`,
method: 'POST',
body: { bonusPoints },
meta: { submissionId, bonusPoints }
Expand All @@ -63,23 +64,23 @@ export const acceptSubmission = id =>
createApiAction({
type: additionalActionTypes.ACCEPT,
method: 'POST',
endpoint: `/submissions/${id}/set-accepted`,
endpoint: `/assignment-solutions/${id}/set-accepted`,
meta: { id }
});

export const unacceptSubmission = id =>
createApiAction({
type: additionalActionTypes.UNACCEPT,
method: 'DELETE',
endpoint: `/submissions/${id}/unset-accepted`,
endpoint: `/assignment-solutions/${id}/unset-accepted`,
meta: { id }
});

export const resubmitSubmission = (id, isPrivate, isDebug = true) =>
createApiAction({
type: submissionActionTypes.SUBMIT,
method: 'POST',
endpoint: `/submissions/${id}/resubmit`,
endpoint: `/assignment-solutions/${id}/resubmit`,
body: { private: isPrivate, debug: isDebug },
meta: { id }
});
Expand All @@ -103,7 +104,7 @@ export const fetchUsersSubmissions = (userId, assignmentId) =>
});

export const downloadResultArchive = downloadHelper({
endpoint: id => `/submissions/evaluation/${id}/download-result`,
endpoint: id => `/assignment-solutions/evaluation/${id}/download-result`,
fetch: fetchSubmissionIfNeeded,
actionType: additionalActionTypes.DOWNLOAD_RESULT_ARCHIVE,
fileNameSelector: (id, state) => `${id}.zip`,
Expand All @@ -124,7 +125,7 @@ const reducer = handleActions(
{ meta: { submissionId, bonusPoints } }
) =>
state.setIn(
['resources', submissionId, 'data', 'evaluation', 'bonusPoints'],
['resources', submissionId, 'data', 'bonusPoints'],
Number(bonusPoints)
),

Expand Down
2 changes: 1 addition & 1 deletion test/redux/modules/submissions-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ describe('Submissions', () => {
expect(action.request).to.eql({
type: additionalActionTypes.ACCEPT,
method: 'POST',
endpoint: `/submissions/${id}/set-accepted`,
endpoint: `/assignment-solutions/${id}/set-accepted`,
meta: { id }
});
});
Expand Down

0 comments on commit e234019

Please sign in to comment.