mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2026-07-28 20:21:41 +00:00
Add per-parameter "visible in symbol" flag for KiCad EDA export (#1444)
* Add per-parameter "visible in symbol" flag for KiCad EDA export
Introduce a nullable tri-state eda_symbol_visibility on part parameters
that drives the KiCad field's "visible" flag in the EDA HTTP-library API
response. This is independent of the existing eda_visibility, which only
controls whether the parameter is exported as a field at all.
When the per-parameter flag is null, the new system default
KiCadEDASettings::defaultParameterSymbolVisibility applies. Both default
such that exported parameter fields keep their previous behavior
("visible": "False"), so the change is backward compatible.
- Entity: eda_symbol_visibility column + accessors, with matching
serialization groups and a multi-platform migration
- Form: second TriStateCheckboxType, shown for part parameters only
- KiCadHelper: resolve the flag (explicit, else system default) and pass
it to createField()
- Settings: defaultParameterSymbolVisibility (default false)
- Templates: new eye-icon column in the specifications table
- Translations (en) + tests
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Fixed message ids
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Jan Böhmer <mail@jan-boehmer.de>
This commit is contained in:
parent
f3c2f4b913
commit
0169c2d1fa
9 changed files with 137 additions and 1 deletions
|
|
@ -389,6 +389,37 @@ final class KiCadHelperTest extends KernelTestCase
|
|||
|
||||
self::assertArrayHasKey('Voltage Rating', $result['fields']);
|
||||
self::assertSame('3.3 V', $result['fields']['Voltage Rating']['value']);
|
||||
//Without an explicit symbol visibility the field defaults to not being shown in the symbol
|
||||
self::assertSame('False', $result['fields']['Voltage Rating']['visible']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that a parameter with eda_symbol_visibility=true is marked visible in the symbol.
|
||||
*/
|
||||
public function testParameterWithSymbolVisibilityIsVisibleInSymbol(): void
|
||||
{
|
||||
$category = $this->em->find(Category::class, 1);
|
||||
|
||||
$part = new Part();
|
||||
$part->setName('Part with Symbol-Visible Parameter');
|
||||
$part->setCategory($category);
|
||||
|
||||
$param = new PartParameter();
|
||||
$param->setName('Voltage Rating');
|
||||
$param->setValueTypical(3.3);
|
||||
$param->setUnit('V');
|
||||
$param->setEdaVisibility(true);
|
||||
$param->setEdaSymbolVisibility(true);
|
||||
$part->addParameter($param);
|
||||
|
||||
$this->em->persist($part);
|
||||
$this->em->flush();
|
||||
|
||||
$result = $this->helper->getKiCADPart($part);
|
||||
|
||||
self::assertArrayHasKey('Voltage Rating', $result['fields']);
|
||||
self::assertSame('3.3 V', $result['fields']['Voltage Rating']['value']);
|
||||
self::assertSame('True', $result['fields']['Voltage Rating']['visible']);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue