Skip to content

Commit

Permalink
Fixing problem with submission details page (when solution has no sub…
Browse files Browse the repository at this point in the history
…missions).
  • Loading branch information
Martin Krulis committed Nov 27, 2017
1 parent 1929e28 commit ed64bc1
Show file tree
Hide file tree
Showing 8 changed files with 72 additions and 35 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,20 @@ const AssignmentStatusIcon = ({ id, status, accepted = false }) => {
/>
);

case 'missing-submission':
return (
<Status
id={id}
icon={<Icon name="exclamation-triangle" className="text-red" />}
message={
<FormattedMessage
id="app.assignemntStatusIcon.solutionMissingSubmission"
defaultMessage="The solution was not submitted for evaluation probably due to an error. You may need to resubmit it."
/>
}
/>
);

default:
return (
<Status
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,15 @@ import AssignmentStatusIcon from '../Assignment/AssignmentStatusIcon';
const NotEvaluatedSubmissionTableRow = ({
link,
note,
solution: { createdAt }
solution: { createdAt },
lastSubmission
}) =>
<tr>
<td>
<AssignmentStatusIcon id={link} status="work-in-progress" />
<AssignmentStatusIcon
id={link}
status={lastSubmission ? 'work-in-progress' : 'missing-submission'}
/>
</td>
<td>
<FormattedDate value={createdAt * 1000} />
Expand All @@ -26,8 +30,8 @@ const NotEvaluatedSubmissionTableRow = ({
<td className="text-right">
<Link to={link} className="btn btn-flat btn-default btn-xs">
<FormattedMessage
id="app.submissionsTable.findOutResult"
defaultMessage="Find out results of evaluation"
id="app.submissionsTable.showDetails"
defaultMessage="Show details"
/>
</Link>
</td>
Expand All @@ -38,7 +42,8 @@ NotEvaluatedSubmissionTableRow.propTypes = {
note: PropTypes.string.isRequired,
solution: PropTypes.shape({
createdAt: PropTypes.number.isRequired
}).isRequired
}).isRequired,
lastSubmission: PropTypes.object
};

export default NotEvaluatedSubmissionTableRow;
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,9 @@ const SubmissionsTable = ({
const id = data.id;
const link = SUBMISSION_DETAIL_URI_FACTORY(assignmentId, id);

switch (data.lastSubmission.evaluationStatus) {
switch (data.lastSubmission
? data.lastSubmission.evaluationStatus
: null) {
case 'done':
return (
<SuccessfulSubmissionTableRow
Expand All @@ -79,12 +81,14 @@ const SubmissionsTable = ({
return (
<FailedSubmissionTableRow {...data} key={id} link={link} />
);
case null:
case 'work-in-progress':
return (
<NotEvaluatedSubmissionTableRow
{...data}
key={id}
link={link}
lastSubmission={data.lastSubmission}
/>
);
case 'evaluation-failed':
Expand Down
26 changes: 15 additions & 11 deletions src/components/Submissions/SubmissionDetail/SubmissionDetail.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ class SubmissionDetail extends Component {

componentWillMount() {
this.setState({
activeSubmissionId: this.props.submission.lastSubmission.id
activeSubmissionId: this.props.submission.lastSubmission
? this.props.submission.lastSubmission.id
: null
});
}

Expand All @@ -42,14 +44,16 @@ class SubmissionDetail extends Component {
evaluations
} = this.props;
const { openFileId, activeSubmissionId } = this.state;
const {
submittedBy,
evaluation,
isCorrect,
evaluationStatus,
...restSub
} = evaluations.toJS()[activeSubmissionId].data;

if (activeSubmissionId) {
var {
submittedBy,
evaluation,
isCorrect,
evaluationStatus,
...restSub
} = evaluations.toJS()[activeSubmissionId].data;
} else evaluationStatus = 'missing-submission';
return (
<div>
<Row>
Expand Down Expand Up @@ -118,7 +122,8 @@ class SubmissionDetail extends Component {
<DownloadResultArchiveContainer submissionId={restSub.id} />
</Col>
</Row>}
{isSupervisor &&
{activeSubmissionId &&
isSupervisor &&
<Row>
<Col lg={12}>
<ResourceRenderer resource={evaluations.toArray()}>
Expand Down Expand Up @@ -151,8 +156,7 @@ SubmissionDetail.propTypes = {
submission: PropTypes.shape({
id: PropTypes.string.isRequired,
note: PropTypes.string,
lastSubmission: PropTypes.shape({ id: PropTypes.string.isRequired })
.isRequired,
lastSubmission: PropTypes.shape({ id: PropTypes.string.isRequired }),
solution: PropTypes.shape({
createdAt: PropTypes.number.isRequired,
userId: PropTypes.string.isRequired,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,8 +102,8 @@ const SubmissionStatus = ({
</td>
<th>
<FormattedMessage
id="app.submission.isCorrect"
defaultMessage="Solution is correct:"
id="app.submission.evaluationStatus"
defaultMessage="Evaluation Status:"
/>
</th>
<td>
Expand All @@ -128,6 +128,11 @@ const SubmissionStatus = ({
id="app.submission.evaluation.status.systemFailiure"
defaultMessage="Evaluation process had failed and your submission could not have been evaluated. Please submit the solution once more. If you keep receiving errors please contact the administrator of this project."
/>}
{evaluationStatus === 'missing-submission' &&
<FormattedMessage
id="app.submission.evaluation.status.solutionMissingSubmission"
defaultMessage="Solution was not submitted for evaluation. This was probably caused by an error in the assignment configuration."
/>}
</strong>
</td>
</tr>
Expand Down
14 changes: 8 additions & 6 deletions src/locales/cs.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@
"app.assignemntStatusIcon.inProgress": "Řešení úlohy je právě vyhodnocováno.",
"app.assignemntStatusIcon.none": "Zatím nebyla odevzdána žádná řešení.",
"app.assignemntStatusIcon.ok": "Úloha byla úspěšně splněna.",
"app.assignemntStatusIcon.solutionMissingSubmission": "The solution was not submitted for evaluation probably due to an error. You may need to resubmit it.",
"app.assignment.alreadySubmitted": "Already submitted:",
"app.assignment.canSubmit": "Můžete odevzdat více řešení:",
"app.assignment.deadline": "Termín odevzdání",
"app.assignment.editSettings": "Upravit nastavení zadané úlohy",
Expand Down Expand Up @@ -276,7 +278,6 @@
"app.editGroupForm.successNew": "Create group",
"app.editGroupForm.titleEdit": "Edit group",
"app.editGroupForm.titleNew": "Create new group",
"app.editGroupForm.validation.description": "Please fill the description of the group.",
"app.editGroupForm.validation.emptyName": "Please fill the name of the group.",
"app.editGroupForm.validation.localizedText": "Please fill localized information.",
"app.editGroupForm.validation.localizedText.locale": "Please select the language.",
Expand Down Expand Up @@ -777,6 +778,7 @@
"app.resourceDependendBreadcrumbItem.loading": "Načítání ...",
"app.resourceRenderer.loading": "Načítání ...",
"app.resourceRenderer.loadingFailed": "Načítání se nezdařilo.",
"app.resubmitSolution.confirm": "Are you sure you want to resubmit this solution?",
"app.resubmitSolution.resubmitAll": "Znovu vyhodnotit všechna řešení této zadané úlohy",
"app.resubmitSolution.resubmitAllConfirm": "Opravdu chcete vyhodnotit všechna řešení všech studentů tohoto zadání úlohy? Tato akce může trvat velmi dlouho.",
"app.resubmitSolution.resubmitDebug": "Resubmit (debug mode)",
Expand Down Expand Up @@ -836,18 +838,18 @@
"app.submission.evaluation.bonusPoints": "Bonusové body:",
"app.submission.evaluation.status.failed": "Řešení nesplňuje zadaná kritéria.",
"app.submission.evaluation.status.isCorrect": "Řešení splňuje zadaná kritérii.",
"app.submission.evaluation.status.solutionMissingSubmission": "Solution was not submitted for evaluation. This was probably caused by an error in the assignment configuration.",
"app.submission.evaluation.status.systemFailiure": "Vyhodnocení selhalo a Řešení nebylo ohodnoceno. Prosíme odešlete Řešení ještě jednou. Pokud problém přetrvává, obraťte se na správce systému.",
"app.submission.evaluation.status.workInProgress": "Vyhodnocování řešení ještě nebylo dokončeno.",
"app.submission.evaluation.title": "Vyhodnocení řešení",
"app.submission.evaluation.title.testResults": "Výsledky testů",
"app.submission.isCorrect": "Řešení je správné:",
"app.submission.evaluationStatus": "Evaluation Status:",
"app.submission.note": "Poznámka:",
"app.submission.originalSubmission": "Původní řešení:",
"app.submission.reevaluatedBy": "Reevaluated by:",
"app.submission.submittedAt": "Odevzdáno:",
"app.submission.submittedBy": "Odevzdáno cvičícím:",
"app.submission.title": "Řešení",
"app.submissionEvaluation.active": "Active",
"app.submissionEvaluation.select": "Select",
"app.submissionEvaluation.selected": "Selected",
"app.submissionEvaluation.title": "Other submissions of this solution",
"app.submissionStatus.accepted": "Toto řešení bylo připnuto cvičícím.",
"app.submissions.testResultsTable.exitCode": "Exit code",
Expand All @@ -860,7 +862,6 @@
"app.submissions.testResultsTable.testName": "Název testu",
"app.submissions.testResultsTable.timeExceeded": "Časový limit",
"app.submissionsTable.failedLoading": "Nebylo možné načíst odevzdaná řešení.",
"app.submissionsTable.findOutResult": "Zjistit výsledky vyhodnocení",
"app.submissionsTable.loading": "Načítají se odezvdaná řešení ...",
"app.submissionsTable.noSolutionsFound": "Zatím nebyla odevzdána žádná řešení.",
"app.submissionsTable.note": "Poznámka",
Expand All @@ -869,6 +870,7 @@
"app.submissionsTable.solutionValidity": "Správnost řešení",
"app.submissionsTable.submissionDate": "Datum odevzdání",
"app.submissionsTable.submitNewSolution": "Odevzdat nové řešení",
"app.submissionsTable.title": "Submitted solutions",
"app.submissionsTableContainer.title": "Odevzdaná řešení",
"app.submistSolution.instructions": "Musíte připojit alespoň jeden soubor se zdrojovým kódem a počkat, než jsou všechny soubory nahrány na server. Pokud nastane problém při uploadu některých soborů, nahrajte je znovu nebo soubory odeberte. Jméno souboru NESMÍ OBSAHOVAT žádné nestandardní znaky (například v kódování UTF-8).",
"app.submistSolution.submitFailed": "Odevzdané řešení bylo aktivně odmítnuto. Toto je obvykle způsobeno nahráním souborů se jménem obsahujícím nestandardní znaky nebo špatnou koncovkou. Pokud nemůžete odevzdat řešení bez zjevného důvodu, kontaktujte prosím svého cvičícího.",
Expand Down
14 changes: 8 additions & 6 deletions src/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@
"app.assignemntStatusIcon.inProgress": "Assignment solution is being evaluated.",
"app.assignemntStatusIcon.none": "No solutions were submmitted so far.",
"app.assignemntStatusIcon.ok": "Assignment is successfully completed.",
"app.assignemntStatusIcon.solutionMissingSubmission": "The solution was not submitted for evaluation probably due to an error. You may need to resubmit it.",
"app.assignment.alreadySubmitted": "Already submitted:",
"app.assignment.canSubmit": "You can submit more solutions:",
"app.assignment.deadline": "Deadline",
"app.assignment.editSettings": "Edit assignment settings",
Expand Down Expand Up @@ -276,7 +278,6 @@
"app.editGroupForm.successNew": "Create group",
"app.editGroupForm.titleEdit": "Edit group",
"app.editGroupForm.titleNew": "Create new group",
"app.editGroupForm.validation.description": "Please fill the description of the group.",
"app.editGroupForm.validation.emptyName": "Please fill the name of the group.",
"app.editGroupForm.validation.localizedText": "Please fill localized information.",
"app.editGroupForm.validation.localizedText.locale": "Please select the language.",
Expand Down Expand Up @@ -777,6 +778,7 @@
"app.resourceDependendBreadcrumbItem.loading": "Loading ...",
"app.resourceRenderer.loading": "Loading ...",
"app.resourceRenderer.loadingFailed": "Loading failed.",
"app.resubmitSolution.confirm": "Are you sure you want to resubmit this solution?",
"app.resubmitSolution.resubmitAll": "Resubmit all solution for this assignment",
"app.resubmitSolution.resubmitAllConfirm": "Are you sure you want to resubmit all solutions of all students for this assignment? This can take serious amount of time.",
"app.resubmitSolution.resubmitDebug": "Resubmit (debug mode)",
Expand Down Expand Up @@ -836,18 +838,18 @@
"app.submission.evaluation.bonusPoints": "Bonus points:",
"app.submission.evaluation.status.failed": "The solution does not meet the defined criteria.",
"app.submission.evaluation.status.isCorrect": "The solution is correct and meets all criteria.",
"app.submission.evaluation.status.solutionMissingSubmission": "Solution was not submitted for evaluation. This was probably caused by an error in the assignment configuration.",
"app.submission.evaluation.status.systemFailiure": "Evaluation process failed and your submission could not have been evaluated. Please submit the solution once more. If you keep receiving errors please contact the administrator of this project.",
"app.submission.evaluation.status.workInProgress": "The solution has not been evaluated yet.",
"app.submission.evaluation.title": "The solution evaluation",
"app.submission.evaluation.title.testResults": "Test results",
"app.submission.isCorrect": "The solution is correct:",
"app.submission.evaluationStatus": "Evaluation Status:",
"app.submission.note": "Note:",
"app.submission.originalSubmission": "Resubmit of:",
"app.submission.reevaluatedBy": "Reevaluated by:",
"app.submission.submittedAt": "Submitted at:",
"app.submission.submittedBy": "Submitted by:",
"app.submission.title": "The solution",
"app.submissionEvaluation.active": "Active",
"app.submissionEvaluation.select": "Select",
"app.submissionEvaluation.selected": "Selected",
"app.submissionEvaluation.title": "Other submissions of this solution",
"app.submissionStatus.accepted": "This solution was marked by one of the supervisors as accepted.",
"app.submissions.testResultsTable.exitCode": "Exit code",
Expand All @@ -860,7 +862,6 @@
"app.submissions.testResultsTable.testName": "Test name",
"app.submissions.testResultsTable.timeExceeded": "Time limit",
"app.submissionsTable.failedLoading": "Could not load this submission.",
"app.submissionsTable.findOutResult": "Find out results of evaluation",
"app.submissionsTable.loading": "Loading submitted solutions ...",
"app.submissionsTable.noSolutionsFound": "No solutions were submitted yet.",
"app.submissionsTable.note": "Note",
Expand All @@ -869,6 +870,7 @@
"app.submissionsTable.solutionValidity": "Solution validity",
"app.submissionsTable.submissionDate": "Date of submission",
"app.submissionsTable.submitNewSolution": "Submit new solution",
"app.submissionsTable.title": "Submitted solutions",
"app.submissionsTableContainer.title": "Submitted solutions",
"app.submistSolution.instructions": "You must attach at least one file with source code and wait, until all your files are uploaded to the server. If there is a problem uploading any of the files, check the name of the file. The name MUST NOT contain non-standard characters (like UTF-8 ones). Then try to upload it again.",
"app.submistSolution.submitFailed": "Submission was rejected by the server. This usually means you have uploaded incorrect files - do your files have name with ASCII characters only and proper file type extensions? If you cannot submit the solution and there is no obvious reason, contact your supervisor to sort things out.",
Expand Down
9 changes: 5 additions & 4 deletions src/pages/Assignment/Assignment.js
Original file line number Diff line number Diff line change
Expand Up @@ -273,12 +273,13 @@ class Assignment extends Component {
</Alert>
</Col>
</Row>}

<Row>
<Col lg={6}>
<div>
{assignment.localizedTexts.length > 0 &&
<LocalizedTexts locales={assignment.localizedTexts} />}
</div>
{assignment.localizedTexts.length > 0 &&
<div>
<LocalizedTexts locales={assignment.localizedTexts} />
</div>}
</Col>
<ResourceRenderer resource={runtimeEnvironments}>
{(...runtimes) =>
Expand Down

0 comments on commit ed64bc1

Please sign in to comment.