Skip to content
Snippets Groups Projects
Commit 4cdcd0d7 authored by Patrick Barroca's avatar Patrick Barroca :grin:
Browse files

hotline #50500 fix RT

parent 7a2211f8
Branches
Tags
4 merge requests!2080Sandbox detach zf from storm,!1928Master,!1927Hotline master,!1926Hotline#50500 mise a jour de la base
......@@ -22,20 +22,20 @@
setVariable('traitement_phase', 'Indexation des domaines');
if ($phase==16) {
$log->ecrire('<h4>Indexation des domaines</h4>');
unset($phase_data);
$reprise = false;
$phase_data['nombre'] = 0;
$phase_data['nb_fic'] = 0;
$phase_data['timeStart'] = time();
$phase_data['pointeur'] = 0;
$phase_data['domaine'] = 0;
$log->ecrire('<h4>Indexation des domaines</h4>');
unset($phase_data);
$reprise = false;
$phase_data['nombre'] = 0;
$phase_data['nb_fic'] = 0;
$phase_data['timeStart'] = time();
$phase_data['pointeur'] = 0;
$phase_data['domaine'] = 0;
$phase=17;
$phase=17;
}
if ($phase==17) {
if ($mode_cron) {
if ($mode_cron) {
$position_domaine = $phase_data['domaine'];
$catalogues = array_slice(Class_Catalogue::findAllCataloguesAIndexer(),
$position_domaine);
......@@ -50,15 +50,15 @@ if ($phase==17) {
$phase_data['pointeur'] = 0;
}
$log->ecrire('<h4>Indexation des paniers dans les domaines</h4>');
Class_PanierNotice::indexAll();
$log->ecrire('<h4>Indexation des paniers dans les domaines</h4>');
Class_PanierNotice::indexAll();
$log->ecrire('<h4>Indexation des articles dans les domaines</h4>');
Class_Article::indexAll();
$log->ecrire('<h4>Indexation des articles dans les domaines</h4>');
Class_Article::indexAll();
$log->ecrire('<h4>Indexation des sitothèques dans les domaines</h4>');
Class_Sitotheque::indexAll();
} else {
$log->ecrire('<h4>Les indexations des domaines, des paniers, articles et sitothèques dans les domaines ne sont traitées qu\'en mode cron</h4>');
}
$log->ecrire('<h4>Indexation des sitothèques dans les domaines</h4>');
Class_Sitotheque::indexAll();
} else {
$log->ecrire('<h4>Les indexations des domaines, des paniers, articles et sitothèques dans les domaines ne sont traitées qu\'en mode cron</h4>');
}
}
\ No newline at end of file
......@@ -329,15 +329,9 @@ class Class_CodifThesaurus extends Storm_Model_Abstract {
public function newChildEntry() {
$loader = $this->getLoader();
$code = $this->getCode();
$parent_id_length = strlen($this->getIdThesaurus());
$id_thesaurus = $loader->findNextThesaurusChildId($code,
$this->getIdThesaurus());
$child_id_length = strlen($id_thesaurus);
return $child_id_length != $parent_id_length+self::ID_KEY_LENGTH
? null
: $loader->newInstance(['code' => $code,
'id_thesaurus' => $id_thesaurus]);
return $loader->newInstance(['code' => $code,
'id_thesaurus' => $loader->findNextThesaurusChildId($code,
$this->getIdThesaurus())]);
}
......@@ -352,14 +346,12 @@ class Class_CodifThesaurus extends Storm_Model_Abstract {
if ($entry)
return $entry;
if (!$entry = $this->newChildEntry())
return null;
$entry->updateAttributes(['id_origine' => $id_origine,
'libelle' => $label]);
$entry->assertSave();
$entry = $this
->newChildEntry()
->updateAttributes(['id_origine' => $id_origine,
'libelle' => $label]);
return $entry;
return $entry->save() ? $entry : null;
}
......@@ -377,7 +369,9 @@ class Class_CodifThesaurus extends Storm_Model_Abstract {
public function validate() {
$this->check('' != $this->getLibelle(), $this->_('Vous devez définir le libellé'));
$this->_validateIdThesaurus();
$this->checkAttribute('libelle', '' != $this->getLibelle(), $this->_('Vous devez définir le libellé'));
if (!$this->getRules())
return true;
......@@ -388,6 +382,17 @@ class Class_CodifThesaurus extends Storm_Model_Abstract {
}
protected function _validateIdThesaurus() {
$my_key = substr($this->getIdThesaurus(), -self::ID_KEY_LENGTH);
$empty_key = str_repeat('0', self::ID_KEY_LENGTH);
$this->checkAttribute('id_thesaurus',
$my_key != $empty_key,
$this->_('Nombre maximum d\'élément à ce niveau déjà atteint (%s)',
str_repeat('9', self::ID_KEY_LENGTH)));
}
public function deleteMeAndMyChildren() {
$this->cleanRecords();
$this->getLoader()->deleteAllFrom($this);
......
......@@ -180,9 +180,12 @@ class CodifThesaurusTooManyValuesTest extends ModelTestCase {
/** @test */
public function shouldNotInsertMoreThan9999Child() {
Class_CodifThesaurus::find(723)->getOrCreateChild(strtoupper('métiers de la recherche'), 'métiers de la recherche');
Class_CodifThesaurus::find(723)
->getOrCreateChild(strtoupper('métiers de la recherche'),
'métiers de la recherche');
$this
->assertNull(Class_CodifThesaurus::findFirstBy(['id_thesaurus' => 'TEST00010000']));
$this->assertEquals(2, Class_CodifThesaurus::count(),
Class_CodifThesaurus::findFirstBy(['order' => 'id desc'])
->getIdThesaurus());
}
}
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment