Originally Posted by nynaevelan
I need a little help understanding how to get a custom field setup in order for it to always have the data from the shelves it is on in Goodreads. I have the mapping setup for it to update a custom column from Goodreads, but if I move the book(s) around on different shelves after the initial sync with Goodreads, how do I get it to update the column? Here are my setup screens, is there something I need to change in my setup?
What custom column type did you setup for your #goodreads column?
The "Linked Book -> Download tags from shelves" menu option is the one you are using to populate that column, right?
If you move books around on your goodreads shelves then you will need to select those same books in Calibre and once again do the "Linked Book -> Download tags from shelves" menu option.
However (and this is important) depending on the custom column type you may want to clear the data out of that custom column first. If you set it up as a "Comma separated text, like tags" column, then it means the column can have multiple values. The plugin can have no way of knowing that you actually intend to "replace" in this one situation where you now have new "tag" values to be applied into that column. So it will always append new values into your #goodreads column. So if you initially had it on your "foo" shelf, and got a #goodreads value of 'foo', then moved it on Goodreads.com onto your 'bar' shelf, then download tags again it will have tags of 'foo, bar'. So you would want to delete the value 'foo' out of the custom column before you download tags again.
Similarly, if you moved it onto a shelf that no-longer has a mapping, the plugin has no way of knowing that actually it should now blank that column. So again you would need to remove it manually.
These limitations are because my initial implementation was deisgned around using the Calibre "tags" column, which of course has other purposes. One change I could make to the plugin now is to make it the case that if you choose a custom column to contain your downloaded shelf mapped values (e.g. a genre column like you are doing) that the column is treated as being only for that purpose. This would mean that when you select a bunch of books to download tags from, the first thing it does is to blank out the values from that column and overwrite with the "current" mapped values if any. That would remove the need for manual blanking if you move books around on your Goodreads shelves.
As I said this isn't behaviour people would want if they were using their "tags" column - you wouldn't want to lost all your other tags in this instance. But it would be reasonable to expect that a user specifying a custom column as the target is dedicating it to this purpose.