From 222b4e9ad9cbd5d2a88ad1af7592204d05d85ad3 Mon Sep 17 00:00:00 2001 From: Karolina Przerwa Date: Mon, 21 Oct 2024 17:28:53 +0200 Subject: [PATCH] custom fields: add CERN fields * IDs: register custom schemes --- app_data/vocabularies.yaml | 11 +- app_data/vocabularies/accelerators.yaml | 132 + app_data/vocabularies/departments.yaml | 51 + app_data/vocabularies/experiments.yaml | 3726 +++++++++++++++++ .../less/cds-rdm/elements/container.overrides | 4 +- docker-services.yml | 2 +- invenio.cfg | 179 +- site/cds_rdm/schemes.py | 57 + site/setup.cfg | 5 +- 9 files changed, 4092 insertions(+), 75 deletions(-) create mode 100644 app_data/vocabularies/accelerators.yaml create mode 100644 app_data/vocabularies/departments.yaml create mode 100644 app_data/vocabularies/experiments.yaml create mode 100644 site/cds_rdm/schemes.py diff --git a/app_data/vocabularies.yaml b/app_data/vocabularies.yaml index 226f9f2..8b45a02 100644 --- a/app_data/vocabularies.yaml +++ b/app_data/vocabularies.yaml @@ -14,4 +14,13 @@ funders: # after 'funders' awards: pid-type: awa - data-file: vocabularies/awards.yaml \ No newline at end of file + data-file: vocabularies/awards.yaml +experiments: + pid-type: exp + data-file: vocabularies/experiments.yaml +departments: + pid-type: dep + data-file: vocabularies/departments.yaml +accelerators: + pid-type: acc + data-file: vocabularies/accelerators.yaml \ No newline at end of file diff --git a/app_data/vocabularies/accelerators.yaml b/app_data/vocabularies/accelerators.yaml new file mode 100644 index 0000000..a5e285a --- /dev/null +++ b/app_data/vocabularies/accelerators.yaml @@ -0,0 +1,132 @@ +- id: ANU 14UD Pelletron + title: + en: ANU 14UD Pelletron +- id: BNL-AGS + title: + en: BNL-AGS +- id: Brookhaven RHIC + title: + en: Brookhaven RHIC +- id: Bugey reactor + title: + en: Bugey reactor +- id: CERN AD + title: + en: CERN AD +- id: CERN HL-LHC + title: + en: CERN HL-LHC +- id: CERN ISOLDE + title: + en: CERN ISOLDE +- id: CERN ISR + title: + en: CERN ISR +- id: CERN LEAR + title: + en: CERN LEAR +- id: CERN LEIR + title: + en: CERN LEIR +- id: CERN LEP + title: + en: CERN LEP +- id: CERN LHC + title: + en: CERN LHC +- id: CERN LHeC + title: + en: CERN LHeC +- id: CERN LIL + title: + en: CERN LIL +- id: CERN Linac + title: + en: CERN Linac +- id: CERN Linac2 + title: + en: CERN Linac2 +- id: CERN Linac3 + title: + en: CERN Linac3 +- id: CERN Linac4 + title: + en: CERN Linac4 +- id: CERN MSC + title: + en: CERN MSC +- id: CERN MSR + title: + en: CERN MSR +- id: CERN PS + title: + en: CERN PS +- id: CERN PS Booster + title: + en: CERN PS Booster +- id: CERN SC + title: + en: CERN SC +- id: CERN SLHC + title: + en: CERN SLHC +- id: CERN SPL + title: + en: CERN SPL +- id: CERN SPS + title: + en: CERN SPS +- id: CERN VLHC + title: + en: CERN VLHC +- id: CLIC + title: + en: CLIC +- id: DESY HERA + title: + en: DESY HERA +- id: DESY PETRA + title: + en: DESY PETRA +- id: Fermilab Tevatron + title: + en: Fermilab Tevatron +- id: GSI Darmstadt + title: + en: GSI Darmstadt +- id: ILC + title: + en: ILC +- id: KEK ATF + title: + en: KEK ATF +- id: LHeC + title: + en: LHeC +- id: MAFF + title: + en: MAFF +- id: NLC + title: + en: NLC +- id: Not applicable + title: + en: Not applicable +- id: Rutherford-Appleton proton synchrotron + title: + en: Rutherford-Appleton proton synchrotron +- id: Serpukhov PS + title: + en: Serpukhov PS +- id: SLAC PEP-II + title: + en: SLAC PEP-II +- id: SLAC-SLC + title: + en: SLAC-SLC +- id: SuperKEKB + title: + en: SuperKEKB +- id: TESLA + title: + en: TESLA diff --git a/app_data/vocabularies/departments.yaml b/app_data/vocabularies/departments.yaml new file mode 100644 index 0000000..5c8cf9c --- /dev/null +++ b/app_data/vocabularies/departments.yaml @@ -0,0 +1,51 @@ +- id: BE + title: + en: BE +- id: DGU + title: + en: DGU +- id: EN + title: + en: EN +- id: EP + title: + en: EP +- id: FAP + title: + en: FAP +- id: FP + title: + en: FP +- id: GS + title: + en: GS +- id: HR + title: + en: HR +- id: HSE + title: + en: HSE +- id: IPT + title: + en: IPT +- id: IR + title: + en: IR +- id: IT + title: + en: IT +- id: PH + title: + en: PH +- id: SMB + title: + en: SMB +- id: SY + title: + en: SY +- id: TE + title: + en: TE +- id: TH + title: + en: TH \ No newline at end of file diff --git a/app_data/vocabularies/experiments.yaml b/app_data/vocabularies/experiments.yaml new file mode 100644 index 0000000..bbecc77 --- /dev/null +++ b/app_data/vocabularies/experiments.yaml @@ -0,0 +1,3726 @@ +- id: ACCMOR NA32 + title: + en: ACCMOR NA32 +- id: ACE AD-4 + title: + en: ACE AD-4 +- id: ADVANCED VIRGO RE28 + title: + en: ADVANCED VIRGO RE28 +- id: AEGIS AD-6 + title: + en: AEGIS AD-6 +- id: ALEPH + title: + en: ALEPH +- id: ALICE + title: + en: ALICE +- id: ALPHA AD-5 + title: + en: ALPHA AD-5 +- id: AMANDA + title: + en: AMANDA +- id: AMS-01 + title: + en: AMS-01 +- id: AMS-02 + title: + en: AMS-02 +- id: AMS RE1 + title: + en: AMS RE1 +- id: ANTARES RE6 + title: + en: ANTARES RE6 +- id: ArDM RE18 + title: + en: ArDM RE18 +- id: ASACUSA AD-3 + title: + en: ASACUSA AD-3 +- id: ASCOT + title: + en: ASCOT +- id: ASTERIX PS171 + title: + en: ASTERIX PS171 +- id: ATF + title: + en: ATF +- id: ATHENA AD-1 + title: + en: ATHENA AD-1 +- id: ATLAS + title: + en: ATLAS +- id: ATLAS EAGLE + title: + en: ATLAS EAGLE +- id: ATRAP AD-2 + title: + en: ATRAP AD-2 +- id: AUGER RE3 + title: + en: AUGER RE3 +- id: AWAKE + title: + en: AWAKE +- id: B3 + title: + en: B3 +- id: B5 + title: + en: B5 +- id: B6 + title: + en: B6 +- id: BaBar + title: + en: BaBar +- id: BASE AD-8 + title: + en: BASE AD-8 +- id: BEATRICE WA92 + title: + en: BEATRICE WA92 +- id: BEBC + title: + en: BEBC +- id: BELLE + title: + en: BELLE +- id: BELLE-II RE20 + title: + en: BELLE-II RE20 +- id: BOREALIS RE32 + title: + en: BOREALIS RE32 +- id: BOREXINO RE26 + title: + en: BOREXINO RE26 +- id: C3 + title: + en: C3 +- id: C4 + title: + en: C4 +- id: CALEIDO + title: + en: CALEIDO +- id: CALICE + title: + en: CALICE +- id: CAPRICE RE2A + title: + en: CAPRICE RE2A +- id: CAST + title: + en: CAST +- id: CBM RE21 + title: + en: CBM RE21 +- id: CDF + title: + en: CDF +- id: CERES NA45 + title: + en: CERES NA45 +- id: CERES NA45/2 + title: + en: CERES NA45/2 +- id: CERN 2m bubble chamber + title: + en: CERN 2m bubble chamber +- id: CERN-IHEP + title: + en: CERN-IHEP +- id: CERN Linear Collider Detector + title: + en: CERN Linear Collider Detector +- id: CHARM-II WA79 + title: + en: CHARM-II WA79 +- id: CHORUS WA95 + title: + en: CHORUS WA95 +- id: CLOUD PS215 + title: + en: CLOUD PS215 +- id: CMS + title: + en: CMS +- id: COLLAPS + title: + en: COLLAPS +- id: COMPASS NA58 + title: + en: COMPASS NA58 +- id: COMPLIS + title: + en: COMPLIS +- id: CPLEAR + title: + en: CPLEAR +- id: CREAM RE19 + title: + en: CREAM RE19 +- id: CRIS + title: + en: CRIS +- id: CRYSTAL + title: + en: CRYSTAL +- id: CTA-P RE23 + title: + en: CTA-P RE23 +- id: CTF + title: + en: CTF +- id: CTF2 + title: + en: CTF2 +- id: CTF3 + title: + en: CTF3 +- id: D0 + title: + en: D0 +- id: D4 + title: + en: D4 +- id: D6 + title: + en: D6 +- id: DAMPE RE29 + title: + en: DAMPE RE29 +- id: DELPHI + title: + en: DELPHI +- id: DIRAC PS212 + title: + en: DIRAC PS212 +- id: DRD3 + title: + en: DRD3 +- id: E605 + title: + en: E605 +- id: E741 + title: + en: E741 +- id: E770 + title: + en: E770 +- id: E781 + title: + en: E781 +- id: ELAPP + title: + en: ELAPP +- id: ELENA + title: + en: ELENA +- id: EMC NA2 + title: + en: EMC NA2 +- id: EMI + title: + en: EMI +- id: EMU01 + title: + en: EMU01 +- id: EMU02 + title: + en: EMU02 +- id: EMU03 + title: + en: EMU03 +- id: EMU04 + title: + en: EMU04 +- id: EMU05 + title: + en: EMU05 +- id: EMU06 + title: + en: EMU06 +- id: EMU07 + title: + en: EMU07 +- id: EMU08 + title: + en: EMU08 +- id: EMU09 + title: + en: EMU09 +- id: EMU10 + title: + en: EMU10 +- id: EMU11 + title: + en: EMU11 +- id: EMU12 + title: + en: EMU12 +- id: EMU13 + title: + en: EMU13 +- id: EMU14 + title: + en: EMU14 +- id: EMU15 + title: + en: EMU15 +- id: EMU16 + title: + en: EMU16 +- id: EMU17 + title: + en: EMU17 +- id: EMU18 + title: + en: EMU18 +- id: EMU19 + title: + en: EMU19 +- id: EMU20 + title: + en: EMU20 +- id: EROS + title: + en: EROS +- id: EUCLID RE31 + title: + en: EUCLID RE31 +- id: EXPLORER RE5 + title: + en: EXPLORER RE5 +- id: FASER + title: + en: FASER +- id: FAST + title: + en: FAST +- id: FELIX + title: + en: FELIX +- id: FERMI RE7 + title: + en: FERMI RE7 +- id: FP420 + title: + en: FP420 +- id: Frejus + title: + en: Frejus +- id: Gargamelle + title: + en: Gargamelle +- id: GBAR AD-7 + title: + en: GBAR AD-7 +- id: H1 + title: + en: H1 +- id: HARP PS214 + title: + en: HARP PS214 +- id: HBC + title: + en: HBC +- id: HELIOS NA34/2 + title: + en: HELIOS NA34/2 +- id: HERA-B + title: + en: HERA-B +- id: HERMES + title: + en: HERMES +- id: HESS RE16 + title: + en: HESS RE16 +- id: HLBC + title: + en: HLBC +- id: I216 + title: + en: I216 +- id: ICANOE + title: + en: ICANOE +- id: ICARUS CNGS2 + title: + en: ICARUS CNGS2 +- id: ICARUS-T600 + title: + en: ICARUS-T600 +- id: ICE + title: + en: ICE +- id: ICECUBE RE10 + title: + en: ICECUBE RE10 +- id: IS + title: + en: IS +- id: IS01 + title: + en: IS01 +- id: IS01-1 + title: + en: IS01-1 +- id: IS01-10 + title: + en: IS01-10 +- id: IS01-11 + title: + en: IS01-11 +- id: IS01-12 + title: + en: IS01-12 +- id: IS01-13 + title: + en: IS01-13 +- id: IS01-15 + title: + en: IS01-15 +- id: IS01-18 + title: + en: IS01-18 +- id: IS01-23 + title: + en: IS01-23 +- id: IS01-3 + title: + en: IS01-3 +- id: IS01-31 + title: + en: IS01-31 +- id: IS01-38 + title: + en: IS01-38 +- id: IS01-44 + title: + en: IS01-44 +- id: IS10 + title: + en: IS10 +- id: IS100 + title: + en: IS100 +- id: IS110 + title: + en: IS110 +- id: IS120 + title: + en: IS120 +- id: IS130 + title: + en: IS130 +- id: IS140 + title: + en: IS140 +- id: IS150 + title: + en: IS150 +- id: IS160 + title: + en: IS160 +- id: IS170 + title: + en: IS170 +- id: IS180 + title: + en: IS180 +- id: IS181 + title: + en: IS181 +- id: IS190 + title: + en: IS190 +- id: IS20 + title: + en: IS20 +- id: IS200 + title: + en: IS200 +- id: IS21 + title: + en: IS21 +- id: IS210 + title: + en: IS210 +- id: IS220 + title: + en: IS220 +- id: IS230 + title: + en: IS230 +- id: IS240 + title: + en: IS240 +- id: IS260 + title: + en: IS260 +- id: IS270 + title: + en: IS270 +- id: IS30 + title: + en: IS30 +- id: IS300 + title: + en: IS300 +- id: IS301 + title: + en: IS301 +- id: IS302 + title: + en: IS302 +- id: IS303 + title: + en: IS303 +- id: IS304 + title: + en: IS304 +- id: IS305 + title: + en: IS305 +- id: IS306 + title: + en: IS306 +- id: IS307 + title: + en: IS307 +- id: IS308 + title: + en: IS308 +- id: IS309 + title: + en: IS309 +- id: IS31 + title: + en: IS31 +- id: IS310 + title: + en: IS310 +- id: IS311 + title: + en: IS311 +- id: IS312 + title: + en: IS312 +- id: IS313 + title: + en: IS313 +- id: IS314 + title: + en: IS314 +- id: IS315 + title: + en: IS315 +- id: IS316 + title: + en: IS316 +- id: IS317 + title: + en: IS317 +- id: IS318 + title: + en: IS318 +- id: IS319 + title: + en: IS319 +- id: IS320 + title: + en: IS320 +- id: IS321 + title: + en: IS321 +- id: IS322 + title: + en: IS322 +- id: IS323 + title: + en: IS323 +- id: IS324 + title: + en: IS324 +- id: IS325 + title: + en: IS325 +- id: IS326 + title: + en: IS326 +- id: IS327 + title: + en: IS327 +- id: IS328 + title: + en: IS328 +- id: IS329 + title: + en: IS329 +- id: IS330 + title: + en: IS330 +- id: IS331 + title: + en: IS331 +- id: IS332 + title: + en: IS332 +- id: IS333 + title: + en: IS333 +- id: IS334 + title: + en: IS334 +- id: IS335 + title: + en: IS335 +- id: IS336 + title: + en: IS336 +- id: IS337 + title: + en: IS337 +- id: IS338 + title: + en: IS338 +- id: IS339 + title: + en: IS339 +- id: IS340 + title: + en: IS340 +- id: IS341 + title: + en: IS341 +- id: IS342 + title: + en: IS342 +- id: IS343 + title: + en: IS343 +- id: IS344 + title: + en: IS344 +- id: IS345 + title: + en: IS345 +- id: IS347 + title: + en: IS347 +- id: IS348 + title: + en: IS348 +- id: IS349 + title: + en: IS349 +- id: IS350 + title: + en: IS350 +- id: IS351 + title: + en: IS351 +- id: IS352 + title: + en: IS352 +- id: IS353 + title: + en: IS353 +- id: IS354 + title: + en: IS354 +- id: IS355 + title: + en: IS355 +- id: IS356 + title: + en: IS356 +- id: IS357 + title: + en: IS357 +- id: IS358 + title: + en: IS358 +- id: IS359 + title: + en: IS359 +- id: IS360 + title: + en: IS360 +- id: IS361 + title: + en: IS361 +- id: IS362 + title: + en: IS362 +- id: IS363 + title: + en: IS363 +- id: IS364 + title: + en: IS364 +- id: IS365 + title: + en: IS365 +- id: IS366 + title: + en: IS366 +- id: IS367 + title: + en: IS367 +- id: IS368 + title: + en: IS368 +- id: IS369 + title: + en: IS369 +- id: IS370 + title: + en: IS370 +- id: IS371 + title: + en: IS371 +- id: IS372 + title: + en: IS372 +- id: IS374 + title: + en: IS374 +- id: IS375 + title: + en: IS375 +- id: IS376 + title: + en: IS376 +- id: IS377 + title: + en: IS377 +- id: IS378 + title: + en: IS378 +- id: IS379 + title: + en: IS379 +- id: IS380 + title: + en: IS380 +- id: IS381 + title: + en: IS381 +- id: IS382 + title: + en: IS382 +- id: IS383 + title: + en: IS383 +- id: IS384 + title: + en: IS384 +- id: IS385 + title: + en: IS385 +- id: IS386 + title: + en: IS386 +- id: IS387 + title: + en: IS387 +- id: IS388 + title: + en: IS388 +- id: IS389 + title: + en: IS389 +- id: IS390 + title: + en: IS390 +- id: IS391 + title: + en: IS391 +- id: IS392 + title: + en: IS392 +- id: IS393 + title: + en: IS393 +- id: IS394 + title: + en: IS394 +- id: IS395 + title: + en: IS395 +- id: IS396 + title: + en: IS396 +- id: IS397 + title: + en: IS397 +- id: IS398 + title: + en: IS398 +- id: IS399 + title: + en: IS399 +- id: IS40 + title: + en: IS40 +- id: IS400 + title: + en: IS400 +- id: IS401 + title: + en: IS401 +- id: IS402 + title: + en: IS402 +- id: IS403 + title: + en: IS403 +- id: IS404 + title: + en: IS404 +- id: IS405 + title: + en: IS405 +- id: IS406 + title: + en: IS406 +- id: IS407 + title: + en: IS407 +- id: IS408 + title: + en: IS408 +- id: IS409 + title: + en: IS409 +- id: IS410 + title: + en: IS410 +- id: IS411 + title: + en: IS411 +- id: IS412 + title: + en: IS412 +- id: IS413 + title: + en: IS413 +- id: IS414 + title: + en: IS414 +- id: IS415 + title: + en: IS415 +- id: IS416 + title: + en: IS416 +- id: IS417 + title: + en: IS417 +- id: IS418 + title: + en: IS418 +- id: IS419 + title: + en: IS419 +- id: IS420 + title: + en: IS420 +- id: IS421 + title: + en: IS421 +- id: IS422 + title: + en: IS422 +- id: IS423 + title: + en: IS423 +- id: IS424 + title: + en: IS424 +- id: IS425 + title: + en: IS425 +- id: IS426 + title: + en: IS426 +- id: IS427 + title: + en: IS427 +- id: IS428 + title: + en: IS428 +- id: IS429 + title: + en: IS429 +- id: IS430 + title: + en: IS430 +- id: IS431 + title: + en: IS431 +- id: IS432 + title: + en: IS432 +- id: IS433 + title: + en: IS433 +- id: IS434 + title: + en: IS434 +- id: IS435 + title: + en: IS435 +- id: IS436 + title: + en: IS436 +- id: IS437 + title: + en: IS437 +- id: IS438 + title: + en: IS438 +- id: IS439 + title: + en: IS439 +- id: IS440 + title: + en: IS440 +- id: IS441 + title: + en: IS441 +- id: IS442 + title: + en: IS442 +- id: IS443 + title: + en: IS443 +- id: IS444 + title: + en: IS444 +- id: IS445 + title: + en: IS445 +- id: IS446 + title: + en: IS446 +- id: IS447 + title: + en: IS447 +- id: IS448 + title: + en: IS448 +- id: IS449 + title: + en: IS449 +- id: IS450 + title: + en: IS450 +- id: IS451 + title: + en: IS451 +- id: IS452 + title: + en: IS452 +- id: IS453 + title: + en: IS453 +- id: IS454 + title: + en: IS454 +- id: IS455 + title: + en: IS455 +- id: IS456 + title: + en: IS456 +- id: IS457 + title: + en: IS457 +- id: IS458 + title: + en: IS458 +- id: IS459 + title: + en: IS459 +- id: IS460 + title: + en: IS460 +- id: IS461 + title: + en: IS461 +- id: IS462 + title: + en: IS462 +- id: IS463 + title: + en: IS463 +- id: IS464 + title: + en: IS464 +- id: IS465 + title: + en: IS465 +- id: IS466 + title: + en: IS466 +- id: IS467 + title: + en: IS467 +- id: IS468 + title: + en: IS468 +- id: IS469 + title: + en: IS469 +- id: IS470 + title: + en: IS470 +- id: IS471 + title: + en: IS471 +- id: IS472 + title: + en: IS472 +- id: IS473 + title: + en: IS473 +- id: IS474 + title: + en: IS474 +- id: IS475 + title: + en: IS475 +- id: IS476 + title: + en: IS476 +- id: IS477 + title: + en: IS477 +- id: IS478 + title: + en: IS478 +- id: IS479 + title: + en: IS479 +- id: IS480 + title: + en: IS480 +- id: IS481 + title: + en: IS481 +- id: IS482 + title: + en: IS482 +- id: IS483 + title: + en: IS483 +- id: IS484 + title: + en: IS484 +- id: IS485 + title: + en: IS485 +- id: IS486 + title: + en: IS486 +- id: IS487 + title: + en: IS487 +- id: IS488 + title: + en: IS488 +- id: IS489 + title: + en: IS489 +- id: IS490 + title: + en: IS490 +- id: IS491 + title: + en: IS491 +- id: IS492 + title: + en: IS492 +- id: IS493 + title: + en: IS493 +- id: IS494 + title: + en: IS494 +- id: IS495 + title: + en: IS495 +- id: IS496 + title: + en: IS496 +- id: IS497 + title: + en: IS497 +- id: IS498 + title: + en: IS498 +- id: IS499 + title: + en: IS499 +- id: IS50 + title: + en: IS50 +- id: IS500 + title: + en: IS500 +- id: IS501 + title: + en: IS501 +- id: IS502 + title: + en: IS502 +- id: IS503 + title: + en: IS503 +- id: IS504 + title: + en: IS504 +- id: IS505 + title: + en: IS505 +- id: IS506 + title: + en: IS506 +- id: IS507 + title: + en: IS507 +- id: IS508 + title: + en: IS508 +- id: IS509 + title: + en: IS509 +- id: IS510 + title: + en: IS510 +- id: IS511 + title: + en: IS511 +- id: IS512 + title: + en: IS512 +- id: IS513 + title: + en: IS513 +- id: IS514 + title: + en: IS514 +- id: IS515 + title: + en: IS515 +- id: IS516 + title: + en: IS516 +- id: IS517 + title: + en: IS517 +- id: IS518 + title: + en: IS518 +- id: IS519 + title: + en: IS519 +- id: IS520 + title: + en: IS520 +- id: IS521 + title: + en: IS521 +- id: IS522 + title: + en: IS522 +- id: IS523 + title: + en: IS523 +- id: IS524 + title: + en: IS524 +- id: IS525 + title: + en: IS525 +- id: IS526 + title: + en: IS526 +- id: IS527 + title: + en: IS527 +- id: IS528 + title: + en: IS528 +- id: IS529 + title: + en: IS529 +- id: IS530 + title: + en: IS530 +- id: IS531 + title: + en: IS531 +- id: IS532 + title: + en: IS532 +- id: IS533 + title: + en: IS533 +- id: IS534 + title: + en: IS534 +- id: IS535 + title: + en: IS535 +- id: IS536 + title: + en: IS536 +- id: IS537 + title: + en: IS537 +- id: IS538 + title: + en: IS538 +- id: IS539 + title: + en: IS539 +- id: IS540 + title: + en: IS540 +- id: IS541 + title: + en: IS541 +- id: IS542 + title: + en: IS542 +- id: IS543 + title: + en: IS543 +- id: IS544 + title: + en: IS544 +- id: IS545 + title: + en: IS545 +- id: IS546 + title: + en: IS546 +- id: IS547 + title: + en: IS547 +- id: IS548 + title: + en: IS548 +- id: IS549 + title: + en: IS549 +- id: IS550 + title: + en: IS550 +- id: IS551 + title: + en: IS551 +- id: IS552 + title: + en: IS552 +- id: IS553 + title: + en: IS553 +- id: IS554 + title: + en: IS554 +- id: IS555 + title: + en: IS555 +- id: IS556 + title: + en: IS556 +- id: IS557 + title: + en: IS557 +- id: IS558 + title: + en: IS558 +- id: IS559 + title: + en: IS559 +- id: IS560 + title: + en: IS560 +- id: IS561 + title: + en: IS561 +- id: IS562 + title: + en: IS562 +- id: IS563 + title: + en: IS563 +- id: IS564 + title: + en: IS564 +- id: IS565 + title: + en: IS565 +- id: IS566 + title: + en: IS566 +- id: IS567 + title: + en: IS567 +- id: IS568 + title: + en: IS568 +- id: IS569 + title: + en: IS569 +- id: IS570 + title: + en: IS570 +- id: IS571 + title: + en: IS571 +- id: IS572 + title: + en: IS572 +- id: IS573 + title: + en: IS573 +- id: IS574 + title: + en: IS574 +- id: IS575 + title: + en: IS575 +- id: IS576 + title: + en: IS576 +- id: IS577 + title: + en: IS577 +- id: IS578 + title: + en: IS578 +- id: IS579 + title: + en: IS579 +- id: IS580 + title: + en: IS580 +- id: IS581 + title: + en: IS581 +- id: IS582 + title: + en: IS582 +- id: IS583 + title: + en: IS583 +- id: IS584 + title: + en: IS584 +- id: IS585 + title: + en: IS585 +- id: IS586 + title: + en: IS586 +- id: IS587 + title: + en: IS587 +- id: IS588 + title: + en: IS588 +- id: IS589 + title: + en: IS589 +- id: IS590 + title: + en: IS590 +- id: IS591 + title: + en: IS591 +- id: IS592 + title: + en: IS592 +- id: IS593 + title: + en: IS593 +- id: IS594 + title: + en: IS594 +- id: IS595 + title: + en: IS595 +- id: IS596 + title: + en: IS596 +- id: IS597 + title: + en: IS597 +- id: IS598 + title: + en: IS598 +- id: IS599 + title: + en: IS599 +- id: IS600 + title: + en: IS600 +- id: IS601 + title: + en: IS601 +- id: IS602 + title: + en: IS602 +- id: IS603 + title: + en: IS603 +- id: IS604 + title: + en: IS604 +- id: IS605 + title: + en: IS605 +- id: IS606 + title: + en: IS606 +- id: IS607 + title: + en: IS607 +- id: IS608 + title: + en: IS608 +- id: IS609 + title: + en: IS609 +- id: IS610 + title: + en: IS610 +- id: IS611 + title: + en: IS611 +- id: IS611 + title: + en: IS611 +- id: IS612 + title: + en: IS612 +- id: IS613 + title: + en: IS613 +- id: IS614 + title: + en: IS614 +- id: IS615 + title: + en: IS615 +- id: IS616 + title: + en: IS616 +- id: IS617 + title: + en: IS617 +- id: IS618 + title: + en: IS618 +- id: IS619 + title: + en: IS619 +- id: IS620 + title: + en: IS620 +- id: IS621 + title: + en: IS621 +- id: IS622 + title: + en: IS622 +- id: IS623 + title: + en: IS623 +- id: IS624 + title: + en: IS624 +- id: IS625 + title: + en: IS625 +- id: IS626 + title: + en: IS626 +- id: IS627 + title: + en: IS627 +- id: IS628 + title: + en: IS628 +- id: IS629 + title: + en: IS629 +- id: IS630 + title: + en: IS630 +- id: IS631 + title: + en: IS631 +- id: IS632 + title: + en: IS632 +- id: IS633 + title: + en: IS633 +- id: IS634 + title: + en: IS634 +- id: IS635 + title: + en: IS635 +- id: IS636 + title: + en: IS636 +- id: IS637 + title: + en: IS637 +- id: IS638 + title: + en: IS638 +- id: IS640 + title: + en: IS640 +- id: IS652 + title: + en: IS652 +- id: IS653 + title: + en: IS653 +- id: IS654 + title: + en: IS654 +- id: IS655 + title: + en: IS655 +- id: IS656 + title: + en: IS656 +- id: IS657 + title: + en: IS657 +- id: IS60 + title: + en: IS60 +- id: IS70 + title: + en: IS70 +- id: IS80 + title: + en: IS80 +- id: IS81 + title: + en: IS81 +- id: IS82 + title: + en: IS82 +- id: IS83 + title: + en: IS83 +- id: IS84 + title: + en: IS84 +- id: IS90 + title: + en: IS90 +- id: ISIS + title: + en: ISIS +- id: ISOL + title: + en: ISOL +- id: ISOLDE-LUCRECIA + title: + en: ISOLDE-LUCRECIA +- id: ISOLDE-RILIS + title: + en: ISOLDE-RILIS +- id: ISOLTRAP + title: + en: ISOLTRAP +- id: ISOMAX + title: + en: ISOMAX +- id: ISXXX + title: + en: ISXXX +- id: JADE + title: + en: JADE +- id: KASCADE + title: + en: KASCADE +- id: KATRIN RE14 + title: + en: KATRIN RE14 +- id: KM3NET RE30 + title: + en: KM3NET RE30 +- id: L3 + title: + en: L3 +- id: L3+C RE4 + title: + en: L3+C RE4 +- id: LAERTIS + title: + en: LAERTIS +- id: LARP + title: + en: LARP +- id: LEP5 + title: + en: LEP5 +- id: LEP6 + title: + en: LEP6 +- id: LHCb + title: + en: LHCb +- id: LHCf + title: + en: LHCf +- id: LISA RE8 + title: + en: LISA RE8 +- id: MACRO + title: + en: MACRO +- id: MAFF + title: + en: MAFF +- id: MAGIC RE17 + title: + en: MAGIC RE17 +- id: MARK-J + title: + en: MARK-J +- id: MEDIPIX2 + title: + en: MEDIPIX2 +- id: MEG RE12 + title: + en: MEG RE12 +- id: MICE RE11 + title: + en: MICE RE11 +- id: MISTRAL IS346 + title: + en: MISTRAL IS346 +- id: MISTRAL IS373 + title: + en: MISTRAL IS373 +- id: MoEDAL + title: + en: MoEDAL +- id: MONOLITH + title: + en: MONOLITH +- id: MUNU + title: + en: MUNU +- id: N4 + title: + en: N4 +- id: N5 + title: + en: N5 +- id: NA1 + title: + en: NA1 +- id: NA10 + title: + en: NA10 +- id: NA11 + title: + en: NA11 +- id: NA12 + title: + en: NA12 +- id: NA12/2 + title: + en: NA12/2 +- id: NA13 + title: + en: NA13 +- id: NA14 + title: + en: NA14 +- id: NA14/2 + title: + en: NA14/2 +- id: NA15 + title: + en: NA15 +- id: NA16 + title: + en: NA16 +- id: NA17 + title: + en: NA17 +- id: NA18 + title: + en: NA18 +- id: NA19 + title: + en: NA19 +- id: NA20 + title: + en: NA20 +- id: NA21 + title: + en: NA21 +- id: NA22 + title: + en: NA22 +- id: NA23 + title: + en: NA23 +- id: NA24 + title: + en: NA24 +- id: NA25 + title: + en: NA25 +- id: NA26 + title: + en: NA26 +- id: NA27 + title: + en: NA27 +- id: NA28 + title: + en: NA28 +- id: NA29 + title: + en: NA29 +- id: NA3 + title: + en: NA3 +- id: NA30 + title: + en: NA30 +- id: NA31 + title: + en: NA31 +- id: NA31/2 + title: + en: NA31/2 +- id: NA33 + title: + en: NA33 +- id: NA34 + title: + en: NA34 +- id: NA34/3 + title: + en: NA34/3 +- id: NA35 + title: + en: NA35 +- id: NA36 + title: + en: NA36 +- id: NA38 + title: + en: NA38 +- id: NA39 + title: + en: NA39 +- id: NA4 + title: + en: NA4 +- id: NA40 + title: + en: NA40 +- id: NA41 + title: + en: NA41 +- id: NA42 + title: + en: NA42 +- id: NA43 + title: + en: NA43 +- id: NA43/2 + title: + en: NA43/2 +- id: NA44 + title: + en: NA44 +- id: NA46 + title: + en: NA46 +- id: NA48 + title: + en: NA48 +- id: NA48/1 + title: + en: NA48/1 +- id: NA48/2 + title: + en: NA48/2 +- id: NA48/3 + title: + en: NA48/3 +- id: NA49 + title: + en: NA49 +- id: NA5 + title: + en: NA5 +- id: NA50 + title: + en: NA50 +- id: NA51 + title: + en: NA51 +- id: NA53 + title: + en: NA53 +- id: NA54 + title: + en: NA54 +- id: NA55 + title: + en: NA55 +- id: NA56 + title: + en: NA56 +- id: NA56-SPY + title: + en: NA56-SPY +- id: NA57 + title: + en: NA57 +- id: NA59 + title: + en: NA59 +- id: NA6 + title: + en: NA6 +- id: NA60 + title: + en: NA60 +- id: NA62 + title: + en: NA62 +- id: NA63 + title: + en: NA63 +- id: NA64 + title: + en: NA64 +- id: AMBER + title: + en: AMBER +- id: NA7 + title: + en: NA7 +- id: NA8 + title: + en: NA8 +- id: NA9 + title: + en: NA9 +- id: NAUSICAA + title: + en: NAUSICAA +- id: NAXXX + title: + en: NAXXX +- id: NESTOR RE9 + title: + en: NESTOR RE9 +- id: NEWMASS NA52 + title: + en: NEWMASS NA52 +- id: NEXT RE27 + title: + en: NEXT RE27 +- id: NGS + title: + en: NGS +- id: NICOLE + title: + en: NICOLE +- id: NMC NA37 + title: + en: NMC NA37 +- id: NOE + title: + en: NOE +- id: NOMAD WA96 + title: + en: NOMAD WA96 +- id: Not applicable + title: + en: Not applicable +- id: nTOF + title: + en: nTOF +- id: nTOF1 + title: + en: nTOF1 +- id: nTOF10 + title: + en: nTOF10 +- id: nTOF11 + title: + en: nTOF11 +- id: nTOF12 + title: + en: nTOF12 +- id: nTOF13 + title: + en: nTOF13 +- id: nTOF14 + title: + en: nTOF14 +- id: nTOF16 + title: + en: nTOF16 +- id: nTOF17 + title: + en: nTOF17 +- id: nTOF18 + title: + en: nTOF18 +- id: nTOF19 + title: + en: nTOF19 +- id: nTOF2 + title: + en: nTOF2 +- id: nTOF20 + title: + en: nTOF20 +- id: nTOF21 + title: + en: nTOF21 +- id: nTOF22 + title: + en: nTOF22 +- id: nTOF23 + title: + en: nTOF23 +- id: nTOF24 + title: + en: nTOF24 +- id: nTOF25 + title: + en: nTOF25 +- id: nTOF26 + title: + en: nTOF26 +- id: nTOF27 + title: + en: nTOF27 +- id: nTOF28 + title: + en: nTOF28 +- id: nTOF29 + title: + en: nTOF29 +- id: nTOF3 + title: + en: nTOF3 +- id: nTOF30 + title: + en: nTOF30 +- id: nTOF31 + title: + en: nTOF31 +- id: nTOF32 + title: + en: nTOF32 +- id: nTOF33 + title: + en: nTOF33 +- id: nTOF34 + title: + en: nTOF34 +- id: nTOF35 + title: + en: nTOF35 +- id: nTOF36 + title: + en: nTOF36 +- id: nTOF37 + title: + en: nTOF37 +- id: nTOF38 + title: + en: nTOF38 +- id: nTOF39 + title: + en: nTOF39 +- id: nTOF4 + title: + en: nTOF4 +- id: nTOF40 + title: + en: nTOF40 +- id: nTOF41 + title: + en: nTOF41 +- id: nTOF42 + title: + en: nTOF42 +- id: nTOF42 + title: + en: nTOF42 +- id: nTOF43 + title: + en: nTOF43 +- id: nTOF44 + title: + en: nTOF44 +- id: nTOF45 + title: + en: nTOF45 +- id: nTOF46 + title: + en: nTOF46 +- id: nTOF47 + title: + en: nTOF47 +- id: nTOF5 + title: + en: nTOF5 +- id: nTOF6 + title: + en: nTOF6 +- id: nTOF7 + title: + en: nTOF7 +- id: nTOF8 + title: + en: nTOF8 +- id: nTOF9 + title: + en: nTOF9 +- id: nTOFXXX + title: + en: nTOFXXX +- id: NUFACT + title: + en: NUFACT +- id: NXXX + title: + en: NXXX +- id: OMEGA + title: + en: OMEGA +- id: OPAL + title: + en: OPAL +- id: OPERA CNGS1 + title: + en: OPERA CNGS1 +- id: OSQAR + title: + en: OSQAR +- id: P10 + title: + en: P10 +- id: P11 + title: + en: P11 +- id: P12 + title: + en: P12 +- id: P13 + title: + en: P13 +- id: P14 + title: + en: P14 +- id: P15 + title: + en: P15 +- id: P17 + title: + en: P17 +- id: P18 + title: + en: P18 +- id: P19 + title: + en: P19 +- id: P20 + title: + en: P20 +- id: P21 + title: + en: P21 +- id: P326 + title: + en: P326 +- id: P349 + title: + en: P349 +- id: P6 + title: + en: P6 +- id: P7 + title: + en: P7 +- id: P8 + title: + en: P8 +- id: P9 + title: + en: P9 +- id: PAMELA RE2B + title: + en: PAMELA RE2B +- id: PANDA RE22 + title: + en: PANDA RE22 +- id: PARRNe1 + title: + en: PARRNe1 +- id: PHENIX + title: + en: PHENIX +- id: PLAFOND + title: + en: PLAFOND +- id: PLANCK RE24 + title: + en: PLANCK RE24 +- id: PS117 + title: + en: PS117 +- id: PS131 + title: + en: PS131 +- id: PS132 + title: + en: PS132 +- id: PS133 + title: + en: PS133 +- id: PS135 + title: + en: PS135 +- id: PS136 + title: + en: PS136 +- id: PS137 + title: + en: PS137 +- id: PS140 + title: + en: PS140 +- id: PS141 + title: + en: PS141 +- id: PS142 + title: + en: PS142 +- id: PS143 + title: + en: PS143 +- id: PS149 + title: + en: PS149 +- id: PS150 + title: + en: PS150 +- id: PS151 + title: + en: PS151 +- id: PS152 + title: + en: PS152 +- id: PS153 + title: + en: PS153 +- id: PS154 + title: + en: PS154 +- id: PS155 + title: + en: PS155 +- id: PS156 + title: + en: PS156 +- id: PS157 + title: + en: PS157 +- id: PS158 + title: + en: PS158 +- id: PS159 + title: + en: PS159 +- id: PS160 + title: + en: PS160 +- id: PS161 + title: + en: PS161 +- id: PS162 + title: + en: PS162 +- id: PS163 + title: + en: PS163 +- id: PS164 + title: + en: PS164 +- id: PS165 + title: + en: PS165 +- id: PS166 + title: + en: PS166 +- id: PS167 + title: + en: PS167 +- id: PS168 + title: + en: PS168 +- id: PS169 + title: + en: PS169 +- id: PS170 + title: + en: PS170 +- id: PS172 + title: + en: PS172 +- id: PS173 + title: + en: PS173 +- id: PS174 + title: + en: PS174 +- id: PS175 + title: + en: PS175 +- id: PS176 + title: + en: PS176 +- id: PS177 + title: + en: PS177 +- id: PS178 + title: + en: PS178 +- id: PS179 + title: + en: PS179 +- id: PS180 + title: + en: PS180 +- id: PS181 + title: + en: PS181 +- id: PS182 + title: + en: PS182 +- id: PS183 + title: + en: PS183 +- id: PS184 + title: + en: PS184 +- id: PS185 + title: + en: PS185 +- id: PS185/2 + title: + en: PS185/2 +- id: PS185/3 + title: + en: PS185/3 +- id: PS186 + title: + en: PS186 +- id: PS187 + title: + en: PS187 +- id: PS188 + title: + en: PS188 +- id: PS189 + title: + en: PS189 +- id: PS191 + title: + en: PS191 +- id: PS192 + title: + en: PS192 +- id: PS193 + title: + en: PS193 +- id: PS194 + title: + en: PS194 +- id: PS194/2 + title: + en: PS194/2 +- id: PS194/3 + title: + en: PS194/3 +- id: PS195 + title: + en: PS195 +- id: PS196 + title: + en: PS196 +- id: PS197 + title: + en: PS197 +- id: PS198 + title: + en: PS198 +- id: PS199 + title: + en: PS199 +- id: PS200 + title: + en: PS200 +- id: PS201 + title: + en: PS201 +- id: PS202 + title: + en: PS202 +- id: PS203 + title: + en: PS203 +- id: PS204 + title: + en: PS204 +- id: PS205 + title: + en: PS205 +- id: PS206 + title: + en: PS206 +- id: PS207 + title: + en: PS207 +- id: PS208 + title: + en: PS208 +- id: PS209 + title: + en: PS209 +- id: PS210 + title: + en: PS210 +- id: PS211 + title: + en: PS211 +- id: PS213 + title: + en: PS213 +- id: PS97 + title: + en: PS97 +- id: PSAIF + title: + en: PSAIF +- id: PSXXX + title: + en: PSXXX +- id: PUMA AD-9 + title: + en: PUMA AD-9 +- id: R105 + title: + en: R105 +- id: R107 + title: + en: R107 +- id: R108 + title: + en: R108 +- id: R109 + title: + en: R109 +- id: R110 + title: + en: R110 +- id: R207 + title: + en: R207 +- id: R208 + title: + en: R208 +- id: R209 + title: + en: R209 +- id: R210 + title: + en: R210 +- id: R211 + title: + en: R211 +- id: R301 + title: + en: R301 +- id: R401 + title: + en: R401 +- id: R406 + title: + en: R406 +- id: R407 + title: + en: R407 +- id: R409 + title: + en: R409 +- id: R410 + title: + en: R410 +- id: R411 + title: + en: R411 +- id: R413 + title: + en: R413 +- id: R414 + title: + en: R414 +- id: R415 + title: + en: R415 +- id: R416 + title: + en: R416 +- id: R417 + title: + en: R417 +- id: R418 + title: + en: R418 +- id: R419 + title: + en: R419 +- id: R420 + title: + en: R420 +- id: R421 + title: + en: R421 +- id: R422 + title: + en: R422 +- id: R501 + title: + en: R501 +- id: R605 + title: + en: R605 +- id: R606 + title: + en: R606 +- id: R607 + title: + en: R607 +- id: R608 + title: + en: R608 +- id: R702 + title: + en: R702 +- id: R703 + title: + en: R703 +- id: R704 + title: + en: R704 +- id: R805 + title: + en: R805 +- id: R806 + title: + en: R806 +- id: R807 + title: + en: R807 +- id: R808 + title: + en: R808 +- id: RD-1 + title: + en: RD-1 +- id: RD-10 + title: + en: RD-10 +- id: RD-11 + title: + en: RD-11 +- id: RD-12 + title: + en: RD-12 +- id: RD-13 + title: + en: RD-13 +- id: RD-14 + title: + en: RD-14 +- id: RD-15 + title: + en: RD-15 +- id: RD-16 + title: + en: RD-16 +- id: RD-17 + title: + en: RD-17 +- id: RD-18 + title: + en: RD-18 +- id: RD-19 + title: + en: RD-19 +- id: RD-2 + title: + en: RD-2 +- id: RD-20 + title: + en: RD-20 +- id: RD21 + title: + en: RD21 +- id: RD22 + title: + en: RD22 +- id: RD23 + title: + en: RD23 +- id: RD24 + title: + en: RD24 +- id: RD25 + title: + en: RD25 +- id: RD26 + title: + en: RD26 +- id: RD27 + title: + en: RD27 +- id: RD28 + title: + en: RD28 +- id: RD29 + title: + en: RD29 +- id: RD-3 + title: + en: RD-3 +- id: RD30 + title: + en: RD30 +- id: RD31 + title: + en: RD31 +- id: RD32 + title: + en: RD32 +- id: RD33 + title: + en: RD33 +- id: RD34 + title: + en: RD34 +- id: RD35 + title: + en: RD35 +- id: RD36 + title: + en: RD36 +- id: RD37 + title: + en: RD37 +- id: RD38 + title: + en: RD38 +- id: RD39 + title: + en: RD39 +- id: RD-4 + title: + en: RD-4 +- id: RD40 + title: + en: RD40 +- id: RD41 + title: + en: RD41 +- id: RD42 + title: + en: RD42 +- id: RD43 + title: + en: RD43 +- id: RD44 + title: + en: RD44 +- id: RD45 + title: + en: RD45 +- id: RD46 + title: + en: RD46 +- id: RD47 + title: + en: RD47 +- id: RD48 + title: + en: RD48 +- id: RD49 + title: + en: RD49 +- id: RD-5 + title: + en: RD-5 +- id: RD50 + title: + en: RD50 +- id: RD52 + title: + en: RD52 +- id: RD53 + title: + en: RD53 +- id: RD-6 + title: + en: RD-6 +- id: RD-7 + title: + en: RD-7 +- id: RD-8 + title: + en: RD-8 +- id: RD-9 + title: + en: RD-9 +- id: RE + title: + en: RE +- id: RE25 + title: + en: RE25 +- id: RIST + title: + en: RIST +- id: RXXX + title: + en: RXXX +- id: S100 + title: + en: S100 +- id: S101 + title: + en: S101 +- id: S102 + title: + en: S102 +- id: S103 + title: + en: S103 +- id: S104 + title: + en: S104 +- id: S105 + title: + en: S105 +- id: S106 + title: + en: S106 +- id: S107 + title: + en: S107 +- id: S108 + title: + en: S108 +- id: S109 + title: + en: S109 +- id: S110 + title: + en: S110 +- id: S111 + title: + en: S111 +- id: S112 + title: + en: S112 +- id: S113 + title: + en: S113 +- id: S114 + title: + en: S114 +- id: S115 + title: + en: S115 +- id: S116 + title: + en: S116 +- id: S117 + title: + en: S117 +- id: S118 + title: + en: S118 +- id: S119 + title: + en: S119 +- id: S120 + title: + en: S120 +- id: S121 + title: + en: S121 +- id: S122 + title: + en: S122 +- id: S123 + title: + en: S123 +- id: S124 + title: + en: S124 +- id: S125 + title: + en: S125 +- id: S126 + title: + en: S126 +- id: S127 + title: + en: S127 +- id: S128 + title: + en: S128 +- id: S129 + title: + en: S129 +- id: S130 + title: + en: S130 +- id: S131 + title: + en: S131 +- id: S132 + title: + en: S132 +- id: S133 + title: + en: S133 +- id: S134 + title: + en: S134 +- id: S135 + title: + en: S135 +- id: S136 + title: + en: S136 +- id: S137 + title: + en: S137 +- id: S138 + title: + en: S138 +- id: S139 + title: + en: S139 +- id: S140 + title: + en: S140 +- id: S148 + title: + en: S148 +- id: S32 + title: + en: S32 +- id: S35 + title: + en: S35 +- id: S36 + title: + en: S36 +- id: S37 + title: + en: S37 +- id: S38 + title: + en: S38 +- id: S38a + title: + en: S38a +- id: S39-and-S39a + title: + en: S39-and-S39a +- id: S40 + title: + en: S40 +- id: S41 + title: + en: S41 +- id: S42 + title: + en: S42 +- id: S43 + title: + en: S43 +- id: S44 + title: + en: S44 +- id: S44a + title: + en: S44a +- id: S45 + title: + en: S45 +- id: S46 + title: + en: S46 +- id: S47 + title: + en: S47 +- id: S48 + title: + en: S48 +- id: S49 + title: + en: S49 +- id: S50 + title: + en: S50 +- id: S51 + title: + en: S51 +- id: S52 + title: + en: S52 +- id: S53 + title: + en: S53 +- id: S54 + title: + en: S54 +- id: S55 + title: + en: S55 +- id: S56 + title: + en: S56 +- id: S57 + title: + en: S57 +- id: S58 + title: + en: S58 +- id: S59 + title: + en: S59 +- id: S60 + title: + en: S60 +- id: S61 + title: + en: S61 +- id: S62 + title: + en: S62 +- id: S63 + title: + en: S63 +- id: S64 + title: + en: S64 +- id: S65 + title: + en: S65 +- id: S66 + title: + en: S66 +- id: S67 + title: + en: S67 +- id: S68 + title: + en: S68 +- id: S69 + title: + en: S69 +- id: S70 + title: + en: S70 +- id: S71 + title: + en: S71 +- id: S72 + title: + en: S72 +- id: S73 + title: + en: S73 +- id: S74 + title: + en: S74 +- id: S75 + title: + en: S75 +- id: S76 + title: + en: S76 +- id: S77 + title: + en: S77 +- id: S78 + title: + en: S78 +- id: S79 + title: + en: S79 +- id: S80 + title: + en: S80 +- id: S81 + title: + en: S81 +- id: S82 + title: + en: S82 +- id: S83 + title: + en: S83 +- id: S84 + title: + en: S84 +- id: S85 + title: + en: S85 +- id: S86 + title: + en: S86 +- id: S87 + title: + en: S87 +- id: S88 + title: + en: S88 +- id: S89 + title: + en: S89 +- id: S90 + title: + en: S90 +- id: S91 + title: + en: S91 +- id: S92 + title: + en: S92 +- id: S93 + title: + en: S93 +- id: S94 + title: + en: S94 +- id: S95 + title: + en: S95 +- id: S96 + title: + en: S96 +- id: S98 + title: + en: S98 +- id: S99 + title: + en: S99 +- id: SATAN + title: + en: SATAN +- id: SC + title: + en: SC +- id: SC19a + title: + en: SC19a +- id: SC19b + title: + en: SC19b +- id: SC2 + title: + en: SC2 +- id: SC21 + title: + en: SC21 +- id: SC21a + title: + en: SC21a +- id: SC26 + title: + en: SC26 +- id: SC27 + title: + en: SC27 +- id: SC29 + title: + en: SC29 +- id: SC30 + title: + en: SC30 +- id: SC31 + title: + en: SC31 +- id: SC32 + title: + en: SC32 +- id: SC33 + title: + en: SC33 +- id: SC34 + title: + en: SC34 +- id: SC35 + title: + en: SC35 +- id: SC36 + title: + en: SC36 +- id: SC37 + title: + en: SC37 +- id: SC38 + title: + en: SC38 +- id: SC39 + title: + en: SC39 +- id: SC40 + title: + en: SC40 +- id: SC41 + title: + en: SC41 +- id: SC50 + title: + en: SC50 +- id: SC52 + title: + en: SC52 +- id: SC53 + title: + en: SC53 +- id: SC55 + title: + en: SC55 +- id: SC57 + title: + en: SC57 +- id: SC58 + title: + en: SC58 +- id: SC59 + title: + en: SC59 +- id: SC60 + title: + en: SC60 +- id: SC61 + title: + en: SC61 +- id: SC62 + title: + en: SC62 +- id: SC63 + title: + en: SC63 +- id: SC64 + title: + en: SC64 +- id: SC65 + title: + en: SC65 +- id: SC66 + title: + en: SC66 +- id: SC67 + title: + en: SC67 +- id: SC68 + title: + en: SC68 +- id: SC69 + title: + en: SC69 +- id: SC70 + title: + en: SC70 +- id: SC71 + title: + en: SC71 +- id: SC72 + title: + en: SC72 +- id: SC73 + title: + en: SC73 +- id: SC74 + title: + en: SC74 +- id: SC75 + title: + en: SC75 +- id: SC76 + title: + en: SC76 +- id: SC77 + title: + en: SC77 +- id: SC78 + title: + en: SC78 +- id: SC79 + title: + en: SC79 +- id: SC80 + title: + en: SC80 +- id: SC81 + title: + en: SC81 +- id: SC82 + title: + en: SC82 +- id: SC83 + title: + en: SC83 +- id: SC84 + title: + en: SC84 +- id: SC85 + title: + en: SC85 +- id: SC86 + title: + en: SC86 +- id: SC87 + title: + en: SC87 +- id: SC88 + title: + en: SC88 +- id: SC89 + title: + en: SC89 +- id: SC90 + title: + en: SC90 +- id: SC91 + title: + en: SC91 +- id: SC92 + title: + en: SC92 +- id: SC93 + title: + en: SC93 +- id: SC94 + title: + en: SC94 +- id: SC95 + title: + en: SC95 +- id: SC96 + title: + en: SC96 +- id: SC97 + title: + en: SC97 +- id: SC98 + title: + en: SC98 +- id: SCXXX + title: + en: SCXXX +- id: SFM + title: + en: SFM +- id: SHINE NA61 + title: + en: SHINE NA61 +- id: SHiP + title: + en: SHiP +- id: SMC NA47 + title: + en: SMC NA47 +- id: SND@LHC + title: + en: SND@LHC +- id: STAR + title: + en: STAR +- id: SXXX + title: + en: SXXX +- id: T10 + title: + en: T10 +- id: T100 + title: + en: T100 +- id: T101 + title: + en: T101 +- id: T102 + title: + en: T102 +- id: T103 + title: + en: T103 +- id: T104 + title: + en: T104 +- id: T106 + title: + en: T106 +- id: T107 + title: + en: T107 +- id: T108 + title: + en: T108 +- id: T109 + title: + en: T109 +- id: T11 + title: + en: T11 +- id: T110 + title: + en: T110 +- id: T119 + title: + en: T119 +- id: T120 + title: + en: T120 +- id: T150 + title: + en: T150 +- id: T16 + title: + en: T16 +- id: T180 + title: + en: T180 +- id: T181 + title: + en: T181 +- id: T185 + title: + en: T185 +- id: T201 + title: + en: T201 +- id: T205 + title: + en: T205 +- id: T209 + title: + en: T209 +- id: T211 + title: + en: T211 +- id: T224 + title: + en: T224 +- id: T227 + title: + en: T227 +- id: T228 + title: + en: T228 +- id: T230 + title: + en: T230 +- id: T236 + title: + en: T236 +- id: T237 + title: + en: T237 +- id: T239 + title: + en: T239 +- id: T243 + title: + en: T243 +- id: T248 + title: + en: T248 +- id: T250 + title: + en: T250 +- id: T2K RE13 + title: + en: T2K RE13 +- id: T3B + title: + en: T3B +- id: T37 + title: + en: T37 +- id: T40 + title: + en: T40 +- id: T52 + title: + en: T52 +- id: T7 + title: + en: T7 +- id: T71 + title: + en: T71 +- id: T74 + title: + en: T74 +- id: T7N + title: + en: T7N +- id: T7S + title: + en: T7S +- id: T86 + title: + en: T86 +- id: T87 + title: + en: T87 +- id: T88 + title: + en: T88 +- id: T9 + title: + en: T9 +- id: T94 + title: + en: T94 +- id: T95 + title: + en: T95 +- id: T96 + title: + en: T96 +- id: T97 + title: + en: T97 +- id: T98 + title: + en: T98 +- id: T99 + title: + en: T99 +- id: TENOR + title: + en: TENOR +- id: THEMIS + title: + en: THEMIS +- id: THEMISTOCLE + title: + en: THEMISTOCLE +- id: TOSCA + title: + en: TOSCA +- id: TOTEM + title: + en: TOTEM +- id: TXXX + title: + en: TXXX +- id: UA1 + title: + en: UA1 +- id: UA2 + title: + en: UA2 +- id: UA3 + title: + en: UA3 +- id: UA4 + title: + en: UA4 +- id: UA4/2 + title: + en: UA4/2 +- id: UA5 + title: + en: UA5 +- id: UA5/2 + title: + en: UA5/2 +- id: UA6 + title: + en: UA6 +- id: UA7 + title: + en: UA7 +- id: UA8 + title: + en: UA8 +- id: UA9 + title: + en: UA9 +- id: VITO + title: + en: VITO +- id: WA1 + title: + en: WA1 +- id: WA10 + title: + en: WA10 +- id: WA100 + title: + en: WA100 +- id: WA101 + title: + en: WA101 +- id: WA102 + title: + en: WA102 +- id: WA103 + title: + en: WA103 +- id: WA104 + title: + en: WA104 +- id: WA105 + title: + en: WA105 +- id: WA11 + title: + en: WA11 +- id: WA12 + title: + en: WA12 +- id: WA1/2 + title: + en: WA1/2 +- id: WA13 + title: + en: WA13 +- id: WA14 + title: + en: WA14 +- id: WA15 + title: + en: WA15 +- id: WA16 + title: + en: WA16 +- id: WA17 + title: + en: WA17 +- id: WA18 + title: + en: WA18 +- id: WA18/2 + title: + en: WA18/2 +- id: WA19 + title: + en: WA19 +- id: WA2 + title: + en: WA2 +- id: WA20 + title: + en: WA20 +- id: WA21 + title: + en: WA21 +- id: WA22 + title: + en: WA22 +- id: WA23 + title: + en: WA23 +- id: WA24 + title: + en: WA24 +- id: WA25 + title: + en: WA25 +- id: WA26 + title: + en: WA26 +- id: WA27 + title: + en: WA27 +- id: WA28 + title: + en: WA28 +- id: WA29 + title: + en: WA29 +- id: WA3 + title: + en: WA3 +- id: WA30 + title: + en: WA30 +- id: WA31 + title: + en: WA31 +- id: WA32 + title: + en: WA32 +- id: WA33 + title: + en: WA33 +- id: WA34 + title: + en: WA34 +- id: WA35 + title: + en: WA35 +- id: WA36 + title: + en: WA36 +- id: WA37 + title: + en: WA37 +- id: WA38 + title: + en: WA38 +- id: WA39 + title: + en: WA39 +- id: WA4 + title: + en: WA4 +- id: WA40 + title: + en: WA40 +- id: WA41 + title: + en: WA41 +- id: WA42 + title: + en: WA42 +- id: WA43 + title: + en: WA43 +- id: WA44 + title: + en: WA44 +- id: WA45 + title: + en: WA45 +- id: WA46 + title: + en: WA46 +- id: WA47 + title: + en: WA47 +- id: WA48 + title: + en: WA48 +- id: WA49 + title: + en: WA49 +- id: WA5 + title: + en: WA5 +- id: WA50 + title: + en: WA50 +- id: WA51 + title: + en: WA51 +- id: WA52 + title: + en: WA52 +- id: WA53 + title: + en: WA53 +- id: WA54 + title: + en: WA54 +- id: WA55 + title: + en: WA55 +- id: WA56 + title: + en: WA56 +- id: WA57 + title: + en: WA57 +- id: WA58 + title: + en: WA58 +- id: WA59 + title: + en: WA59 +- id: WA6 + title: + en: WA6 +- id: WA60 + title: + en: WA60 +- id: WA61 + title: + en: WA61 +- id: WA62 + title: + en: WA62 +- id: WA63 + title: + en: WA63 +- id: WA64 + title: + en: WA64 +- id: WA65 + title: + en: WA65 +- id: WA66 + title: + en: WA66 +- id: WA67 + title: + en: WA67 +- id: WA68 + title: + en: WA68 +- id: WA69 + title: + en: WA69 +- id: WA7 + title: + en: WA7 +- id: WA70 + title: + en: WA70 +- id: WA71 + title: + en: WA71 +- id: WA72 + title: + en: WA72 +- id: WA73 + title: + en: WA73 +- id: WA74 + title: + en: WA74 +- id: WA75 + title: + en: WA75 +- id: WA76 + title: + en: WA76 +- id: WA77 + title: + en: WA77 +- id: WA78 + title: + en: WA78 +- id: WA8 + title: + en: WA8 +- id: WA80 + title: + en: WA80 +- id: WA81 + title: + en: WA81 +- id: WA82 + title: + en: WA82 +- id: WA83 + title: + en: WA83 +- id: WA84 + title: + en: WA84 +- id: WA85 + title: + en: WA85 +- id: WA86 + title: + en: WA86 +- id: WA87 + title: + en: WA87 +- id: WA88 + title: + en: WA88 +- id: WA89 + title: + en: WA89 +- id: WA9 + title: + en: WA9 +- id: WA90 + title: + en: WA90 +- id: WA91 + title: + en: WA91 +- id: WA93 + title: + en: WA93 +- id: WA94 + title: + en: WA94 +- id: WA97 + title: + en: WA97 +- id: WA98 + title: + en: WA98 +- id: WA99 + title: + en: WA99 +- id: WA99/2 + title: + en: WA99/2 +- id: WARP RE15 + title: + en: WARP RE15 +- id: WAXXX + title: + en: WAXXX +- id: ZEUS + title: + en: ZEUS diff --git a/assets/less/cds-rdm/elements/container.overrides b/assets/less/cds-rdm/elements/container.overrides index 555b6ff..e9a1822 100644 --- a/assets/less/cds-rdm/elements/container.overrides +++ b/assets/less/cds-rdm/elements/container.overrides @@ -11,8 +11,8 @@ .frontpage-header { height: calc((@homePageHeroHeight / 2)); - align-items: self-end; - align-content: end; + align-items: center; + align-content: center; @media all and (max-width: @computerBreakpoint) { position: relative; top: 5em; diff --git a/docker-services.yml b/docker-services.yml index 6d8e99c..be45c81 100644 --- a/docker-services.yml +++ b/docker-services.yml @@ -63,7 +63,7 @@ services: environment: # settings only for development. DO NOT use in production! - bootstrap.memory_lock=true - - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m" + - "OPENSEARCH_JAVA_OPTS=-Xms1024m -Xmx1024m" - "DISABLE_INSTALL_DEMO_CONFIG=true" - "DISABLE_SECURITY_PLUGIN=true" - "discovery.type=single-node" diff --git a/invenio.cfg b/invenio.cfg index 19d4174..f8e19e5 100644 --- a/invenio.cfg +++ b/invenio.cfg @@ -11,15 +11,22 @@ import os from datetime import datetime, timedelta from invenio_i18n import lazy_gettext as _ -from cds_rdm.permissions import CDSCommunitiesPermissionPolicy, CDSRDMRecordPermissionPolicy + +from cds_rdm import schemes +from cds_rdm.permissions import CDSCommunitiesPermissionPolicy, \ + CDSRDMRecordPermissionPolicy from cds_rdm.files import storage_factory from invenio_app_rdm.config import CELERY_BEAT_SCHEDULE as APP_RDM_CELERY_BEAT_SCHEDULE from celery.schedules import crontab from invenio_vocabularies.services.custom_fields import VocabularyCF +from invenio_records_resources.services.custom_fields import KeywordCF +from invenio_rdm_records.config import RDM_RECORDS_IDENTIFIERS_SCHEMES, always_valid + def _(x): # needed to avoid start time failure with lazy strings return x + # Flask # ===== # See https://flask.palletsprojects.com/en/1.1.x/config/ @@ -33,7 +40,7 @@ SEND_FILE_MAX_AGE_DEFAULT = 300 # SECURITY WARNING: keep the secret key used in production secret! # Do not commit it to a source code repository. # TODO: Set -SECRET_KEY="CHANGE_ME" +SECRET_KEY = "CHANGE_ME" # Since HAProxy and Nginx route all requests no matter the host header # provided, the allowed hosts variable is set to localhost. In production it @@ -41,14 +48,12 @@ SECRET_KEY="CHANGE_ME" # route correct hosts to the application. APP_ALLOWED_HOSTS = ['0.0.0.0', 'localhost', '127.0.0.1', 'localhost.cern.ch'] - # Flask-SQLAlchemy # ================ # See https://flask-sqlalchemy.palletsprojects.com/en/2.x/config/ # TODO: Set -SQLALCHEMY_DATABASE_URI="postgresql+psycopg2://cds-rdm:cds-rdm@localhost/cds-rdm" - +SQLALCHEMY_DATABASE_URI = "postgresql+psycopg2://cds-rdm:cds-rdm@localhost/cds-rdm" # Invenio-App # =========== @@ -58,9 +63,9 @@ APP_DEFAULT_SECURE_HEADERS = { 'content_security_policy': { 'default-src': [ "'self'", - 'data:', # for fonts + 'data:', # for fonts "'unsafe-inline'", # for inline scripts and styles - "blob:", # for pdf preview + "blob:", # for pdf preview "cdnjs.cloudflare.com", # Add your own policies here (e.g. analytics) ], @@ -80,7 +85,6 @@ APP_DEFAULT_SECURE_HEADERS = { 'strict_transport_security_preload': False, } - # Flask-Babel # =========== # See https://python-babel.github.io/flask-babel/#configuration @@ -90,7 +94,6 @@ BABEL_DEFAULT_LOCALE = 'en' # Default time zone BABEL_DEFAULT_TIMEZONE = 'Europe/Zurich' - # Invenio-I18N # ============ # See https://invenio-i18n.readthedocs.io/en/latest/configuration.html @@ -101,7 +104,6 @@ I18N_LANGUAGES = [ # ('tr', _('Turkish')), ] - # Invenio-Theme # ============= # See https://invenio-theme.readthedocs.io/en/latest/configuration.html @@ -114,15 +116,14 @@ THEME_SHOW_FRONTPAGE_INTRO_SECTION = False THEME_SITENAME = 'CDS' # Templates -#THEME_FRONTPAGE_TEMPLATE = 'cds_rdm/frontpage.html' -#THEME_FOOTER_TEMPLATE = 'cds_rdm/footer.html' -#THEME_HEADER_TEMPLATE = 'cds_rdm/header.html' +# THEME_FRONTPAGE_TEMPLATE = 'cds_rdm/frontpage.html' +# THEME_FOOTER_TEMPLATE = 'cds_rdm/footer.html' +# THEME_HEADER_TEMPLATE = 'cds_rdm/header.html' # TEMPORAL FIX - to be removed once the js bundle loading issue on the macros # is fixed. BASE_TEMPLATE = "cds_rdm/page.html" - # Invenio-App-RDM # =============== # See https://invenio-app-rdm.readthedocs.io/en/latest/configuration.html @@ -164,7 +165,7 @@ APP_RDM_DEPOSIT_FORM_DEFAULTS = { APP_RDM_RECORD_LANDING_PAGE_TEMPLATE = "cds_rdm/records/detail.html" # See https://github.com/inveniosoftware/invenio-app-rdm/blob/master/invenio_app_rdm/config.py -APP_RDM_DEPOSIT_FORM_AUTOCOMPLETE_NAMES = 'search' # "search_only" or "off" +APP_RDM_DEPOSIT_FORM_AUTOCOMPLETE_NAMES = 'search' # "search_only" or "off" # Invenio-RDM-Records # =================== @@ -183,15 +184,15 @@ DATACITE_DATACENTER_SYMBOL = "" # Invenio-Accounts # ================ # See https://github.com/inveniosoftware/invenio-accounts/blob/master/invenio_accounts/config.py -ACCOUNTS_DEFAULT_USERS_VERIFIED = True # ensure that users are verified by default -ACCOUNTS_DEFAULT_USER_VISIBILITY = "public" # enables users to be searchable for invites +ACCOUNTS_DEFAULT_USERS_VERIFIED = True # ensure that users are verified by default +ACCOUNTS_DEFAULT_USER_VISIBILITY = "public" # enables users to be searchable for invites ACCOUNTS_LOCAL_LOGIN_ENABLED = True # enable local login PERMANENT_SESSION_LIFETIME = timedelta(days=10) SECURITY_REGISTERABLE = True # local login: allow users to register SECURITY_RECOVERABLE = False # local login: allow users to reset the password SECURITY_CHANGEABLE = False # local login: allow users to change psw SECURITY_CONFIRMABLE = False # local login: users can confirm e-mail address -SECURITY_LOGIN_WITHOUT_CONFIRMATION = True # require users to confirm email before being able to login +SECURITY_LOGIN_WITHOUT_CONFIRMATION = True # require users to confirm email before being able to login # Emails sending # Disable sending all account-related emails because of CERN SSO usage @@ -214,7 +215,8 @@ from cds_rdm.oidc import ( ) from urllib.parse import quote -CERN_KEYCLOAK_BASE_URL = os.environ.get("INVENIO_CERN_KEYCLOAK_BASE_URL", "https://keycloak-qa.cern.ch/") +CERN_KEYCLOAK_BASE_URL = os.environ.get("INVENIO_CERN_KEYCLOAK_BASE_URL", + "https://keycloak-qa.cern.ch/") _keycloak_helper = KeycloakSettingsHelper( title="CERN", @@ -266,6 +268,7 @@ CERN_APP_CREDENTIALS = { } from invenio_oauthclient.views.client import auto_redirect_login + ACCOUNTS_LOGIN_VIEW_FUNCTION = auto_redirect_login # autoredirect to external login if enabled OAUTHCLIENT_AUTO_REDIRECT_TO_EXTERNAL_LOGIN = True # autoredirect to external login @@ -312,7 +315,6 @@ CERN_AUTHORIZATION_SERVICE_API_GROUP = "Group" CDS_EMAILS_ALLOW_CREATE_COMMUNITIES = [] CDS_GROUPS_ALLOW_CREATE_COMMUNITIES = [] - # Invenio-Files-REST # ================== XROOTD_ENABLED = False @@ -350,59 +352,96 @@ RDM_NAMESPACES = { "cern": "https://greybook.cern.ch/", } -# RDM_CUSTOM_FIELDS = [ -# VocabularyCF( -# name="cern:experiment", -# vocabulary_id="experiments", -# dump_options=True, -# multiple=False, -# ), -# VocabularyCF( -# name="cern:department", -# vocabulary_id="departments", -# dump_options=True, -# multiple=False, -# ), -# ] +RDM_CUSTOM_FIELDS = [ + VocabularyCF( + name="cern:experiments", + vocabulary_id="experiments", + dump_options=True, + multiple=True, + ), + VocabularyCF( + name="cern:departments", + vocabulary_id="departments", + dump_options=True, + multiple=True, + ), + VocabularyCF( + name="cern:accelerators", + vocabulary_id="accelerators", + dump_options=True, + multiple=True, + ), + KeywordCF(name="cern:projects", multiple=True), + KeywordCF(name="cern:facilities", multiple=True), + KeywordCF(name="cern:studies", multiple=True), +] THEME_MATHJAX_CDN = ( "//cdnjs.cloudflare.com/ajax/libs/mathjax/3.2.2/es5/tex-mml-chtml.js" "?config=TeX-AMS-MML_HTMLorMML" ) -# RDM_CUSTOM_FIELDS_UI = [ -# { -# "section": "CERN", -# "displaySection": False, -# "fields": [ -# dict( -# field="cern:experiment", -# ui_widget="AutocompleteDropdown", -# display_url="https://greybook.cern.ch/experiment/list", -# props=dict( -# label="Experiment", -# icon="lab", -# placeholder="Select an experiment", -# description="You should fill this field with one of the experiments e.g ATLAS, CMS etc.", -# search=True, -# multiple=False, -# clearable=True, -# autocompleteFrom="/api/vocabularies/experiments", -# ) -# ), -# dict( -# field="cern:department", -# ui_widget="Dropdown", -# display_url="https://scientific-info.cern/archives/history_CERN/internal_organisation/20s", -# props=dict( -# label="Department", -# icon="building", -# description="You should fill this field with one of the departments e.g BE, EN, HR etc.", -# search=False, -# multiple=False, -# clearable=True, -# ) -# ), -# ] -# } -# ] \ No newline at end of file +RDM_CUSTOM_FIELDS_UI = [ + { + "section": "CERN", + "displaySection": False, + "fields": [ + dict( + field="cern:experiments", + ui_widget="AutocompleteDropdown", + display_url="https://greybook.cern.ch/experiment/list", + props=dict( + label="Experiment", + icon="lab", + placeholder="Select an experiment", + description="You should fill this field with one of the experiments e.g ATLAS, CMS etc.", + search=True, + multiple=True, + clearable=True, + autocompleteFrom="/api/vocabularies/experiments", + ) + ), + dict( + field="cern:departments", + ui_widget="Dropdown", + display_url="https://scientific-info.cern/archives/history_CERN/internal_organisation/20s", + props=dict( + label="Department", + icon="building", + description="You should fill this field with one of the departments e.g BE, EN, HR etc.", + search=False, + multiple=True, + clearable=True, + autocompleteFrom="/api/vocabularies/departments", + ) + ), + dict( + field="cern:accelerators", + ui_widget="Dropdown", + display_url="https://scientific-info.cern/archives/history_CERN/internal_organisation/20s", + props=dict( + label="Accelerator", + icon="bullseye", + description="You should fill this field with one of the recognised accelerators", + search=False, + multiple=True, + clearable=True, + autocompleteFrom="/api/vocabularies/accelerators", + ) + ), + ] + } +] + +JOBS_ADMINISTRATION_ENABLED = True + +RDM_RECORDS_IDENTIFIERS_SCHEMES = {**RDM_RECORDS_IDENTIFIERS_SCHEMES, + **{"cds_ref": {"label": _("CDS Reference"), + "validator": always_valid, + "datacite": "CDS"}, + "aleph": {"label": _("Aleph number"), + "validator": schemes.is_aleph, + "datacite": "ALEPH"}, + "inspire": {"label": _("Inspire"), + "validator": schemes.is_inspire, + "datacite": "INSPIRE"}}} diff --git a/site/cds_rdm/schemes.py b/site/cds_rdm/schemes.py new file mode 100644 index 0000000..0f0fd87 --- /dev/null +++ b/site/cds_rdm/schemes.py @@ -0,0 +1,57 @@ +import re + + +def cds_reference_number(): + """Define validator for `custom_scheme`.""" + return { + "validator": lambda value: True, + "normalizer": lambda value: value, + "filter": ["cds_ref"], + "url_generator": None, + } + + + +aleph_regexp = re.compile(r"\d+CER$", flags=re.I) + + +def is_aleph(val): + """Test if argument is a PubMed ID. + + Warning: PMID are just integers, with no structure, so this function will + say any integer is a PubMed ID + """ + return aleph_regexp.match(val) + + +def aleph(): + """Define validator for `custom_scheme`.""" + return { + "validator": is_aleph, + "normalizer": lambda value: value, + "filter": ["aleph"], + "url_generator": None, + } + + +inspire_regexp = re.compile(r"\d+$", flags=re.I) + + +def is_inspire(val): + """Test if argument is a PubMed ID. + + Warning: PMID are just integers, with no structure, so this function will + say any integer is a PubMed ID + """ + return inspire_regexp.match(val) + + + +def inspire(): + """Define validator for `custom_scheme`.""" + return { + "validator": is_inspire, + "normalizer": lambda value: value, + "filter": ["inspire"], + "url_generator": None, + } \ No newline at end of file diff --git a/site/setup.cfg b/site/setup.cfg index c6b3ba4..a283e0b 100644 --- a/site/setup.cfg +++ b/site/setup.cfg @@ -32,7 +32,10 @@ invenio_celery.tasks = cds_rdm = cds_rdm.tasks invenio_pidstore.minters = legacy = cds_rdm.minters:legacy_recid_minter - +idutils.custom_schemes = + cds_ref = cds_rdm.schemes:cds_reference_number + aleph = cds_rdm.schemes:aleph + inspire = cds_rdm.schemes:inspire [pydocstyle] add_ignore = D401,D403