akvo / akvo-flow-mobile

Akvo Flow app
GNU General Public License v3.0
18 stars 16 forks source link

Handle form deletions #304

Closed ichinaski closed 9 years ago

ichinaski commented 9 years ago

Overview

Since a survey/form can be deleted after the app has downloaded it, we want to prevent such a form from being submitted and therefore sent to the server.

The feature is twofold:

Relevant issue in GAE: https://github.com/akvo/akvo-flow/issues/1183

ichinaski commented 9 years ago

Client side proposal:

Once the app receives the list of deleted forms, it needs to communicate such action to the user, and prevent the submission of these forms.

A friendly approach would be to soft delete the form, and instead of not displaying it in the available forms list, we'll disable (grey out) the item, adding a This form has been deleted description.

mtwestra commented 9 years ago

@ichinaski But when will it then be really deleted?

ichinaski commented 9 years ago

Never (unless they're manually deleted by the user). They will simply be marked as deleted with a flag, but the user won't be able to access them.

mtwestra commented 9 years ago

@ichinaski, I'm not sure if that is the right user interface... Perhaps we should ask Loïc for an idea?

ichinaski commented 9 years ago

:+1:

ichinaski commented 9 years ago

As discussed with @loicsans, the less intrusive and simple way to proceed is by displaying a notification that, upon dismissal, will remove the form from the device.

ichinaski commented 9 years ago

A small nuisance I notice after deleting some forms, is that the survey group is not deleted, since the removal happens at the form scope. This situation is particularly noticeable in non-monitored groups. This can be fixed by removing any group that hasn't got a form associated, but given this is an edge case already, we might not want to invest more time than necessary on it.

ichinaski commented 9 years ago

Test plan:

Part 1

Part 2

muloem commented 9 years ago

@ichinaski you may have mentioned it and I missed it but did we try this scenario?

ichinaski commented 9 years ago

@muloem indeed this is the other action taken to solve this issue. It's fixed in both app and backend. I'll add those steps to the test plan though.

ichinaski commented 9 years ago

UI/UX issues

After some testing with @muloem, the current notification approach has proven to be somewhat misleading, as the form is accessible until the user dismissed the notification. At the same time, immediately removing the form upon receiving the message from the server might be a bit harsh in terms of UX (we don't know if the user is aware of that action).

The alternatives are:

cc/ @loicsans @mtwestra @muloem @Kiarii

Kiarii commented 9 years ago

Option B feels like the better way to go about it. We might further consider whether the user should be able to remove/hide a form/survey if they can no longer use it..

muloem commented 9 years ago

@ichinaski @Kiarii @loicsans @janagombitova

The graying out and the line mentioning the disabled survey goes where?

  1. On the initial screen i.e one containing the list of surveys,
  2. On the screen with the list of data points? i.e after selecting the survey,
  3. On the create data point screen when trying to create a new data point
ichinaski commented 9 years ago

The graying out and the line mentioning the disabled survey goes where?

On the initial screen i.e one containing the list of surveys

We cannot disable surveys. The deletion happens at the Form scope.

On the screen with the list of data points? i.e after selecting the survey

Same as above. Surveys and datapoints might contain more (valid) forms.

On the create data point screen when trying to create a new data point

Here. This is the list that displays all the forms for a single survey. Once the form is deleted, it will be marked as deleted in this screen.

Kiarii commented 9 years ago

I think this notification should appear next to the respective form (that has been deleted); in the forms' list. In other screens it would be a bit removed from the context it applies to and would therefore require more cognitive effort to comprehend..

On Thu, Jul 2, 2015 at 4:02 PM, Iñigo notifications@github.com wrote:

The graying out and the line mentioning the disabled survey goes where?

On the initial screen i.e one containing the list of surveys

We cannot disable surveys. The deletion happens at the Form scope.

On the screen with the list of data points? i.e after selecting the survey

Same as above. Surveys and datapoints might contain more (valid) forms.

On the create data point screen when trying to create a new data point

Here. This is the list that displays all the forms for a single survey. Once the form is deleted, it will be marked as deleted in this screen.

— Reply to this email directly or view it on GitHub https://github.com/akvo/akvo-flow-mobile/issues/304#issuecomment-118024882 .

rumca commented 9 years ago

Both the test plans detailed above pass :+1: