Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make reconciliation errors selectable by facets #6232

Closed
wetneb opened this issue Dec 10, 2023 · 3 comments · Fixed by #6320
Closed

Make reconciliation errors selectable by facets #6232

wetneb opened this issue Dec 10, 2023 · 3 comments · Fixed by #6320
Assignees
Labels
error handling Improving the ways errors are reported to users facets Behaviour or rendering of facets in a project Type: Feature Request Identifies requests for new features or enhancements. These involve proposing new improvements.
Milestone

Comments

@wetneb
Copy link
Sponsor Member

wetneb commented Dec 10, 2023

Consider a reconciliation process where some cells could not reconcile properly, resulting in errors stored in cells.
As a user, I want to:

  • be notified that those errors happened, without manually scrolling through the dataset to find red text
  • be able to easily select all the rows where errors happened, to either fix them manually or re-run reconciliation on this subset only

Proposed solution

Adapt the reconciliation judgment facet to have a new category, "error", corresponding to the cells with a non-null reconciliation error.

This could be done either by changing the expression that defines the facet (such as if(isNonBlank(cell.recon.error), "error", forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), "(unreconciled)", "(blank)")))),
or by introducing a new judgment value in the backend. I think the latter would be cleaner.

Alternatives considered

Introduce another facet for that? It seems a bit overkill to me, and would take up more screen space.

Current screenshot

Currently, cells with reconciliation errors have status "none":
image

After this change, it would look like this instead:
image

@wetneb wetneb added Type: Feature Request Identifies requests for new features or enhancements. These involve proposing new improvements. facets Behaviour or rendering of facets in a project error handling Improving the ways errors are reported to users labels Dec 10, 2023
@thadguidry
Copy link
Member

@wetneb when you say

or by introducing a new judgment value in the backend. I think the latter would be cleaner.

do you mean a judgment value of "error" ? Can you clarify by adding a bit more detail to that part of the proposal comment?

@wetneb
Copy link
Sponsor Member Author

wetneb commented Dec 12, 2023

We need to add a new Judgment value here ("error") and update the code so that this state is properly set when creating reconciliation with errors:

static public enum Judgment {
@JsonProperty("none")
None, @JsonProperty("matched")
Matched, @JsonProperty("new")
New
}

@thadguidry
Copy link
Member

thadguidry commented Dec 12, 2023

So, we'll be able to facet errors directly. And since we'll have cell.recon.error object, then we can also use that to parse out the error details if we want to?

Also, just wondering if it MIGHT happen that the error object could ever be "empty" and what we will do about that on the backend to avoid giving users on the frontend cluelessness. Because I don't see that avoidance of "empty" only "null" checking happening here: https://github.com/OpenRefine/OpenRefine/blob/master/main/src/com/google/refine/model/Cell.java

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
error handling Improving the ways errors are reported to users facets Behaviour or rendering of facets in a project Type: Feature Request Identifies requests for new features or enhancements. These involve proposing new improvements.
Development

Successfully merging a pull request may close this issue.

3 participants