Merge branch '476-interface-fur-klausurkorrekturen' of gitlab2.rz.ifi.lmu.de:uni2work/uni2work into feat/exam-correct
This commit is contained in:
commit
1942ad10d5
@ -12,10 +12,28 @@ table[uw-exam-correct]
|
|||||||
min-width: 200px
|
min-width: 200px
|
||||||
th.uw-exam-correct--part-cell, td.uw-exam-correct--part-cell
|
th.uw-exam-correct--part-cell, td.uw-exam-correct--part-cell
|
||||||
width: 85px
|
width: 85px
|
||||||
|
text-align: center
|
||||||
input
|
input
|
||||||
width: 70px
|
width: 70px
|
||||||
padding: 4px 8px
|
padding: 4px 8px
|
||||||
|
|
||||||
|
td#uw-exam-correct__result
|
||||||
|
width: min-content
|
||||||
|
select
|
||||||
|
width: max-content
|
||||||
|
min-width: max-content
|
||||||
|
option
|
||||||
|
width: max-content
|
||||||
|
min-width: max-content
|
||||||
|
td#uw-exam-correct__result__grade
|
||||||
|
width: min-content
|
||||||
|
select
|
||||||
|
width: max-content
|
||||||
|
min-width: max-content
|
||||||
|
option
|
||||||
|
width: max-content
|
||||||
|
min-width: max-content
|
||||||
|
|
||||||
|
|
||||||
[uw-exam-correct] input:invalid:not(.no-value)
|
[uw-exam-correct] input:invalid:not(.no-value)
|
||||||
border: 2px solid var(--color-error)
|
border: 2px solid var(--color-error)
|
||||||
|
|||||||
@ -1258,6 +1258,7 @@ BreadcrumbTutorInvite: Einladung zum Tutor
|
|||||||
BreadcrumbExamCorrectorInvite: Einladung zum Prüfungskorrektor
|
BreadcrumbExamCorrectorInvite: Einladung zum Prüfungskorrektor
|
||||||
BreadcrumbExamParticipantInvite: Einladung zum Prüfungsteilnehmer
|
BreadcrumbExamParticipantInvite: Einladung zum Prüfungsteilnehmer
|
||||||
BreadcrumbExamRegister: Anmelden
|
BreadcrumbExamRegister: Anmelden
|
||||||
|
BreadcrumbExamCorrect: Eintragen von Prüfungsergebnissen
|
||||||
BreadcrumbApplicationFiles: Bewerbungsdateien
|
BreadcrumbApplicationFiles: Bewerbungsdateien
|
||||||
BreadcrumbCourseNewsArchive: Archiv
|
BreadcrumbCourseNewsArchive: Archiv
|
||||||
BreadcrumbCourseNewsFile: Datei
|
BreadcrumbCourseNewsFile: Datei
|
||||||
|
|||||||
@ -1257,6 +1257,7 @@ BreadcrumbTutorInvite: Invitation to be a tutor
|
|||||||
BreadcrumbExamCorrectorInvite: Invitation to be an exam corrector
|
BreadcrumbExamCorrectorInvite: Invitation to be an exam corrector
|
||||||
BreadcrumbExamParticipantInvite: Invitation to be an exam participant
|
BreadcrumbExamParticipantInvite: Invitation to be an exam participant
|
||||||
BreadcrumbExamRegister: Register
|
BreadcrumbExamRegister: Register
|
||||||
|
BreadcrumbExamCorrect: Exam corrections
|
||||||
BreadcrumbApplicationFiles: Application files
|
BreadcrumbApplicationFiles: Application files
|
||||||
BreadcrumbCourseNewsArchive: Archive
|
BreadcrumbCourseNewsArchive: Archive
|
||||||
BreadcrumbCourseNewsFile: File
|
BreadcrumbCourseNewsFile: File
|
||||||
|
|||||||
@ -119,6 +119,7 @@
|
|||||||
"@babel/runtime": "^7.7.6",
|
"@babel/runtime": "^7.7.6",
|
||||||
"@juggle/resize-observer": "^2.5.0",
|
"@juggle/resize-observer": "^2.5.0",
|
||||||
"core-js": "^3.4.8",
|
"core-js": "^3.4.8",
|
||||||
|
"js-cookie": "^2.2.1",
|
||||||
"lodash.throttle": "^4.1.1",
|
"lodash.throttle": "^4.1.1",
|
||||||
"js-cookie": "^2.2.1",
|
"js-cookie": "^2.2.1",
|
||||||
"moment": "^2.24.0",
|
"moment": "^2.24.0",
|
||||||
|
|||||||
684
records.json
684
records.json
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/app.sass": [
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/sass-loader/dist/cjs.js??ref--6-3!frontend/src/app.scss": [
|
||||||
{
|
{
|
||||||
"modules": {
|
"modules": {
|
||||||
"byIdentifier": {},
|
"byIdentifier": {},
|
||||||
@ -12,7 +12,512 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/asidenav/asidenav.sass": [
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/sass-loader/dist/cjs.js??ref--6-3!frontend/src/utils/alerts/alerts.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/sass-loader/dist/cjs.js??ref--6-3!frontend/src/utils/async-form/async-form.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/sass-loader/dist/cjs.js??ref--6-3!frontend/src/utils/asidenav/asidenav.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/sass-loader/dist/cjs.js??ref--6-3!frontend/src/utils/async-table/async-table-filter.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/sass-loader/dist/cjs.js??ref--6-3!frontend/src/utils/async-table/async-table.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/sass-loader/dist/cjs.js??ref--6-3!frontend/src/utils/show-hide/show-hide.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/sass-loader/dist/cjs.js??ref--6-3!frontend/src/utils/form/form.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/sass-loader/dist/cjs.js??ref--6-3!frontend/src/utils/inputs/inputs.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/sass-loader/dist/cjs.js??ref--6-3!frontend/src/utils/inputs/radio.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/sass-loader/dist/cjs.js??ref--6-3!frontend/src/utils/mass-input/mass-input.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/sass-loader/dist/cjs.js??ref--6-3!frontend/src/utils/hide-columns/hide-columns.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/sass-loader/dist/cjs.js??ref--6-3!frontend/src/utils/navbar/navbar.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/sass-loader/dist/cjs.js??ref--6-3!frontend/src/utils/course-teaser/course-teaser.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/sass-loader/dist/cjs.js??ref--6-3!frontend/src/utils/tooltips/tooltips.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/sass-loader/dist/cjs.js??ref--6-3!frontend/src/utils/modal/modal.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/sass-loader/dist/cjs.js??ref--6-3!frontend/src/utils/inputs/file-input.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/sass-loader/dist/cjs.js??ref--6-3!frontend/src/utils/inputs/checkbox.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--5-1!node_modules/postcss-loader/src/index.js??ref--5-2!frontend/src/utils/form/datepicker.css": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {
|
||||||
|
"multi frontend/src/polyfill.js frontend/src/main.js": 0,
|
||||||
|
"ignored node_modules/libsodium/dist/modules fs": 1,
|
||||||
|
"ignored node_modules/readable-stream/lib util": 2,
|
||||||
|
"ignored node_modules/readable-stream/lib/internal/streams util": 3,
|
||||||
|
"ignored node_modules/bn.js/lib buffer": 4,
|
||||||
|
"ignored node_modules/brorand crypto": 5,
|
||||||
|
"ignored node_modules/sodium-javascript crypto": 1
|
||||||
|
},
|
||||||
|
"usedIds": {
|
||||||
|
"0": 0,
|
||||||
|
"1": 1,
|
||||||
|
"2": 2,
|
||||||
|
"3": 3,
|
||||||
|
"4": 4,
|
||||||
|
"5": 5
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
},
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/app.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/alerts/alerts.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/asidenav/asidenav.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/show-hide/show-hide.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/async-form/async-form.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/async-table/async-table-filter.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/async-table/async-table.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/form/form.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/inputs/inputs.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/inputs/radio.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/mass-input/mass-input.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/hide-columns/hide-columns.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/navbar/navbar.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/tooltips/tooltips.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/course-teaser/course-teaser.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/modal/modal.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/inputs/file-input.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/inputs/checkbox.scss": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--5-1!node_modules/postcss-loader/src/index.js??ref--5-2!node_modules/resolve-url-loader/index.js??ref--5-3!frontend/src/utils/form/datepicker.css": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/app.sass": [
|
||||||
{
|
{
|
||||||
"modules": {
|
"modules": {
|
||||||
"byIdentifier": {},
|
"byIdentifier": {},
|
||||||
@ -38,7 +543,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/show-hide/show-hide.sass": [
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/alerts/alerts.sass": [
|
||||||
{
|
{
|
||||||
"modules": {
|
"modules": {
|
||||||
"byIdentifier": {},
|
"byIdentifier": {},
|
||||||
@ -51,7 +556,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/alerts/alerts.sass": [
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/asidenav/asidenav.sass": [
|
||||||
{
|
{
|
||||||
"modules": {
|
"modules": {
|
||||||
"byIdentifier": {},
|
"byIdentifier": {},
|
||||||
@ -77,19 +582,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/exam-correct/exam-correct.sass": [
|
|
||||||
{
|
|
||||||
"modules": {
|
|
||||||
"byIdentifier": {},
|
|
||||||
"usedIds": {}
|
|
||||||
},
|
|
||||||
"chunks": {
|
|
||||||
"byName": {},
|
|
||||||
"bySource": {},
|
|
||||||
"usedIds": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/hide-columns/hide-columns.sass": [
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/hide-columns/hide-columns.sass": [
|
||||||
{
|
{
|
||||||
"modules": {
|
"modules": {
|
||||||
@ -103,19 +595,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/pageactions/pageactions.sass": [
|
|
||||||
{
|
|
||||||
"modules": {
|
|
||||||
"byIdentifier": {},
|
|
||||||
"usedIds": {}
|
|
||||||
},
|
|
||||||
"chunks": {
|
|
||||||
"byName": {},
|
|
||||||
"bySource": {},
|
|
||||||
"usedIds": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/navbar/navbar.sass": [
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/navbar/navbar.sass": [
|
||||||
{
|
{
|
||||||
"modules": {
|
"modules": {
|
||||||
@ -142,19 +621,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/tooltips/tooltips.sass": [
|
|
||||||
{
|
|
||||||
"modules": {
|
|
||||||
"byIdentifier": {},
|
|
||||||
"usedIds": {}
|
|
||||||
},
|
|
||||||
"chunks": {
|
|
||||||
"byName": {},
|
|
||||||
"bySource": {},
|
|
||||||
"usedIds": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/modal/modal.sass": [
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/modal/modal.sass": [
|
||||||
{
|
{
|
||||||
"modules": {
|
"modules": {
|
||||||
@ -168,6 +634,19 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/tooltips/tooltips.sass": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/mass-input/mass-input.sass": [
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/mass-input/mass-input.sass": [
|
||||||
{
|
{
|
||||||
"modules": {
|
"modules": {
|
||||||
@ -181,32 +660,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/async-table/async-table.sass": [
|
|
||||||
{
|
|
||||||
"modules": {
|
|
||||||
"byIdentifier": {},
|
|
||||||
"usedIds": {}
|
|
||||||
},
|
|
||||||
"chunks": {
|
|
||||||
"byName": {},
|
|
||||||
"bySource": {},
|
|
||||||
"usedIds": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/async-table/async-table-filter.sass": [
|
|
||||||
{
|
|
||||||
"modules": {
|
|
||||||
"byIdentifier": {},
|
|
||||||
"usedIds": {}
|
|
||||||
},
|
|
||||||
"chunks": {
|
|
||||||
"byName": {},
|
|
||||||
"bySource": {},
|
|
||||||
"usedIds": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/inputs/radio.sass": [
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/inputs/radio.sass": [
|
||||||
{
|
{
|
||||||
"modules": {
|
"modules": {
|
||||||
@ -233,6 +686,45 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/show-hide/show-hide.sass": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/async-table/async-table.sass": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/async-table/async-table-filter.sass": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/inputs/file-input.sass": [
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/inputs/file-input.sass": [
|
||||||
{
|
{
|
||||||
"modules": {
|
"modules": {
|
||||||
@ -259,7 +751,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--5-1!node_modules/postcss-loader/src/index.js??ref--5-2!node_modules/resolve-url-loader/index.js??ref--5-3!frontend/src/utils/form/datepicker.css": [
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/exam-correct/exam-correct.sass": [
|
||||||
{
|
{
|
||||||
"modules": {
|
"modules": {
|
||||||
"byIdentifier": {},
|
"byIdentifier": {},
|
||||||
@ -272,19 +764,43 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"modules": {
|
"app-manifest-webpack-plugin for \"/home/gkleen/projects/uni2work/static/wp-4.41/iconstats-[hash].json\"": [
|
||||||
"byIdentifier": {
|
{
|
||||||
"multi frontend/src/polyfill.js frontend/src/main.js": 0,
|
"modules": {
|
||||||
"ignored node_modules/sodium-javascript crypto": 1
|
"byIdentifier": {},
|
||||||
},
|
"usedIds": {}
|
||||||
"usedIds": {
|
},
|
||||||
"0": 0,
|
"chunks": {
|
||||||
"1": 1
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
],
|
||||||
"chunks": {
|
"app-manifest-webpack-plugin for \"../../config/favicon.json\"": [
|
||||||
"byName": {},
|
{
|
||||||
"bySource": {},
|
"modules": {
|
||||||
"usedIds": []
|
"byIdentifier": {},
|
||||||
}
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/pageactions/pageactions.sass": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
@ -29,7 +29,8 @@ deriveJSON defaultOptions
|
|||||||
data CorrectInterfaceResponse
|
data CorrectInterfaceResponse
|
||||||
= CorrectInterfaceResponseSuccess
|
= CorrectInterfaceResponseSuccess
|
||||||
{ cirsUser :: CorrectInterfaceUser
|
{ cirsUser :: CorrectInterfaceUser
|
||||||
, cirsResults :: Map ExamPartNumber (Maybe Points)
|
, cirsResults :: Map ExamPartNumber (Maybe ExamResultPoints)
|
||||||
|
, cirsGrade :: Maybe ExamResultPassedGrade
|
||||||
, cirsTime :: UTCTime
|
, cirsTime :: UTCTime
|
||||||
}
|
}
|
||||||
| CorrectInterfaceResponseAmbiguous
|
| CorrectInterfaceResponseAmbiguous
|
||||||
@ -52,6 +53,7 @@ data CorrectInterfaceRequest
|
|||||||
= CorrectInterfaceRequest
|
= CorrectInterfaceRequest
|
||||||
{ ciqUser :: Either Text (CryptoID UUID (Key User))
|
{ ciqUser :: Either Text (CryptoID UUID (Key User))
|
||||||
, ciqResults :: Maybe (NonNull (Map ExamPartNumber (Maybe Points)))
|
, ciqResults :: Maybe (NonNull (Map ExamPartNumber (Maybe Points)))
|
||||||
|
, ciqGrade :: Maybe ExamResultPassedGrade
|
||||||
}
|
}
|
||||||
|
|
||||||
instance FromJSON CorrectInterfaceRequest where
|
instance FromJSON CorrectInterfaceRequest where
|
||||||
@ -59,6 +61,7 @@ instance FromJSON CorrectInterfaceRequest where
|
|||||||
ciqUser <- Right <$> o JSON..: "user" <|> Left <$> o JSON..: "user"
|
ciqUser <- Right <$> o JSON..: "user" <|> Left <$> o JSON..: "user"
|
||||||
results <- o JSON..:? "results"
|
results <- o JSON..:? "results"
|
||||||
ciqResults <- for results $ maybe (fail "Results may not be nullable") return . fromNullable
|
ciqResults <- for results $ maybe (fail "Results may not be nullable") return . fromNullable
|
||||||
|
ciqGrade <- o JSON..:? "grade"
|
||||||
return CorrectInterfaceRequest{..}
|
return CorrectInterfaceRequest{..}
|
||||||
|
|
||||||
|
|
||||||
@ -67,10 +70,14 @@ getECorrectR tid ssh csh examn = do
|
|||||||
MsgRenderer mr <- getMsgRenderer
|
MsgRenderer mr <- getMsgRenderer
|
||||||
|
|
||||||
(Entity eId Exam{..}, examParts) <- runDB $ do
|
(Entity eId Exam{..}, examParts) <- runDB $ do
|
||||||
exam@(Entity eId Exam{..}) <- fetchExam tid ssh csh examn
|
exam@(Entity eId _) <- fetchExam tid ssh csh examn
|
||||||
examParts <- sortOn (view $ _entityVal . _examPartNumber) <$> selectList [ ExamPartExam ==. eId ] [ Asc ExamPartName ]
|
examParts <- sortOn (view $ _entityVal . _examPartNumber) <$> selectList [ ExamPartExam ==. eId ] [ Asc ExamPartName ]
|
||||||
return (exam, entityVal <$> examParts)
|
return (exam, entityVal <$> examParts)
|
||||||
|
|
||||||
|
-- TODO submit exam results: work in progress
|
||||||
|
-- mayEditResults <- hasWriteAccessTo $ CExamR tid ssh csh examn EUsersR
|
||||||
|
let mayEditResults = False
|
||||||
|
|
||||||
let
|
let
|
||||||
heading = prependCourseTitle tid ssh csh $ (mr . MsgExamCorrectHeading . CI.original) examName
|
heading = prependCourseTitle tid ssh csh $ (mr . MsgExamCorrectHeading . CI.original) examName
|
||||||
|
|
||||||
@ -81,6 +88,9 @@ getECorrectR tid ssh csh examn = do
|
|||||||
|
|
||||||
participantHeadTooltip = [whamlet| _{MsgExamCorrectHeadParticipantTooltip} |]
|
participantHeadTooltip = [whamlet| _{MsgExamCorrectHeadParticipantTooltip} |]
|
||||||
|
|
||||||
|
examGrades :: [ExamGrade]
|
||||||
|
examGrades = universeF
|
||||||
|
|
||||||
examCorrectIdent <- encrypt eId :: Handler CryptoUUIDExam
|
examCorrectIdent <- encrypt eId :: Handler CryptoUUIDExam
|
||||||
|
|
||||||
siteLayoutMsg heading $ do
|
siteLayoutMsg heading $ do
|
||||||
@ -92,10 +102,10 @@ postECorrectR :: TermId -> SchoolId -> CourseShorthand -> ExamName -> Handler Vo
|
|||||||
postECorrectR tid ssh csh examn = do
|
postECorrectR tid ssh csh examn = do
|
||||||
MsgRenderer mr <- getMsgRenderer
|
MsgRenderer mr <- getMsgRenderer
|
||||||
|
|
||||||
CorrectInterfaceRequest{ciqUser,ciqResults} <- requireCheckJsonBody
|
CorrectInterfaceRequest{..} <- requireCheckJsonBody
|
||||||
|
|
||||||
response <- runDB $ do
|
response <- runDB $ do
|
||||||
Entity eId _ <- fetchExam tid ssh csh examn
|
Entity eId Exam{..} <- fetchExam tid ssh csh examn
|
||||||
euid <- traverse decrypt ciqUser
|
euid <- traverse decrypt ciqUser
|
||||||
|
|
||||||
participantMatches <- E.select . E.from $ \(examRegistration `E.InnerJoin` user) -> do
|
participantMatches <- E.select . E.from $ \(examRegistration `E.InnerJoin` user) -> do
|
||||||
@ -130,17 +140,18 @@ postECorrectR tid ssh csh examn = do
|
|||||||
|
|
||||||
if
|
if
|
||||||
-- on no-op request, answer with 200 and a set of all participant matches
|
-- on no-op request, answer with 200 and a set of all participant matches
|
||||||
| is _Nothing ciqResults -> do
|
| is _Nothing ciqResults, is _Nothing ciqGrade -> do
|
||||||
users <- traverse userToResponse participantMatches
|
users <- traverse userToResponse participantMatches
|
||||||
return CorrectInterfaceResponseNoOp
|
return CorrectInterfaceResponseNoOp
|
||||||
{ cirnUsers = Set.fromList users
|
{ cirnUsers = Set.fromList users
|
||||||
}
|
}
|
||||||
|
|
||||||
-- on match with exactly one exam participant, insert results and answer with 200
|
-- on match with exactly one exam participant, insert results and/or grade and answer with 200
|
||||||
| [match@(Entity uid _)] <- participantMatches, Just results <- ciqResults -> do
|
| [match@(Entity uid _)] <- participantMatches -> do
|
||||||
now <- liftIO getCurrentTime
|
now <- liftIO getCurrentTime
|
||||||
newExamPartResults <- iforM (toNullable results) $ \partNumber mPartResult -> do
|
newExamPartResults <- if
|
||||||
examPartId <- getKeyBy404 $ UniqueExamPartNumber eId partNumber
|
| Just results <- ciqResults -> iforM (toNullable results) $ \partNumber mPartResult -> do
|
||||||
|
(Entity examPartId ExamPart{..}) <- getBy404 $ UniqueExamPartNumber eId partNumber
|
||||||
mOldResult <- getBy $ UniqueExamPartResult examPartId uid
|
mOldResult <- getBy $ UniqueExamPartResult examPartId uid
|
||||||
if
|
if
|
||||||
| Just (Entity oldId _) <- mOldResult, is _Nothing mPartResult -> do
|
| Just (Entity oldId _) <- mOldResult, is _Nothing mPartResult -> do
|
||||||
@ -150,26 +161,63 @@ postECorrectR tid ssh csh examn = do
|
|||||||
| Just partResult <- mPartResult -> let
|
| Just partResult <- mPartResult -> let
|
||||||
mOld = (examPartResultResult . entityVal) <$> mOldResult
|
mOld = (examPartResultResult . entityVal) <$> mOldResult
|
||||||
mNew = ExamAttended <$> mPartResult
|
mNew = ExamAttended <$> mPartResult
|
||||||
resultVal = _entityVal . _examPartResultResult . _ExamAttended
|
resultVal = _entityVal . _examPartResultResult
|
||||||
in if
|
in if
|
||||||
| mOld /= mNew -> do
|
| mOld /= mNew -> let
|
||||||
newExamPartResult <- upsert ExamPartResult
|
-- cut off part results that exceed the maximum number of points for this exam part for now
|
||||||
{ examPartResultExamPart = examPartId
|
-- TODO answer with new failure response type instead
|
||||||
, examPartResultUser = uid
|
partResult' = if
|
||||||
, examPartResultResult = ExamAttended partResult
|
| Just maxPts <- examPartMaxPoints, maxPts < partResult -> maxPts
|
||||||
, examPartResultLastChanged = now
|
| otherwise -> partResult
|
||||||
}
|
in do
|
||||||
[ ExamPartResultResult =. ExamAttended partResult
|
newExamPartResult <- upsert ExamPartResult
|
||||||
, ExamPartResultLastChanged =. now
|
{ examPartResultExamPart = examPartId
|
||||||
]
|
, examPartResultUser = uid
|
||||||
audit $ TransactionExamPartResultEdit examPartId uid
|
, examPartResultResult = ExamAttended partResult'
|
||||||
return $ newExamPartResult ^? resultVal
|
, examPartResultLastChanged = now
|
||||||
|
}
|
||||||
|
[ ExamPartResultResult =. ExamAttended partResult'
|
||||||
|
, ExamPartResultLastChanged =. now
|
||||||
|
]
|
||||||
|
audit $ TransactionExamPartResultEdit examPartId uid
|
||||||
|
return $ newExamPartResult ^? resultVal
|
||||||
| otherwise -> return $ mOldResult ^? _Just . resultVal
|
| otherwise -> return $ mOldResult ^? _Just . resultVal
|
||||||
| otherwise -> return Nothing
|
| otherwise -> return Nothing
|
||||||
|
| otherwise -> return mempty
|
||||||
|
|
||||||
|
newExamResult <- do
|
||||||
|
mOldResult <- getBy $ UniqueExamResult eId uid
|
||||||
|
if
|
||||||
|
| Just (Entity oldId _) <- mOldResult, is _Nothing ciqGrade -> do
|
||||||
|
delete oldId
|
||||||
|
audit $ TransactionExamResultDeleted eId uid
|
||||||
|
return Nothing
|
||||||
|
| Just result <- ciqGrade -> let
|
||||||
|
mOld = view passedGrade . examResultResult . entityVal <$> mOldResult
|
||||||
|
resultGrade = review passedGrade result
|
||||||
|
passedGrade :: Iso' ExamResultGrade ExamResultPassedGrade
|
||||||
|
passedGrade = iso (fmap $ bool (Left . view passingGrade) Right examShowGrades) (fmap $ either (review passingGrade) id)
|
||||||
|
in if
|
||||||
|
| ciqGrade /= mOld -> do
|
||||||
|
newResult <- upsert ExamResult
|
||||||
|
{ examResultExam = eId
|
||||||
|
, examResultUser = uid
|
||||||
|
, examResultResult = resultGrade
|
||||||
|
, examResultLastChanged = now
|
||||||
|
}
|
||||||
|
[ ExamResultResult =. resultGrade
|
||||||
|
, ExamResultLastChanged =. now
|
||||||
|
]
|
||||||
|
audit $ TransactionExamResultEdit eId uid
|
||||||
|
return $ newResult ^? _entityVal . _examResultResult . passedGrade
|
||||||
|
| otherwise -> return $ mOldResult ^? _Just . _entityVal . _examResultResult . passedGrade
|
||||||
|
| otherwise -> return Nothing
|
||||||
|
|
||||||
user <- userToResponse match
|
user <- userToResponse match
|
||||||
return CorrectInterfaceResponseSuccess
|
return CorrectInterfaceResponseSuccess
|
||||||
{ cirsUser = user
|
{ cirsUser = user
|
||||||
, cirsResults = newExamPartResults
|
, cirsResults = newExamPartResults
|
||||||
|
, cirsGrade = newExamResult
|
||||||
, cirsTime = now
|
, cirsTime = now
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -147,7 +147,7 @@ examCorrectorsForm mPrev = wFormToAForm $ do
|
|||||||
miLayout' :: MassInputLayout ListLength (Either UserEmail UserId) ()
|
miLayout' :: MassInputLayout ListLength (Either UserEmail UserId) ()
|
||||||
miLayout' lLength _ cellWdgts delButtons addWdgts = $(widgetFile "widgets/massinput/examCorrectors/layout")
|
miLayout' lLength _ cellWdgts delButtons addWdgts = $(widgetFile "widgets/massinput/examCorrectors/layout")
|
||||||
|
|
||||||
fmap Set.fromList <$> massInputAccumW miAdd' miCell' miButtonAction' miLayout' ("correctors" :: Text) (fslI MsgExamCorrectors & setTooltip (UniWorXMessages [SomeMessage MsgExamCorrectorsTip, SomeMessage MsgMassInputTip])) False (Set.toList <$> mPrev)
|
fmap Set.fromList <$> massInputAccumW miAdd' miCell' miButtonAction' miLayout' ("correctors" :: Text) (fslI MsgExamCorrectors & setTooltip (uniworxMessages [MsgExamCorrectorsTip, MsgMassInputTip])) False (Set.toList <$> mPrev)
|
||||||
|
|
||||||
examOccurrenceForm :: Maybe (Set ExamOccurrenceForm) -> AForm Handler (Set ExamOccurrenceForm)
|
examOccurrenceForm :: Maybe (Set ExamOccurrenceForm) -> AForm Handler (Set ExamOccurrenceForm)
|
||||||
examOccurrenceForm prev = wFormToAForm $ do
|
examOccurrenceForm prev = wFormToAForm $ do
|
||||||
|
|||||||
@ -20,6 +20,9 @@ $newline never
|
|||||||
_{MsgExamCorrectHeadPartName name}
|
_{MsgExamCorrectHeadPartName name}
|
||||||
$nothing
|
$nothing
|
||||||
_{MsgExamCorrectHeadPart examPartNumber}
|
_{MsgExamCorrectHeadPart examPartNumber}
|
||||||
|
$if mayEditResults
|
||||||
|
<th .table__th .uw-exam-correct--result-cell uw-exam-correct-header="result" uw-hide-column-header="result" colspan=2>
|
||||||
|
_{MsgExamResult}
|
||||||
<th .table__th uw-exam-correct-header="status" uw-hide-column-header="status">
|
<th .table__th uw-exam-correct-header="status" uw-hide-column-header="status">
|
||||||
_{MsgExamCorrectHeadStatus}
|
_{MsgExamCorrectHeadStatus}
|
||||||
<tbody>
|
<tbody>
|
||||||
@ -32,6 +35,28 @@ $newline never
|
|||||||
$forall ExamPart{examPartNumber} <- examParts
|
$forall ExamPart{examPartNumber} <- examParts
|
||||||
<td .table__td .uw-exam-correct--part-cell>
|
<td .table__td .uw-exam-correct--part-cell>
|
||||||
^{ptsInput examPartNumber}
|
^{ptsInput examPartNumber}
|
||||||
|
$if mayEditResults
|
||||||
|
<td .table__td #uw-exam-correct__result>
|
||||||
|
<select>
|
||||||
|
<option>
|
||||||
|
_{MsgExamResultNone}
|
||||||
|
$if examShowGrades
|
||||||
|
<option>
|
||||||
|
_{MsgExamResult}
|
||||||
|
$else
|
||||||
|
<option>
|
||||||
|
_{MsgExamPassed}
|
||||||
|
<option>
|
||||||
|
_{MsgExamNotPassed}
|
||||||
|
<option>
|
||||||
|
_{MsgExamResultVoided}
|
||||||
|
<option>
|
||||||
|
_{MsgExamResultNoShow}
|
||||||
|
<td .table__td #uw-exam-correct__result__grade>
|
||||||
|
<select>
|
||||||
|
$forall grade <- (toPathPiece <$> examGrades)
|
||||||
|
<option>
|
||||||
|
#{grade}
|
||||||
<td #exam-correct__status .table__td>
|
<td #exam-correct__status .table__td>
|
||||||
<button #exam-correct__send-btn .btn .btn-primary>
|
<button #exam-correct__send-btn .btn .btn-primary>
|
||||||
_{MsgExamCorrectButtonSend}
|
_{MsgExamCorrectButtonSend}
|
||||||
|
|||||||
Reference in New Issue
Block a user