pretix / pretixscan-ios

iOS check-in app for pretix
https://pretix.eu/about/en/scan
Apache License 2.0
11 stars 9 forks source link

Adding events to scan not possible on iOS, application hangs in loop #25

Open MacLemon opened 4 years ago

MacLemon commented 4 years ago

Summary: When trying to add an event the application ends up in a hanging state.

Steps to Reproduce: Have an event configured for scanning. I had PrivacyWeek 2019 still in there, that event is over. Upon launch the application greets me with the barcode scanning interface (for said past event). Tap the link in the upper left hand corner to go to the list of events. That list is empty. Drag the list downward to see if there's pull-to-refresh, which exists. Refreshing shows the spinning wheel indicator forever. No new events appear, no plus button to add a new event. Only way to get out of that state is to force quit the application.

Same behaviour upon next launch. → Can't use the app for anything but scanning tickets for an event that is already over. (Haven't tried if that actually would work, wouldn't make sense anyway.)

Expected Results: If there's no currently running event configured, the application should offer the list of configured events. If there is a currently running event that is configured, offer to scan tickets for that event immediately after launch.

If there is no current or future event, offer to add a new event by scanning a QR-Code from the website or by entering an access code.

Actual Results: Application comes up with a ticket scanning interface for a past event. Should one overlook that this is not an “add event” screen, scanning the Event-Code from the website results in “invalid ticket” which confuses people.

Regression: n/a

Notes: As a workaround it did help to completely uninstall the app and reinstall freshly from the iOS App Store.

This may or may not be possible on site depending on the necessary authentication settings of the device. Requires App Store Passphrase to be available to the person, which is often not the case. (Enterprise) managed devices often do not allow users to delete or install Apps on their own.

Version Information: iOS 12.4.3 PretixScan 1.1.1

raphaelm commented 4 years ago

Hi @MacLemon, thanks for reporting this.

Refreshing shows the spinning wheel indicator forever. No new events appear, no plus button to add a new event. Only way to get out of that state is to force quit the application.

This is bad, and sounds more like there was an error during fetching the list of events than no existing events. Did you have any configured future events that the app had access to?

If there's no currently running event configured, the application should offer the list of configured events.

I disagree, there is not much point in showing all past events.

If there is a currently running event that is configured, offer to scan tickets for that event immediately after launch.

Yes, this is something we will be looking at in the future, some kind of event auto-selection.

If there is no current or future event, offer to add a new event by scanning a QR-Code from the website or by entering an access code.

I disagree, there is no concept of "adding" an event on the device. The device is provisioned with an access token once which is meant to be persisted for the lifetime of the device, unless the device changes it's affiliation to a new event organizer. This token can be given access remotely to one or more events, which can be managed through the "Devices" section in the pretix backend.

MacLemon commented 4 years ago

No other events had been configured at all. Only an expired one, and I wanted to add a future event in time. This future event was from a different organizer than that past event. (Over the course of a year I'll pretty much switch organizers from any event to the next every time. I guess this is a common scenario for community-run events which are BYOD, opposed to company/fixed-venue run events which more likely have dedicated scanning devices.)

Maybe a misunderstanding. I agree there's not much to showing past events, but either all already configured future or ongoing events, or a friendly “Add an event” screen. This obviously collides with the “associated device get's remote provisioning”. As a user I was not aware that my device was associated with an organizer instead of just for a single event (by whomever). Thanks for letting me know.