Commit 3ee94a76 authored by Laurent Lécluse's avatar Laurent Lécluse
Browse files

Améliorations dans l'affichage du formulaire de saisie de services

parent 1b7ec3a3
......@@ -29,6 +29,12 @@ author: Laurent Lécluse - DSI - Unicaen
* Le pays "France" peut maintenant être sélectionné dans la configuration globale de l'application
* Formulaire de saisie de services amélioré :
* Le choix de l'intervenant n'apparait plus lorsque l'on se trouve déjà dans la fiche de l'intervenant
* La saisie des volumes horaires n'est affichée que lorsque c'est nécessaire (plus de liste de tous les types d'intervention affichés par défaut).
* Il est désormais possible de limiter les types d'intervention disponibles pour saisir des services à l'extérieur
(paramétrage possible depuis Administration/Types d'intervention)
## Notes de mise à jour
* Modifiez la structure de votre base de données en exécutant dans SQL developer le script de mise à jour suivant :
......
......@@ -205,4 +205,10 @@ SELECT
FROM (
SELECT 'enseignement' c, 'import-intervenant-previsionnel-agenda' p, 'Import service prévisionnel depuis agenda' l FROM dual
UNION ALL SELECT 'enseignement' c, 'import-intervenant-realise-agenda' p, 'Import service réalisé depuis agenda' l FROM dual
) t1;
\ No newline at end of file
) t1;
ALTER TABLE type_intervention ADD (
visible_exterieur NUMBER(1) DEFAULT 1 NOT NULL
);
UPDATE type_intervention SET visible_exterieur = 0 WHERE code NOT IN ('CM','TD','TP','Stage','Projet','Mémoire');
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
<entity name="Application\Entity\Db\TypeIntervention" table="TYPE_INTERVENTION">
<id name="id" type="integer" column="ID">
<generator strategy="SEQUENCE"/>
</id>
<field name="code" type="string" column="CODE" length="2" nullable="false"/>
<field name="histoCreation" type="datetime" column="HISTO_CREATION" nullable="false"/>
<field name="histoDestruction" type="datetime" column="HISTO_DESTRUCTION" nullable="true"/>
<field name="histoModification" type="datetime" column="HISTO_MODIFICATION" nullable="false"/>
<field name="libelle" type="string" column="LIBELLE" length="30" nullable="false"/>
<field name="ordre" type="integer" column="ORDRE" nullable="false"/>
<field name="tauxHetdService" type="float" column="TAUX_HETD_SERVICE" nullable="false"/>
<field name="tauxHetdComplementaire" type="float" column="TAUX_HETD_Complementaire" nullable="false"/>
<field name="visible" type="boolean" column="VISIBLE" nullable="false"/>
<many-to-one field="anneeDebut" target-entity="Application\Entity\Db\Annee">
<join-column name="ANNEE_DEBUT_ID" referenced-column-name="ID"/>
</many-to-one>
<many-to-one field="anneeFin" target-entity="Application\Entity\Db\Annee">
<join-column name="ANNEE_FIN_ID" referenced-column-name="ID"/>
</many-to-one>
<field name="regleFOAD" type="boolean" column="REGLE_FOAD" nullable="false"/>
<field name="regleFC" type="boolean" column="REGLE_FC" nullable="false"/>
<many-to-one field="histoModificateur" target-entity="Application\Entity\Db\Utilisateur">
<join-columns>
<join-column name="HISTO_MODIFICATEUR_ID" referenced-column-name="ID"/>
</join-columns>
</many-to-one>
<many-to-one field="histoDestructeur" target-entity="Application\Entity\Db\Utilisateur">
<join-columns>
<join-column name="HISTO_DESTRUCTEUR_ID" referenced-column-name="ID"/>
</join-columns>
</many-to-one>
<many-to-one field="histoCreateur" target-entity="Application\Entity\Db\Utilisateur">
<join-columns>
<join-column name="HISTO_CREATEUR_ID" referenced-column-name="ID"/>
</join-columns>
</many-to-one>
</entity>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
<entity name="Application\Entity\Db\TypeIntervention" table="TYPE_INTERVENTION">
<id name="id" type="integer" column="ID">
<generator strategy="SEQUENCE"/>
</id>
<field name="code" type="string" column="CODE" length="2" nullable="false"/>
<field name="histoCreation" type="datetime" column="HISTO_CREATION" nullable="false"/>
<field name="histoDestruction" type="datetime" column="HISTO_DESTRUCTION" nullable="true"/>
<field name="histoModification" type="datetime" column="HISTO_MODIFICATION" nullable="false"/>
<field name="libelle" type="string" column="LIBELLE" length="30" nullable="false"/>
<field name="ordre" type="integer" column="ORDRE" nullable="false"/>
<field name="tauxHetdService" type="float" column="TAUX_HETD_SERVICE" nullable="false"/>
<field name="tauxHetdComplementaire" type="float" column="TAUX_HETD_Complementaire" nullable="false"/>
<field name="visible" type="boolean" column="VISIBLE" nullable="false"/>
<field name="visibleExterieur" type="boolean" column="VISIBLE_EXTERIEUR" nullable="false"/>
<many-to-one field="anneeDebut" target-entity="Application\Entity\Db\Annee">
<join-column name="ANNEE_DEBUT_ID" referenced-column-name="ID"/>
</many-to-one>
<many-to-one field="anneeFin" target-entity="Application\Entity\Db\Annee">
<join-column name="ANNEE_FIN_ID" referenced-column-name="ID"/>
</many-to-one>
<field name="regleFOAD" type="boolean" column="REGLE_FOAD" nullable="false"/>
<field name="regleFC" type="boolean" column="REGLE_FC" nullable="false"/>
<many-to-one field="histoModificateur" target-entity="Application\Entity\Db\Utilisateur">
<join-columns>
<join-column name="HISTO_MODIFICATEUR_ID" referenced-column-name="ID"/>
</join-columns>
</many-to-one>
<many-to-one field="histoDestructeur" target-entity="Application\Entity\Db\Utilisateur">
<join-columns>
<join-column name="HISTO_DESTRUCTEUR_ID" referenced-column-name="ID"/>
</join-columns>
</many-to-one>
<many-to-one field="histoCreateur" target-entity="Application\Entity\Db\Utilisateur">
<join-columns>
<join-column name="HISTO_CREATEUR_ID" referenced-column-name="ID"/>
</join-columns>
</many-to-one>
</entity>
</doctrine-mapping>
......@@ -52,6 +52,13 @@ class TypeIntervention implements HistoriqueAwareInterface, ResourceInterface
*/
private $visible;
/**
* visible extérieur
*
* @var boolean
*/
private $visibleExterieur;
/**
* anneeDebut
*
......@@ -154,6 +161,32 @@ class TypeIntervention implements HistoriqueAwareInterface, ResourceInterface
return $this;
}
/**
* @return bool
*/
public function isVisibleExterieur(): bool
{
return $this->visibleExterieur;
}
/**
* @param bool $visibleExterieur
*
* @return TypeIntervention
*/
public function setVisibleExterieur(bool $visibleExterieur): TypeIntervention
{
$this->visibleExterieur = $visibleExterieur;
return $this;
}
/**
* @return Annee
*/
......
......@@ -34,16 +34,62 @@ class SaisieForm extends AbstractViewHelper
/**
* @return \Application\Entity\Db\ElementPedagogique|null
*/
protected function getElementPedagogique()
{
$service = $this->form->get('service')->getObject();
/* @var $service Service */
return $service->getElementPedagogique();
}
/**
* @return \Application\Entity\Db\Etablissement|null
*/
protected function getEtablissement()
{
$service = $this->form->get('service')->getObject();
/* @var $service Service */
return $service->getEtablissement();
}
/**
* @return bool
*/
protected function isEnseignementChoisi(): bool
{
$etablissement = $this->getEtablissement();
$elementPedagogique = $this->getElementPedagogique();
if ($elementPedagogique){
return true;
}
if (!$etablissement){
return false;
}
if ($etablissement != $this->getServiceContext()->getEtablissement()){
return true;
}
return false;
}
/**
*
* @return Periode[]
*/
public function getPeriodes()
{
$service = $this->form->get('service')->getObject();
/* @var $service Service */
if ($service->getElementPedagogique() && $service->getElementPedagogique()->getPeriode()) {
return [$service->getElementPedagogique()->getPeriode()];
$ep = $this->getElementPedagogique();
if ($ep && $ep->getPeriode()) {
return [$ep->getPeriode()];
}
return $this->getServicePeriode()->getEnseignement();
......@@ -135,12 +181,15 @@ class SaisieForm extends AbstractViewHelper
if (!$this->getServiceContext()->isModaliteServicesSemestriel($this->form->getTypeVolumeHoraire())){
return null;
}
$res = '';
foreach ($this->getPeriodes() as $periode) {
$res .= '<div class="periode" id="' . $periode->getCode() . '">';
$res .= '<h3>' . $periode . '</h3>';
$res .= $this->renderVolumeHoraire($this->form->get($periode->getCode()));
$res .= '</div>';
if ($this->isEnseignementChoisi()){
foreach ($this->getPeriodes() as $periode) {
$res .= '<div class="periode" id="' . $periode->getCode() . '">';
$res .= '<h3>' . $periode . '</h3>';
$res .= $this->renderVolumeHoraire($this->form->get($periode->getCode()));
$res .= '</div>';
}
}
return $res;
......@@ -167,6 +216,7 @@ class SaisieForm extends AbstractViewHelper
} else {
$qb = $this->getServiceTypeIntervention()->finderByHistorique();
$this->getServiceTypeIntervention()->finderByContext($qb);
$this->getServiceTypeIntervention()->finderByVisibleExterieur(true, $qb);
$typesIntervention = $this->getServiceTypeIntervention()->getList($qb);
}
......
......@@ -318,6 +318,7 @@ $.widget("ose.serviceForm", {
this.element.find('#element-interne').hide();
this.getElementElementPedagogiqueId().val('');
this.getElementElementPedagogiqueLabel().val('');
this.getElementElementPedagogiqueListe().selectpicker('val','');
this.element.find('#element-externe').show();
}
this.updateVolumesHoraires();
......@@ -347,11 +348,6 @@ $.widget("ose.serviceForm", {
if ('service-interne' == this.getInterneExterne() && '' == this.getElementElementPedagogiqueId().val()) {
readOnly = true;
}
/* text = 'UPDATING = ' + (this.updating ? 'true' : 'false');
text += "\nINTERNE = " + (this.getInterneExterne());
text += "\nEP VIDE = " + ('' == this.getElementElementPedagogiqueId().val() ? 'true' : 'false');
text += "\nrésultat RO = " + (readOnly ? 'true' : 'false');
alert(text);*/
this.getElementVolumesHoraires().find('input.form-control').prop('disabled', readOnly);
this.getElementVolumesHoraires().find('button.prevu-to-realise').prop('disabled', readOnly);
......@@ -384,6 +380,10 @@ $.widget("ose.serviceForm", {
that.updateVolumesHoraires();
});
this.getElementEtablissementId().on("change", function () {
that.updateVolumesHoraires();
});
this.initVolumesHoraires();
},
......
Supports Markdown
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