Skip to content

Commit d5f3111

Browse files
committed
Homework: улучшение валидации группировки
1 parent 040dcbc commit d5f3111

File tree

1 file changed

+24
-5
lines changed

1 file changed

+24
-5
lines changed

hwproj.front/src/components/Courses/CourseExperimental.tsx

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ interface ICourseExperimentalState {
6868
export const CourseExperimental: FC<ICourseExperimentalProps> = (props) => {
6969
const [hideDeferred, setHideDeferred] = useState<boolean>(false)
7070
const [showOnlyGroupedTest, setShowOnlyGroupedTest] = useState<string | undefined>(undefined)
71+
const filterAdded = hideDeferred || showOnlyGroupedTest !== undefined
7172

7273
// Определяем разрешение экрана пользователя
7374
const theme = useTheme();
@@ -281,9 +282,21 @@ export const CourseExperimental: FC<ICourseExperimentalProps> = (props) => {
281282
if (groupingTag === undefined) return null
282283

283284
const groupedHomeworks = homeworks.filter(x => x.tags!.includes(TestTag) && x.tags!.includes(groupingTag))
285+
if (groupedHomeworks.length === 1) return null
284286

285287
const keys = new Set(groupedHomeworks.map(h => h.tasks!.map(t => t.maxRating).join(";")))
286-
if (keys.size === 1) return null
288+
if (keys.size === 1) return <Alert severity="success"
289+
action={
290+
<Button
291+
fullWidth
292+
color="inherit"
293+
size="small"
294+
onClick={() => setShowOnlyGroupedTest(groupingTag)}
295+
>
296+
Задания
297+
</Button>}>
298+
Работа сгруппирована по ключу '<b>{groupingTag}</b>'.
299+
</Alert>
287300

288301
return <Alert severity="warning"
289302
action={
@@ -293,7 +306,7 @@ export const CourseExperimental: FC<ICourseExperimentalProps> = (props) => {
293306
size="small"
294307
onClick={() => setShowOnlyGroupedTest(groupingTag)}
295308
>
296-
Задания с '{groupingTag}'
309+
Задания
297310
</Button>}>
298311
<AlertTitle>Группировка контрольных работ</AlertTitle>
299312
Создано несколько контрольных работ, сгруппированных по ключу '<b>{groupingTag}</b>',
@@ -333,8 +346,6 @@ export const CourseExperimental: FC<ICourseExperimentalProps> = (props) => {
333346
},
334347
fileInfos: []
335348
})
336-
setHideDeferred(false)
337-
setShowOnlyGroupedTest(undefined)
338349
setState((prevState) => ({
339350
...prevState,
340351
selectedItem: {
@@ -492,7 +503,15 @@ export const CourseExperimental: FC<ICourseExperimentalProps> = (props) => {
492503
borderRadius: 10
493504
}
494505
}}>
495-
{props.isMentor && (homeworks[0]?.id || 1) > 0 && <Button
506+
{props.isMentor && filterAdded && <Button
507+
onClick={() => {
508+
setHideDeferred(false)
509+
setShowOnlyGroupedTest(undefined)
510+
}}
511+
style={{borderRadius: 8, marginBottom: 10}} variant={"contained"} size={"medium"}>
512+
Показать все задания
513+
</Button>}
514+
{props.isMentor && !filterAdded && (homeworks[0]?.id || 1) > 0 && <Button
496515
onClick={addNewHomework}
497516
style={{borderRadius: 8, marginBottom: 10}} variant={"text"} size={"small"}>
498517
+ Добавить задание

0 commit comments

Comments
 (0)