Add new fields for rental details and update localization; enhance layout for better visibility

This commit is contained in:
2026-01-23 23:13:12 +01:00
parent b59e91f278
commit ebe8d86732
6 changed files with 172 additions and 2 deletions

View File

@@ -380,6 +380,16 @@ sudo find custom/ -type d -exec chmod 775 {} \;
- [ ] Formula in `formula/`, **NICHT** in `entityDefs/`
- [ ] Nach Erstellung: `./custom/scripts/check_and_rebuild.sh`
**Bei Hinzufügen neuer Felder:**
- [ ] Felder in entityDefs definieren mit korrektem Typ und Optionen
- [ ] Felder zu relevanten Layouts hinzufügen (detail.json, list.json, etc.)
- [ ] Felder sinnvoll gruppieren (eigenes Panel oder bestehendes Panel)
- [ ] Labels in i18n/**de_DE** vollständig (fields UND links)
- [ ] Labels in i18n/**en_US** vollständig (Fallback-Sprache!)
- [ ] Tooltips in i18n hinzufügen falls erforderlich
- [ ] Nach Änderung: `./custom/scripts/check_and_rebuild.sh`
- [ ] Browser Hard Refresh (Ctrl+Shift+R) durchführen
**Bei Layout-Änderungen:**
- [ ] Keine `false` oder leere Objekte in Rows
- [ ] Width nur in List-Layouts verwenden
@@ -511,6 +521,85 @@ Bei hasMany-Relationships müssen **BEIDE Seiten** definiert werden:
- `foreign` zeigt auf den Link-Namen der **Gegenseite**
- Fehlt eine Seite → **"404 Link does not exist"-Fehler**
**Vollständiger Prozess beim Hinzufügen neuer Felder:**
Neue Felder in einer Entity erfordern Änderungen in **drei Bereichen**:
1. **entityDefs/{Entity}.json** - Feld-Definition
2. **layouts/{Entity}/*.json** - Sichtbarkeit in UI
3. **i18n/{Sprache}/{Entity}.json** - Beschriftungen
**Schritt-für-Schritt-Anleitung:**
**1. Feld in entityDefs definieren:**
```json
// custom/Espo/Custom/Resources/metadata/entityDefs/CVmhMietverhltnis.json
{
"fields": {
"kaltmiete": {
"type": "currency",
"required": true,
"onlyDefaultCurrency": true,
"min": 1,
"decimal": true,
"tooltip": true,
"isCustom": true
}
}
}
```
**2. Feld zu Layouts hinzufügen:**
```json
// custom/Espo/Custom/Resources/layouts/CVmhMietverhltnis/detail.json
[
{
"rows": [
[
{"name": "kaltmiete"},
{"name": "warmmiete"}
]
],
"customLabel": "Miethöhe",
"noteText": "Erfassen Sie die Miethöhe in ihren einzelnen Bestandteilen",
"noteStyle": "info"
}
]
```
**3. Labels in ALLEN Sprachen definieren:**
```json
// custom/Espo/Custom/Resources/i18n/de_DE/CVmhMietverhltnis.json
{
"fields": {
"kaltmiete": "Kaltmiete"
},
"tooltips": {
"kaltmiete": "Monatliche Kaltmiete ohne Betriebskosten"
}
}
// custom/Espo/Custom/Resources/i18n/en_US/CVmhMietverhltnis.json
{
"fields": {
"kaltmiete": "Base Rent"
}
}
```
**Wichtig:**
-**IMMER** de_DE UND en_US pflegen (en_US ist Fallback!)
- ✅ Tooltips nur wenn `"tooltip": true` im entityDef gesetzt
- ✅ Bei Link-Feldern Labels in `fields` UND `links` definieren
- ✅ Nach Änderungen: `./custom/scripts/check_and_rebuild.sh`
**Typische Layout-Typen:**
- `detail.json` - Detail-Ansicht (Panels mit Rows)
- `list.json` - Listen-Ansicht (Spalten mit Width)
- `listSmall.json` - Kompakte Listen-Ansicht
- `detailSmall.json` - Seitenleisten-Ansicht
- `filters.json` - Filter-Felder
### clientDefs/{EntityType}.json
**Format-Beispiel:**