maproulette / maproulette3

MapRoulette, the micro-tasking tool for OpenStreetMap
https://maproulette.org
MIT License
124 stars 33 forks source link

The jump to the next task does not work #1857

Open deevroman opened 1 year ago

deevroman commented 1 year ago
  1. Open https://maproulette.org/browse/challenges/15351
  2. Solve task
  3. When you click I fixed, a neighboring task is shown.
  4. Select Nearby for next task
  5. When you click Submit, another task opens

Reproduced only in this challenge of this project.

Firefox/Chrome 107

https://user-images.githubusercontent.com/25708359/201421638-400198ba-e51a-4a29-bdf2-6cf2bdc69e9a.mp4

jschwarz2030 commented 1 year ago

I believe you have to actually select the next task you want to work on in the map. There were no changes to the nearby-task feature except that we made the modal full-screen to allow the user to see nearby tasks more easily. see https://github.com/osmlab/maproulette3/issues/1778

deevroman commented 1 year ago

But in any other challenges, you do not need to do additional actions. Why is this challenge an exception?

Moreover, this problem appeared at least before August.

jschwarz2030 commented 1 year ago

So far I'm unable to verify code-wise if it worked that way, or if there was a regression since then. However, we can enhance/fix it to work as expected.

Keeeeth commented 1 year ago

I wasn't able to reproduce this issue until I tried with tasks of different priorities. Is it possible the random task had a higher priority than the nearby tasks (either High or Medium)?

deevroman commented 1 year ago

hmm, really. Only in this challenge the tasks have different priority (Low, medium). If it's because of this, then this is not obvious behavior:(

jschwarz2030 commented 1 year ago

I did some more digging into the API and have some clarifications to share. Here are how the various user flows work:

  1. User Submits the task in Random Task mode

    • calls challenge/{challengeId}/tasks/prioritizedTasks
    • the endpoint will collect and consider all tasks in the challenge with the highest priority and select the first result. Proximity is not considered
  2. User Submits the task in Nearby Task mode (w/o selecting a task)

    • calls challenge/{challengeId}/tasks/prioritizedTasks?proximity={currentTaskId}
    • the endpoint will collect all the challenge tasks with the highest priority and ORDER them based on proximity to the current task. It does not query based on proximity, it only orders the closest highest priority result.
  3. User Submits the task in Nearby Task mode (while selecting the next task)

    • calls task/{taskId}
    • the endpoint simply fetches the task data of the selected nearby task

Something else to note: In NearbyTask mode, in either scenario, the map is initially populated by the challenge/{challengeId}/tasksNearby/{taskId}?limit={limitCount} endpoint. Priority is not considered. Clicking Load more tasks increases the limit by 5 each time.

mvexel commented 1 year ago

I believe we did previously send the user to the closest task by default without them explicitly having to select a task on the map.

If this behavior changed, we should change it back :)

jschwarz2030 commented 1 year ago

So I've searched for possible recent changes to this functionality and haven't found anything. And just to reiterate, it DOES provide the CLOSEST highest priority task (which may not necessarily be nearby and is understandably confusion-prone).

So since I don't know how to "change it back", how do we ideally want it to work? Do we want to remove priority from the equation completely? Do we want to auto-select the highest priority task of the nearby tasks presented? Another button? Better tooltips so it's less confusing?

PS - I also have to assume the functionality exists for a reason and could affect other users with different expectations. From how it's designed, it feels pretty intentional. There's even a comment from 5 years ago (labeled "Initial commit"). https://github.com/osmlab/maproulette3/blame/develop/src/services/Task/Task.js#L538

mvexel commented 1 year ago

@jschwarz2030 let's chat about this next time we meet. You make good points and it's probably not as straightforward as I think it is :)

vmartyanov commented 6 months ago

I have my "5 cents" to this: I'd like at least be able to skip these high priority tasks. For example I have some internal reasons not to work with some countries, but I'll be moved to these high priority tasks again and again. Manual zooming and selecting tasks will take more time than solving tasks. Please, fix it!

CollinBeczak commented 5 months ago

I've been working with this area of code, and there are priority conditions that have caused this behavior, as @jschwarz2030 said. The backend first checks if there are any high-priority tasks in the challenge, and if there are, it grabs the closest one. Then, after that, it does the same thing for medium priority, and then the same for low priority. Would it be useful to be able to toggle on and off this feature, or have a dropdown with options "All," "High priority," "Medium priority," "Low Priority" that will filter by the chosen priority? I'm open to more ideas, but either of those ideas makes more sense to me.

vmartyanov commented 5 months ago

I'd like to have "below low priority" for skipped and "can't complete" tasks... So next task - new task :-)

mvexel commented 1 week ago

@maproulette/mr3 let's discuss, it would be good to reach a conclusion about this.

It's a bit of a conundrum - on the one hand we want to honor the author's prioritization as much as possible. On the other hand we want to honor the mapper's preference to only work on nearby tasks.

I think the mapper's preference should take precedence here, and we should serve nearby tasks to the mapper regardless of priority. We could identify different priorities in the marker somehow? I don't know how useful that is to the mapper.

Thanks for chiming in!

jake-low commented 1 week ago

I think the mapper's preference should take precedence here, and we should serve nearby tasks to the mapper regardless of priority.

I agree. Some mappers (myself included) prefer to complete tasks in areas that we're familiar with. For challenges where all tasks have the same priority, the "Nearby" button works great for this. If this button sometimes sends the user to a task which isn't the nearest one to the task they just completed (because closer tasks were lower priority to the challenge author), that seems like it'd be surprising and frustrating to the mapper.