Added feature for part IPN suggest with category prefixes (#1054)

* Erweiterungstätigkeiten zur IPN-Vorschlagsliste anhand von Präfixen aus den Kategorien

* Umstellung Migrationen bzgl. Multi-Plattform-Support.
Zunächst MySQL, SQLite Statements integrieren.

* Postgre Statements integrieren

* SQL-Formatierung in Migration verbessern

* Erweitere IPN-Suggest um Bauteilbeschreibung.

Die Implementierung berücksichtigt nun zusätzlich die Bauteilbeschreibung zu maximal 150 Zeichen Länge für die Generierung von IPN-Vorschlägen und Inkrementen.

* Anpassungen aus Analyse vornehmen

* IPN-Validierung für Parts überarbeiten

* IPN-Vorschlagslogik um Konfiguration erweitert

* Anpassungen aus phpstan Analyse

* IPN-Vorschlagslogik erweitert und Bauteil-IPN vereindeutigt

Die IPN-Logik wurde um eine Konfiguration zur automatischen Suffix-Anfügung und die Berücksichtigung von doppelten Beschreibungen bei Bedarf ergänzt. Zudem wurde das Datenmodell angepasst, um eine eindeutige Speicherung der IPN zu gewährleisten.

* Regex-Konfigurationsmöglichkeit für IPN-Vorschläge einführen

Die Einstellungen für die IPN-Vorschlagslogik wurden um eine Regex-Validierung und eine Hilfetext-Konfiguration erweitert. Tests und Änderungen an den Formularoptionen wurden implementiert.

* Match range assert and form limits in suggestPartDigits

* Keep existing behavior with autoAppend suffix by default

* Show the regex hint in the browser validation notice.

* Improved translations

* Removed unnecessary service definition

* Removed german comments

---------

Co-authored-by: Marcel Diegelmann <marcel.diegelmann@gmail.com>
Co-authored-by: Jan Böhmer <mail@jan-boehmer.de>
This commit is contained in:
web-devinition.de 2025-11-03 00:31:47 +01:00 committed by GitHub
parent 14a4f1f437
commit 771857e014
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
34 changed files with 2791 additions and 115 deletions

View file

@ -1848,6 +1848,66 @@ I sub elementi saranno spostati verso l'alto.</target>
<target>Avanzate</target>
</segment>
</unit>
<unit id="a1k7Blf" name="part.edit.tab.advanced.ipn.commonSectionHeader">
<segment state="translated">
<source>part.edit.tab.advanced.ipn.commonSectionHeader</source>
<target>Suggerimenti senza incremento di parte</target>
</segment>
</unit>
<unit id="2achA.b" name="part.edit.tab.advanced.ipn.partIncrementHeader">
<segment state="translated">
<source>part.edit.tab.advanced.ipn.partIncrementHeader</source>
<target>Suggerimenti con incrementi numerici delle parti</target>
</segment>
</unit>
<unit id="a7jKe3c" name="part.edit.tab.advanced.ipn.prefix.description.current-increment">
<segment state="translated">
<source>part.edit.tab.advanced.ipn.prefix.description.current-increment</source>
<target>Specifica IPN attuale per il pezzo</target>
</segment>
</unit>
<unit id="kEco9iX" name="part.edit.tab.advanced.ipn.prefix.description.increment">
<segment state="translated">
<source>part.edit.tab.advanced.ipn.prefix.description.increment</source>
<target>Prossima specifica IPN possibile basata su una descrizione identica del pezzo</target>
</segment>
</unit>
<unit id="dB1ChKc" name="part.edit.tab.advanced.ipn.prefix_empty.direct_category">
<segment state="translated">
<source>part.edit.tab.advanced.ipn.prefix_empty.direct_category</source>
<target>Il prefisso IPN della categoria diretta è vuoto, specificarlo nella categoria "%name%"</target>
</segment>
</unit>
<unit id="ec2DiJd" name="part.edit.tab.advanced.ipn.prefix.direct_category">
<segment state="translated">
<source>part.edit.tab.advanced.ipn.prefix.direct_category</source>
<target>Prefisso IPN della categoria diretta</target>
</segment>
</unit>
<unit id="2e.kJb4" name="part.edit.tab.advanced.ipn.prefix.direct_category.increment">
<segment state="translated">
<source>part.edit.tab.advanced.ipn.prefix.direct_category.increment</source>
<target>Prefisso IPN della categoria diretta e di un incremento specifico della parte</target>
</segment>
</unit>
<unit id="ba1GCoq" name="part.edit.tab.advanced.ipn.prefix.hierarchical.no_increment">
<segment state="translated">
<source>part.edit.tab.advanced.ipn.prefix.hierarchical.no_increment</source>
<target>Prefissi IPN con ordine gerarchico delle categorie dei prefissi padre</target>
</segment>
</unit>
<unit id="d1uVFa3" name="part.edit.tab.advanced.ipn.prefix.hierarchical.increment">
<segment state="translated">
<source>part.edit.tab.advanced.ipn.prefix.hierarchical.increment</source>
<target>Prefissi IPN con ordine gerarchico delle categorie dei prefissi padre e un incremento specifico per il pezzo</target>
</segment>
</unit>
<unit id="a4rPagW" name="part.edit.tab.advanced.ipn.prefix.not_saved">
<segment state="translated">
<source>part.edit.tab.advanced.ipn.prefix.not_saved</source>
<target>Crea prima un componente e assegnagli una categoria: con le categorie esistenti e i loro propri prefissi IPN, l'identificativo IPN per il componente può essere suggerito automaticamente</target>
</segment>
</unit>
<unit id="c3S4jwK" name="part.edit.tab.part_lots">
<notes>
<note category="file-source" priority="1">Part-DB1\templates\Parts\edit\edit_part_info.html.twig:40</note>
@ -6990,6 +7050,12 @@ Se è stato fatto in modo errato o se un computer non è più attendibile, puoi
<target>Filtro nome</target>
</segment>
</unit>
<unit id="dsG4xTQ" name="category.edit.part_ipn_prefix">
<segment state="translated">
<source>category.edit.part_ipn_prefix</source>
<target>Prefisso parte IPN</target>
</segment>
</unit>
<unit id="yY_ld.7" name="category.edit.default_description">
<notes>
<note priority="1">obsolete</note>
@ -10310,12 +10376,24 @@ Element 3</target>
<target>es. "/Condensatore \d+ nF/i"</target>
</segment>
</unit>
<unit id="OXeGz1A" name="category.edit.part_ipn_prefix.placeholder">
<segment state="translated">
<source>category.edit.part_ipn_prefix.placeholder</source>
<target>es. "B12A"</target>
</segment>
</unit>
<unit id="DL.TreI" name="category.edit.partname_regex.help">
<segment state="translated">
<source>category.edit.partname_regex.help</source>
<target>Un'espressione regolare compatibile con PCRE che il nome del componente deve soddisfare.</target>
</segment>
</unit>
<unit id="a1bUsfJ" name="category.edit.part_ipn_prefix.help">
<segment state="translated">
<source>category.edit.part_ipn_prefix.help</source>
<target>Un prefisso suggerito durante l'inserimento dell'IPN di una parte.</target>
</segment>
</unit>
<unit id="GzqIwHH" name="entity.select.add_hint">
<segment state="translated">
<source>entity.select.add_hint</source>