Skip to content
Snippets Groups Projects
Commit 53486f83 authored by Laurent's avatar Laurent
Browse files

hotline#123615: Journal : Enabling Catalogues to be audited in Bokah

parent 42916479
No related merge requests found
Pipeline #11894 failed with stage
in 22 minutes and 11 seconds
- ticket #123615 : NOUVEAUTES
\ No newline at end of file
......@@ -31,7 +31,9 @@ class Class_AdminVar_JournalStormModels {
public function modelsMultioptions() {
return ['' => '',
Class_AdminVar::class => $this->_('Variables'),
Class_Profil::class => $this->_('Profils')];
Class_Profil::class => $this->_('Profils'),
Class_Catalogue::class => $this->_('Domaines')
];
}
......
......@@ -25,7 +25,6 @@ class Class_Journal_AdminVarType extends Class_Journal_Type {
const
MY_TYPE = 'ADMIN_VAR_SAVE',
ADMINVAR_ID = 'adminvar_id',
CURRENT_USER_ID = 'current_user_id',
PREVIOUS_VALUE = 'previous_value',
NEW_VALUE = 'new_value';
......@@ -38,9 +37,6 @@ class Class_Journal_AdminVarType extends Class_Journal_Type {
return;
$journal->addDetail(static::ADMINVAR_ID, $model->getClef());
$journal->addDetail(static::CURRENT_USER_ID,
($user = Class_Users::getIdentity()) ? $user->getId() : '',
$journal);
$journal->addDetail(static::PREVIOUS_VALUE, $model->getPreviousValue());
$journal->addDetail(static::NEW_VALUE, $model->getValeur());
......
......@@ -25,7 +25,6 @@ class Class_Journal_ProfileType extends Class_Journal_Type {
const
MY_TYPE = 'PROFILE_SAVE',
MODEL_ID = 'model_id',
CURRENT_USER_ID = 'current_user_id',
PREVIOUS_VALUE = 'previous_value',
NEW_VALUE = 'new_value',
STACK = 'stack';
......@@ -44,9 +43,6 @@ class Class_Journal_ProfileType extends Class_Journal_Type {
return;
$journal->addDetail(static::MODEL_ID, $model->getId());
$journal->addDetail(static::CURRENT_USER_ID,
($user = Class_Users::getIdentity()) ? $user->getId() : '',
$journal);
$journal->addDetail(static::PREVIOUS_VALUE, json_encode(static::_unserialize($previous['cfg_accueil'])));
$journal->addDetail(static::NEW_VALUE, json_encode(static::_unserialize($current['cfg_accueil'])));
......
......@@ -25,7 +25,9 @@ class Class_Journal_Type {
const
MY_TYPE = 'UNKNOWN',
MAX_STACK = 100;
MAX_STACK = 100,
CURRENT_USER_ID = 'current_user_id';
protected static $_enabled = true;
......@@ -59,7 +61,8 @@ class Class_Journal_Type {
*/
public static function newFor($journal) {
$possibles = [Class_Journal_AdminVarType::MY_TYPE => Class_Journal_AdminVarType::class,
Class_Journal_ProfileType::MY_TYPE => Class_Journal_ProfileType::class];
Class_Journal_ProfileType::MY_TYPE => Class_Journal_ProfileType::class,
Class_Journal_CatalogueType::MY_TYPE => Class_Journal_CatalogueType::class];
return array_key_exists($journal->getType(), $possibles)
? new $possibles[$journal->getType()]($journal)
......@@ -76,7 +79,8 @@ class Class_Journal_Type {
return;
$map = [Class_AdminVar::class => Class_Journal_AdminVarType::class,
Class_Profil::class => Class_Journal_ProfileType::class];
Class_Profil::class => Class_Journal_ProfileType::class,
Class_Catalogue::class => Class_Journal_CatalogueType::class];
$class = get_class($model);
return array_key_exists($class, $map)
......@@ -93,6 +97,10 @@ class Class_Journal_Type {
static::_cleanStack();
$journal->addDetail(static::CURRENT_USER_ID,
($user = Class_Users::getIdentity()) ? $user->getId() : '',
$journal);
return $journal;
}
......
......@@ -342,6 +342,75 @@ class JournalProfilePostEnabledWithMatchingIdAndMaxStackTest extends JournalProf
class JournalCatalogueEditTest extends JournalTestCase {
public function setUp(){
parent::setUp();
Class_Catalogue::newInstanceWithIdAssertSave(1,
['libelle' => 'Coups de coeur',
'description' => 'les coups de coeur de l\'equipe'
]);
Class_AdminVar::set('JOURNAL_ENABLE_STORM', 1);
Class_AdminVar::set('JOURNAL_STORM_MODELS', json_encode(['model' => [Class_Catalogue::class],
'ids' => ['']]));
(new Bokeh_Engine)->setupStormObservers();
Class_Catalogue::find(1)
->setTypeDoc(Class_TypeDoc::LIVRE)
->assertSave();
}
/** @test */
public function newJournalEntryShouldBeCreated() {
$this->assertEquals(1,Class_Journal::count());
}
/** @test */
public function journalTypeShouldBeCatalogSave() {
$this->assertEquals('CATALOG_SAVE', Class_Journal::find(1)->getType());
}
/** @test */
public function journalDetailsShouldContainsModelIdOne() {
$this->assertEquals(1,
Class_JournalDetail::findFirstBy(['type' => 'model_id'])->getValue());
}
/** @test */
public function journalDetailsShouldContainsCurrentUserIdSixSixSix() {
$this->assertEquals(666,
Class_JournalDetail::findFirstBy(['type' => 'current_user_id'])->getValue());
}
/** @test */
public function journalDetailsShouldContainsPreviousValue() {
$this->assertEquals('{"id":1,"id_catalogue":1,"libelle":"Coups de coeur","description":"les coups de coeur de l\'equipe"}',
Class_JournalDetail::findFirstBy(['type' => 'previous_value'])->getValue());
}
/** @test */
public function journalDetailsShouldContainsNewValue() {
$this->assertEquals('{"parent_id":null,"libelle":"Coups de coeur","oai_spec":"","description":"les coups de coeur de l\'equipe","bibliotheque":"","section":"","genre":"","langue":"","annexe":"","emplacement":"","auteur":"","matiere":"","dewey":"","pcdm4":"","thesaurus":"","tags":"","interet":"","type_doc":1,"annee_debut":"","annee_fin":"","cote_debut":"","cote_fin":"","nouveaute":"","indexer":0,"url_img":"","id":1,"id_catalogue":1}',
Class_JournalDetail::findFirstBy(['type' => 'new_value'])->getValue());
}
/** @test */
public function journalDescriptionShouldContainsLeDomaineOneAEteModifieParAdmin() {
$this->assertContains('Le domaine "1" a été modifié par "AutoTest',Class_Journal::find(1)->getLabel());
}
}
class JournalIndexActionTest extends JournalTestCase {
public function setUp() {
parent::setUp();
......
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