akvo / akvo-flow

A data collection and monitoring tool that works anywhere.
http://akvo.org/products/akvoflow/
GNU Affero General Public License v3.0
65 stars 31 forks source link

Download all data points when no individual datapoint assignments are made #3454

Closed muloem closed 4 years ago

muloem commented 4 years ago

Context

We have released the datapoints assignments feature that enables the selection of specific datapoints to be assigned to devices. The old setup of assignments worked in such a way that when an assignment was made, all datapoints for a survey were assigned to the device.

Problem or idea

We have an issue, however, that this is a change of behaviour that is not expected by the users. We are already receiving multiple questions / reports indicating that users expect datapoints to download but none appear.

Solution or next step

We should make a user transition into this feature of selecting individual datapoints. Therefore the proposal is to run the old and the new setup side by side.

Kiarii commented 4 years ago

I think for new assignments, we should push users towards explicit datapoint assignment to devices. Regarding the assignment of all datapoints, we had the "assign all datapoints" which was actually meant to act in place of the implicit assignment that has been there. We should consider bringing this back as a result.. Explicit assignment means that users will be able to see - on the dashboard - what they are doing for each device, and Flow doesn't do funny stuff behind the scenes.

Implicit assignment of datapoints to devices - assigning all datapoints when no assignment is made - will create a 'conflict of logic' with the action of [Assign datapoints]; if no datapoint assignment is made to a device, then that device should receive no datapoints. A device should receive datapoints in two cases alone: a) when a select subset of datapoints has been assigned to it or b) when all datapoints has been assigned to it

We should do our best not to break old assignments - where all datapoints were literally dumped to all devices

valllllll2000 commented 4 years ago

I think for new assignments, we should push users towards explicit datapoint assignment to devices. Regarding the assignment of all datapoints, we had the "assign all datapoints" which was actually meant to act in place of the implicit assignment that has been there. We should consider bringing this back as a result..

I like the idea of "assign all datapoints" button/option

One of the main issues we have is: up until now when user creates datapoints on the app and presses download, since those datapoints were not assigned by dashboard, they were deleted from the device which was weird. We changed it to never delete any datapoints. So with the next flow app release, it will no longer be possible to "un-assign" datapoints from the app except by deleting all collected data and downloading the datapoints again.

With @muloem we discussed this issue and it seems that when a device creates a datapoint, it should be automatically assigned to that device. But this is not doable with the current implementation as devices do not have access to the Assignment object so there would be no way of knowing when datapoints are uploaded to which assignment they should belong.

Should we also consider here the possibility to remove the Assignments and assign datapoints to a device or devices group, as the whole assignment process seems complex? This should probably be discussed in another issue.

Kiarii commented 4 years ago

Am a bit skeptical on jumping onto the idea of removing the idea of assignments - this would require some deliberation: some research and storymapping. I think we have found ourselves in this situation because in looking at datapoints' assignment to devices we did not consider the collateral that would happen especially on the side of the device. We would need to complete that cycle of thought, compare removing assignments or carrying them over to devices, to determine the best way forward. I do agree though that this is an issue we can only visit later..

muloem commented 4 years ago

We will look into the removal of assignments under #3458

Implementing of assign all will be handled under #3457