ajout d'un utilisateur fictif lors de la création d'un service, et affichage des events par service
This commit is contained in:
@@ -45,19 +45,25 @@ class EventController extends AbstractController
|
||||
|
||||
// Evenements
|
||||
$iduser=$this->get("session")->get("iduser");
|
||||
$user=$em->getRepository("App:User")->find($iduser);
|
||||
if($iduser=="all")
|
||||
$events=$em->getRepository("App:Event")->findAll();
|
||||
else {
|
||||
$users= [];
|
||||
$fictivuser = $em->getRepository("App:User")->findOneBy([
|
||||
'service' => $user->getService(),
|
||||
'fictive' => true,
|
||||
]);
|
||||
array_push($users,$fictivuser);
|
||||
$selectedusers = $this->get("session")->get("selectedusers");
|
||||
if (isset($selectedusers) && sizeof($selectedusers)>1){
|
||||
$users= [];
|
||||
foreach($selectedusers as $user) {
|
||||
array_push($users,$em->getRepository("App:User")->find($user));
|
||||
}
|
||||
$events=$em->getRepository("App:Event")->findBy(["user"=>$users]);
|
||||
}else{
|
||||
$user=$em->getRepository("App:User")->find($iduser);
|
||||
$events=$em->getRepository("App:Event")->findBy(["user"=>$user]);
|
||||
array_push($users,$em->getRepository("App:User")->find($iduser));
|
||||
$events=$em->getRepository("App:Event")->findBy(["user"=>$users]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -492,6 +498,7 @@ class EventController extends AbstractController
|
||||
"holiday" => $event->getTask()->getNature()->getIsvacation(),
|
||||
"externaltrip" => ($event instanceof Penalty?false:$event->getExternalTrip()),
|
||||
"editable" => $editable,
|
||||
"fictivuser" => $event->getUser()->getFictive(),
|
||||
"durationEditable" => false,
|
||||
"extendedProps" => [
|
||||
"fulldescription" => ($event instanceof Penalty?"ASTREINTE\n":"").strtoupper($event->getTask()->getDisplayname())."\n\n".$event->getDescription(),
|
||||
|
@@ -9,6 +9,7 @@ use Symfony\Component\Form\FormError;
|
||||
use Knp\Bundle\SnappyBundle\Snappy\Response\PdfResponse;
|
||||
|
||||
use App\Entity\Service as Entity;
|
||||
use App\Entity\User as Fictiv;
|
||||
use App\Form\ServiceType as Form;
|
||||
|
||||
class ServiceController extends AbstractController
|
||||
@@ -69,6 +70,16 @@ class ServiceController extends AbstractController
|
||||
$em->persist($data);
|
||||
$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
|
||||
return $this->redirectToRoute($this->route);
|
||||
}
|
||||
@@ -147,8 +158,14 @@ class ServiceController extends AbstractController
|
||||
return $this->redirectToRoute($this->route."_update",["id"=>$id]);
|
||||
else {
|
||||
try {
|
||||
$fictivuser = $em->getRepository("App:User")->findOneBy([
|
||||
'service' => $data->getService(),
|
||||
'fictive' => true,
|
||||
]);
|
||||
$em->remove($fictivuser);
|
||||
$em->remove($data);
|
||||
$em->flush();
|
||||
|
||||
}
|
||||
catch(\Doctrine\DBAL\DBALException $e) {
|
||||
// Création du formulaire
|
||||
|
@@ -11,7 +11,7 @@ use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
|
||||
|
||||
/**
|
||||
* User
|
||||
*
|
||||
*
|
||||
* @ORM\Entity(repositoryClass="App\Repository\UserRepository")
|
||||
* @ORM\Table(name="user",indexes={@ORM\Index(name="username", columns={"username"})})
|
||||
* @UniqueEntity("username", message="Ce nom d'utilisateur existe dèja")
|
||||
@@ -84,7 +84,7 @@ class User implements UserInterface, \Serializable
|
||||
* @ORM\ManyToOne(targetEntity="Service", inversedBy="users")
|
||||
* @ORM\JoinColumn(nullable=true)
|
||||
*/
|
||||
private $service;
|
||||
private $service;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="Event", mappedBy="user", cascade={"persist"}, orphanRemoval=false)
|
||||
@@ -104,11 +104,16 @@ class User implements UserInterface, \Serializable
|
||||
* )
|
||||
*/
|
||||
protected $jobs;
|
||||
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="Userproject", mappedBy="user", cascade={"persist"}, orphanRemoval=true)
|
||||
*/
|
||||
private $userprojects;
|
||||
/**
|
||||
* @ORM\Column(name="fictive", type="boolean")
|
||||
*
|
||||
*/
|
||||
private $fictive;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
@@ -117,6 +122,7 @@ class User implements UserInterface, \Serializable
|
||||
$this->penaltys = new ArrayCollection();
|
||||
$this->jobs = new ArrayCollection();
|
||||
$this->userprojects = new ArrayCollection();
|
||||
$this->fictive = false;
|
||||
}
|
||||
|
||||
public function getUsername(): ?string
|
||||
@@ -406,7 +412,19 @@ class User implements UserInterface, \Serializable
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function getFictive(): ?bool
|
||||
{
|
||||
return $this->fictive;
|
||||
}
|
||||
|
||||
public function setFictive(bool $fictive): self
|
||||
{
|
||||
$this->fictive = $fictive;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@@ -42,6 +42,10 @@
|
||||
.eventEstimate {
|
||||
margin: -3px 10px;
|
||||
}
|
||||
.fictive{
|
||||
height:10px!important;
|
||||
background-color:#cdcdcd;
|
||||
}
|
||||
{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
@@ -243,31 +247,38 @@ $(document).ready(function() {
|
||||
// Rendu d'un évenement
|
||||
function eventRender(info) {
|
||||
console.log(info.event.extendedProps);
|
||||
|
||||
// Récupération des divers élements du rendu event
|
||||
var content=$(info.el).children('.fc-content');
|
||||
var title=$(content).children('.fc-title');
|
||||
if(!info.event.extendedProps.fictivuser){
|
||||
// Ajouter l'avatar
|
||||
content.prepend("<img src="+info.event.extendedProps.avatar+" class='eventAvatar'>");
|
||||
content.append("<span class='eventUser float-left small'>"+info.event.extendedProps.username+"</span>");
|
||||
var eventInfo=$(content).children('.eventUser');
|
||||
|
||||
// Ajouter l'avatar
|
||||
content.prepend("<img src="+info.event.extendedProps.avatar+" class='eventAvatar'>");
|
||||
content.append("<span class='eventUser float-left small'>"+info.event.extendedProps.username+"</span>");
|
||||
var eventInfo=$(content).children('.eventUser');
|
||||
// Ajout container
|
||||
content.append("<span class='eventInfo float-right'></span>");
|
||||
var eventInfo=$(content).children('.eventInfo');
|
||||
|
||||
// Ajout container
|
||||
content.append("<span style='margin-top:-12px' class='eventInfo float-right'></span>");
|
||||
var eventInfo=$(content).children('.eventInfo');
|
||||
// Ajouter le verrou si event non editable
|
||||
if(info.event.extendedProps.locked) {
|
||||
eventInfo.append("<i class='fa fa-lock float-right'></i>");
|
||||
}
|
||||
|
||||
if(info.event.extendedProps.externaltrip) {
|
||||
eventInfo.append("<i class='fas fa-bed float-right'></i>");
|
||||
}
|
||||
if(info.event.extendedProps.holiday) {
|
||||
eventInfo.append("<i class='fas fa-umbrella-beach float-right'></i>");
|
||||
}
|
||||
// Ajout estimation
|
||||
eventInfo.append("<span class='eventEstimate float-right small'>"+info.event.extendedProps.estimate+"</span>");
|
||||
|
||||
// Ajouter le verrou si event non editable
|
||||
if(info.event.extendedProps.locked) {
|
||||
eventInfo.append("<i class='fa fa-lock float-right'></i>");
|
||||
}else{
|
||||
$(content).addClass('fictive');
|
||||
$(content).children('.fc-title').remove();
|
||||
}
|
||||
if(info.event.extendedProps.externaltrip) {
|
||||
eventInfo.append("<i class='fas fa-bed float-right'></i>");
|
||||
}
|
||||
if(info.event.extendedProps.holiday) {
|
||||
eventInfo.append("<i class='fas fa-umbrella-beach float-right'></i>");
|
||||
}
|
||||
// Ajout estimation
|
||||
eventInfo.append("<span class='eventEstimate float-right small'>"+info.event.extendedProps.estimate+"</span>");
|
||||
|
||||
// Description
|
||||
content.attr("title",info.event.extendedProps.fulldescription);
|
||||
|
Reference in New Issue
Block a user