Browse Source

[Administration] Refactoring SiteController

feature/souke
Guillaume Bourgeois 1 year ago
parent
commit
0fb4293dda
13 changed files with 110 additions and 41 deletions
  1. +1
    -1
      backend/config/main.php
  2. +2
    -2
      backend/controllers/BackendController.php
  3. +88
    -0
      backend/controllers/DashboardController.php
  4. +1
    -1
      backend/controllers/OrderController.php
  5. +1
    -19
      backend/controllers/SiteController.php
  6. +1
    -1
      backend/views/dashboard/index.php
  7. +1
    -1
      backend/views/layouts/left.php
  8. +10
    -10
      backend/web/css/screen.css
  9. +1
    -1
      backend/web/sass/dashboard/_index.scss
  10. +1
    -1
      backend/web/sass/screen.scss
  11. +1
    -1
      common/mail/signup-html.php
  12. +1
    -2
      common/mail/signup-text.php
  13. +1
    -1
      common/views/nav_user_top.php

+ 1
- 1
backend/config/main.php View File

'basePath' => dirname(__DIR__), 'basePath' => dirname(__DIR__),
'name' => 'distrib', 'name' => 'distrib',
'controllerNamespace' => 'backend\controllers', 'controllerNamespace' => 'backend\controllers',
'defaultRoute' => 'site/index',
'defaultRoute' => 'dashboard/index',
'bootstrap' => ['log'], 'bootstrap' => ['log'],
'modules' => [], 'modules' => [],
'components' => [ 'components' => [

+ 2
- 2
backend/controllers/BackendController.php View File



// Pas de producteur défini // Pas de producteur défini
if(!$producerCurrent) { if(!$producerCurrent) {
$this->redirect(\Yii::$app->urlManagerFrontend->createAbsoluteUrl(['site/index']));
$this->redirect(\Yii::$app->urlManagerFrontend->createAbsoluteUrl(['dashboard/index']));
return false; return false;
} }


public function checkProductsPointsSale() public function checkProductsPointsSale()
{ {
if (!Product::searchCount() || !PointSale::searchCount()) { if (!Product::searchCount() || !PointSale::searchCount()) {
$this->redirect(['site/index', 'error_products_points_sale' => 1]);
$this->redirect(['dashboard/index', 'error_products_points_sale' => 1]);
} }
} }



+ 88
- 0
backend/controllers/DashboardController.php View File

<?php

/**
* Copyright distrib (2018)
*
* contact@opendistrib.net
*
* Ce logiciel est un programme informatique servant à aider les producteurs
* à distribuer leur production en circuits courts.
*
* Ce logiciel est régi par la licence CeCILL soumise au droit français et
* respectant les principes de diffusion des logiciels libres. Vous pouvez
* utiliser, modifier et/ou redistribuer ce programme sous les conditions
* de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
* sur le site "http://www.cecill.info".
*
* En contrepartie de l'accessibilité au code source et des droits de copie,
* de modification et de redistribution accordés par cette licence, il n'est
* offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons,
* seule une responsabilité restreinte pèse sur l'auteur du programme, le
* titulaire des droits patrimoniaux et les concédants successifs.
*
* A cet égard l'attention de l'utilisateur est attirée sur les risques
* associés au chargement, à l'utilisation, à la modification et/ou au
* développement et à la reproduction du logiciel par l'utilisateur étant
* donné sa spécificité de logiciel libre, qui peut le rendre complexe à
* manipuler et qui le réserve donc à des développeurs et des professionnels
* avertis possédant des connaissances informatiques approfondies. Les
* utilisateurs sont donc invités à charger et tester l'adéquation du
* logiciel à leurs besoins dans des conditions permettant d'assurer la
* sécurité de leurs systèmes et ou de leurs données et, plus généralement,
* à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.
*
* Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
* pris connaissance de la licence CeCILL, et que vous en avez accepté les
* termes.
*/

namespace backend\controllers;

use yii\filters\AccessControl;
use yii\filters\VerbFilter;

/**
* Dashboard controller
*/
class DashboardController extends BackendController
{
/**
* @inheritdoc
*/
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::class,
'rules' => [
[
'allow' => true,
'roles' => ['@'],
'matchCallback' => function ($rule, $action) {
return $this->getUserManager()->hasAccessBackend();
}
],
],
],
'verbs' => [
'class' => VerbFilter::class,
'actions' => [
],
],
];
}

/**
* Affiche le tableau de bord avec les distributions à venir et les dernières commandes passées ou modifiées.
*/
public function actionIndex()
{
return $this->render('index', [
'producer' => $this->getProducerCurrent(),
'productsCount' => $this->getProductContainer()->getRepository()->countProducts(),
'pointsSaleCount' => $this->getPointSaleContainer()->getRepository()->countPointSales(),
'distributionsArray' => $this->getDistributionContainer()->getRepository()->findDistributionsDashboard(),
'ordersArray' => $this->getOrderContainer()->getRepository()->findOrdersDashboard(),
]);
}
}

+ 1
- 1
backend/controllers/OrderController.php View File

$productDistributionManager = $this->getProductDistributionManager(); $productDistributionManager = $this->getProductDistributionManager();


if (!Product::searchCount() || !PointSale::searchCount()) { if (!Product::searchCount() || !PointSale::searchCount()) {
$this->redirect(['site/index', 'error_products_points_sale' => 1]);
$this->redirect(['dashboard/index', 'error_products_points_sale' => 1]);
} }


$orders = []; $orders = [];

+ 1
- 19
backend/controllers/SiteController.php View File

]; ];
} }


/**
* Affiche le tableau de bord du backend avec les dernières commandes
* réalisées, les dernières inscriptions, la liste des clients ayant un crédit
* négatif etc.
*
* @return mixed
*/
public function actionIndex()
{
return $this->render('index', [
'producer' => $this->getProducerCurrent(),
'distributionsArray' => $this->getDistributionContainer()->getRepository()->findDistributionsDashboard(),
'ordersArray' => $this->getOrderContainer()->getRepository()->findOrdersDashboard(),
'productsCount' => $this->getProductContainer()->getRepository()->countProducts(),
'pointsSaleCount' => $this->getPointSaleContainer()->getRepository()->countPointSales()
]);
}

/** /**
* Affiche la page de connexion. * Affiche la page de connexion.
*/ */
{ {
Yii::$app->user->identity->id_producer = $id; Yii::$app->user->identity->id_producer = $id;
Yii::$app->user->identity->save(); Yii::$app->user->identity->save();
$this->redirect(['site/index']);
$this->redirect(['dashboard/index']);
} }
} }

backend/views/site/index.php → backend/views/dashboard/index.php View File

$this->setTitle('Tableau de bord'); $this->setTitle('Tableau de bord');


?> ?>
<div class="site-index">
<div class="dashboard-index">


<?php if(Yii::$app->request->get('error_products_points_sale')): ?> <?php if(Yii::$app->request->get('error_products_points_sale')): ?>
<div class="alert alert-warning"> <div class="alert alert-warning">

+ 1
- 1
backend/views/layouts/left.php View File

'template' => '<a href="{url}">{icon} {label}' . $countTicketsProducerUnreadLabel . '</a>' 'template' => '<a href="{url}">{icon} {label}' . $countTicketsProducerUnreadLabel . '</a>'
], ],
['label' => $producer->name, 'options' => ['class' => 'header'], 'visible' => $userManager->isCurrentProducer()], ['label' => $producer->name, 'options' => ['class' => 'header'], 'visible' => $userManager->isCurrentProducer()],
['label' => 'Tableau de bord', 'icon' => 'dashboard', 'url' => ['/site/index'], 'visible' => $userManager->isCurrentProducer()],
['label' => 'Tableau de bord', 'icon' => 'dashboard', 'url' => ['/dashboard/index'], 'visible' => $userManager->isCurrentProducer()],
['label' => 'Distributions', 'icon' => 'calendar', 'url' => ['/distribution/index'], 'visible' => $userManager->isCurrentProducer()], ['label' => 'Distributions', 'icon' => 'calendar', 'url' => ['/distribution/index'], 'visible' => $userManager->isCurrentProducer()],
[ [
'label' => 'Produits', 'label' => 'Produits',

+ 10
- 10
backend/web/css/screen.css View File

opacity: 0; opacity: 0;
} }


/* line 4, ../sass/site/_index.scss */
.site-index #distributions .info-box {
/* line 4, ../sass/dashboard/_index.scss */
.dashboard-index #distributions .info-box {
border: solid 1px #e0e0e0; border: solid 1px #e0e0e0;
} }
/* line 6, ../sass/site/_index.scss */
.site-index #distributions .info-box .date {
/* line 6, ../sass/dashboard/_index.scss */
.dashboard-index #distributions .info-box .date {
text-transform: uppercase; text-transform: uppercase;
font-size: 12px; font-size: 12px;
line-height: 20px; line-height: 20px;
padding-top: 10px; padding-top: 10px;
} }
/* line 12, ../sass/site/_index.scss */
.site-index #distributions .info-box .date span {
/* line 12, ../sass/dashboard/_index.scss */
.dashboard-index #distributions .info-box .date span {
display: block; display: block;
} }
/* line 18, ../sass/site/_index.scss */
.site-index #distributions .info-box .date .num {
/* line 18, ../sass/dashboard/_index.scss */
.dashboard-index #distributions .info-box .date .num {
font-size: 30px; font-size: 30px;
padding-top: 5px; padding-top: 5px;
padding-bottom: 5px; padding-bottom: 5px;
} }
/* line 30, ../sass/site/_index.scss */
.site-index #distributions .info-box-content .buttons {
/* line 30, ../sass/dashboard/_index.scss */
.dashboard-index #distributions .info-box-content .buttons {
margin-top: 10px; margin-top: 10px;
} }



backend/web/sass/site/_index.scss → backend/web/sass/dashboard/_index.scss View File



.site-index {
.dashboard-index {
#distributions { #distributions {
.info-box { .info-box {
border: solid 1px #e0e0e0 ; border: solid 1px #e0e0e0 ;

+ 1
- 1
backend/web/sass/screen.scss View File



@import "_adminlte.scss" ; @import "_adminlte.scss" ;
@import "_alerts.scss" ; @import "_alerts.scss" ;
@import "site/_index.scss" ;
@import "dashboard/_index.scss" ;
@import "subscription/_index.scss" ; @import "subscription/_index.scss" ;
@import "subscription/_form.scss" ; @import "subscription/_form.scss" ;
@import "product/_index.scss" ; @import "product/_index.scss" ;

+ 1
- 1
common/mail/signup-html.php View File

<strong><?= Html::encode($user->email) ?></strong></p> <strong><?= Html::encode($user->email) ?></strong></p>


<?php if($user->status == User::STATUS_PRODUCER): ?> <?php if($user->status == User::STATUS_PRODUCER): ?>
<p>Vous pouvez dès maintenant vous connecter à l'<a href="<?= Yii::$app->urlManagerBackend->createAbsoluteUrl(['site/index']); ?>">administration</a> pour configurer votre compte producteur.</p>
<p>Vous pouvez dès maintenant vous connecter à l'<a href="<?= Yii::$app->urlManagerBackend->createAbsoluteUrl(['dashboard/index']); ?>">administration</a> pour configurer votre compte producteur.</p>
<p>Si vous avez des questions ou si vous avez besoin d'être accompagné lors de cette étape, n'hésitez pas à me contacter en réponse à ce mail ou directement au <strong><?= Yii::$app->parameterBag->get('adminPhoneNumber') ?></strong>.</p> <p>Si vous avez des questions ou si vous avez besoin d'être accompagné lors de cette étape, n'hésitez pas à me contacter en réponse à ce mail ou directement au <strong><?= Yii::$app->parameterBag->get('adminPhoneNumber') ?></strong>.</p>
<?php else: ?> <?php else: ?>
<?php if(!is_null($producer)): ?> <?php if(!is_null($producer)): ?>

+ 1
- 2
common/mail/signup-text.php View File



<?php if($user->status == User::STATUS_PRODUCER): ?> <?php if($user->status == User::STATUS_PRODUCER): ?>
Vous pouvez dès maintenant vous connecter à l'administration pour configurer votre compte : Vous pouvez dès maintenant vous connecter à l'administration pour configurer votre compte :
<?= Yii::$app->urlManagerBackend->createAbsoluteUrl(['site/index']); ?>
<?= Yii::$app->urlManagerBackend->createAbsoluteUrl(['dashboard/index']); ?>


Si vous avez des questions ou si vous avez besoin d'être accompagné lors de cette étape, n'hésitez pas à me contacter en réponse à ce mail ou directement au <?= Yii::$app->parameterBag->get('adminPhoneNumber'); ?>. Si vous avez des questions ou si vous avez besoin d'être accompagné lors de cette étape, n'hésitez pas à me contacter en réponse à ce mail ou directement au <?= Yii::$app->parameterBag->get('adminPhoneNumber'); ?>.
<?= Yii::$app->urlManagerBackend->createAbsoluteUrl(['site/index']); ?>
<?php else: ?> <?php else: ?>
<?php if(!is_null($producer)): ?> <?php if(!is_null($producer)): ?>
Vous pouvez maintenant passer commande chez votre producteur "<?= $producer->name ?>" : Vous pouvez maintenant passer commande chez votre producteur "<?= $producer->name ?>" :

+ 1
- 1
common/views/nav_user_top.php View File

// Items du menu // Items du menu
$itemAdministration = [ $itemAdministration = [
'label' => '<span class="glyphicon glyphicon-cog"></span> <span class="link-text">Administration</span>', 'label' => '<span class="glyphicon glyphicon-cog"></span> <span class="link-text">Administration</span>',
'url' => $this->getUrlManagerBackend()->createAbsoluteUrl(['site/index']),
'url' => $this->getUrlManagerBackend()->createAbsoluteUrl(['dashboard/index']),
'visible' => $userManager->isCurrentProducer(), 'visible' => $userManager->isCurrentProducer(),
'linkOptions' => ['class' => 'btn btn-default navbar-btn'] 'linkOptions' => ['class' => 'btn btn-default navbar-btn']
]; ];

Loading…
Cancel
Save