changes for not copied projektarbeiten and due to testing

This commit is contained in:
ma0068
2025-03-14 13:54:24 +01:00
parent 711172c08a
commit 13ad972bd1
3 changed files with 81 additions and 28 deletions
+1 -1
View File
@@ -6,7 +6,7 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
* before this date projektarbeiten failed do upload in time will be ignored
* @var string string formated as Date
*/
$config['projektarbeitjob_start'] = '2023-09-01';
$config['projektarbeitjob_start'] = '2023-06-01';
/**
* projektarbeiten bachelor will not be copied anymore after this amount of already existing
@@ -49,11 +49,13 @@ class ProjektarbeitJob extends JOB_Controller
$mailArray = array();
$arrayStg = array();
$countMissedAbgaben = 0;
$countNotCopied = 0;
$countTotal = 0;
$countMails = 0;
$projektarbeiten = [];
$this->logInfo('Start Job Projektarbeit');
//print_r( PHP_EOL . "Start Job Projektarbeit" . PHP_EOL);
//get all Projektarbeiten not Uploaded in Time
$resultNotUploaded = $this->ProjektarbeitModel->getAllProjektarbeitenNotUploadedInTime($startDate->format('c'));
@@ -84,14 +86,15 @@ class ProjektarbeitJob extends JOB_Controller
if (!hasData($resultNotUploaded) && !hasData($resultNegative
|| $resultNotUploaded) == [] && $resultNegative == [])
return $this->logInfo('End Job Projektarbeit Update: 0 Mails sent');
return print_r('End Job Projektarbeit Update: 0 Mails sent');
// return $this->logInfo('End Job Projektarbeit Update: 0 Mails sent');
if (is_array($projektarbeitenNotUploaded) && is_array($projektarbeitenNegative))
{
$projektarbeiten = array_merge($projektarbeitenNotUploaded, $projektarbeitenNegative);
}
// (1) set mark to 5
// (1) set mark to 7
foreach ($projektarbeiten as $projekt)
{
$this->db->where('projektarbeit_id', $projekt->projektarbeit_id);
@@ -101,7 +104,7 @@ class ProjektarbeitJob extends JOB_Controller
$result = $this->ProjektarbeitModel->update([
'projektarbeit_id' => $projekt->projektarbeit_id
], [
'note' => 5
'note' => 7
]);
if (isError($result))
{
@@ -109,13 +112,9 @@ class ProjektarbeitJob extends JOB_Controller
}
}
/* else //log not necessary: always the case for negative marks
{
$this->logInfo('Note für Projektarbeit für projektarbeit_id ' . $projekt->projektarbeit_id . 'bereits vorhanden');
}*/
// (2) copy Projektarbeit
//no more copying if count bakk >= 6 or count_diplom >= 3
$end_of_copy_bachelor = $this->config->item('projektarbeitjob_finishCopy_bachelor') ? $this->config->item('projektarbeitjob_finishCopy_bachelor') : 6;
$end_of_copy_master = $this->config->item('projektarbeitjob_finishCopy_diplom') ? $this->config->item('projektarbeitjob_finishCopy_diplom') : 3;
@@ -126,6 +125,31 @@ class ProjektarbeitJob extends JOB_Controller
);
if ($maxCountReached)
{
$countNotCopied++;
$result = $this->StudiengangModel->loadWhere([
'studiengang_kz' => $projekt->studiengang_kz
]);
if (isError($result))
{
$this->logError(getError($result));
}
if (!hasData($result))
{
//print_r('No Studiengang for studiengang_kz ' . $projekt->studiengang_kz . ' found');
$this->logInfo('No Studiengang for studiengang_kz ' . $projekt->studiengang_kz . ' found');
}
$studiengang = current(getData($result));
$email = $studiengang->email;
$arrayStg[$projekt->studiengang_kz] = array(
'countNotCopied' => $countNotCopied,
'email' => $email,
'countMissedAbgaben' => $countMissedAbgaben,
);
/* print_r("Max count of enduploads reached: " . $projekt->student_uid . ",id:" . $projekt->projektarbeit_id . " " . $projekt->studiengang_kz . PHP_EOL);
print_r("Count of not copied: " . $countNotCopied . PHP_EOL);*/
continue;
}
@@ -137,6 +161,7 @@ class ProjektarbeitJob extends JOB_Controller
}
if (!hasData($result2))
{
//print_r('No Projektarbeit found for projektarbeit_id ' . $projekt->projektarbeit_id);
$this->logInfo('No Projektarbeit found for projektarbeit_id ' . $projekt->projektarbeit_id);
continue;
}
@@ -190,6 +215,7 @@ class ProjektarbeitJob extends JOB_Controller
}
elseif (!hasData($result))
{
//print_r('No projektarbeit_id for studentId ' . $projektarbeit->student_uid . ' found');
$this->logInfo('No projektarbeit_id for studentId ' . $projektarbeit->student_uid . ' found');
continue;
}
@@ -209,22 +235,24 @@ class ProjektarbeitJob extends JOB_Controller
$this->logError(getError($result));
}
elseif (!hasData($result))
if (!hasData($result))
{
//print_r('No Studiengang for studiengang_kz ' . $projekt->studiengang_kz . ' found');
$this->logInfo('No Studiengang for studiengang_kz ' . $projekt->studiengang_kz . ' found');
}
else
{
$studiengang = current(getData($result));
$email = $studiengang->email;
$studiengang = current(getData($result));
$email = $studiengang->email;
$arrayStg[$projekt->studiengang_kz] = array(
'countMissedAbgaben' => $countMissedAbgaben,
'email' => $email
);
}
$arrayStg[$projekt->studiengang_kz] = array(
'countMissedAbgaben' => $countMissedAbgaben++,
'email' => $email,
'countNotCopied' => $countNotCopied,
);
}
else {
$arrayStg[$projekt->studiengang_kz]['countMissedAbgaben'] = $countMissedAbgaben++;
}
$arrayStg[$projekt->studiengang_kz]['countMissedAbgaben'] = ($arrayStg[$projekt->studiengang_kz]['countMissedAbgaben'] + 1);
//Mailarray
$reason = $projekt->reason ? $projekt->reason : null;
@@ -251,6 +279,8 @@ class ProjektarbeitJob extends JOB_Controller
}
elseif (!hasData($result))
{
//print_r('No Betreuung found for projektarbeit_id ' . $projekt->projektarbeit_id);
$this->logInfo('No Betreuung found for projektarbeit_id ' . $projekt->projektarbeit_id);
}
else
@@ -309,7 +339,11 @@ class ProjektarbeitJob extends JOB_Controller
</thead>
<tbody>";
$email = $item['email'];
//TODO(Manu) Total counts
//change to counts / STG or keep mailtext countfree
$anzahlMissedAbgaben = $item['countMissedAbgaben'];
$anzahlNichtKopierteProjektarbeiten = $item['countNotCopied'];
foreach ($mailArray as $m)
{
@@ -326,7 +360,8 @@ class ProjektarbeitJob extends JOB_Controller
$betreff = 'Kopierte Projektarbeiten / Project Work(s) copied';
$data = [
'anzahlMissedAbgaben' => $anzahlMissedAbgaben,
/* 'anzahlMissedAbgaben' => $anzahlMissedAbgaben,
'anzahlNichtKopierteProjektarbeiten' => $anzahlNichtKopierteProjektarbeiten,*/
'link' => APP_ROOT. '/vilesci/lehre/abgabe_assistenz_frameset.php?stg_kz=' . $stg_kz,
'table' => $maildata
];
@@ -340,6 +375,9 @@ class ProjektarbeitJob extends JOB_Controller
}
}
/* print_r( PHP_EOL. $countTotal . ' projektarbeiten copied, ' . $countMails . ' sent mails.' . PHP_EOL);
print_r('End Job Projektarbeit' . PHP_EOL);*/
$this->logInfo($countTotal . ' projektarbeiten copied, ' . $countMails . ' sent mails.');
$this->logInfo('End Job Projektarbeit');
}
@@ -109,16 +109,18 @@ class Projektarbeit_model extends DB_Model
$this->db->where($this->dbTable. '.note', null);
//TODO(Manu) remove comments for testdata sg.studiengang_kz
$result = $this->loadWhere([
'ben.aktiv' => 'true',
'pa.fixtermin' => 'true',
'pa.paabgabetyp_kurzbz' => 'end',
'pa.abgabedatum' => null,
'pa.datum < ' => $now->format('c'),
/* 'sg.studiengang_kz' => 255*/
]);
$query = $this->db->last_query();
var_dump($query);
if ($result)
//Testausgaben
/* if ($result)
{
echo "(UPDATE lehre.tbl_projektarbeit pa
SET note = NULL
@@ -133,7 +135,8 @@ class Projektarbeit_model extends DB_Model
echo ")\n";
}
}
}*/
return $result;
}
@@ -176,10 +179,12 @@ class Projektarbeit_model extends DB_Model
$this->db->where('NOT EXISTS (SELECT 1 FROM lehre.tbl_projektarbeit AS sub WHERE sub.student_uid = lehre.tbl_projektarbeit.student_uid AND sub.note IN (1, 2, 3, 4))', null, false);
$this->db->where('ben.aktiv', true);
//TODO(Manu) remove comments for Testdata 'sg.studiengang_kz' => 331
$result = $this->loadWhere([
'pa.fixtermin' => 'true',
'pa.paabgabetyp_kurzbz' => 'end',
'pa.datum < ' => $now->format('c'),
/* 'sg.studiengang_kz' => 255*/
]);
return $result;
@@ -193,16 +198,20 @@ class Projektarbeit_model extends DB_Model
*/
public function checkifCountMaxProjektarbeiten($student_uid, $end_of_copy_bachelor, $end_of_copy_master)
{
$qry = "SELECT COUNT(*), projekttyp_kurzbz
FROM lehre.tbl_projektarbeit AS sub
WHERE sub.student_uid = ?
FROM lehre.tbl_projektarbeit
WHERE student_uid = ?
GROUP BY projekttyp_kurzbz";
$params = array($student_uid);
$result = $this->execQuery($qry, $params);
//TODO(Manu) wait for final logic or adaptions quality gates
//meanwhile copying of all enduploads with fixed entries
//counting after each step: example for testdata with student_uid where 1 project is copied before hitting limit
// if($student_uid == "mr21m015")
if (!empty($result->retval))
{
foreach ($result->retval as $row)
@@ -211,10 +220,16 @@ class Projektarbeit_model extends DB_Model
$projekttyp = $row->projekttyp_kurzbz;
if ($projekttyp === 'Bachelor' && $count > $end_of_copy_bachelor)
{
//TODO(Manu) remove comments testdata
//print_r(PHP_EOL . 'LIMIT REACHED Bakk: ' . $student_uid .' Anzahl Abgaben ' . $count . PHP_EOL);
return true;
}
if ($projekttyp === 'Diplom' && $count > $end_of_copy_master)
{
//TODO(Manu) remove comments testdata
//print_r(PHP_EOL . 'LIMIT REACHED Dipl: ' . $student_uid .' Anzahl Abgaben ' . $count . PHP_EOL);
return true;
}
}