Gruppenadministration: first version of list with Gruppen of a manager.

This commit is contained in:
KarpAlex
2022-06-08 19:49:30 +02:00
parent 549396148d
commit 457ab9dc3e
6 changed files with 352 additions and 1 deletions
@@ -0,0 +1,166 @@
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
/**
* Page for managing groups of which user is the manager
*/
class Gruppenadministration extends Auth_Controller
{
private $_uid; // contains the UID of the logged user
/**
* Constructor
*/
public function __construct()
{
parent::__construct(
array(
'index' => 'admin:r',
'showBenutzergruppe' => 'admin:r',
'saveBPK' => 'admin:rw',
)
);
// Loads models
$this->load->model('organisation/benutzergruppe_model', 'BenutzergruppeModel');
$this->load->library('WidgetLib');
$this->loadPhrases(
array(
'global',
'person',
'lehre',
'ui',
'filter'
)
);
$this->setControllerId(); // sets the controller id
$this->_setAuthUID(); // sets property uid
}
// -----------------------------------------------------------------------------------------------------------------
// Public methods
/**
* Main page
*/
public function index()
{
//$this->_setNavigationMenuIndex(); // define the navigation menu for this page
$this->load->view(
'organisation/gruppenadministration/gruppenadministration.php',
array('uid' => $this->_uid)
);
}
/**
* Shows Benutzergruppe overview page.
*/
public function showBenutzergruppe()
{
$this->_setNavigationMenuShowDetails();
$gruppe_kurzbz = $this->input->get('gruppe_kurzbz');
$data[self::FHC_CONTROLLER_ID] = $this->getControllerId();
$this->BenutzergruppeModel->addSelect('uid, vorname, nachname');
$this->BenutzergruppeModel->addJoin('public.tbl_benutzer', 'uid');
$this->BenutzergruppeModel->addJoin('public.tbl_person', 'person_id');
$benutzer = $this->BenutzergruppeModel->loadWhere(array('gruppe_kurzbz' => $gruppe_kurzbz));
$this->load->view(
'organisation/gruppenadministration/benutzergruppe.php',
array('gruppe_kurzbz' => $gruppe_kurzbz, 'benutzer' => $benutzer)
);
}
/**
* Saves a ZGV for a prestudent, includes Ort, Datum, Nation for bachelor and master
*/
// public function saveBPK()
// {
// $person_id = $this->input->post('person_id');
// $bpk = $this->input->post('bpk');
//
// if (isEmptyString($person_id))
// $result = error('PersonID missing');
// else
// {
// $result = $this->PersonModel->update(
// $person_id,
// array(
// 'bpk' => $bpk,
// 'updateamum' => date('Y-m-d H:i:s')
// )
// );
// redirect('person/BPKWartung/index');
// }
// }
// -----------------------------------------------------------------------------------------------------------------
// Private methods
/**
* Define the navigation menu for the showDetails page
*/
private function _setNavigationMenuShowDetails()
{
$this->load->library('NavigationLib', array('navigation_page' => 'organisation/Gruppenadministration/showBenutzergruppe'));
$link = site_url('organisation/Gruppenadministration');
$this->navigationlib->setSessionMenu(
array(
'back' => $this->navigationlib->oneLevel(
'Zurück', // description
$link, // link
array(), // children
'angle-left', // icon
true, // expand
null, // subscriptDescription
null, // subscriptLinkClass
null, // subscriptLinkValue
'', // target
1 // sort
)
)
);
}
/**
* Define the navigation menu for the showDetails page
*/
// private function _setNavigationMenuIndex()
// {
// $this->load->library('NavigationLib', array('navigation_page' => 'organisation/Gruppenadministration/index'));
//
// $link = site_url();
//
// $this->navigationlib->setSessionMenu(
// array(
// 'back' => $this->navigationlib->oneLevel(
// 'Zurück', // description
// $link, // link
// array(), // children
// 'angle-left', // icon
// true, // expand
// null, // subscriptDescription
// null, // subscriptLinkClass
// null, // subscriptLinkValue
// '', // target
// 1 // sort
// )
// )
// );
// }
private function _setAuthUID()
{
$this->_uid = getAuthUID();
if (!$this->_uid) show_error('User authentification failed');
}
}
@@ -0,0 +1,14 @@
<?php
class Benutzergruppe_model extends DB_Model
{
/**
* Constructor
*/
public function __construct()
{
parent::__construct();
$this->dbTable = 'public.tbl_benutzergruppe';
$this->pk = array('uid', 'gruppe_kurzbz');
}
}
@@ -0,0 +1,47 @@
<?php
$this->load->view(
'templates/FHC-Header',
array(
'title' => 'Benutzer in Gruppe',
'jquery' => true,
'jqueryui' => true,
'bootstrap' => true,
'fontawesome' => true,
'sbadmintemplate' => true,
'tablesorter' => true,
'ajaxlib' => true,
'filterwidget' => true,
'navigationwidget' => true,
'phrases' => array(
'ui' => array('bitteEintragWaehlen')
),
'customCSSs' => 'public/css/sbadmin2/tablesort_bootstrap.css',
'customJSs' => array('public/js/bootstrapper.js')
)
);
?>
<body>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
<div id="page-wrapper">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<h3 class="page-header">
<?php echo ucfirst($this->p->t('gruppenadministration', 'benutzergruppe')); ?>
</h3>
</div>
</div>
<div>
<!-- <table>
</table> -->
</div>
</div>
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -0,0 +1,46 @@
<?php
$this->load->view(
'templates/FHC-Header',
array(
'title' => 'Gruppenadministration',
'jquery' => true,
'jqueryui' => true,
'bootstrap' => true,
'fontawesome' => true,
'sbadmintemplate' => true,
'tablesorter' => true,
'ajaxlib' => true,
'filterwidget' => true,
'navigationwidget' => true,
'phrases' => array(
'ui' => array('bitteEintragWaehlen')
),
'customCSSs' => 'public/css/sbadmin2/tablesort_bootstrap.css',
'customJSs' => array('public/js/bootstrapper.js')
)
);
?>
<body>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
<div id="page-wrapper">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<h3 class="page-header">
<?php echo ucfirst($this->p->t('gruppenadministration', 'gruppenadministration')); ?>
</h3>
</div>
</div>
<div>
<?php $this->load->view('organisation/gruppenadministration/gruppenadministrationData.php'); ?>
</div>
</div>
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -0,0 +1,57 @@
<?php
$filterWidgetArray = array(
'query' => '
SELECT gruppe_kurzbz, grp.bezeichnung AS gruppe_bezeichnung, grp.beschreibung AS gruppe_beschreibung,
studiengang_kz, UPPER(stg.typ||stg.kurzbz) AS studiengang_kurzbz, semester
FROM public.tbl_gruppe grp
JOIN public.tbl_studiengang stg USING (studiengang_kz)
JOIN public.tbl_gruppe_manager grpmgr USING (gruppe_kurzbz)
WHERE grp.aktiv = TRUE
AND grpmgr.uid = \''.$uid.'\'',
'requiredPermissions' => 'admin',
'datasetRepresentation' => 'tablesorter',
'additionalColumns' => array('Teilnehmer'),
'columnsAliases' => array(
ucfirst($this->p->t('gruppenadministration', 'kurzbezeichnung')) ,
ucfirst($this->p->t('global', 'bezeichnung')) ,
ucfirst($this->p->t('global', 'beschreibung')) ,
ucfirst($this->p->t('lehre', 'studiengangskennzahl')) ,
ucfirst($this->p->t('lehre', 'studiengang')),
ucfirst($this->p->t('lehre', 'semester')) ,
),
'formatRow' => function($datasetRaw) {
/* NOTE: Dont use $this here for PHP Version compatibility */
$datasetRaw->{'Teilnehmer'} = sprintf(
'<a href="%s?gruppe_kurzbz=%s&origin_page=%s&fhc_controller_id=%s">'.$this->p->t('gruppenadministration', 'zuweisenlöschen').'</a>',
site_url('organisation/Gruppenadministration/showBenutzergruppe'),
$datasetRaw->{'gruppe_kurzbz'},
'index',
(isset($_GET['fhc_controller_id'])?$_GET['fhc_controller_id']:'')
);
if ($datasetRaw->{'gruppe_bezeichnung'} == null)
{
$datasetRaw->{'gruppe_bezeichnung'} = '-';
}
if ($datasetRaw->{'gruppe_beschreibung'} == null)
{
$datasetRaw->{'gruppe_beschreibung'} = '-';
}
if ($datasetRaw->{'semester'} == null)
{
$datasetRaw->{'semester'} = '-';
}
//$datasetRaw->{'lehre'} = $datasetRaw->{'lehre'} == 'true' ? 'ja' : 'nein';
return $datasetRaw;
}
);
$filterWidgetArray['app'] = 'core';
$filterWidgetArray['datasetName'] = 'gruppenadministration';
$filterWidgetArray['filterKurzbz'] = 'gruppenadministration';
$filterWidgetArray['filter_id'] = $this->input->get('filter_id');
echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray);
?>
+22 -1
View File
@@ -1082,7 +1082,28 @@ $filters = array(
}
',
'oe_kurzbz' => null,
)
),
array(
'app' => 'core',
'dataset_name' => 'gruppenadministration',
'filter_kurzbz' => 'Gruppenadministration',
'description' => '{Meine Gruppen}',
'sort' => 1,
'default_filter' => true,
'filter' => '
{
"name": "Gruppenadministration",
"columns": [
{"name": "gruppe_kurzbz"},
{"name": "gruppe_bezeichnung"},
{"name": "gruppe_beschreibung"},
{"name": "studiengang_kurzbz"}
],
"filters": []
}
',
'oe_kurzbz' => null,
),
);
// Loop through the filters array