public function updateEstudianteRelations(Estudiante $estudiante, $updateBrothers = false)
 {
     foreach ($estudiante->getProgenitores() as $progenitor) {
         $newsletterUser = $progenitor->getNewsletterUser();
         $toRemoveGroups = array();
         $newsletterGroups = $newsletterUser->getUserGroups();
         foreach ($newsletterGroups as $group) {
             $toRemoveGroups[$group->getId()] = $group;
         }
         $toAddGroups = $this->getNewsletterGroupsOfStudent($estudiante);
         $addKeys = array_keys($toAddGroups);
         foreach ($addKeys as $key) {
             if (isset($toRemoveGroups[$key])) {
                 unset($toRemoveGroups[$key]);
                 unset($toAddGroups[$key]);
             }
         }
         foreach ($toRemoveGroups as $group) {
             $newsletterUser->removeUserGroup($group);
         }
         foreach ($toAddGroups as $group) {
             $newsletterUser->addUserGroup($group);
         }
         $this->em->persist($newsletterUser);
         $this->em->flush($newsletterUser);
     }
     if ($updateBrothers) {
         foreach ($estudiante->getMyBrothers() as $brother) {
             $this->updateEstudianteRelations($brother, false);
         }
     }
 }