Fix base-mapped fields not being migrated from Extra

https://forums.zotero.org/discussion/comment/505322/#Comment_505322
This commit is contained in:
Dan Stillman 2026-01-13 11:33:00 -05:00
parent c37a79e066
commit e478c89ca0
2 changed files with 11 additions and 1 deletions

View file

@ -1170,7 +1170,7 @@ Zotero.Utilities.Internal = {
// have values
if (item) {
let fieldID = Zotero.ItemFields.getID(possibleField);
if (!Zotero.ItemFields.isValidForType(fieldID, itemTypeID)
if (!Zotero.ItemFields.getFieldIDFromTypeAndBase(itemTypeID, fieldID)
|| item.getField(fieldID)
|| additionalFields.has(possibleField)) {
return true;

View file

@ -202,6 +202,16 @@ describe("Zotero.Utilities.Internal", function () {
assert.strictEqual(extra, '');
});
it("should extract a base-mapped field for a given item", function () {
var item = createUnsavedDataObject('item', { itemType: 'book' });
var val = 'Foo';
var str = `medium: ${val}`;
var { fields, extra } = Zotero.Utilities.Internal.extractExtraFields(str, item);
assert.equal(fields.size, 1);
assert.equal(fields.get('medium'), val);
assert.strictEqual(extra, '');
});
it("should extract a CSL field", function () {
var val = '10.1234/abcdef';
var str = `container-title: ${val}`;