@universis/accommodation 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,7 +8,7 @@
8
8
  "sealed": false,
9
9
  "implements": "Place",
10
10
  "classPath": "./models/Accommodation",
11
- "version": "1.5",
11
+ "version": "1.6",
12
12
  "fields": [
13
13
  {
14
14
  "@id": "http://schema.org/identifier",
@@ -66,9 +66,49 @@
66
66
  "description": "The geo coordinates of the accommodation.",
67
67
  "type": "Json",
68
68
  "additionalType": "GeoCoordinates"
69
+ },
70
+ {
71
+ "name": "locales",
72
+ "type": "AccommodationLocale",
73
+ "mapping": {
74
+ "associationType": "association",
75
+ "cascade": "delete",
76
+ "parentModel": "Accommodation",
77
+ "parentField": "id",
78
+ "childModel": "AccommodationLocale",
79
+ "childField": "object"
80
+ }
81
+ },
82
+ {
83
+ "name": "locale",
84
+ "type": "AccommodationLocale",
85
+ "readonly": true,
86
+ "editable": false,
87
+ "many": true,
88
+ "expandable": true,
89
+ "multiplicity": "ZeroOrOne",
90
+ "mapping": {
91
+ "associationType": "association",
92
+ "cascade": "delete",
93
+ "parentModel": "Accommodation",
94
+ "parentField": "id",
95
+ "childModel": "AccommodationLocale",
96
+ "childField": "object",
97
+ "options": {
98
+ "$filter": "inLanguage eq lang()",
99
+ "$first": true
100
+ }
101
+ }
69
102
  }
70
103
  ],
71
- "eventListeners": [],
104
+ "eventListeners": [
105
+ {
106
+ "type": "@themost/data/previous-state-listener"
107
+ },
108
+ {
109
+ "type": "./listeners/data-localization"
110
+ }
111
+ ],
72
112
  "constraints": [
73
113
  {
74
114
  "type": "unique",
@@ -0,0 +1,86 @@
1
+ {
2
+ "$schema": "https://themost-framework.github.io/themost/models/2018/2/schema.json",
3
+ "@id": "https://universis.io/entities/AccommodationLocale",
4
+ "name": "AccommodationLocale",
5
+ "description": "Contains a collection of extra field required for accommodation.",
6
+ "title": "AccommodationLocale",
7
+ "abstract": false,
8
+ "contains": "Accommodation",
9
+ "hidden": true,
10
+ "sealed": false,
11
+ "version": "1.0",
12
+ "fields": [
13
+ {
14
+ "@id": "https://themost.io/schemas/id",
15
+ "name": "id",
16
+ "title": "ID",
17
+ "description": "The identifier of the item.",
18
+ "type": "Counter",
19
+ "primary": true,
20
+ "nullable": false
21
+ },
22
+ {
23
+ "@id": "https://themost.io/schemas/object",
24
+ "name": "object",
25
+ "title": "object",
26
+ "description": "The parent item.",
27
+ "type": "Accommodation"
28
+ },
29
+ {
30
+ "@id": "http://schema.org/inLanguage",
31
+ "name": "inLanguage",
32
+ "title": "inLanguage",
33
+ "description": "The language of this item.",
34
+ "type": "Text",
35
+ "size": 5
36
+ },
37
+ {
38
+ "name": "name",
39
+ "title": "Ονομασία",
40
+ "description": "Η ονομασία του αντικειμένου",
41
+ "type": "Text",
42
+ "nullable": true,
43
+ "size": 100
44
+ },
45
+ {
46
+ "name": "description",
47
+ "title": "Περιγραφή",
48
+ "description": "Περιγραφή του τύπου εργασίας",
49
+ "type": "Text",
50
+ "nullable": true,
51
+ "size": 80
52
+ },
53
+ {
54
+ "name": "displayCode",
55
+ "title": "Display code",
56
+ "description": "The display code of the place",
57
+ "type": "Text",
58
+ "size": 15
59
+ }
60
+ ],
61
+ "constraints": [
62
+ {
63
+ "type": "unique",
64
+ "fields": [
65
+ "object",
66
+ "inLanguage"
67
+ ]
68
+ }
69
+ ],
70
+ "privileges": [
71
+ {
72
+ "mask": 1,
73
+ "type": "global",
74
+ "account": "*"
75
+ },
76
+ {
77
+ "mask": 15,
78
+ "type": "global"
79
+ },
80
+ {
81
+ "mask": 15,
82
+ "type": "global",
83
+ "account": "Administrators"
84
+ }
85
+ ]
86
+ }
@@ -7,7 +7,7 @@
7
7
  "abstract": false,
8
8
  "sealed": false,
9
9
  "implements": "Accommodation",
10
- "version": "1.9.9",
10
+ "version": "2.0.1",
11
11
  "fields": [
12
12
  {
13
13
  "name": "bed",
@@ -15,7 +15,7 @@
15
15
  "size": 500
16
16
  },
17
17
  {
18
- "name": "floorLavel",
18
+ "name": "floor",
19
19
  "type": "Text",
20
20
  "size": 500
21
21
  },
@@ -128,9 +128,48 @@
128
128
  "name": "reasonOutOfService",
129
129
  "type": "Text",
130
130
  "size": 500
131
+ },
132
+ {
133
+ "name": "locales",
134
+ "type": "AccommodationRoomLocale",
135
+ "mapping": {
136
+ "associationType": "association",
137
+ "cascade": "delete",
138
+ "parentModel": "AccommodationRoom",
139
+ "parentField": "id",
140
+ "childModel": "AccommodationRoomLocale",
141
+ "childField": "object"
142
+ }
143
+ },
144
+ {
145
+ "name": "locale",
146
+ "type": "AccommodationRoomLocale",
147
+ "readonly": true,
148
+ "editable": false,
149
+ "many": true,
150
+ "expandable": true,
151
+ "multiplicity": "ZeroOrOne",
152
+ "mapping": {
153
+ "associationType": "association",
154
+ "cascade": "delete",
155
+ "parentModel": "AccommodationRoom",
156
+ "parentField": "id",
157
+ "childModel": "AccommodationRoomLocale",
158
+ "childField": "object",
159
+ "options": {
160
+ "$filter": "inLanguage eq lang()",
161
+ "$first": true
162
+ }
163
+ }
131
164
  }
132
165
  ],
133
166
  "eventListeners": [
167
+ {
168
+ "type": "@themost/data/previous-state-listener"
169
+ },
170
+ {
171
+ "type": "./listeners/data-localization"
172
+ }
134
173
  ],
135
174
  "privileges": [
136
175
  {
@@ -0,0 +1,86 @@
1
+ {
2
+ "$schema": "https://themost-framework.github.io/themost/models/2018/2/schema.json",
3
+ "@id": "https://universis.io/entities/AccommodationRoomLocale",
4
+ "name": "AccommodationRoomLocale",
5
+ "description": "Contains a collection of extra field required for accommodation room.",
6
+ "title": "AccommodationRoomLocale",
7
+ "abstract": false,
8
+ "contains": "AccommodationRoom",
9
+ "hidden": true,
10
+ "sealed": false,
11
+ "version": "1.0",
12
+ "fields": [
13
+ {
14
+ "@id": "https://themost.io/schemas/id",
15
+ "name": "id",
16
+ "title": "ID",
17
+ "description": "The identifier of the item.",
18
+ "type": "Counter",
19
+ "primary": true,
20
+ "nullable": false
21
+ },
22
+ {
23
+ "@id": "https://themost.io/schemas/object",
24
+ "name": "object",
25
+ "title": "object",
26
+ "description": "The parent item.",
27
+ "type": "AccommodationRoom"
28
+ },
29
+ {
30
+ "@id": "http://schema.org/inLanguage",
31
+ "name": "inLanguage",
32
+ "title": "inLanguage",
33
+ "description": "The language of this item.",
34
+ "type": "Text",
35
+ "size": 5
36
+ },
37
+ {
38
+ "name": "name",
39
+ "title": "Ονομασία",
40
+ "description": "Η ονομασία του αντικειμένου",
41
+ "type": "Text",
42
+ "nullable": true,
43
+ "size": 100
44
+ },
45
+ {
46
+ "name": "description",
47
+ "title": "Περιγραφή",
48
+ "description": "Περιγραφή του τύπου εργασίας",
49
+ "type": "Text",
50
+ "nullable": true,
51
+ "size": 80
52
+ },
53
+ {
54
+ "name": "displayCode",
55
+ "title": "Display code",
56
+ "description": "The display code of the place",
57
+ "type": "Text",
58
+ "size": 15
59
+ }
60
+ ],
61
+ "constraints": [
62
+ {
63
+ "type": "unique",
64
+ "fields": [
65
+ "object",
66
+ "inLanguage"
67
+ ]
68
+ }
69
+ ],
70
+ "privileges": [
71
+ {
72
+ "mask": 1,
73
+ "type": "global",
74
+ "account": "*"
75
+ },
76
+ {
77
+ "mask": 15,
78
+ "type": "global"
79
+ },
80
+ {
81
+ "mask": 15,
82
+ "type": "global",
83
+ "account": "Administrators"
84
+ }
85
+ ]
86
+ }
@@ -49,10 +49,10 @@ async function beforeSaveAsync(event) {
49
49
  //check studentConsent
50
50
  if (event.target && eventHasConsent === true && Object.prototype.hasOwnProperty.call(target, 'studentConsent') === false) {
51
51
  const translateService = context.application.getStrategy(function TranslateService() {});
52
- throw new _common.DataError('E_STUDENT_CONSENT', translateService.translate('The application cannot be saved without consent about personal data.'), null, 'AccommodationRequestAction', 'studentConsent');
52
+ throw new _common.DataError('E_STUDENT_CONSENT', translateService.translate('The request cannot be submitted unless the student confirms that they have read and understood the Privacy and Personal Data Protection Policy.'), null, 'AccommodationRequestAction', 'studentConsent');
53
53
  } else if (event.target && eventHasConsent === true && Object.prototype.hasOwnProperty.call(target, 'studentConsent') === true && target.studentConsent === false) {
54
54
  const translateService = context.application.getStrategy(function TranslateService() {});
55
- throw new _common.DataError('E_STUDENT_CONSENT', translateService.translate('The application cannot be saved without consent about personal data.'), null, 'AccommodationRequestAction', 'studentConsent');
55
+ throw new _common.DataError('E_STUDENT_CONSENT', translateService.translate('The request cannot be submitted unless the student confirms that they have read and understood the Privacy and Personal Data Protection Policy.'), null, 'AccommodationRequestAction', 'studentConsent');
56
56
  }
57
57
  //check category
58
58
  if (target && Object.prototype.hasOwnProperty.call(target, 'category') && target.category == null) {
@@ -96,10 +96,10 @@ async function beforeSaveAsync(event) {
96
96
  if (isMe === true && eventHasConsent === true) {
97
97
  if (Object.prototype.hasOwnProperty.call(target, 'studentConsent') === false) {
98
98
  const translateService = context.application.getStrategy(function TranslateService() {});
99
- throw new _common.DataError('E_STUDENT_CONSENT', translateService.translate('The application cannot be saved without consent about personal data.'), null, 'AccommodationRequestAction', 'studentConsent');
99
+ throw new _common.DataError('E_STUDENT_CONSENT', translateService.translate('The request cannot be submitted unless the student confirms that they have read and understood the Privacy and Personal Data Protection Policy.'), null, 'AccommodationRequestAction', 'studentConsent');
100
100
  } else if (eventHasConsent === true && target.studentConsent === false) {
101
101
  const translateService = context.application.getStrategy(function TranslateService() {});
102
- throw new _common.DataError('E_STUDENT_CONSENT', translateService.translate('The application cannot be saved without consent about personal data.'), null, 'AccommodationRequestAction', 'studentConsent');
102
+ throw new _common.DataError('E_STUDENT_CONSENT', translateService.translate('The request cannot be submitted unless the student confirms that they have read and understood the Privacy and Personal Data Protection Policy.'), null, 'AccommodationRequestAction', 'studentConsent');
103
103
  }
104
104
  }
105
105
 
@@ -1 +1 @@
1
- {"version":3,"file":"ValidateActionListener.js","names":["_common","require","_errors","_data","beforeSaveAsync","event","runAllRules","user","model","context","target","convert","studentId","student","action","eventHasConsent","Object","prototype","hasOwnProperty","call","actionID","id","where","equal","select","getItem","DataError","isMe","is","isActive","HttpForbiddenError","accommodationRequestEvent","silent","value","state","translateService","application","getStrategy","TranslateService","translate","studentConsent","category","__","actionStatus","removeAllInformationExceptStatus","alternateName","previous","agent","militaryActive","applyRulesForPrerequisites","militarySchool","studentHouseResident","sameDegreeHolder","foreignScholarStudent","foreignStudentOrChildOfGreekExpatriate","applyRulesForCyprusStudentOrForeignStudentOrChildOfGreekExpatriate","studentReceivesUnemploymentBenefit","institutionOrClubLocationSameAsStudentPermanentResidence","studentSubmitsTaxReportInGreece","nullifyFamilyInformation","nullifyGuardianFinancialInformation","nullifySpouseFinancialInformation","nullifyStudentFinancialInformation","maritalStatus","noOfChildren","guardianType","institutionOrClubLocationSameAsGuardianPermanentResidence","guardianNoOfChildren","numberOfStudyingSiblings","nullifyPersonalInformation","studentAfm","studentDisabledPerson","studentOrphan","institutionOrClubLocationSameAsGuadianPermanentResidence","studentGuardianTotalIncome","studentGuardianAfm","studentGuardianReceivesUnemploymentBenefit","studentGuardianSubmitsTaxReportInGreece","studentSpouseTotalIncome","studentSpouseAfm","studentSpouseReceivesUnemploymentBenefit","studentTotalIncome","lessThan25yrs","allInformationSubmittedIsTrueConfirmation","afterSaveAsync","beforeRemoveAsync","afterRemoveAsync","beforeSave","callback","then","catch","err","afterSave","afterRemove","beforeRemove"],"sources":["../../src/listeners/ValidateActionListener.js"],"sourcesContent":["import {DataError} from \"@themost/common\";\nimport { HttpForbiddenError } from '@themost/common/errors';\nimport { DataObjectState, DataModel } from \"@themost/data\";\n// eslint-disable-next-line no-unused-vars\nasync function beforeSaveAsync(event) {\n\n let runAllRules = false;\n const user = event.model.context.user;\n const target = event.model.convert(event.target);\n const context = event.model.context;\n\n let studentId = target.student;\n let action;\n let eventHasConsent;\n\n if (!Object.prototype.hasOwnProperty.call(target,'student')) {\n const actionID = event.target || event.target.id;\n action = await context.model('AccommodationRequestAction')\n .where('id')\n .equal(actionID)\n .select('student','accommodationRequestEvent/hasConsent as hasConsent','studentConsent')\n .getItem();\n studentId = action.student;\n }\n if (!studentId) {\n throw new DataError('E_STUDENT', 'The student cannot be empty at this context.');\n }\n\n const student = event.model.context.model('Student').convert(studentId);\n \n const isMe = await student.is(':me');\n if (isMe) {\n const isActive = await student.is(':active');\n if (!isActive) {\n throw new HttpForbiddenError();\n }\n\n const accommodationRequestEvent = target.accommodationRequestEvent || target.accommodationRequestEvent.id;\n eventHasConsent = await context.model('AccommodationRequestEvent')\n .where('id')\n .equal(accommodationRequestEvent)\n .select('hasConsent')\n .silent()\n .value();\n }\n\n if (event.state === 2) {\n if (isMe === true) {\n //check studentConsent\n if (event.target && eventHasConsent === true && Object.prototype.hasOwnProperty.call(target, 'studentConsent') === false) {\n const translateService = context.application.getStrategy(function TranslateService() { });\n throw new DataError('E_STUDENT_CONSENT', translateService.translate('The application cannot be saved without consent about personal data.'), null, 'AccommodationRequestAction', 'studentConsent');\n } else if (event.target && eventHasConsent === true && Object.prototype.hasOwnProperty.call(target, 'studentConsent') === true && target.studentConsent === false) {\n const translateService = context.application.getStrategy(function TranslateService() { });\n throw new DataError('E_STUDENT_CONSENT', translateService.translate('The application cannot be saved without consent about personal data.'), null, 'AccommodationRequestAction', 'studentConsent');\n }\n //check category\n if (target && (Object.prototype.hasOwnProperty.call(target, 'category') && (target.category == null))) {\n throw new HttpForbiddenError(\n context.__(\n 'The accommodation request creation failed because no request category has been set.'\n )\n );\n }\n\n }\n\n //UPDATE\n //Load current status\n const actionStatus = await event.model.where('id').equal(event.target.id).select('actionStatus/alternateName').value();\n \n //Action is not submitted yet. Run again all rules\n if (actionStatus === 'PotentialActionStatus') {\n runAllRules = true;\n }\n else if (actionStatus === 'ActiveActionStatus' || actionStatus === 'CompletedActionStatus'){\n //accommodation request already submitted. Do not allow to update any property \n removeAllInformationExceptStatus(event.target);\n }\n else if (actionStatus === 'CancelledActionStatus' && event.target.actionStatus && event.target.actionStatus.alternateName !== actionStatus && event.target.actionStatus.alternateName != 'ActiveActionStatus') {\n //accommodation request already cancelled. \n throw new DataError('E_VALUE', 'Cannot update cancelled action.', null, 'AccommodationRequestAction', 'actionStatus');\n }\n // allow agent to change request's status when target request status = 'ActiveActionStatus' example: to reconsider a cancelled request\n else if (actionStatus === 'CancelledActionStatus' && event.target.actionStatus && event.target.actionStatus.alternateName !== actionStatus && event.target.actionStatus.alternateName === 'ActiveActionStatus') {\n let model = event.target;\n // set loggedIn user as request's agent\n if (event.previous.agent != user.id) {\n model.agent = user.id;\n }\n }\n }\n\n else if (event.state === 1) {\n // check studentConsent\n if (isMe === true && eventHasConsent === true) {\n if (Object.prototype.hasOwnProperty.call(target, 'studentConsent') === false) {\n const translateService = context.application.getStrategy(function TranslateService() { });\n throw new DataError('E_STUDENT_CONSENT', translateService.translate('The application cannot be saved without consent about personal data.'), null, 'AccommodationRequestAction', 'studentConsent');\n } else if (eventHasConsent === true && target.studentConsent === false) {\n const translateService = context.application.getStrategy(function TranslateService() { });\n throw new DataError('E_STUDENT_CONSENT', translateService.translate('The application cannot be saved without consent about personal data.'), null, 'AccommodationRequestAction', 'studentConsent');\n }\n }\n\n if (target && (Object.prototype.hasOwnProperty.call(target, 'category') === false || (target.category == null))) {\n throw new HttpForbiddenError(\n context.__(\n 'The accommodation request creation failed because no request category has been set.'\n )\n );\n }\n\n runAllRules = true;\n }\n \n \n\n if (runAllRules){\n // set nullable fields to null when they don't need to have a value\n let model = event.target;\n \n if (Object.prototype.hasOwnProperty.call(model, 'militaryActive')) {\n if (model.militaryActive == true) {\n applyRulesForPrerequisites(model);\n return;\n } \n }\n\n if (Object.prototype.hasOwnProperty.call(model, 'militarySchool')) {\n if (model.militarySchool == true) {\n applyRulesForPrerequisites(model);\n return;\n } \n }\n \n if (Object.prototype.hasOwnProperty.call(model, 'studentHouseResident')) {\n if (model.studentHouseResident == true) {\n applyRulesForPrerequisites(model);\n return;\n } \n }\n \n if (Object.prototype.hasOwnProperty.call(model, 'sameDegreeHolder')) {\n if (model.sameDegreeHolder == true) {\n applyRulesForPrerequisites(model);\n return;\n } \n }\n\n if (Object.prototype.hasOwnProperty.call(model, 'foreignScholarStudent')) {\n if (model.foreignScholarStudent == true) {\n applyRulesForPrerequisites(model);\n return;\n } \n }\n\n\n if (Object.prototype.hasOwnProperty.call(model, 'foreignStudentOrChildOfGreekExpatriate')) {\n if (model.foreignStudentOrChildOfGreekExpatriate == true) { \n applyRulesForCyprusStudentOrForeignStudentOrChildOfGreekExpatriate(model);\n return;\n } \n }\n\n if (Object.prototype.hasOwnProperty.call(model, 'studentReceivesUnemploymentBenefit')) {\n if (model.studentReceivesUnemploymentBenefit == true){\n model.institutionOrClubLocationSameAsStudentPermanentResidence = null;\n model.studentSubmitsTaxReportInGreece = null;\n nullifyFamilyInformation(model);\n nullifyGuardianFinancialInformation(model);\n nullifySpouseFinancialInformation(model);\n nullifyStudentFinancialInformation(model);\n return;\n }\n }\n\n if (Object.prototype.hasOwnProperty.call(model, 'maritalStatus')) {\n if (model.maritalStatus && model.maritalStatus.alternateName == 'single') {\n model.noOfChildren = null;\n nullifySpouseFinancialInformation(model);\n if (model.guardianType.alternateName == 'nobody') {\n model.institutionOrClubLocationSameAsGuardianPermanentResidence = null;\n model.guardianNoOfChildren = null;\n model.numberOfStudyingSiblings = null;\n nullifyGuardianFinancialInformation(model);\n }\n }\n else {\n model.guardianType = null;\n model.institutionOrClubLocationSameAsGuardianPermanentResidence = null;\n model.guardianNoOfChildren = null;\n model.numberOfStudyingSiblings = null;\n nullifyGuardianFinancialInformation(model);\n if (model.maritalStatus && model.maritalStatus.alternateName != 'married') {\n nullifySpouseFinancialInformation(model);\n }\n }\n }\n }\n \n\n} \n\nfunction applyRulesForPrerequisites(model) {\n //nullify all other properties except foreignScholarStudent, inscriptionModeTag, lessThan25yrs and allInformationSubmittedIsTrueConfirmation\n nullifyPersonalInformation(model);\n nullifyFamilyInformation(model);\n nullifyGuardianFinancialInformation(model); \n nullifySpouseFinancialInformation(model);\n nullifyStudentFinancialInformation(model); \n}\n\nfunction applyRulesForCyprusStudentOrForeignStudentOrChildOfGreekExpatriate(model) {\n model.studentAfm = null;\n}\n\nfunction nullifyPersonalInformation(model){\n model.foreignStudentOrChildOfGreekExpatriate = null;\n model.studentDisabledPerson = null;\n model.studentOrphan = null;\n model.studentReceivesUnemploymentBenefit = null;\n model.studentSubmitsTaxReportInGreece = null;\n model.institutionOrClubLocationSameAsStudentPermanentResidence = null;\n}\n\nfunction nullifyFamilyInformation(model){\n model.noOfChildren = null;\n model.maritalStatus = null;\n model.numberOfStudyingSiblings = null;\n model.guardianNoOfChildren = null;\n model.guardianType = null;\n model.institutionOrClubLocationSameAsGuadianPermanentResidence = null;\n}\n\nfunction nullifyGuardianFinancialInformation(model){\n model.studentGuardianTotalIncome = null;\n model.studentGuardianAfm = null;\n model.studentGuardianReceivesUnemploymentBenefit = null;\n model.studentGuardianSubmitsTaxReportInGreece = null;\n}\n\nfunction nullifySpouseFinancialInformation(model){\n model.studentSpouseTotalIncome = null;\n model.studentSpouseAfm = null;\n model.studentSpouseReceivesUnemploymentBenefit = null;\n}\n\nfunction nullifyStudentFinancialInformation(model){\n model.studentTotalIncome = null;\n model.studentAfm = null;\n}\n\nfunction removeAllInformationExceptStatus(model){\n delete model.militaryActive;\n delete model.militarySchool;\n delete model.studentHouseResident;\n delete model.sameDegreeHolder;\n delete model.foreignScholarStudent;\n delete model.lessThan25yrs;\n delete model.institutionOrClubLocationSameAsStudentPermanentResidence;\n delete model.studentDisabledPerson;\n delete model.studentOrphan;\n delete model.numberOfStudyingSiblings ;\n delete model.maritalStatus;\n delete model.noOfChildren;\n delete model.guardianType;\n delete model.institutionOrClubLocationSameAsGuadianPermanentResidence;\n delete model.guardianNoOfChildren;\n delete model.studentReceivesUnemploymentBenefit;\n delete model.studentSubmitsTaxReportInGreece;\n delete model.studentGuardianSubmitsTaxReportInGreece;\n delete model.studentAfm;\n delete model.studentTotalIncome;\n delete model.studentSpouseReceivesUnemploymentBenefit;\n delete model.studentSpouseAfm;\n delete model.studentSpouseTotalIncome;\n delete model.studentGuardianReceivesUnemploymentBenefit ;\n delete model.foreignStudentOrChildOfGreekExpatriate;\n delete model.studentGuardianAfm;\n delete model.studentGuardianTotalIncome;\n delete model.allInformationSubmittedIsTrueConfirmation;\n}\n\nasync function afterSaveAsync(event) {\n // on insert\n\n}\n\nasync function beforeRemoveAsync(event) {\n \n}\n\nasync function afterRemoveAsync(event) {\n const context = event.model.context;\n // try to find if a preference exists for that event\n\n}\n\n/**\n * @param {DataEventArgs} event\n * @param {Function} callback\n */\nexport function beforeSave(event, callback) {\n return beforeSaveAsync(event).then(() => {\n return callback();\n }).catch((err) => {\n return callback(err);\n });\n}\n\n/**\n * @param {DataEventArgs} event\n * @param {Function} callback\n */\nexport function afterSave(event, callback) {\n return afterSaveAsync(event).then(() => {\n return callback();\n }).catch((err) => {\n return callback(err);\n });\n}\n\n/**\n * @param {DataEventArgs} event\n * @param {Function} callback\n */\nexport function afterRemove(event, callback) {\n return afterRemoveAsync(event).then(() => {\n return callback();\n }).catch((err) => {\n return callback(err);\n });\n}\n\n\n/**\n * @param {DataEventArgs} event\n * @param {Function} callback\n */\nexport function beforeRemove(event, callback) {\n return beforeRemoveAsync(event).then(() => {\n return callback();\n }).catch((err) => {\n return callback(err);\n });\n}\n"],"mappings":"+MAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA;AACA,eAAeG,eAAeA,CAACC,KAAK,EAAE;;EAElC,IAAIC,WAAW,GAAG,KAAK;EACvB,MAAMC,IAAI,GAAGF,KAAK,CAACG,KAAK,CAACC,OAAO,CAACF,IAAI;EACrC,MAAMG,MAAM,GAAGL,KAAK,CAACG,KAAK,CAACG,OAAO,CAACN,KAAK,CAACK,MAAM,CAAC;EAChD,MAAMD,OAAO,GAAGJ,KAAK,CAACG,KAAK,CAACC,OAAO;;EAEnC,IAAIG,SAAS,GAAGF,MAAM,CAACG,OAAO;EAC9B,IAAIC,MAAM;EACV,IAAIC,eAAe;;EAEnB,IAAI,CAACC,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACT,MAAM,EAAC,SAAS,CAAC,EAAE;IACzD,MAAMU,QAAQ,GAAGf,KAAK,CAACK,MAAM,IAAIL,KAAK,CAACK,MAAM,CAACW,EAAE;IAChDP,MAAM,GAAG,MAAML,OAAO,CAACD,KAAK,CAAC,4BAA4B,CAAC;IACrDc,KAAK,CAAC,IAAI,CAAC;IACXC,KAAK,CAACH,QAAQ,CAAC;IACfI,MAAM,CAAC,SAAS,EAAC,oDAAoD,EAAC,gBAAgB,CAAC;IACvFC,OAAO,EAAE;IACdb,SAAS,GAAGE,MAAM,CAACD,OAAO;EAC9B;EACA,IAAI,CAACD,SAAS,EAAE;IACZ,MAAM,IAAIc,iBAAS,CAAC,WAAW,EAAE,8CAA8C,CAAC;EACpF;;EAEA,MAAMb,OAAO,GAAGR,KAAK,CAACG,KAAK,CAACC,OAAO,CAACD,KAAK,CAAC,SAAS,CAAC,CAACG,OAAO,CAACC,SAAS,CAAC;;EAEvE,MAAMe,IAAI,GAAG,MAAMd,OAAO,CAACe,EAAE,CAAC,KAAK,CAAC;EACpC,IAAID,IAAI,EAAE;IACN,MAAME,QAAQ,GAAG,MAAMhB,OAAO,CAACe,EAAE,CAAC,SAAS,CAAC;IAC5C,IAAI,CAACC,QAAQ,EAAE;MACX,MAAM,IAAIC,0BAAkB,EAAE;IAClC;;IAEA,MAAMC,yBAAyB,GAAGrB,MAAM,CAACqB,yBAAyB,IAAIrB,MAAM,CAACqB,yBAAyB,CAACV,EAAE;IACzGN,eAAe,GAAG,MAAMN,OAAO,CAACD,KAAK,CAAC,2BAA2B,CAAC;IACjEc,KAAK,CAAC,IAAI,CAAC;IACXC,KAAK,CAACQ,yBAAyB,CAAC;IAChCP,MAAM,CAAC,YAAY,CAAC;IACpBQ,MAAM,EAAE;IACRC,KAAK,EAAE;EACZ;;EAEA,IAAI5B,KAAK,CAAC6B,KAAK,KAAK,CAAC,EAAE;IACnB,IAAIP,IAAI,KAAK,IAAI,EAAE;MACf;MACA,IAAItB,KAAK,CAACK,MAAM,IAAIK,eAAe,KAAK,IAAI,IAAIC,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACT,MAAM,EAAE,gBAAgB,CAAC,KAAK,KAAK,EAAE;QACtH,MAAMyB,gBAAgB,GAAG1B,OAAO,CAAC2B,WAAW,CAACC,WAAW,CAAC,SAASC,gBAAgBA,CAAA,EAAG,CAAE,CAAC,CAAC;QACzF,MAAM,IAAIZ,iBAAS,CAAC,mBAAmB,EAAES,gBAAgB,CAACI,SAAS,CAAC,sEAAsE,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,gBAAgB,CAAC;MACtM,CAAC,MAAM,IAAIlC,KAAK,CAACK,MAAM,IAAIK,eAAe,KAAK,IAAI,IAAIC,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACT,MAAM,EAAE,gBAAgB,CAAC,KAAK,IAAI,IAAIA,MAAM,CAAC8B,cAAc,KAAK,KAAK,EAAE;QAC/J,MAAML,gBAAgB,GAAG1B,OAAO,CAAC2B,WAAW,CAACC,WAAW,CAAC,SAASC,gBAAgBA,CAAA,EAAG,CAAE,CAAC,CAAC;QACzF,MAAM,IAAIZ,iBAAS,CAAC,mBAAmB,EAAES,gBAAgB,CAACI,SAAS,CAAC,sEAAsE,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,gBAAgB,CAAC;MACtM;MACA;MACA,IAAI7B,MAAM,IAAKM,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACT,MAAM,EAAE,UAAU,CAAC,IAAKA,MAAM,CAAC+B,QAAQ,IAAI,IAAM,EAAE;QACnG,MAAM,IAAIX,0BAAkB;QACxBrB,OAAO,CAACiC,EAAE;QACN,qFAAqF,CACxF,CACJ;;;MACL;;IAEJ;;IAEA;IACA;IACA,MAAMC,YAAY,GAAG,MAAMtC,KAAK,CAACG,KAAK,CAACc,KAAK,CAAC,IAAI,CAAC,CAACC,KAAK,CAAClB,KAAK,CAACK,MAAM,CAACW,EAAE,CAAC,CAACG,MAAM,CAAC,4BAA4B,CAAC,CAACS,KAAK,EAAE;;IAEtH;IACA,IAAIU,YAAY,KAAK,uBAAuB,EAAE;MAC1CrC,WAAW,GAAG,IAAI;IACtB,CAAC;IACI,IAAIqC,YAAY,KAAK,oBAAoB,IAAIA,YAAY,KAAK,uBAAuB,EAAC;MACvF;MACAC,gCAAgC,CAACvC,KAAK,CAACK,MAAM,CAAC;IAClD,CAAC;IACI,IAAIiC,YAAY,KAAK,uBAAuB,IAAItC,KAAK,CAACK,MAAM,CAACiC,YAAY,IAAItC,KAAK,CAACK,MAAM,CAACiC,YAAY,CAACE,aAAa,KAAKF,YAAY,IAAItC,KAAK,CAACK,MAAM,CAACiC,YAAY,CAACE,aAAa,IAAI,oBAAoB,EAAE;MAC3M;MACA,MAAM,IAAInB,iBAAS,CAAC,SAAS,EAAE,iCAAiC,EAAE,IAAI,EAAE,4BAA4B,EAAE,cAAc,CAAC;IACzH;IACA;IAAA,KACK,IAAIiB,YAAY,KAAK,uBAAuB,IAAItC,KAAK,CAACK,MAAM,CAACiC,YAAY,IAAItC,KAAK,CAACK,MAAM,CAACiC,YAAY,CAACE,aAAa,KAAKF,YAAY,IAAItC,KAAK,CAACK,MAAM,CAACiC,YAAY,CAACE,aAAa,KAAK,oBAAoB,EAAE;MAC5M,IAAIrC,KAAK,GAAGH,KAAK,CAACK,MAAM;MACxB;MACA,IAAIL,KAAK,CAACyC,QAAQ,CAACC,KAAK,IAAIxC,IAAI,CAACc,EAAE,EAAE;QACpCb,KAAK,CAACuC,KAAK,GAAGxC,IAAI,CAACc,EAAE;MACtB;IACH;EACL,CAAC;;EAEK,IAAIhB,KAAK,CAAC6B,KAAK,KAAK,CAAC,EAAE;IACzB;IACA,IAAIP,IAAI,KAAK,IAAI,IAAIZ,eAAe,KAAK,IAAI,EAAE;MAC3C,IAAIC,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACT,MAAM,EAAE,gBAAgB,CAAC,KAAK,KAAK,EAAE;QAC1E,MAAMyB,gBAAgB,GAAG1B,OAAO,CAAC2B,WAAW,CAACC,WAAW,CAAC,SAASC,gBAAgBA,CAAA,EAAG,CAAE,CAAC,CAAC;QACzF,MAAM,IAAIZ,iBAAS,CAAC,mBAAmB,EAAES,gBAAgB,CAACI,SAAS,CAAC,sEAAsE,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,gBAAgB,CAAC;MACtM,CAAC,MAAM,IAAIxB,eAAe,KAAK,IAAI,IAAIL,MAAM,CAAC8B,cAAc,KAAK,KAAK,EAAE;QACpE,MAAML,gBAAgB,GAAG1B,OAAO,CAAC2B,WAAW,CAACC,WAAW,CAAC,SAASC,gBAAgBA,CAAA,EAAG,CAAE,CAAC,CAAC;QACzF,MAAM,IAAIZ,iBAAS,CAAC,mBAAmB,EAAES,gBAAgB,CAACI,SAAS,CAAC,sEAAsE,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,gBAAgB,CAAC;MACtM;IACJ;;IAEA,IAAI7B,MAAM,KAAKM,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACT,MAAM,EAAE,UAAU,CAAC,KAAK,KAAK,IAAKA,MAAM,CAAC+B,QAAQ,IAAI,IAAK,CAAC,EAAE;MAC7G,MAAM,IAAIX,0BAAkB;MACxBrB,OAAO,CAACiC,EAAE;MACN,qFAAqF,CACxF,CACJ;;;IACL;;IAEApC,WAAW,GAAG,IAAI;EACtB;;;;EAIA,IAAIA,WAAW,EAAC;IACZ;IACA,IAAIE,KAAK,GAAGH,KAAK,CAACK,MAAM;;IAExB,IAAIM,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACX,KAAK,EAAE,gBAAgB,CAAC,EAAE;MAC/D,IAAIA,KAAK,CAACwC,cAAc,IAAI,IAAI,EAAE;QAC9BC,0BAA0B,CAACzC,KAAK,CAAC;QACjC;MACJ;IACJ;;IAEA,IAAIQ,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACX,KAAK,EAAE,gBAAgB,CAAC,EAAE;MAC/D,IAAIA,KAAK,CAAC0C,cAAc,IAAI,IAAI,EAAE;QAC9BD,0BAA0B,CAACzC,KAAK,CAAC;QACjC;MACJ;IACJ;;IAEA,IAAIQ,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACX,KAAK,EAAE,sBAAsB,CAAC,EAAE;MACrE,IAAIA,KAAK,CAAC2C,oBAAoB,IAAI,IAAI,EAAE;QACpCF,0BAA0B,CAACzC,KAAK,CAAC;QACjC;MACJ;IACJ;;IAEA,IAAIQ,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACX,KAAK,EAAE,kBAAkB,CAAC,EAAE;MACjE,IAAIA,KAAK,CAAC4C,gBAAgB,IAAI,IAAI,EAAE;QAChCH,0BAA0B,CAACzC,KAAK,CAAC;QACjC;MACJ;IACJ;;IAEA,IAAIQ,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACX,KAAK,EAAE,uBAAuB,CAAC,EAAE;MACtE,IAAIA,KAAK,CAAC6C,qBAAqB,IAAI,IAAI,EAAE;QACrCJ,0BAA0B,CAACzC,KAAK,CAAC;QACjC;MACJ;IACJ;;;IAGA,IAAIQ,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACX,KAAK,EAAE,wCAAwC,CAAC,EAAE;MACvF,IAAIA,KAAK,CAAC8C,sCAAsC,IAAI,IAAI,EAAE;QACtDC,kEAAkE,CAAC/C,KAAK,CAAC;QACzE;MACJ;IACJ;;IAEA,IAAIQ,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACX,KAAK,EAAE,oCAAoC,CAAC,EAAE;MACnF,IAAIA,KAAK,CAACgD,kCAAkC,IAAI,IAAI,EAAC;QACjDhD,KAAK,CAACiD,wDAAwD,GAAG,IAAI;QACrEjD,KAAK,CAACkD,+BAA+B,GAAG,IAAI;QAC5CC,wBAAwB,CAACnD,KAAK,CAAC;QAC/BoD,mCAAmC,CAACpD,KAAK,CAAC;QAC1CqD,iCAAiC,CAACrD,KAAK,CAAC;QACxCsD,kCAAkC,CAACtD,KAAK,CAAC;QACzC;MACJ;IACJ;;IAEA,IAAIQ,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACX,KAAK,EAAE,eAAe,CAAC,EAAE;MAC9D,IAAIA,KAAK,CAACuD,aAAa,IAAIvD,KAAK,CAACuD,aAAa,CAAClB,aAAa,IAAI,QAAQ,EAAE;QACtErC,KAAK,CAACwD,YAAY,GAAG,IAAI;QACzBH,iCAAiC,CAACrD,KAAK,CAAC;QACxC,IAAIA,KAAK,CAACyD,YAAY,CAACpB,aAAa,IAAI,QAAQ,EAAE;UAC9CrC,KAAK,CAAC0D,yDAAyD,GAAG,IAAI;UACtE1D,KAAK,CAAC2D,oBAAoB,GAAG,IAAI;UACjC3D,KAAK,CAAC4D,wBAAwB,GAAG,IAAI;UACrCR,mCAAmC,CAACpD,KAAK,CAAC;QAC9C;MACJ,CAAC;MACI;QACDA,KAAK,CAACyD,YAAY,GAAG,IAAI;QACzBzD,KAAK,CAAC0D,yDAAyD,GAAG,IAAI;QACtE1D,KAAK,CAAC2D,oBAAoB,GAAG,IAAI;QACjC3D,KAAK,CAAC4D,wBAAwB,GAAG,IAAI;QACrCR,mCAAmC,CAACpD,KAAK,CAAC;QAC1C,IAAIA,KAAK,CAACuD,aAAa,IAAIvD,KAAK,CAACuD,aAAa,CAAClB,aAAa,IAAI,SAAS,EAAE;UACvEgB,iCAAiC,CAACrD,KAAK,CAAC;QAC5C;MACJ;IACJ;EACJ;;;AAGJ;;AAEA,SAASyC,0BAA0BA,CAACzC,KAAK,EAAE;EACvC;EACA6D,0BAA0B,CAAC7D,KAAK,CAAC;EACjCmD,wBAAwB,CAACnD,KAAK,CAAC;EAC/BoD,mCAAmC,CAACpD,KAAK,CAAC;EAC1CqD,iCAAiC,CAACrD,KAAK,CAAC;EACxCsD,kCAAkC,CAACtD,KAAK,CAAC;AAC7C;;AAEA,SAAS+C,kEAAkEA,CAAC/C,KAAK,EAAE;EAC/EA,KAAK,CAAC8D,UAAU,GAAG,IAAI;AAC3B;;AAEA,SAASD,0BAA0BA,CAAC7D,KAAK,EAAC;EACtCA,KAAK,CAAC8C,sCAAsC,GAAG,IAAI;EACnD9C,KAAK,CAAC+D,qBAAqB,GAAG,IAAI;EAClC/D,KAAK,CAACgE,aAAa,GAAG,IAAI;EAC1BhE,KAAK,CAACgD,kCAAkC,GAAG,IAAI;EAC/ChD,KAAK,CAACkD,+BAA+B,GAAG,IAAI;EAC5ClD,KAAK,CAACiD,wDAAwD,GAAG,IAAI;AACzE;;AAEA,SAASE,wBAAwBA,CAACnD,KAAK,EAAC;EACpCA,KAAK,CAACwD,YAAY,GAAG,IAAI;EACzBxD,KAAK,CAACuD,aAAa,GAAG,IAAI;EAC1BvD,KAAK,CAAC4D,wBAAwB,GAAG,IAAI;EACrC5D,KAAK,CAAC2D,oBAAoB,GAAG,IAAI;EACjC3D,KAAK,CAACyD,YAAY,GAAG,IAAI;EACzBzD,KAAK,CAACiE,wDAAwD,GAAG,IAAI;AACzE;;AAEA,SAASb,mCAAmCA,CAACpD,KAAK,EAAC;EAC/CA,KAAK,CAACkE,0BAA0B,GAAG,IAAI;EACvClE,KAAK,CAACmE,kBAAkB,GAAG,IAAI;EAC/BnE,KAAK,CAACoE,0CAA0C,GAAG,IAAI;EACvDpE,KAAK,CAACqE,uCAAuC,GAAG,IAAI;AACxD;;AAEA,SAAShB,iCAAiCA,CAACrD,KAAK,EAAC;EAC7CA,KAAK,CAACsE,wBAAwB,GAAG,IAAI;EACrCtE,KAAK,CAACuE,gBAAgB,GAAG,IAAI;EAC7BvE,KAAK,CAACwE,wCAAwC,GAAG,IAAI;AACzD;;AAEA,SAASlB,kCAAkCA,CAACtD,KAAK,EAAC;EAC9CA,KAAK,CAACyE,kBAAkB,GAAG,IAAI;EAC/BzE,KAAK,CAAC8D,UAAU,GAAG,IAAI;AAC3B;;AAEA,SAAS1B,gCAAgCA,CAACpC,KAAK,EAAC;EAC5C,OAAOA,KAAK,CAACwC,cAAc;EAC3B,OAAOxC,KAAK,CAAC0C,cAAc;EAC3B,OAAO1C,KAAK,CAAC2C,oBAAoB;EACjC,OAAO3C,KAAK,CAAC4C,gBAAgB;EAC7B,OAAO5C,KAAK,CAAC6C,qBAAqB;EAClC,OAAO7C,KAAK,CAAC0E,aAAa;EAC1B,OAAO1E,KAAK,CAACiD,wDAAwD;EACrE,OAAOjD,KAAK,CAAC+D,qBAAqB;EAClC,OAAO/D,KAAK,CAACgE,aAAa;EAC1B,OAAOhE,KAAK,CAAC4D,wBAAwB;EACrC,OAAO5D,KAAK,CAACuD,aAAa;EAC1B,OAAOvD,KAAK,CAACwD,YAAY;EACzB,OAAOxD,KAAK,CAACyD,YAAY;EACzB,OAAOzD,KAAK,CAACiE,wDAAwD;EACrE,OAAOjE,KAAK,CAAC2D,oBAAoB;EACjC,OAAO3D,KAAK,CAACgD,kCAAkC;EAC/C,OAAOhD,KAAK,CAACkD,+BAA+B;EAC5C,OAAOlD,KAAK,CAACqE,uCAAuC;EACpD,OAAOrE,KAAK,CAAC8D,UAAU;EACvB,OAAO9D,KAAK,CAACyE,kBAAkB;EAC/B,OAAOzE,KAAK,CAACwE,wCAAwC;EACrD,OAAOxE,KAAK,CAACuE,gBAAgB;EAC7B,OAAOvE,KAAK,CAACsE,wBAAwB;EACrC,OAAOtE,KAAK,CAACoE,0CAA0C;EACvD,OAAOpE,KAAK,CAAC8C,sCAAsC;EACnD,OAAO9C,KAAK,CAACmE,kBAAkB;EAC/B,OAAOnE,KAAK,CAACkE,0BAA0B;EACvC,OAAOlE,KAAK,CAAC2E,yCAAyC;AAC1D;;AAEA,eAAeC,cAAcA,CAAC/E,KAAK,EAAE;;;EACjC;AAAA;AAIJ,eAAegF,iBAAiBA,CAAChF,KAAK,EAAE;;AAExC;;AAEA,eAAeiF,gBAAgBA,CAACjF,KAAK,EAAE;EACnC,MAAMI,OAAO,GAAGJ,KAAK,CAACG,KAAK,CAACC,OAAO;EACnC;;AAEJ;;AAEA;AACA;AACA;AACA;AACO,SAAS8E,UAAUA,CAAClF,KAAK,EAAEmF,QAAQ,EAAE;EACxC,OAAOpF,eAAe,CAACC,KAAK,CAAC,CAACoF,IAAI,CAAC,MAAM;IACrC,OAAOD,QAAQ,EAAE;EACrB,CAAC,CAAC,CAACE,KAAK,CAAC,CAACC,GAAG,KAAK;IACd,OAAOH,QAAQ,CAACG,GAAG,CAAC;EACxB,CAAC,CAAC;AACN;;AAEA;AACA;AACA;AACA;AACO,SAASC,SAASA,CAACvF,KAAK,EAAEmF,QAAQ,EAAE;EACvC,OAAOJ,cAAc,CAAC/E,KAAK,CAAC,CAACoF,IAAI,CAAC,MAAM;IACpC,OAAOD,QAAQ,EAAE;EACrB,CAAC,CAAC,CAACE,KAAK,CAAC,CAACC,GAAG,KAAK;IACd,OAAOH,QAAQ,CAACG,GAAG,CAAC;EACxB,CAAC,CAAC;AACN;;AAEA;AACA;AACA;AACA;AACO,SAASE,WAAWA,CAACxF,KAAK,EAAEmF,QAAQ,EAAE;EACzC,OAAOF,gBAAgB,CAACjF,KAAK,CAAC,CAACoF,IAAI,CAAC,MAAM;IACtC,OAAOD,QAAQ,EAAE;EACrB,CAAC,CAAC,CAACE,KAAK,CAAC,CAACC,GAAG,KAAK;IACd,OAAOH,QAAQ,CAACG,GAAG,CAAC;EACxB,CAAC,CAAC;AACN;;;AAGA;AACA;AACA;AACA;AACO,SAASG,YAAYA,CAACzF,KAAK,EAAEmF,QAAQ,EAAE;EAC1C,OAAOH,iBAAiB,CAAChF,KAAK,CAAC,CAACoF,IAAI,CAAC,MAAM;IACvC,OAAOD,QAAQ,EAAE;EACrB,CAAC,CAAC,CAACE,KAAK,CAAC,CAACC,GAAG,KAAK;IACd,OAAOH,QAAQ,CAACG,GAAG,CAAC;EACxB,CAAC,CAAC;AACN"}
1
+ {"version":3,"file":"ValidateActionListener.js","names":["_common","require","_errors","_data","beforeSaveAsync","event","runAllRules","user","model","context","target","convert","studentId","student","action","eventHasConsent","Object","prototype","hasOwnProperty","call","actionID","id","where","equal","select","getItem","DataError","isMe","is","isActive","HttpForbiddenError","accommodationRequestEvent","silent","value","state","translateService","application","getStrategy","TranslateService","translate","studentConsent","category","__","actionStatus","removeAllInformationExceptStatus","alternateName","previous","agent","militaryActive","applyRulesForPrerequisites","militarySchool","studentHouseResident","sameDegreeHolder","foreignScholarStudent","foreignStudentOrChildOfGreekExpatriate","applyRulesForCyprusStudentOrForeignStudentOrChildOfGreekExpatriate","studentReceivesUnemploymentBenefit","institutionOrClubLocationSameAsStudentPermanentResidence","studentSubmitsTaxReportInGreece","nullifyFamilyInformation","nullifyGuardianFinancialInformation","nullifySpouseFinancialInformation","nullifyStudentFinancialInformation","maritalStatus","noOfChildren","guardianType","institutionOrClubLocationSameAsGuardianPermanentResidence","guardianNoOfChildren","numberOfStudyingSiblings","nullifyPersonalInformation","studentAfm","studentDisabledPerson","studentOrphan","institutionOrClubLocationSameAsGuadianPermanentResidence","studentGuardianTotalIncome","studentGuardianAfm","studentGuardianReceivesUnemploymentBenefit","studentGuardianSubmitsTaxReportInGreece","studentSpouseTotalIncome","studentSpouseAfm","studentSpouseReceivesUnemploymentBenefit","studentTotalIncome","lessThan25yrs","allInformationSubmittedIsTrueConfirmation","afterSaveAsync","beforeRemoveAsync","afterRemoveAsync","beforeSave","callback","then","catch","err","afterSave","afterRemove","beforeRemove"],"sources":["../../src/listeners/ValidateActionListener.js"],"sourcesContent":["import {DataError} from \"@themost/common\";\nimport { HttpForbiddenError } from '@themost/common/errors';\nimport { DataObjectState, DataModel } from \"@themost/data\";\n// eslint-disable-next-line no-unused-vars\nasync function beforeSaveAsync(event) {\n\n let runAllRules = false;\n const user = event.model.context.user;\n const target = event.model.convert(event.target);\n const context = event.model.context;\n\n let studentId = target.student;\n let action;\n let eventHasConsent;\n\n if (!Object.prototype.hasOwnProperty.call(target,'student')) {\n const actionID = event.target || event.target.id;\n action = await context.model('AccommodationRequestAction')\n .where('id')\n .equal(actionID)\n .select('student','accommodationRequestEvent/hasConsent as hasConsent','studentConsent')\n .getItem();\n studentId = action.student;\n }\n if (!studentId) {\n throw new DataError('E_STUDENT', 'The student cannot be empty at this context.');\n }\n\n const student = event.model.context.model('Student').convert(studentId);\n \n const isMe = await student.is(':me');\n if (isMe) {\n const isActive = await student.is(':active');\n if (!isActive) {\n throw new HttpForbiddenError();\n }\n\n const accommodationRequestEvent = target.accommodationRequestEvent || target.accommodationRequestEvent.id;\n eventHasConsent = await context.model('AccommodationRequestEvent')\n .where('id')\n .equal(accommodationRequestEvent)\n .select('hasConsent')\n .silent()\n .value();\n }\n\n if (event.state === 2) {\n if (isMe === true) {\n //check studentConsent\n if (event.target && eventHasConsent === true && Object.prototype.hasOwnProperty.call(target, 'studentConsent') === false) {\n const translateService = context.application.getStrategy(function TranslateService() { });\n throw new DataError('E_STUDENT_CONSENT', translateService.translate('The request cannot be submitted unless the student confirms that they have read and understood the Privacy and Personal Data Protection Policy.'), null, 'AccommodationRequestAction', 'studentConsent');\n } else if (event.target && eventHasConsent === true && Object.prototype.hasOwnProperty.call(target, 'studentConsent') === true && target.studentConsent === false) {\n const translateService = context.application.getStrategy(function TranslateService() { });\n throw new DataError('E_STUDENT_CONSENT', translateService.translate('The request cannot be submitted unless the student confirms that they have read and understood the Privacy and Personal Data Protection Policy.'), null, 'AccommodationRequestAction', 'studentConsent');\n }\n //check category\n if (target && (Object.prototype.hasOwnProperty.call(target, 'category') && (target.category == null))) {\n throw new HttpForbiddenError(\n context.__(\n 'The accommodation request creation failed because no request category has been set.'\n )\n );\n }\n\n }\n\n //UPDATE\n //Load current status\n const actionStatus = await event.model.where('id').equal(event.target.id).select('actionStatus/alternateName').value();\n \n //Action is not submitted yet. Run again all rules\n if (actionStatus === 'PotentialActionStatus') {\n runAllRules = true;\n }\n else if (actionStatus === 'ActiveActionStatus' || actionStatus === 'CompletedActionStatus'){\n //accommodation request already submitted. Do not allow to update any property \n removeAllInformationExceptStatus(event.target);\n }\n else if (actionStatus === 'CancelledActionStatus' && event.target.actionStatus && event.target.actionStatus.alternateName !== actionStatus && event.target.actionStatus.alternateName != 'ActiveActionStatus') {\n //accommodation request already cancelled. \n throw new DataError('E_VALUE', 'Cannot update cancelled action.', null, 'AccommodationRequestAction', 'actionStatus');\n }\n // allow agent to change request's status when target request status = 'ActiveActionStatus' example: to reconsider a cancelled request\n else if (actionStatus === 'CancelledActionStatus' && event.target.actionStatus && event.target.actionStatus.alternateName !== actionStatus && event.target.actionStatus.alternateName === 'ActiveActionStatus') {\n let model = event.target;\n // set loggedIn user as request's agent\n if (event.previous.agent != user.id) {\n model.agent = user.id;\n }\n }\n }\n\n else if (event.state === 1) {\n // check studentConsent\n if (isMe === true && eventHasConsent === true) {\n if (Object.prototype.hasOwnProperty.call(target, 'studentConsent') === false) {\n const translateService = context.application.getStrategy(function TranslateService() { });\n throw new DataError('E_STUDENT_CONSENT', translateService.translate('The request cannot be submitted unless the student confirms that they have read and understood the Privacy and Personal Data Protection Policy.'), null, 'AccommodationRequestAction', 'studentConsent');\n } else if (eventHasConsent === true && target.studentConsent === false) {\n const translateService = context.application.getStrategy(function TranslateService() { });\n throw new DataError('E_STUDENT_CONSENT', translateService.translate('The request cannot be submitted unless the student confirms that they have read and understood the Privacy and Personal Data Protection Policy.'), null, 'AccommodationRequestAction', 'studentConsent');\n }\n }\n\n if (target && (Object.prototype.hasOwnProperty.call(target, 'category') === false || (target.category == null))) {\n throw new HttpForbiddenError(\n context.__(\n 'The accommodation request creation failed because no request category has been set.'\n )\n );\n }\n\n runAllRules = true;\n }\n \n \n\n if (runAllRules){\n // set nullable fields to null when they don't need to have a value\n let model = event.target;\n \n if (Object.prototype.hasOwnProperty.call(model, 'militaryActive')) {\n if (model.militaryActive == true) {\n applyRulesForPrerequisites(model);\n return;\n } \n }\n\n if (Object.prototype.hasOwnProperty.call(model, 'militarySchool')) {\n if (model.militarySchool == true) {\n applyRulesForPrerequisites(model);\n return;\n } \n }\n \n if (Object.prototype.hasOwnProperty.call(model, 'studentHouseResident')) {\n if (model.studentHouseResident == true) {\n applyRulesForPrerequisites(model);\n return;\n } \n }\n \n if (Object.prototype.hasOwnProperty.call(model, 'sameDegreeHolder')) {\n if (model.sameDegreeHolder == true) {\n applyRulesForPrerequisites(model);\n return;\n } \n }\n\n if (Object.prototype.hasOwnProperty.call(model, 'foreignScholarStudent')) {\n if (model.foreignScholarStudent == true) {\n applyRulesForPrerequisites(model);\n return;\n } \n }\n\n\n if (Object.prototype.hasOwnProperty.call(model, 'foreignStudentOrChildOfGreekExpatriate')) {\n if (model.foreignStudentOrChildOfGreekExpatriate == true) { \n applyRulesForCyprusStudentOrForeignStudentOrChildOfGreekExpatriate(model);\n return;\n } \n }\n\n if (Object.prototype.hasOwnProperty.call(model, 'studentReceivesUnemploymentBenefit')) {\n if (model.studentReceivesUnemploymentBenefit == true){\n model.institutionOrClubLocationSameAsStudentPermanentResidence = null;\n model.studentSubmitsTaxReportInGreece = null;\n nullifyFamilyInformation(model);\n nullifyGuardianFinancialInformation(model);\n nullifySpouseFinancialInformation(model);\n nullifyStudentFinancialInformation(model);\n return;\n }\n }\n\n if (Object.prototype.hasOwnProperty.call(model, 'maritalStatus')) {\n if (model.maritalStatus && model.maritalStatus.alternateName == 'single') {\n model.noOfChildren = null;\n nullifySpouseFinancialInformation(model);\n if (model.guardianType.alternateName == 'nobody') {\n model.institutionOrClubLocationSameAsGuardianPermanentResidence = null;\n model.guardianNoOfChildren = null;\n model.numberOfStudyingSiblings = null;\n nullifyGuardianFinancialInformation(model);\n }\n }\n else {\n model.guardianType = null;\n model.institutionOrClubLocationSameAsGuardianPermanentResidence = null;\n model.guardianNoOfChildren = null;\n model.numberOfStudyingSiblings = null;\n nullifyGuardianFinancialInformation(model);\n if (model.maritalStatus && model.maritalStatus.alternateName != 'married') {\n nullifySpouseFinancialInformation(model);\n }\n }\n }\n }\n \n\n} \n\nfunction applyRulesForPrerequisites(model) {\n //nullify all other properties except foreignScholarStudent, inscriptionModeTag, lessThan25yrs and allInformationSubmittedIsTrueConfirmation\n nullifyPersonalInformation(model);\n nullifyFamilyInformation(model);\n nullifyGuardianFinancialInformation(model); \n nullifySpouseFinancialInformation(model);\n nullifyStudentFinancialInformation(model); \n}\n\nfunction applyRulesForCyprusStudentOrForeignStudentOrChildOfGreekExpatriate(model) {\n model.studentAfm = null;\n}\n\nfunction nullifyPersonalInformation(model){\n model.foreignStudentOrChildOfGreekExpatriate = null;\n model.studentDisabledPerson = null;\n model.studentOrphan = null;\n model.studentReceivesUnemploymentBenefit = null;\n model.studentSubmitsTaxReportInGreece = null;\n model.institutionOrClubLocationSameAsStudentPermanentResidence = null;\n}\n\nfunction nullifyFamilyInformation(model){\n model.noOfChildren = null;\n model.maritalStatus = null;\n model.numberOfStudyingSiblings = null;\n model.guardianNoOfChildren = null;\n model.guardianType = null;\n model.institutionOrClubLocationSameAsGuadianPermanentResidence = null;\n}\n\nfunction nullifyGuardianFinancialInformation(model){\n model.studentGuardianTotalIncome = null;\n model.studentGuardianAfm = null;\n model.studentGuardianReceivesUnemploymentBenefit = null;\n model.studentGuardianSubmitsTaxReportInGreece = null;\n}\n\nfunction nullifySpouseFinancialInformation(model){\n model.studentSpouseTotalIncome = null;\n model.studentSpouseAfm = null;\n model.studentSpouseReceivesUnemploymentBenefit = null;\n}\n\nfunction nullifyStudentFinancialInformation(model){\n model.studentTotalIncome = null;\n model.studentAfm = null;\n}\n\nfunction removeAllInformationExceptStatus(model){\n delete model.militaryActive;\n delete model.militarySchool;\n delete model.studentHouseResident;\n delete model.sameDegreeHolder;\n delete model.foreignScholarStudent;\n delete model.lessThan25yrs;\n delete model.institutionOrClubLocationSameAsStudentPermanentResidence;\n delete model.studentDisabledPerson;\n delete model.studentOrphan;\n delete model.numberOfStudyingSiblings ;\n delete model.maritalStatus;\n delete model.noOfChildren;\n delete model.guardianType;\n delete model.institutionOrClubLocationSameAsGuadianPermanentResidence;\n delete model.guardianNoOfChildren;\n delete model.studentReceivesUnemploymentBenefit;\n delete model.studentSubmitsTaxReportInGreece;\n delete model.studentGuardianSubmitsTaxReportInGreece;\n delete model.studentAfm;\n delete model.studentTotalIncome;\n delete model.studentSpouseReceivesUnemploymentBenefit;\n delete model.studentSpouseAfm;\n delete model.studentSpouseTotalIncome;\n delete model.studentGuardianReceivesUnemploymentBenefit ;\n delete model.foreignStudentOrChildOfGreekExpatriate;\n delete model.studentGuardianAfm;\n delete model.studentGuardianTotalIncome;\n delete model.allInformationSubmittedIsTrueConfirmation;\n}\n\nasync function afterSaveAsync(event) {\n // on insert\n\n}\n\nasync function beforeRemoveAsync(event) {\n \n}\n\nasync function afterRemoveAsync(event) {\n const context = event.model.context;\n // try to find if a preference exists for that event\n\n}\n\n/**\n * @param {DataEventArgs} event\n * @param {Function} callback\n */\nexport function beforeSave(event, callback) {\n return beforeSaveAsync(event).then(() => {\n return callback();\n }).catch((err) => {\n return callback(err);\n });\n}\n\n/**\n * @param {DataEventArgs} event\n * @param {Function} callback\n */\nexport function afterSave(event, callback) {\n return afterSaveAsync(event).then(() => {\n return callback();\n }).catch((err) => {\n return callback(err);\n });\n}\n\n/**\n * @param {DataEventArgs} event\n * @param {Function} callback\n */\nexport function afterRemove(event, callback) {\n return afterRemoveAsync(event).then(() => {\n return callback();\n }).catch((err) => {\n return callback(err);\n });\n}\n\n\n/**\n * @param {DataEventArgs} event\n * @param {Function} callback\n */\nexport function beforeRemove(event, callback) {\n return beforeRemoveAsync(event).then(() => {\n return callback();\n }).catch((err) => {\n return callback(err);\n });\n}\n"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "The request cannot be submitted unless the student confirms that they have read and understood the Privacy and Personal Data Protection Policy.": "Η αίτηση δεν μπορεί να αποθηκευτεί χωρίς ο φοιτητής να δηλώσει ότι έχει λάβει γνώση της Πολιτικής Προστασίας της Ιδιωτικότητας και των Προσωπικών Δεδομένων."
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+
3
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@universis/accommodation",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "Universis api library template",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -8,7 +8,7 @@
8
8
  "sealed": false,
9
9
  "implements": "Place",
10
10
  "classPath": "./models/Accommodation",
11
- "version": "1.5",
11
+ "version": "1.6",
12
12
  "fields": [
13
13
  {
14
14
  "@id": "http://schema.org/identifier",
@@ -66,9 +66,49 @@
66
66
  "description": "The geo coordinates of the accommodation.",
67
67
  "type": "Json",
68
68
  "additionalType": "GeoCoordinates"
69
+ },
70
+ {
71
+ "name": "locales",
72
+ "type": "AccommodationLocale",
73
+ "mapping": {
74
+ "associationType": "association",
75
+ "cascade": "delete",
76
+ "parentModel": "Accommodation",
77
+ "parentField": "id",
78
+ "childModel": "AccommodationLocale",
79
+ "childField": "object"
80
+ }
81
+ },
82
+ {
83
+ "name": "locale",
84
+ "type": "AccommodationLocale",
85
+ "readonly": true,
86
+ "editable": false,
87
+ "many": true,
88
+ "expandable": true,
89
+ "multiplicity": "ZeroOrOne",
90
+ "mapping": {
91
+ "associationType": "association",
92
+ "cascade": "delete",
93
+ "parentModel": "Accommodation",
94
+ "parentField": "id",
95
+ "childModel": "AccommodationLocale",
96
+ "childField": "object",
97
+ "options": {
98
+ "$filter": "inLanguage eq lang()",
99
+ "$first": true
100
+ }
101
+ }
69
102
  }
70
103
  ],
71
- "eventListeners": [],
104
+ "eventListeners": [
105
+ {
106
+ "type": "@themost/data/previous-state-listener"
107
+ },
108
+ {
109
+ "type": "./listeners/data-localization"
110
+ }
111
+ ],
72
112
  "constraints": [
73
113
  {
74
114
  "type": "unique",
@@ -0,0 +1,86 @@
1
+ {
2
+ "$schema": "https://themost-framework.github.io/themost/models/2018/2/schema.json",
3
+ "@id": "https://universis.io/entities/AccommodationLocale",
4
+ "name": "AccommodationLocale",
5
+ "description": "Contains a collection of extra field required for accommodation.",
6
+ "title": "AccommodationLocale",
7
+ "abstract": false,
8
+ "contains": "Accommodation",
9
+ "hidden": true,
10
+ "sealed": false,
11
+ "version": "1.0",
12
+ "fields": [
13
+ {
14
+ "@id": "https://themost.io/schemas/id",
15
+ "name": "id",
16
+ "title": "ID",
17
+ "description": "The identifier of the item.",
18
+ "type": "Counter",
19
+ "primary": true,
20
+ "nullable": false
21
+ },
22
+ {
23
+ "@id": "https://themost.io/schemas/object",
24
+ "name": "object",
25
+ "title": "object",
26
+ "description": "The parent item.",
27
+ "type": "Accommodation"
28
+ },
29
+ {
30
+ "@id": "http://schema.org/inLanguage",
31
+ "name": "inLanguage",
32
+ "title": "inLanguage",
33
+ "description": "The language of this item.",
34
+ "type": "Text",
35
+ "size": 5
36
+ },
37
+ {
38
+ "name": "name",
39
+ "title": "Ονομασία",
40
+ "description": "Η ονομασία του αντικειμένου",
41
+ "type": "Text",
42
+ "nullable": true,
43
+ "size": 100
44
+ },
45
+ {
46
+ "name": "description",
47
+ "title": "Περιγραφή",
48
+ "description": "Περιγραφή του τύπου εργασίας",
49
+ "type": "Text",
50
+ "nullable": true,
51
+ "size": 80
52
+ },
53
+ {
54
+ "name": "displayCode",
55
+ "title": "Display code",
56
+ "description": "The display code of the place",
57
+ "type": "Text",
58
+ "size": 15
59
+ }
60
+ ],
61
+ "constraints": [
62
+ {
63
+ "type": "unique",
64
+ "fields": [
65
+ "object",
66
+ "inLanguage"
67
+ ]
68
+ }
69
+ ],
70
+ "privileges": [
71
+ {
72
+ "mask": 1,
73
+ "type": "global",
74
+ "account": "*"
75
+ },
76
+ {
77
+ "mask": 15,
78
+ "type": "global"
79
+ },
80
+ {
81
+ "mask": 15,
82
+ "type": "global",
83
+ "account": "Administrators"
84
+ }
85
+ ]
86
+ }
@@ -7,7 +7,7 @@
7
7
  "abstract": false,
8
8
  "sealed": false,
9
9
  "implements": "Accommodation",
10
- "version": "1.9.9",
10
+ "version": "2.0.1",
11
11
  "fields": [
12
12
  {
13
13
  "name": "bed",
@@ -15,7 +15,7 @@
15
15
  "size": 500
16
16
  },
17
17
  {
18
- "name": "floorLavel",
18
+ "name": "floor",
19
19
  "type": "Text",
20
20
  "size": 500
21
21
  },
@@ -128,9 +128,48 @@
128
128
  "name": "reasonOutOfService",
129
129
  "type": "Text",
130
130
  "size": 500
131
+ },
132
+ {
133
+ "name": "locales",
134
+ "type": "AccommodationRoomLocale",
135
+ "mapping": {
136
+ "associationType": "association",
137
+ "cascade": "delete",
138
+ "parentModel": "AccommodationRoom",
139
+ "parentField": "id",
140
+ "childModel": "AccommodationRoomLocale",
141
+ "childField": "object"
142
+ }
143
+ },
144
+ {
145
+ "name": "locale",
146
+ "type": "AccommodationRoomLocale",
147
+ "readonly": true,
148
+ "editable": false,
149
+ "many": true,
150
+ "expandable": true,
151
+ "multiplicity": "ZeroOrOne",
152
+ "mapping": {
153
+ "associationType": "association",
154
+ "cascade": "delete",
155
+ "parentModel": "AccommodationRoom",
156
+ "parentField": "id",
157
+ "childModel": "AccommodationRoomLocale",
158
+ "childField": "object",
159
+ "options": {
160
+ "$filter": "inLanguage eq lang()",
161
+ "$first": true
162
+ }
163
+ }
131
164
  }
132
165
  ],
133
166
  "eventListeners": [
167
+ {
168
+ "type": "@themost/data/previous-state-listener"
169
+ },
170
+ {
171
+ "type": "./listeners/data-localization"
172
+ }
134
173
  ],
135
174
  "privileges": [
136
175
  {
@@ -0,0 +1,86 @@
1
+ {
2
+ "$schema": "https://themost-framework.github.io/themost/models/2018/2/schema.json",
3
+ "@id": "https://universis.io/entities/AccommodationRoomLocale",
4
+ "name": "AccommodationRoomLocale",
5
+ "description": "Contains a collection of extra field required for accommodation room.",
6
+ "title": "AccommodationRoomLocale",
7
+ "abstract": false,
8
+ "contains": "AccommodationRoom",
9
+ "hidden": true,
10
+ "sealed": false,
11
+ "version": "1.0",
12
+ "fields": [
13
+ {
14
+ "@id": "https://themost.io/schemas/id",
15
+ "name": "id",
16
+ "title": "ID",
17
+ "description": "The identifier of the item.",
18
+ "type": "Counter",
19
+ "primary": true,
20
+ "nullable": false
21
+ },
22
+ {
23
+ "@id": "https://themost.io/schemas/object",
24
+ "name": "object",
25
+ "title": "object",
26
+ "description": "The parent item.",
27
+ "type": "AccommodationRoom"
28
+ },
29
+ {
30
+ "@id": "http://schema.org/inLanguage",
31
+ "name": "inLanguage",
32
+ "title": "inLanguage",
33
+ "description": "The language of this item.",
34
+ "type": "Text",
35
+ "size": 5
36
+ },
37
+ {
38
+ "name": "name",
39
+ "title": "Ονομασία",
40
+ "description": "Η ονομασία του αντικειμένου",
41
+ "type": "Text",
42
+ "nullable": true,
43
+ "size": 100
44
+ },
45
+ {
46
+ "name": "description",
47
+ "title": "Περιγραφή",
48
+ "description": "Περιγραφή του τύπου εργασίας",
49
+ "type": "Text",
50
+ "nullable": true,
51
+ "size": 80
52
+ },
53
+ {
54
+ "name": "displayCode",
55
+ "title": "Display code",
56
+ "description": "The display code of the place",
57
+ "type": "Text",
58
+ "size": 15
59
+ }
60
+ ],
61
+ "constraints": [
62
+ {
63
+ "type": "unique",
64
+ "fields": [
65
+ "object",
66
+ "inLanguage"
67
+ ]
68
+ }
69
+ ],
70
+ "privileges": [
71
+ {
72
+ "mask": 1,
73
+ "type": "global",
74
+ "account": "*"
75
+ },
76
+ {
77
+ "mask": 15,
78
+ "type": "global"
79
+ },
80
+ {
81
+ "mask": 15,
82
+ "type": "global",
83
+ "account": "Administrators"
84
+ }
85
+ ]
86
+ }
@@ -49,10 +49,10 @@ async function beforeSaveAsync(event) {
49
49
  //check studentConsent
50
50
  if (event.target && eventHasConsent === true && Object.prototype.hasOwnProperty.call(target, 'studentConsent') === false) {
51
51
  const translateService = context.application.getStrategy(function TranslateService() { });
52
- throw new DataError('E_STUDENT_CONSENT', translateService.translate('The application cannot be saved without consent about personal data.'), null, 'AccommodationRequestAction', 'studentConsent');
52
+ throw new DataError('E_STUDENT_CONSENT', translateService.translate('The request cannot be submitted unless the student confirms that they have read and understood the Privacy and Personal Data Protection Policy.'), null, 'AccommodationRequestAction', 'studentConsent');
53
53
  } else if (event.target && eventHasConsent === true && Object.prototype.hasOwnProperty.call(target, 'studentConsent') === true && target.studentConsent === false) {
54
54
  const translateService = context.application.getStrategy(function TranslateService() { });
55
- throw new DataError('E_STUDENT_CONSENT', translateService.translate('The application cannot be saved without consent about personal data.'), null, 'AccommodationRequestAction', 'studentConsent');
55
+ throw new DataError('E_STUDENT_CONSENT', translateService.translate('The request cannot be submitted unless the student confirms that they have read and understood the Privacy and Personal Data Protection Policy.'), null, 'AccommodationRequestAction', 'studentConsent');
56
56
  }
57
57
  //check category
58
58
  if (target && (Object.prototype.hasOwnProperty.call(target, 'category') && (target.category == null))) {
@@ -96,10 +96,10 @@ async function beforeSaveAsync(event) {
96
96
  if (isMe === true && eventHasConsent === true) {
97
97
  if (Object.prototype.hasOwnProperty.call(target, 'studentConsent') === false) {
98
98
  const translateService = context.application.getStrategy(function TranslateService() { });
99
- throw new DataError('E_STUDENT_CONSENT', translateService.translate('The application cannot be saved without consent about personal data.'), null, 'AccommodationRequestAction', 'studentConsent');
99
+ throw new DataError('E_STUDENT_CONSENT', translateService.translate('The request cannot be submitted unless the student confirms that they have read and understood the Privacy and Personal Data Protection Policy.'), null, 'AccommodationRequestAction', 'studentConsent');
100
100
  } else if (eventHasConsent === true && target.studentConsent === false) {
101
101
  const translateService = context.application.getStrategy(function TranslateService() { });
102
- throw new DataError('E_STUDENT_CONSENT', translateService.translate('The application cannot be saved without consent about personal data.'), null, 'AccommodationRequestAction', 'studentConsent');
102
+ throw new DataError('E_STUDENT_CONSENT', translateService.translate('The request cannot be submitted unless the student confirms that they have read and understood the Privacy and Personal Data Protection Policy.'), null, 'AccommodationRequestAction', 'studentConsent');
103
103
  }
104
104
  }
105
105
 
@@ -0,0 +1,3 @@
1
+ {
2
+ "The request cannot be submitted unless the student confirms that they have read and understood the Privacy and Personal Data Protection Policy.": "Η αίτηση δεν μπορεί να αποθηκευτεί χωρίς ο φοιτητής να δηλώσει ότι έχει λάβει γνώση της Πολιτικής Προστασίας της Ιδιωτικότητας και των Προσωπικών Δεδομένων."
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+
3
+ }