[x] Minor refactoring: package, code duplication in BrAPIServiceV2
[x] Various string resources
[ ] Improve sorting with toolbar / maybe better table view with column choices, currently sorts by list item label name ascending order
[x] Discuss / improve search text filtering, when choosing/filtering studies users can add text segments, these text segments are logically matched using "OR" to filter models. Searching is different for non-study objects such as programs, these search texts are not saved. Should be AND
[x] Discuss / improve filtering, non study filters such as programs do not affect other filters, I could see it being useful to choose a program then when browsing trials have only those belonging to the program show up Filters should affect other filters
[x] Add time-based cache invalidation preference
[x] Discuss cache persistence: currently cache is reset by the user in the toolbar UI, or whenever the server is authenticated, another option is to keep a directory hierarchy of caches for each server visited
[x] Add exception UI
[x] Discuss / improve level/sort/prim/sec UI, currently I have it choose "plot", "Row", "Col" if they exist and leave sort off by default.
[x] level / unit handling. Do many studies have data across different levels? There could be optimizations for getting this data if so.
Required BrAPI calls:
GET studies / trials are required, latter is needed to filter by program since program data is not included in study objects
GET commonCropNames, trials, seasons, programs
GET observationlevels (although I noticed servers implement this differently, some don't return anything when supplying a programDbId, in that case you have to supply null)
GET observationVariables (from previous implementation, traits are imported with the studies)
GET observationUnits
GET germplasms (used to populate unit attribute table further)
Tested on BrAPI test server and Cassavabase.
The test server seems to have only one study that contains plots.
Cassavabase has a lot of data, making filtering interesting, but most calls take a long time to load.
Type of change
What type of changes does your code introduce? Put an x in boxes that apply.
[x] CHANGE (fix or feature that would cause existing functionality to not work as expected)
[ ] FEATURE (non-breaking change which adds functionality)
[ ] BUGFIX (non-breaking change which fixes an issue)
[ ] ENHANCEMENT (non-breaking change which improves existing functionality)
[ ] NONE (if none of the other choices apply. Example, tooling, build system, CI, docs, etc.)
[x] Rename fragment name when importing study. Currently says "Field Book"
[x] Convert data elements to chips in the imported study list item (currently plots, traits, location)
[x] For level selection- is there a way to see if these levels exist for a selected study and remove those that don't?
[x] Use consistent button/UI for "Import" action (study chooser fragment vs. study chosen fragment)
[x] Move active filters to below "Search" widget and out of pop up card
[x] With above change, I'm not sure if popup card is needed. Maybe just a dialog with a list of filter options instead?
[x] Search widget has some weird corner shading
[x] Include trial name in study list items
[x] Include the results number in the scrollview so it disappears when scrolling through the list. Maybe just include this as a chip so it matches the rest of the UI when filters are present?
[x] The actual import process is really slow, even for studies with a small number of entries (testing on Cassavabase). Is there anything we can do on our side or is due to issues on their side?
[x] Could also move the semi-opaque import process to a list of checkmarks when each step is done
[ ] Primary/secondary selection can eventually be removed. It might be worth working on #574 before this gets merged
Description
New UI for BrAPI study import
Improve sorting with toolbar / maybe better table view with column choices, currently sorts by list item label name ascending orderRequired BrAPI calls: GET studies / trials are required, latter is needed to filter by program since program data is not included in study objects GET commonCropNames, trials, seasons, programs GET observationlevels (although I noticed servers implement this differently, some don't return anything when supplying a programDbId, in that case you have to supply null) GET observationVariables (from previous implementation, traits are imported with the studies) GET observationUnits GET germplasms (used to populate unit attribute table further)
Tested on BrAPI test server and Cassavabase. The test server seems to have only one study that contains plots. Cassavabase has a lot of data, making filtering interesting, but most calls take a long time to load.
Type of change
What type of changes does your code introduce? Put an
x
in boxes that apply.CHANGE
(fix or feature that would cause existing functionality to not work as expected)FEATURE
(non-breaking change which adds functionality)BUGFIX
(non-breaking change which fixes an issue)ENHANCEMENT
(non-breaking change which improves existing functionality)NONE
(if none of the other choices apply. Example, tooling, build system, CI, docs, etc.)