adds the bestaetigt property of the ampel when fetching all the active ampeln

This commit is contained in:
SimonGschnell
2024-08-02 12:52:21 +02:00
parent 3bb87ef8d3
commit c5f57a0689
2 changed files with 18 additions and 12 deletions
@@ -73,18 +73,14 @@ class Ampeln extends FHCAPI_Controller
$userAmpeln = array();
// fetch active ampeln
$activeAmpeln = $this->AmpelModel->active();
$activeAmpeln = $this->AmpelModel->active(false, $this->uid);
$activeAmpeln = $this->getDataOrTerminateWithError($activeAmpeln);
foreach($activeAmpeln as $ampel){
// check if ampel is confirmed by user
$confirmedByUser = $this->AmpelModel->isConfirmed($ampel->ampel_id,$this->uid);
$ampel->bestaetigt = $confirmedByUser;
// only include non confirmed active ampeln in the result
if(!$confirmedByUser){
if(!$ampel->bestaetigt){
// check if the user was assigned to the ampel
$zugeteilt = $this->AmpelModel->isZugeteilt($this->uid, $ampel->benutzer_select);
@@ -107,13 +103,11 @@ class Ampeln extends FHCAPI_Controller
{
$userAmpeln = array();
$ampel_result = $this->AmpelModel->active();
$ampel_result = $this->AmpelModel->active(false, $this->uid);
$ampel_result = $this->getDataOrTerminateWithError($ampel_result);
foreach($ampel_result as $ampel){
$confirmedByUser = $this->AmpelModel->isConfirmed($ampel->ampel_id,$this->uid);
$ampel->bestaetigt = $confirmedByUser;
// check if the ampel was assigned to the user
$zugeteilt = $this->AmpelModel->isZugeteilt($this->uid, $ampel->benutzer_select);
+15 -3
View File
@@ -18,15 +18,27 @@ class Ampel_model extends DB_Model
* @param bool $email If true, then only ampeln are retrieved that are marked to be sent by mail.
* @return stdClass Returns array of objects.
*/
public function active($email = false)
public function active($email = false, $uid = null)
{
$userLanguage = getUserLanguage();
$bestaetigt = '';
if($uid != null){
$bestaetigt = ',
COALESCE((
SELECT true
FROM public.tbl_ampel_benutzer_bestaetigt a
WHERE a.ampel_id = ampel_id
AND uid = ' . $this->escape($uid) . ' LIMIT 1), false) as bestaetigt';
}
$parametersArray = [];
$query = '
SELECT *, beschreibung[('.$this->getLanguageIndex($this->escape($userLanguage)).')] as beschreibung_trans, buttontext[('.$this->getLanguageIndex($this->escape($userLanguage)).')] as buttontext_trans
FROM public.tbl_ampel
WHERE';
'.$bestaetigt
.'
FROM public.tbl_ampel
WHERE';
if ($email === true)
{