Compare commits
4 Commits
d0d8183f7a
...
594122ed07
Author | SHA1 | Date |
---|---|---|
afornerot | 594122ed07 | |
afornerot | c5333887cc | |
Arnaud Fornerot | 629d77175a | |
Arnaud Fornerot | 1a54b9a3f9 |
|
@ -86,6 +86,19 @@ class SecurityController extends Controller
|
|||
if($masteridentity=="SSO") {
|
||||
if(empty($email)) $email = $username."@nomail.com";
|
||||
|
||||
// On s'assure qu'il n'y a pas déjà un utilisateur avec le même mail
|
||||
$usermail = $em->getRepository('CadolesCoreBundle:User')->findOneBy(array("email"=>$email));
|
||||
if($usermail) {
|
||||
return $this->render('CadolesCoreBundle:Registration:info.html.twig', [
|
||||
'useheader' => true,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => false,
|
||||
'info' => "Votre compte ne peut être activé car votre adresse mel est déjà utilisée par un autre compte utilisateur.<br>Nous sommes désolés du désagrément et vous invitons à contacter un administrateur.",
|
||||
'mode' => "error",
|
||||
'redirectto' => "",
|
||||
]);
|
||||
}
|
||||
|
||||
// Là c'est normal que potentiellement il n'existe pas il faut donc l'autogénérer
|
||||
$user = new User();
|
||||
|
||||
|
|
|
@ -8,6 +8,18 @@
|
|||
{% autoescape %}
|
||||
<p>{{ info|raw }}</p>
|
||||
{% endautoescape %}
|
||||
|
||||
{% if mode=="error" %}
|
||||
{% if mode_auth == "SAML" %}
|
||||
<a class="btn btn-primary" href="{{ path("lightsaml_sp.logout") }}">Déconnexion</a>
|
||||
{% elseif mode_auth == "CAS" %}
|
||||
<a class="btn btn-primary" href="{{ path("cas_sp.logout") }}">Déconnexion</a>
|
||||
{% elseif mode_auth == "SQL" %}
|
||||
<a class="btn btn-primary" href="{{ path("cadoles_core_logout") }}">Déconnexion</a>
|
||||
{% elseif mode_auth == "LDAP" %}
|
||||
<a class="btn btn-primary" href="{{ path("cadoles_core_ldap_logout") }}">Déconnexion</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
|
|
@ -65,7 +65,11 @@ class ItemController extends Controller
|
|||
{
|
||||
// Initialisation de l'enregistrement
|
||||
$data = new Item();
|
||||
|
||||
if($this->GetParameter("activate_widsonde")) {
|
||||
$data->setClicksonde(true);
|
||||
$data->setClicksondeservice("PAGE_ENT");
|
||||
}
|
||||
|
||||
// Création du formulaire
|
||||
$form = $this->createForm(ItemType::class,$data,array(
|
||||
"mode" => "submit",
|
||||
|
@ -206,6 +210,26 @@ class ItemController extends Controller
|
|||
return $response;
|
||||
}
|
||||
|
||||
|
||||
public function forceorderAction(Request $request)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$categorys=$em->getRepository("CadolesPortalBundle:Itemcategory")->findAll();
|
||||
|
||||
foreach($categorys as $category) {
|
||||
$i=0;
|
||||
$items=$em->getRepository("CadolesPortalBundle:Item")->findBy(["itemcategory"=>$category],["title"=>"ASC"]);
|
||||
foreach($items as $item) {
|
||||
$i++;
|
||||
$item->setRowOrder($i);
|
||||
$em->flush();
|
||||
}
|
||||
}
|
||||
|
||||
// Retour à la liste
|
||||
return $this->redirectToRoute($this->labelroute);
|
||||
}
|
||||
|
||||
protected function getDatas()
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
|
|
@ -150,13 +150,16 @@ class ItemType extends AbstractType
|
|||
|
||||
if($options["activate_widsonde"]) {
|
||||
$builder
|
||||
/*
|
||||
->add('clicksonde', CheckboxType::class, [
|
||||
"label" => "Exécuter une sonde statistique sur le clic",
|
||||
"required" => false
|
||||
])
|
||||
])
|
||||
*/
|
||||
|
||||
->add('clicksondeservice', ChoiceType::class, [
|
||||
"label" => 'Type de Service associé à la sonde',
|
||||
"label_attr" => array("style" => "display:inline"),
|
||||
"placeholder" => 'Sélectionner un service',
|
||||
"required" => false,
|
||||
"choices" => [
|
||||
|
|
|
@ -7,7 +7,7 @@ use Doctrine\Common\Collections\ArrayCollection;
|
|||
|
||||
class ItemRepository extends EntityRepository
|
||||
{
|
||||
public function getUserItems($user,&$bookmarks,&$itemsordered,&$itemcategorys,$iditemcategory=null,$ssoitems,$withbookmark=1,$fgessential=false) {
|
||||
public function getUserItems($user,&$bookmarks,&$itemsordered,&$itemcategorys,$iditemcategory=null,$ssoitems=[],$withbookmark=1,$fgessential=false) {
|
||||
// Profilage
|
||||
$roles=($user?$user->getRoles():["ROLE_ANONYME"]);
|
||||
$groups=($user?$user->getGroups():[]);
|
||||
|
@ -114,26 +114,28 @@ class ItemRepository extends EntityRepository
|
|||
|
||||
// Récupération des items par ssoitem
|
||||
$itemsssoitems=[];
|
||||
foreach($ssoitems as $ssoitem) {
|
||||
$qb = $this->getEntityManager()->createQueryBuilder();
|
||||
$qb->select('item')
|
||||
->from("CadolesPortalBundle:Item", 'item')
|
||||
->where("item.ssoitem=:ssoitem ")
|
||||
->setParameter("ssoitem",$ssoitem);
|
||||
|
||||
if($iditemcategory && $itemcategoryfilter) {
|
||||
$qb->andWhere("item.itemcategory=:itemcategory")
|
||||
->setParameter("itemcategory",$itemcategoryfilter);
|
||||
}
|
||||
|
||||
$itemsssoitems=$qb->getQuery()->getResult();
|
||||
foreach($itemsssoitems as $itemssoitem) {
|
||||
if(!$bookmarksitems->contains($itemssoitem) && !$items->contains($itemssoitem)) {
|
||||
if(!$fgessential || ($fgessential && $itemssoitem->getEssential()))
|
||||
$items->add($itemssoitem);
|
||||
if(is_array($ssoitems)) {
|
||||
foreach($ssoitems as $ssoitem) {
|
||||
$qb = $this->getEntityManager()->createQueryBuilder();
|
||||
$qb->select('item')
|
||||
->from("CadolesPortalBundle:Item", 'item')
|
||||
->where("item.ssoitem=:ssoitem ")
|
||||
->setParameter("ssoitem",$ssoitem);
|
||||
|
||||
if($iditemcategory && $itemcategoryfilter) {
|
||||
$qb->andWhere("item.itemcategory=:itemcategory")
|
||||
->setParameter("itemcategory",$itemcategoryfilter);
|
||||
}
|
||||
|
||||
if(!$itemalls->contains($itemssoitem)) $itemalls->add($itemssoitem);
|
||||
$itemsssoitems=$qb->getQuery()->getResult();
|
||||
foreach($itemsssoitems as $itemssoitem) {
|
||||
if(!$bookmarksitems->contains($itemssoitem) && !$items->contains($itemssoitem)) {
|
||||
if(!$fgessential || ($fgessential && $itemssoitem->getEssential()))
|
||||
$items->add($itemssoitem);
|
||||
}
|
||||
|
||||
if(!$itemalls->contains($itemssoitem)) $itemalls->add($itemssoitem);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -117,6 +117,10 @@ cadoles_portal_config_item_order:
|
|||
path: /config/item/order
|
||||
defaults: { _controller: CadolesPortalBundle:Item:order }
|
||||
|
||||
cadoles_portal_config_item_forceorder:
|
||||
path: /config/item/forceorder
|
||||
defaults: { _controller: CadolesPortalBundle:Item:forceorder }
|
||||
|
||||
cadoles_portal_config_ajax_item_seleclist:
|
||||
path: /config/item/ajax/selectlist
|
||||
defaults: { _controller: CadolesPortalBundle:Item:ajaxseleclist }
|
||||
|
|
|
@ -0,0 +1,138 @@
|
|||
<table class="table table-striped table-bordered table-hover dataTable no-footer">
|
||||
<thead>
|
||||
<tr>
|
||||
<td>Libellé du service</td>
|
||||
<td>Description</td>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tr>
|
||||
<td>ACCUEIL</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>ACTUALITES</td>
|
||||
<td>Création ou publication d’actualités, publiques ou privées. Le marquage de ce service ne comprend pas l’accès en consultation à ces actualités, qu’elles soient publiques ou privées</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>CAHIER_TEXTES</td>
|
||||
<td>Description du travail fait en classe par séquence, des points du programme abordés, des modalités pédagogiques utilisées…<br><br>Programmation du travail à faire en dehors de la classe (Devoirs).</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>CAHIER_LIAISON</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>COURRIER_ELECTRONIQUE</td>
|
||||
<td>Courrier électronique, Carnet d'adresses, Annuaire, Liste de diffusion.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>MESSAGERIE_INSTANTANEE</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>VISIOCONFERENCE</td>
|
||||
<td>Services associés à l’organisation et l’animation de visioconférences. </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>STOCKAGE_PARTAGE</td>
|
||||
<td>Chargement, stockage de fichiers pouvant ou non être partagés avec d’autres utilisateurs</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>PRODUCTION_COLLABORATIVE</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>DOCUMENTATION_CDI</td>
|
||||
<td>Accès au catalogue de ressources proposées par le CDI, consultation et gestion des ressources, prêts, …</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>PARCOURS_PEDAGOGIQUE</td>
|
||||
<td>Utilisation des outils permettant la production de nouvelles ressources pédagogiques (LMS).</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>RESERVATION_SALLES_MATERIELS</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>SERVICE_COLLECTIVITE</td>
|
||||
<td>Utilisation des services proposés par les collectivités aux établissements ou aux familles (Exemples : cantine, transports, bourses, …).</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>SERVICES_VIE_SCOLAIRE</td>
|
||||
<td>Accès à des logiciels de vie scolaire ne permettant pas de marquer finement le type de services utilisés.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>GESTION_TEMPS</td>
|
||||
<td>Gestion de l’agenda et des tâches personnelles ou de groupe. Visualisation de l’emploi du temps.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>ABSENCES</td>
|
||||
<td>Saisie ou visualisation des absences.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>GESTION_COMPETENCES</td>
|
||||
<td>Mise à jour, validation ou visualisation de compétences.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>NOTES</td>
|
||||
<td>Saisie ou visualisation des notes (relevés de notes, bulletins).</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>MANUEL_NUMERIQUE</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>RESSOURCE_MULTIMEDIA</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>RESSOURCE_ORIENTATION</td>
|
||||
<td>Accès aux contenus et services proposés dans le cadre des actions d’orientation.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>RESSOURCE_PRODUCTION</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>RESSOURCE_ACCOMPAGNEMENT_ENTRAINEMENT</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>RESSOURCE_REFERENCE_DICTIONNAIRE</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>RESSOURCE_DOCUMENTAIRE</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>PAGE_ENT</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
|
@ -67,11 +67,10 @@
|
|||
{{ form_row(form.ssoitem) }}
|
||||
{% endif %}
|
||||
|
||||
{% if form.clicksonde is defined %}
|
||||
{{ form_row(form.clicksonde) }}
|
||||
<div id="divclicksondeservice">
|
||||
{{ form_row(form.clicksondeservice) }}
|
||||
</div>
|
||||
{% if form.clicksondeservice is defined %}
|
||||
{{ form_label(form.clicksondeservice) }}
|
||||
<a id="dnmainfo" type="button" class="btn btn-link" data-toggle="modal" data-target="#dnma" style="float:right"><i class="fa fa-info"></i></a>
|
||||
{{ form_widget(form.clicksondeservice) }}<br>
|
||||
{% endif %}
|
||||
|
||||
{{ form_row(form.color) }}
|
||||
|
@ -90,6 +89,23 @@
|
|||
</div>
|
||||
</div>
|
||||
{{ form_end(form) }}
|
||||
|
||||
<div id="dnma" class="modal fade bs-item-modal" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title">Services</h4>
|
||||
</div>
|
||||
|
||||
<div class="modal-body">
|
||||
{{ include('@CadolesPortal/Item/dnma.html.twig') }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block localjavascript %}
|
||||
|
@ -133,13 +149,5 @@
|
|||
if($("#item_target").val()=="frame") {
|
||||
$("#divhelp").show();
|
||||
}
|
||||
|
||||
|
||||
if($("#item_clicksonde").is(':checked')) {
|
||||
$("#divclicksondeservice").show();
|
||||
}
|
||||
else {
|
||||
$("#divclicksondeservice").hide();
|
||||
}
|
||||
}
|
||||
{% endblock %}
|
||||
|
|
|
@ -11,6 +11,8 @@
|
|||
<p>
|
||||
<a href="{{ path('cadoles_portal_config_item_submit') }}" class="btn btn-success">Ajouter un Item</a>
|
||||
<a href="{{ path('cadoles_portal_config_itemcategory_submit') }}" class="btn btn-success">Ajouter une Categorie</a>
|
||||
|
||||
<a href="{{ path('cadoles_portal_config_item_forceorder') }}" class="btn btn-success pull-right">Ordonner les items en alpha</a>
|
||||
</p>
|
||||
|
||||
<div class="category-list">
|
||||
|
|
Loading…
Reference in New Issue