mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-17 15:03:25 +00:00
Add elasticsearch reindex events
This commit is contained in:

committed by
Mathieu Darse

parent
ad868dc70f
commit
a01bf29c5b
@@ -10,6 +10,9 @@
|
||||
*/
|
||||
|
||||
use Alchemy\Phrasea\Application;
|
||||
use Alchemy\Phrasea\Core\PhraseaEvents;
|
||||
use Alchemy\Phrasea\Core\Event\RecordEvent\ChangeMetadataEvent;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
||||
|
||||
class caption_field implements cache_cacheableInterface
|
||||
{
|
||||
@@ -282,7 +285,7 @@ class caption_field implements cache_cacheableInterface
|
||||
return $values;
|
||||
}
|
||||
|
||||
public static function rename_all_metadatas(databox_field $databox_field)
|
||||
public static function rename_all_metadata(EventDispatcherInterface $dispatcher, databox_field $databox_field)
|
||||
{
|
||||
$sql = 'SELECT count(id) as count_id FROM metadatas
|
||||
WHERE meta_struct_id = :meta_struct_id';
|
||||
@@ -318,10 +321,8 @@ class caption_field implements cache_cacheableInterface
|
||||
$record = $databox_field->get_databox()->get_record($row['record_id']);
|
||||
$record->set_metadatas([]);
|
||||
|
||||
/**
|
||||
* TODO NEUTRON add App
|
||||
*/
|
||||
$app['phraseanet.SE']->updateRecord($record);
|
||||
$dispatcher->dispatch(PhraseaEvents::RECORD_CHANGE_METADATA, new ChangeMetadataEvent($record));
|
||||
|
||||
unset($record);
|
||||
} catch (\Exception $e) {
|
||||
|
||||
@@ -374,7 +375,8 @@ class caption_field implements cache_cacheableInterface
|
||||
$caption_field->delete();
|
||||
$record->set_metadatas([]);
|
||||
|
||||
$app['phraseanet.SE']->updateRecord($record);
|
||||
$app['dispatcher']->dispatch(PhraseaEvents::RECORD_CHANGE_METADATA, new ChangeMetadataEvent($record));
|
||||
|
||||
unset($caption_field);
|
||||
unset($record);
|
||||
} catch (\Exception $e) {
|
||||
|
@@ -16,6 +16,7 @@ use Doctrine\DBAL\Driver\Connection;
|
||||
use Symfony\Component\Filesystem\Filesystem;
|
||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
use Symfony\Component\Translation\TranslatorInterface;
|
||||
use Alchemy\Phrasea\Core\PhraseaTokens;
|
||||
|
||||
class databox extends base
|
||||
{
|
||||
@@ -439,7 +440,7 @@ class databox extends base
|
||||
$ret['thesaurus_indexed'] += $row['n'];
|
||||
}
|
||||
|
||||
$sql = "SELECT type, COUNT(record_id) AS n FROM record WHERE jeton & ".JETON_MAKE_SUBDEF." GROUP BY type";
|
||||
$sql = "SELECT type, COUNT(record_id) AS n FROM record WHERE jeton & ".PhraseaTokens::TOKEN_MAKE_SUBDEF." GROUP BY type";
|
||||
$stmt = $this->get_connection()->prepare($sql);
|
||||
$stmt->execute();
|
||||
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
@@ -422,7 +422,7 @@ class databox_field implements cache_cacheableInterface
|
||||
$stmt->closeCursor();
|
||||
|
||||
if ($this->renamed) {
|
||||
caption_field::rename_all_metadatas($this);
|
||||
caption_field::rename_all_metadata($this->app['dispatcher'], $this);
|
||||
$this->renamed = false;
|
||||
}
|
||||
|
||||
|
@@ -128,6 +128,7 @@ class databox_status
|
||||
if ( ! isset(self::$_status[$sbas_id]))
|
||||
self::$_status[$sbas_id] = new databox_status($app, $sbas_id);
|
||||
|
||||
|
||||
return self::$_status[$sbas_id]->status;
|
||||
}
|
||||
|
||||
@@ -265,7 +266,7 @@ class databox_status
|
||||
|
||||
public static function updateStatus(Application $app, $sbas_id, $bit, $properties)
|
||||
{
|
||||
self::getStatus($app, $sbas_id);
|
||||
self::getStatus($app, $sbas_id);
|
||||
|
||||
$databox = $app['phraseanet.appbox']->get_databox((int) $sbas_id);
|
||||
|
||||
|
@@ -14,6 +14,8 @@ use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Alchemy\Phrasea\Command\Command;
|
||||
use Alchemy\Phrasea\Core\PhraseaEvents;
|
||||
use Alchemy\Phrasea\Core\Event\RecordEvent\ChangeMetadataEvent;
|
||||
|
||||
class module_console_fieldsMerge extends Command
|
||||
{
|
||||
@@ -196,7 +198,7 @@ class module_console_fieldsMerge extends Command
|
||||
]], true);
|
||||
}
|
||||
|
||||
$this->getService('phraseanet.SE')->updateRecord($record);
|
||||
$this->getService('dispatcher')->dispatch(PhraseaEvents::RECORD_CHANGE_METADATA, new ChangeMetadataEvent($record));
|
||||
|
||||
unset($record);
|
||||
}
|
||||
|
@@ -23,6 +23,7 @@ use MediaVorus\MediaVorus;
|
||||
use Rhumsaa\Uuid\Uuid;
|
||||
use Alchemy\Phrasea\Model\RecordInterface;
|
||||
use Symfony\Component\HttpFoundation\File\File as SymfoFile;
|
||||
use Alchemy\Phrasea\Core\PhraseaTokens;
|
||||
|
||||
class record_adapter implements RecordInterface, cache_cacheableInterface
|
||||
{
|
||||
@@ -486,8 +487,6 @@ class record_adapter implements RecordInterface, cache_cacheableInterface
|
||||
|
||||
$this->base_id = $collection->get_base_id();
|
||||
|
||||
$this->app['phraseanet.SE']->updateRecord($this);
|
||||
|
||||
$this->app['phraseanet.logger']($this->get_databox())
|
||||
->log($this, Session_Logger::EVENT_MOVE, $collection->get_coll_id(), '');
|
||||
|
||||
@@ -972,8 +971,6 @@ class record_adapter implements RecordInterface, cache_cacheableInterface
|
||||
);
|
||||
$stmt->closeCursor();
|
||||
|
||||
$this->reindex();
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
@@ -1067,26 +1064,11 @@ class record_adapter implements RecordInterface, cache_cacheableInterface
|
||||
$xml->loadXML($this->app['serializer.caption']->serialize($this->get_caption(), CaptionSerializer::SERIALIZE_XML, true));
|
||||
|
||||
$this->set_xml($xml);
|
||||
$this->reindex();
|
||||
|
||||
unset($xml);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Reindex the record
|
||||
*
|
||||
* @return record_adapter
|
||||
*/
|
||||
public function reindex()
|
||||
{
|
||||
$this->app['phraseanet.SE']->updateRecord($this);
|
||||
$this->delete_data_from_cache(self::CACHE_STATUS);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return record_adapter
|
||||
@@ -1095,7 +1077,7 @@ class record_adapter implements RecordInterface, cache_cacheableInterface
|
||||
{
|
||||
$databox = $this->app['phraseanet.appbox']->get_databox($this->get_sbas_id());
|
||||
$connbas = $databox->get_connection();
|
||||
$sql = 'UPDATE record SET jeton=(jeton | ' . JETON_MAKE_SUBDEF . ') WHERE record_id = :record_id';
|
||||
$sql = 'UPDATE record SET jeton=(jeton | ' . PhraseaTokens::TOKEN_MAKE_SUBDEF . ') WHERE record_id = :record_id';
|
||||
$stmt = $connbas->prepare($sql);
|
||||
$stmt->execute([':record_id' => $this->get_record_id()]);
|
||||
$stmt->closeCursor();
|
||||
@@ -1112,7 +1094,7 @@ class record_adapter implements RecordInterface, cache_cacheableInterface
|
||||
$databox = $this->app['phraseanet.appbox']->get_databox($this->get_sbas_id());
|
||||
$connbas = $databox->get_connection();
|
||||
$sql = 'UPDATE record
|
||||
SET jeton = jeton | (' . (JETON_WRITE_META_DOC | JETON_WRITE_META_SUBDEF) . ')
|
||||
SET jeton = jeton | (' . (PhraseaTokens::TOKEN_WRITE_META_DOC | PhraseaTokens::TOKEN_WRITE_META_SUBDEF) . ')
|
||||
WHERE record_id= :record_id';
|
||||
$stmt = $connbas->prepare($sql);
|
||||
$stmt->execute([':record_id' => $this->record_id]);
|
||||
@@ -1928,6 +1910,8 @@ class record_adapter implements RecordInterface, cache_cacheableInterface
|
||||
public function setStatus($status)
|
||||
{
|
||||
$this->set_binary_status($status);
|
||||
|
||||
$this->delete_data_from_cache(self::CACHE_STATUS);
|
||||
}
|
||||
|
||||
/** {@inheritdoc} */
|
||||
|
Reference in New Issue
Block a user