Open kitsuta opened 7 years ago
+1'ing this issue -- this is something TechOps discussed building internally, and would be very useful to have built into RAMS.
+1, and it would also be very useful to have a "Who's On Shift" dashboard, that shows:
@kitsuta In order to log shifts by check-ins, the Shifts model would need to be modified to store checked_in/out timestamps as well as the restricted functions necessary to update them before/afterhand. Weighted hours calculation would also have to be based on attendee's shifts rather than assigned jobs + weight. Does MagModel already have a historical log that lists who updated which fields at what time?
@dylwhich how do you determine someone is working but not assigned to a shift? I recall there were some standby volunteers but I'm not sure how they were allocated.
I can make a 4th view in the jobs section that displays an event calendar specific to a location/department. Each event will represent a registered shift or a job with open shifts.
Automated emails tend to get a little crazy in practice no matter how well they are designed in development but I'd go with the following guidelines
Apologies for the lack of updates. Basic functionality is progressing well. There is a concern we may need this to be logged a little more active so that people can see whose shifts are actually worked or not.
When this is in a testable state (or a state when you want feedback), I'll gladly run though it to offer feedback/comments.
Oh no @md1024, I'm so sorry I didn't respond earlier! The original notification must have gotten lost in my email. This issue is a huge undertaking, so I didn't expect anyone to tackle it right away (or solo!).
We do actually have robust tracking. Every action performed on any model, even actions performed by attendees or database manipulations done directly by a sysadmin, gets logged in our Tracking table. Nevertheless, the check-in/out system is gonna be a heck of a design project on the back-end because our shifts system is pretty complex. It will probably require at least one new DB table, if not more.
I would actually suggest that we split out dylwhich's suggestions into a new issue that's not dependent on this one. That's still a super useful report even without the check-in/out stuff being included, and we can always update the report as part of adding the check-in/out functionality later. Better to break work down into small chunks if possible.
I can also answer this question though: "how do you determine someone is working but not assigned to a shift? I recall there were some standby volunteers but I'm not sure how they were allocated."
We have a department called "Staff Support" that works like any normal department, except they send people out to help other departments as their 'staff support' shift. What dylwhich was likely referring to is the real-world phenomenon of a regular staffer coming in and saying "hey I'm available, where can I help?" There's currently no good way to just tell the system "hey, this person is currently working in my department but I don't want to assign them to a shift." We have 'non-shift' hours for tracking hours worked after the fact, but no real current-time stuff. So that would again need some changes on the backend, though I'd say that's a small enough chunk of work that it could be considered 'in-scope' for the report.
based on the feedback from @kitsuta I think the best way to go about this is to split the work across multiple issues. In this issue, I'll just be adding the ability to log check in/out volunteers per shift in this branch.
As a department head, I may have a lot of staffers to keep track of and/or a lot of other stuff to do. If I mark them as having worked their shift when they first come up to me, they may leave early without me knowing. If I mark them as having worked their shift when they're done, I may erroneously think they didn't work their shift if they don't check with me before they leave (e.g., if they ask one of my managers for permission to leave and that doesn't get back to me). I'd like: