feat(CPuls): Enhance CPuls entity with new fields, tooltips, and options; add localization for German and English
- Added new fields to CPuls entity including status, syncStatus, kiAnalyse, and others. - Implemented localization for CPuls in German (de_DE) and English (en_US). - Introduced new API actions for team activation and completion of CPuls. - Created hooks to update team statistics and manage document counts. - Added new entity definitions and metadata for CPulsTeamZuordnung and Team. - Implemented validation logic in formulas to prevent completion of unclean Puls. - Updated layouts for detail and list views of CPuls. - Enhanced user entity with absence tracking fields. - Added scopes for CPuls and CPulsTeamZuordnung.
This commit is contained in:
@@ -1,9 +1,58 @@
|
||||
{
|
||||
"links": {
|
||||
"calls": "Anrufe",
|
||||
"tasks": "Aufgaben"
|
||||
},
|
||||
"labels": {
|
||||
"Create CPuls": "Puls erstellen"
|
||||
"Create CPuls": "Puls erstellen",
|
||||
"CPuls": "Puls",
|
||||
"cPuls": "Pulse"
|
||||
},
|
||||
"fields": {
|
||||
"name": "Bezeichnung",
|
||||
"status": "Status",
|
||||
"syncStatus": "Synchronisations-Status",
|
||||
"kiAnalyse": "KI-Analyse",
|
||||
"zusammenfassung": "Zusammenfassung",
|
||||
"anzahlDokumente": "Anzahl Dokumente",
|
||||
"anzahlTeamsAktiv": "Teams (aktiv)",
|
||||
"anzahlTeamsAbgeschlossen": "Teams (abgeschlossen)",
|
||||
"finalisiert": "Finalisiert",
|
||||
"finalisierungsGrund": "Finalisierungsgrund",
|
||||
"finalisiertAm": "Finalisiert am",
|
||||
"finalisiertVon": "Finalisiert von",
|
||||
"parent": "Vorgang",
|
||||
"dokumente": "Dokumente",
|
||||
"teamZuordnungen": "Team-Zuordnungen"
|
||||
},
|
||||
"links": {
|
||||
"parent": "Vorgang",
|
||||
"dokumente": "Dokumente",
|
||||
"teamZuordnungen": "Team-Zuordnungen"
|
||||
},
|
||||
"tooltips": {
|
||||
"syncStatus": "clean = KI-Analyse aktuell | unclean = Neue Dokumente, Analyse ausstehend",
|
||||
"kiAnalyse": "Automatisch generierte Zusammenfassung durch KI-Middleware",
|
||||
"zusammenfassung": "Kurze Zusammenfassung für Listen-Ansicht",
|
||||
"finalisiert": "Block wurde geschlossen - neue Dokumente erzeugen automatisch einen neuen Block (First-Read-Closes Prinzip)",
|
||||
"finalisierungsGrund": "Grund der Finalisierung: Erstes Team = Team hat abgeschlossen | Manuell = Admin-Aktion | Automatisch = System-Regel"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"Neu": "Neu",
|
||||
"In Verarbeitung": "In Verarbeitung",
|
||||
"Bereit": "Bereit",
|
||||
"In Review": "In Review",
|
||||
"Teilweise abgeschlossen": "Teilweise abgeschlossen",
|
||||
"Abgeschlossen": "Abgeschlossen"
|
||||
},
|
||||
"syncStatus": {
|
||||
"clean": "Aktuell",
|
||||
"unclean": "Ausstehend"
|
||||
},
|
||||
"finalisierungsGrund": {
|
||||
"Erstes Team": "Erstes Team",
|
||||
"Manuell": "Manuell",
|
||||
"Automatisch": "Automatisch"
|
||||
}
|
||||
},
|
||||
"presetFilters": {
|
||||
"meineOffenen": "Meine offenen Pulse"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CPulsTeamZuordnung": "Team-Zuordnung erstellen",
|
||||
"CPulsTeamZuordnung": "Puls Team-Zuordnung",
|
||||
"cPulsTeamZuordnung": "Puls Team-Zuordnungen"
|
||||
},
|
||||
"fields": {
|
||||
"name": "Name",
|
||||
"puls": "Puls",
|
||||
"team": "Team",
|
||||
"aktiv": "Aktiv",
|
||||
"abgeschlossen": "Abgeschlossen",
|
||||
"abgeschlossenAm": "Abgeschlossen am",
|
||||
"abgeschlossenVon": "Abgeschlossen von",
|
||||
"prioritaet": "Priorität"
|
||||
},
|
||||
"links": {
|
||||
"puls": "Puls",
|
||||
"team": "Team",
|
||||
"abgeschlossenVon": "Abgeschlossen von"
|
||||
},
|
||||
"tooltips": {
|
||||
"aktiv": "Ist diese Team-Zuordnung aktiv? Inaktive werden nicht angezeigt."
|
||||
},
|
||||
"options": {
|
||||
"prioritaet": {
|
||||
"Niedrig": "Niedrig",
|
||||
"Normal": "Normal",
|
||||
"Hoch": "Hoch"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,58 @@
|
||||
{
|
||||
"fields": {
|
||||
},
|
||||
"links": {
|
||||
"meetings": "Meetings",
|
||||
"calls": "Calls",
|
||||
"tasks": "Tasks"
|
||||
},
|
||||
"labels": {
|
||||
"Create CPuls": "Create Puls"
|
||||
}
|
||||
}
|
||||
{
|
||||
"labels": {
|
||||
"Create CPuls": "Create Pulse",
|
||||
"CPuls": "Pulse",
|
||||
"cPuls": "Pulses"
|
||||
},
|
||||
"fields": {
|
||||
"name": "Name",
|
||||
"status": "Status",
|
||||
"syncStatus": "Sync Status",
|
||||
"kiAnalyse": "AI Analysis",
|
||||
"zusammenfassung": "Summary",
|
||||
"anzahlDokumente": "Number of Documents",
|
||||
"anzahlTeamsAktiv": "Teams (active)",
|
||||
"anzahlTeamsAbgeschlossen": "Teams (completed)",
|
||||
"finalisiert": "Finalized",
|
||||
"finalisierungsGrund": "Finalization Reason",
|
||||
"finalisiertAm": "Finalized At",
|
||||
"finalisiertVon": "Finalized By",
|
||||
"parent": "Parent Record",
|
||||
"dokumente": "Documents",
|
||||
"teamZuordnungen": "Team Assignments"
|
||||
},
|
||||
"links": {
|
||||
"parent": "Parent Record",
|
||||
"dokumente": "Documents",
|
||||
"teamZuordnungen": "Team Assignments"
|
||||
},
|
||||
"tooltips": {
|
||||
"syncStatus": "clean = AI analysis up-to-date | unclean = New documents, analysis pending",
|
||||
"kiAnalyse": "Automatically generated summary by AI middleware",
|
||||
"zusammenfassung": "Short summary for list views",
|
||||
"finalisiert": "Block has been closed - new documents will automatically create a new block (First-Read-Closes principle)",
|
||||
"finalisierungsGrund": "Reason for finalization: First Team = Team completed | Manual = Admin action | Automatic = System rule"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"Neu": "New",
|
||||
"In Verarbeitung": "Processing",
|
||||
"Bereit": "Ready",
|
||||
"In Review": "In Review",
|
||||
"Teilweise abgeschlossen": "Partially Completed",
|
||||
"Abgeschlossen": "Completed"
|
||||
},
|
||||
"syncStatus": {
|
||||
"clean": "Up-to-date",
|
||||
"unclean": "Pending"
|
||||
},
|
||||
"finalisierungsGrund": {
|
||||
"Erstes Team": "First Team",
|
||||
"Manuell": "Manual",
|
||||
"Automatisch": "Automatic"
|
||||
}
|
||||
},
|
||||
"presetFilters": {
|
||||
"meineOffenen": "My Open Pulses"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"teamZuordnungen": {
|
||||
"index": 0,
|
||||
"sticked": true,
|
||||
"style": "info",
|
||||
"label": "Team-Zuordnungen"
|
||||
},
|
||||
"dokumente": {
|
||||
"index": 1,
|
||||
"sticked": false,
|
||||
"label": "Dokumente"
|
||||
},
|
||||
"stream": {
|
||||
"index": 2,
|
||||
"sticked": false
|
||||
}
|
||||
}
|
||||
47
custom/Espo/Custom/Resources/layouts/CPuls/detail.json
Normal file
47
custom/Espo/Custom/Resources/layouts/CPuls/detail.json
Normal file
@@ -0,0 +1,47 @@
|
||||
[
|
||||
{
|
||||
"label": "Übersicht",
|
||||
"rows": [
|
||||
[
|
||||
{"name": "name"},
|
||||
{"name": "status"}
|
||||
],
|
||||
[
|
||||
{"name": "syncStatus"},
|
||||
{"name": "parent"}
|
||||
],
|
||||
[
|
||||
{"name": "anzahlDokumente"},
|
||||
{"name": "anzahlTeamsAktiv"}
|
||||
],
|
||||
[
|
||||
{"name": "finalisiert"},
|
||||
{"name": "finalisierungsGrund"}
|
||||
],
|
||||
[
|
||||
{"name": "zusammenfassung", "span": 2}
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "KI-Analyse",
|
||||
"rows": [
|
||||
[
|
||||
{"name": "kiAnalyse", "span": 2}
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "System",
|
||||
"rows": [
|
||||
[
|
||||
{"name": "createdAt"},
|
||||
{"name": "modifiedAt"}
|
||||
],
|
||||
[
|
||||
{"name": "createdBy"},
|
||||
{"name": "modifiedBy"}
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
8
custom/Espo/Custom/Resources/layouts/CPuls/list.json
Normal file
8
custom/Espo/Custom/Resources/layouts/CPuls/list.json
Normal file
@@ -0,0 +1,8 @@
|
||||
[
|
||||
{"name": "name", "width": 30},
|
||||
{"name": "status", "width": 15},
|
||||
{"name": "syncStatus", "width": 10},
|
||||
{"name": "parent", "width": 20},
|
||||
{"name": "anzahlDokumente", "width": 10},
|
||||
{"name": "createdAt", "width": 15}
|
||||
]
|
||||
14
custom/Espo/Custom/Resources/metadata/app/api.json
Normal file
14
custom/Espo/Custom/Resources/metadata/app/api.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"routes": [
|
||||
{
|
||||
"route": "/CPuls/:id/aktiviere-teams",
|
||||
"method": "put",
|
||||
"actionClassName": "Espo\\Custom\\Api\\CPuls\\AktiviereTeams"
|
||||
},
|
||||
{
|
||||
"route": "/CPuls/:id/abschliessen-fuer-team",
|
||||
"method": "post",
|
||||
"actionClassName": "Espo\\Custom\\Api\\CPuls\\AbschliessenFuerTeam"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,37 +1,18 @@
|
||||
{
|
||||
"controller": "controllers/record",
|
||||
"boolFilterList": [
|
||||
"onlyMy"
|
||||
],
|
||||
"sidePanels": {
|
||||
"detail": [
|
||||
{
|
||||
"name": "activities",
|
||||
"reference": "activities"
|
||||
},
|
||||
{
|
||||
"name": "history",
|
||||
"reference": "history"
|
||||
},
|
||||
{
|
||||
"name": "tasks",
|
||||
"reference": "tasks"
|
||||
}
|
||||
]
|
||||
"controller": "controllers/record",
|
||||
"iconClass": "fas fa-heartbeat",
|
||||
"color": "#e74c3c",
|
||||
"filterList": [
|
||||
"meineOffenen",
|
||||
{
|
||||
"name": "bereit"
|
||||
},
|
||||
"bottomPanels": {
|
||||
"detail": [
|
||||
{
|
||||
"name": "activities",
|
||||
"reference": "activities",
|
||||
"disabled": true
|
||||
},
|
||||
{
|
||||
"name": "history",
|
||||
"reference": "history",
|
||||
"disabled": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"iconClass": "fas fa-heart-pulse"
|
||||
}
|
||||
{
|
||||
"name": "inReview"
|
||||
}
|
||||
],
|
||||
"boolFilterList": [
|
||||
"onlyMy"
|
||||
],
|
||||
"defaultFilterPreset": "meineOffenen"
|
||||
}
|
||||
|
||||
@@ -105,6 +105,11 @@
|
||||
"default": "pending_sync",
|
||||
"tooltip": true,
|
||||
"isCustom": true
|
||||
},
|
||||
"puls": {
|
||||
"type": "link",
|
||||
"entity": "CPuls",
|
||||
"isCustom": true
|
||||
}
|
||||
},
|
||||
"links": {
|
||||
@@ -138,6 +143,12 @@
|
||||
"skipOrmDefs": true,
|
||||
"utility": true
|
||||
},
|
||||
"puls": {
|
||||
"type": "belongsTo",
|
||||
"entity": "CPuls",
|
||||
"foreign": "dokumente",
|
||||
"isCustom": true
|
||||
},
|
||||
"contactsvmhdokumente": {
|
||||
"type": "hasMany",
|
||||
"relationName": "cDokumenteContact",
|
||||
|
||||
@@ -3,10 +3,97 @@
|
||||
"name": {
|
||||
"type": "varchar",
|
||||
"required": true,
|
||||
"pattern": "$noBadCharacters"
|
||||
"maxLength": 255,
|
||||
"trim": true,
|
||||
"isCustom": true
|
||||
},
|
||||
"description": {
|
||||
"type": "text"
|
||||
"status": {
|
||||
"type": "enum",
|
||||
"options": [
|
||||
"Neu",
|
||||
"In Verarbeitung",
|
||||
"Bereit",
|
||||
"In Review",
|
||||
"Teilweise abgeschlossen",
|
||||
"Abgeschlossen"
|
||||
],
|
||||
"default": "Neu",
|
||||
"required": true,
|
||||
"isCustom": true,
|
||||
"style": {
|
||||
"Neu": "default",
|
||||
"In Verarbeitung": "primary",
|
||||
"Bereit": "success",
|
||||
"In Review": "warning",
|
||||
"Teilweise abgeschlossen": "info",
|
||||
"Abgeschlossen": "success"
|
||||
}
|
||||
},
|
||||
"syncStatus": {
|
||||
"type": "enum",
|
||||
"options": ["clean", "unclean"],
|
||||
"default": "unclean",
|
||||
"required": true,
|
||||
"isCustom": true,
|
||||
"tooltip": true
|
||||
},
|
||||
"kiAnalyse": {
|
||||
"type": "text",
|
||||
"isCustom": true,
|
||||
"tooltip": true
|
||||
},
|
||||
"zusammenfassung": {
|
||||
"type": "varchar",
|
||||
"maxLength": 500,
|
||||
"isCustom": true,
|
||||
"tooltip": true
|
||||
},
|
||||
"anzahlDokumente": {
|
||||
"type": "int",
|
||||
"readOnly": true,
|
||||
"notStorable": false,
|
||||
"isCustom": true
|
||||
},
|
||||
"anzahlTeamsAktiv": {
|
||||
"type": "int",
|
||||
"readOnly": true,
|
||||
"notStorable": false,
|
||||
"isCustom": true
|
||||
},
|
||||
"anzahlTeamsAbgeschlossen": {
|
||||
"type": "int",
|
||||
"readOnly": true,
|
||||
"notStorable": false,
|
||||
"isCustom": true
|
||||
},
|
||||
"finalisiert": {
|
||||
"type": "bool",
|
||||
"default": false,
|
||||
"readOnly": true,
|
||||
"isCustom": true,
|
||||
"tooltip": true
|
||||
},
|
||||
"finalisierungsGrund": {
|
||||
"type": "enum",
|
||||
"options": [
|
||||
"Erstes Team",
|
||||
"Manuell",
|
||||
"Automatisch"
|
||||
],
|
||||
"readOnly": true,
|
||||
"isCustom": true,
|
||||
"tooltip": true
|
||||
},
|
||||
"finalisiertAm": {
|
||||
"type": "datetime",
|
||||
"readOnly": true,
|
||||
"isCustom": true
|
||||
},
|
||||
"finalisiertVon": {
|
||||
"type": "link",
|
||||
"entity": "User",
|
||||
"readOnly": true,
|
||||
"isCustom": true
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "datetime",
|
||||
@@ -18,25 +105,43 @@
|
||||
},
|
||||
"createdBy": {
|
||||
"type": "link",
|
||||
"readOnly": true,
|
||||
"view": "views/fields/user"
|
||||
"entity": "User",
|
||||
"readOnly": true
|
||||
},
|
||||
"modifiedBy": {
|
||||
"type": "link",
|
||||
"readOnly": true,
|
||||
"view": "views/fields/user"
|
||||
"entity": "User",
|
||||
"readOnly": true
|
||||
},
|
||||
"assignedUser": {
|
||||
"type": "link",
|
||||
"required": false,
|
||||
"view": "views/fields/assigned-user"
|
||||
"entity": "User",
|
||||
"isCustom": true
|
||||
},
|
||||
"teams": {
|
||||
"type": "linkMultiple",
|
||||
"view": "views/fields/teams"
|
||||
"isCustom": true
|
||||
}
|
||||
},
|
||||
"links": {
|
||||
"parent": {
|
||||
"type": "belongsToParent",
|
||||
"entityList": [
|
||||
"CVmhRumungsklage",
|
||||
"CMietinkasso",
|
||||
"CKuendigung"
|
||||
]
|
||||
},
|
||||
"dokumente": {
|
||||
"type": "hasMany",
|
||||
"entity": "CDokumente",
|
||||
"foreign": "puls"
|
||||
},
|
||||
"teamZuordnungen": {
|
||||
"type": "hasMany",
|
||||
"entity": "CPulsTeamZuordnung",
|
||||
"foreign": "puls"
|
||||
},
|
||||
"createdBy": {
|
||||
"type": "belongsTo",
|
||||
"entity": "User"
|
||||
@@ -49,62 +154,37 @@
|
||||
"type": "belongsTo",
|
||||
"entity": "User"
|
||||
},
|
||||
"finalisiertVon": {
|
||||
"type": "belongsTo",
|
||||
"entity": "User"
|
||||
},
|
||||
"teams": {
|
||||
"type": "hasMany",
|
||||
"entity": "Team",
|
||||
"relationName": "entityTeam",
|
||||
"layoutRelationshipsDisabled": true
|
||||
},
|
||||
"meetings": {
|
||||
"type": "hasMany",
|
||||
"entity": "Meeting",
|
||||
"foreign": "parent"
|
||||
},
|
||||
"calls": {
|
||||
"type": "hasMany",
|
||||
"entity": "Call",
|
||||
"foreign": "parent"
|
||||
},
|
||||
"tasks": {
|
||||
"type": "hasChildren",
|
||||
"entity": "Task",
|
||||
"foreign": "parent"
|
||||
},
|
||||
"emails": {
|
||||
"type": "hasChildren",
|
||||
"entity": "Email",
|
||||
"foreign": "parent",
|
||||
"relationName": "EntityTeam",
|
||||
"layoutRelationshipsDisabled": true
|
||||
}
|
||||
},
|
||||
"collection": {
|
||||
"orderBy": "createdAt",
|
||||
"order": "desc"
|
||||
"order": "desc",
|
||||
"textFilterFields": ["name", "zusammenfassung"]
|
||||
},
|
||||
"indexes": {
|
||||
"name": {
|
||||
"columns": [
|
||||
"name",
|
||||
"deleted"
|
||||
]
|
||||
"parent": {
|
||||
"columns": ["parentType", "parentId"]
|
||||
},
|
||||
"assignedUser": {
|
||||
"columns": [
|
||||
"assignedUserId",
|
||||
"deleted"
|
||||
]
|
||||
"status": {
|
||||
"columns": ["status"]
|
||||
},
|
||||
"syncStatus": {
|
||||
"columns": ["syncStatus"]
|
||||
},
|
||||
"finalisiert": {
|
||||
"columns": ["finalisiert"]
|
||||
},
|
||||
"createdAt": {
|
||||
"columns": [
|
||||
"createdAt"
|
||||
]
|
||||
},
|
||||
"createdAtId": {
|
||||
"unique": true,
|
||||
"columns": [
|
||||
"createdAt",
|
||||
"id"
|
||||
]
|
||||
"columns": ["createdAt"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
{
|
||||
"fields": {
|
||||
"name": {
|
||||
"type": "varchar",
|
||||
"notStorable": true,
|
||||
"select": {
|
||||
"select": "CONCAT:(team.name, ' - ', puls.name)"
|
||||
},
|
||||
"orderBy": {
|
||||
"order": [
|
||||
["team.name", "{direction}"]
|
||||
]
|
||||
}
|
||||
},
|
||||
"puls": {
|
||||
"type": "link",
|
||||
"entity": "CPuls",
|
||||
"required": true,
|
||||
"isCustom": true
|
||||
},
|
||||
"team": {
|
||||
"type": "link",
|
||||
"entity": "Team",
|
||||
"required": true,
|
||||
"isCustom": true
|
||||
},
|
||||
"aktiv": {
|
||||
"type": "bool",
|
||||
"default": true,
|
||||
"isCustom": true,
|
||||
"tooltip": true
|
||||
},
|
||||
"abgeschlossen": {
|
||||
"type": "bool",
|
||||
"default": false,
|
||||
"isCustom": true
|
||||
},
|
||||
"abgeschlossenAm": {
|
||||
"type": "datetime",
|
||||
"readOnly": true,
|
||||
"isCustom": true
|
||||
},
|
||||
"abgeschlossenVon": {
|
||||
"type": "link",
|
||||
"entity": "User",
|
||||
"readOnly": true,
|
||||
"isCustom": true
|
||||
},
|
||||
"prioritaet": {
|
||||
"type": "enum",
|
||||
"options": ["Niedrig", "Normal", "Hoch"],
|
||||
"default": "Normal",
|
||||
"isCustom": true,
|
||||
"style": {
|
||||
"Niedrig": "default",
|
||||
"Normal": "primary",
|
||||
"Hoch": "danger"
|
||||
}
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "datetime",
|
||||
"readOnly": true
|
||||
},
|
||||
"modifiedAt": {
|
||||
"type": "datetime",
|
||||
"readOnly": true
|
||||
}
|
||||
},
|
||||
"links": {
|
||||
"puls": {
|
||||
"type": "belongsTo",
|
||||
"entity": "CPuls",
|
||||
"foreign": "teamZuordnungen"
|
||||
},
|
||||
"team": {
|
||||
"type": "belongsTo",
|
||||
"entity": "Team"
|
||||
},
|
||||
"abgeschlossenVon": {
|
||||
"type": "belongsTo",
|
||||
"entity": "User"
|
||||
}
|
||||
},
|
||||
"collection": {
|
||||
"orderBy": "createdAt",
|
||||
"order": "desc"
|
||||
},
|
||||
"indexes": {
|
||||
"pulsTeam": {
|
||||
"columns": ["pulsId", "teamId"],
|
||||
"unique": true
|
||||
},
|
||||
"aktiv": {
|
||||
"columns": ["aktiv"]
|
||||
},
|
||||
"abgeschlossen": {
|
||||
"columns": ["abgeschlossen"]
|
||||
}
|
||||
}
|
||||
}
|
||||
16
custom/Espo/Custom/Resources/metadata/entityDefs/Team.json
Normal file
16
custom/Espo/Custom/Resources/metadata/entityDefs/Team.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"fields": {
|
||||
"teamKategorie": {
|
||||
"type": "enum",
|
||||
"options": [
|
||||
"Anwalt",
|
||||
"Mandatsbetreuung",
|
||||
"Zwangsvollstreckung",
|
||||
"Sonstiges"
|
||||
],
|
||||
"default": "Sonstiges",
|
||||
"isCustom": true,
|
||||
"tooltip": true
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,23 @@
|
||||
"fields": {
|
||||
"cCallQueues": {
|
||||
"type": "linkOne"
|
||||
},
|
||||
"abwesend": {
|
||||
"type": "bool",
|
||||
"default": false,
|
||||
"isCustom": true,
|
||||
"tooltip": true
|
||||
},
|
||||
"abwesendBis": {
|
||||
"type": "date",
|
||||
"isCustom": true,
|
||||
"tooltip": true
|
||||
},
|
||||
"vertretung": {
|
||||
"type": "link",
|
||||
"entity": "User",
|
||||
"isCustom": true,
|
||||
"tooltip": true
|
||||
}
|
||||
},
|
||||
"links": {
|
||||
@@ -10,6 +27,11 @@
|
||||
"foreign": "user",
|
||||
"entity": "CCallQueues",
|
||||
"isCustom": true
|
||||
},
|
||||
"vertretung": {
|
||||
"type": "belongsTo",
|
||||
"entity": "User",
|
||||
"isCustom": true
|
||||
}
|
||||
}
|
||||
}
|
||||
3
custom/Espo/Custom/Resources/metadata/formula/CPuls.json
Normal file
3
custom/Espo/Custom/Resources/metadata/formula/CPuls.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"beforeSaveApiScript": "// Verhindere Abschluss bei unclean Status\nif (\n (status == 'Abgeschlossen' || entity\\isAttributeChanged('status'))\n && syncStatus == 'unclean'\n) {\n recordService\\throwBadRequest('Puls kann nicht abgeschlossen werden: Neue Dokumente vorhanden (Status: unclean). Bitte warten Sie auf die KI-Analyse.');\n}\n\n// Verhindere Änderungen an finalisiertem Puls\nif (\n finalisiert == true\n && entity\\isAttributeChanged('finalisiert') == false\n && (entity\\isAttributeChanged('status') || entity\\isAttributeChanged('syncStatus'))\n) {\n recordService\\throwBadRequest('Puls ist finalisiert. Neue Dokumente erzeugen automatisch einen neuen Block.');\n}"
|
||||
}
|
||||
@@ -2,22 +2,16 @@
|
||||
"entity": true,
|
||||
"layouts": true,
|
||||
"tab": true,
|
||||
"acl": true,
|
||||
"aclPortal": true,
|
||||
"aclPortalLevelList": [
|
||||
"all",
|
||||
"account",
|
||||
"contact",
|
||||
"own",
|
||||
"no"
|
||||
],
|
||||
"acl": "recordAllTeamOwnNo",
|
||||
"aclPortal": false,
|
||||
"customizable": true,
|
||||
"importable": true,
|
||||
"importable": false,
|
||||
"notifications": true,
|
||||
"stream": true,
|
||||
"disabled": false,
|
||||
"type": "BasePlus",
|
||||
"type": "Base",
|
||||
"module": "Custom",
|
||||
"object": true,
|
||||
"isCustom": true
|
||||
}
|
||||
"isCustom": true,
|
||||
"calendar": false
|
||||
}
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"entity": true,
|
||||
"tab": false,
|
||||
"acl": "recordAllTeamNo",
|
||||
"aclPortal": false,
|
||||
"customizable": true,
|
||||
"stream": false,
|
||||
"disabled": false,
|
||||
"type": "Base",
|
||||
"module": "Custom",
|
||||
"object": true,
|
||||
"isCustom": true
|
||||
}
|
||||
Reference in New Issue
Block a user