<commit_before><?php

class ValidatorLieuxStockageDS extends sfValidatorSchema {

    protected $lieux_stockage;
    
    public function __construct($lieux_stockage = null, $options = array(), $messages = array())
    {          
        $this->lieux_stockage = $lieux_stockage;
        parent::__construct($options, $messages);
        
    }
    protected function configure($options = array(), $messages = array()) {
        $this->addMessage('invalid_lieux_stockage', "Il n'est pas possible de sauvegarder un lieu de stockage secondaire avec des appellations alors que le principal n'en possède pas.");
    }

    protected function doClean($values) {
        $errorSchema = new sfValidatorErrorSchema($this);
        $values_by_lieux = array();
        foreach ($this->lieux_stockage as $lieu_s => $value) {
            $id_lieu = preg_replace('/^[0-9]{10}/','', $lieu_s);   
            $id_lieu_field = 'lieuxStockage_'.$id_lieu;
            $values_by_lieux[$id_lieu] = $values[$id_lieu_field];
        }
        if(is_null($values_by_lieux['001'])){
            foreach ($values_by_lieux as $key_lieu => $fields) {
                if($key_lieu == '001') continue;
                if(!is_null($fields)){
                    $errorSchema->addError(new sfValidatorError($this, 'invalid_lieux_stockage'));
                }
            }
        }
        // throws the error for the main form
        if (count($errorSchema)) {
            throw new sfValidatorErrorSchema($this, $errorSchema);
        }
        
        return $values;
    }

}<commit_msg>Validateur lieux de stockage si rien de cocher<commit_after><?php

class ValidatorLieuxStockageDS extends sfValidatorSchema {

    protected $lieux_stockage;
    
    public function __construct($lieux_stockage = null, $options = array(), $messages = array())
    {          
        $this->lieux_stockage = $lieux_stockage;
        parent::__construct($options, $messages);
        
    }
    protected function configure($options = array(), $messages = array()) {
        $this->addMessage('required_appellations', "Aucune appellation n'a été séléctionné, et la DS n'est pas à néant");
        $this->addMessage('invalid_lieux_stockage', "Il n'est pas possible de sauvegarder un lieu de stockage secondaire avec des appellations alors que le principal n'en possède pas.");
    }

    protected function doClean($values) {
        $errorSchema = new sfValidatorErrorSchema($this);
        $values_by_lieux = array();
        foreach ($this->lieux_stockage as $lieu_s => $value) {
            $id_lieu = preg_replace('/^[0-9]{10}/','', $lieu_s);   
            $id_lieu_field = 'lieuxStockage_'.$id_lieu;
            $values_by_lieux[$id_lieu] = $values[$id_lieu_field];
        }

        $empty = true;
        foreach ($values_by_lieux as $key_lieu => $fields) {
            if(!is_null($fields)){
                $empty = false;
                break;
            }
        }

        if($empty && !$values['neant']) {
            $errorSchema->addError(new sfValidatorError($this, 'required_appellations'));  
        }

        if(is_null($values_by_lieux['001'])){
            foreach ($values_by_lieux as $key_lieu => $fields) {
                if($key_lieu == '001') continue;
                if(!is_null($fields)){
                    $errorSchema->addError(new sfValidatorError($this, 'invalid_lieux_stockage'));
                }
            }
        }
        // throws the error for the main form
        if (count($errorSchema)) {
            throw new sfValidatorErrorSchema($this, $errorSchema);
        }
        
        return $values;
    }

}
{'fraction_non_alphanumeric': 0.12479338842975207, 'fraction_numerical': 0.005509641873278237, 'mean_word_length': 2.3839701770736252, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 18, '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': '4040484', 'n_tokens_mistral': 1097, 'n_tokens_neox': 1063, 'n_words': 226}