diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 25c5f0ff0..1cf89b91b 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -10,7 +10,7 @@ - + @@ -31,6 +31,9 @@ src/Bundle/ChillPersonBundle/Tests/Controller/PersonDuplicateControllerViewTest.php + + src/Bundle/ChillAsideActivityBundle/src/Tests/ + diff --git a/src/Bundle/ChillAsideActivityBundle/src/Controller/AdminController.php b/src/Bundle/ChillAsideActivityBundle/src/Controller/AdminController.php new file mode 100644 index 000000000..ae04b2110 --- /dev/null +++ b/src/Bundle/ChillAsideActivityBundle/src/Controller/AdminController.php @@ -0,0 +1,20 @@ + + * @author Champs Libres + */ +class AdminController extends AbstractController +{ + + public function redirectToAdminIndexAction() + { + return $this->redirectToRoute('chill_main_admin_central'); + } +} \ No newline at end of file diff --git a/src/Bundle/ChillAsideActivityBundle/src/Controller/AsideActivityController.php b/src/Bundle/ChillAsideActivityBundle/src/Controller/AsideActivityController.php index 55af4a6ab..88e53c8d2 100644 --- a/src/Bundle/ChillAsideActivityBundle/src/Controller/AsideActivityController.php +++ b/src/Bundle/ChillAsideActivityBundle/src/Controller/AsideActivityController.php @@ -1,14 +1,41 @@ andWhere($qb->expr()->eq('e.agent', ':user')); + $qb->setParameter('user', $this->getUser()); + } + + return $qb; + } + + protected function orderQuery( + string $action, + $query, + Request $request, + PaginatorInterface $paginator + ) { + if ('index' === $action) { + return $query->orderBy('e.date', 'DESC'); + } + + return parent::orderQuery($action, $query, $request, $paginator); + } + + } diff --git a/src/Bundle/ChillAsideActivityBundle/src/DataFixtures/ORM/LoadAsideActivity.php b/src/Bundle/ChillAsideActivityBundle/src/DataFixtures/ORM/LoadAsideActivity.php new file mode 100644 index 000000000..2764db282 --- /dev/null +++ b/src/Bundle/ChillAsideActivityBundle/src/DataFixtures/ORM/LoadAsideActivity.php @@ -0,0 +1,53 @@ +userRepository = $userRepository; + } + + public function getDependencies(): array + { + return [ + LoadUsers::class, + LoadAsideActivityCategory::class + ]; + } + + public function load(ObjectManager $manager) + { + $user = $this->userRepository->findOneBy(['username' => 'center a_social']); + + for ($i = 0; $i < 50; $i++) { + $activity = new AsideActivity(); + $activity + ->setAgent($user) + ->setCreatedAt(new \DateTimeImmutable('now')) + ->setCreatedBy($user) + ->setUpdatedAt(new \DateTimeImmutable('now')) + ->setUpdatedBy($user) + ->setType( + $this->getReference('aside_activity_category_0') + ) + ->setDate((new \DateTimeImmutable('today')) + ->sub(new \DateInterval('P'.\random_int(1, 100).'D'))) + ; + + $manager->persist($activity); + } + + $manager->flush(); + } +} diff --git a/src/Bundle/ChillAsideActivityBundle/src/DataFixtures/ORM/LoadAsideActivityCategory.php b/src/Bundle/ChillAsideActivityBundle/src/DataFixtures/ORM/LoadAsideActivityCategory.php new file mode 100644 index 000000000..497b260ad --- /dev/null +++ b/src/Bundle/ChillAsideActivityBundle/src/DataFixtures/ORM/LoadAsideActivityCategory.php @@ -0,0 +1,24 @@ + $label) { + $category = new AsideActivityCategory(); + $category->setTitle(['fr' => $label]); + $manager->persist($category); + $this->setReference('aside_activity_category_'.$key, $category); + } + + $manager->flush(); + } +} diff --git a/src/Bundle/ChillAsideActivityBundle/src/DependencyInjection/ChillAsideActivityExtension.php b/src/Bundle/ChillAsideActivityBundle/src/DependencyInjection/ChillAsideActivityExtension.php index bbc4c8f8b..712649653 100644 --- a/src/Bundle/ChillAsideActivityBundle/src/DependencyInjection/ChillAsideActivityExtension.php +++ b/src/Bundle/ChillAsideActivityBundle/src/DependencyInjection/ChillAsideActivityExtension.php @@ -25,8 +25,9 @@ final class ChillAsideActivityExtension extends Extension implements PrependExte public function load(array $configs, ContainerBuilder $container): void { $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../config')); - // $loader->load('services.yaml'); + $loader->load('services.yaml'); $loader->load('services/form.yaml'); + $loader->load('services/menu.yaml'); } public function prepend(ContainerBuilder $container) diff --git a/src/Bundle/ChillAsideActivityBundle/src/Entity/AsideActivity.php b/src/Bundle/ChillAsideActivityBundle/src/Entity/AsideActivity.php index 92478d787..af4baa6d3 100644 --- a/src/Bundle/ChillAsideActivityBundle/src/Entity/AsideActivity.php +++ b/src/Bundle/ChillAsideActivityBundle/src/Entity/AsideActivity.php @@ -200,10 +200,4 @@ class AsideActivity implements TrackUpdateInterface, TrackCreationInterface return $this; } - - // public function __toString() - // { - // // dump($this->type->getTitle()); - // return $this->type->getTitle(); - // } } diff --git a/src/Bundle/ChillAsideActivityBundle/src/Form/AsideActivityFormType.php b/src/Bundle/ChillAsideActivityBundle/src/Form/AsideActivityFormType.php index 2dcce3baa..4bf5bbfdc 100644 --- a/src/Bundle/ChillAsideActivityBundle/src/Form/AsideActivityFormType.php +++ b/src/Bundle/ChillAsideActivityBundle/src/Form/AsideActivityFormType.php @@ -8,7 +8,9 @@ use Chill\MainBundle\Entity\User; use Chill\MainBundle\Form\Type\ChillDateType; use Chill\MainBundle\Form\Type\ChillTextareaType; use Chill\MainBundle\Templating\TranslatableStringHelper; +use Doctrine\ORM\EntityRepository; use Symfony\Bridge\Doctrine\Form\Type\EntityType; +use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToTimestampTransformer; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; @@ -26,8 +28,12 @@ final class AsideActivityFormType extends AbstractType private TranslatableStringHelper $translatableStringHelper; private TokenStorageInterface $storage; - public function __construct (TranslatableStringHelper $translatableStringHelper, array $timeChoices, TokenStorageInterface $storage){ - $this->timeChoices = $timeChoices; + public function __construct ( + TranslatableStringHelper $translatableStringHelper, + ParameterBagInterface $parameterBag, + TokenStorageInterface $storage + ){ + $this->timeChoices = $parameterBag->get('chill_activity.form.time_duration'); $this->translatableStringHelper = $translatableStringHelper; $this->storage = $storage; } @@ -47,12 +53,15 @@ final class AsideActivityFormType extends AbstractType ]; $builder - ->add('agent', EntityType::class, + ->add('agent', EntityType::class, [ 'label' => 'Agent', 'required' => true, 'class' => User::class, 'data' => $this->storage->getToken()->getUser(), + 'query_builder' => function(EntityRepository $er){ + return $er->createQueryBuilder('u')->where('u.enabled = true'); + }, 'attr' => array('class' => 'select2 '), 'placeholder' => 'Choose the agent for whom this activity is created', 'choice_label' => 'username' @@ -85,7 +94,7 @@ final class AsideActivityFormType extends AbstractType 'required' => false, ]); - foreach (['duration'] as $fieldName) + foreach (['duration'] as $fieldName) { $builder->get($fieldName) ->addModelTransformer($durationTimeTransformer); @@ -108,7 +117,6 @@ final class AsideActivityFormType extends AbstractType $seconds = $data->getTimezone()->getOffset($data); $data->setTimeZone($timezoneUTC); $data->add(new \DateInterval('PT'.$seconds.'S')); - dump($data); // test if the timestamp is in the choices. // If not, recreate the field with the new timestamp @@ -131,7 +139,7 @@ final class AsideActivityFormType extends AbstractType public function configureOptions(OptionsResolver $resolver): void { $resolver->setDefaults([ - 'data_class' => AsideActivity::class, + 'data_class' => AsideActivity::class, ]); } @@ -139,4 +147,4 @@ final class AsideActivityFormType extends AbstractType { return 'chill_asideactivitybundle_asideactivity'; } -} \ No newline at end of file +} diff --git a/src/Bundle/ChillAsideActivityBundle/src/Menu/SectionMenuBuilder.php b/src/Bundle/ChillAsideActivityBundle/src/Menu/SectionMenuBuilder.php new file mode 100644 index 000000000..b9776b92b --- /dev/null +++ b/src/Bundle/ChillAsideActivityBundle/src/Menu/SectionMenuBuilder.php @@ -0,0 +1,46 @@ +translator = $translator; + } + + /** + * @param $menuId + * @param MenuItem $menu + * @param array $parameters + */ + public function buildMenu($menuId, MenuItem $menu, array $parameters) + { + $menu->addChild($this->translator->trans('Create an aside activity'), [ + 'route' => 'chill_crud_aside_activity_new' + ]) + ->setExtras([ + 'order' => 11, + 'icons' => [ 'plus' ] + ]); + } + + /** + * @return array + */ + public static function getMenuIds(): array + { + return [ 'section' ]; + } +} diff --git a/src/Bundle/ChillAsideActivityBundle/src/Resources/views/Admin/layout_asideactivity.html.twig b/src/Bundle/ChillAsideActivityBundle/src/Resources/views/Admin/layout_asideactivity.html.twig new file mode 100644 index 000000000..f0242c085 --- /dev/null +++ b/src/Bundle/ChillAsideActivityBundle/src/Resources/views/Admin/layout_asideactivity.html.twig @@ -0,0 +1,14 @@ +{% extends "@ChillMain/Admin/layoutWithVerticalMenu.html.twig" %} + +{% block vertical_menu_content %} + {{ chill_menu('admin_aside_activity', { + 'layout': '@ChillAsideActivity/Admin/menu_asideactivity.html.twig', + }) }} +{% endblock %} + +{% block layout_wvm_content %} + {% block admin_content %} + +

{{ 'Aside activity configuration' |trans }}

+ {% endblock %} +{% endblock %} diff --git a/src/Bundle/ChillAsideActivityBundle/src/Resources/views/Admin/menu_asideactivity.html.twig b/src/Bundle/ChillAsideActivityBundle/src/Resources/views/Admin/menu_asideactivity.html.twig new file mode 100644 index 000000000..34ea309e5 --- /dev/null +++ b/src/Bundle/ChillAsideActivityBundle/src/Resources/views/Admin/menu_asideactivity.html.twig @@ -0,0 +1,4 @@ +{% extends "@ChillMain/Menu/verticalMenu.html.twig" %} +{% block v_menu_title %} + {{ 'Aside activity configuration menu'|trans }} +{% endblock %} diff --git a/src/Bundle/ChillAsideActivityBundle/src/Resources/views/asideActivity/_delete.html.twig b/src/Bundle/ChillAsideActivityBundle/src/Resources/views/asideActivity/_delete.html.twig index fdbccb838..2f30b14cf 100644 --- a/src/Bundle/ChillAsideActivityBundle/src/Resources/views/asideActivity/_delete.html.twig +++ b/src/Bundle/ChillAsideActivityBundle/src/Resources/views/asideActivity/_delete.html.twig @@ -1,37 +1,30 @@
- {% block crud_content_header %} -

{{ ('crud.'~crud_name~'.title_delete')|trans({ '%as_string%': 'Aside Activity' }) }}

- {% endblock crud_content_header %} + {% block crud_content_header %} +

{{ ('crud.'~crud_name~'.title_delete')|trans({ '%as_string%': 'Aside Activity' }) }}

+ {% endblock crud_content_header %} -

{{ ('crud.'~crud_name~'.confirm_message_delete')|trans({ '%as_string%': 'Aside Activity' }) }}

+

{{ ('crud.'~crud_name~'.confirm_message_delete')|trans({ '%as_string%': 'Aside Activity' }) }}

- {{ form_start(form) }} + {{ form_start(form) }} -
    - {% block content_form_actions_back %} -
  • - - {{ 'Cancel'|trans }} - -
  • - {% endblock %} - {% block content_form_actions_before %}{% endblock %} - {% block content_form_actions_view %} - {% if is_granted(chill_crud_config('role', crud_name, 'view'), entity) %} -
  • - - {{ 'crud.edit.back_to_view'|trans }} - -
  • - {% endif %} - {% endblock %} - {% block content_form_actions_confirm_delete %} -
  • - -
  • - {% endblock content_form_actions_confirm_delete %} - {% block content_form_actions_after %}{% endblock %} -
+
    + {% block content_form_actions_back %} +
  • + + {{ 'Cancel'|trans }} + +
  • + {% endblock %} + {% block content_form_actions_before %} - {{ form_end(form) }} -
\ No newline at end of file + {% endblock %} + {% block content_form_actions_confirm_delete %} +
  • + +
  • + {% endblock content_form_actions_confirm_delete %} + {% block content_form_actions_after %}{% endblock %} + + + {{ form_end(form) }} + diff --git a/src/Bundle/ChillAsideActivityBundle/src/Resources/views/asideActivity/delete.html.twig b/src/Bundle/ChillAsideActivityBundle/src/Resources/views/asideActivity/delete.html.twig index 9c8a1ff59..4dd0a8415 100644 --- a/src/Bundle/ChillAsideActivityBundle/src/Resources/views/asideActivity/delete.html.twig +++ b/src/Bundle/ChillAsideActivityBundle/src/Resources/views/asideActivity/delete.html.twig @@ -3,6 +3,6 @@ {# {% block title %}{{ ('crud.' ~ crud_name ~ '.delete.title')|trans({'%crud_name%': crud_name}) }}{% endblock %} #} {% block content %} - {% embed '@ChillAsideActivity/AsideActivity/_delete.html.twig' %} + {% embed '@ChillAsideActivity/asideActivity/_delete.html.twig' %} {% endembed %} -{% endblock content %} \ No newline at end of file +{% endblock content %} diff --git a/src/Bundle/ChillAsideActivityBundle/src/Resources/views/asideActivity/edit.html.twig b/src/Bundle/ChillAsideActivityBundle/src/Resources/views/asideActivity/edit.html.twig index b0b6fed0f..ad0a38f73 100644 --- a/src/Bundle/ChillAsideActivityBundle/src/Resources/views/asideActivity/edit.html.twig +++ b/src/Bundle/ChillAsideActivityBundle/src/Resources/views/asideActivity/edit.html.twig @@ -9,5 +9,6 @@ {% embed '@ChillMain/CRUD/_edit_content.html.twig' %} {# we do not have "view" page. We empty the corresponding block #} {% block content_form_actions_view %}{% endblock %} + {% block content_form_actions_save_and_show %}{% endblock %} {% endembed %} {% endblock %} diff --git a/src/Bundle/ChillAsideActivityBundle/src/Resources/views/asideActivity/list.html.twig b/src/Bundle/ChillAsideActivityBundle/src/Resources/views/asideActivity/list.html.twig index 4d2bb9110..d0e02e3d2 100644 --- a/src/Bundle/ChillAsideActivityBundle/src/Resources/views/asideActivity/list.html.twig +++ b/src/Bundle/ChillAsideActivityBundle/src/Resources/views/asideActivity/list.html.twig @@ -1,107 +1,97 @@ {% extends "@ChillMain/layout.html.twig" %} -{% block title %}{{ 'Aside activity list' |trans }}{% endblock title %} +{% block title %} + {{ 'Aside activity list' |trans }} +{% endblock title %} {% block content %} -
    -

    {{ 'My aside activities' |trans }}

    +
    +

    {{ 'My aside activities' |trans }}

    -{% if entities|length == 0 %} -

    - {{ "There aren't any aside activities."|trans }} - -

    -{% else %} + {% if entities|length == 0 %} +

    + {{ "There aren't any aside activities."|trans }} + +

    + {% else %} -
    - {# Sort activities according to date in descending order #} - {% for entity in entities|sort ((a, b) => b.date <=> a.date) %} - {% set t = entity.type %} +
    + {# Sort activities according to date in descending order #} + {% for entity in entities %} + {% set t = entity.type %} - {# only load aside activities of current user. #} - {% if entity.agent == app.user %} +
    +
    +
    -
    -
    -
    +

    + {{ entity.type.title | localize_translatable_string }} +

    -

    - {{ entity.type.title | localize_translatable_string }} -

    + {% if entity.date %} +

    {{ entity.date|format_date('long') }}

    + {% endif %} - {% if entity.date %} -

    {{ entity.date|format_date('long') }}

    - {% endif %} +
    +

    + + {{ entity.duration|date('H:i') }} +

    +
    -
    -

    - - {{ entity.duration|date('H:i') }} -

    -
    +
    +
    +
      + {% if entity.createdBy %} +
    • + {{ 'Created by: '|trans }}{{ entity.createdBy.usernameCanonical }} +
    • + {% endif %} +
    +
    +
    -
    -
    -
      - {% if entity.createdBy %} -
    • - {{ 'Created by: '|trans }}{{ entity.createdBy.usernameCanonical }} -
    • - {% endif %} -
    -
    -
    + {# {% + if entity.note is not empty + or entity.createdBy|length > 0 + %} +
    + {% if entity.note is not empty %} +
    + {{ entity.note|chill_markdown_to_html }} +
    + {% endif %} - {# {% - if entity.note is not empty - or entity.createdBy|length > 0 - %} -
    - {% if entity.note is not empty %} -
    - {{ entity.note|chill_markdown_to_html }} -
    - {% endif %} +
    + {% endif %} #} +
    +
      +
        +
      • + +
      • +
      • + +
      • +
      +
    +
    +
    -
    - {% endif %} #} -
    -
      -
        - {#
      • - -
      • #} - {# TOOD - {% if is_granted('CHILL_ACTIVITY_UPDATE', activity) %} - #} -
      • - -
      • - {# TOOD - {% endif %} - {% if is_granted('CHILL_ACTIVITY_DELETE', activity) %} - #} -
      • - -
      • - {# - {% endif %} - #} -
      -
    -
    -
    - {% endif %} - {% endfor %} -
    - -
    -{% endif %} + {% endfor %} +
    + + {{ chill_pagination(paginator) }} + + +
    + {% endif %} {% endblock %} diff --git a/src/Bundle/ChillAsideActivityBundle/src/Resources/views/asideActivityCategory/index.html.twig b/src/Bundle/ChillAsideActivityBundle/src/Resources/views/asideActivityCategory/index.html.twig index e9d5a0869..d8cb67716 100644 --- a/src/Bundle/ChillAsideActivityBundle/src/Resources/views/asideActivityCategory/index.html.twig +++ b/src/Bundle/ChillAsideActivityBundle/src/Resources/views/asideActivityCategory/index.html.twig @@ -1,44 +1,44 @@ -{% extends "@ChillActivity/Admin/layout_activity.html.twig" %} +{% extends "@ChillAsideActivity/Admin/layout_asideactivity.html.twig" %} {% block admin_content %} -

    {{ 'ActivityType list'|trans }}

    +

    {{ 'ActivityType list'|trans }}

    - - - - - - - - - - {% for entity in entities %} - - - - - - {% endfor %} - -
    {{ 'Name'|trans }}{{ 'Active'|trans }}{{ 'Actions'|trans }}
    {{ entity.title|localize_translatable_string }} - {%- if entity.isActive -%} - - {%- else -%} - - {%- endif -%} - -
      -
    • - -
    • -
    -
    + + + + + + + + + + {% for entity in entities %} + + + + + + {% endfor %} + +
    {{ 'Name'|trans }}{{ 'Active'|trans }}{{ 'Actions'|trans }}
    {{ entity.title|localize_translatable_string }} + {%- if entity.isActive -%} + + {%- else -%} + + {%- endif -%} + +
      +
    • + +
    • +
    +
    - - {% endblock %} + +{% endblock %} diff --git a/src/Bundle/ChillAsideActivityBundle/src/Tests/Controller/AsideActivityControllerTest.php b/src/Bundle/ChillAsideActivityBundle/src/Tests/Controller/AsideActivityControllerTest.php new file mode 100644 index 000000000..301da25e1 --- /dev/null +++ b/src/Bundle/ChillAsideActivityBundle/src/Tests/Controller/AsideActivityControllerTest.php @@ -0,0 +1,73 @@ +client = $this->getClientAuthenticated(); + } + + public function testIndexWithoutUsers() + { + $this->client->request('GET', '/fr/asideactivity'); + + $this->assertEquals(200, $this->client->getResponse()->getStatusCode()); + } + + public function testNewWithoutUsers() + { + $this->client->request('GET', '/fr/asideactivity/new'); + + $this->assertEquals(200, $this->client->getResponse()->getStatusCode()); + } + + /** + * @dataProvider generateAsideActivityId + */ + + public function testEditWithoutUsers(int $asideActivityId) + { + $this->client->request('GET', "/fr/asideactivity/{$asideActivityId}/edit"); + + $this->assertEquals(200, $this->client->getResponse()->getStatusCode()); + } + + public function generateAsideActivityId() + { + self::bootKernel(); + + $qb = self::$container->get(EntityManagerInterface::class) + ->createQueryBuilder(); + + $asideActivityIds = $qb + ->select('DISTINCT asideactivity.id') + ->from(AsideActivity::class, 'asideactivity') + ->innerJoin('asideactivity.agent', 'agent') + ->where($qb->expr()->eq('agent.username', ':center_name')) + ->setParameter('center_name', 'center a_social') + ->setMaxResults(100) + ->getQuery() + ->getResult() + ; + + \shuffle($asideActivityIds); + + yield [ \array_pop($asideActivityIds)['id'] ]; + yield [ \array_pop($asideActivityIds)['id'] ]; + yield [ \array_pop($asideActivityIds)['id'] ]; + } + + +} \ No newline at end of file diff --git a/src/Bundle/ChillAsideActivityBundle/src/config/routes.yaml b/src/Bundle/ChillAsideActivityBundle/src/config/routes.yaml index 622102e34..ddb635084 100644 --- a/src/Bundle/ChillAsideActivityBundle/src/config/routes.yaml +++ b/src/Bundle/ChillAsideActivityBundle/src/config/routes.yaml @@ -1,3 +1,12 @@ chill_asideactivities_controllers: - resource: "@ChillAsideActivityBundle/Controller" - type: annotation \ No newline at end of file + resource: "@ChillAsideActivityBundle/Controller" + type: annotation + +chill_admin_aside_activity_redirect_to_admin_index: + path: /{_locale}/admin/activity_redirect_to_main + controller: Chill\ActivityBundle\Controller\AdminController::redirectToAdminIndexAction + options: + menus: + admin_aside_activity: + order: 0 + label: Main admin menu diff --git a/src/Bundle/ChillAsideActivityBundle/src/config/services.yaml b/src/Bundle/ChillAsideActivityBundle/src/config/services.yaml index 727efaa38..8ff656fdc 100644 --- a/src/Bundle/ChillAsideActivityBundle/src/config/services.yaml +++ b/src/Bundle/ChillAsideActivityBundle/src/config/services.yaml @@ -1,8 +1,5 @@ -# services: -# chill.asideactivity.form.type.asideactivity: -# class: Chill\AsideActivityBundle\Form\AsideActivityFormType -# arguments: -# - "@chill.main.helper.translatable_string" -# # - "%chill_activity.form.time_duration%" -# tags: -# - { name: form.type, alias: chill_asideactivitybundle_asideactivity } \ No newline at end of file +services: + Chill\AsideActivityBundle\DataFixtures\: + resource: './../DataFixtures' + autowire: true + autoconfigure: true diff --git a/src/Bundle/ChillAsideActivityBundle/src/config/services/form.yaml b/src/Bundle/ChillAsideActivityBundle/src/config/services/form.yaml index ceb9dffc7..23c614937 100644 --- a/src/Bundle/ChillAsideActivityBundle/src/config/services/form.yaml +++ b/src/Bundle/ChillAsideActivityBundle/src/config/services/form.yaml @@ -1,10 +1,6 @@ --- services: - chill.asideactivity.form.type.asideactivity: - class: Chill\AsideActivityBundle\Form\AsideActivityFormType - arguments: - - "@chill.main.helper.translatable_string" - - "%chill_activity.form.time_duration%" - - "@security.token_storage" - tags: - - { name: form.type, alias: chill_asideactivitybundle_asideactivity } \ No newline at end of file + Chill\AsideActivityBundle\Form\: + resource: './../../Form' + autowire: true + autoconfigure: true diff --git a/src/Bundle/ChillAsideActivityBundle/src/config/services/menu.yaml b/src/Bundle/ChillAsideActivityBundle/src/config/services/menu.yaml new file mode 100644 index 000000000..614391a0e --- /dev/null +++ b/src/Bundle/ChillAsideActivityBundle/src/config/services/menu.yaml @@ -0,0 +1,5 @@ +services: + Chill\AsideActivityBundle\Menu\: + resource: './../../Menu' + autowire: true + autoconfigure: true diff --git a/src/Bundle/ChillAsideActivityBundle/src/translations/messages.fr.yml b/src/Bundle/ChillAsideActivityBundle/src/translations/messages.fr.yml index f01fd07fa..a4ddec913 100644 --- a/src/Bundle/ChillAsideActivityBundle/src/translations/messages.fr.yml +++ b/src/Bundle/ChillAsideActivityBundle/src/translations/messages.fr.yml @@ -1,9 +1,10 @@ #general Show the aside activity: Voir l'activité annexe Edit the aside activity: Modifier l'activité annexe +Remove aside activity: Supprimer l'activité annexe Aside activity: Activité annexe Duration time: Durée -durationTime: durée +durationTime: durée user_username: nom de l'utilisateur Remark: Commentaire No comments: Aucun commentaire @@ -25,7 +26,7 @@ Required: Obligatoire Persons: Personnes Users: Utilisateurs Emergency: Urgent -by: 'Par ' +by: "Par " location: Lieu # Crud @@ -33,10 +34,10 @@ crud: aside_activity: title_view: Détail de l'activité annexe title_new: Nouvelle activité annexe - title_edit: Edition d'une activité annexe - title_delete: Supprimation d'une activité annexe + title_edit: Édition d'une activité annexe + title_delete: Supprimer une activité annexe button_delete: Supprimer - confirm_message_delete: Êtes-vous sûr de vouloir supprimer cet activité annexe? + confirm_message_delete: Êtes-vous sûr de vouloir supprimer cette activité annexe? aside_activity_category: title_new: Nouvelle catégorie d'activité annexe title_edit: Edition d'une catégorie de type d'activité @@ -57,26 +58,18 @@ Agent: Utilisateur date: Date Duration: Durée Note: Note -5 minutes: 5 minutes -10 minutes: 10 minutes -15 minutes: 15 minutes -20 minutes: 20 minutes -25 minutes: 25 minutes -30 minutes: 30 minutes -45 minutes: 45 minutes -1 hour: 1 heure -1 hour 15: 1 heure 15 -1 hour 30: 1 heure 30 -1 hour 45: 1 heure 45 -2 hours: 2 heures #list My aside activities: Mes activités annexes Date: Date Created by: Creér par - #Aside activity delete Delete aside activity: Supprimer une activité annexe Are you sure you want to remove the aside activity concerning "%name%" ?: Êtes-vous sûr de vouloir supprimer une activité annexe qui concerne "%name%" ? The activity has been successfully removed.: L'activité a été supprimée. + +#Menu +Create an aside activity: "Creér une activité annexe" +Aside activity configuration menu: "Menu de configuration des activités annexes" +Aside activity configuration: "Configuration des activités annexes" diff --git a/src/Bundle/ChillMainBundle/CRUD/Controller/CRUDController.php b/src/Bundle/ChillMainBundle/CRUD/Controller/CRUDController.php index 51325b3c5..adc0c071d 100644 --- a/src/Bundle/ChillMainBundle/CRUD/Controller/CRUDController.php +++ b/src/Bundle/ChillMainBundle/CRUD/Controller/CRUDController.php @@ -1141,7 +1141,7 @@ class CRUDController extends AbstractController */ protected function getPaginatorFactory(): PaginatorFactory { - return $this->container->get(PaginatorFactory::class); + return $this->container->get('chill_main.paginator_factory'); } /** @@ -1196,7 +1196,7 @@ class CRUDController extends AbstractController return \array_merge( parent::getSubscribedServices(), [ - PaginatorFactory::class => PaginatorFactory::class, + 'chill_main.paginator_factory' => PaginatorFactory::class, 'translator' => TranslatorInterface::class, AuthorizationHelper::class => AuthorizationHelper::class, EventDispatcherInterface::class => EventDispatcherInterface::class, diff --git a/src/Bundle/ChillMainBundle/ChillMainBundle.php b/src/Bundle/ChillMainBundle/ChillMainBundle.php index 51ef344f2..ee9523273 100644 --- a/src/Bundle/ChillMainBundle/ChillMainBundle.php +++ b/src/Bundle/ChillMainBundle/ChillMainBundle.php @@ -2,6 +2,7 @@ namespace Chill\MainBundle; +use Chill\MainBundle\Routing\LocalMenuBuilderInterface; use Symfony\Component\HttpKernel\Bundle\Bundle; use Symfony\Component\DependencyInjection\ContainerBuilder; use Chill\MainBundle\DependencyInjection\CompilerPass\SearchableServicesCompilerPass; @@ -23,6 +24,10 @@ class ChillMainBundle extends Bundle public function build(ContainerBuilder $container) { parent::build($container); + + $container->registerForAutoconfiguration(LocalMenuBuilderInterface::class) + ->addTag('chill.menu_builder'); + $container->addCompilerPass(new SearchableServicesCompilerPass()); $container->addCompilerPass(new ConfigConsistencyCompilerPass()); $container->addCompilerPass(new TimelineCompilerClass()); diff --git a/src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadUsers.php b/src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadUsers.php index 21b9341c7..02f1bfd18 100644 --- a/src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadUsers.php +++ b/src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadUsers.php @@ -15,7 +15,7 @@ use Symfony\Component\Security\Core\Encoder\MessageDigestPasswordEncoder; /** * Load fixtures users into database - * + * * create a user for each permission_group and center. * username and password are identicals. * @@ -28,12 +28,12 @@ class LoadUsers extends AbstractFixture implements OrderedFixtureInterface, Cont * @var ContainerInterface */ private $container; - + public function getOrder() { return 1000; } - + public static $refs = array( 'center a_social' => array( 'groupCenterRefs' => ['centerA_permission_group_social'] @@ -54,10 +54,10 @@ class LoadUsers extends AbstractFixture implements OrderedFixtureInterface, Cont 'groupCenterRefs' => ['centerB_permission_group_direction'] ), 'multi_center' => array( - 'groupCenterRefs' => ['centerA_permission_group_social', + 'groupCenterRefs' => ['centerA_permission_group_social', 'centerB_permission_group_social'] ) - + ); public function load(ObjectManager $manager) @@ -67,11 +67,11 @@ class LoadUsers extends AbstractFixture implements OrderedFixtureInterface, Cont $user = new User(); $defaultEncoder = new MessageDigestPasswordEncoder('sha512', true, 5000); - + $encoderFactory = new EncoderFactory([ User::class => $defaultEncoder ]); - + $user ->setUsername($username) ->setPassword($encoderFactory @@ -84,7 +84,7 @@ class LoadUsers extends AbstractFixture implements OrderedFixtureInterface, Cont foreach ($params['groupCenterRefs'] as $groupCenterRef) { $user->addGroupCenter($this->getReference($groupCenterRef)); } - + echo 'Creating user ' . $username ."... \n"; $manager->persist($user); $this->addReference($username, $user); @@ -98,7 +98,7 @@ class LoadUsers extends AbstractFixture implements OrderedFixtureInterface, Cont if (NULL === $container) { throw new \LogicException('$container should not be null'); } - + $this->container = $container; } diff --git a/tests/app b/tests/app index 8839b431f..bd95d3c96 160000 --- a/tests/app +++ b/tests/app @@ -1 +1 @@ -Subproject commit 8839b431f296733b792c788f2ef58e5ecd6419d3 +Subproject commit bd95d3c96a437757b7e8f35cdfd30da9aeac1a01