invernyx / smartcars-3-bugs

The bug tracker for the smartCARS 3 application
3 stars 0 forks source link

[BUG] - Bid refresh is not updating readout data #249

Closed walkerairtrans closed 1 year ago

walkerairtrans commented 1 year ago

Describe the bug

When you modify something and then click the refresh button, the bid display data does not update.

I added an "s" after KSRQ in my route string and hit the refresh circle icon. It pulled the data (look at the console output) but did not refresh the boxes.

How do you reproduce this bug?

  1. Bid a flight
  2. Open flight in My Flights
  3. Modify the flight directly in DB
  4. Click refresh
  5. Data remains the same

Expected behavior

It should refresh the app display

Screenshots

image

Operating system

Windows 11

Community airline

Walker Air Transport

smartCARS Version

0.11.0

Plugins installed

chat, map, flight center, flight tracker, logbook

Additional context

No response

walkerairtrans commented 1 year ago

@GenericNerd can we please up this priority -- I am discovering that this broken refresh is causing a lot bigger problems. You can circumvent your "Bid doesn't exist for pilot."

Left side is Bid 1, right side is Bid 2.

Here is how I reproduced it.

  1. Create a bid
  2. Log into the app
  3. Go to My Flights
  4. Click fly (this is where Left side info comes in)
  5. Cancel flight, go back to My Flights
  6. Now go to the website, delete the bid, create a new bid (entirely new bidID)
  7. Hit refresh button
  8. Row changes and shows a new flight/aircraft
  9. Click fly (this is where Right side info comes in)

The bidID sent in the POST is from Bid 2 (right side) for this function in update.php.

$flightDetails = $database->fetch('SELECT ' . dbPrefix . 'schedules.code, ' . dbPrefix . 'schedules.flightnum, ' . dbPrefix . 'schedules.aircraft, ' . dbPrefix . 'schedules.depicao, ' . dbPrefix . 'schedules.arricao, ' . dbPrefix . 'schedules.deptime, ' . dbPrefix . 'schedules.arrtime FROM ' . dbPrefix . 'schedules INNER JOIN ' . dbPrefix . 'bids ON ' . dbPrefix . 'bids.pilotid = ? AND ' . dbPrefix . 'bids.bidid = ? WHERE ' . dbPrefix . 'schedules.id = ' . dbPrefix . 'bids.routeid', array($pilotID, $_POST['bidID'])); if($flightDetails === array()) { error(404, 'There is no flight with the specified bid ID'); } $flightDetails = $flightDetails[0];

The bidID show in the app data (this is from Bid 1 Left side -- the old deleted bid), and submitted at the end of your flight in complete.php is the bidID retained from Bid 1. So, when it hits this part of the complete.php function it automatically fails because the bidID is wrong.

$bids = $database->fetch('SELECT routeid, flightroute FROM ' . dbPrefix . 'bids WHERE bidid=? AND pilotid=?', array($_POST['bidID'], $pilotID)); if($bids === array()) { error(404, 'There is no bid for this pilot'); exit; }

And as a result no flights get submitted as a PIREP.

It appears ultimately the problems is your app, when clicking refresh, is not wiping out all the data. It seems the only way to truly sanitize the data is to move to another tab in the app and/or close the app and relaunch this.

This IMO, is a high priority issue because this means every VA pilot who hits refresh is not getting the right data submitted.

image

GenericNerd commented 1 year ago

The reason this is still classed as a low priority is because why are you deleting your bid during your flight? If you can answer that question with a reason that makes sense to bump up the priority, we will. At this current moment, it seems like a bug around quite unusual activity which, although important, are not a high priority.

walkerairtrans commented 1 year ago

The reason this is still classed as a low priority is because why are you deleting your bid during your flight? If you can answer that question with a reason that makes sense to bump up the priority, we will. At this current moment, it seems like a bug around quite unusual activity which, although important, are not a high priority.

No where in this does it say "during a flight". I'm not sure where you made that connection. This is all happening before anyone actually does their flight.

My comment in the last message about clicking "fly" is my testing method to prove you are not updating data in the app. It is not indicating that I'm flying and trying to change things "in-flight". In the right screenshot that bidID is not correct. It should have been refreshed with everything else and it did not.

If it helps I can make a video of this if my writing is not making sense to you. Or you guys can recreate my exact steps and you'll see what I'm seeing.

walkerairtrans commented 1 year ago

@GenericNerd here is a video before I go to work.

Take away the notion that you think everyone will use the trash can button in your app. I have pilots who leave this app open for days and they don't think that way. The video shows flightplan data is NEVER updated.

You can see in the video I deleted the bid from the website, made an entirely new one, hit refresh, and it still was the old data.

https://github.com/invernyx/smartcars-3-bugs/assets/127605985/b6a63a9f-41bb-4e77-af35-8678450af5bb

GenericNerd commented 1 year ago

No where in this does it say "during a flight". I'm not sure where you made that connection.

Apologies, that must have been a different bug that we've had reported in the past that I associated this to be the same issue. It clearly isn't the same issue

My comment in the last message about clicking "fly" is my testing method to prove you are not updating data in the app. It is not indicating that I'm flying and trying to change things "in-flight". In the right screenshot that bidID is not correct. It should have been refreshed with everything else and it did not.

The reason is that the flight centre keeps an internal copy of the bids and I understand why it's an issue, though I still find it highly unlikely that a user would:

  1. Bid on a flight
  2. Go to their VA to modify or delete the bid
  3. Fly the "old" bid

My original comment does still stand regarding priority, it seems like edge-case behaviour.

walkerairtrans commented 1 year ago

The reason is that the flight centre keeps an internal copy of the bids and I understand why it's an issue, though I still find it highly unlikely that a user would:

  1. Bid on a flight
  2. Go to their VA to modify or delete the bid
  3. Fly the "old" bid

My original comment does still stand regarding priority, it seems like edge-case behaviour.

I respectfully request that you to review the video I posted.

GenericNerd commented 1 year ago

I respectfully request that you to review the video I posted.

I did watch the video when I posted my reply, and I still find it highly unlikely that a normal user would do this. I am not questioning the bug (it is very certainly a bug that needs fixing), but I do not believe this should increase in priority for right now.

walkerairtrans commented 1 year ago

This has been fixed.

Thank you!!!

GenericNerd commented 1 year ago

No worries! We did end up bumping the priority slightly since it was seemingly starting to cause more issues