Add schema.sql to create database, add php files and templates for index, entries, exits and search.
This commit is contained in:
parent
16f10215e9
commit
4448a9bde1
|
@ -4,7 +4,7 @@ Cette extension permet de gérer les matériels de l'association: stock, entrée
|
|||
|
||||
## Installation
|
||||
|
||||
- Télécharger le fichier materiels.tar.gz et l'ajouter dans le répertoire garradin/plugins.
|
||||
- Télécharger le fichier [materiels.tar.gz](https://gitlab.com/JBthePenguin/garradin-plugin-materiels/-/raw/main/materiels.tar.gz) et l'ajouter dans le répertoire garradin/plugins.
|
||||
- Installer le plugin via le menu "Configuration > Extensions" de Garradin.
|
||||
|
||||
## Utilisation - Fonctionnalités
|
||||
|
|
BIN
materiels.tar.gz
BIN
materiels.tar.gz
Binary file not shown.
|
@ -0,0 +1,5 @@
|
|||
<?php
|
||||
|
||||
namespace Garradin;
|
||||
|
||||
$db->import(__DIR__ . '/schema.sql');
|
|
@ -0,0 +1,57 @@
|
|||
CREATE TABLE IF NOT EXISTS plugin_materiels_category (
|
||||
id integer NOT NULL PRIMARY KEY autoincrement,
|
||||
name varchar(100) NOT NULL,
|
||||
CONSTRAINT u_category_name UNIQUE ( name )
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS plugin_materiels_location (
|
||||
id integer NOT NULL PRIMARY KEY autoincrement,
|
||||
name varchar(100) NOT NULL,
|
||||
CONSTRAINT u_location_name UNIQUE ( name )
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS plugin_materiels_equipment (
|
||||
id integer NOT NULL PRIMARY KEY autoincrement,
|
||||
category_id integer NOT NULL,
|
||||
designation varchar(255) NOT NULL,
|
||||
localisation_id integer NOT NULL,
|
||||
current_value decimal NOT NULL DEFAULT 0,
|
||||
number_of_materiels integer NOT NULL DEFAULT 1,
|
||||
CONSTRAINT u_equipment_designation UNIQUE ( designation ),
|
||||
FOREIGN KEY ( category_id ) REFERENCES plugin_materiels_category( id ) ON DELETE RESTRICT ON UPDATE CASCADE,
|
||||
FOREIGN KEY ( localisation_id ) REFERENCES plugin_materiels_location( id ) ON DELETE RESTRICT ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS plugin_materiels_entry (
|
||||
id integer NOT NULL PRIMARY KEY autoincrement,
|
||||
kind varchar(20) NOT NULL,
|
||||
equipment_id integer NOT NULL,
|
||||
date_of_entry date NOT NULL,
|
||||
FOREIGN KEY ( equipment_id ) REFERENCES plugin_materiels_equipment( id ) ON DELETE RESTRICT ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS plugin_materiels_temporary_entry (
|
||||
id integer NOT NULL PRIMARY KEY autoincrement,
|
||||
kind varchar(20) NOT NULL,
|
||||
equipment_id integer NOT NULL,
|
||||
start_date date NOT NULL,
|
||||
end_date date,
|
||||
FOREIGN KEY ( equipment_id ) REFERENCES plugin_materiels_equipment( id ) ON DELETE RESTRICT ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS plugin_materiels_output (
|
||||
id integer NOT NULL PRIMARY KEY autoincrement,
|
||||
kind varchar(20) NOT NULL,
|
||||
equipment_id integer NOT NULL,
|
||||
output_date date NOT NULL,
|
||||
FOREIGN KEY ( equipment_id ) REFERENCES plugin_materiels_entry( equipment_id ) ON DELETE RESTRICT ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS plugin_materiels_temporary_output (
|
||||
id integer NOT NULL PRIMARY KEY autoincrement,
|
||||
kind varchar(20) NOT NULL,
|
||||
equipment_id integer NOT NULL,
|
||||
start_date date NOT NULL,
|
||||
end_date date,
|
||||
FOREIGN KEY ( equipment_id ) REFERENCES plugin_materiels_entry( equipment_id ) ON DELETE RESTRICT ON UPDATE CASCADE
|
||||
);
|
|
@ -0,0 +1,10 @@
|
|||
<nav class="tabs">
|
||||
<ul>
|
||||
<li class="{if $current == 'index'}current{/if}"><a href="{plugin_url}">Matériels en stock</a></li>
|
||||
<li class="{if $current == 'entrees_definitives'}current{/if}"><a href="{plugin_url file="entrees_definitives.php"}"><b>Entrées définitives</b></a></li>
|
||||
<li class="{if $current == 'entrees_provisoires'}current{/if}"><a href="{plugin_url file="entrees_provisoires.php"}">Entrées provisoires</a></li>
|
||||
<li class="{if $current == 'sorties_definitives'}current{/if}"><a href="{plugin_url file="sorties_definitives.php"}">Sorties définitives</a></li>
|
||||
<li class="{if $current == 'sorties_provisoires'}current{/if}"><a href="{plugin_url file="sorties_provisoires.php"}">Sorties provisoires</a></li>
|
||||
<li class="{if $current == 'recherche'}current{/if}"><a href="{plugin_url file="recherche.php"}">Recherche</a></li>
|
||||
</ul>
|
||||
</nav>
|
|
@ -1,20 +0,0 @@
|
|||
{include file="admin/_head.tpl" title="Configuration — %s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id}
|
||||
|
||||
{form_errors}
|
||||
|
||||
<form method="post" action="{$self_url}">
|
||||
|
||||
<fieldset>
|
||||
<legend>Configuration</legend>
|
||||
<dl>
|
||||
{input type="checkbox" name="display_hello" value="1" default=$plugin.config label="Afficher un message de coucou"}
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
||||
<p class="submit">
|
||||
{csrf_field key="config_plugin_%s"|args:$plugin.id}
|
||||
{button type="submit" class="main" name="save" label="Enregistrer" shape="right"}
|
||||
</p>
|
||||
</form>
|
||||
|
||||
{include file="admin/_foot.tpl"}
|
|
@ -0,0 +1,5 @@
|
|||
{include file="admin/_head.tpl" title="%s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id}
|
||||
|
||||
{include file="%s_nav.tpl"|args:$plugin_tpl current="entrees_definitives"}
|
||||
|
||||
{include file="admin/_foot.tpl"}
|
|
@ -0,0 +1,5 @@
|
|||
{include file="admin/_head.tpl" title="%s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id}
|
||||
|
||||
{include file="%s_nav.tpl"|args:$plugin_tpl current="entrees_provisoires"}
|
||||
|
||||
{include file="admin/_foot.tpl"}
|
|
@ -1,12 +1,5 @@
|
|||
{include file="admin/_head.tpl" title="Extension — %s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id}
|
||||
|
||||
<p class="alert block">Gestion du materiel de l'association</p>
|
||||
|
||||
{if $plugin.config.display_hello}
|
||||
<h3>L'affichage du message de bienvenue est activé</h3>
|
||||
{else}
|
||||
<h3>L'affichage du message de bienvenue est désactivé !</h3>
|
||||
{/if}
|
||||
{include file="admin/_head.tpl" title="%s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id}
|
||||
|
||||
{include file="%s_nav.tpl"|args:$plugin_tpl current="index"}
|
||||
|
||||
{include file="admin/_foot.tpl"}
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
{include file="admin/_head.tpl" title="%s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id}
|
||||
|
||||
{include file="%s_nav.tpl"|args:$plugin_tpl current="recherche"}
|
||||
|
||||
{include file="admin/_foot.tpl"}
|
|
@ -0,0 +1,5 @@
|
|||
{include file="admin/_head.tpl" title="%s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id}
|
||||
|
||||
{include file="%s_nav.tpl"|args:$plugin_tpl current="sorties_definitives"}
|
||||
|
||||
{include file="admin/_foot.tpl"}
|
|
@ -0,0 +1,5 @@
|
|||
{include file="admin/_head.tpl" title="%s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id}
|
||||
|
||||
{include file="%s_nav.tpl"|args:$plugin_tpl current="sorties_provisoires"}
|
||||
|
||||
{include file="admin/_foot.tpl"}
|
|
@ -0,0 +1,5 @@
|
|||
<?php
|
||||
|
||||
namespace Garradin;
|
||||
|
||||
$tpl->assign('plugin_tpl', PLUGIN_ROOT . '/templates/');
|
|
@ -1,26 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Garradin;
|
||||
|
||||
$session->requireAccess($session::SECTION_CONFIG, $session::ACCESS_ADMIN);
|
||||
|
||||
if (f('save'))
|
||||
{
|
||||
$form->check('config_plugin_' . $plugin->id(), [
|
||||
'display_hello' => 'boolean',
|
||||
]);
|
||||
|
||||
if (!$form->hasErrors())
|
||||
{
|
||||
try {
|
||||
$plugin->setConfig('display_hello', (bool) f('display_hello'));
|
||||
utils::redirect(utils::plugin_url());
|
||||
}
|
||||
catch (UserException $e)
|
||||
{
|
||||
$form->addError($e->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$tpl->display(PLUGIN_ROOT . '/templates/config.tpl');
|
|
@ -0,0 +1,7 @@
|
|||
<?php
|
||||
|
||||
namespace Garradin;
|
||||
|
||||
require_once __DIR__ . '/_inc.php';
|
||||
|
||||
$tpl->display(PLUGIN_ROOT . '/templates/entrees_definitives.tpl');
|
|
@ -0,0 +1,7 @@
|
|||
<?php
|
||||
|
||||
namespace Garradin;
|
||||
|
||||
require_once __DIR__ . '/_inc.php';
|
||||
|
||||
$tpl->display(PLUGIN_ROOT . '/templates/entrees_provisoires.tpl');
|
|
@ -2,4 +2,11 @@
|
|||
|
||||
namespace Garradin;
|
||||
|
||||
if ($plugin->needUpgrade())
|
||||
{
|
||||
$plugin->upgrade();
|
||||
}
|
||||
|
||||
require_once __DIR__ . '/_inc.php';
|
||||
|
||||
$tpl->display(PLUGIN_ROOT . '/templates/index.tpl');
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
<?php
|
||||
|
||||
namespace Garradin;
|
||||
|
||||
require_once __DIR__ . '/_inc.php';
|
||||
|
||||
$tpl->display(PLUGIN_ROOT . '/templates/recherche.tpl');
|
|
@ -0,0 +1,7 @@
|
|||
<?php
|
||||
|
||||
namespace Garradin;
|
||||
|
||||
require_once __DIR__ . '/_inc.php';
|
||||
|
||||
$tpl->display(PLUGIN_ROOT . '/templates/sorties_definitives.tpl');
|
|
@ -0,0 +1,7 @@
|
|||
<?php
|
||||
|
||||
namespace Garradin;
|
||||
|
||||
require_once __DIR__ . '/_inc.php';
|
||||
|
||||
$tpl->display(PLUGIN_ROOT . '/templates/sorties_provisoires.tpl');
|
Loading…
Reference in New Issue