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

Task Management Expansion #65

Open
IsoPhoenix opened this issue Apr 8, 2023 · 4 comments
Open

Task Management Expansion #65

IsoPhoenix opened this issue Apr 8, 2023 · 4 comments
Assignees
Labels
enhancement New feature or request

Comments

@IsoPhoenix
Copy link
Collaborator

Overview

Expanding task management functionality based on feedback from midpoint. Details/suggestions organized per feature below.

Task searching by title

Self explanatory

Task mass confirmation

Add a button in teacher requests page to mass confirm all requests

  • Doing a confirmTask and/or confirmRepeatable mutation call in a promise array is a possible solution, but maybe a Firestore batched write is an easier + less costly solution?

Student can unsend requests

For tasks in a student's "Requested" table, add an option (button) to "unsend" the request for completion.

  • For tasks, this can just be removing the player id from the completed array and adding it back to the assigned array. You should first check to make sure the player ID is in the completed array, and throw an error if not.
  • I would just add this functionality for tasks right now. Repeatables are more complicated because they refresh periodically, and there are a lot of moving parts and database fields that are required for this refreshing functionality

Ability to change the refresh period for repeatables

I don't think this functionality is transformative but it will be quite difficult to implement. If you want to give it a go still, we can have a conversation about it but I'd prioritize other things over this

Multiline task descriptions

Preserve line breaks/enters in original task content. Alternatively, you could look around and see if there are any packages that will integrate rich text editors into a React webapp, which would give us multiline support, bold/italicize, maybe even code blocks/markdown/LaTEX (although a bit of a stretch)...

@IsoPhoenix IsoPhoenix added the enhancement New feature or request label Apr 8, 2023
@jaydenpersonnat
Copy link
Collaborator

Some initial thoughts:

  1. Similar question to the one I asked for searching on the Forum on how search should look like from a UI perspective.
  2. I completely agree and a batched write should be preferable over making multiple calls to ConfirmTask.
  3. For the refresh period for repeatable, I will take your suggestion and prioritize the other tasks. I did have a question regarding this, as I was a bit confused about how the refresh period is determined? Or, generally, could I get a more in-depth explanation of the purpose of refreshing for repeatables?

@IsoPhoenix
Copy link
Collaborator Author

  1. You can search in place! no modal for results needed.
  2. Sounds good!
  3. The refresh period is set to every sunday midnight at the moment. refreshRepeatable from mutations.tsx is called every time the student visits the classroom page, essentially. This resets the number of queued and confirmed repeatables to zero, so that the teacher doesn't have to make an entirely new task every week (the student can just submit new completions for the same repeatable). Because there is no centralized server handling repeatable refreshes, we just have to be very careful to not let the repeatable completion/confirmiation counts fall out of sync. Happy to chat more about this if you need!

@jaydenpersonnat
Copy link
Collaborator

jaydenpersonnat commented Apr 11, 2023

Update: Implemented all the functionality above (with the exception of some of the repeatable logic), and like I said for the Forum posts I will be working on style.

I can take a look at implementing the logic to unsend repeatables and changing the refresh period later in the week, but I'll focus on finishing the styling first.

For the text editor, I used CKEditor for now, though may consider changing it to TipTap.

@IsoPhoenix
Copy link
Collaborator Author

As of 05/17/2023, all functionality has been completed aside from changing refresh period for repeatables.

@IsoPhoenix IsoPhoenix reopened this May 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants