Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Finished Firestore uploading scripts #131

Merged
merged 17 commits into from
Oct 25, 2023
Merged

Conversation

BraydenKO
Copy link
Collaborator

The uploading scripts are capable of handling weird cases properly.
The uploading scripts now have bin/editDatabase.py which can easily edit a section (or a student's schedule) without having to do things manually nor re-upload things.

BraydenKO and others added 4 commits March 19, 2022 19:17
* Added schedule_search.dart

* Added schedule search model

* Update lib/src/models/view/schedule_search.dart

Co-authored-by: Levi Lesches <[email protected]>

* Update lib/src/models/view/schedule_search.dart

Co-authored-by: Levi Lesches <[email protected]>

* Fixes some formatting

* Added docs and exported schedule_search.dart in lib/models.dart

* Cleaned up schedule_search.dart

* Cleaned up models.dart

* Added Subject.id, PeriodData.name, PerioData.dayName

* Update lib/src/data/schedule/subject.dart

Co-authored-by: Levi Lesches <[email protected]>

* Add Period.dayName, and Period.name (Student-Lyf#81)

* Converted firestore/lib/src/helpers to firestore-py/lib/utils

* Ported firestore/lib/src/services to firestore-py/lib/services

* Removed (and revoked) Firebase credentials

* Cleanup

* Cleaned up logging/Firebase issues

* Added some __init__.py

* Ported firebase/firestore/node/calendar.dart to firebase/firestore-py/bin/calendar.py

* Ported firebase/firestore/node/admins.dart to firebase/firestore-py/bin/admins.py

* Ported firebase/firestore/node/feedback.dart to firebase/firestore-py/bin/feedback.py

* Added some data python files and sections python files

* Continued translating more files (Note: some are incomplete!)
lib/data/schedule
lib/sections/reader
edited lib/utils/dir to use constants from constants.yaml

* Added bin/faculty, bin/secions, facultylogic and facultyreader python files
Also added constants.py to get data from constants.yaml

* Ported firebase/firestore/node/students.dart --> firebase/firestore-py/bin/students.py

* Cleanup

* Delete student.py

* Fix students.py and uploading

* Added some more python files. many variable should be converted to
snake_case

* Changed camel case variables to snake_case

* small edits, opted for a different constants.py file too

* Fixed some typos

* Fixed bug where testers had no schedule (instead of a blank one)

* ---

* Finished scripts to upload data

* Changed dayNames to a list rather than set

* Make Fridays a Friday schedule by default

* Modified feedback.py to actually output feedback

* Added students reader

* Cleanup

* Fixed a bug in faculty/logic.py where a
teacher's periods weren't being added to there schedule instead the
teacher's schedule was being set to contain only one period.

* Fixed a bug in faculty/logic.py where a (Student-Lyf#101)

teacher's periods weren't being added to theit schedule, instead the
teacher's schedule was being set to contain only one period.

* Edited zoom_links reader to either
connect a zoom_link to a teacher email (if
a teacher uses 1 link) or connect a link to
a section id (if a teacher uses multiple links)

* -

* Making things up-to-date

* Merge tools to master (Student-Lyf#117)

* Added schedule_search.dart

* Added schedule search model

* Update lib/src/models/view/schedule_search.dart

Co-authored-by: Levi Lesches <[email protected]>

* Update lib/src/models/view/schedule_search.dart

Co-authored-by: Levi Lesches <[email protected]>

* Fixes some formatting

* Added docs and exported schedule_search.dart in lib/models.dart

* Cleaned up schedule_search.dart

* Cleaned up models.dart

* Added Subject.id, PeriodData.name, PerioData.dayName

* Update lib/src/data/schedule/subject.dart

Co-authored-by: Levi Lesches <[email protected]>

* Add Period.dayName, and Period.name (Student-Lyf#81)

* Converted firestore/lib/src/helpers to firestore-py/lib/utils

* Ported firestore/lib/src/services to firestore-py/lib/services

* Removed (and revoked) Firebase credentials

* Cleanup

* Cleaned up logging/Firebase issues

* Added some __init__.py

* Ported firebase/firestore/node/calendar.dart to firebase/firestore-py/bin/calendar.py

* Ported firebase/firestore/node/admins.dart to firebase/firestore-py/bin/admins.py

* Ported firebase/firestore/node/feedback.dart to firebase/firestore-py/bin/feedback.py

* Added some data python files and sections python files

* Continued translating more files (Note: some are incomplete!)
lib/data/schedule
lib/sections/reader
edited lib/utils/dir to use constants from constants.yaml

* Added bin/faculty, bin/secions, facultylogic and facultyreader python files
Also added constants.py to get data from constants.yaml

* Ported firebase/firestore/node/students.dart --> firebase/firestore-py/bin/students.py

* Cleanup

* Delete student.py

* Fix students.py and uploading

* Added some more python files. many variable should be converted to
snake_case

* Changed camel case variables to snake_case

* small edits, opted for a different constants.py file too

* Fixed some typos

* Fixed bug where testers had no schedule (instead of a blank one)

* ---

* Finished scripts to upload data

* Changed dayNames to a list rather than set

* Make Fridays a Friday schedule by default

* Modified feedback.py to actually output feedback

* Added students reader

* Cleanup

* Fixed a bug in faculty/logic.py where a (Student-Lyf#101)

teacher's periods weren't being added to theit schedule, instead the
teacher's schedule was being set to contain only one period.

Co-authored-by: todesj <[email protected]>
Co-authored-by: todesj <[email protected]>
Co-authored-by: Brayden Kohler <[email protected]>
Co-authored-by: BraydenKO <[email protected]>

* Enabled support for Firbease Local Emulator Suite (Student-Lyf#116)

* Enabled Emulator use

* Fixed emulator error

* Update lib/src/services/firebase_core.dart

Added doc comment for `FirebaseCore.shouldUseEmulator`

Co-authored-by: Levi Lesches <[email protected]>

* Subject refresh (Student-Lyf#118)

* Dashboard fix (Student-Lyf#119)

Makes the schedule icon appear in the dashboard when the side sheet is not persistently open

* Ios folder xcode changes (Student-Lyf#120)

Adds Podfile.lock to the repo and updates XCode.

* Fixes Firebase initialization on Web when using the emulator (Student-Lyf#123)

* Moved Firebase initialization logic to main using flutterfire_cli

* Removed manual Firebase initialization for Web

* Moved Dart-only Firebase initialization to FirebaseCore.initializeFirebase

* Updated Firebase dependencies to support flutterfire_cli

* Removed old (manual) calls to FirebaseCore.init(), replaced with new flutterfire_cli initialization

* Added try/catch for Firestore emulator
  Workaround for firebase/flutterfire#6216

* Cleanup

* Make the Sports page public (Student-Lyf#122)

Co-authored-by: Levi Lesches <[email protected]>

* Corrected iOS Signing (Student-Lyf#125)

* Stopped throwing an error when a faculty doesn't have an id.
Too many faculty don't have an id and it shouldn't matter to skip it in most cases.

* Made scripts be able to handle weird formats of ids such as "90070.0"

* You can only upload up to 500 things at a time with firestore and we had more than 500 sections
in our data. Now it'll split the data into chunks if its length surpasses 500

Co-authored-by: todesj <[email protected]>
Co-authored-by: todesj <[email protected]>
Co-authored-by: Levi Lesches <[email protected]>
There were many changes mentioned below, this is the main one:

Uploading scripts can handle weird cases that shouldn't crash everything (ex: a class that has no teacher) and just alert the user of the peculiarity.
Also added a way to update individual sections to easily change a student's schedule in the middle of the year without having to reupload everything.


* Added schedule_search.dart

* Added schedule search model

* Update lib/src/models/view/schedule_search.dart

Co-authored-by: Levi Lesches <[email protected]>

* Update lib/src/models/view/schedule_search.dart

Co-authored-by: Levi Lesches <[email protected]>

* Fixes some formatting

* Added docs and exported schedule_search.dart in lib/models.dart

* Cleaned up schedule_search.dart

* Cleaned up models.dart

* Added Subject.id, PeriodData.name, PerioData.dayName

* Update lib/src/data/schedule/subject.dart

Co-authored-by: Levi Lesches <[email protected]>

* Add Period.dayName, and Period.name (Student-Lyf#81)

* Converted firestore/lib/src/helpers to firestore-py/lib/utils

* Ported firestore/lib/src/services to firestore-py/lib/services

* Removed (and revoked) Firebase credentials

* Cleanup

* Cleaned up logging/Firebase issues

* Added some __init__.py

* Ported firebase/firestore/node/calendar.dart to firebase/firestore-py/bin/calendar.py

* Ported firebase/firestore/node/admins.dart to firebase/firestore-py/bin/admins.py

* Ported firebase/firestore/node/feedback.dart to firebase/firestore-py/bin/feedback.py

* Added some data python files and sections python files

* Continued translating more files (Note: some are incomplete!)
lib/data/schedule
lib/sections/reader
edited lib/utils/dir to use constants from constants.yaml

* Added bin/faculty, bin/secions, facultylogic and facultyreader python files
Also added constants.py to get data from constants.yaml

* Ported firebase/firestore/node/students.dart --> firebase/firestore-py/bin/students.py

* Cleanup

* Delete student.py

* Fix students.py and uploading

* Added some more python files. many variable should be converted to
snake_case

* Changed camel case variables to snake_case

* small edits, opted for a different constants.py file too

* Fixed some typos

* Fixed bug where testers had no schedule (instead of a blank one)

* ---

* Finished scripts to upload data

* Changed dayNames to a list rather than set

* Make Fridays a Friday schedule by default

* Modified feedback.py to actually output feedback

* Added students reader

* Cleanup

* Fixed a bug in faculty/logic.py where a
teacher's periods weren't being added to there schedule instead the
teacher's schedule was being set to contain only one period.

* Fixed a bug in faculty/logic.py where a (Student-Lyf#101)

teacher's periods weren't being added to theit schedule, instead the
teacher's schedule was being set to contain only one period.

* Edited zoom_links reader to either
connect a zoom_link to a teacher email (if
a teacher uses 1 link) or connect a link to
a section id (if a teacher uses multiple links)

* -

* Making things up-to-date

* Stopped throwing an error when a faculty doesn't have an id.
Too many faculty don't have an id and it shouldn't matter to skip it in most cases.

* Made scripts be able to handle weird formats of ids such as "90070.0"

* You can only upload up to 500 things at a time with firestore and we had more than 500 sections
in our data. Now it'll split the data into chunks if its length surpasses 500

* Bump ini from 1.3.5 to 1.3.8 in /firebase/rules_test (Student-Lyf#128)

Bumps [ini](https://github.com/npm/ini) from 1.3.5 to 1.3.8.
- [Release notes](https://github.com/npm/ini/releases)
- [Changelog](https://github.com/npm/ini/blob/main/CHANGELOG.md)
- [Commits](npm/ini@v1.3.5...v1.3.8)

---
updated-dependencies:
- dependency-name: ini
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump node-fetch in /firebase/cloud_functions/functions (Student-Lyf#129)

Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.6.1 to 2.6.7.
- [Release notes](https://github.com/node-fetch/node-fetch/releases)
- [Commits](node-fetch/node-fetch@v2.6.1...v2.6.7)

---
updated-dependencies:
- dependency-name: node-fetch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Levi Lesches <[email protected]>

* Bump minimist from 1.2.5 to 1.2.6 in /firebase/cloud_functions/functions (Student-Lyf#127)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump ajv from 6.12.0 to 6.12.6 in /firebase/rules_test (Student-Lyf#124)

Bumps [ajv](https://github.com/ajv-validator/ajv) from 6.12.0 to 6.12.6.
- [Release notes](https://github.com/ajv-validator/ajv/releases)
- [Commits](ajv-validator/ajv@v6.12.0...v6.12.6)

---
updated-dependencies:
- dependency-name: ajv
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump protobufjs in /firebase/cloud_functions/functions (Student-Lyf#130)

Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 6.8.9 to 6.11.3.
- [Release notes](https://github.com/protobufjs/protobuf.js/releases)
- [Changelog](https://github.com/protobufjs/protobuf.js/blob/v6.11.3/CHANGELOG.md)
- [Commits](https://github.com/protobufjs/protobuf.js/commits/v6.11.3)

---
updated-dependencies:
- dependency-name: protobufjs
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* handles classes with a teacher that is no longer employed

* Created a script to add a section or edit one without having to reupload all of the data

* finished quick editor

Co-authored-by: todesj <[email protected]>
Co-authored-by: todesj <[email protected]>
Co-authored-by: Levi Lesches <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
BraydenKO and others added 2 commits November 12, 2022 19:56
* Added schedule_search.dart

* Added schedule search model

* Update lib/src/models/view/schedule_search.dart

Co-authored-by: Levi Lesches <[email protected]>

* Update lib/src/models/view/schedule_search.dart

Co-authored-by: Levi Lesches <[email protected]>

* Fixes some formatting

* Added docs and exported schedule_search.dart in lib/models.dart

* Cleaned up schedule_search.dart

* Cleaned up models.dart

* Added Subject.id, PeriodData.name, PerioData.dayName

* Update lib/src/data/schedule/subject.dart

Co-authored-by: Levi Lesches <[email protected]>

* Add Period.dayName, and Period.name (Student-Lyf#81)

* Converted firestore/lib/src/helpers to firestore-py/lib/utils

* Ported firestore/lib/src/services to firestore-py/lib/services

* Removed (and revoked) Firebase credentials

* Cleanup

* Cleaned up logging/Firebase issues

* Added some __init__.py

* Ported firebase/firestore/node/calendar.dart to firebase/firestore-py/bin/calendar.py

* Ported firebase/firestore/node/admins.dart to firebase/firestore-py/bin/admins.py

* Ported firebase/firestore/node/feedback.dart to firebase/firestore-py/bin/feedback.py

* Added some data python files and sections python files

* Continued translating more files (Note: some are incomplete!)
lib/data/schedule
lib/sections/reader
edited lib/utils/dir to use constants from constants.yaml

* Added bin/faculty, bin/secions, facultylogic and facultyreader python files
Also added constants.py to get data from constants.yaml

* Ported firebase/firestore/node/students.dart --> firebase/firestore-py/bin/students.py

* Cleanup

* Delete student.py

* Fix students.py and uploading

* Added some more python files. many variable should be converted to
snake_case

* Changed camel case variables to snake_case

* small edits, opted for a different constants.py file too

* Fixed some typos

* Fixed bug where testers had no schedule (instead of a blank one)

* ---

* Finished scripts to upload data

* Changed dayNames to a list rather than set

* Make Fridays a Friday schedule by default

* Modified feedback.py to actually output feedback

* Added students reader

* Cleanup

* Fixed a bug in faculty/logic.py where a
teacher's periods weren't being added to there schedule instead the
teacher's schedule was being set to contain only one period.

* Fixed a bug in faculty/logic.py where a (Student-Lyf#101)

teacher's periods weren't being added to theit schedule, instead the
teacher's schedule was being set to contain only one period.

* Edited zoom_links reader to either
connect a zoom_link to a teacher email (if
a teacher uses 1 link) or connect a link to
a section id (if a teacher uses multiple links)

* -

* cleaned up imports

* Logic looks at if the class is special before
checking if the teacher has a set link for all
classes

* Making things up-to-date

* Stopped throwing an error when a faculty doesn't have an id.
Too many faculty don't have an id and it shouldn't matter to skip it in most cases.

* Made scripts be able to handle weird formats of ids such as "90070.0"

* You can only upload up to 500 things at a time with firestore and we had more than 500 sections
in our data. Now it'll split the data into chunks if its length surpasses 500

* handles classes with a teacher that is no longer employed

* Created a script to add a section or edit one without having to reupload all of the data

* finished quick editor

* --

* Sometimes the students' file has many rows of empty data
this implementation skips those lines.

Note that we use "continue" and not "break" just in case for some reason
if a student is missing an ID in the spreadsheet

* Added a script to be able to upload sports data

Note: The data lacks previous games' scores which as of now would need to be
added manually by an admin

* Finishing fixes regarding setting scores to None and fixing the keyword for Girls JV Volleyball

* Deleted unused imports in firestore.py

* Upload sports based on academic year not "actual"
year (In the academic year 22' - 23', always use 22')
Added comments to reader.py

Co-authored-by: todesj <[email protected]>
Co-authored-by: todesj <[email protected]>
Co-authored-by: Levi Lesches <[email protected]>
* Added schedule_search.dart

* Added schedule search model

* Update lib/src/models/view/schedule_search.dart

Co-authored-by: Levi Lesches <[email protected]>

* Update lib/src/models/view/schedule_search.dart

Co-authored-by: Levi Lesches <[email protected]>

* Fixes some formatting

* Added docs and exported schedule_search.dart in lib/models.dart

* Cleaned up schedule_search.dart

* Cleaned up models.dart

* Added Subject.id, PeriodData.name, PerioData.dayName

* Update lib/src/data/schedule/subject.dart

Co-authored-by: Levi Lesches <[email protected]>

* Add Period.dayName, and Period.name (Student-Lyf#81)

* Converted firestore/lib/src/helpers to firestore-py/lib/utils

* Ported firestore/lib/src/services to firestore-py/lib/services

* Removed (and revoked) Firebase credentials

* Cleanup

* Cleaned up logging/Firebase issues

* Added some __init__.py

* Ported firebase/firestore/node/calendar.dart to firebase/firestore-py/bin/calendar.py

* Ported firebase/firestore/node/admins.dart to firebase/firestore-py/bin/admins.py

* Ported firebase/firestore/node/feedback.dart to firebase/firestore-py/bin/feedback.py

* Added some data python files and sections python files

* Continued translating more files (Note: some are incomplete!)
lib/data/schedule
lib/sections/reader
edited lib/utils/dir to use constants from constants.yaml

* Added bin/faculty, bin/secions, facultylogic and facultyreader python files
Also added constants.py to get data from constants.yaml

* Ported firebase/firestore/node/students.dart --> firebase/firestore-py/bin/students.py

* Cleanup

* Delete student.py

* Fix students.py and uploading

* Added some more python files. many variable should be converted to
snake_case

* Changed camel case variables to snake_case

* small edits, opted for a different constants.py file too

* Fixed some typos

* Fixed bug where testers had no schedule (instead of a blank one)

* ---

* Finished scripts to upload data

* Changed dayNames to a list rather than set

* Make Fridays a Friday schedule by default

* Modified feedback.py to actually output feedback

* Added students reader

* Cleanup

* Fixed a bug in faculty/logic.py where a
teacher's periods weren't being added to there schedule instead the
teacher's schedule was being set to contain only one period.

* Fixed a bug in faculty/logic.py where a (Student-Lyf#101)

teacher's periods weren't being added to theit schedule, instead the
teacher's schedule was being set to contain only one period.

* Edited zoom_links reader to either
connect a zoom_link to a teacher email (if
a teacher uses 1 link) or connect a link to
a section id (if a teacher uses multiple links)

* -

* cleaned up imports

* Logic looks at if the class is special before
checking if the teacher has a set link for all
classes

* Making things up-to-date

* Stopped throwing an error when a faculty doesn't have an id.
Too many faculty don't have an id and it shouldn't matter to skip it in most cases.

* Made scripts be able to handle weird formats of ids such as "90070.0"

* You can only upload up to 500 things at a time with firestore and we had more than 500 sections
in our data. Now it'll split the data into chunks if its length surpasses 500

* handles classes with a teacher that is no longer employed

* Created a script to add a section or edit one without having to reupload all of the data

* finished quick editor

* --

* Sometimes the students' file has many rows of empty data
this implementation skips those lines.

Note that we use "continue" and not "break" just in case for some reason
if a student is missing an ID in the spreadsheet

* Added a script to be able to upload sports data

Note: The data lacks previous games' scores which as of now would need to be
added manually by an admin

* Finishing fixes regarding setting scores to None and fixing the keyword for Girls JV Volleyball

* Deleted unused imports in firestore.py

* Upload sports based on academic year not "actual"
year (In the academic year 22' - 23', always use 22')
Added comments to reader.py

* Added list_users() and revoke_token(user) that
were mysteriously deleted.

Co-authored-by: todesj <[email protected]>
Co-authored-by: todesj <[email protected]>
Co-authored-by: Levi Lesches <[email protected]>
@BraydenKO
Copy link
Collaborator Author

Fixed the issue mentioned above but also added the ability to set the sports folder in firebase to include all the future and past sports games of that semester (without their scores).

One slight issue with this is that the sports folder is overwritten which normally is good so as to prevent duplicate games. However, this also means that when we upload new games (2nd semester) all the games of the 1st semester and their scores will be gone.

One way to fix this would be to have some way to mark whether you want to overwrite everything or append new games every time you upload, but it just feels a bit messy for something that isn't really a big deal.

Copy link
Member

@Levi-Lesches Levi-Lesches left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gotta admit I'm getting a little rusty in this department but it looks about right, just a few comments. I'm also not sold on that recursion in update_user.

firebase/firestore-py/bin/faculty.py Outdated Show resolved Hide resolved
firebase/firestore-py/constants.yaml Outdated Show resolved Hide resolved
firebase/firestore-py/lib/sports/reader.py Outdated Show resolved Hide resolved
Levi-Lesches and others added 2 commits March 22, 2023 06:35
* Added schedule_search.dart

* Added schedule search model

* Update lib/src/models/view/schedule_search.dart

Co-authored-by: Levi Lesches <[email protected]>

* Update lib/src/models/view/schedule_search.dart

Co-authored-by: Levi Lesches <[email protected]>

* Fixes some formatting

* Added docs and exported schedule_search.dart in lib/models.dart

* Cleaned up schedule_search.dart

* Cleaned up models.dart

* Added Subject.id, PeriodData.name, PerioData.dayName

* Update lib/src/data/schedule/subject.dart

Co-authored-by: Levi Lesches <[email protected]>

* Add Period.dayName, and Period.name (Student-Lyf#81)

* Converted firestore/lib/src/helpers to firestore-py/lib/utils

* Ported firestore/lib/src/services to firestore-py/lib/services

* Removed (and revoked) Firebase credentials

* Cleanup

* Cleaned up logging/Firebase issues

* Added some __init__.py

* Ported firebase/firestore/node/calendar.dart to firebase/firestore-py/bin/calendar.py

* Ported firebase/firestore/node/admins.dart to firebase/firestore-py/bin/admins.py

* Ported firebase/firestore/node/feedback.dart to firebase/firestore-py/bin/feedback.py

* Added some data python files and sections python files

* Continued translating more files (Note: some are incomplete!)
lib/data/schedule
lib/sections/reader
edited lib/utils/dir to use constants from constants.yaml

* Added bin/faculty, bin/secions, facultylogic and facultyreader python files
Also added constants.py to get data from constants.yaml

* Ported firebase/firestore/node/students.dart --> firebase/firestore-py/bin/students.py

* Cleanup

* Delete student.py

* Fix students.py and uploading

* Added some more python files. many variable should be converted to
snake_case

* Changed camel case variables to snake_case

* small edits, opted for a different constants.py file too

* Fixed some typos

* Fixed bug where testers had no schedule (instead of a blank one)

* ---

* Finished scripts to upload data

* Changed dayNames to a list rather than set

* Make Fridays a Friday schedule by default

* Modified feedback.py to actually output feedback

* Added students reader

* Cleanup

* Fixed a bug in faculty/logic.py where a
teacher's periods weren't being added to there schedule instead the
teacher's schedule was being set to contain only one period.

* Fixed a bug in faculty/logic.py where a (Student-Lyf#101)

teacher's periods weren't being added to theit schedule, instead the
teacher's schedule was being set to contain only one period.

* Edited zoom_links reader to either
connect a zoom_link to a teacher email (if
a teacher uses 1 link) or connect a link to
a section id (if a teacher uses multiple links)

* -

* cleaned up imports

* Logic looks at if the class is special before
checking if the teacher has a set link for all
classes

* Making things up-to-date

* Stopped throwing an error when a faculty doesn't have an id.
Too many faculty don't have an id and it shouldn't matter to skip it in most cases.

* Made scripts be able to handle weird formats of ids such as "90070.0"

* You can only upload up to 500 things at a time with firestore and we had more than 500 sections
in our data. Now it'll split the data into chunks if its length surpasses 500

* handles classes with a teacher that is no longer employed

* Created a script to add a section or edit one without having to reupload all of the data

* finished quick editor

* --

* Sometimes the students' file has many rows of empty data
this implementation skips those lines.

Note that we use "continue" and not "break" just in case for some reason
if a student is missing an ID in the spreadsheet

* Added a script to be able to upload sports data

Note: The data lacks previous games' scores which as of now would need to be
added manually by an admin

* Finishing fixes regarding setting scores to None and fixing the keyword for Girls JV Volleyball

* took into account having 2023 data

* fixed the issue of adding int 1 to str "2022"

* Deleted unused imports in firestore.py

* Upload sports based on academic year not "actual"
year (In the academic year 22' - 23', always use 22')
Added comments to reader.py

* Added list_users() and revoke_token(user) that
were mysteriously deleted.

* Fixed the end_time not fixing times like 6:60

* Added the ability to put a pdf of a student's
schedule into "data\new student schedules".

txtschedule_reader.py will read the pdfs and pull
schedules from them (minus the email and homeroom data- which tbh
I dont even know what it's for).

editDatabase.py now has an option to select this method, however,
the user must manually enter the email for each pdf since it's
not stored on the pdf.

* This script had countless errors that didn't take into certain combinations of frees. It should be fixed now.

* made some finishing fixes that account for monday frees that weren't accounted for

* Finished txtschedule_reader

* edits to make uploading the csv of schedules work
better

* If student id looks like "11001.0", change it to look like "11001"

* Flutter upgrade (Student-Lyf#140)

* Renamed `NavigationDrawer` => `RamlifeDrawer` to avoid Flutter's new widget

* Migrate deprecated elements

* Revamp `ResponsiveScaffold` (Student-Lyf#141)

* Upgraded packages and lints

* Revamped `ResponsiveScaffold`

Before, it was one page that would swap out its internal properties. Now, it's a regular widget and can be used as such. That means no more `HomePage`.

* Documented and and replaced `LayoutInfo.isX` => `LayoutInfo.deviceType`

* Update documentation.yml

* Update documentation.yml

* Clarified `ResponsiveScaffold` docs

* Fixed cases where get_admins() reads an empty string as a scope and caused issues with no scope called "".

---------

Co-authored-by: todesj <[email protected]>
Co-authored-by: todesj <[email protected]>
Co-authored-by: Levi Lesches <[email protected]>
@CLAassistant
Copy link

CLAassistant commented Oct 25, 2023

CLA assistant check
All committers have signed the CLA.

@Levi-Lesches Levi-Lesches merged commit 26d7e8a into Student-Lyf:master Oct 25, 2023
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants