mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-15 14:02:17 +00:00
Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a139cc8d2e | |||
| 35ecbdefa8 | |||
| 5f0b1ace51 | |||
| b891d8baa5 | |||
| 5dbcf9ce70 | |||
| 8548b93ddc | |||
| bdc4782e9d | |||
| 0583990870 | |||
| 335753be8c | |||
| 8862f050e8 | |||
| 29f9b226ab |
@@ -947,16 +947,6 @@ class Abgabe extends FHCAPI_Controller
|
||||
$paabgabeArr = $this->getDataOrTerminateWithError($result, 'general');
|
||||
$paabgabe = $paabgabeArr[0];
|
||||
|
||||
// resolve the insert/update user full names so the frontend info string ("saved at X by Y")
|
||||
// renders immediately for freshly created/updated termine without needing a reload.
|
||||
$this->load->model('person/Person_model', 'PersonModel');
|
||||
if(!empty($paabgabe->insertvon)) {
|
||||
$paabgabe->insertvon_fullname = getData($this->PersonModel->getFullName($paabgabe->insertvon));
|
||||
}
|
||||
if(!empty($paabgabe->updatevon)) {
|
||||
$paabgabe->updatevon_fullname = getData($this->PersonModel->getFullName($paabgabe->updatevon));
|
||||
}
|
||||
|
||||
// check if abgabe even has note
|
||||
if($paabgabe->note) {
|
||||
$this->load->model('education/Note_model', 'NoteModel');
|
||||
|
||||
@@ -122,6 +122,47 @@ class Studiensemester_model extends DB_Model
|
||||
return $this->execQuery($query, array($studiensemester_kurzbz, $limit));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the current study semester and the previous semesters of the same type (SS/WS).
|
||||
*
|
||||
* Example:
|
||||
* - SS2026, limit 3: SS2026, SS2025, SS2024
|
||||
* - WS2025, limit 2: WS2025, WS2024
|
||||
*
|
||||
* @param $studiensemester_kurzbz
|
||||
* @param $limit
|
||||
*/
|
||||
public function getPreviousSameSemesterFrom($studiensemester_kurzbz, $limit = 1)
|
||||
{
|
||||
$qry = '
|
||||
SELECT
|
||||
studiensemester_kurzbz,
|
||||
start,
|
||||
ende
|
||||
FROM
|
||||
public.tbl_studiensemester
|
||||
WHERE
|
||||
SUBSTRING(studiensemester_kurzbz FROM 1 FOR 2) = SUBSTRING(? FROM 1 FOR 2)
|
||||
AND start <= (
|
||||
SELECT start
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE studiensemester_kurzbz = ?
|
||||
)
|
||||
ORDER BY
|
||||
start DESC
|
||||
LIMIT ?
|
||||
';
|
||||
|
||||
return $this->execQuery($qry,
|
||||
[
|
||||
$studiensemester_kurzbz,
|
||||
$studiensemester_kurzbz,
|
||||
$limit
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* getNearest
|
||||
*/
|
||||
|
||||
@@ -260,7 +260,6 @@ class Benutzerfunktion_model extends DB_Model
|
||||
return $this->execQuery($query, $parameters_array);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get active Kompetenzfeldleitung bei UID.
|
||||
*
|
||||
@@ -296,7 +295,6 @@ class Benutzerfunktion_model extends DB_Model
|
||||
return $this->execQuery($query, $parameters_array);
|
||||
}
|
||||
|
||||
|
||||
public function insertBenutzerfunktion($Json)
|
||||
{
|
||||
unset($Json['benutzerfunktion_id']);
|
||||
|
||||
@@ -306,22 +306,6 @@ export const AbgabeStudentDetail = {
|
||||
const noteOpt = this.notenOptions.find(opt => opt.note == termin.note)
|
||||
return noteOpt ? noteOpt.bezeichnung : ''
|
||||
},
|
||||
hasZweitbetreuer(projektarbeit) {
|
||||
return !!(projektarbeit.zweitbetreuer_person_id || projektarbeit.zweitbetreuer)
|
||||
},
|
||||
getErstbetreuerLabel(projektarbeit) {
|
||||
return projektarbeit.betreuerart_kurzbz
|
||||
? this.$capitalize(this.$p.t('abgabetool/c4betrart' + projektarbeit.betreuerart_kurzbz))
|
||||
: this.$capitalize(this.$p.t('abgabetool/c4betreuerv2'))
|
||||
},
|
||||
getZweitbetreuerLabel(projektarbeit) {
|
||||
return projektarbeit.zweitbetreuer_betreuerart_kurzbz
|
||||
? this.$capitalize(this.$p.t('abgabetool/c4betrart' + projektarbeit.zweitbetreuer_betreuerart_kurzbz))
|
||||
: this.$capitalize(this.$p.t('abgabetool/c4zweitbetreuerv2'))
|
||||
},
|
||||
getZweitbetreuerName(projektarbeit) {
|
||||
return projektarbeit.zweitbetreuer?.first ?? ''
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
projektarbeit(newVal) {
|
||||
@@ -446,8 +430,7 @@ export const AbgabeStudentDetail = {
|
||||
</button>
|
||||
</p>
|
||||
|
||||
<p>{{ getErstbetreuerLabel(projektarbeit) }}: {{ projektarbeit.betreuer }}</p>
|
||||
<p v-if="hasZweitbetreuer(projektarbeit)">{{ getZweitbetreuerLabel(projektarbeit) }}: {{ getZweitbetreuerName(projektarbeit) }}</p>
|
||||
<p>{{$capitalize( $p.t('abgabetool/c4betreuerv2') ) }}: {{projektarbeit ? $p.t('abgabetool/c4betrart' + projektarbeit.betreuerart_kurzbz) + ' ' + projektarbeit.betreuer : ''}}</p>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="row">
|
||||
|
||||
@@ -308,19 +308,6 @@ export const AbgabetoolStudent = {
|
||||
hasZweitbetreuer(projektarbeit) {
|
||||
return !!(projektarbeit.zweitbetreuer_person_id || projektarbeit.zweitbetreuer)
|
||||
},
|
||||
getErstbetreuerLabel(projektarbeit) {
|
||||
return projektarbeit.betreuerart_kurzbz
|
||||
? this.$capitalize(this.$p.t('abgabetool/c4betrart' + projektarbeit.betreuerart_kurzbz))
|
||||
: this.$capitalize(this.$p.t('abgabetool/c4betreuerv2'))
|
||||
},
|
||||
getZweitbetreuerLabel(projektarbeit) {
|
||||
return projektarbeit.zweitbetreuer_betreuerart_kurzbz
|
||||
? this.$capitalize(this.$p.t('abgabetool/c4betrart' + projektarbeit.zweitbetreuer_betreuerart_kurzbz))
|
||||
: this.$capitalize(this.$p.t('abgabetool/c4zweitbetreuerv2'))
|
||||
},
|
||||
getZweitbetreuerName(projektarbeit) {
|
||||
return projektarbeit.zweitbetreuer?.first ?? ''
|
||||
},
|
||||
getErstbetreuerEmailLabel(projektarbeit) {
|
||||
// with only one betreuer keep the generic label; with multiple betreuer
|
||||
// distinguish the email rows by their betreuungsart bezeichnung
|
||||
@@ -523,9 +510,9 @@ export const AbgabetoolStudent = {
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mt-2">
|
||||
<div class="col-4 col-md-3 fw-bold">{{ getErstbetreuerLabel(projektarbeit) }}</div>
|
||||
<div class="col-4 col-md-3 fw-bold">{{ projektarbeit?.betreuerart_kurzbz ? $capitalize( $p.t('abgabetool/c4betrart' + projektarbeit.betreuerart_kurzbz) ) : $capitalize( $p.t('abgabetool/c4betreuerv2') ) }}</div>
|
||||
<div class="col-8 col-md-9">
|
||||
{{ projektarbeit.betreuer }}
|
||||
{{ projektarbeit.betreuerart_kurzbz ? projektarbeit.betreuer : '' }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mt-2">
|
||||
@@ -534,13 +521,13 @@ export const AbgabetoolStudent = {
|
||||
<a :href="getMailLink(projektarbeit)"><i class="fa fa-envelope" style="color:#00649C"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="hasZweitbetreuer(projektarbeit)" class="row mt-2">
|
||||
<div class="col-4 col-md-3 fw-bold">{{ getZweitbetreuerLabel(projektarbeit) }}</div>
|
||||
<div v-if="projektarbeit.zweitbetreuer_person_id || projektarbeit.zweitbetreuer" class="row mt-2">
|
||||
<div class="col-4 col-md-3 fw-bold">{{ projektarbeit.zweitbetreuer_betreuerart_kurzbz ? $p.t('abgabetool/c4betrart' + projektarbeit.zweitbetreuer_betreuerart_kurzbz) : '' }}</div>
|
||||
<div class="col-8 col-md-9">
|
||||
{{ getZweitbetreuerName(projektarbeit) }}
|
||||
{{ projektarbeit.zweitbetreuer?.first }}
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="hasZweitbetreuer(projektarbeit)" class="row mt-2">
|
||||
<div v-if="projektarbeit.zweitbetreuer_person_id || projektarbeit.zweitbetreuer" class="row mt-2">
|
||||
<div class="col-4 col-md-3 fw-bold">{{ getZweitbetreuerEmailLabel(projektarbeit) }}</div>
|
||||
<div class="col-8 col-md-9">
|
||||
<a v-if="projektarbeit.zweitbetreuer_mail" :href="getZweitbetreuerMailLink(projektarbeit)"><i class="fa fa-envelope" style="color:#00649C"></i></a>
|
||||
|
||||
@@ -27,7 +27,7 @@ export default {
|
||||
return {
|
||||
filter: false,
|
||||
studiengang_kz: false,
|
||||
counterdate: new Date()
|
||||
counterdate: luxon.DateTime.now().setZone(FHC_JS_DATA_STORAGE_OBJECT.timezone).toISODate()
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@@ -259,6 +259,7 @@ export default {
|
||||
<form-input
|
||||
type="DatePicker"
|
||||
v-model="counterdate"
|
||||
model-type="yyyy-MM-dd"
|
||||
input-group
|
||||
:enable-time-picker="false"
|
||||
text-input
|
||||
|
||||
@@ -79,6 +79,7 @@ export default {
|
||||
<form-input
|
||||
type="DatePicker"
|
||||
v-model="data.buchungsdatum"
|
||||
model-type="yyyy-MM-dd"
|
||||
name="buchungsdatum"
|
||||
:label="$p.t('konto/buchungsdatum')"
|
||||
:enable-time-picker="false"
|
||||
|
||||
@@ -88,7 +88,7 @@ export default {
|
||||
this.data = {
|
||||
buchungstyp_kurzbz: '',
|
||||
betrag: '-0.00',
|
||||
buchungsdatum: new Date(),
|
||||
buchungsdatum: luxon.DateTime.now().setZone(FHC_JS_DATA_STORAGE_OBJECT.timezone).toISODate(),
|
||||
buchungstext: '',
|
||||
mahnspanne: 30,
|
||||
studiensemester_kurzbz: this.currentSemester,
|
||||
@@ -154,6 +154,7 @@ export default {
|
||||
<form-input
|
||||
type="DatePicker"
|
||||
v-model="data.buchungsdatum"
|
||||
model-type="yyyy-MM-dd"
|
||||
name="buchungsdatum"
|
||||
:label="$p.t('konto/buchungsdatum')"
|
||||
:enable-time-picker="false"
|
||||
|
||||
@@ -325,6 +325,7 @@ export default {
|
||||
:label="$p.t('infocenter', 'zgvDatum')"
|
||||
type="DatePicker"
|
||||
v-model="data.zgvdatum"
|
||||
model-type="yyyy-MM-dd"
|
||||
name="zgvdatum"
|
||||
no-today
|
||||
auto-apply
|
||||
@@ -389,6 +390,7 @@ export default {
|
||||
:label="$p.t('lehre', 'zgvMasterDatum')"
|
||||
type="DatePicker"
|
||||
v-model="data.zgvmadatum"
|
||||
model-type="yyyy-MM-dd"
|
||||
name="zgvmadatum"
|
||||
no-today
|
||||
auto-apply
|
||||
@@ -454,6 +456,7 @@ export default {
|
||||
:label="$p.t('lehre', 'zgvDoktorDatum')"
|
||||
type="DatePicker"
|
||||
v-model="data.zgvdoktordatum"
|
||||
model-type="yyyy-MM-dd"
|
||||
name="zgvdoktordatum"
|
||||
no-today
|
||||
auto-apply
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 48 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 79 KiB |
Reference in New Issue
Block a user