Commit 773cbcb9 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

WIP

parent 2db19446
Loading
Loading
Loading
Loading
+2 −6
Changes for config/autoload/global.php: 2 added lines, 6 removed lines.
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ use Portfolio\Service\PublicationSelectProvider;
use Retraitement\Filter\Command\RetraitementShellCommandMines;
use UnicaenDbImport\Filter\ColumnValue\ArrayToStringColumnValueFilter;
use UnicaenDbImport\Filter\ColumnValue\ConcatColumnValueFilter;
use UnicaenDbImport\Filter\ColumnValue\SameColumnValueFilter;

$config = [
    'api-tools-content-negotiation' => [
@@ -205,6 +206,7 @@ $config = [
                        'publisher_s',
                        'halId_s',
                        'uri_s',
                        'individu_hal_id', // ajouté dynamiquement, cf. PublicationSelectProvider
                    ],
                    'column_name_filter' => [
                        'title_s' => 'title_s',
@@ -220,12 +222,6 @@ $config = [
                        ['name' => ArrayToStringColumnValueFilter::class, 'params' => ['column' => 'authIdHal_i']],
                        ['name' => ArrayToStringColumnValueFilter::class, 'params' => ['column' => 'title_s']],
                        ['name' => ArrayToStringColumnValueFilter::class, 'params' => ['column' => 'publisher_s']],
                        ['name' => ConcatColumnValueFilter::class, 'params' => [
                            'column' => 'source_code', // colonne à transformer
                            'columns' => ['authIdHal_i', 'halId_s'], // colonnes dont les valeurs seront concaténées
                            'separator' => '::',
                            ]
                        ],
                    ],
                    'source_code_column' => 'source_code',
                    'request_options' => [
+11 −7
Changes for doc/release-notes/fiche_rncp/02_publications.sql: 11 added lines, 7 removed lines.
Original line number Diff line number Diff line
INSERT INTO source(id, code, libelle, etablissement_id, importable)
VALUES (nextval('source_id_seq'), 'PUBLICATIONS_HAL', 'PUBLICATIONS_HAL', null, true) ;
-- INSERT INTO source(id, code, libelle, etablissement_id, importable)
-- VALUES (nextval('source_id_seq'), 'PUBLICATIONS_HAL', 'PUBLICATIONS_HAL', null, true) ;

--Suppression des possibles données existantes concernant l'import des publications
drop view if exists v_diff_publication_hal;
@@ -12,8 +12,9 @@ create table if not exists public.tmp_publication_hal
(
    id                    bigserial,
    title_s               varchar(2048),
    auth_full_name_s        varchar(2048),
    auth_full_name_s        text,
    auth_id_hal_i        varchar(2048),
    individu_hal_id      varchar(264),
    publication_date_s     varchar(264),
    publisher_s           varchar(264),
    doc_type_s             varchar(264),
@@ -36,14 +37,15 @@ create index tmp_publication_hal_source_code_index
create index tmp_publication_hal_source_id_index
    on public.tmp_publication_hal (source_id);

create unique index tmp_publication_hal_unique_index
    on public.tmp_publication_hal (source_id, source_code);
-- create unique index tmp_publication_hal_unique_index
--     on public.tmp_publication_hal (source_id, source_code);

--Création de la table publication_hal
create table if not exists public.publication_hal
(
    id                    bigserial                                                    not null
    primary key,
    individu_id bigint,
    title_s               varchar(2048),
    auth_full_name_s        varchar(2048),
    auth_id_hal_i        varchar(2048),
@@ -91,10 +93,11 @@ create index publication_hal_source_idx

--Création de la vue src_publication_hal avec les infos de tmp_publication_hal
create or replace view src_publication_hal
            (id, source_code, source_id, title_s, auth_full_name_s, publication_date_s, doc_type_s, publisher_s, uri_s) as
            (id, source_code, source_id, title_s, auth_full_name_s, auth_id_hal_i, publication_date_s, doc_type_s, publisher_s, uri_s) as
select NULL::bigint                                                 AS id,
    tmp.source_code,
       tmp.individu_hal_id||'_'||tmp.source_code                    as source_code,
       src.id                                                       AS source_id,
       i.id as individu_id,
       tmp.title_s,
       tmp.auth_full_name_s,
       tmp.auth_id_hal_i,
@@ -104,4 +107,5 @@ select NULL::bigint AS id,
       tmp.uri_s
FROM tmp_publication_hal tmp
         JOIN source src ON src.id = tmp.source_id
    join individu i on i.id_hal = tmp.individu_hal_id
;
 No newline at end of file
+8 −3
Changes for module/Portfolio/src/Portfolio/Service/PublicationSelectProvider.php: 8 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -12,8 +12,8 @@ class PublicationSelectProvider implements SelectProviderInterface
    use DoctorantServiceAwareTrait;
    use IndividuServiceAwareTrait;

    private string $urlTemplateIdNumeric = '/search/?q=authIdHal_i:%s&wt=json&fl=idHal_s,title_s,authFullName_s,publicationDate_s,halId_s,publisher_s,uri_s,docType_s';
    private string $urlTemplateIdString = '/search/?q=authIdHal_s:%s&wt=json&fl=idHal_s,title_s,authFullName_s,publicationDate_s,halId_s,publisher_s,uri_s,docType_s';
    private string $urlTemplateIdNumeric = '/search/?q=authIdHal_i:%s&wt=json&fl=idHal_s,title_s,authFullName_s,publicationDate_s,halId_s,authIdHal_i,publisher_s,uri_s,docType_s';
    private string $urlTemplateIdString = '/search/?q=authIdHal_s:%s&wt=json&fl=idHal_s,title_s,authFullName_s,publicationDate_s,halId_s,authIdHal_i,publisher_s,uri_s,docType_s';
    private ?array $idsHal = null;

    public function getSelects(): array
@@ -27,7 +27,12 @@ class PublicationSelectProvider implements SelectProviderInterface
                    ? $this->urlTemplateIdNumeric
                    : $this->urlTemplateIdString;

                return sprintf($template, $id);
                return [
                    'url' => sprintf($template, $id),
                    'columns' => [
                        'individu_hal_id' => $id,
                    ],
                ];
            },
            $this->idsHal
        );