Can I sort the collections under "My Library" ?

At the moment the collections under "My Library" are shown in alphabetical order. Is there a way to change this and get _reverse_ alphabetical or sorting by the time an item was last added?

That is kind of useful if I am importing a bunch of things on a given project because the "given project" will be at the top of the list when I do "Add to Collection" or try to drag it onto the collection icon.

  • No, though you can prefix things by 0_ (or so) to sort them to the top
  • The sqlite database does track the last change of the collection. And the items must be somehow sorted in the current interface (they do not appear alphabeticaly by magic!). So I am asking if this is a difficult feature to implement...
  • I'd assume it's more messy than technically hard. Also not something that people ask much for -- arbitrary sort comes up a fair amount, but that's actually tricky
  • Maybe now with the beta of version 7 is a good moment to attack this little change?
  • For collections I want sorted to the top, I prefect the collection name with an exclamation mark (!). I have one collection that I want sorted above all else and a preface the name with 2 marks !!.
  • 1) This doesn't have anything to do with Zotero 7 or the redesign (so @roberto.franceschini, I've deleted your comment in the redesign thread, which doesn't belong there). Zotero development is continuous, and new features are added all the time between major versions. If we tried to get everyone's pet feature request into every major new version, there would never be a major new version.

    2) Sorting by recently used collections would in no way be a "little change". It's actually not currently possible, because we don't store the time an item was added to a collection, and collections themselves aren't modified when items are added to them.

    (I'm not sure why reverse alphabetical sorting is mentioned. That doesn't seem related to the other request or particularly useful in any way.)
  • @dsillmann thanks for the explanations. If "collections" are not modified when a items are added, what is modified then? something needs to be modified...
    Anyhow, I hope you see the point. Collections works sort of the same function as a folder does in the file system. Many many times in file system you want to see last modified folders first, so the same need applies to collections.
    A similar need arises for tags. In general I believe that whenever building a catalog fo anything, be it books in the library, papers in Zotero, tags I use to classify them, it is useful to keep track of times of activities and use this information to organize the material.

    At present I see that for each item there is a field "date added". The latest such time in a given collection can be used as a reasonable "modification" time for the collection if there is no time information for the collection itself. This is a workaround strategy of course.

    Concerning the structure of zotero.sqlite I see that there is a field clientDateModified, but it seems to work as creation time stamp, as adding items to the collection does not modify this time, which seems to be stuck at the time of creation of the collection. Maybe it needs to be called something else? or people who designed the database wanted to keep track of modification time but then this was not implemented? In any case, there is a time-related field for collections, it seems to me it has already the right name, it's just not getting updated, maybe it can be used for our goal?
  • edited February 26, 2024
    If "collections" are not modified when a items are added, what is modified then? something needs to be modified...
    The items themselves, as you saw. Collection membership is a property of items, the same as tags.
  • So, if I understand correctly adding an item to a collection makes the collection not change, but makes the item change. This potentially creates an unwanted side effect in my workaround because adding an item to any collection will cause all the collections in which it appears to be modified at that time. This is clearly not desirable.

    At this point I should question what makes collections and tags not worth having a modification time of their own.

    I think it is not too late to add one, taking as default (only for the initialization on old databases) the time of change of the most recently modified item in the collection (or tag).

    This at least makes the time information available for collections and tags, which is a first step towards developing the sorting feature. What do you think?
Sign In or Register to comment.