diff --git a/src/Controller/CapsuleGroupController.php b/src/Controller/CapsuleGroupController.php
index 016ee13f6ef2fe1bace612396494e5d7a22307e2..a70c8ce6b21fe13a1e5f369a333e89df346fa75a 100755
--- a/src/Controller/CapsuleGroupController.php
+++ b/src/Controller/CapsuleGroupController.php
@@ -6,9 +6,13 @@ use App\Entity\Capsule;
 use App\Entity\Group;
 use App\Entity\User;
 use App\Form\CreateCapsuleGroupsFormType;
+use App\Form\SelectCapsuleGroupsFormType;
 use App\Repository\CapsuleRepository;
+use App\Repository\GroupRepository;
+use Doctrine\Common\Collections\Collection;
 use Doctrine\ORM\EntityManagerInterface;
 use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
+use Symfony\Component\Form\FormInterface;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
 use Symfony\Contracts\Translation\TranslatorInterface;
@@ -19,15 +23,18 @@ class CapsuleGroupController extends AbstractController
     private TranslatorInterface $translator;
     private CapsuleRepository $capsule_repository;
     private EntityManagerInterface $entity_manager;
+    private GroupRepository $group_repository;
 
     public function __construct(
         TranslatorInterface $translator,
         CapsuleRepository $capsule_repository,
-        EntityManagerInterface $entity_manager
+        EntityManagerInterface $entity_manager,
+        GroupRepository $group_repository
     ) {
         $this->translator = $translator;
         $this->capsule_repository = $capsule_repository;
         $this->entity_manager = $entity_manager;
+        $this->group_repository = $group_repository;
     }
 
     /**
@@ -41,9 +48,6 @@ class CapsuleGroupController extends AbstractController
             return $this->redirectToRoute('app_logout');
         }
 
-        $form = $this->createForm(CreateCapsuleGroupsFormType::class);
-        $form->handleRequest($request);
-
         $capsule = $this->capsule_repository->findOneBy(['id' => $capsule_id]);
 
         if (! $capsule instanceof Capsule) {
@@ -51,26 +55,30 @@ class CapsuleGroupController extends AbstractController
         }
 
         $groups = $capsule->getGroups();
+        $editor_groups_not_added = $this->getEditorGroupsNotAdded($current_user, $groups);
+
+        $form = $this->createForm(SelectCapsuleGroupsFormType::class, ['groups' => $editor_groups_not_added]);
+        $form->handleRequest($request);
 
         if ($form->isSubmitted() && $form->isValid()) {
-//            $group_name = $form->get('name')->getData();
-//            $group = new Group();
-//            $group->setName($group_name);
-//            $this->entity_manager->persist($group);
-//            $capsule->addGroup($group);
-//            $this->entity_manager->persist($capsule);
-//            $this->entity_manager->flush();
-//
-//            $this->addFlash(
-//                'success',
-//                $this->translator->trans(
-//                    'groups.add.success',
-//                    [
-//                        'group_name' => $group->getName(),
-//                        'capsule_name' => $capsule->getName()
-//                    ]
-//                )
-//            );
+            $groups = $this->addGroups($form, $capsule);
+
+            $groups_names = [];
+
+            foreach ($groups as $group) {
+                $groups_names[] = $group->getName();
+            }
+
+            $this->addFlash(
+                'success',
+                $this->translator->trans(
+                    'groups.add.success',
+                    [
+                        'groups_names' => implode(",", $groups_names),
+                        'capsule_name' => $capsule->getName()
+                    ]
+                )
+            );
 
             return $this->redirectToRoute('edit_capsule_groups', [
                 'capsule_id' => $capsule_id
@@ -78,9 +86,10 @@ class CapsuleGroupController extends AbstractController
         }
 
         return $this->render('capsule/groups/edit.html.twig', [
-            'editCapsuleGroupsForm' => $form->createView(),
+            'selectCapsuleGroupsForm' => $form->createView(),
             'capsule' => $capsule,
-            'groups' => $groups
+            'groups' => $groups,
+            'existing_groups' => $editor_groups_not_added
         ]);
     }
 
@@ -95,21 +104,17 @@ class CapsuleGroupController extends AbstractController
             return $this->redirectToRoute('app_logout');
         }
 
-        $form = $this->createForm(CreateCapsuleGroupsFormType::class);
-        $form->handleRequest($request);
-
         $capsule = $this->capsule_repository->findOneBy(['id' => $capsule_id]);
 
         if (! $capsule instanceof Capsule) {
             throw new \Exception("Capsule does not exist");
         }
 
+        $form = $this->createForm(CreateCapsuleGroupsFormType::class);
+        $form->handleRequest($request);
+
         if ($form->isSubmitted() && $form->isValid()) {
-            $group_name = $form->get('name')->getData();
-            $group = new Group();
-            $group->setName($group_name);
-            $this->entity_manager->persist($group);
-            $this->entity_manager->flush();
+            $group = $this->createAGroup($form, $capsule);
 
             $this->addFlash(
                 'success',
@@ -131,4 +136,79 @@ class CapsuleGroupController extends AbstractController
             'capsule' => $capsule
         ]);
     }
+
+    /**
+     * @return array<Group>
+     */
+    private function addGroups(FormInterface $form, Capsule $capsule): array
+    {
+        $groups_data = $form->getData()['name'];
+        $groups = [];
+
+        foreach ($groups_data as $group_data) {
+            $group_db = $this->group_repository->findOneBy(['id' => $group_data->getId()]);
+
+            if (! $group_db instanceof Group) {
+                throw new \Exception('Group not found');
+            }
+
+            $groups[] = $group_db;
+            $capsule->addGroup($group_db);
+            $this->entity_manager->persist($capsule);
+        }
+
+        $this->entity_manager->flush();
+
+        return $groups;
+    }
+
+    private function createAGroup(FormInterface $form, Capsule $capsule): Group
+    {
+        $group_name = $form->get('name')->getData();
+
+        $group = new Group();
+        $group->setName($group_name);
+        $this->entity_manager->persist($group);
+
+        $capsule->addGroup($group);
+        $this->entity_manager->persist($capsule);
+
+        $this->entity_manager->flush();
+
+        return $group;
+    }
+
+    /**
+     * @return array<Group>
+     */
+    private function getExistingGroupsForCurrentEditor(User $current_user): array
+    {
+        $editor_capsules = $current_user->getCapsules();
+        $existing_groups_for_current_editor = [];
+        foreach ($editor_capsules as $editor_capsule) {
+            $existing_groups_for_current_editor = array_merge(
+                $existing_groups_for_current_editor,
+                $editor_capsule->getGroups()->toArray()
+            );
+        }
+
+        return $existing_groups_for_current_editor;
+    }
+
+    /**
+     * @param Collection<Group> $groups
+     * @return array<Group>
+     */
+    private function getEditorGroupsNotAdded(User $current_user, Collection $groups): array
+    {
+        $editor_existing_groups = $this->getExistingGroupsForCurrentEditor($current_user);
+
+        return array_udiff(
+            $editor_existing_groups,
+            $groups->toArray(),
+            function ($obj_a, $obj_b) {
+                return $obj_a->getId() - $obj_b->getId();
+            }
+        );
+    }
 }
diff --git a/src/Form/CreateCapsuleGroupsFormType.php b/src/Form/CreateCapsuleGroupsFormType.php
index 1c03108ff6b6f186cbd4e331aa7c8ae4f80d1c3b..452885873246bc9cdeab9327a298b26e6b6ebb62 100755
--- a/src/Form/CreateCapsuleGroupsFormType.php
+++ b/src/Form/CreateCapsuleGroupsFormType.php
@@ -2,7 +2,6 @@
 
 namespace App\Form;
 
-use App\Entity\Capsule;
 use App\Entity\Group;
 use Symfony\Component\Form\AbstractType;
 use Symfony\Component\Form\Extension\Core\Type\ButtonType;
diff --git a/src/Form/SelectCapsuleGroupsFormType.php b/src/Form/SelectCapsuleGroupsFormType.php
new file mode 100644
index 0000000000000000000000000000000000000000..91ef852542c1fb7b68ba71aafdb36d1da90d9d85
--- /dev/null
+++ b/src/Form/SelectCapsuleGroupsFormType.php
@@ -0,0 +1,34 @@
+<?php
+
+namespace App\Form;
+
+use App\Entity\Group;
+use Symfony\Bridge\Doctrine\Form\Type\EntityType;
+use Symfony\Component\Form\AbstractType;
+use Symfony\Component\Form\Extension\Core\Type\SubmitType;
+use Symfony\Component\Form\FormBuilderInterface;
+
+class SelectCapsuleGroupsFormType extends AbstractType
+{
+    public function buildForm(FormBuilderInterface $builder, array $options): void
+    {
+        $groups = $options['data']['groups'];
+
+        $builder
+            ->add('name', EntityType::class, [
+                'class' => Group::class,
+                'choice_label' => 'name',
+                'choices' => $groups,
+                'multiple' => true,
+                'label' => 'groups.choose',
+                'choice_value' => function (?Group $entity) {
+                    return $entity ? $entity->getId() : '';
+                }
+            ])
+            ->add(
+                'validate',
+                SubmitType::class,
+                ['label' => 'groups.add.validate']
+            );
+    }
+}
diff --git a/templates/capsule/groups/create.html.twig b/templates/capsule/groups/create.html.twig
index 3385001eb2ca13b7250b4db8713a47ae455637e9..c590d3a25987673defbb2b59eae384c421d504d9 100644
--- a/templates/capsule/groups/create.html.twig
+++ b/templates/capsule/groups/create.html.twig
@@ -17,17 +17,20 @@
             </div>
         </div>
 
-{#        <div class="d-flex flex-md-row flex-column justify-content-center">#}
-            <div class="d-flex flex-column justify-content-center ms-md-5 ms-0 order-md-2 mb-4 col-sm-8 col-md-6 col-lg-5 col-xl-4">
-                {{ form_start(createCapsuleGroupsForm, {'attr': {novalidate: 'novalidate'}}) }}
-                {{ form_row(createCapsuleGroupsForm.name, {'row_attr': {'class' : 'm-auto mb-4'}})  }}
-                {{ form_row(createCapsuleGroupsForm.validate) }}
+        <div class="d-flex flex-column justify-content-center align-items-center">
+            {{ form_start(createCapsuleGroupsForm, {'attr': {novalidate: 'novalidate'}}) }}
+                {{ form_row(createCapsuleGroupsForm.name, {'row_attr': {'class' : 'm-auto mb-4 me-3'}}) }}
+
+            <div class="d-flex flex-column flex-sm-row justify-content-center align-items-center align-items-sm-start">
+                {{ form_row(createCapsuleGroupsForm.validate, {'row_attr': {'class' : 'me-sm-3 mb-3'}}) }}
                 <a href="/capsule/{{ capsule.getId() }}/groups/edit">
-                    {{ form_row(createCapsuleGroupsForm.go_back)  }}
+                    {{ form_row(createCapsuleGroupsForm.go_back) }}
                 </a>
-                {{ form_end(createCapsuleGroupsForm) }}
             </div>
-{#        </div>#}
+
+            {{ form_end(createCapsuleGroupsForm) }}
+        </div>
+
     </div>
 
 {%  endblock %}
\ No newline at end of file
diff --git a/templates/capsule/groups/edit.html.twig b/templates/capsule/groups/edit.html.twig
index 75aadcd391e2e095c49fa4678865a11a4dd3e3fa..e1edb6b23f4947661287712e7c94595c8c2bff07 100644
--- a/templates/capsule/groups/edit.html.twig
+++ b/templates/capsule/groups/edit.html.twig
@@ -30,29 +30,6 @@
         {% endfor %}
 
         <div class="d-flex flex-md-row flex-column justify-content-center">
-{#            <div class="d-flex flex-column justify-content-center ms-md-5 ms-0 order-md-2 mb-4 col-sm-8 col-md-6 col-lg-5 col-xl-4">#}
-{#                {{ form_start(addCapsuleGroupsForm, {'attr': {novalidate: 'novalidate'}}) }}#}
-{#                {{ form_row(addCapsuleGroupsForm.name, {'row_attr': {'class' : 'm-auto mb-4'}})  }}#}
-{#                {{ form_row(addCapsuleGroupsForm.validate) }}#}
-{#                {{ form_end(addCapsuleGroupsForm) }}#}
-{#            </div>#}
-
-{#            <select class="form-select" multiple aria-label="multiple select example">#}
-{#                {% for existing_group in existing_groups %}#}
-{#                <option selected>{{ existing_group->getName() }}</option>#}
-{#                <option value="1">One</option>#}
-{#            </select>#}
-
-            <a href="/capsule/{{ capsule.getId() }}/groups/create">
-                Add a new group
-            </a>
-
-{#            <div class="d-flex flex-column justify-content-center ms-md-5 ms-0 order-md-2 mb-4 col-sm-8 col-md-6 col-lg-5 col-xl-4">#}
-{#                {{ form_start(createCapsuleGroupsForm, {'attr': {novalidate: 'novalidate'}}) }}#}
-{#                {{ form_row(createCapsuleGroupsForm.name, {'row_attr': {'class' : 'm-auto mb-4'}})  }}#}
-{#                {{ form_row(createCapsuleGroupsForm.validate) }}#}
-{#                {{ form_end(createCapsuleGroupsForm) }}#}
-{#            </div>#}
 
             <div class="d-flex flex-row pe-md-5 pb-3 fw-normal me-0 me-md-5">
                 <div class="pe-3 pe-md-4 text-nowrap">
@@ -69,6 +46,23 @@
                 </div>
             </div>
 
+            <div class="d-flex flex-column justify-content-center order-md-2 mb-4 col-sm-8 col-md-6 col-lg-5 col-xl-4">
+                <h5 class="mb-5">
+                    <a href="/capsule/{{ capsule.getId() }}/groups/create" class="list-unstyled">
+                        {{ 'groups.create.title'|trans }}
+                    </a>
+                </h5>
+
+                {% if existing_groups is not empty %}
+                    <div class="d-flex flex-column justify-content-center mb-4">
+                        {{ form_start(selectCapsuleGroupsForm, {'attr': {novalidate: 'novalidate'}}) }}
+                        {{ form_row(selectCapsuleGroupsForm.name, {'row_attr': {'class' : 'm-auto mb-4'}})  }}
+                        {{ form_row(selectCapsuleGroupsForm.validate) }}
+                        {{ form_end(selectCapsuleGroupsForm) }}
+                    </div>
+                {% endif %}
+            </div>
+
         </div>
     </div>
 
diff --git a/translations/messages.en.yaml b/translations/messages.en.yaml
index 2f9093850e6aebe835c41c356bad46671f6f29ac..1addbf4a62e3f5530abcf7025c1f8946698fe430 100644
--- a/translations/messages.en.yaml
+++ b/translations/messages.en.yaml
@@ -142,6 +142,21 @@ editors:
           text: You have been add by %user_name% as editor of the capsule "%capsule_name%".
             You can now access and edit it. You will find the capsule in your capsule list.
           link: Go to capsule edition page
+    remove:
+      button: Delete
+      pending_editor:
+        title: Remove pending editor
+        text: Do you really want to remove pending editor %editor_email% ?
+        link: Remove pending editor
+        error: Email address pending_editor_email has already been removed from the pending editors list of the capsule capsule_name
+        success: Email address pending_editor_email has been successfully removed from the pending editor list of the capsule capsule_name
+      editor:
+        title: Remove editor
+        text: Do you really want to remove editor %editor_email% ?
+        link: Remove editor
+        success: User editor_email cannot edit anymore the capsule capsule_name
+        error: You can't remove yourself as editor of your own capsule.
+          If you want to remove the capsule from your list, go to the capsule list page and click on "delete capsule"
 
 groups:
   list:
@@ -151,9 +166,11 @@ groups:
     title_with_capsule_name: Groups for capsule %capsule_name%
   create:
     title: Create a new group
-    success: Group group_name has been created successfully
+    success: Group group_name has been created and added to the capsule successfully
     name: Choose a new group name
     validate: Create a new group
     go_back: Go back to capsule groups
   add:
-    success: Group group_name has been added successfully to capsule capsule_name
\ No newline at end of file
+    success: Group(s) groups_names has/have been added successfully to capsule capsule_name
+    validate: Add theses groups to the capsule
+  choose: Please choose one or more groups
\ No newline at end of file
diff --git a/translations/messages.fr.yaml b/translations/messages.fr.yaml
index 7e4e87e4c7c8ce2de5925d3ec0b91f91a8254439..03014665d644ede827942435d4473db585b4ac64 100644
--- a/translations/messages.fr.yaml
+++ b/translations/messages.fr.yaml
@@ -154,8 +154,8 @@ editors:
         text: Souhaitez-vous vraiment supprimer l'éditeur %editor_email% ?
         link: Supprimer l'éditeur
         success: L'utilisateur editor_email ne peut plus éditer la capsule capsule_name
-        error: You can't remove yourself as editor of your own capsule.
-          If you want to remove the capsule from your list, go to the capsule list page and click on "delete capsule"
+        error: Vous ne pouvez pas vous enlever de la liste des éditeurs de votre propre capsule.
+          Si vous voulez enlever la capsule de votre liste, allez sur la page qui affiche la liste de vos capsules et cliquer sur "supprimer la capsule"
 
 groups:
   list:
@@ -165,9 +165,11 @@ groups:
     title_with_capsule_name: Groupes de la capsule %capsule_name%
   create:
     title: Créer un nouveau groupe
-    success: Le groupe group_name a bien été créé
+    success: Le groupe group_name a bien été créé et ajouté à la capsule
     name: Choisir un nom de groupe
     validate: Créer un nouveau groupe
     go_back: Retourner à la liste des groupes
   add:
-    success: Le groupe group_name a bien été ajouté à la capsule capsule_name
\ No newline at end of file
+    success: Le(s) groupe(s) groups_names a/ont bien été ajouté(s) à la capsule capsule_name
+    validate: Ajouter ces groupes à la capsule
+  choose: Veuillez choisir un ou plusieurs groupes
\ No newline at end of file