<commit_before><?php

namespace AscensoDigital\PerfilBundle\Controller;


use AscensoDigital\ComponentBundle\Form\Type\FiltroFormType;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\Form\Exception\LogicException;
use Symfony\Component\HttpFoundation\Request;

class FiltroController extends Controller {

    /* public function filtroNameAction(Request $request) {
        $options=array(
            'route' => 'route_name', # required
            'route_params' => array(), # optional
            'update' => 'id_etiqueta_update', # required
            'filtros' => array(
                'filtro_key1' => array('required'=> true, 'multiple' => false), #arreglo de opciones para sobreescribir las definidas en config del filtro
                'filtro_key2' => array()
            ),
            'auto_filter' => true, # optional define ejecucion automatica si los filtros required estan con valores default: true
            'auto_llenado' => true # optional define si los filtros son guardados para volver a presentarlos default: true
        );
        return $this->filtrosAction($request, $options);
    } */

    protected function filtrosAction(Request $request, $options) {
        $options=$this->validateOptions($options);
        $options['perfil']=$this->get('ad_perfil.perfil_manager')->find($request->getSession()->get($this->getParameter('ad_perfil.session_name')));
        
        $form = $this->createForm(FiltroFormType::class, null, $options);

        //TODO: implementar carga de filtros guardados
        /*$filtro_values=$request->getSession()->get('filtros_'.$options['route'],array());
        if(true===$options['auto_llenado'] && count($filtro_values)){
            $request->request->set('filtros_'.$options['route'], Filtro::revert($filtro_values));
            $request->setMethod('post');
            $form->handleRequest($request);
        }*/

        return $this->render('ADPerfilBundle:Filtro:filtros.html.twig', array(
            'form' => $form->createView(),
            'activos' => $options['filtros']));
    }

    private function validateOptions($options) {
        if(!isset($options['route'])) {
            throw new LogicException('Filtros: Opción "route" obligatoria');
        }
        if(!isset($options['update'])) {
            throw new LogicException('Filtros: Opción "update" obligatoria');<commit_msg>se modifica nombre para evitar colision con metodo antiguo<commit_after><?php

namespace AscensoDigital\PerfilBundle\Controller;


use AscensoDigital\ComponentBundle\Form\Type\FiltroFormType;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\Form\Exception\LogicException;
use Symfony\Component\HttpFoundation\Request;

class FiltroController extends Controller {

    /* public function filtroNameAction(Request $request) {
        $options=array(
            'route' => 'route_name', # required
            'route_params' => array(), # optional
            'update' => 'id_etiqueta_update', # required
            'filtros' => array(
                'filtro_key1' => array('required'=> true, 'multiple' => false), #arreglo de opciones para sobreescribir las definidas en config del filtro
                'filtro_key2' => array()
            ),
            'auto_filter' => true, # optional define ejecucion automatica si los filtros required estan con valores default: true
            'auto_llenado' => true # optional define si los filtros son guardados para volver a presentarlos default: true
        );
        return $this->filtrosAction($request, $options);
    } */

    protected function filtroAction(Request $request, $options) {
        $options=$this->validateOptions($options);
        $options['perfil']=$this->get('ad_perfil.perfil_manager')->find($request->getSession()->get($this->getParameter('ad_perfil.session_name')));
        
        $form = $this->createForm(FiltroFormType::class, null, $options);

        //TODO: implementar carga de filtros guardados
        /*$filtro_values=$request->getSession()->get('filtros_'.$options['route'],array());
        if(true===$options['auto_llenado'] && count($filtro_values)){
            $request->request->set('filtros_'.$options['route'], Filtro::revert($filtro_values));
            $request->setMethod('post');
            $form->handleRequest($request);
        }*/

        return $this->render('ADPerfilBundle:Filtro:filtros.html.twig', array(
            'form' => $form->createView(),
            'activos' => $options['filtros']));
    }

    private function validateOptions($options) {
        if(!isset($options['route'])) {
            throw new LogicException('Filtros: Opción "route" obligatoria');
        }
        if(!isset($options['update'])) {
            throw new LogicException('Filtros: Opción "update" obligatoria');
{'fraction_non_alphanumeric': 0.14214876033057852, 'fraction_numerical': 0.0008264462809917355, 'mean_word_length': 3.318465655664585, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 59, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7564993', 'n_tokens_mistral': 1391, 'n_tokens_neox': 1370, 'n_words': 267}