Commit 6db9f6ec authored by Simon Mellerin's avatar Simon Mellerin
Browse files

Update doc développeur

parent f9c6002a
Documentation administrateur
##############################
Pilea peut-être administré via l'interface web ou bien en ligne de commande via la ``console`` Symfony.
Via l'interface web
========================
Les utilisateurs avec le rôle *Admin* ont accès aux informations d'administration de Pilea.
.. |icon_configuration| image:: img/config.png
:alt: icone engrenage
Pour accéder à ces informations, aller sur la page de configuration en cliquant sur le bouton |icon_configuration|
dans la barre du haut. Si vous êtes administrateur, une carte supplémentaire apparait sous votre liste d'adresses :
.. image:: img/admin_card.png
:alt: Aperçu de la partie administrateur de la page de configuration
:align: center
Plusieurs éléments sont visibles sur cette page:
* Un bouton pour accéder à la gestion des utilisateurs
* Un bouton pour accéder aux derniers logs de l'application
* La liste des configurations courantes de l'application
Configurations
------------------------------
Plusieurs fonctionnalités sont paramètrables dans Pilea :
* Le nombre maximum d'adresses qu'un utilisateur puisse créer
* La possiblité de partager des adresses entre utilisateurs
* La possiblité de rendre une adresse publique pour l'ensemble des utilisateurs
* La possiblité pour des utilisateur de pouvoir recharger leurs données via l'interface
* La possiblité pour des utilisateur de pouvoir exporter leurs données via l'interface
Les paramètres courants sont visibles via l'interface d'administration mais ne sont pas modifiable via l'interface web.
Pour les changer, il faut modifier le fichier ``.env`` à la racine de Pilea (le fichier est auto-documenté).
Ci-dessous, un exemple de paramètrage de ce fichier :
.. code-block:: sh
###> symfony/framework-bundle ###
APP_ENV=prod
APP_SECRET=app_secret_you_should_change_this_value
#TRUSTED_PROXIES=127.0.0.1,127.0.0.2
#TRUSTED_HOSTS='^localhost|example\.com$'
###< symfony/framework-bundle ###
###> doctrine/doctrine-bundle ###
# Format described at http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
# For an SQLite database, use: "sqlite:///%kernel.project_dir%/var/data.db"
# Configure your db driver and server_version in config/packages/doctrine.yaml
DATABASE_URL=mysql://admin:admin@127.0.0.1:3306/pilea
# DATABASE_URL=pgsql://admin:password@127.0.0.1:5432/pilea
###< doctrine/doctrine-bundle ###
# Number of places a user can create (-1 for no limit)
PILEA_USER_MAX_PLACES=-1
# Can users share place between them
PILEA_USER_CAN_SHARE_PLACE=1
# Can user fetch data from ui
PILEA_USER_CAN_FETCH=1
# Can user export data from ui
PILEA_USER_CAN_EXPORT=1
# Can a place be public
PILEA_PLACE_CAN_BE_PUBLIC=0
Gestion des utilisateurs
------------------------------
Accédez à la page de gestion fes utilisateurs en cliquant sur le bouton ``Gérer les utilisateurs`` ou en visitant la page ``/admin/users``.
Sur cette page se trouve un tableau listant l'ensemble des utilisateurs de Pilea.
Au bout de chaque ligne, des boutons vous permettent de :
* Modifier l'utilisateur
* Désactiver/activer l'utilisateur
* Supprimer l'utilisateur (et l'ensemble de ses données)
Pour créer un nouvel utilisateur, cliquez sur le bouton ``Ajouter un utilisateur``.
Un utilisateur désactivé ne peut plus se connecter, mais ses données ne sont pas supprimées.
Les logs
----------
L'interface web permet de visualiser les derniers logs de Pilea. Cliquez sur le bouton ``Voir les derniers logs`` ou visitez la page ``/admin/log``.
Via la console Symfony
=============================
Logs
======
\ No newline at end of file
Plusieurs commandes Symfony existent pour administrer Pilea.
Les commandes sont toutes auto-documentées, et s'utilisent comme des commandes Symfony classiques, par exemple :
.. code-block:: bash
# Se rendre dans le dossier racine de Pilea
cd /emplacement/de/pilea
# Pour connaitre l'utilisation d'une commande :
php7.3 bin/console pilea:user:activate --help
# Pour l'utiliser :
php7.3 bin/console pilea:user:activate username
Commandes génériques
-----------------------
* ``pilea:install`` : Installateur de Pilea
* ``pilea:fetch-data`` : Récupérer les différentes données (c'est cette commande qui est appelé quotidiennement par le cron de Pilea)
* ``pilea:version`` : Connaître la version courante de Pilea
Commandes de gestion des utilisateurs
--------------------------------------
* ``pilea:user:add`` : Ajouter un utilisateur
* ``pilea:user:edit`` : Modifer un utilisateur
* ``pilea:user:activate`` : Activer un utilisateur
* ``pilea:user:deactivate`` : Désactiver un utilisateur
* ``pilea:user:exist`` : Savoir si un utilisateur existe déjà
* ``pilea:user:grant`` : Donner à un utilisateur le rôle d'admin
Commandes de développement
----------------------------
Cette commande ne peut être utilisées que sur un environnement de développement.
* ``pilea:dev:generate-fake-data`` : Générer de fausses données
Documentation développeur
##########################
A venir
\ No newline at end of file
Mettre en place un environnement de développement
-----------------------------------------------------
Il n'y pas encore de docker ou de truc comme ça pour installer facilement le projet.
Pour monter un environement de dev :
* Suivre la doc d'installation classique
* Refaire un ``composer install`` en incluant les dépendances de dev :
.. code-block:: sh
php7.3 composer.phar install
* Changer la variable ``APP_ENV`` dans le ``.env`` :
.. code-block:: sh
...
###> symfony/framework-bundle ###
APP_ENV=dev
...
* Générer des données de tests :
.. code-block:: sh
# Génére des données pour les 3 derniers mois pour un utilisateur user-test/password
# attention, la génération peut-être un peu longue, vous pouvez réduire le nombre de
# de données créées avec l'option --from
php7.3 bin/console pilea:dev:generate-fake-data
Et voilà !
Générer les assets
------------------------------
Les assets sont gérer avec `Webpack Encore <https://symfony.com/doc/current/frontend.html>`_
.. code-block:: bash
# Installer les dépendances
yarn install
# Build en mode prod
yarn build
# Build en mode dev
yarn dev
# Build en mode watch
yarn dev --watch
......@@ -44,10 +44,10 @@ L'idée derrière Pilea est de permettre à l'utilsateur de pouvoir, au travers
Todo List
=========
* Ajouter un onglet pour comparer des périodes et des compteurs
* Prendre en compte d'autres sources de données (comme un fichier CSV)
* Ajouter un onglet pour comparer des périodes et/ou des adresses
* Pouvoir importer des données
Support
=======
Posez vos questions sur `Github <https://gitlab.com/pilea/Pilea/issues/>`_.
\ No newline at end of file
Posez vos questions sur `Gitlab <https://gitlab.com/pilea/Pilea/issues/>`_.
......@@ -64,28 +64,28 @@ Installer les dépendance `Composer <https://getcomposer.org/>`_ :
.. code-block:: sh
cd [app_folder]
composer install
php7.3 composer.phar install --no-dev
Lancer le script d'installation :
.. code-block:: sh
bin/console pilea:install
php7.3 bin/console pilea:install
Ajouter une premier utilisateur et lui donner les droits administrateur :
.. code-block:: sh
bin/console pilea:user:add [username] [password]
bin/console pilea:user:grant [username]
php7.3 bin/console pilea:user:add [username] [password]
php7.3 bin/console pilea:user:grant [username]
Mettre en place le cron :
.. code-block:: sh
echo "*/10 * * * * [user] /[app_folder]/bin/console pilea:fetch-data false" > /etc/cron.d/pilea
echo "*/10 * * * * [user] php7.3 /[app_folder]/bin/console pilea:fetch-data false" > /etc/cron.d/pilea
# où [user] est l'utilisateur linux qui lancera le cron
Enfin, configurer `NGINX <https://symfony.com/doc/current/setup/web_server_configuration.html#web-server-nginx>`_ ou
`Apache <https://symfony.com/doc/current/setup/web_server_configuration.html>`_ comme pour une application Symfony 4 classique
\ No newline at end of file
`Apache <https://symfony.com/doc/current/setup/web_server_configuration.html>`_ comme pour une application Symfony 4 classique
......@@ -8,7 +8,7 @@ on configure un compteur Linky et une station d'observation météo.
Une *adresse* peut ensuite être rendue publique pour quelle soit visible par tous les
utilisateurs de Pilea, ou bien, elle peut être partagée à une liste d'utilisateur.
Pour gérer vos adresses, aller sur la page de configuration sur le bouton |icon_configuration|
Pour gérer vos adresses, aller sur la page de configuration en cliquant sur le bouton |icon_configuration|
dans la barre du haut.
.. |icon_configuration| image:: ../img/config.png
......@@ -26,4 +26,4 @@ Ci-dessous, le formulaire d'ajout d'une adresse :
.. image:: ../img/adresse_form.png
:align: center
:scale: 50%
:alt: Aperçu du formulaire de création d'une adresse
\ No newline at end of file
:alt: Aperçu du formulaire de création d'une adresse
......@@ -46,4 +46,4 @@ les données du mois précédent.
.. image:: ../img/dash_analyse.png
:alt: Aperçu de l'analyse croisée
:align: center
\ No newline at end of file
:align: center
......@@ -44,5 +44,3 @@ Glossaire
.. seealso::
`Les précipitations sur Wikipédia <https://fr.wikipedia.org/wiki/Pr%C3%A9cipitations#Pluviom%C3%A9trie>`_
......@@ -132,4 +132,4 @@ Comment lire le graphique
Comme le graphique d'analyse croisée, le graphique papillon permet de chercher des corrélations entre 2 grandeurs. Dans le cas de Pilea, on
compare toujours la consommation d'électicité et une grandeur météorologique.
Si 2 grandeurs sont directement corrélées, le graphique devrait ressembler à un papillon, c'est à dire être symétrique, d'où sont nom.
\ No newline at end of file
Si 2 grandeurs sont directement corrélées, le graphique devrait ressembler à un papillon, c'est à dire être symétrique, d'où sont nom.
......@@ -36,7 +36,7 @@ class ExistUserCommand extends Command
{
$this
->setName('pilea:user:exist')
->setDescription('Edit an user.')
->setDescription('Does an user exist ?')
->addArgument('username', InputArgument::REQUIRED, 'Username')
;
}
......
......@@ -3,18 +3,26 @@
namespace App\Command;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\ArrayInput;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\BufferedOutput;
use Symfony\Component\Console\Output\OutputInterface;
use App\Constants;
use Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface;
/***
/**
* Get current version of pilea.
*/
class VersionCommand extends Command
{
/** @var ContainerBagInterface */
private $parameters;
/**
* Default constructor
*/
public function __construct(ContainerBagInterface $parameters)
{
$this->parameters = $parameters;
parent::__construct();
}
protected function configure()
{
......@@ -25,7 +33,7 @@ class VersionCommand extends Command
protected function execute(InputInterface $input, OutputInterface $output)
{
$output->write(Constants::VERSION);
$output->write($this->parameters->get('pilea.version'));
return 0;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment