PuzzleServer / mainpuzzleserver

The main repo for the Puzzle Hunt and Puzzleday servers.
MIT License
9 stars 32 forks source link

Add team-defined puzzle states #505

Open jenetlan opened 5 years ago

jenetlan commented 5 years ago

We should add a way to let teams add notes / states to a puzzle (printed, who is working on it, etc.). I think we can do this with just one limited free-form text field instead of anything too fancy. That also gives each team the flexibility to use it however they'd like.

Original request:

After learning at last week's tech meeting that printing isn't implemented yet, I've come up with a design for it and I might have time to implement it before the next meeting.  However, before I go to this trouble, I'd like to know if you're even still taking new features at this late stage, for inclusion in PH20.  Note that this feature I want to build would require a database change:  I want to add two fields to PuzzleStatePerTeam:  a user ID (PersonResponsibleForPrinting) and a timestamp (PrintTime).   In case you care, this is why:   I have my own personal page for managing my team's puzzle printing, and it benefits from having more than just a single bit per puzzle indicating whether it was printed or not.  That's because there's an important intermediate state between "not printed" and "printed":  "a specific team member has taken on responsibility for printing the puzzle, but hasn't printed it yet".  So in the feature I plan to add, I want to let someone "take responsibility" for printing a puzzle, and then later "mark it printed" after they've actually printed it.   The reason for this is that typically printing isn't an atomic action.  First, you decide on a set of puzzles you want to send to the printer.  Then, you send them to the printer and make sure they got printed.  In the meantime, you don't want to mark them as printed because something might go wrong with your connection to the printer, or you might get distracted, and then the puzzle never gets printed by anyone, ever.  But you also don't want to leave them marked as unprinted, because then someone else might also print them and not only waste time but, worse, make it so there are two copies floating around whose solvers might not be aware of each other.   The timestamp is just a convenience feature.  When you're looking at the list of "puzzles someone else has taken responsibility for", it would be nice to see if there's an entry that's been sitting there for a long time.  In that case, it's an indication that maybe that person needs to be prodded into actually doing the printing.

jenetlan commented 5 years ago

Another user note:

Just a freeform text box for puzzle state would have been super helpful - we don't have to do a fancy state chart, but just that would have let us set up our own codes / statuses to say which things were printing (the every other hour printing check was not fun)