AccessionList
The AccessionList
is a very old implementation that allowed Genesys users to store their lists of accessions in the database. There are still some records in accession_list
and accession_listitem
tables localStorage
) and with that the API support for AccessionList
was no longer required.
This ticket is to create new APIs to support AccessionList
.
Changes to data model
- Drop
AccessionList#shared
column: this must be handled by ACL. If the list is readable byROLE_EVERYONE
, then it ispublic
. We can add anisPublic()
getter. - We need to be able to "tag" entries in the list, the
accession_listitem
needs a new columngrp VARCHAR(10) NULL
that allows the user to "classify" each entry in the list of accessions.
API
We need the usual CRUD methods, but their implementation must only work on lists that I have created.
The get/load
method needs to check for READ
permission on the list: not by ownership!
UI
The first change to the UI will be the ability to save/browse/load any of the lists the user created.
We now have "My List (X)" menu item, but we probably need to change that to "Selection (X)" and add a menu item (for logged in users) to the logged-in user menu that says "My lists". This loads and displays all lists the user has saved in Genesys.
When a user loads a saved list, the "Selection" list items (title and description) are replaced.
Basically: there is a currently selected AccessionList
with: title
, description
and uuid[]
that can be "Save as...", "Save"-d, "Reload"-ed and "Delete"-d. If I load a list, then "Selection" page should indicate if the list is different from what I have saved on the server.
I think the best thing to do is to change the "Clear list" into a dropdown called "List" that has "Save", "Delete, "Clear", "Save as.."... options.