Compare commits
2 Commits
api_doliba
...
fictiv_use
Author | SHA1 | Date | |
---|---|---|---|
d5c81668e3 | |||
f82279e9b2 |
@@ -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(),
|
||||||
|
@@ -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
|
||||||
|
@@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -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 %}
|
||||||
@@ -215,6 +219,7 @@
|
|||||||
|
|
||||||
|
|
||||||
{% block localjavascript %}
|
{% block localjavascript %}
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
$("#modalsubmit #user").select2({
|
$("#modalsubmit #user").select2({
|
||||||
theme: 'bootstrap4',
|
theme: 'bootstrap4',
|
||||||
@@ -243,34 +248,46 @@ $(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
|
||||||
|
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
|
// Ajout container
|
||||||
content.prepend("<img src="+info.event.extendedProps.avatar+" class='eventAvatar'>");
|
content.append("<span class='eventInfo float-right'></span>");
|
||||||
content.append("<span class='eventUser float-left small'>"+info.event.extendedProps.username+"</span>");
|
var eventInfo=$(content).children('.eventInfo');
|
||||||
var eventInfo=$(content).children('.eventUser');
|
|
||||||
|
|
||||||
// Ajout container
|
// Ajouter le verrou si event non editable
|
||||||
content.append("<span style='margin-top:-12px' class='eventInfo float-right'></span>");
|
if(info.event.extendedProps.locked) {
|
||||||
var eventInfo=$(content).children('.eventInfo');
|
eventInfo.append("<i class='fa fa-lock float-right'></i>");
|
||||||
|
}
|
||||||
|
|
||||||
// Ajouter le verrou si event non editable
|
if(info.event.extendedProps.externaltrip) {
|
||||||
if(info.event.extendedProps.locked) {
|
eventInfo.append("<i class='fas fa-bed float-right'></i>");
|
||||||
eventInfo.append("<i class='fa fa-lock 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>");
|
||||||
|
|
||||||
|
}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
|
// Description
|
||||||
|
|
||||||
|
content.attr("data-placement","top");
|
||||||
|
content.attr("data-html",true);
|
||||||
|
content.attr("data-toggle","tooltip");
|
||||||
content.attr("title",info.event.extendedProps.fulldescription);
|
content.attr("title",info.event.extendedProps.fulldescription);
|
||||||
|
content.tooltip()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Formulaire Création d'un événement
|
// Formulaire Création d'un événement
|
||||||
|
Reference in New Issue
Block a user