ajout d'un utilisateur fictif lors de la création d'un service, et affichage des events par service

This commit is contained in:
2020-07-30 11:34:13 +02:00
parent 6b0b8bf281
commit f82279e9b2
4 changed files with 79 additions and 26 deletions

View File

@@ -45,19 +45,25 @@ class EventController extends AbstractController
// Evenements // Evenements
$iduser=$this->get("session")->get("iduser"); $iduser=$this->get("session")->get("iduser");
$user=$em->getRepository("App:User")->find($iduser);
if($iduser=="all") if($iduser=="all")
$events=$em->getRepository("App:Event")->findAll(); $events=$em->getRepository("App:Event")->findAll();
else { else {
$users= [];
$fictivuser = $em->getRepository("App:User")->findOneBy([
'service' => $user->getService(),
'fictive' => true,
]);
array_push($users,$fictivuser);
$selectedusers = $this->get("session")->get("selectedusers"); $selectedusers = $this->get("session")->get("selectedusers");
if (isset($selectedusers) && sizeof($selectedusers)>1){ if (isset($selectedusers) && sizeof($selectedusers)>1){
$users= [];
foreach($selectedusers as $user) { foreach($selectedusers as $user) {
array_push($users,$em->getRepository("App:User")->find($user)); array_push($users,$em->getRepository("App:User")->find($user));
} }
$events=$em->getRepository("App:Event")->findBy(["user"=>$users]); $events=$em->getRepository("App:Event")->findBy(["user"=>$users]);
}else{ }else{
$user=$em->getRepository("App:User")->find($iduser); array_push($users,$em->getRepository("App:User")->find($iduser));
$events=$em->getRepository("App:Event")->findBy(["user"=>$user]); $events=$em->getRepository("App:Event")->findBy(["user"=>$users]);
} }
} }
@@ -492,6 +498,7 @@ class EventController extends AbstractController
"holiday" => $event->getTask()->getNature()->getIsvacation(), "holiday" => $event->getTask()->getNature()->getIsvacation(),
"externaltrip" => ($event instanceof Penalty?false:$event->getExternalTrip()), "externaltrip" => ($event instanceof Penalty?false:$event->getExternalTrip()),
"editable" => $editable, "editable" => $editable,
"fictivuser" => $event->getUser()->getFictive(),
"durationEditable" => false, "durationEditable" => false,
"extendedProps" => [ "extendedProps" => [
"fulldescription" => ($event instanceof Penalty?"ASTREINTE\n":"").strtoupper($event->getTask()->getDisplayname())."\n\n".$event->getDescription(), "fulldescription" => ($event instanceof Penalty?"ASTREINTE\n":"").strtoupper($event->getTask()->getDisplayname())."\n\n".$event->getDescription(),

View File

@@ -9,6 +9,7 @@ use Symfony\Component\Form\FormError;
use Knp\Bundle\SnappyBundle\Snappy\Response\PdfResponse; use Knp\Bundle\SnappyBundle\Snappy\Response\PdfResponse;
use App\Entity\Service as Entity; use App\Entity\Service as Entity;
use App\Entity\User as Fictiv;
use App\Form\ServiceType as Form; use App\Form\ServiceType as Form;
class ServiceController extends AbstractController class ServiceController extends AbstractController
@@ -69,6 +70,16 @@ class ServiceController extends AbstractController
$em->persist($data); $em->persist($data);
$em->flush(); $em->flush();
$fictivuser = new Fictiv();
$fictivuser->setUsername($data->getName());
$fictivuser->setPassword(bin2hex(openssl_random_pseudo_bytes(4)));
$fictivuser->setLastname("Service");
$fictivuser->setFirstname($data->getName());
$fictivuser->setEmail($data->getName());
$fictivuser->setService($data->getId());
$fictivuser->setFictive(true);
$em->persist($fictivuser);
$em->flush();
// Retour à la liste // Retour à la liste
return $this->redirectToRoute($this->route); return $this->redirectToRoute($this->route);
} }
@@ -147,8 +158,14 @@ class ServiceController extends AbstractController
return $this->redirectToRoute($this->route."_update",["id"=>$id]); return $this->redirectToRoute($this->route."_update",["id"=>$id]);
else { else {
try { try {
$fictivuser = $em->getRepository("App:User")->findOneBy([
'service' => $data->getService(),
'fictive' => true,
]);
$em->remove($fictivuser);
$em->remove($data); $em->remove($data);
$em->flush(); $em->flush();
} }
catch(\Doctrine\DBAL\DBALException $e) { catch(\Doctrine\DBAL\DBALException $e) {
// Création du formulaire // Création du formulaire

View File

@@ -109,6 +109,11 @@ class User implements UserInterface, \Serializable
* @ORM\OneToMany(targetEntity="Userproject", mappedBy="user", cascade={"persist"}, orphanRemoval=true) * @ORM\OneToMany(targetEntity="Userproject", mappedBy="user", cascade={"persist"}, orphanRemoval=true)
*/ */
private $userprojects; private $userprojects;
/**
* @ORM\Column(name="fictive", type="boolean")
*
*/
private $fictive;
public function __construct() public function __construct()
{ {
@@ -117,6 +122,7 @@ class User implements UserInterface, \Serializable
$this->penaltys = new ArrayCollection(); $this->penaltys = new ArrayCollection();
$this->jobs = new ArrayCollection(); $this->jobs = new ArrayCollection();
$this->userprojects = new ArrayCollection(); $this->userprojects = new ArrayCollection();
$this->fictive = false;
} }
public function getUsername(): ?string public function getUsername(): ?string
@@ -408,5 +414,17 @@ class User implements UserInterface, \Serializable
return $this; return $this;
} }
public function getFictive(): ?bool
{
return $this->fictive;
}
public function setFictive(bool $fictive): self
{
$this->fictive = $fictive;
return $this;
}
} }

View File

@@ -42,6 +42,10 @@
.eventEstimate { .eventEstimate {
margin: -3px 10px; margin: -3px 10px;
} }
.fictive{
height:10px!important;
background-color:#cdcdcd;
}
{% endblock %} {% endblock %}
{% block body %} {% block body %}
@@ -243,23 +247,25 @@ $(document).ready(function() {
// Rendu d'un évenement // Rendu d'un évenement
function eventRender(info) { function eventRender(info) {
console.log(info.event.extendedProps); console.log(info.event.extendedProps);
// Récupération des divers élements du rendu event // Récupération des divers élements du rendu event
var content=$(info.el).children('.fc-content'); var content=$(info.el).children('.fc-content');
var title=$(content).children('.fc-title'); var title=$(content).children('.fc-title');
if(!info.event.extendedProps.fictivuser){
// Ajouter l'avatar // Ajouter l'avatar
content.prepend("<img src="+info.event.extendedProps.avatar+" class='eventAvatar'>"); content.prepend("<img src="+info.event.extendedProps.avatar+" class='eventAvatar'>");
content.append("<span class='eventUser float-left small'>"+info.event.extendedProps.username+"</span>"); content.append("<span class='eventUser float-left small'>"+info.event.extendedProps.username+"</span>");
var eventInfo=$(content).children('.eventUser'); var eventInfo=$(content).children('.eventUser');
// Ajout container // Ajout container
content.append("<span style='margin-top:-12px' class='eventInfo float-right'></span>"); content.append("<span class='eventInfo float-right'></span>");
var eventInfo=$(content).children('.eventInfo'); var eventInfo=$(content).children('.eventInfo');
// Ajouter le verrou si event non editable // Ajouter le verrou si event non editable
if(info.event.extendedProps.locked) { if(info.event.extendedProps.locked) {
eventInfo.append("<i class='fa fa-lock float-right'></i>"); eventInfo.append("<i class='fa fa-lock float-right'></i>");
} }
if(info.event.extendedProps.externaltrip) { if(info.event.extendedProps.externaltrip) {
eventInfo.append("<i class='fas fa-bed float-right'></i>"); eventInfo.append("<i class='fas fa-bed float-right'></i>");
} }
@@ -269,6 +275,11 @@ function eventRender(info) {
// Ajout estimation // Ajout estimation
eventInfo.append("<span class='eventEstimate float-right small'>"+info.event.extendedProps.estimate+"</span>"); eventInfo.append("<span class='eventEstimate float-right small'>"+info.event.extendedProps.estimate+"</span>");
}else{
$(content).addClass('fictive');
$(content).children('.fc-title').remove();
}
// Description // Description
content.attr("title",info.event.extendedProps.fulldescription); content.attr("title",info.event.extendedProps.fulldescription);
} }