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:**

View File

@@ -7,6 +7,10 @@
"besorgnisNichtRechtzeitigerAuszug": "Besorgnis nicht rechtzeitiger Auszug",
"beendigungsTatbestand": "Beendet durch",
"vertragsdatum": "Vertragsdatum",
"kaltmiete": "Kaltmiete",
"bKVorauszahlung": "BK-Vorauszahlung",
"bKPauschale": "BK-Pauschale",
"warmmiete": "Warmmiete",
"vmhRumungsklages": "Räumungsklagen",
"mietinkassos": "Mietinkasso",
"vmhbeteiligtevermieter": "Vermieter",
@@ -17,6 +21,12 @@
"vmhMietobjekt2Mietverhltnis": "Mietobjekte (veraltet)",
"vmhMietobjekt": "Mietobjekt"
},
"tooltips": {
"kaltmiete": "Monatliche Kaltmiete ohne Betriebskosten",
"bKVorauszahlung": "Monatliche Betriebskosten-Vorauszahlung",
"bKPauschale": "Monatliche Betriebskosten-Pauschale",
"warmmiete": "Summe aus Kaltmiete + BK-Vorauszahlung + BK-Pauschale"
},
"links": {
"calls": "Anrufe",
"tasks": "Aufgaben",

View File

@@ -8,6 +8,10 @@
"auszugsfrist": "Move-out Deadline",
"besorgnisNichtRechtzeitigerAuszug": "Concern About Late Move-out",
"beendigungsTatbestand": "Terminated By",
"kaltmiete": "Base Rent",
"bKVorauszahlung": "Utilities Advance",
"bKPauschale": "Utilities Flat Rate",
"warmmiete": "Total Rent",
"vmhbeteiligtevermieter": "Landlords",
"vmhbeteiligtemieter": "Tenants",
"contactsMietverhltnis": "Portal Users",

View File

@@ -57,5 +57,31 @@
"noteText": null,
"noteStyle": "info",
"customLabel": "Beendigung"
},
{
"rows": [
[
{
"name": "kaltmiete"
},
{
"name": "bKVorauszahlung"
},
{
"name": "bKPauschale"
},
{
"name": "warmmiete"
}
]
],
"dynamicLogicVisible": null,
"style": "primary",
"dynamicLogicStyled": null,
"tabBreak": false,
"hidden": false,
"noteText": "Erfassen Sie die Miethöhe in ihren einzelnen Bestandteilen",
"noteStyle": "info",
"customLabel": "Miethöhe"
}
]

View File

@@ -130,6 +130,47 @@
"before": "auszugsfrist",
"isCustom": true
},
"kaltmiete": {
"type": "currency",
"required": true,
"onlyDefaultCurrency": true,
"conversionDisabled": true,
"min": 1,
"decimal": true,
"tooltip": true,
"isCustom": true
},
"bKVorauszahlung": {
"type": "currency",
"required": false,
"onlyDefaultCurrency": true,
"conversionDisabled": true,
"default": 0,
"min": 0,
"decimal": true,
"tooltip": true,
"isCustom": true
},
"bKPauschale": {
"type": "currency",
"required": false,
"default": 0,
"min": 0,
"decimal": true,
"tooltip": true,
"isCustom": true,
"onlyDefaultCurrency": true
},
"warmmiete": {
"type": "currency",
"onlyDefaultCurrency": true,
"conversionDisabled": true,
"decimal": true,
"isCustom": true,
"readOnly": true,
"required": false,
"tooltip": true
},
"vmhMietobjekt": {
"type": "link",
"required": false,

View File

@@ -359,8 +359,8 @@ return [
0 => 'youtube.com',
1 => 'google.com'
],
'cacheTimestamp' => 1769206135,
'microtime' => 1769206135.340303,
'cacheTimestamp' => 1769206320,
'microtime' => 1769206320.164239,
'siteUrl' => 'https://crm.bitbylaw.com',
'fullTextSearchMinLength' => 4,
'appTimestamp' => 1768843902,