Travel Desk forms should be created anytime a user is traveling by air.
Implementation
Injected working rental card request management in my-travel-requests -> Request tab.
Modularized rental car management UI and back-end services for rental car management, including database migrations for table standardization.
Switched to using standard Vuetify form validation instead of custom solution.
Reverted pg global type serialization in non-global api/src/routes/form-router.ts file.
Upgraded pg and Sequelize libraries.
Concerns
Note that all times pick for rental cars are treated as UTC times, rather than local times.
The end user should be made aware of this, or have the opportunity to enter times in location local time.
Screenshots
Showing Rental Car Request section now working
Rental Car creation modal
Rental Car edit modal
Bunch of fields with failed validation triggered by trying to add before filling in said fields.
Note that some of the field error info is covered; this is due to use of custom styling compressing component spacing.
I've avoided making any styling tweaks beyond what is required for this code to work.
Go to the "My Travel Requests" page via the top drop down nav.
Create a travel authorization.
In the details section, select at least one travel method with "aircraft" type.
Generate the travel estimate.
Submit the travel authorization to yourself as the supervisor.
Go to Manger View page accessible via the drop down nav.
Click on the new request from the "Pending Approvals" panel in the top left.
Scroll to the bottom and approve the request.
Go back to the "My Travel Requests" page, and find your new travel request in the table.
Click on the Submit Travel Desk Request button to go to the Request tab.
Add a single flight via the "Add flight" dialog.
Scroll down to the Rental Car Request and add a Rental Car.
Check that the Pick-up/Drop-off match flights is disabled (because you only have a single flight).
Check that the city selector works correctly.
Check that the Pick-up Location selector "other" option opens a new field for "other".
Check that changing the Vehicle Type from "compact" opens a "reason for change" field.
Check that picking "Same Drop-off location" -> "no" opens up some more selectors.
Check that "Drop-off Location" -> "other" opens a new selector.
Check that all input fields show up as required when expected to be required. (using standard Vuetify logic now).
Check that clicking the "Add" button triggers form validation.
Check that you can add the rental car request.
Go back to the "Flight Request" section and add a second flight.
Go back to the "Rental Car Request" section and add a second rental car.
Check that the Pick-up/Drop-off match flights is available (because you now have two flights), and that picking "Yes" pulls the dates from your flight dates.
Add the second rental car request.
Check that you can edit a rental car request.
Check that you can delete the rental car request.
Check that when creating a car rental toggling the "Same Drop-off location?" clears the various drop off location fields.
Check that when editing a car rental toggling the "Same Drop-off location?" clears the various drop off location fields.
Check that when editing/creating toggling "vehicle type" from "compact" clears the "reason for change" input.
Check that when editing/creating toggling "pick up location" from "other" clears the "pick up location other" input.
Check that when editing/creating toggling "drop off location" from "other" clears the "drop off location other" input.
Note that the Hotel Request and below do not work yet.
Relates to:
Context
Using the existing Travel Desk forms (https://github.com/ytgov/travel-authorization/tree/main/web/src/modules/travelDesk) rewire the travel desk request to exist in the travel desk tab of the travel auth.
Travel Desk forms should be created anytime a user is traveling by air.
Implementation
pg
global type serialization in non-globalapi/src/routes/form-router.ts
file.pg
andSequelize
libraries.Concerns
Note that all times pick for rental cars are treated as UTC times, rather than local times. The end user should be made aware of this, or have the opportunity to enter times in location local time.
Screenshots
Showing Rental Car Request section now working![image](https://github.com/icefoganalytics/travel-authorization/assets/23045206/9b18f617-49ad-46f9-95ad-811059516fb9)
Rental Car creation modal![image](https://github.com/icefoganalytics/travel-authorization/assets/23045206/ea1f32e4-d229-4d3c-816d-5a5fa3c44d22)
Rental Car edit modal![image](https://github.com/icefoganalytics/travel-authorization/assets/23045206/a9c39309-8754-4bdb-8d13-506a27d3de9b)
Bunch of fields with failed validation triggered by trying to add before filling in said fields.
Testing Instructions
dev test
(ordev test_api
)dev up
Note that the Hotel Request and below do not work yet.