I can be clear about the pick up and dropoff locations
So that there is no confusion when picking up and dropping off riders
Discussion
Currently, this is what the table of ride requests looks like:
The original spreadsheet looked like this:
What we want to do is clarify things by having four fields:
Pick up Building
Pick up Room
Drop off Building
Drop off Room
The room should be an optional field, since sometimes it is not applicable. But the building should be required.
We should also add a "notes" field that is free form text and optional but a place where any extra information can be noted.
This will require involve multiple frontend and backend stories, and should be broken up into multiple issues/PRs.
Acceptance Criteria
[ ] Where there were three fields (Pick Up, Drop Off, Room #), there are now five fields: (Pick Up Building, Pick Up Room #Drop Off Building, Drop Off Room #, Notes) on the /ride page
[ ] Same set of changes on the ride/create page
[ ] Same set of changes on the /ride/edit/:rideId page
Implementation Todos
Suggest breaking up into multiple issues/PRs:
First issue: rename fields and add new fields
In the first issue/PR, we just make changes in the backend to prepare for the new fields.
[x] Rename room; in Ride entity to dropoffRoom
[x] Add pickupRoom and notes to Ride entity.
[x] Adjust controller endpoints for POST, PUT for renaming of room to dropoffRoom and to include code for the two new fields
[x] Make the smallest number of changes to possible to the frontend in the first PR so that everything still works; that is, in this first PR, the frontend will still look exactly the same. Ideally, the only change is to change the name of the room field to dropoffRoom inside the code the interfaces with the backend.
At this first stage, it is fine that there is no way yet to access pickupRoom and notes in the frontend. Since those fields are optional, it is not a problem that they are not being set (or they can be set to empty string for now. We'll add those in the next issue/PR.
Second issue: adjust frontend for new fields
In the next PR, we take the fields that are now present in the backend, and expose them in the frontend.
[x] Add the three new fields, and change name of the other two in frontend/src/main/components/Ride/RideForm.js and fix tests
[x] Add the three new fields, and change name of the other two in frontend/src/main/components/Ride/RideTable.js and fix tests
[x] AdjustRideRequestCreatePage.js, RideRequestEditPage.js, RideRequestIndexPage.js and associated tests for the new fields.
User Story
Discussion
Currently, this is what the table of ride requests looks like:
The original spreadsheet looked like this:
What we want to do is clarify things by having four fields:
The room should be an optional field, since sometimes it is not applicable. But the building should be required.
We should also add a "notes" field that is free form text and optional but a place where any extra information can be noted.
This will require involve multiple frontend and backend stories, and should be broken up into multiple issues/PRs.
Acceptance Criteria
Pick Up
,Drop Off
,Room #
), there are now five fields: (Pick Up Building
,Pick Up Room #
Drop Off Building
,Drop Off Room #
,Notes
) on the/ride
pageride/create
page/ride/edit/:rideId
pageImplementation Todos
Suggest breaking up into multiple issues/PRs:
First issue: rename fields and add new fields
In the first issue/PR, we just make changes in the backend to prepare for the new fields.
room;
inRide
entity todropoffRoom
pickupRoom
andnotes
toRide
entity.room
todropoffRoom
and to include code for the two new fieldsroom
field todropoffRoom
inside the code the interfaces with the backend.At this first stage, it is fine that there is no way yet to access
pickupRoom
andnotes
in the frontend. Since those fields are optional, it is not a problem that they are not being set (or they can be set to empty string for now. We'll add those in the next issue/PR.Second issue: adjust frontend for new fields
In the next PR, we take the fields that are now present in the backend, and expose them in the frontend.
frontend/src/main/components/Ride/RideForm.js
and fix testsfrontend/src/main/components/Ride/RideTable.js
and fix testsRideRequestCreatePage.js
,RideRequestEditPage.js
,RideRequestIndexPage.js
and associated tests for the new fields.