Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified Data/tasks.db
Binary file not shown.
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"type": "project",
"license": "proprietary",
"require": {
"php": ">=7.1.3",
"php": ">=7.4",
"ext-ctype": "*",
"ext-iconv": "*",
"composer/package-versions-deprecated": "1.11.99.1",
Expand Down
3 changes: 2 additions & 1 deletion src/Domain/Form/Type/TaskType.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ class TaskType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('nome', TextType::class, ['label' => false, 'attr' => ['placeholder' => 'Nome do Projeto ']])
->add('nome', TextType::class, ['label' => false, 'attr' => ['placeholder' => 'Nome da Tarefa']])
->add('descricao', TextareaType::class)
->add('dtCadastro', DateType::class, [
'label' => 'Data de Cadastro',
Expand All @@ -37,6 +37,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void
])
->add('dtConclusao', DateType::class, [
'label' => 'Data de Conclusao',
'placeholder' => 'Select a value',
'widget' => 'single_text',
'attr' => ['class' => 'js-datepicker', 'required' => false],
])
Expand Down
49 changes: 49 additions & 0 deletions src/Domain/Form/Type/UsuarioType.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<?php


namespace App\Domain\Form\Type;


use App\Domain\Model\Usuario;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;

class UsuarioType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('nome', TextType::class, ['label' => false, 'attr' => ['placeholder' => 'Nome do Usuario']])
->add('email', EmailType::class, ['label' => false, 'attr' => ['placeholder' => 'E-mail']])
->add('password', PasswordType::class, ['label' => false, 'attr' => ['placeholder' => 'Senha']])
->add('roles', ChoiceType::class, array(
'mapped' => false,
'required' => true,
'label' => 'User Type',
'choices' => array(
'Administrador' => 'ROLE_ADMIN',
'Usuario' => 'ROLE_USER',
),
'expanded' => true,
));
}

/**
* @param OptionsResolver $resolver
*/
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => Usuario::class
]);
}
}
21 changes: 21 additions & 0 deletions src/Domain/Model/TaskRepositoryInterface.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?php


namespace App\Domain\Model;

/**
* class TaskRepositoryInterface
* @package App\Domain\Model
*/
interface TaskRepositoryInterface
{
public function salvar(Task $task): void;

public function listar(): array;

public function delete(Task $id): void;

public function getNumeroTasks(): int;

public function getStatus(): int;
}
13 changes: 13 additions & 0 deletions src/Domain/Model/UsuarioRepositoryInterface.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php


namespace App\Domain\Model;


interface UsuarioRepositoryInterface
{
public function salvar(Usuario $usuario): void;
public function delete(Usuario $id): void;
public function editar(Usuario $id): void;
public function listar(): array;
}
67 changes: 67 additions & 0 deletions src/Domain/Services/TaskService.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
<?php


namespace App\Domain\Services;
use App\Domain\Model\Task;
use App\Domain\Model\TaskRepositoryInterface;

class TaskService
{

/**
* @var TaskRepositoryInterface
*/
public TaskRepositoryInterface $taskRepository;

/**
* TaskService constructor.
* @param TaskRepositoryInterface $taskRepository
*/
public function __construct(TaskRepositoryInterface $taskRepository)
{
$this->taskRepository = $taskRepository;
}

/**
* @param Task $task
*/
public function salvar(Task $task)
{
$this->taskRepository->salvar($task);
}

/**
* @return array
*/
public function listar(): array
{
return $this->taskRepository->listar();
}

/**
* @param Task $id
*/
public function delete(Task $id)
{
$this->taskRepository->delete($id);
}

/**
* @return array
*/
public function getNumeroTasks(): int
{
return $this->taskRepository->getNumeroTasks();
}

/**
* @return array
*/
public function getStatus(): int
{
return $this->taskRepository->getStatus();
}



}
63 changes: 63 additions & 0 deletions src/Domain/Services/UsuarioService.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<?php


namespace App\Domain\Services;


use App\Domain\Model\Usuario;
use App\Domain\Model\UsuarioRepositoryInterface;


/**
* Class ProjetoService
* @package App\Domain\Services
*/
class UsuarioService
{
/**
* @var UsuarioRepositoryInterface
*/
public UsuarioRepositoryInterface $usuarioRepository;

/**
* ProjetoService constructor.
* @param UsuarioRepositoryInterface $usuarioRepository
*/
public function __construct(UsuarioRepositoryInterface $usuarioRepository)
{
$this->usuarioRepository = $usuarioRepository;
}


/**
* @param Usuario $usuario
*/
public function salvar(Usuario $usuario)
{
$this->usuarioRepository->salvar($usuario);
}

/**
* @param Usuario $id
*/
public function delete(Usuario $id)
{
$this->usuarioRepository->delete($id);
}

/**
* @param Usuario $id
*/
public function editar(Usuario $id)
{
$this->usuarioRepository->editar($id);
}

/**
* @param array
*/
public function listar()
{
$this->usuarioRepository->listar();
}
}
1 change: 1 addition & 0 deletions src/Infrastructure/Controller/ProjetoController.php
Original file line number Diff line number Diff line change
Expand Up @@ -101,4 +101,5 @@ public function cadastrar(Request $request)
'form' => $form->createView(),
]);
}

}
55 changes: 40 additions & 15 deletions src/Infrastructure/Controller/TaskController.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
use App\Domain\Model\Status;
use App\Domain\Model\Task;
use App\Domain\Model\UsuarioAtribuicao;
use App\Domain\Services\TaskService;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
Expand All @@ -19,13 +20,27 @@
class TaskController extends AbstractController
{


/**
* @Route("/usuario/{id}")
* @var TaskService
*/
public function listTasks()
{
private TaskService $taskService;

/**
* ProjetoController constructor.
* @param TaskService $taskService
*/
public function __construct(TaskService $taskService)
{
$this->taskService = $taskService;
}

/**
* @Route("/listar/{id}")
*/
public function listTasks()
{
$this->taskService->listar();
}

/**
Expand All @@ -42,7 +57,6 @@ public function atribuir(Task $task)
$usuarioTask->setUsuario($user);
$usuarioTask->setDtAtribuicao(new \DateTime());
$usuarioTask->setTask($task);

$task->setStatus($status);

$this->getDoctrine()->getManager()->persist($status);
Expand All @@ -67,10 +81,7 @@ public function cadastrar(Projeto $projeto, Request $request)
if ($form->isSubmitted()) {
$task = $form->getData();
$task->setProjeto($projeto);
$doctrine = $this->getDoctrine()->getManager();

$doctrine->persist($task);
$doctrine->flush();
$this->taskService->salvar($task);

$this->addFlash('success','Task Cadastrada com sucesso');

Expand All @@ -93,14 +104,11 @@ public function editar(Task $task, Request $request)

if ($form->isSubmitted()) {
$task = $form->getData();
$doctrine = $this->getDoctrine()->getManager();
$this->taskService->salvar($task);

$doctrine->persist($task);
$doctrine->flush();
$this->addFlash('success','Task atualizada com sucesso');

$this->addFlash('success','Task Cadastrada com sucesso');

return $this->redirect('/usuario/tasks');
return $this->redirect('/projetos/listar');
}

return $this->render('novo-task.html.twig', [
Expand All @@ -109,7 +117,24 @@ public function editar(Task $task, Request $request)
}

/**
* @Route("/deletar/{atribuicao}", name="deletar_task", methods={"GET", "POST"})
* @Route("/deletar/{id}", name="deletar_task", methods={"GET", "POST"})
* @ParamConverter("id", class="App\Domain\Model\Task")
*/
public function deletarProjetoTask(Task $id)
{
$doctrine = $this->getDoctrine()->getManager();

$this->taskService->delete($id);

$doctrine->flush();

$this->addFlash('success','Task Deletada com sucesso');

return $this->redirect('/projetos/listar');
}

/**
* @Route("/deletar_atribuicao/{atribuicao}", name="deletar_task_atribuicao", methods={"GET", "POST"})
* @ParamConverter("atribuicao", class="App\Domain\Model\UsuarioAtribuicao")
*/
public function deletar(UsuarioAtribuicao $atribuicao)
Expand Down
11 changes: 9 additions & 2 deletions src/Infrastructure/Controller/TasksTrackerController.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
use App\Domain\Model\Task;
use App\Domain\Model\Usuario;
use App\Domain\Services\ProjetoService;
use App\Infrastructure\Repository\TaskRepository;
use App\Infrastructure\Repository\UsuarioRepository;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
Expand All @@ -27,11 +28,13 @@ class TasksTrackerController extends AbstractController
public ProjetoService $projetoService;

public UsuarioRepository $usuarioRepository;
public TaskRepository $taskRepository;

public function __construct(ProjetoService $projetoService, UsuarioRepository $usuarioRepository)
public function __construct(ProjetoService $projetoService, UsuarioRepository $usuarioRepository, TaskRepository $taskRepository)
{
$this->projetoService = $projetoService;
$this->usuarioRepository = $usuarioRepository;
$this->taskRepository = $taskRepository;
}


Expand All @@ -44,12 +47,16 @@ public function index()

$numeroProjetos = $this->projetoService->getNumroDeProjetos();
$numeroUsuario = $this->usuarioRepository->getNumeroUsers();
$numeroTasks = $this->taskRepository->getNumeroTasks();
$status = $this->taskRepository->getStatus();

return $this->render(
'index.html.twig',
[
'numeroProjeto' => $numeroProjetos,
'numeroUsuarios' => $numeroUsuario
'numeroUsuarios' => $numeroUsuario,
'numeroTasks' => $numeroTasks,
"status" => $status
]
);
}
Expand Down
Loading