artefactual / artefactual/atom
Problem: Duplicate "Level of description" terms created during CSV imports
- Dominant language
- PHP
- Stars
- 297
- Forks
- 152
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 3
Description
### Current Behavior
**Steps to reproduce the behavior**
1. Import a CSV with "Level of description" values that differ in capitalization/spelling from the canonical terms (e.g. `Unidad Documental Simple` instead of `Unidad documental simple`).
2. After import, check the "Levels of description" taxonomy (id=34 in my DB).
3. Duplicate terms are created:
- *Unidad Documental Simple* (new, ID 5027)
- *Unidad Documental Compuesta* (new, ID 5023)
Some descriptions (143 in my case) were assigned to the duplicate term instead of the canonical ones (ID 241 = File, ID 242 = Item).
### Expected Behavior
During CSV import, AtoM should match the provided values against the existing terms in the taxonomy (case-insensitive) and reuse them, instead of creating new duplicates for minor differences in capitalization or spelling.
### Possible Solution
- Normalize term matching during import (ignore case, possibly accent-insensitive).
- Provide a clear warning in logs or in the UI when an incoming value does not match any existing term.
- Alternatively, allow admins to enforce "strict matching only" to avoid silent creation of new terms.
### Context and Notes
_No response_
### Version used
Atom 2.9
### Operating System and version
Ubuntu 22.04
### Default installation culture
es
### PHP version
8.3
### Contact details
alejandroarturom@gmail.com
Contributor guide
Research direction
Reproduce the CSV import using capitalization variants such as “Unidad Documental Simple” and inspect the resulting Levels of description taxonomy. Done means matching values reuse the existing canonical terms, descriptions are assigned to those terms, and duplicate terms are not created.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100