mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-18 07:23:13 +00:00
PHRAS-3277 create event recordsWitemeta
This commit is contained in:
@@ -12,6 +12,8 @@
|
||||
namespace Alchemy\Phrasea\Command\Upgrade;
|
||||
|
||||
use Alchemy\Phrasea\Application;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\RecordsWriteMetaEvent;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\WorkerEvents;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
|
||||
@@ -187,6 +189,10 @@ class Step35 implements DatasUpgraderInterface
|
||||
}
|
||||
|
||||
$record->set_metadatas($metadatas, true);
|
||||
|
||||
// order to write meta in file
|
||||
$this->app['dispatcher']->dispatch(WorkerEvents::RECORDS_WRITE_META,
|
||||
new RecordsWriteMetaEvent([$record->getRecordId()], $record->getDataboxId()));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -88,6 +88,7 @@ use Alchemy\Phrasea\Status\StatusStructure;
|
||||
use Alchemy\Phrasea\TaskManager\LiveInformation;
|
||||
use Alchemy\Phrasea\Utilities\NullableDateTime;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\AssetsCreateEvent;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\RecordsWriteMetaEvent;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\WorkerEvents;
|
||||
use Doctrine\ORM\EntityManager;
|
||||
use Guzzle\Http\Client as Guzzle;
|
||||
@@ -1991,6 +1992,10 @@ class V1Controller extends Controller
|
||||
|
||||
$record->set_metadatas($metadata);
|
||||
|
||||
// order to write meta in file
|
||||
$this->app['dispatcher']->dispatch(WorkerEvents::RECORDS_WRITE_META,
|
||||
new RecordsWriteMetaEvent([$record->getRecordId()], $databox_id));
|
||||
|
||||
return Result::create($request, [
|
||||
"record_metadatas" => $this->listRecordMetadata($record),
|
||||
])->createResponse();
|
||||
@@ -2599,6 +2604,10 @@ class V1Controller extends Controller
|
||||
|
||||
if(count($metadatas) > 0) {
|
||||
$story->set_metadatas($metadatas);
|
||||
|
||||
// order to write meta in file
|
||||
$this->app['dispatcher']->dispatch(WorkerEvents::RECORDS_WRITE_META,
|
||||
new RecordsWriteMetaEvent([$story->getRecordId()], $story->getDataboxId()));
|
||||
}
|
||||
|
||||
if (isset($data->{'story_records'})) {
|
||||
|
@@ -17,6 +17,8 @@ use Alchemy\Phrasea\Core\PhraseaEvents;
|
||||
use Alchemy\Phrasea\Model\Entities\LazaretAttribute;
|
||||
use Alchemy\Phrasea\Model\Entities\LazaretFile;
|
||||
use Alchemy\Phrasea\Model\Entities\LazaretSession;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\RecordsWriteMetaEvent;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\WorkerEvents;
|
||||
use caption_field;
|
||||
use databox_field;
|
||||
use Doctrine\DBAL\DBALException;
|
||||
@@ -412,6 +414,10 @@ class V3RecordController extends Controller
|
||||
|
||||
$record->set_metadatas($metadatas_ops, true);
|
||||
|
||||
// order to write meta in file
|
||||
$this->app['dispatcher']->dispatch(WorkerEvents::RECORDS_WRITE_META,
|
||||
new RecordsWriteMetaEvent([$record->getRecordId()], $record->getDataboxId()));
|
||||
|
||||
return $metadatas_ops;
|
||||
}
|
||||
|
||||
|
@@ -19,6 +19,8 @@ use Alchemy\Phrasea\Core\Event\Record\SubdefinitionCreateEvent;
|
||||
use Alchemy\Phrasea\Core\Event\RecordEdit;
|
||||
use Alchemy\Phrasea\Core\PhraseaEvents;
|
||||
use Alchemy\Phrasea\Model\Entities\StoryWZ;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\RecordsWriteMetaEvent;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\WorkerEvents;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
|
||||
@@ -71,6 +73,10 @@ class StoryController extends Controller
|
||||
}
|
||||
|
||||
$recordAdapter = $story->set_metadatas($metadatas);
|
||||
// order to write meta in file
|
||||
$this->dispatch(WorkerEvents::RECORDS_WRITE_META,
|
||||
new RecordsWriteMetaEvent([$story->getRecordId()], $story->getDataboxId()));
|
||||
|
||||
// tell phraseanet to rebuild subdef
|
||||
$this->dispatch(RecordEvents::SUBDEFINITION_CREATE, new SubdefinitionCreateEvent($recordAdapter));
|
||||
|
||||
|
@@ -23,6 +23,8 @@ use Alchemy\Phrasea\Exception\RuntimeException;
|
||||
use Alchemy\Phrasea\Metadata\PhraseanetMetadataReader;
|
||||
use Alchemy\Phrasea\Metadata\PhraseanetMetadataSetter;
|
||||
use Alchemy\Phrasea\Record\RecordWasRotated;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\RecordsWriteMetaEvent;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\WorkerEvents;
|
||||
use DataURI\Parser;
|
||||
use MediaAlchemyst\Alchemyst;
|
||||
use MediaVorus\MediaVorus;
|
||||
@@ -441,6 +443,11 @@ class ToolsController extends Controller
|
||||
];
|
||||
try {
|
||||
$record->set_metadatas($metadatas);
|
||||
|
||||
// order to write meta in file
|
||||
$this->app['dispatcher']->dispatch(WorkerEvents::RECORDS_WRITE_META,
|
||||
new RecordsWriteMetaEvent([$record->getRecordId()], $record->getDataboxId()));
|
||||
|
||||
}
|
||||
catch (\Exception $e) {
|
||||
return $this->app->json(['success' => false, 'errorMessage' => $e->getMessage()]);
|
||||
|
@@ -12,6 +12,8 @@ namespace Alchemy\Phrasea\Controller\Thesaurus;
|
||||
use Alchemy\Phrasea\Controller\Controller;
|
||||
use Alchemy\Phrasea\Model\Entities\Preset;
|
||||
use Alchemy\Phrasea\Model\Entities\User;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\RecordsWriteMetaEvent;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\WorkerEvents;
|
||||
use caption_field;
|
||||
use caption_Field_Value;
|
||||
use databox;
|
||||
@@ -1403,6 +1405,11 @@ class ThesaurusXmlHttpController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
// order to write metas for those records
|
||||
$this->app['dispatcher']->dispatch(WorkerEvents::RECORDS_WRITE_META,
|
||||
new RecordsWriteMetaEvent($sbas['trids'], $sbas['sbas_id'])
|
||||
);
|
||||
|
||||
foreach ($sbas['tvals'] as $tval) {
|
||||
foreach ($tval as $sy) {
|
||||
// remove candidate from cterms
|
||||
|
@@ -164,6 +164,7 @@ class RecordEditSubscriber implements EventSubscriberInterface
|
||||
'value' => $date->format('Y-m-d H:i:s'),
|
||||
)
|
||||
), true);
|
||||
// when edit record write meta also are dispatched
|
||||
}
|
||||
|
||||
$record->clearStampCache();
|
||||
|
@@ -70,7 +70,7 @@ class PhraseanetServiceProvider implements ServiceProviderInterface
|
||||
});
|
||||
|
||||
$app['phraseanet.metadata-setter'] = $app->share(function (Application $app) {
|
||||
return new PhraseanetMetadataSetter($app['repo.databoxes']);
|
||||
return new PhraseanetMetadataSetter($app['repo.databoxes'], $app['dispatcher']);
|
||||
});
|
||||
|
||||
$app['phraseanet.user-query'] = function (SilexApplication $app) {
|
||||
|
@@ -14,8 +14,11 @@ namespace Alchemy\Phrasea\Metadata;
|
||||
use Alchemy\Phrasea\Border\File;
|
||||
use Alchemy\Phrasea\Databox\DataboxRepository;
|
||||
use Alchemy\Phrasea\Metadata\Tag\NoSource;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\RecordsWriteMetaEvent;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\WorkerEvents;
|
||||
use DateTime;
|
||||
use PHPExiftool\Driver\Metadata\Metadata;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
||||
|
||||
class PhraseanetMetadataSetter
|
||||
{
|
||||
@@ -24,9 +27,12 @@ class PhraseanetMetadataSetter
|
||||
*/
|
||||
private $repository;
|
||||
|
||||
public function __construct(DataboxRepository $repository)
|
||||
private $dispatcher;
|
||||
|
||||
public function __construct(DataboxRepository $repository, EventDispatcherInterface $dispatcher)
|
||||
{
|
||||
$this->repository = $repository;
|
||||
$this->dispatcher = $dispatcher;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -83,6 +89,10 @@ class PhraseanetMetadataSetter
|
||||
|
||||
if (! empty($metadataInRecordFormat)) {
|
||||
$record->set_metadatas($metadataInRecordFormat, true);
|
||||
|
||||
// order to write meta in file
|
||||
$this->dispatcher->dispatch(WorkerEvents::RECORDS_WRITE_META,
|
||||
new RecordsWriteMetaEvent([$record->getRecordId()], $record->getDataboxId()));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -14,6 +14,8 @@ use Alchemy\Phrasea\Border;
|
||||
use Alchemy\Phrasea\Border\Attribute\AttributeInterface;
|
||||
use Alchemy\Phrasea\Border\Attribute\MetaField;
|
||||
use Alchemy\Phrasea\Model\Entities\LazaretFile;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\RecordsWriteMetaEvent;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\WorkerEvents;
|
||||
use Doctrine\ORM\EntityManager;
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
use PHPExiftool\Driver\Metadata\Metadata;
|
||||
@@ -220,6 +222,10 @@ class LazaretManipulator
|
||||
|
||||
$fields = $metaFields->toMetadataArray($record->getDatabox()->get_meta_structure());
|
||||
$record->set_metadatas($fields);
|
||||
|
||||
// order to write meta in file
|
||||
$this->app['dispatcher']->dispatch(WorkerEvents::RECORDS_WRITE_META,
|
||||
new RecordsWriteMetaEvent([$record->getRecordId()], $record->getDataboxId()));
|
||||
}
|
||||
|
||||
//Delete lazaret file
|
||||
|
@@ -23,6 +23,8 @@ use Alchemy\Phrasea\Border\Attribute as BorderAttribute;
|
||||
use Alchemy\Phrasea\Border\MetadataBag;
|
||||
use Alchemy\Phrasea\Border\MetaFieldsBag;
|
||||
use Alchemy\Phrasea\Model\Entities\LazaretSession;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\RecordsWriteMetaEvent;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\WorkerEvents;
|
||||
use PHPExiftool\Driver\Metadata\MetadataBag as ExiftoolMetadataBag;
|
||||
use PHPExiftool\Driver\Metadata\Metadata;
|
||||
use PHPExiftool\Driver\Value\Mono as MonoValue;
|
||||
@@ -1066,6 +1068,10 @@ class ArchiveJob extends AbstractJob
|
||||
$story->set_metadatas($metaFields->toMetadataArray($metadatasStructure), true);
|
||||
}
|
||||
|
||||
// order to write meta in file
|
||||
$this->dispatcher->dispatch(WorkerEvents::RECORDS_WRITE_META,
|
||||
new RecordsWriteMetaEvent([$story->getRecordId()], $story->getDataboxId()));
|
||||
|
||||
$story->setStatus(\databox_status::operation_or($stat0, $stat1));
|
||||
|
||||
$app['dispatcher']->dispatch(RecordEvents::SUBDEFINITION_CREATE, new SubdefinitionCreateEvent($story));
|
||||
|
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace Alchemy\Phrasea\WorkerManager\Event;
|
||||
|
||||
use Symfony\Component\EventDispatcher\Event as SfEvent;
|
||||
|
||||
class RecordsWriteMetaEvent extends SfEvent
|
||||
{
|
||||
private $recordIds;
|
||||
private $databoxId;
|
||||
|
||||
public function __construct(array $recordIds, $databoxId)
|
||||
{
|
||||
$this->databoxId = $databoxId;
|
||||
$this->recordIds = $recordIds;
|
||||
}
|
||||
|
||||
public function getRecordIds()
|
||||
{
|
||||
return $this->recordIds;
|
||||
}
|
||||
|
||||
public function getDataboxId()
|
||||
{
|
||||
return $this->databoxId;
|
||||
}
|
||||
}
|
@@ -25,4 +25,6 @@ final class WorkerEvents
|
||||
const EXPOSE_UPLOAD_ASSETS = 'expose.upload_assets';
|
||||
|
||||
const RECORD_EDIT_IN_WORKER = 'record.edit_in_worker';
|
||||
|
||||
const RECORDS_WRITE_META = 'records.write_meta';
|
||||
}
|
||||
|
@@ -141,7 +141,7 @@ class AlchemyWorkerServiceProvider implements PluginProviderInterface
|
||||
}));
|
||||
|
||||
$app['alchemy_worker.type_based_worker_resolver']->addFactory(MessagePublisher::SUBTITLE_TYPE, new CallableWorkerFactory(function () use ($app) {
|
||||
return (new SubtitleWorker($app['repo.worker-job'], $app['conf'], new LazyLocator($app, 'phraseanet.appbox'), $app['alchemy_worker.logger']))
|
||||
return (new SubtitleWorker($app['repo.worker-job'], $app['conf'], new LazyLocator($app, 'phraseanet.appbox'), $app['alchemy_worker.logger'], $app['dispatcher']))
|
||||
->setFileSystemLocator(new LazyLocator($app, 'filesystem'))
|
||||
->setTemporaryFileSystemLocator(new LazyLocator($app, 'temporary-filesystem'));
|
||||
}));
|
||||
|
@@ -13,6 +13,7 @@ use Alchemy\Phrasea\Databox\Subdef\MediaSubdefRepository;
|
||||
use Alchemy\Phrasea\Model\Entities\WorkerRunningJob;
|
||||
use Alchemy\Phrasea\Model\Repositories\WorkerRunningJobRepository;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\RecordEditInWorkerEvent;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\RecordsWriteMetaEvent;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\StoryCreateCoverEvent;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\SubdefinitionCreationFailureEvent;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\SubdefinitionWritemetaEvent;
|
||||
@@ -143,11 +144,12 @@ class RecordSubscriber implements EventSubscriberInterface
|
||||
));
|
||||
}
|
||||
|
||||
public function onMetadataChanged(MetadataChangedEvent $event)
|
||||
public function onRecordsWriteMeta(RecordsWriteMetaEvent $event)
|
||||
{
|
||||
$databoxId = $event->getRecord()->getDataboxId();
|
||||
$recordId = $event->getRecord()->getRecordId();
|
||||
$databoxId = $event->getDataboxId();
|
||||
$recordIds = $event->getRecordIds();
|
||||
|
||||
foreach ($recordIds as $recordId) {
|
||||
$mediaSubdefRepository = $this->getMediaSubdefRepository($databoxId);
|
||||
$mediaSubdefs = $mediaSubdefRepository->findByRecordIdsAndNames([$recordId]);
|
||||
|
||||
@@ -195,7 +197,7 @@ class RecordSubscriber implements EventSubscriberInterface
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public function onStoryCreateCover(StoryCreateCoverEvent $event)
|
||||
@@ -311,7 +313,7 @@ class RecordSubscriber implements EventSubscriberInterface
|
||||
RecordEvents::SUBDEFINITION_CREATE => 'onSubdefinitionCreate',
|
||||
RecordEvents::DELETE => 'onDelete',
|
||||
WorkerEvents::SUBDEFINITION_CREATION_FAILURE => 'onSubdefinitionCreationFailure',
|
||||
RecordEvents::METADATA_CHANGED => 'onMetadataChanged',
|
||||
WorkerEvents::RECORDS_WRITE_META => 'onRecordsWriteMeta',
|
||||
WorkerEvents::STORY_CREATE_COVER => 'onStoryCreateCover',
|
||||
WorkerEvents::SUBDEFINITION_WRITE_META => 'onSubdefinitionWritemeta',
|
||||
WorkerEvents::RECORD_EDIT_IN_WORKER => 'onRecordEditInWorker'
|
||||
|
@@ -23,6 +23,7 @@ use Alchemy\Phrasea\Model\Entities\WorkerRunningJob;
|
||||
use Alchemy\Phrasea\Model\Repositories\UserRepository;
|
||||
use Alchemy\Phrasea\Model\Repositories\WorkerRunningJobRepository;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\AssetsCreationRecordFailureEvent;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\RecordsWriteMetaEvent;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\WorkerEvents;
|
||||
use Alchemy\Phrasea\WorkerManager\Queue\MessagePublisher;
|
||||
use GuzzleHttp\Client;
|
||||
@@ -305,6 +306,10 @@ class CreateRecordWorker implements WorkerInterface
|
||||
}
|
||||
|
||||
$story->set_metadatas($metadatas)->rebuild_subdefs();
|
||||
|
||||
// order to write meta in file
|
||||
$this->app['dispatcher']->dispatch(WorkerEvents::RECORDS_WRITE_META,
|
||||
new RecordsWriteMetaEvent([$story->getRecordId()], $story->getDataboxId()));
|
||||
}
|
||||
|
||||
$this->messagePublisher->pushLog(sprintf('The record record_id= %d was successfully added in the story record_id= %d', $elementCreated->getRecordId(), $story->getRecordId()));
|
||||
|
@@ -8,6 +8,8 @@ use Alchemy\Phrasea\Core\Event\RecordEdit;
|
||||
use Alchemy\Phrasea\Core\PhraseaEvents;
|
||||
use Alchemy\Phrasea\Model\Entities\WorkerRunningJob;
|
||||
use Alchemy\Phrasea\Model\Repositories\WorkerRunningJobRepository;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\RecordsWriteMetaEvent;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\WorkerEvents;
|
||||
use Alchemy\Phrasea\WorkerManager\Queue\MessagePublisher;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
||||
|
||||
@@ -127,6 +129,11 @@ class RecordEditWorker implements WorkerInterface
|
||||
}
|
||||
}
|
||||
|
||||
// order to write metas for those records
|
||||
$this->dispatcher->dispatch(WorkerEvents::RECORDS_WRITE_META,
|
||||
new RecordsWriteMetaEvent(array_column($payload['mdsParams'], 'record_id'), $payload['databoxId'])
|
||||
);
|
||||
|
||||
// tell that we have finished to work on edit
|
||||
$this->repoWorker->reconnect();
|
||||
$em->getConnection()->beginTransaction();
|
||||
|
@@ -6,8 +6,11 @@ use Alchemy\Phrasea\Application\Helper\FilesystemAware;
|
||||
use Alchemy\Phrasea\Core\Configuration\PropertyAccess;
|
||||
use Alchemy\Phrasea\Model\Entities\WorkerJob;
|
||||
use Alchemy\Phrasea\Model\Repositories\WorkerJobRepository;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\RecordsWriteMetaEvent;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\WorkerEvents;
|
||||
use GuzzleHttp\Client;
|
||||
use Psr\Log\LoggerInterface;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
||||
|
||||
class SubtitleWorker implements WorkerInterface
|
||||
{
|
||||
@@ -24,12 +27,15 @@ class SubtitleWorker implements WorkerInterface
|
||||
/** @var WorkerJobRepository $repoWorkerJob*/
|
||||
private $repoWorkerJob;
|
||||
|
||||
public function __construct(WorkerJobRepository $repoWorkerJob, PropertyAccess $conf, callable $appboxLocator, LoggerInterface $logger)
|
||||
private $dispatcher;
|
||||
|
||||
public function __construct(WorkerJobRepository $repoWorkerJob, PropertyAccess $conf, callable $appboxLocator, LoggerInterface $logger, EventDispatcherInterface $dispatcher)
|
||||
{
|
||||
$this->repoWorkerJob = $repoWorkerJob;
|
||||
$this->conf = $conf;
|
||||
$this->appboxLocator = $appboxLocator;
|
||||
$this->logger = $logger;
|
||||
$this->dispatcher = $dispatcher;
|
||||
}
|
||||
|
||||
public function process(array $payload)
|
||||
@@ -188,6 +194,10 @@ class SubtitleWorker implements WorkerInterface
|
||||
|
||||
try {
|
||||
$record->set_metadatas($metadatas);
|
||||
|
||||
// order to write meta in file
|
||||
$this->dispatcher->dispatch(WorkerEvents::RECORDS_WRITE_META,
|
||||
new RecordsWriteMetaEvent([$record->getRecordId()], $record->getDataboxId()));
|
||||
} catch (\Exception $e) {
|
||||
$this->logger->error($e->getMessage());
|
||||
$this->jobFinished($workerJob);
|
||||
@@ -258,6 +268,10 @@ class SubtitleWorker implements WorkerInterface
|
||||
|
||||
try {
|
||||
$record->set_metadatas($metadatas);
|
||||
|
||||
// order to write meta in file
|
||||
$this->dispatcher->dispatch(WorkerEvents::RECORDS_WRITE_META,
|
||||
new RecordsWriteMetaEvent([$record->getRecordId()], $record->getDataboxId()));
|
||||
} catch (\Exception $e) {
|
||||
$this->logger->error($e->getMessage());
|
||||
$this->jobFinished($workerJob);
|
||||
|
@@ -10,6 +10,8 @@
|
||||
*/
|
||||
|
||||
use Alchemy\Phrasea\Application;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\RecordsWriteMetaEvent;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\WorkerEvents;
|
||||
use Doctrine\DBAL\Driver\Statement;
|
||||
|
||||
class caption_field implements cache_cacheableInterface
|
||||
@@ -313,6 +315,11 @@ class caption_field implements cache_cacheableInterface
|
||||
}
|
||||
}
|
||||
|
||||
// order to write metas for those records
|
||||
$app['dispatcher']->dispatch(WorkerEvents::RECORDS_WRITE_META,
|
||||
new RecordsWriteMetaEvent(array_column($rs, 'record_id'), $databox_field->get_databox()->get_sbas_id())
|
||||
);
|
||||
|
||||
$n += $increment;
|
||||
}
|
||||
}
|
||||
@@ -361,6 +368,11 @@ class caption_field implements cache_cacheableInterface
|
||||
}
|
||||
}
|
||||
|
||||
// order to write metas for those records
|
||||
$app['dispatcher']->dispatch(WorkerEvents::RECORDS_WRITE_META,
|
||||
new RecordsWriteMetaEvent(array_column($rs, 'record_id'), $databox_field->get_databox()->get_sbas_id())
|
||||
);
|
||||
|
||||
$n += $increment;
|
||||
}
|
||||
|
||||
|
@@ -9,6 +9,8 @@
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
use Alchemy\Phrasea\WorkerManager\Event\RecordsWriteMetaEvent;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\WorkerEvents;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
@@ -205,6 +207,11 @@ class module_console_fieldsMerge extends Command
|
||||
unset($record);
|
||||
}
|
||||
|
||||
// order to write metas for those records
|
||||
$this->container['dispatcher']->dispatch(WorkerEvents::RECORDS_WRITE_META,
|
||||
new RecordsWriteMetaEvent(array_column($results, 'record_id'), $input->getArgument('sbas_id'))
|
||||
);
|
||||
|
||||
$start += $quantity;
|
||||
} while (count($results) > 0);
|
||||
|
||||
|
@@ -13,6 +13,8 @@ use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Alchemy\Phrasea\Command\Command;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\WorkerEvents;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\RecordsWriteMetaEvent;
|
||||
|
||||
class module_console_fieldsRename extends Command
|
||||
{
|
||||
@@ -106,6 +108,11 @@ class module_console_fieldsRename extends Command
|
||||
unset($record);
|
||||
}
|
||||
|
||||
// order to write metas for those records
|
||||
$this->container['dispatcher']->dispatch(WorkerEvents::RECORDS_WRITE_META,
|
||||
new RecordsWriteMetaEvent(array_column($results, 'record_id'), $input->getArgument('sbas_id'))
|
||||
);
|
||||
|
||||
$start += $quantity;
|
||||
} while (count($results) > 0);
|
||||
|
||||
|
@@ -35,6 +35,8 @@ use Alchemy\Phrasea\Record\RecordReference;
|
||||
use Alchemy\Phrasea\SearchEngine\Elastic\Indexer\Record\Hydrator\GpsPosition;
|
||||
use Alchemy\Phrasea\SearchEngine\SearchEngineInterface;
|
||||
use Alchemy\Phrasea\SearchEngine\SearchEngineOptions;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\WorkerEvents;
|
||||
use Alchemy\Phrasea\WorkerManager\Event\RecordsWriteMetaEvent;
|
||||
use Doctrine\DBAL\Connection;
|
||||
use Doctrine\DBAL\DBALException;
|
||||
use Doctrine\ORM\EntityManager;
|
||||
@@ -876,6 +878,11 @@ class record_adapter implements RecordInterface, cache_cacheableInterface
|
||||
}
|
||||
}
|
||||
|
||||
// order to write metas
|
||||
$this->app['dispatcher']->dispatch(WorkerEvents::RECORDS_WRITE_META,
|
||||
new RecordsWriteMetaEvent([$this->getRecordId()], $this->getDataboxId())
|
||||
);
|
||||
|
||||
$this->getDataboxConnection()->executeUpdate(
|
||||
'UPDATE record SET moddate = NOW(), originalname = :originalname WHERE record_id = :record_id',
|
||||
['originalname' => $original_name, 'record_id' => $this->getRecordId()]
|
||||
|
Reference in New Issue
Block a user