From 40b88859cd0c3358ea5639e661781ac1c7b80dac Mon Sep 17 00:00:00 2001 From: Christian Wolf Date: Wed, 5 Jun 2019 16:58:23 +0200 Subject: [PATCH] Updated user view in order to show referenced clubs --- src/admin/abstract/view/single.php | 3 ++ src/admin/common/models/column/ref.php | 4 +- src/admin/common/models/factory/club.php | 18 ++++---- .../common/models/factory/offerassoc.php | 4 +- src/admin/common/models/factory/place.php | 6 +-- src/admin/common/models/factory/userassoc.php | 16 +++---- src/admin/views/user/tmpl/default.php | 22 ++++++++++ src/admin/views/user/view.html.php | 43 +++++++++++++++++++ src/admin/views/users/tmpl/default.php | 1 - 9 files changed, 92 insertions(+), 25 deletions(-) diff --git a/src/admin/abstract/view/single.php b/src/admin/abstract/view/single.php index 8df9641..92846f3 100644 --- a/src/admin/abstract/view/single.php +++ b/src/admin/abstract/view/single.php @@ -16,6 +16,7 @@ abstract class AbstractClubsViewSingle extends HtmlView */ protected $object; protected $isNew; + protected $id; private $prepared = FALSE; @@ -50,6 +51,8 @@ abstract class AbstractClubsViewSingle extends HtmlView $this->object->unpack($jsonData); } + + $this->id = $id; } public function display($tpl = null) diff --git a/src/admin/common/models/column/ref.php b/src/admin/common/models/column/ref.php index fe30bff..fcd91e9 100644 --- a/src/admin/common/models/column/ref.php +++ b/src/admin/common/models/column/ref.php @@ -14,9 +14,9 @@ class CommonClubsModelColumnRef extends AbstractCommonClubsModelColumn protected $className; - public function __construct($alias, $className, $column=null) + public function __construct($alias, $className, $column, $filter) { - parent::__construct($alias, $column); + parent::__construct($alias, $filter, $column); if(empty($className)) throw new Exception('Classname must be non-empty.'); diff --git a/src/admin/common/models/factory/club.php b/src/admin/common/models/factory/club.php index 6331ad6..684db95 100644 --- a/src/admin/common/models/factory/club.php +++ b/src/admin/common/models/factory/club.php @@ -8,15 +8,15 @@ class CommonClubsModelFactoryClub extends AbstractCommonClubsModelFactory public function fetchAttributes() { return array( - new CommonClubsModelColumnString('name'), - new CommonClubsModelColumnString('address'), - new CommonClubsModelColumnString('city'), - new CommonClubsModelColumnString('homepage'), - new CommonClubsModelColumnString('mail'), - new CommonClubsModelColumnString('iban'), - new CommonClubsModelColumnString('bic'), - new CommonClubsModelColumnInt('charitable'), - new CommonClubsModelColumnRef('president', 'CommonClubsModelUser') + new CommonClubsModelColumnString('name', new CommonClubsControllerMappingString('Clubname')), + new CommonClubsModelColumnString('address', new CommonClubsControllerMappingString('Adresse')), + new CommonClubsModelColumnString('city', new CommonClubsControllerMappingString('Stadt')), + new CommonClubsModelColumnString('homepage', new CommonClubsControllerMappingString('Homepaage', false)), + new CommonClubsModelColumnString('mail', new CommonClubsControllerMappingString('E-Mail')), + new CommonClubsModelColumnString('iban', new CommonClubsControllerMappingCmd('IBAN')), + new CommonClubsModelColumnString('bic', new CommonClubsControllerMappingCmd('BIC')), + new CommonClubsModelColumnInt('charitable', new CommonClubsControllerMappingInt('Gemeinnützigkeit')), + new CommonClubsModelColumnRef('president', 'CommonClubsModelUser', 'president', new CommonClubsControllerMappingRef('Vorsitzender', new CommonClubsModelFactoryUser())) ); } diff --git a/src/admin/common/models/factory/offerassoc.php b/src/admin/common/models/factory/offerassoc.php index 14688b0..e552fdb 100644 --- a/src/admin/common/models/factory/offerassoc.php +++ b/src/admin/common/models/factory/offerassoc.php @@ -8,8 +8,8 @@ class CommonClubsModelFactoryOfferassoc extends AbstractCommonClubsModelFactory protected function fetchAttributes() { return array( - new CommonClubsModelColumnRef('club', 'CommonClubsModelClub', true, 'clubid'), - new CommonClubsModelColumnRef('offer', 'CommonClubsModelOffer', true, 'offerid') + new CommonClubsModelColumnRef('club', 'CommonClubsModelClub', 'clubid', new CommonClubsControllerMappingRef('Club', new CommonClubsModelFactoryClub())), + new CommonClubsModelColumnRef('offer', 'CommonClubsModelOffer', 'offerid', new CommonClubsControllerMappingRef('Angebot', new CommonClubsModelFactoryOffer())) ); } diff --git a/src/admin/common/models/factory/place.php b/src/admin/common/models/factory/place.php index 01b40c6..a24565d 100644 --- a/src/admin/common/models/factory/place.php +++ b/src/admin/common/models/factory/place.php @@ -8,9 +8,9 @@ class CommonClubsModelFactoryPlace extends AbstractCommonClubsModelFactory public function fetchAttributes() { return array( - new CommonClubsModelColumnString('name'), - new CommonClubsModelColumnRef('club', 'CommonClubsModelClub', true, 'clubid'), - new CommonClubsModelColumnInt('area', false) + new CommonClubsModelColumnString('name', new CommonClubsControllerMappingString('Bezeichnung')), + new CommonClubsModelColumnRef('club', 'CommonClubsModelClub', 'clubid', new CommonClubsControllerMappingRef('Club', new CommonClubsModelFactoryClub())), + new CommonClubsModelColumnInt('area', new CommonClubsControllerMappingInt('Fläche', false)) ); } diff --git a/src/admin/common/models/factory/userassoc.php b/src/admin/common/models/factory/userassoc.php index 49e9c1b..a046e10 100644 --- a/src/admin/common/models/factory/userassoc.php +++ b/src/admin/common/models/factory/userassoc.php @@ -8,14 +8,14 @@ class CommonClubsModelFactoryUserassoc extends AbstractCommonClubsModelFactory protected function fetchAttributes() { return array( - new CommonClubsModelColumnRef('user', 'CommonClubsModelUser', true, 'userid'), - new CommonClubsModelColumnRef('club', 'CommonClubsModelClub', true, 'clubid'), - new CommonClubsModelColumnRef('position', 'CommonClubsModelPosition', true, 'positionid'), - new CommonClubsModelColumnInt('admin'), - new CommonClubsModelColumnString('address', false), - new CommonClubsModelColumnString('mail', false), - new CommonClubsModelColumnString('phone', false), - new CommonClubsModelColumnString('state') + new CommonClubsModelColumnRef('user', 'CommonClubsModelUser', 'userid', new CommonClubsControllerMappingRef('User', new CommonClubsModelFactoryUser())), + new CommonClubsModelColumnRef('club', 'CommonClubsModelClub', 'clubid', new CommonClubsControllerMappingRef('Club', new CommonClubsModelFactoryClub())), + new CommonClubsModelColumnRef('position', 'CommonClubsModelPosition', 'positionid', new CommonClubsControllerMappingRef('Position', new CommonClubsModelFactoryPosition())), + new CommonClubsModelColumnInt('admin', new CommonClubsControllerMappingInt('Admin')), + new CommonClubsModelColumnString('address', new CommonClubsControllerMappingString('Adresse', false)), + new CommonClubsModelColumnString('mail', new CommonClubsControllerMappingString('E-Mail', false)), + new CommonClubsModelColumnString('phone', new CommonClubsControllerMappingString('Telefonnummer', false)), + new CommonClubsModelColumnString('state', new CommonClubsControllerMappingString('Status')) // -> `state` enum('regular', 'vacant', 'temporary') NOT NULL DEFAULT 'vacant', ); } diff --git a/src/admin/views/user/tmpl/default.php b/src/admin/views/user/tmpl/default.php index 13467ec..e57da72 100644 --- a/src/admin/views/user/tmpl/default.php +++ b/src/admin/views/user/tmpl/default.php @@ -8,6 +8,7 @@ defined('_JEXEC') or die; ?>
+

Stammdaten

@@ -55,5 +56,26 @@ defined('_JEXEC') or die;
+isNew): ?> +

Verknüpfungen

+ jobs) == 0): ?> +

Es wurden keine Verknüpfungen zu der Person gefunden.

+ + + + + + + + jobs as $job): ?> + + + + + + +
PostenVereinStadt
' target='_blank'>
+ +
'>Zurück zur Übersicht
diff --git a/src/admin/views/user/view.html.php b/src/admin/views/user/view.html.php index 553b2e7..263da44 100644 --- a/src/admin/views/user/view.html.php +++ b/src/admin/views/user/view.html.php @@ -1,6 +1,7 @@ prepareDisplay(); + + if($this->isNew) + { + $this->jobs = array(); + } + else + { + $factory = new CommonClubsModelFactoryUser(); + $user = $factory->loadById($this->id); + + $positions = $user->getPositions(); + + $clubFactory = new CommonClubsModelFactoryClub(); + $clubsPresident = $clubFactory->loadElements("main.president = {$this->id}"); + + $jobs = array(); + + foreach($clubsPresident as $club) + { + $job = array( + 'club' => $club->getName(), + 'city' => $club->getCity(), + 'position' => 'Vorsitzender', + 'url' => Route::_("index.php?option=com_clubs&view=club&id={$club->getId()}") + ); + $jobs[] = $job; + } + foreach($positions as $p) + { + $c = $p->getClub(); + $job = array( + 'club' => $c->getName(), + 'city' => $c->getCity(), + 'position' => $p->getPosition()->getName(), + 'url' => Route::_("index.php?option=com_clubs&view=club&id={$c->getId()}") + ); + $jobs[] = $job; + } + $this->jobs = $jobs; + } + ToolbarHelper::title('Club-Management - Person', 'user'); parent::display($tpl); } diff --git a/src/admin/views/users/tmpl/default.php b/src/admin/views/users/tmpl/default.php index d03b8eb..066d170 100644 --- a/src/admin/views/users/tmpl/default.php +++ b/src/admin/views/users/tmpl/default.php @@ -1,6 +1,5 @@