Studentenverwaltung Projektarbeit: added possibility to create persons, added phrases

This commit is contained in:
Alexei Karpenko
2025-05-30 17:54:51 +02:00
parent 69e05ccb38
commit 9a7cba0717
9 changed files with 749 additions and 302 deletions
@@ -107,13 +107,9 @@ class Archiv extends FHCAPI_Controller
$result = $this->AkteModel->load($akte_id);
if (!hasData($result)) $this->terminateWithError('Akte not found');
$data = $this->getDataOrTerminateWithError($result);
$data = getData($result)[0];
//$this->addMeta("daa", $data->inhalt);
$fileObj = new stdClass();
if (isset($data->inhalt) && $data->inhalt != '')
@@ -133,12 +129,7 @@ class Archiv extends FHCAPI_Controller
//header("Content-type: $data->mimetype");
header('Content-Disposition: attachment; filename="'.$data->titel.'"');
readfile($filename);
//echo base64_decode($data->inhalt);
die();
//~ $fileObj->file = $data->inhalt;
//~ $fileObj->name = $data->titel;
//~ $fileObj->mimetype = $data->mimetype;
//~ $fileObj->disposition = 'attachment';
}
else
{
@@ -146,12 +137,6 @@ class Archiv extends FHCAPI_Controller
$result = $this->aktelib->get($akte_id);
}
/* $fileObj->filename
* $fileObj->file
* $fileObj->name
* $fileObj->mimetype
* $fileObj->disposition*/
}
/**
@@ -16,6 +16,7 @@ class Projektbetreuer extends FHCAPI_Controller
'getNoten' => ['admin:r', 'assistenz:r'],
'getDefaultStundensaetze' => ['admin:r', 'assistenz:r'],
'getProjektbetreuerBySearchQuery' => ['admin:r', 'assistenz:r'],
'getPerson' => ['admin:r', 'assistenz:r'],
'validateProjektbetreuer' => ['admin:r', 'assistenz:r']
]);
@@ -52,7 +53,7 @@ class Projektbetreuer extends FHCAPI_Controller
'projektarbeit_id, person_id, nachname, vorname, note, punkte, round(stunden, 1) AS stunden,
stundensatz, betreuerart_kurzbz, vertrag_id, titelpre, titelpost'
);
$this->ProjektbetreuerModel-> addSelect("CASE
$this->ProjektbetreuerModel->addSelect("CASE
WHEN EXISTS
(SELECT 1 FROM public.tbl_benutzer JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid) WHERE person_id=pers.person_id)
THEN 'Mitarbeiter'
@@ -223,16 +224,37 @@ class Projektbetreuer extends FHCAPI_Controller
if (!isset($searchString))
$this->terminateWithError($this->p->t('ui', 'error_fieldRequired', ['field' => 'Search term']), self::ERROR_TYPE_GENERAL);
$result = $this->PersonModel->searchPerson($searchString);
$this->addMeta('met', $result);
if (isError($result)) return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
return $this->terminateWithSuccess(hasData($result) ? $this->_addFullNameToBetreuer(getData($result)) : []);
}
public function getPerson()
{
$person_id = $this->input->get('person_id');
if (!isset($person_id))
$this->terminateWithError($this->p->t('ui', 'error_fieldRequired', ['field' => 'Person']), self::ERROR_TYPE_GENERAL);
$this->PersonModel->addSelect("CASE
WHEN EXISTS
(SELECT 1 FROM public.tbl_benutzer JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid) WHERE person_id=tbl_person.person_id)
THEN 'Mitarbeiter'
WHEN EXISTS
(SELECT 1 FROM public.tbl_benutzer JOIN public.tbl_student ON(uid=student_uid) WHERE person_id=tbl_person.person_id)
THEN 'Student'
ELSE 'Person'
END AS status");
$result = $this->PersonModel->addSelect('titelpre, titelpost, vorname, nachname, person_id');
$result = $this->PersonModel->load($person_id);
if (isError($result)) return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
return $this->terminateWithSuccess(hasData($result) ? $this->_addFullNameToBetreuer(getData($result))[0] : []);
}
/**
*
* @param
@@ -55,7 +55,7 @@ class Student extends FHCAPI_Controller
// Load language phrases
$this->loadPhrases([
'ui', 'lehre'
'ui', 'lehre', 'person'
]);
}
@@ -322,40 +322,47 @@ class Student extends FHCAPI_Controller
if (!$this->input->post('person_id')) {
if (!isset($_POST['address']) || !is_array($_POST['address']))
$_POST['address'] = [];
$_POST['address']['func'] = 1;
}
if ($this->input->post('incoming')) {
$_POST['ausbildungssemester'] = 0;
}
$this->addMeta('test', $_POST['personOnly']);
$this->load->library('form_validation');
$this->form_validation->set_rules('nachname', 'Nachname', 'callback_requiredIfNotPersonId', [
'requiredIfNotPersonId' => $this->p->t('ui', 'error_required')
'requiredIfNotPersonId' => $this->p->t('ui', 'error_fieldRequired', ['field' => $this->p->t('person', 'nachname')])
]);
$this->form_validation->set_rules('geschlecht', 'Geschlecht', 'callback_requiredIfNotPersonId', [
'requiredIfNotPersonId' => $this->p->t('ui', 'error_required')
'requiredIfNotPersonId' => $this->p->t('ui', 'error_fieldRequired', ['field' => $this->p->t('person', 'geschlecht')])
]);
$this->form_validation->set_rules('gebdatum', 'Geburtsdatum', 'callback_isValidDate', [
$this->form_validation->set_rules('gebdatum', 'Geburtsdatum', ['isValidDate', function($value) { return isValidDate($value); }], [
'isValidDate' => $this->p->t('ui', 'error_invalid_date')
]);
$this->form_validation->set_rules('address[func]', 'Address', 'required|integer|less_than[2]|greater_than[-2]');
$this->form_validation->set_rules('address[plz]', 'PLZ', 'callback_requiredIfAddressFunc', [
'requiredIfAddressFunc' => $this->p->t('ui', 'error_required')
'requiredIfAddressFunc' => $this->p->t('ui', 'error_fieldRequired', ['field' => $this->p->t('person', 'plz')])
]);
$this->form_validation->set_rules('address[gemeinde]', 'Gemeinde', 'callback_requiredIfAddressFunc', [
'requiredIfAddressFunc' => $this->p->t('ui', 'error_required')
'requiredIfAddressFunc' => $this->p->t('ui', 'error_fieldRequired', ['field' => $this->p->t('person', 'gemeinde')])
]);
$this->form_validation->set_rules('address[ort]', 'Ort', 'callback_requiredIfAddressFunc', [
'requiredIfAddressFunc' => $this->p->t('ui', 'error_required')
'requiredIfAddressFunc' => $this->p->t('ui', 'error_fieldRequired', ['field' => $this->p->t('person', 'ort')])
]);
$this->form_validation->set_rules('address[address]', 'Adresse', 'callback_requiredIfAddressFunc', [
'requiredIfAddressFunc' => $this->p->t('ui', 'error_required')
'requiredIfAddressFunc' => $this->p->t('ui', 'error_fieldRequired', ['field' => $this->p->t('person', 'adresse')])
]);
$this->form_validation->set_rules('email', 'E-Mail', 'valid_email');
$this->form_validation->set_rules('studiengang_kz', 'Studiengang', 'required');
$this->form_validation->set_rules('studiensemester_kurzbz', 'Studiensemester', 'required');
$this->form_validation->set_rules('ausbildungssemester', 'Ausbildungssemester', 'required|integer|less_than[9]|greater_than[-1]');
$this->form_validation->set_rules('studiengang_kz', 'Studiengang', 'callback_requiredIfStudentFunc', [
'requiredIfStudentFunc' => $this->p->t('ui', 'error_fieldRequired', ['field' => $this->p->t('lehre', 'studiengang')])
]);
$this->form_validation->set_rules('studiensemester_kurzbz', 'Studiensemester', 'callback_requiredIfStudentFunc', [
'requiredIfStudentFunc' => $this->p->t('ui', 'error_fieldRequired', ['field' => $this->p->t('lehre', 'studiensemester')])
]);
$this->form_validation->set_rules('ausbildungssemester', 'Ausbildungssemester', 'callback_requiredIfStudentFunc|integer|less_than[9]|greater_than[-1]', [
'requiredIfStudentFunc' => $this->p->t('ui', 'error_fieldRequired', ['field' => $this->p->t('lehre', 'ausbildungssemester')])
]);
// TODO(chris): validate studienplan with studiengang, semester and orgform?
// TODO(chris): validate person_id, studiengang_kz, studiensemester_kurzbz, orgform_kurzbz, nation, gemeinde, ort, geschlecht?
@@ -432,6 +439,8 @@ class Student extends FHCAPI_Controller
'zustelladresse' => true,
];
if ($anlegen < 0) { // Überschreiben
$this->AdresseModel->addSelect('adresse_id');
$this->AdresseModel->addJoin('public.tbl_adressentyp', 'typ = adressentyp_kurzbz');
$this->AdresseModel->addOrder('zustelladresse', 'DESC');
$this->AdresseModel->addOrder('sort');
$result = $this->AdresseModel->loadWhere([
@@ -488,79 +497,84 @@ class Student extends FHCAPI_Controller
}
}
// Prestudent anlegen
$data = [
'aufmerksamdurch_kurzbz' => 'k.A.',
'person_id' => $person_id,
'studiengang_kz' => $this->input->post('studiengang_kz'),
'ausbildungcode' => $this->input->post('letzteausbildung'),
'anmerkung' => $this->input->post('anmerkungen'),
'reihungstestangetreten' => false,
'bismelden' => true
];
$ausbildungsart = $this->input->post('ausbildungsart');
if ($ausbildungsart)
$data['anmerkung'] .= ' Ausbildungsart:' . $ausbildungsart;
// Incomings und ausserordentliche sind bei Meldung nicht förderrelevant
$incoming = $this->input->post('incoming');
if ($incoming || substr($data['studiengang_kz'], 0, 1) == '9')
$data['foerderrelevant'] = false;
// Wenn die Person schon im System erfasst ist, dann die ZGV des Datensatzes uebernehmen
$this->PrestudentModel->addOrder('zgvmas_code');
$this->PrestudentModel->addOrder('zgv_code', 'DESC');
$this->PrestudentModel->addLimit(1);
$result = $this->PrestudentModel->loadWhere([
'person_id' => $person_id
]);
$prestudent = $this->getDataOrTerminateWithError($result);
if ($prestudent) {
$prestudent = current($prestudent);
if ($prestudent->zgv_code) {
$data['zgv_code'] = $prestudent->zgv_code;
$data['zgvort'] = $prestudent->zgvort;
$data['zgvdatum'] = $prestudent->zgvdatum;
$personOnly = $anlegen = $this->input->post('personOnly');
$data['zgvmas_code'] = $prestudent->zgvmas_code;
$data['zgvmaort'] = $prestudent->zgvmaort;
$data['zgvmadatum'] = $prestudent->zgvmadatum;
if (!$personOnly)
{
// Prestudent anlegen
$data = [
'aufmerksamdurch_kurzbz' => 'k.A.',
'person_id' => $person_id,
'studiengang_kz' => $this->input->post('studiengang_kz'),
'ausbildungcode' => $this->input->post('letzteausbildung'),
'anmerkung' => $this->input->post('anmerkungen'),
'reihungstestangetreten' => false,
'bismelden' => true
];
$ausbildungsart = $this->input->post('ausbildungsart');
if ($ausbildungsart)
$data['anmerkung'] .= ' Ausbildungsart:' . $ausbildungsart;
// Incomings und ausserordentliche sind bei Meldung nicht förderrelevant
$incoming = $this->input->post('incoming');
if ($incoming || substr($data['studiengang_kz'], 0, 1) == '9')
$data['foerderrelevant'] = false;
// Wenn die Person schon im System erfasst ist, dann die ZGV des Datensatzes uebernehmen
$this->PrestudentModel->addOrder('zgvmas_code');
$this->PrestudentModel->addOrder('zgv_code', 'DESC');
$this->PrestudentModel->addLimit(1);
$result = $this->PrestudentModel->loadWhere([
'person_id' => $person_id
]);
$prestudent = $this->getDataOrTerminateWithError($result);
if ($prestudent) {
$prestudent = current($prestudent);
if ($prestudent->zgv_code) {
$data['zgv_code'] = $prestudent->zgv_code;
$data['zgvort'] = $prestudent->zgvort;
$data['zgvdatum'] = $prestudent->zgvdatum;
$data['zgvmas_code'] = $prestudent->zgvmas_code;
$data['zgvmaort'] = $prestudent->zgvmaort;
$data['zgvmadatum'] = $prestudent->zgvmadatum;
}
}
}
// Prestudent speichern
$result = $this->PrestudentModel->insert($data);
$prestudent_id = $this->getDataOrTerminateWithError($result);
// Prestudent speichern
$result = $this->PrestudentModel->insert($data);
$prestudent_id = $this->getDataOrTerminateWithError($result);
// Prestudent Rolle Anlegen
$data = [
'prestudent_id' => $prestudent_id,
'status_kurzbz' => $incoming ? 'Incoming' : 'Interessent',
'studiensemester_kurzbz' => $this->input->post('studiensemester_kurzbz'),
'ausbildungssemester' => $this->input->post('ausbildungssemester') ?: 0,
'orgform_kurzbz' => $this->input->post('orgform_kurzbz') ?: null,
'studienplan_id' => $this->input->post('studienplan_id') ?: null,
'datum' => date('Y-m-d'),
'insertamum' => date('c'),
'insertvon' => getAuthUID()
];
$result = $this->PrestudentstatusModel->insert($data);
$this->getDataOrTerminateWithError($result);
// Prestudent Rolle Anlegen
$data = [
'prestudent_id' => $prestudent_id,
'status_kurzbz' => $incoming ? 'Incoming' : 'Interessent',
'studiensemester_kurzbz' => $this->input->post('studiensemester_kurzbz'),
'ausbildungssemester' => $this->input->post('ausbildungssemester') ?: 0,
'orgform_kurzbz' => $this->input->post('orgform_kurzbz') ?: null,
'studienplan_id' => $this->input->post('studienplan_id') ?: null,
'datum' => date('Y-m-d'),
'insertamum' => date('c'),
'insertvon' => getAuthUID()
];
$result = $this->PrestudentstatusModel->insert($data);
$this->getDataOrTerminateWithError($result);
if ($incoming) {
// TODO(chris): IMPLEMENT!
//Matrikelnummer und UID generieren
//Benutzerdatensatz anlegen
//Studentendatensatz anlegen
//StudentLehrverband anlegen
if ($incoming) {
// TODO(chris): IMPLEMENT!
//Matrikelnummer und UID generieren
//Benutzerdatensatz anlegen
//Studentendatensatz anlegen
//StudentLehrverband anlegen
}
// TODO(chris): DEBUG
/*$result = $this->PrestudentModel->loadWhere([
'pestudent_id' => 1
]);
if (isError($result)) {
return $result;
}*/
}
// TODO(chris): DEBUG
/*$result = $this->PrestudentModel->loadWhere([
'pestudent_id' => 1
]);
if (isError($result)) {
return $result;
}*/
$this->terminateWithSuccess(true);
return ['person_id' => $person_id ?? null, 'prestudent_id' => $prestudent_id ?? null];
}
public function requiredIfNotPersonId($value)
@@ -572,7 +586,14 @@ class Student extends FHCAPI_Controller
public function requiredIfAddressFunc($value)
{
if (!$_POST['address']['func'])
if (!$_POST['address']['func'] || $_POST['address']['func'] == 0)
return true;
return !!$value;
}
public function requiredIfStudentFunc($value)
{
if ($_POST['personOnly'])
return true;
return !!$value;
}
@@ -63,6 +63,13 @@ export default {
params: { searchString }
};
},
getPerson(person_id) {
return {
method: 'get',
url: 'api/frontend/v1/stv/projektbetreuer/getPerson',
params: { person_id }
};
},
validateProjektbetreuer(projektbetreuer) {
return {
method: 'post',
+8 -1
View File
@@ -46,5 +46,12 @@ export default {
url: 'api/frontend/v1/stv/student/check',
params
};
},
add(params) {
return {
method: 'post',
url: 'api/frontend/v1/stv/student/add',
params
};
}
};
};
@@ -221,7 +221,6 @@ export default {
handler: async() => {
await this.$p.loadCategory(['global', 'person', 'stv', 'ui', 'projektarbeit']);
let cm = this.$refs.table.tabulator.columnManager;
cm.getColumnByField('projekttyp_kurzbz').component.updateDefinition({
@@ -2,6 +2,7 @@ import {CoreFilterCmpt} from "../../../../filter/Filter.js";
import FormForm from '../../../../Form/Form.js';
import FormInput from '../../../../Form/Input.js';
import PvAutoComplete from "../../../../../../../index.ci.php/public/js/components/primevue/autocomplete/autocomplete.esm.min.js";
import NewPerson from "../../List/New.js";
import ApiStvProjektbetreuer from '../../../../../api/factory/stv/projektbetreuer.js';
@@ -10,7 +11,8 @@ export default {
CoreFilterCmpt,
FormForm,
FormInput,
PvAutoComplete
PvAutoComplete,
NewPerson
},
inject: {
},
@@ -333,12 +335,24 @@ export default {
},
reload() {
this.$refs.projektbetreuerTable.reloadTable();
},
actionNewPerson() {
this.$refs.newPersonModal.reset();
this.$refs.newPersonModal.open();
},
personSaved(result) {
this.$api
.call(ApiStvProjektbetreuer.getPerson(result.person_id))
.then(response => {
this.autocompleteSelectedBetreuer = response.data;
})
.catch(this.$fhcAlert.handleSystemError)
}
},
template: `
<div class="stv-details-projektbetreuer h-100 pb-3">
<legend>{{this.$p.t('projektarbeit','betreuer')}}</legend>
<legend>{{this.$p.t('projektarbeit','betreuerGross')}}</legend>
<!-- <p v-if="statusNew">[{{$p.t('ui', 'neu')}}]</p> -->
<core-filter-cmpt
@@ -348,7 +362,7 @@ export default {
table-only
:side-menu="false"
new-btn-show
:new-btn-label="this.$p.t('projektarbeit', 'betreuer')"
:new-btn-label="this.$p.t('projektarbeit', 'betreuerGross')"
@click:new="actionNewProjektbetreuer"
>
</core-filter-cmpt>
@@ -369,10 +383,16 @@ export default {
</form-input>
</div>
<div class="row mb-3">
<div class="col-12">
<button class="btn btn-primary" @click="actionNewPerson">{{ $p.t('projektarbeit', 'neuePersonAnlegen') }}</button>
</div>
</div>
<div class="row mb-3">
<form-input
container-class="col-6 stv-details-projektbetreuer-betreuerart"
:label="$p.t('projektarbeit', 'betreuer')"
:label="$p.t('projektarbeit', 'betreuerart')"
type="select"
v-model="formData.betreuerart_kurzbz"
name="betreuerart_kurzbz"
@@ -388,22 +408,22 @@ export default {
</div>
<div class="row mb-3">
<form-input
container-class="col-8 stv-details-projektbetreuer-note"
:label="$p.t('projektarbeit', 'note')"
type="select"
v-model="formData.note"
name="note"
<form-input
container-class="col-8 stv-details-projektbetreuer-note"
:label="$p.t('projektarbeit', 'note')"
type="select"
v-model="formData.note"
name="note"
>
<option :value="null"> -- {{$p.t('fehlermonitoring', 'keineAuswahl')}} -- </option>
<option
v-for="note in arrNoten"
:key="note.note"
:value="note.note"
>
<option :value="null"> -- {{$p.t('fehlermonitoring', 'keineAuswahl')}} -- </option>
<option
v-for="note in arrNoten"
:key="note.note"
:value="note.note"
>
{{note.bezeichnung}}
</option>
</form-input>
{{note.bezeichnung}}
</option>
</form-input>
</div>
<div class="row mb-3">
@@ -429,7 +449,12 @@ export default {
</div>
</form-form>
<button class="btn btn-primary" v-show="betreuerFormOpened" @click="confirmProjektbetreuerAfterValidation">{{ $p.t('projektarbeit', 'betreuerBestaetigen') }}</button>
<button class="btn btn-primary" v-show="betreuerFormOpened" @click="confirmProjektbetreuerAfterValidation">
{{ $p.t('projektarbeit', 'betreuerBestaetigen') }}
</button>
<new-person ref="newPersonModal" :personOnly="true" @saved="personSaved"></new-person>
</div>
`
}
@@ -10,7 +10,7 @@ import ApiStvStudents from '../../../../api/factory/stv/students.js';
var _uuid = 0;
const FORMDATA_DEFAULT = {
address: {
func: 0,
func: 1,
nation: 'A'
},
geburtsnation: 'A',
@@ -33,7 +33,9 @@ export default {
inject: [
'lists'
],
emits: ['saved'],
props: {
personOnly: Boolean,
studiengangKz: Number,
studiensemesterKurzbz: String
},
@@ -108,7 +110,7 @@ export default {
return;
this.abortController.suggestions = new AbortController();
this.$api
.call(ApiStvStudents.check({
vorname: this.formData.vorname,
@@ -119,6 +121,11 @@ export default {
})
.then(result => this.suggestions = result.data)
.catch(error => {
if (error.code == 'ERR_BAD_REQUEST') {
return this.suggestions = [];
}
// NOTE(chris): repeat request
if (error.code != "ERR_CANCELED")
window.setTimeout(this.loadSuggestions, 100);
@@ -191,14 +198,22 @@ export default {
if (data.studiensemester_kurzbz === undefined)
data.studiensemester_kurzbz = this.studiensemesterKurzbz;
// TODO(chris): move to fhcapi.factory
this.$refs.form
.send('api/frontend/v1/stv/student/add', data)
.then(result => {
this.$fhcAlert.alertSuccess('Gespeichert');
this.$refs.modal.hide();
})
.catch(this.$fhcAlert.handleSystemError);
data.personOnly = this.personOnly;
this.$api.call(
ApiStvStudents.add(data)
)
.then(result => {
this.$emit('saved', result.data);
this.$fhcAlert.alertSuccess('Gespeichert');
this.$refs.modal.hide();
})
.catch(this.$fhcAlert.handleSystemError);
},
setPerson(suggestion)
{
this.person = suggestion;
this.formData.address.func = -1;
}
},
created() {
@@ -215,7 +230,7 @@ export default {
<fhc-form ref="form" class="stv-list-new" @submit.prevent="send">
<bs-modal ref="modal" dialog-class="modal-lg modal-scrollable" @hidden-bs-modal="reset">
<template #title>
InteressentIn anlegen
{{ personOnly ? $p.t('person', 'personAnlegen') : $p.t('lehre', 'interessentAnlegen') }}
</template>
<template #default>
@@ -225,36 +240,38 @@ export default {
<div class="row">
<div class="col-sm-4 mb-3">
<form-input
label="Nachname*"
:label="$p.t('person', 'nachname')+'*'"
type="text"
id="stv-list-new-nachname"
name="nachname"
v-model="formDataPerson['nachname']"
:disabled="person"
:disabled="!!person"
@input="loadSuggestions"
:min-length="3"
>
</form-input>
</div>
<div class="col-sm-4 mb-3">
<form-input
label="Vorname"
:label="$p.t('person', 'vorname')"
type="text"
:id="'stv-list-new-vorname-' + uuid"
name="vorname"
v-model="formDataPerson['vorname']"
:disabled="person"
:disabled="!!person"
@input="loadSuggestions"
:min-length="3"
>
</form-input>
</div>
<div class="col-sm-4 mb-3">
<form-input
label="Geburtsdatum"
:label="$p.t('person', 'geburtsdatum')"
type="datepicker"
uid="stv-list-new-gebdatum"
name="gebdatum"
v-model="formDataPerson['gebdatum']"
:disabled="person"
:disabled="!!person"
@update:model-value="loadSuggestions"
text-input
auto-apply
@@ -267,13 +284,13 @@ export default {
</div>
<!-- TODO(chris): more details -->
<table class="table caption-top table-striped table-hover">
<caption>Prüfung ob Person bereits existiert</caption>
<caption>{{ $p.t('person', 'personExistiertPruefung') }}</caption>
<tbody>
<tr
v-for="(suggestion, index) in suggestions"
:key="suggestion.person_id"
:class="{'active': index == 2}"
@click="(index == 2) ? suggestions.shift() : person=suggestion"
@click="(index == 2) ? suggestions.shift() : setPerson(suggestion)"
v-accessibility:tab.vertical
>
<td>{{suggestion.vorname + ' ' + suggestion.nachname}}</td>
@@ -286,34 +303,34 @@ export default {
<div class="row">
<div class="col-sm-4 mb-3">
<form-input
label="Anrede"
:label="$p.t('person', 'anrede')"
type="text"
id="stv-list-new-anrede"
name="anrede"
v-model="formDataPerson['anrede']"
:disabled="person"
:disabled="!!person"
>
</form-input>
</div>
<div class="col-sm-4 mb-3">
<form-input
label="Titel (Pre)"
:label="$p.t('person', 'titelPre')"
type="text"
id="stv-list-new-titelpre"
name="titelpre"
v-model="formDataPerson['titelpre']"
:disabled="person"
:disabled="!!person"
>
</form-input>
</div>
<div class="col-sm-4 mb-3">
<form-input
label="Titel (Post)"
:label="$p.t('person', 'titelPost')"
type="text"
id="stv-list-new-titelpost"
name="titelpost"
v-model="formDataPerson['titelpost']"
:disabled="person"
:disabled="!!person"
>
</form-input>
</div>
@@ -321,36 +338,38 @@ export default {
<div class="row">
<div class="col-sm-4 mb-3">
<form-input
label="Nachname*"
:label="$p.t('person', 'nachname')+'*'"
type="text"
id="stv-list-new-nachname"
name="nachname"
v-model="formDataPerson['nachname']"
:disabled="person"
:disabled="!!person"
@input="loadSuggestions"
:min-length="3"
>
</form-input>
</div>
<div class="col-sm-4 mb-3">
<form-input
label="Vorname"
:label="$p.t('person', 'vorname')"
type="text"
id="stv-list-new-vorname"
name="vorname"
v-model="formDataPerson['vorname']"
:disabled="person"
:disabled="!!person"
@input="loadSuggestions"
:min-length="3"
>
</form-input>
</div>
<div class="col-sm-4 mb-3">
<form-input
label="Weitere Vornamen"
:label="$p.t('person', 'weitereVornamen')"
type="text"
id="stv-list-new-vornamen"
name="vornamen"
v-model="formDataPerson['vornamen']"
:disabled="person"
:disabled="!!person"
>
</form-input>
</div>
@@ -358,12 +377,12 @@ export default {
<div class="row">
<div class="col-sm-4 mb-3">
<form-input
label="Wahlname"
:label="$p.t('person', 'wahlname')"
type="text"
id="stv-list-new-wahlname"
name="wahlname"
v-model="formDataPerson['wahlname']"
:disabled="person"
:disabled="!!person"
>
</form-input>
</div>
@@ -371,24 +390,24 @@ export default {
<div class="row">
<div class="col-sm-4 mb-3">
<form-input
label="Geschlecht*"
:label="$p.t('person', 'geschlecht')+'*'"
type="select"
id="stv-list-new-geschlecht"
name="geschlecht"
v-model="formDataPerson['geschlecht']"
:disabled="person"
:disabled="!!person"
>
<option v-for="geschlecht in lists.geschlechter" :key="geschlecht.geschlecht" :value="geschlecht.geschlecht">{{geschlecht.bezeichnung}}</option>
</form-input>
</div>
<div class="col-sm-4 mb-3">
<form-input
label="Geburtsdatum"
:label="$p.t('person', 'geburtsdatum')"
type="datepicker"
uid="stv-list-new-gebdatum"
name="gebdatum"
v-model="formDataPerson['gebdatum']"
:disabled="person"
:disabled="!!person"
@update:model-value="loadSuggestions"
text-input
auto-apply
@@ -400,7 +419,7 @@ export default {
</div>
</div>
<div v-if="person" class="row">
<div class="row">
<div class="col-sm-6 mb-3">
<form-input
type="select"
@@ -408,19 +427,19 @@ export default {
name="address[func]"
v-model="formData['address']['func']"
>
<option value="-1">Bestehende Adresse überschreiben</option>
<option value="1">Adresse hinzufügen</option>
<option value="0">Adresse nicht anlegen</option>
<option value="-1" v-if="person">{{ $p.t('person', 'bestehendeAdresseUeberschreiben') }}</option>
<option value="1">{{ $p.t('person', 'adresseHinzufuegen') }}</option>
<option value="0">{{ $p.t('person', 'adresseNichtAnlegen') }}</option>
</form-input>
</div>
</div>
<fieldset v-if="!person || formData['address']['func']">
<fieldset v-if="formData['address']['func'] != 0">
<legend>Adresse</legend>
<div class="row">
<div class="col-sm-4 mb-3">
<form-input
label="Land"
:label="$p.t('person', 'land')"
type="select"
id="stv-list-new-address-nation"
name="address[nation]"
@@ -434,7 +453,7 @@ export default {
<div class="row">
<div class="col-sm-4 mb-3">
<form-input
label="PLZ"
:label="$p.t('person', 'plz')"
type="text"
id="stv-list-new-address-plz"
name="address[plz]"
@@ -445,18 +464,18 @@ export default {
</div>
<div class="col-sm-4 mb-3">
<form-input
label="Gemeinde"
:label="$p.t('person', 'gemeinde')"
type="select"
v-if="formData['address']['nation'] == 'A'"
id="stv-list-new-address-gemeinde"
name="address[gemeinde]"
v-model="formData['address']['gemeinde']"
>
<option v-if="!gemeinden.length" disabled>Bitte gültige PLZ wählen</option>
<option v-if="!gemeinden.length" disabled>$p.t('ui', 'bittePlzWaehlen')</option>
<option v-for="gemeinde in gemeinden" :key="gemeinde.name" :value="gemeinde.name">{{gemeinde.name}}</option>
</form-input>
<form-input
label="Gemeinde"
:label="$p.t('person', 'gemeinde')"
type="text"
v-else
id="stv-list-new-address-gemeinde"
@@ -467,7 +486,7 @@ export default {
</div>
<div class="col-sm-4 mb-3">
<form-input
label="Ort"
:label="$p.t('person', 'ort')"
type="select"
v-if="formData['address']['nation'] == 'A'"
id="stv-list-new-address-ort"
@@ -478,7 +497,7 @@ export default {
<option v-for="ort in orte" :key="ort.ortschaftsname" :value="ort.ortschaftsname">{{ort.ortschaftsname}}</option>
</form-input>
<form-input
label="Ort"
:label="$p.t('person', 'ort')"
type="text"
v-else
id="stv-list-new-address-ort"
@@ -491,7 +510,7 @@ export default {
<div class="row">
<div class="col-12 mb-3">
<form-input
label="Adresse"
:label="$p.t('person', 'adresse')"
type="text"
id="stv-list-new-address-address"
name="address[address]"
@@ -505,7 +524,7 @@ export default {
<div class="row">
<div class="col-sm-4 mb-3">
<form-input
label="Geburtsnation"
:label="$p.t('person', 'geburtsnation')"
type="select"
id="stv-list-new-geburtsnation"
name="geburtsnation" class="form-select"
@@ -516,7 +535,7 @@ export default {
</div>
<div class="col-sm-4 mb-3">
<form-input
label="Staatsbürgerschaft"
:label="$p.t('person', 'staatsbuergerschaft')"
type="select"
id="stv-list-new-staatsbuergerschaft"
name="staatsbuergerschaft"
@@ -539,7 +558,7 @@ export default {
</div>
<div class="col-sm-4 mb-3">
<form-input
label="Telefon"
:label="$p.t('person', 'telefon')"
type="text"
id="stv-list-new-telefon"
name="telefon"
@@ -549,7 +568,7 @@ export default {
</div>
<div class="col-sm-4 mb-3">
<form-input
label="Mobil"
:label="$p.t('person', 'mobil')"
type="text"
id="stv-list-new-mobil"
name="mobil"
@@ -558,126 +577,128 @@ export default {
</form-input>
</div>
</div>
<div class="row">
<div class="col-sm-4 mb-3">
<form-input
label="Letzte Ausbildung"
type="select"
id="stv-list-new-letzteausbildung"
name="letzteausbildung"
v-model="formData['letzteausbildung']"
>
<option v-for="ausbildung in lists.ausbildungen" :key="ausbildung.ausbildungcode" :value="ausbildung.ausbildungcode">{{ausbildung.ausbildungbez}}</option>
</form-input>
</div>
<div class="col-sm-4 mb-3">
<form-input
label="Ausbildungsart"
type="text"
id="stv-list-new-ausbildungsart"
name="ausbildungsart"
v-model="formDataPerson['ausbildungsart']"
>
</form-input>
</div>
</div>
<div class="row">
<div class="col-sm-8 mb-3">
<form-input
label="Anmerkungen"
type="textarea"
id="stv-list-new-anmerkungen"
name="anmerkungen"
v-model="formDataPerson['anmerkungen']"
>
</form-input>
</div>
</div>
<div class="row">
<div class="col-sm-4 mb-3">
<form-input
label="Studiengang*"
type="select"
id="stv-list-new-studiengang_kz"
name="studiengang_kz"
v-model="formDataStg"
>
<option v-for="stg in lists.active_stgs" :key="stg.studiengang_kz" :value="stg.studiengang_kz">{{stg.kuerzel}}</option>
</form-input>
</div>
<div class="col-sm-4 mb-3">
<form-input
label="Studiensemester*"
type="select"
id="stv-list-new-studiensemester_kurzbz"
name="studiensemester_kurzbz"
v-model="formDataSem"
>
<option v-for="sem in semester" :key="sem.studiensemester_kurzbz" :value="sem.studiensemester_kurzbz">{{sem.studiensemester_kurzbz}}</option>
</form-input>
</div>
<div class="col-sm-4 mb-3">
<form-input
label="Ausbildungssemester*"
type="select"
id="stv-list-new-ausbildungssemester"
name="ausbildungssemester"
v-model="formData['ausbildungssemester']"
:disabled="formData['incoming']"
@input="loadStudienplaene"
>
<option v-for="sem in Array.from({length:8}).map((u,i) => i+1)" :key="sem" :value="sem">{{sem}}. Semester</option>
</form-input>
</div>
</div>
<div class="row">
<div class="col-sm-4 mb-3">
<form-input
label="OrgForm"
type="select"
id="stv-list-new-orgform_kurzbz"
name="orgform_kurzbz"
v-model="formData['orgform_kurzbz']"
@input="loadStudienplaene"
>
<option value="">-- keine Auswahl --</option>
<option v-for="orgform in lists.orgforms" :key="orgform.orgform_kurzbz" :value="orgform.orgform_kurzbz">{{orgform.bezeichnung}}</option>
</form-input>
</div>
<div class="col-sm-4 mb-3">
<form-input
label="Studienplan"
type="select"
id="stv-list-new-studienplan_id"
name="studienplan_id"
v-model="formData['studienplan_id']"
>
<option value="">-- keine Auswahl --</option>
<option v-for="plan in studienplaene" :key="plan.studienplan_id" :value="plan.studienplan_id">{{plan.bezeichnung}}</option>
</form-input>
</div>
</div>
<div class="row">
<div class="col-10 mb-3">
<div class="form-check">
<fieldset v-if="!personOnly">
<div class="row">
<div class="col-sm-4 mb-3">
<form-input
label="Incoming"
type="checkbox"
id="stv-list-new-incoming"
name="incoming"
v-model="formData['incoming']"
value="1"
:label="$p.t('lehre', 'letzeAusbildung')"
type="select"
id="stv-list-new-letzteausbildung"
name="letzteausbildung"
v-model="formData['letzteausbildung']"
>
<option v-for="ausbildung in lists.ausbildungen" :key="ausbildung.ausbildungcode" :value="ausbildung.ausbildungcode">{{ausbildung.ausbildungbez}}</option>
</form-input>
</div>
<div class="col-sm-4 mb-3">
<form-input
:label="$p.t('lehre', 'ausbildungsart')"
type="text"
id="stv-list-new-ausbildungsart"
name="ausbildungsart"
v-model="formDataPerson['ausbildungsart']"
>
</form-input>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-8 mb-3">
<form-input
:label="$p.t('lehre', 'anmerkungen')"
type="textarea"
id="stv-list-new-anmerkungen"
name="anmerkungen"
v-model="formDataPerson['anmerkungen']"
>
</form-input>
</div>
</div>
<div class="row">
<div class="col-sm-4 mb-3">
<form-input
:label="$p.t('lehre', 'studiengang')+'*'"
type="select"
id="stv-list-new-studiengang_kz"
name="studiengang_kz"
v-model="formDataStg"
>
<option v-for="stg in lists.active_stgs" :key="stg.studiengang_kz" :value="stg.studiengang_kz">{{stg.kuerzel}}</option>
</form-input>
</div>
<div class="col-sm-4 mb-3">
<form-input
:label="$p.t('lehre', 'studiensemester')+'*'"
type="select"
id="stv-list-new-studiensemester_kurzbz"
name="studiensemester_kurzbz"
v-model="formDataSem"
>
<option v-for="sem in semester" :key="sem.studiensemester_kurzbz" :value="sem.studiensemester_kurzbz">{{sem.studiensemester_kurzbz}}</option>
</form-input>
</div>
<div class="col-sm-4 mb-3">
<form-input
:label="$p.t('lehre', 'ausbildungssemester')+'*'"
type="select"
id="stv-list-new-ausbildungssemester"
name="ausbildungssemester"
v-model="formData['ausbildungssemester']"
:disabled="formData['incoming']"
@input="loadStudienplaene"
>
<option v-for="sem in Array.from({length:8}).map((u,i) => i+1)" :key="sem" :value="sem">{{sem}}. Semester</option>
</form-input>
</div>
</div>
<div class="row">
<div class="col-sm-4 mb-3">
<form-input
:label="$p.t('lehre', 'organisationsform')"
type="select"
id="stv-list-new-orgform_kurzbz"
name="orgform_kurzbz"
v-model="formData['orgform_kurzbz']"
@input="loadStudienplaene"
>
<option value="">-- keine Auswahl --</option>
<option v-for="orgform in lists.orgforms" :key="orgform.orgform_kurzbz" :value="orgform.orgform_kurzbz">{{orgform.bezeichnung}}</option>
</form-input>
</div>
<div class="col-sm-4 mb-3">
<form-input
:label="$p.t('lehre', 'studienplan')"
type="select"
id="stv-list-new-studienplan_id"
name="studienplan_id"
v-model="formData['studienplan_id']"
>
<option value="">-- keine Auswahl --</option>
<option v-for="plan in studienplaene" :key="plan.studienplan_id" :value="plan.studienplan_id">{{plan.bezeichnung}}</option>
</form-input>
</div>
</div>
<div class="row">
<div class="col-10 mb-3">
<div class="form-check">
<form-input
label="Incoming"
type="checkbox"
id="stv-list-new-incoming"
name="incoming"
v-model="formData['incoming']"
value="1"
>
</form-input>
</div>
</div>
</div>
</fieldset>
</template>
</template>
<template #footer>
<button v-if="person !== null" type="button" class="btn btn-secondary" @click="person = null"><i class="fa fa-chevron-left"></i>Zurück</button>
<button type="submit" class="btn btn-primary">{{ person === null ? 'Person anlegen' : 'InteressentIn anlegen' }}</button>
<button v-if="person !== null" type="button" class="btn btn-secondary" @click="person = null; formData.address.func = 1;"><i class="fa fa-chevron-left"></i>{{ $p.t('ui', 'zurueck') }}</button>
<button type="submit" class="btn btn-primary">{{ person === null || personOnly ? $p.t('person', 'personAnlegen') : $p.t('lehre', 'interessentAnlegen') }}</button>
</template>
</bs-modal>
</fhc-form>`
};
};
+375 -15
View File
@@ -41789,7 +41789,7 @@ and represent the current state of research on the topic. The prescribed citatio
),
array(
'sprache' => 'English',
'text' => 'Title',
'text' => 'title',
'description' => '',
'insertvon' => 'system'
)
@@ -41809,7 +41809,7 @@ and represent the current state of research on the topic. The prescribed citatio
),
array(
'sprache' => 'English',
'text' => 'Title English',
'text' => 'title English',
'description' => '',
'insertvon' => 'system'
)
@@ -41829,7 +41829,7 @@ and represent the current state of research on the topic. The prescribed citatio
),
array(
'sprache' => 'English',
'text' => 'Topic area',
'text' => 'topic area',
'description' => '',
'insertvon' => 'system'
)
@@ -41849,7 +41849,7 @@ and represent the current state of research on the topic. The prescribed citatio
),
array(
'sprache' => 'English',
'text' => 'Type',
'text' => 'type',
'description' => '',
'insertvon' => 'system'
)
@@ -41869,7 +41869,7 @@ and represent the current state of research on the topic. The prescribed citatio
),
array(
'sprache' => 'English',
'text' => 'Company',
'text' => 'company',
'description' => '',
'insertvon' => 'system'
)
@@ -41889,7 +41889,7 @@ and represent the current state of research on the topic. The prescribed citatio
),
array(
'sprache' => 'English',
'text' => 'Course',
'text' => 'course',
'description' => '',
'insertvon' => 'system'
)
@@ -41909,7 +41909,7 @@ and represent the current state of research on the topic. The prescribed citatio
),
array(
'sprache' => 'English',
'text' => 'Teaching unit',
'text' => 'teaching unit',
'description' => '',
'insertvon' => 'system'
)
@@ -41920,6 +41920,26 @@ and represent the current state of research on the topic. The prescribed citatio
'category' => 'projektarbeit',
'phrase' => 'betreuer',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Betreuer',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'assessor',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'betreuerGross',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
@@ -41935,6 +41955,26 @@ and represent the current state of research on the topic. The prescribed citatio
)
)
),
array(
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'betreuerart',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Betreuerart',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'assessor type',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'projektarbeit',
@@ -41949,7 +41989,7 @@ and represent the current state of research on the topic. The prescribed citatio
),
array(
'sprache' => 'English',
'text' => 'Grade',
'text' => 'grade',
'description' => '',
'insertvon' => 'system'
)
@@ -41969,7 +42009,7 @@ and represent the current state of research on the topic. The prescribed citatio
),
array(
'sprache' => 'English',
'text' => 'Hours',
'text' => 'hours',
'description' => '',
'insertvon' => 'system'
)
@@ -41989,7 +42029,7 @@ and represent the current state of research on the topic. The prescribed citatio
),
array(
'sprache' => 'English',
'text' => 'Hourly rate',
'text' => 'hourly rate',
'description' => '',
'insertvon' => 'system'
)
@@ -42029,7 +42069,7 @@ and represent the current state of research on the topic. The prescribed citatio
),
array(
'sprache' => 'English',
'text' => 'Start',
'text' => 'start',
'description' => '',
'insertvon' => 'system'
)
@@ -42049,7 +42089,7 @@ and represent the current state of research on the topic. The prescribed citatio
),
array(
'sprache' => 'English',
'text' => 'End',
'text' => 'end',
'description' => '',
'insertvon' => 'system'
)
@@ -42089,7 +42129,7 @@ and represent the current state of research on the topic. The prescribed citatio
),
array(
'sprache' => 'English',
'text' => 'Locked until',
'text' => 'locked until',
'description' => '',
'insertvon' => 'system'
)
@@ -42109,7 +42149,7 @@ and represent the current state of research on the topic. The prescribed citatio
),
array(
'sprache' => 'English',
'text' => 'Annotation',
'text' => 'annotation',
'description' => '',
'insertvon' => 'system'
)
@@ -42129,7 +42169,7 @@ and represent the current state of research on the topic. The prescribed citatio
),
array(
'sprache' => 'English',
'text' => 'Company Id',
'text' => 'company Id',
'description' => '',
'insertvon' => 'system'
)
@@ -42215,6 +42255,326 @@ and represent the current state of research on the topic. The prescribed citatio
)
)
),
array(
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'neuePersonAnlegen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Neue Person anlegen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Create new person',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'person',
'phrase' => 'titelPre',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Titel (Pre)',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'title (Pre)',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'person',
'phrase' => 'titelPost',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Titel (Post)',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'title (Post)',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'person',
'phrase' => 'weitereVornamen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Weitere Vornamen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'other first names',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'person',
'phrase' => 'bestehendeAdresseUeberschreiben',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Bestehende Adresse überschreiben',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Replace existing address',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'person',
'phrase' => 'adresseHinzufuegen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Adresse hinzufügen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Add new address',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'person',
'phrase' => 'adresseNichtAnlegen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Adresse nicht anlegen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Do not create address',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'person',
'phrase' => 'land',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Land',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'nation',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'person',
'phrase' => 'mobil',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Mobil',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'mobile phone',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'lehre',
'phrase' => 'letzeAusbildung',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Letzte Ausbildung',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'most recent education',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'lehre',
'phrase' => 'ausbildungsart',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Ausbildungsart',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'education type',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'lehre',
'phrase' => 'anmerkungen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Anmerkungen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'notes',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'person',
'phrase' => 'personAnlegen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Person anlegen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Create person',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'lehre',
'phrase' => 'interessentAnlegen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'InteressentIn anlegen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Create candidate',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'person',
'phrase' => 'personExistiertPruefung',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Prüfung ob Person bereits existiert',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Check if a person already exists',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'ui',
'phrase' => 'zurueck',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Zurück',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Back',
'description' => '',
'insertvon' => 'system'
)
)
),
);