Browse Source

Script d'import

develop
Fab 3 years ago
parent
commit
2f623d9167
7 changed files with 112 additions and 67 deletions
  1. +37
    -2
      Builder/User/UserBuilder.php
  2. +3
    -3
      Doctrine/Extension/BlameableTrait.php
  3. +4
    -3
      EventSubscriber/SortablePropertyEventSubscriber.php
  4. +62
    -58
      Model/Site/NewsModel.php
  5. +2
    -1
      Model/User/GroupUserModel.php
  6. +3
    -0
      Model/User/UserModel.php
  7. +1
    -0
      Repository/User/UserStore.php

+ 37
- 2
Builder/User/UserBuilder.php View File

namespace Lc\SovBundle\Builder\User; namespace Lc\SovBundle\Builder\User;


use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use Lc\SovBundle\Doctrine\EntityInterface;
use Lc\SovBundle\Doctrine\Extension\BlameableInterface;
use Lc\SovBundle\Model\Newsletter\NewsletterInterface; use Lc\SovBundle\Model\Newsletter\NewsletterInterface;
use Lc\SovBundle\Model\User\UserInterface; use Lc\SovBundle\Model\User\UserInterface;
use Lc\SovBundle\Repository\User\UserStore;


class UserBuilder class UserBuilder
{ {
protected EntityManagerInterface $entityManager; protected EntityManagerInterface $entityManager;
protected UserStore $userStore;


public function __construct(EntityManagerInterface $entityManager)
public function __construct(EntityManagerInterface $entityManager, UserStore $userStore)
{ {
$this->entityManager = $entityManager; $this->entityManager = $entityManager;
$this->userStore = $userStore;
} }


public function setNewsletter(UserInterface $user, NewsletterInterface $newsletter, bool $subscribeNewsletter): void public function setNewsletter(UserInterface $user, NewsletterInterface $newsletter, bool $subscribeNewsletter): void
} else { } else {
$user->removeNewsletter($newsletter); $user->removeNewsletter($newsletter);
} }
$this->entityManager->persist($user); $this->entityManager->persist($user);
$this->entityManager->flush(); $this->entityManager->flush();
} }

public function initBlameableSystem(EntityInterface $entity)
{
$userSystem = $this->userStore->getOneByDevAlias('system');
$this->initBlameable($entity, $userSystem);

return $entity;
}
public function initBlameableUpdatedSystem(EntityInterface $entity)
{
$userSystem = $this->userStore->getOneByDevAlias('system');
$this->initBlameableUpdated($entity, $userSystem);

return $entity;
}

public function initBlameable(EntityInterface $entity, UserInterface $user)
{
if ($entity instanceof BlameableInterface) {
$entity->setCreatedBy($user);
}
$this->initBlameableUpdated($entity, $user);
}

public function initBlameableUpdated(EntityInterface $entity, UserInterface $user)
{
if ($entity instanceof BlameableInterface) {
$entity->setUpdatedBy($user);
}
}
} }

+ 3
- 3
Doctrine/Extension/BlameableTrait.php View File

/** /**
* @Gedmo\Blameable(on="create") * @Gedmo\Blameable(on="create")
* @ORM\ManyToOne(targetEntity="Lc\SovBundle\Model\User\UserInterface") * @ORM\ManyToOne(targetEntity="Lc\SovBundle\Model\User\UserInterface")
* @ORM\JoinColumn(nullable=false)
* @ORM\JoinColumn(nullable=true)
*/ */
protected $createdBy; protected $createdBy;


/** /**
* @Gedmo\Blameable(on="update") * @Gedmo\Blameable(on="update")
* @ORM\ManyToOne(targetEntity="Lc\SovBundle\Model\User\UserInterface") * @ORM\ManyToOne(targetEntity="Lc\SovBundle\Model\User\UserInterface")
* @ORM\JoinColumn(nullable=false)
* @ORM\JoinColumn(nullable=true)
*/ */
protected $updatedBy; protected $updatedBy;


return $this; return $this;
} }


}
}

+ 4
- 3
EventSubscriber/SortablePropertyEventSubscriber.php View File



private function setSortableProperty(EntityInterface $entity, AbstractRepositoryInterface $entityRepository) private function setSortableProperty(EntityInterface $entity, AbstractRepositoryInterface $entityRepository)
{ {
$countParam = array();
if ($entity instanceof StatusInterface) { if ($entity instanceof StatusInterface) {
$countParam['status'] = 1; $countParam['status'] = 1;
} }


if ($entity instanceof TreeInterface) { if ($entity instanceof TreeInterface) {
if($entity->getParent()){
if ($entity->getParent()) {
$countParam['parent'] = $entity->getParent()->getId(); $countParam['parent'] = $entity->getParent()->getId();
}else{
} else {
$countParam['parent'] = null; $countParam['parent'] = null;
} }
} }
} }




}
}

+ 62
- 58
Model/Site/NewsModel.php View File



use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo; use Gedmo\Mapping\Annotation as Gedmo;
use Lc\SovBundle\Doctrine\Extension\OpenGraphInterface;
use Lc\SovBundle\Doctrine\Extension\OpenGraphTrait;
use Lc\SovBundle\Doctrine\Pattern\AbstractFullEntity; use Lc\SovBundle\Doctrine\Pattern\AbstractFullEntity;
use Lc\SovBundle\Model\File\FileInterface; use Lc\SovBundle\Model\File\FileInterface;
use Lc\SovBundle\Model\Newsletter\NewsletterInterface; use Lc\SovBundle\Model\Newsletter\NewsletterInterface;
/** /**
* @ORM\MappedSuperclass() * @ORM\MappedSuperclass()
*/ */
abstract class NewsModel extends AbstractFullEntity implements NewsInterface
abstract class NewsModel extends AbstractFullEntity implements NewsInterface, OpenGraphInterface
{ {


/**
* @ORM\Column(type="datetime")
* @Gedmo\Timestampable(on="create")
*/
protected $date;
use OpenGraphTrait;


/**
* @ORM\Column(type="boolean", nullable=true)
*/
protected $isSent;
/**
* @ORM\Column(type="datetime")
* @Gedmo\Timestampable(on="create")
*/
protected $date;


/**
* @ORM\Column(type="boolean", nullable=true)
*/
protected $isSent;


/**
* @ORM\ManyToOne(targetEntity="Lc\SovBundle\Model\Newsletter\NewsletterInterface", inversedBy="news")
*/
protected $newsletter;


/**
* @ORM\ManyToOne(targetEntity="Lc\SovBundle\Model\File\FileInterface", cascade={"persist", "remove"})
*/
protected $image;
/**
* @ORM\ManyToOne(targetEntity="Lc\SovBundle\Model\Newsletter\NewsletterInterface", inversedBy="news")
*/
protected $newsletter;


public function __toString()
{
return $this->getTitle();
}
/**
* @ORM\ManyToOne(targetEntity="Lc\SovBundle\Model\File\FileInterface", cascade={"persist", "remove"})
*/
protected $image;


public function getDate(): ?\DateTimeInterface
{
return $this->date;
}
public function __toString()
{
return $this->getTitle();
}


public function setDate(\DateTimeInterface $date): self
{
$this->date = $date;
public function getDate(): ?\DateTimeInterface
{
return $this->date;
}


return $this;
}
public function setDate(\DateTimeInterface $date): self
{
$this->date = $date;


public function getIsSent(): ?bool
{
return $this->isSent;
}
return $this;
}


public function setIsSent(?bool $isSent): self
{
$this->isSent = $isSent;
public function getIsSent(): ?bool
{
return $this->isSent;
}


return $this;
}
public function setIsSent(?bool $isSent): self
{
$this->isSent = $isSent;


public function getImage(): ?FileInterface
{
return $this->image;
}
return $this;
}


public function setImage(?FileInterface $image): self
{
$this->image = $image;
public function getImage(): ?FileInterface
{
return $this->image;
}


return $this;
}
public function setImage(?FileInterface $image): self
{
$this->image = $image;


public function getNewsletter(): ?NewsletterInterface
{
return $this->newsletter;
}
return $this;
}


public function setNewsletter(?NewsletterInterface $newsletter): self
{
$this->newsletter = $newsletter;
public function getNewsletter(): ?NewsletterInterface
{
return $this->newsletter;
}


return $this;
}
public function setNewsletter(?NewsletterInterface $newsletter): self
{
$this->newsletter = $newsletter;

return $this;
}
} }

+ 2
- 1
Model/User/GroupUserModel.php View File

use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection; use Doctrine\Common\Collections\Collection;
use Lc\SovBundle\Doctrine\EntityInterface; use Lc\SovBundle\Doctrine\EntityInterface;
use Lc\SovBundle\Doctrine\Pattern\AbstractFullEntity;
use Lc\SovBundle\Doctrine\Pattern\AbstractLightEntity; use Lc\SovBundle\Doctrine\Pattern\AbstractLightEntity;


/** /**
* @ORM\MappedSuperclass() * @ORM\MappedSuperclass()
*/ */
abstract class GroupUserModel extends AbstractLightEntity implements GroupUserInterface, EntityInterface
abstract class GroupUserModel extends AbstractFullEntity implements GroupUserInterface, EntityInterface
{ {


/** /**

+ 3
- 0
Model/User/UserModel.php View File

use Lc\SovBundle\Doctrine\EntityInterface; use Lc\SovBundle\Doctrine\EntityInterface;
use Lc\SovBundle\Doctrine\Extension\DevAliasInterface; use Lc\SovBundle\Doctrine\Extension\DevAliasInterface;
use Lc\SovBundle\Doctrine\Extension\DevAliasTrait; use Lc\SovBundle\Doctrine\Extension\DevAliasTrait;
use Lc\SovBundle\Doctrine\Extension\TimestampableTrait;
use Lc\SovBundle\Model\Newsletter\NewsletterInterface; use Lc\SovBundle\Model\Newsletter\NewsletterInterface;
use Lc\SovBundle\Model\Ticket\TicketInterface; use Lc\SovBundle\Model\Ticket\TicketInterface;
use Symfony\Component\Security\Core\User\UserInterface; use Symfony\Component\Security\Core\User\UserInterface;
abstract class UserModel implements EntityInterface, UserInterface, DevAliasInterface abstract class UserModel implements EntityInterface, UserInterface, DevAliasInterface
{ {
use DevAliasTrait; use DevAliasTrait;
use TimestampableTrait;

/** /**
* @ORM\Column(type="string", length=180, unique=true) * @ORM\Column(type="string", length=180, unique=true)
*/ */

+ 1
- 0
Repository/User/UserStore.php View File

$query->filterByEmail($email); $query->filterByEmail($email);
return $query->findOne(); return $query->findOne();
} }

} }

Loading…
Cancel
Save