Każdy plan zajęć można filtrować po grupach, ale musimy wiedzieć jakie są możliwe grupy w planie zajęć. Dodatkowo ponieważ, że planem zajęć może być Lecturer albo StudyProgram to musimy też brać pod uwagę, że każda z grup odnosi się tylko do danego semestru i danego studyProgramu.
W mixinie CollectLessonData w pliku mixins.dart jest algorytm, który zbiera wszystkie LessonData ze wszystkich StudyProgram w planie zajęć i dodaje do kalendarza, który się wyświetla na głównym ekranie. W tym mixinie dodaj kolejną właściwość, która będzie nam reprezentowała opcje wyboru filtrowania zajęć po grupach i będzie trzymała "takie drzewko" wyboru grup, które user będzie widział.
Ja proponuje stworzyć oddzielną klasę na te filtry:
typedef FilterOptionsGroup<Key, Value> = Map<Key, Set<Value>>;
class ScheduleFiltersInfo {
final FilterOptionsGroup<StudyProgram,
FilterOptionsGroup<StudySemester, StudentGroup>> byStudentGroups = {};
}
W tej klasie w przyszłości będzie można zaimplementować inne filtry jak np byLecturer, bySubject etc.
PS: po więcej info czym jest CollectLessonData patrz #111
Każdy plan zajęć można filtrować po grupach, ale musimy wiedzieć jakie są możliwe grupy w planie zajęć. Dodatkowo ponieważ, że planem zajęć może być Lecturer albo StudyProgram to musimy też brać pod uwagę, że każda z grup odnosi się tylko do danego semestru i danego studyProgramu.
W mixinie CollectLessonData w pliku
mixins.dart
jest algorytm, który zbiera wszystkie LessonData ze wszystkich StudyProgram w planie zajęć i dodaje do kalendarza, który się wyświetla na głównym ekranie. W tym mixinie dodaj kolejną właściwość, która będzie nam reprezentowała opcje wyboru filtrowania zajęć po grupach i będzie trzymała "takie drzewko" wyboru grup, które user będzie widział.Ja proponuje stworzyć oddzielną klasę na te filtry:
W tej klasie w przyszłości będzie można zaimplementować inne filtry jak np byLecturer, bySubject etc.
PS: po więcej info czym jest CollectLessonData patrz #111