mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
31fcfed2f5
@ -10,6 +10,7 @@ use Symfony\Component\HttpFoundation\Request;
|
|||||||
use Symfony\Component\HttpFoundation\Response;
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
use Chill\TaskBundle\Entity\SingleTask;
|
use Chill\TaskBundle\Entity\SingleTask;
|
||||||
use Chill\TaskBundle\Form\SingleTaskType;
|
use Chill\TaskBundle\Form\SingleTaskType;
|
||||||
|
use Chill\TaskBundle\Form\SingleTaskListType;
|
||||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
||||||
use Symfony\Component\Form\FormFactoryInterface;
|
use Symfony\Component\Form\FormFactoryInterface;
|
||||||
use Chill\TaskBundle\Security\Authorization\TaskVoter;
|
use Chill\TaskBundle\Security\Authorization\TaskVoter;
|
||||||
@ -433,7 +434,68 @@ class SingleTaskController extends Controller
|
|||||||
$viewParams['layout'] = 'ChillMainBundle::layout.html.twig';
|
$viewParams['layout'] = 'ChillMainBundle::layout.html.twig';
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->render('ChillTaskBundle:SingleTask:index.html.twig', $viewParams);
|
// Form for filtering tasks
|
||||||
|
$form = $this->createForm(SingleTaskListType::class, null, [
|
||||||
|
//'center' => $task->getCenter()
|
||||||
|
]);
|
||||||
|
|
||||||
|
$form->add('submit', SubmitType::class);
|
||||||
|
|
||||||
|
$form->handleRequest($request);
|
||||||
|
|
||||||
|
if ($form->isSubmitted()) {
|
||||||
|
if ($form->isValid()) {
|
||||||
|
|
||||||
|
$formData = $form->getData();
|
||||||
|
|
||||||
|
$status = $statuses[$formData['status']];
|
||||||
|
$viewParamsForm['user'] = $formData['user'];
|
||||||
|
$viewParamsForm['isSingleStatus'] = $singleStatus = count($statuses) === 1;
|
||||||
|
|
||||||
|
// herit some parameters from the page
|
||||||
|
$viewParamsForm['person'] = $viewParams['person'];
|
||||||
|
$viewParamsForm['layout'] = $viewParams['layout'];
|
||||||
|
|
||||||
|
// different query if regarding to date or 'closed'
|
||||||
|
if (in_array($status, SingleTaskRepository::DATE_STATUSES)) {
|
||||||
|
$params['date_status'] = $status;
|
||||||
|
$params['is_closed'] = false;
|
||||||
|
} else {
|
||||||
|
$params['date_status'] = null;
|
||||||
|
$params['is_closed'] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$count = $taskRepository
|
||||||
|
->countByParameters($params, $formData['user'])
|
||||||
|
;
|
||||||
|
$paginator = $paginatorFactory->create($count);
|
||||||
|
|
||||||
|
$viewParamsForm['single_task_'.$status.'_count'] = $count;
|
||||||
|
$viewParamsForm['single_task_'.$status.'_paginator'] = $paginator;
|
||||||
|
$viewParamsForm['single_task_'.$status.'_tasks'] = $taskRepository
|
||||||
|
->findByParameters($params, $formData['user'],
|
||||||
|
$singleStatus ? $paginator->getCurrentPage()->getFirstItemNumber() : 0,
|
||||||
|
$singleStatus ? $paginator->getItemsPerPage() : 10)
|
||||||
|
;
|
||||||
|
|
||||||
|
// total number of tasks
|
||||||
|
$viewParamsForm['tasks_count'] = $count;
|
||||||
|
|
||||||
|
return $this->render('ChillTaskBundle:SingleTask:index.html.twig', array(
|
||||||
|
'view' => $viewParamsForm,
|
||||||
|
'form' => $form->createView()
|
||||||
|
));
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$this->addFlash('error', "wrong test");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dump($viewParams);
|
||||||
|
return $this->render('ChillTaskBundle:SingleTask:index.html.twig', array(
|
||||||
|
'view' => $viewParams,
|
||||||
|
'form' => $form->createView()
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -71,10 +71,10 @@ class TaskController extends Controller
|
|||||||
|
|
||||||
$em->flush();
|
$em->flush();
|
||||||
|
|
||||||
$this->addFlash('success', 'The transition is sucessfully appliyed');
|
$this->addFlash('success', 'The transition is successfully applied');
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$this->addFlash('error', 'The transition could not be appliyed');
|
$this->addFlash('error', 'The transition could not be applied');
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->redirect($request->query->get('return_path', $defaultReturnPath));
|
return $this->redirect($request->query->get('return_path', $defaultReturnPath));
|
||||||
|
62
Form/SingleTaskListType.php
Normal file
62
Form/SingleTaskListType.php
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2018 Champs Libres Cooperative <info@champs-libres.coop>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
namespace Chill\TaskBundle\Form;
|
||||||
|
|
||||||
|
use Symfony\Component\Form\AbstractType;
|
||||||
|
use Symfony\Component\Form\FormBuilderInterface;
|
||||||
|
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||||
|
use Chill\MainBundle\Entity\Scope;
|
||||||
|
use Chill\MainBundle\Entity\Center;
|
||||||
|
use Chill\MainBundle\Entity\User;
|
||||||
|
use Chill\MainBundle\Form\Type\ScopePickerType;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||||
|
use Chill\TaskBundle\Repository\SingleTaskRepository;
|
||||||
|
|
||||||
|
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author Julien Fastré <julien.fastre@champs-libres.coop>
|
||||||
|
*/
|
||||||
|
class SingleTaskListType extends AbstractType
|
||||||
|
{
|
||||||
|
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||||
|
{
|
||||||
|
$builder
|
||||||
|
->add('user', EntityType::class, [
|
||||||
|
'class' => 'Chill\MainBundle\Entity\User'
|
||||||
|
])
|
||||||
|
->add('status', ChoiceType::class, [
|
||||||
|
'choices' => array_flip(\array_merge(SingleTaskRepository::DATE_STATUSES, [ 'closed' ])),
|
||||||
|
'expanded' => false,
|
||||||
|
'multiple' => false
|
||||||
|
])
|
||||||
|
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function configureOptions(OptionsResolver $resolver)
|
||||||
|
{
|
||||||
|
$resolver
|
||||||
|
// ->setRequired('center')
|
||||||
|
// ->setAllowedTypes('center', [ Center::class ])
|
||||||
|
;
|
||||||
|
}
|
||||||
|
}
|
@ -73,8 +73,10 @@ div#single_task_warningInterval {
|
|||||||
position: absolute;
|
position: absolute;
|
||||||
background-color: #f9f9f9;
|
background-color: #f9f9f9;
|
||||||
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
|
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
|
||||||
padding: 0.4em 0.7em;
|
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
|
a {
|
||||||
|
margin: 0.4em;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.bt-dropdown:hover .bt-dropdown-content {
|
.bt-dropdown:hover .bt-dropdown-content {
|
||||||
|
@ -26,9 +26,9 @@ User: Utilisateur
|
|||||||
'Task start date': 'Date de début'
|
'Task start date': 'Date de début'
|
||||||
'Task warning date': "Date d'avertissement"
|
'Task warning date': "Date d'avertissement"
|
||||||
'Task end date': "Date d'échéance"
|
'Task end date': "Date d'échéance"
|
||||||
'Start': 'Début: '
|
'Start': 'Début'
|
||||||
'Warning': 'Avertissement: '
|
'Warning': 'Avertissement'
|
||||||
'End': 'Échéance: '
|
'End': 'Échéance'
|
||||||
'Task type': 'Type'
|
'Task type': 'Type'
|
||||||
'Task status': 'Statut'
|
'Task status': 'Statut'
|
||||||
'Edit the task': 'Éditer la tâche'
|
'Edit the task': 'Éditer la tâche'
|
||||||
@ -69,5 +69,5 @@ cancel: annuler
|
|||||||
'The task has been successfully removed.': 'La tâche a bien été supprimée'
|
'The task has been successfully removed.': 'La tâche a bien été supprimée'
|
||||||
'This form contains errors': 'Ce formulaire contient des erreurs'
|
'This form contains errors': 'Ce formulaire contient des erreurs'
|
||||||
'The task has been updated': 'La tâche a été mise à jour'
|
'The task has been updated': 'La tâche a été mise à jour'
|
||||||
'The transition is sucessfully applyed': 'La transition a bien été effectuée'
|
'The transition is successfully applied': 'La transition a bien été effectuée'
|
||||||
'The transition could not be applyed': "La transition n'a pas pu être appliquée"
|
'The transition could not be applied': "La transition n'a pas pu être appliquée"
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
<td>{{ task.title }}</td>
|
<td>{{ task.title }}</td>
|
||||||
<td>{{ task.type }}</td>
|
<td>{{ task.type }}</td>
|
||||||
{% if person is null %}
|
{% if person is null %}
|
||||||
<td>{{ task.person }}</td>
|
<td><a href="{{ path('chill_person_view', {person_id : task.person.Id}) }}">{{ task.person}}</a></td>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<td>
|
<td>
|
||||||
{% for place in workflow_marked_places(task) %}
|
{% for place in workflow_marked_places(task) %}
|
||||||
@ -140,51 +140,58 @@
|
|||||||
|
|
||||||
|
|
||||||
<h1>{{ 'Task list'|trans }}</h1>
|
<h1>{{ 'Task list'|trans }}</h1>
|
||||||
{% if tasks_count == 0 %}
|
|
||||||
|
<p>Filter the tasks</p>
|
||||||
|
{{ form_start(form) }}
|
||||||
|
{{ form_row(form.user) }}
|
||||||
|
{{ form_row(form.status) }}
|
||||||
|
{{ form_end(form)}}
|
||||||
|
|
||||||
|
{% if view.tasks_count == 0 %}
|
||||||
<p class="chill-no-data-statement">{{ "There is no tasks."|trans }}</p>
|
<p class="chill-no-data-statement">{{ "There is no tasks."|trans }}</p>
|
||||||
{% if person is not null %}
|
{% if view.person is not null %}
|
||||||
<a href="{{ path('chill_task_single_task_new', {'person_id': person.id}) }}" class="sc-button bt-create">
|
<a href="{{ path('chill_task_single_task_new', {'person_id': view.person.id}) }}" class="sc-button bt-create">
|
||||||
{{ 'Add a new task' | trans }}
|
{{ 'Add a new task' | trans }}
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<!-- Pour l'instant, il n'est pas encore possible d'ajouter une tache sans personne liée -->
|
<!-- Pour l'instant, il n'est pas encore possible d'ajouter une tache sans personne liée -->
|
||||||
<!-- {% if person is null %}
|
<!-- {% if view.person is null %}
|
||||||
<a href="{{ path('chill_task_single_task_new') }}" class="sc-button bt-create">
|
<a href="{{ path('chill_task_single_task_new') }}" class="sc-button bt-create">
|
||||||
{{ 'Add a new task' | trans }}
|
{{ 'Add a new task' | trans }}
|
||||||
</a>
|
</a>
|
||||||
{% endif %} -->
|
{% endif %} -->
|
||||||
{% else %}
|
{% else %}
|
||||||
|
|
||||||
{% if single_task_ended_tasks is defined %}
|
{% if view.single_task_ended_tasks is defined %}
|
||||||
{{ helper.date_status('Tasks with expired deadline', single_task_ended_tasks, single_task_ended_count, single_task_ended_paginator, 'ended', isSingleStatus, person) }}
|
{{ helper.date_status('Tasks with expired deadline', view.single_task_ended_tasks, view.single_task_ended_count, view.single_task_ended_paginator, 'ended', view.isSingleStatus, view.person) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if single_task_warning_tasks is defined %}
|
{% if view.single_task_warning_tasks is defined %}
|
||||||
{{ helper.date_status('Tasks with warning deadline reached', single_task_warning_tasks, single_task_warning_count, single_task_warning_paginator, 'warning', isSingleStatus, person) }}
|
{{ helper.date_status('Tasks with warning deadline reached', view.single_task_warning_tasks, view.single_task_warning_count, view.single_task_warning_paginator, 'warning', view.isSingleStatus, view.person) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if single_task_current_tasks is defined %}
|
{% if view.single_task_current_tasks is defined %}
|
||||||
{{ helper.date_status('Current tasks', single_task_current_tasks, single_task_current_count, single_task_current_paginator, 'current', isSingleStatus, person) }}
|
{{ helper.date_status('Current tasks', view.single_task_current_tasks, view.single_task_current_count, view.single_task_current_paginator, 'current', view.isSingleStatus, view.person) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if single_task_not_started_tasks is defined %}
|
{% if view.single_task_not_started_tasks is defined %}
|
||||||
{{ helper.date_status('Tasks not started', single_task_not_started_tasks, single_task_not_started_count, single_task_not_started_paginator, 'not_started', isSingleStatus, person) }}
|
{{ helper.date_status('Tasks not started', view.single_task_not_started_tasks, view.single_task_not_started_count, view.single_task_not_started_paginator, 'not_started', view.isSingleStatus, view.person) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if single_task_closed_tasks is defined %}
|
{% if view.single_task_closed_tasks is defined %}
|
||||||
{{ helper.date_status('Closed', single_task_closed_tasks, single_task_closed_count, single_task_closed_paginator, 'closed', isSingleStatus, person) }}
|
{{ helper.date_status('Closed', view.single_task_closed_tasks, view.single_task_closed_count, view.single_task_closed_paginator, 'closed', view.isSingleStatus, view.person) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if isSingleStatus == false %}
|
{% if view.isSingleStatus == false %}
|
||||||
<ul class="record_actions">
|
<ul class="record_actions">
|
||||||
<li>
|
<li>
|
||||||
{% if person is not null %}
|
{% if view.person is not null %}
|
||||||
<a href="{{ path('chill_task_single_task_new', {'person_id': person.id}) }}" class="sc-button bt-create">
|
<a href="{{ path('chill_task_single_task_new', {'person_id': person.id}) }}" class="sc-button bt-create">
|
||||||
{{ 'Add a new task' | trans }}
|
{{ 'Add a new task' | trans }}
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<!-- Pour l'instant, il n'est pas encore possible d'ajouter une tache sans personne liée -->
|
<!-- Pour l'instant, il n'est pas encore possible d'ajouter une tache sans personne liée -->
|
||||||
<!-- {% if person is null %}
|
<!-- {% if view.person is null %}
|
||||||
<a href="{{ path('chill_task_single_task_new') }}" class="sc-button bt-create">
|
<a href="{{ path('chill_task_single_task_new') }}" class="sc-button bt-create">
|
||||||
{{ 'Add a new task' | trans }}
|
{{ 'Add a new task' | trans }}
|
||||||
</a>
|
</a>
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#}
|
#}
|
||||||
|
|
||||||
{% extends layout %}
|
{% extends view.layout %}
|
||||||
|
|
||||||
{% set activeRouteKey = 'chill_task_single_task_new' %}
|
{% set activeRouteKey = 'chill_task_single_task_new' %}
|
||||||
|
|
||||||
@ -32,7 +32,7 @@
|
|||||||
|
|
||||||
{# filter tasks #}
|
{# filter tasks #}
|
||||||
|
|
||||||
{% if person is not null %}
|
{% if view.person is not null %}
|
||||||
{% block personcontent %}
|
{% block personcontent %}
|
||||||
{% include 'ChillTaskBundle:SingleTask:_list.html.twig' %}
|
{% include 'ChillTaskBundle:SingleTask:_list.html.twig' %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user