SilverNETGroupSGGW / Straciatella

Flutter app for viewing schedules from Bolero API
https://silvernetgroupsggw.github.io/Straciatella/
3 stars 1 forks source link

Filtry grup #113

Closed matyjb closed 6 days ago

matyjb commented 3 months ago

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