@tricoteuses/senat 3.1.22 → 3.1.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +32 -32
- package/README.md +326 -326
- package/lib/src/other_types/collaborateurs.d.ts +5 -0
- package/lib/src/parsers/collaborateurs.d.ts +44 -0
- package/lib/src/parsers/collaborateurs.js +157 -0
- package/lib/src/scripts/retrieve_collaborateurs.js +166 -0
- package/lib/src/scripts/retrieve_cr_seance.js +34 -25
- package/lib/src/scripts/retrieve_videos.js +13 -8
- package/lib/src/scripts/shared/incremental_import_sql.js +866 -859
- package/lib/src/scripts/shared/schema_version.js +84 -84
- package/lib/src/scripts/shared/staging_metadata_sql.js +214 -214
- package/lib/src/scripts/validate_prefixed_tables.js +12 -12
- package/lib/src/server/ameli.js +14 -13
- package/lib/src/server/conversion_textes.js +106 -106
- package/lib/src/server/debats.js +10 -10
- package/lib/src/server/documents.js +22 -22
- package/lib/src/server/dosleg.js +33 -33
- package/lib/src/server/questions.js +10 -10
- package/lib/src/server/scrutins.js +3 -3
- package/lib/src/server/sens.js +19 -19
- package/lib/src/utils/reunion_odj_building.js +0 -4
- package/lib/src/videos/match.js +7 -5
- package/lib/src/videos/pipeline.js +26 -19
- package/lib/tests/collaborateurs.test.js +115 -0
- package/lib/tests/incrementalImportSql.test.js +4 -1
- package/package.json +119 -119
- package/lib/add-js-extensions-v2.js +0 -23
- package/lib/add-js-extensions.js +0 -17
- package/lib/aggregates.d.ts +0 -52
- package/lib/aggregates.js +0 -930
- package/lib/aggregates.mjs +0 -713
- package/lib/aggregates.ts +0 -833
- package/lib/config.d.ts +0 -10
- package/lib/config.js +0 -16
- package/lib/config.mjs +0 -16
- package/lib/config.ts +0 -26
- package/lib/databases.d.ts +0 -2
- package/lib/databases.js +0 -26
- package/lib/databases.mjs +0 -57
- package/lib/databases.ts +0 -71
- package/lib/datasets.d.ts +0 -34
- package/lib/datasets.js +0 -233
- package/lib/datasets.mjs +0 -78
- package/lib/datasets.ts +0 -118
- package/lib/fields.d.ts +0 -10
- package/lib/fields.js +0 -68
- package/lib/fields.mjs +0 -22
- package/lib/fields.ts +0 -29
- package/lib/git.d.ts +0 -26
- package/lib/git.js +0 -167
- package/lib/index.d.ts +0 -13
- package/lib/index.js +0 -1
- package/lib/index.mjs +0 -7
- package/lib/index.ts +0 -64
- package/lib/inserters.d.ts +0 -98
- package/lib/inserters.js +0 -500
- package/lib/inserters.mjs +0 -360
- package/lib/inserters.ts +0 -521
- package/lib/legislatures.json +0 -38
- package/lib/loaders.d.ts +0 -58
- package/lib/loaders.js +0 -286
- package/lib/loaders.mjs +0 -158
- package/lib/loaders.ts +0 -271
- package/lib/model/agenda.d.ts +0 -6
- package/lib/model/agenda.js +0 -148
- package/lib/model/ameli.d.ts +0 -51
- package/lib/model/ameli.js +0 -149
- package/lib/model/ameli.mjs +0 -84
- package/lib/model/ameli.ts +0 -100
- package/lib/model/commission.d.ts +0 -18
- package/lib/model/commission.js +0 -269
- package/lib/model/debats.d.ts +0 -67
- package/lib/model/debats.js +0 -95
- package/lib/model/debats.mjs +0 -43
- package/lib/model/debats.ts +0 -68
- package/lib/model/documents.d.ts +0 -12
- package/lib/model/documents.js +0 -151
- package/lib/model/dosleg.d.ts +0 -7
- package/lib/model/dosleg.js +0 -326
- package/lib/model/dosleg.mjs +0 -196
- package/lib/model/dosleg.ts +0 -240
- package/lib/model/index.d.ts +0 -7
- package/lib/model/index.js +0 -7
- package/lib/model/index.mjs +0 -5
- package/lib/model/index.ts +0 -15
- package/lib/model/questions.d.ts +0 -45
- package/lib/model/questions.js +0 -89
- package/lib/model/questions.mjs +0 -71
- package/lib/model/questions.ts +0 -93
- package/lib/model/scrutins.d.ts +0 -13
- package/lib/model/scrutins.js +0 -114
- package/lib/model/seance.d.ts +0 -3
- package/lib/model/seance.js +0 -267
- package/lib/model/sens.d.ts +0 -146
- package/lib/model/sens.js +0 -454
- package/lib/model/sens.mjs +0 -415
- package/lib/model/sens.ts +0 -516
- package/lib/model/texte.d.ts +0 -7
- package/lib/model/texte.js +0 -256
- package/lib/model/texte.mjs +0 -208
- package/lib/model/texte.ts +0 -229
- package/lib/model/util.d.ts +0 -9
- package/lib/model/util.js +0 -38
- package/lib/model/util.mjs +0 -19
- package/lib/model/util.ts +0 -32
- package/lib/parsers/texte.d.ts +0 -7
- package/lib/parsers/texte.js +0 -228
- package/lib/raw_types/ameli.d.ts +0 -914
- package/lib/raw_types/ameli.js +0 -5
- package/lib/raw_types/ameli.mjs +0 -163
- package/lib/raw_types/debats.d.ts +0 -207
- package/lib/raw_types/debats.js +0 -5
- package/lib/raw_types/debats.mjs +0 -58
- package/lib/raw_types/dosleg.d.ts +0 -1619
- package/lib/raw_types/dosleg.js +0 -5
- package/lib/raw_types/dosleg.mjs +0 -438
- package/lib/raw_types/questions.d.ts +0 -419
- package/lib/raw_types/questions.js +0 -5
- package/lib/raw_types/questions.mjs +0 -11
- package/lib/raw_types/senat.d.ts +0 -11368
- package/lib/raw_types/senat.js +0 -5
- package/lib/raw_types/sens.d.ts +0 -8248
- package/lib/raw_types/sens.js +0 -5
- package/lib/raw_types/sens.mjs +0 -508
- package/lib/raw_types_kysely/ameli.d.ts +0 -915
- package/lib/raw_types_kysely/ameli.js +0 -7
- package/lib/raw_types_kysely/ameli.mjs +0 -5
- package/lib/raw_types_kysely/ameli.ts +0 -951
- package/lib/raw_types_kysely/debats.d.ts +0 -207
- package/lib/raw_types_kysely/debats.js +0 -7
- package/lib/raw_types_kysely/debats.mjs +0 -5
- package/lib/raw_types_kysely/debats.ts +0 -222
- package/lib/raw_types_kysely/dosleg.d.ts +0 -3532
- package/lib/raw_types_kysely/dosleg.js +0 -7
- package/lib/raw_types_kysely/dosleg.mjs +0 -5
- package/lib/raw_types_kysely/dosleg.ts +0 -3621
- package/lib/raw_types_kysely/questions.d.ts +0 -414
- package/lib/raw_types_kysely/questions.js +0 -7
- package/lib/raw_types_kysely/questions.mjs +0 -5
- package/lib/raw_types_kysely/questions.ts +0 -426
- package/lib/raw_types_kysely/sens.d.ts +0 -4394
- package/lib/raw_types_kysely/sens.js +0 -7
- package/lib/raw_types_kysely/sens.mjs +0 -5
- package/lib/raw_types_kysely/sens.ts +0 -4499
- package/lib/raw_types_schemats/ameli.d.ts +0 -539
- package/lib/raw_types_schemats/ameli.js +0 -2
- package/lib/raw_types_schemats/ameli.mjs +0 -2
- package/lib/raw_types_schemats/ameli.ts +0 -601
- package/lib/raw_types_schemats/debats.d.ts +0 -127
- package/lib/raw_types_schemats/debats.js +0 -2
- package/lib/raw_types_schemats/debats.mjs +0 -2
- package/lib/raw_types_schemats/debats.ts +0 -145
- package/lib/raw_types_schemats/dosleg.d.ts +0 -977
- package/lib/raw_types_schemats/dosleg.js +0 -2
- package/lib/raw_types_schemats/dosleg.mjs +0 -2
- package/lib/raw_types_schemats/dosleg.ts +0 -2193
- package/lib/raw_types_schemats/questions.d.ts +0 -235
- package/lib/raw_types_schemats/questions.js +0 -2
- package/lib/raw_types_schemats/questions.mjs +0 -2
- package/lib/raw_types_schemats/questions.ts +0 -249
- package/lib/raw_types_schemats/sens.d.ts +0 -6915
- package/lib/raw_types_schemats/sens.js +0 -2
- package/lib/raw_types_schemats/sens.mjs +0 -2
- package/lib/raw_types_schemats/sens.ts +0 -2907
- package/lib/scripts/convert_data.js +0 -354
- package/lib/scripts/convert_data.mjs +0 -181
- package/lib/scripts/convert_data.ts +0 -243
- package/lib/scripts/data-download.d.ts +0 -1
- package/lib/scripts/data-download.js +0 -12
- package/lib/scripts/datautil.d.ts +0 -8
- package/lib/scripts/datautil.js +0 -34
- package/lib/scripts/datautil.mjs +0 -16
- package/lib/scripts/datautil.ts +0 -19
- package/lib/scripts/images/transparent_150x192.jpg +0 -0
- package/lib/scripts/images/transparent_155x225.jpg +0 -0
- package/lib/scripts/parse_textes.d.ts +0 -1
- package/lib/scripts/parse_textes.js +0 -44
- package/lib/scripts/parse_textes.mjs +0 -46
- package/lib/scripts/parse_textes.ts +0 -65
- package/lib/scripts/retrieve_agenda.d.ts +0 -1
- package/lib/scripts/retrieve_agenda.js +0 -132
- package/lib/scripts/retrieve_cr_commission.d.ts +0 -1
- package/lib/scripts/retrieve_cr_commission.js +0 -364
- package/lib/scripts/retrieve_cr_seance.d.ts +0 -6
- package/lib/scripts/retrieve_cr_seance.js +0 -347
- package/lib/scripts/retrieve_documents.d.ts +0 -3
- package/lib/scripts/retrieve_documents.js +0 -219
- package/lib/scripts/retrieve_documents.mjs +0 -249
- package/lib/scripts/retrieve_documents.ts +0 -298
- package/lib/scripts/retrieve_open_data.d.ts +0 -1
- package/lib/scripts/retrieve_open_data.js +0 -315
- package/lib/scripts/retrieve_open_data.mjs +0 -217
- package/lib/scripts/retrieve_open_data.ts +0 -268
- package/lib/scripts/retrieve_senateurs_photos.d.ts +0 -1
- package/lib/scripts/retrieve_senateurs_photos.js +0 -147
- package/lib/scripts/retrieve_senateurs_photos.mjs +0 -147
- package/lib/scripts/retrieve_senateurs_photos.ts +0 -177
- package/lib/scripts/retrieve_videos.d.ts +0 -1
- package/lib/scripts/retrieve_videos.js +0 -461
- package/lib/scripts/shared/cli_helpers.d.ts +0 -95
- package/lib/scripts/shared/cli_helpers.js +0 -91
- package/lib/scripts/shared/cli_helpers.ts +0 -36
- package/lib/scripts/shared/util.d.ts +0 -4
- package/lib/scripts/shared/util.js +0 -35
- package/lib/scripts/shared/util.ts +0 -33
- package/lib/scripts/test_iter_load.d.ts +0 -1
- package/lib/scripts/test_iter_load.js +0 -12
- package/lib/src/ameli.d.ts +0 -66
- package/lib/src/ameli.js +0 -1
- package/lib/src/config.d.ts +0 -43
- package/lib/src/config.js +0 -37
- package/lib/src/conversion_textes.d.ts +0 -11
- package/lib/src/conversion_textes.js +0 -320
- package/lib/src/databases.d.ts +0 -3
- package/lib/src/databases.js +0 -26
- package/lib/src/databases_postgres.d.ts +0 -4
- package/lib/src/databases_postgres.js +0 -23
- package/lib/src/datasets.d.ts +0 -38
- package/lib/src/datasets.js +0 -247
- package/lib/src/db_types/ameli.d.ts +0 -1762
- package/lib/src/db_types/ameli.js +0 -1074
- package/lib/src/db_types/debats.d.ts +0 -380
- package/lib/src/db_types/debats.js +0 -266
- package/lib/src/db_types/dosleg.d.ts +0 -2954
- package/lib/src/db_types/dosleg.js +0 -2005
- package/lib/src/db_types/questions.d.ts +0 -699
- package/lib/src/db_types/questions.js +0 -493
- package/lib/src/db_types/sens.d.ts +0 -7843
- package/lib/src/db_types/sens.js +0 -4691
- package/lib/src/debats.d.ts +0 -38
- package/lib/src/debats.js +0 -1
- package/lib/src/dosleg.d.ts +0 -142
- package/lib/src/dosleg.js +0 -193
- package/lib/src/git.d.ts +0 -27
- package/lib/src/git.js +0 -251
- package/lib/src/loaders.d.ts +0 -52
- package/lib/src/loaders.js +0 -260
- package/lib/src/model/agenda.d.ts +0 -6
- package/lib/src/model/agenda.js +0 -148
- package/lib/src/model/ameli.d.ts +0 -67
- package/lib/src/model/ameli.js +0 -150
- package/lib/src/model/ameli_postgres.d.ts +0 -67
- package/lib/src/model/ameli_postgres.js +0 -150
- package/lib/src/model/commission.d.ts +0 -19
- package/lib/src/model/commission.js +0 -269
- package/lib/src/model/debats.d.ts +0 -39
- package/lib/src/model/debats.js +0 -112
- package/lib/src/model/documents.d.ts +0 -32
- package/lib/src/model/documents.js +0 -182
- package/lib/src/model/dosleg.d.ts +0 -144
- package/lib/src/model/dosleg.js +0 -468
- package/lib/src/model/index.d.ts +0 -7
- package/lib/src/model/index.js +0 -7
- package/lib/src/model/questions.d.ts +0 -54
- package/lib/src/model/questions.js +0 -91
- package/lib/src/model/scrutins.d.ts +0 -48
- package/lib/src/model/scrutins.js +0 -121
- package/lib/src/model/seance.d.ts +0 -3
- package/lib/src/model/seance.js +0 -267
- package/lib/src/model/sens.d.ts +0 -112
- package/lib/src/model/sens.js +0 -385
- package/lib/src/model/util.d.ts +0 -1
- package/lib/src/model/util.js +0 -15
- package/lib/src/other_types/questions.d.ts +0 -2
- package/lib/src/other_types/questions.js +0 -1
- package/lib/src/questions.d.ts +0 -53
- package/lib/src/questions.js +0 -1
- package/lib/src/raw_types/ameli.d.ts +0 -1762
- package/lib/src/raw_types/ameli.js +0 -1074
- package/lib/src/raw_types/debats.d.ts +0 -380
- package/lib/src/raw_types/debats.js +0 -266
- package/lib/src/raw_types/dosleg.d.ts +0 -2954
- package/lib/src/raw_types/dosleg.js +0 -2005
- package/lib/src/raw_types/questions.d.ts +0 -699
- package/lib/src/raw_types/questions.js +0 -493
- package/lib/src/raw_types/senat.d.ts +0 -11372
- package/lib/src/raw_types/senat.js +0 -5
- package/lib/src/raw_types/sens.d.ts +0 -7843
- package/lib/src/raw_types/sens.js +0 -4691
- package/lib/src/raw_types_schemats/ameli.d.ts +0 -541
- package/lib/src/raw_types_schemats/ameli.js +0 -2
- package/lib/src/raw_types_schemats/debats.d.ts +0 -127
- package/lib/src/raw_types_schemats/debats.js +0 -2
- package/lib/src/raw_types_schemats/dosleg.d.ts +0 -977
- package/lib/src/raw_types_schemats/dosleg.js +0 -2
- package/lib/src/raw_types_schemats/questions.d.ts +0 -237
- package/lib/src/raw_types_schemats/questions.js +0 -2
- package/lib/src/raw_types_schemats/sens.d.ts +0 -2709
- package/lib/src/raw_types_schemats/sens.js +0 -2
- package/lib/src/rich_types/agenda.d.ts +0 -45
- package/lib/src/rich_types/agenda.js +0 -1
- package/lib/src/rich_types/compte_rendu.d.ts +0 -83
- package/lib/src/rich_types/compte_rendu.js +0 -1
- package/lib/src/rich_types/sessions.d.ts +0 -6
- package/lib/src/rich_types/sessions.js +0 -19
- package/lib/src/rich_types/texte.d.ts +0 -72
- package/lib/src/rich_types/texte.js +0 -15
- package/lib/src/scripts/test_iter_load.d.ts +0 -1
- package/lib/src/scripts/test_iter_load.js +0 -12
- package/lib/src/sens.d.ts +0 -104
- package/lib/src/sens.js +0 -1
- package/lib/src/types/agenda.d.ts +0 -45
- package/lib/src/types/agenda.js +0 -1
- package/lib/src/types/ameli.d.ts +0 -1762
- package/lib/src/types/ameli.js +0 -1074
- package/lib/src/types/compte_rendu.d.ts +0 -83
- package/lib/src/types/compte_rendu.js +0 -1
- package/lib/src/types/debats.d.ts +0 -380
- package/lib/src/types/debats.js +0 -266
- package/lib/src/types/dosleg.d.ts +0 -2954
- package/lib/src/types/dosleg.js +0 -2005
- package/lib/src/types/questions.d.ts +0 -699
- package/lib/src/types/questions.js +0 -493
- package/lib/src/types/sens.d.ts +0 -7843
- package/lib/src/types/sens.js +0 -4691
- package/lib/src/types/sessions.d.ts +0 -6
- package/lib/src/types/sessions.js +0 -19
- package/lib/src/types/texte.d.ts +0 -72
- package/lib/src/types/texte.js +0 -15
- package/lib/src/validators/config.d.ts +0 -9
- package/lib/src/validators/config.js +0 -10
- package/lib/strings.d.ts +0 -1
- package/lib/strings.js +0 -18
- package/lib/strings.mjs +0 -18
- package/lib/strings.ts +0 -26
- package/lib/tsconfig.tsbuildinfo +0 -1
- package/lib/types/agenda.d.ts +0 -44
- package/lib/types/agenda.js +0 -1
- package/lib/types/ameli.d.ts +0 -5
- package/lib/types/ameli.js +0 -1
- package/lib/types/ameli.mjs +0 -13
- package/lib/types/ameli.ts +0 -21
- package/lib/types/compte_rendu.d.ts +0 -83
- package/lib/types/compte_rendu.js +0 -1
- package/lib/types/debats.d.ts +0 -2
- package/lib/types/debats.js +0 -1
- package/lib/types/debats.mjs +0 -2
- package/lib/types/debats.ts +0 -6
- package/lib/types/dosleg.d.ts +0 -70
- package/lib/types/dosleg.js +0 -1
- package/lib/types/dosleg.mjs +0 -151
- package/lib/types/dosleg.ts +0 -284
- package/lib/types/questions.d.ts +0 -2
- package/lib/types/questions.js +0 -1
- package/lib/types/questions.mjs +0 -1
- package/lib/types/questions.ts +0 -3
- package/lib/types/sens.d.ts +0 -10
- package/lib/types/sens.js +0 -1
- package/lib/types/sens.mjs +0 -1
- package/lib/types/sens.ts +0 -12
- package/lib/types/sessions.d.ts +0 -5
- package/lib/types/sessions.js +0 -84
- package/lib/types/sessions.mjs +0 -43
- package/lib/types/sessions.ts +0 -42
- package/lib/types/texte.d.ts +0 -74
- package/lib/types/texte.js +0 -16
- package/lib/types/texte.mjs +0 -16
- package/lib/types/texte.ts +0 -76
- package/lib/typings/windows-1252.d.js +0 -2
- package/lib/typings/windows-1252.d.mjs +0 -2
- package/lib/typings/windows-1252.d.ts +0 -11
- package/lib/utils/cr_spliting.d.ts +0 -28
- package/lib/utils/cr_spliting.js +0 -265
- package/lib/utils/date.d.ts +0 -10
- package/lib/utils/date.js +0 -100
- package/lib/utils/nvs-timecode.d.ts +0 -7
- package/lib/utils/nvs-timecode.js +0 -79
- package/lib/utils/reunion_grouping.d.ts +0 -9
- package/lib/utils/reunion_grouping.js +0 -361
- package/lib/utils/reunion_odj_building.d.ts +0 -5
- package/lib/utils/reunion_odj_building.js +0 -154
- package/lib/utils/reunion_parsing.d.ts +0 -23
- package/lib/utils/reunion_parsing.js +0 -209
- package/lib/utils/scoring.d.ts +0 -14
- package/lib/utils/scoring.js +0 -147
- package/lib/utils/string_cleaning.d.ts +0 -7
- package/lib/utils/string_cleaning.js +0 -57
- package/lib/validators/config.d.ts +0 -9
- package/lib/validators/config.js +0 -10
- package/lib/validators/config.mjs +0 -54
- package/lib/validators/config.ts +0 -79
- package/lib/validators/senat.d.ts +0 -0
- package/lib/validators/senat.js +0 -28
- package/lib/validators/senat.mjs +0 -24
- package/lib/validators/senat.ts +0 -26
- /package/lib/{add-js-extensions-v2.d.ts → src/other_types/collaborateurs.js} +0 -0
- /package/lib/{add-js-extensions.d.ts → src/scripts/retrieve_collaborateurs.d.ts} +0 -0
- /package/lib/{scripts/convert_data.d.ts → tests/collaborateurs.test.d.ts} +0 -0
package/lib/src/server/ameli.js
CHANGED
|
@@ -16,6 +16,7 @@ export async function* findAllAmendements(fromSession) {
|
|
|
16
16
|
.leftJoin("ameli_lec_ameli as lec_ameli", "lec_ameli.id", "txt_ameli.lecid")
|
|
17
17
|
.leftJoin("dosleg_texte as texte", (join) => join.onRef("ses.ann", "=", "texte.sesann").onRef("txt_ameli.numabs", "=", "texte.texnum"))
|
|
18
18
|
.leftJoin("dosleg_lecass as lecass", "lecass.lecassidt", "texte.lecassidt")
|
|
19
|
+
.leftJoin("dosleg_org as org_lecass", "org_lecass.orgcod", "lecass.orgcod")
|
|
19
20
|
.leftJoin("ameli_mot as mot", "mot.id", "amd.motid")
|
|
20
21
|
.leftJoin("ameli_avicom as avicom", "avicom.id", "amd.avcid")
|
|
21
22
|
.leftJoin("ameli_avigvt as avigvt", "avigvt.id", "amd.avgid")
|
|
@@ -94,21 +95,21 @@ export async function* findAllAmendements(fromSession) {
|
|
|
94
95
|
"avigvt.lib as avis_gouvernement",
|
|
95
96
|
eb.fn.coalesce("sor.lib", "irr.libirr").as("sort"),
|
|
96
97
|
"amd.rev as revision",
|
|
97
|
-
sql `
|
|
98
|
-
(
|
|
99
|
-
case
|
|
100
|
-
when ${eb.ref("amd.num")} like '%COM%' then 'https://www.senat.fr/amendements/commissions/'
|
|
101
|
-
else 'https://www.senat.fr/amendements/'
|
|
102
|
-
end ||
|
|
103
|
-
${eb.ref("ses.ann")}::text || '-' ||
|
|
104
|
-
(${eb.ref("ses.ann")}::integer + 1)::text || '/' ||
|
|
105
|
-
${eb.ref("txt_ameli.numabs")} || '/Amdt_' ||
|
|
106
|
-
${eb.ref("amd.num")} || '.html'
|
|
107
|
-
)
|
|
98
|
+
sql `
|
|
99
|
+
(
|
|
100
|
+
case
|
|
101
|
+
when ${eb.ref("amd.num")} like '%COM%' then 'https://www.senat.fr/amendements/commissions/'
|
|
102
|
+
else 'https://www.senat.fr/amendements/'
|
|
103
|
+
end ||
|
|
104
|
+
${eb.ref("ses.ann")}::text || '-' ||
|
|
105
|
+
(${eb.ref("ses.ann")}::integer + 1)::text || '/' ||
|
|
106
|
+
${eb.ref("txt_ameli.numabs")} || '/Amdt_' ||
|
|
107
|
+
${eb.ref("amd.num")} || '.html'
|
|
108
|
+
)
|
|
108
109
|
`.as("url"),
|
|
109
110
|
"grppol_ameli.lilcou as au_nom_de_groupe_politique",
|
|
110
|
-
sql `rtrim(${eb.ref("com_ameli.lil")})`.as("au_nom_de_commission"),
|
|
111
|
-
sql `rtrim(${eb.ref("com_ameli.cod")})`.as("code_commission"),
|
|
111
|
+
sql `coalesce(rtrim(${eb.ref("com_ameli.lil")}), ${eb.ref("org_lecass.orgnom")})`.as("au_nom_de_commission"),
|
|
112
|
+
sql `coalesce(rtrim(${eb.ref("com_ameli.cod")}), ${eb.ref("org_lecass.senorgcod")})`.as("code_commission"),
|
|
112
113
|
sql `(${eb.ref("cab.entid")} is not null)`.as("auteur_est_gouvernement"),
|
|
113
114
|
// Sous-requête scalaire: numéro de scrutin
|
|
114
115
|
eb
|
|
@@ -82,119 +82,119 @@ export async function convertSenatXmlToHtml(texteXml, outputFilePath) {
|
|
|
82
82
|
}
|
|
83
83
|
const metadata = extractMetadata(xmlDoc);
|
|
84
84
|
const xmlBody = xmlDoc.querySelector("body");
|
|
85
|
-
const style = `
|
|
86
|
-
body {
|
|
87
|
-
font-family: "URW Bookman", "Bookman Old Style", serif;
|
|
88
|
-
max-width: 800px;
|
|
89
|
-
margin: 40px auto;
|
|
90
|
-
line-height: 1.5;
|
|
91
|
-
color: #333;
|
|
92
|
-
}
|
|
93
|
-
.header {
|
|
94
|
-
text-align: center;
|
|
95
|
-
margin-bottom: 40px;
|
|
96
|
-
border-bottom: 2px solid #333;
|
|
97
|
-
padding-bottom: 20px;
|
|
98
|
-
}
|
|
99
|
-
.header-top {
|
|
100
|
-
font-weight: bold;
|
|
101
|
-
font-size: 1.2em;
|
|
102
|
-
margin-bottom: 10px;
|
|
103
|
-
}
|
|
104
|
-
.header-session {
|
|
105
|
-
text-transform: uppercase;
|
|
106
|
-
font-size: 0.9em;
|
|
107
|
-
margin-bottom: 5px;
|
|
108
|
-
}
|
|
109
|
-
.header-date {
|
|
110
|
-
font-size: 0.9em;
|
|
111
|
-
margin-bottom: 5px;
|
|
112
|
-
}
|
|
113
|
-
.header-number {
|
|
114
|
-
font-weight: bold;
|
|
115
|
-
font-size: 1.1em;
|
|
116
|
-
margin-bottom: 20px;
|
|
117
|
-
}
|
|
118
|
-
.header-type {
|
|
119
|
-
font-weight: bold;
|
|
120
|
-
font-size: 1.5em;
|
|
121
|
-
margin-top: 20px;
|
|
122
|
-
}
|
|
123
|
-
.header-authors {
|
|
124
|
-
margin-top: 20px;
|
|
125
|
-
font-style: italic;
|
|
126
|
-
}
|
|
127
|
-
.header-commission {
|
|
128
|
-
margin-top: 15px;
|
|
129
|
-
font-size: 0.9em;
|
|
130
|
-
}
|
|
131
|
-
h1 {
|
|
132
|
-
text-align: center;
|
|
133
|
-
font-size: 1.8em;
|
|
134
|
-
margin-top: 10px;
|
|
135
|
-
}
|
|
136
|
-
p {
|
|
137
|
-
margin: 0.6em 0;
|
|
138
|
-
}
|
|
139
|
-
p.has-alinea {
|
|
140
|
-
position: relative;
|
|
141
|
-
padding-left: 2.5em;
|
|
142
|
-
}
|
|
143
|
-
.alinea {
|
|
144
|
-
position: absolute;
|
|
145
|
-
left: 0;
|
|
146
|
-
top: 0.15em;
|
|
147
|
-
display: inline-flex;
|
|
148
|
-
align-items: center;
|
|
149
|
-
justify-content: center;
|
|
150
|
-
min-width: 1.5em;
|
|
151
|
-
height: 1.5em;
|
|
152
|
-
padding: 0 0.3em;
|
|
153
|
-
margin-right: 0.3em;
|
|
154
|
-
font-size: 0.75em;
|
|
155
|
-
font-weight: bold;
|
|
156
|
-
color: #555;
|
|
157
|
-
background-color: #f0f0f0;
|
|
158
|
-
border: 1px solid #ccc;
|
|
159
|
-
border-radius: 1em;
|
|
160
|
-
}
|
|
161
|
-
.num {
|
|
162
|
-
font-weight: bold;
|
|
163
|
-
margin-right: 0.2em;
|
|
164
|
-
}
|
|
165
|
-
.article {
|
|
166
|
-
margin-top: 2em;
|
|
167
|
-
}
|
|
168
|
-
.article h3 {
|
|
169
|
-
border-bottom: 1px solid #eee;
|
|
170
|
-
padding-bottom: 5px;
|
|
171
|
-
}
|
|
85
|
+
const style = `
|
|
86
|
+
body {
|
|
87
|
+
font-family: "URW Bookman", "Bookman Old Style", serif;
|
|
88
|
+
max-width: 800px;
|
|
89
|
+
margin: 40px auto;
|
|
90
|
+
line-height: 1.5;
|
|
91
|
+
color: #333;
|
|
92
|
+
}
|
|
93
|
+
.header {
|
|
94
|
+
text-align: center;
|
|
95
|
+
margin-bottom: 40px;
|
|
96
|
+
border-bottom: 2px solid #333;
|
|
97
|
+
padding-bottom: 20px;
|
|
98
|
+
}
|
|
99
|
+
.header-top {
|
|
100
|
+
font-weight: bold;
|
|
101
|
+
font-size: 1.2em;
|
|
102
|
+
margin-bottom: 10px;
|
|
103
|
+
}
|
|
104
|
+
.header-session {
|
|
105
|
+
text-transform: uppercase;
|
|
106
|
+
font-size: 0.9em;
|
|
107
|
+
margin-bottom: 5px;
|
|
108
|
+
}
|
|
109
|
+
.header-date {
|
|
110
|
+
font-size: 0.9em;
|
|
111
|
+
margin-bottom: 5px;
|
|
112
|
+
}
|
|
113
|
+
.header-number {
|
|
114
|
+
font-weight: bold;
|
|
115
|
+
font-size: 1.1em;
|
|
116
|
+
margin-bottom: 20px;
|
|
117
|
+
}
|
|
118
|
+
.header-type {
|
|
119
|
+
font-weight: bold;
|
|
120
|
+
font-size: 1.5em;
|
|
121
|
+
margin-top: 20px;
|
|
122
|
+
}
|
|
123
|
+
.header-authors {
|
|
124
|
+
margin-top: 20px;
|
|
125
|
+
font-style: italic;
|
|
126
|
+
}
|
|
127
|
+
.header-commission {
|
|
128
|
+
margin-top: 15px;
|
|
129
|
+
font-size: 0.9em;
|
|
130
|
+
}
|
|
131
|
+
h1 {
|
|
132
|
+
text-align: center;
|
|
133
|
+
font-size: 1.8em;
|
|
134
|
+
margin-top: 10px;
|
|
135
|
+
}
|
|
136
|
+
p {
|
|
137
|
+
margin: 0.6em 0;
|
|
138
|
+
}
|
|
139
|
+
p.has-alinea {
|
|
140
|
+
position: relative;
|
|
141
|
+
padding-left: 2.5em;
|
|
142
|
+
}
|
|
143
|
+
.alinea {
|
|
144
|
+
position: absolute;
|
|
145
|
+
left: 0;
|
|
146
|
+
top: 0.15em;
|
|
147
|
+
display: inline-flex;
|
|
148
|
+
align-items: center;
|
|
149
|
+
justify-content: center;
|
|
150
|
+
min-width: 1.5em;
|
|
151
|
+
height: 1.5em;
|
|
152
|
+
padding: 0 0.3em;
|
|
153
|
+
margin-right: 0.3em;
|
|
154
|
+
font-size: 0.75em;
|
|
155
|
+
font-weight: bold;
|
|
156
|
+
color: #555;
|
|
157
|
+
background-color: #f0f0f0;
|
|
158
|
+
border: 1px solid #ccc;
|
|
159
|
+
border-radius: 1em;
|
|
160
|
+
}
|
|
161
|
+
.num {
|
|
162
|
+
font-weight: bold;
|
|
163
|
+
margin-right: 0.2em;
|
|
164
|
+
}
|
|
165
|
+
.article {
|
|
166
|
+
margin-top: 2em;
|
|
167
|
+
}
|
|
168
|
+
.article h3 {
|
|
169
|
+
border-bottom: 1px solid #eee;
|
|
170
|
+
padding-bottom: 5px;
|
|
171
|
+
}
|
|
172
172
|
`;
|
|
173
|
-
const htmlDocTemplate = `<!DOCTYPE html>
|
|
174
|
-
<html lang="fr">
|
|
175
|
-
<head>
|
|
176
|
-
<meta charset="utf-8">
|
|
177
|
-
<title>${metadata.title || "Document Sénat"}</title>
|
|
178
|
-
<style>${style}</style>
|
|
179
|
-
</head>
|
|
180
|
-
<body>
|
|
181
|
-
<div class="header">
|
|
182
|
-
<div class="header-top">SÉNAT</div>
|
|
183
|
-
<div class="header-session">SESSION ORDINAIRE DE ${metadata.session || "...."}</div>
|
|
184
|
-
${metadata.date ? `<div class="header-date">Enregistré à la Présidence du Sénat le ${metadata.date}</div>` : ""}
|
|
185
|
-
<div class="header-number">N° ${metadata.number || "...."}</div>
|
|
186
|
-
<div class="header-type">${metadata.type || ""}</div>
|
|
187
|
-
<div class="header-authors">${metadata.authors || ""}</div>
|
|
173
|
+
const htmlDocTemplate = `<!DOCTYPE html>
|
|
174
|
+
<html lang="fr">
|
|
175
|
+
<head>
|
|
176
|
+
<meta charset="utf-8">
|
|
177
|
+
<title>${metadata.title || "Document Sénat"}</title>
|
|
178
|
+
<style>${style}</style>
|
|
179
|
+
</head>
|
|
180
|
+
<body>
|
|
181
|
+
<div class="header">
|
|
182
|
+
<div class="header-top">SÉNAT</div>
|
|
183
|
+
<div class="header-session">SESSION ORDINAIRE DE ${metadata.session || "...."}</div>
|
|
184
|
+
${metadata.date ? `<div class="header-date">Enregistré à la Présidence du Sénat le ${metadata.date}</div>` : ""}
|
|
185
|
+
<div class="header-number">N° ${metadata.number || "...."}</div>
|
|
186
|
+
<div class="header-type">${metadata.type || ""}</div>
|
|
187
|
+
<div class="header-authors">${metadata.authors || ""}</div>
|
|
188
188
|
${metadata.commission
|
|
189
189
|
? [
|
|
190
190
|
`<div class="header-commission">Envoyée à la ${metadata.commission.toLowerCase()},`,
|
|
191
191
|
"sous réserve de la constitution éventuelle d'une commission spéciale dans les conditions prévues",
|
|
192
192
|
"par le Règlement.</div>",
|
|
193
193
|
].join(" ")
|
|
194
|
-
: ""}
|
|
195
|
-
</div>
|
|
196
|
-
<h1>${metadata.title || ""}</h1>
|
|
197
|
-
</body>
|
|
194
|
+
: ""}
|
|
195
|
+
</div>
|
|
196
|
+
<h1>${metadata.title || ""}</h1>
|
|
197
|
+
</body>
|
|
198
198
|
</html>`;
|
|
199
199
|
const { document: htmlDoc } = new JSDOM(htmlDocTemplate).window;
|
|
200
200
|
const body = htmlDoc.body;
|
package/lib/src/server/debats.js
CHANGED
|
@@ -33,11 +33,11 @@ export async function* findAll() {
|
|
|
33
33
|
"intpjl.intfon as fonction_intervenant",
|
|
34
34
|
"intpjl.inturl as url",
|
|
35
35
|
"intpjl.intana as analyse",
|
|
36
|
-
sql `json_build_object(
|
|
37
|
-
'code', auteur.autcod,
|
|
38
|
-
'nom', auteur.nomuse,
|
|
39
|
-
'prenom', auteur.prenom,
|
|
40
|
-
'matricule', auteur.autmat
|
|
36
|
+
sql `json_build_object(
|
|
37
|
+
'code', auteur.autcod,
|
|
38
|
+
'nom', auteur.nomuse,
|
|
39
|
+
'prenom', auteur.prenom,
|
|
40
|
+
'matricule', auteur.autmat
|
|
41
41
|
)`.as("auteur"),
|
|
42
42
|
])
|
|
43
43
|
.whereRef("intpjl.secdiscle", "=", "secdis.secdiscle")
|
|
@@ -64,11 +64,11 @@ export async function* findAll() {
|
|
|
64
64
|
"intdivers.intfon as fonction_intervenant",
|
|
65
65
|
"intdivers.inturl as url",
|
|
66
66
|
"intdivers.intana as analyse",
|
|
67
|
-
sql `json_build_object(
|
|
68
|
-
'code', auteur.autcod,
|
|
69
|
-
'nom', auteur.nomuse,
|
|
70
|
-
'prenom', auteur.prenom,
|
|
71
|
-
'matricule', auteur.autmat
|
|
67
|
+
sql `json_build_object(
|
|
68
|
+
'code', auteur.autcod,
|
|
69
|
+
'nom', auteur.nomuse,
|
|
70
|
+
'prenom', auteur.prenom,
|
|
71
|
+
'matricule', auteur.autmat
|
|
72
72
|
)`.as("auteur"),
|
|
73
73
|
])
|
|
74
74
|
.whereRef("intdivers.secdiverscle", "=", "secdivers.secdiverscle")
|
|
@@ -14,18 +14,18 @@ export async function* findAllTextes() {
|
|
|
14
14
|
"loi.signet as signet_dossier",
|
|
15
15
|
"texte.texnum as numero",
|
|
16
16
|
"texte.orgcod as code_organisme",
|
|
17
|
-
sql `
|
|
18
|
-
case
|
|
19
|
-
when ${eb.ref("texte.texurl")} is not null then
|
|
20
|
-
regexp_replace(regexp_replace(trim(${eb.ref("texte.texurl")}), '#+$', ''), '^(.*/)?(.*?)(\\.html)?$', '\\2')
|
|
21
|
-
else null
|
|
22
|
-
end
|
|
17
|
+
sql `
|
|
18
|
+
case
|
|
19
|
+
when ${eb.ref("texte.texurl")} is not null then
|
|
20
|
+
regexp_replace(regexp_replace(trim(${eb.ref("texte.texurl")}), '#+$', ''), '^(.*/)?(.*?)(\\.html)?$', '\\2')
|
|
21
|
+
else null
|
|
22
|
+
end
|
|
23
23
|
`.as("id"),
|
|
24
|
-
sql `
|
|
25
|
-
case
|
|
26
|
-
when ${eb.ref("texte.typurl")} = 'I' then regexp_replace('https://www.senat.fr/leg/' || rtrim(${eb.ref("texte.texurl")}), '#+$', '')
|
|
27
|
-
else regexp_replace(rtrim(${eb.ref("texte.texurl")}), '#+$', '')
|
|
28
|
-
end
|
|
24
|
+
sql `
|
|
25
|
+
case
|
|
26
|
+
when ${eb.ref("texte.typurl")} = 'I' then regexp_replace('https://www.senat.fr/leg/' || rtrim(${eb.ref("texte.texurl")}), '#+$', '')
|
|
27
|
+
else regexp_replace(rtrim(${eb.ref("texte.texurl")}), '#+$', '')
|
|
28
|
+
end
|
|
29
29
|
`.as("url"),
|
|
30
30
|
sql `rtrim(${eb.ref("oritxt.oritxtlib")})`.as("origine"),
|
|
31
31
|
"oritxt.oriordre as ordre_origine",
|
|
@@ -74,18 +74,18 @@ export async function* findAllRapports() {
|
|
|
74
74
|
"loi.signet as signet_dossier",
|
|
75
75
|
"rap.rapnum as numero",
|
|
76
76
|
"raporg.orgcod as code_organisme",
|
|
77
|
-
sql `
|
|
78
|
-
case
|
|
79
|
-
when ${eb.ref("rap.rapurl")} is not null then
|
|
80
|
-
regexp_replace(regexp_replace(trim(${eb.ref("rap.rapurl")}), '#+$', ''), '^(.*/)?(.*?)(\\.html)?$', '\\2')
|
|
81
|
-
else null
|
|
82
|
-
end
|
|
77
|
+
sql `
|
|
78
|
+
case
|
|
79
|
+
when ${eb.ref("rap.rapurl")} is not null then
|
|
80
|
+
regexp_replace(regexp_replace(trim(${eb.ref("rap.rapurl")}), '#+$', ''), '^(.*/)?(.*?)(\\.html)?$', '\\2')
|
|
81
|
+
else null
|
|
82
|
+
end
|
|
83
83
|
`.as("id"),
|
|
84
|
-
sql `
|
|
85
|
-
case
|
|
86
|
-
when ${eb.ref("rap.typurl")} = 'I' then regexp_replace('https://www.senat.fr/rap/' || rtrim(${eb.ref("rap.rapurl")}), '#+$', '')
|
|
87
|
-
else regexp_replace(rtrim(${eb.ref("rap.rapurl")}), '#+$', '')
|
|
88
|
-
end
|
|
84
|
+
sql `
|
|
85
|
+
case
|
|
86
|
+
when ${eb.ref("rap.typurl")} = 'I' then regexp_replace('https://www.senat.fr/rap/' || rtrim(${eb.ref("rap.rapurl")}), '#+$', '')
|
|
87
|
+
else regexp_replace(rtrim(${eb.ref("rap.rapurl")}), '#+$', '')
|
|
88
|
+
end
|
|
89
89
|
`.as("url"),
|
|
90
90
|
sql `rtrim(${eb.ref("denrap.libdenrap")})`.as("type"),
|
|
91
91
|
sql `rtrim(rtrim(${eb.ref("rap.raptil")}))`.as("titre"),
|
package/lib/src/server/dosleg.js
CHANGED
|
@@ -39,13 +39,13 @@ export async function* findAllDossiers() {
|
|
|
39
39
|
sql `to_char(${eb.ref("loi.proaccoppdat")}, 'YYYY-MM-DD')`.as("date_opposition_procedure_acceleree"),
|
|
40
40
|
sql `to_char(${eb.ref("loi.retproaccdat")}, 'YYYY-MM-DD')`.as("date_retrait_procedure_acceleree"),
|
|
41
41
|
sql `to_char(${eb.ref("loi.date_loi")}, 'YYYY-MM-DD')`.as("date_promulgation"),
|
|
42
|
-
sql `
|
|
43
|
-
case
|
|
44
|
-
when ${eb.ref("loi.loititjo")} is not null
|
|
45
|
-
then rtrim(${eb.ref("typloi.typloiden")})
|
|
46
|
-
|| ' ' || rtrim(${eb.ref("loi.loititjo")})
|
|
47
|
-
else ''
|
|
48
|
-
end
|
|
42
|
+
sql `
|
|
43
|
+
case
|
|
44
|
+
when ${eb.ref("loi.loititjo")} is not null
|
|
45
|
+
then rtrim(${eb.ref("typloi.typloiden")})
|
|
46
|
+
|| ' ' || rtrim(${eb.ref("loi.loititjo")})
|
|
47
|
+
else ''
|
|
48
|
+
end
|
|
49
49
|
`.as("titre_JO"),
|
|
50
50
|
sql `to_char(${eb.ref("loi.loidatjo")}, 'YYYY-MM-DD')`.as("date_publication_JO"),
|
|
51
51
|
"loi.loinumjo as numero_JO",
|
|
@@ -118,20 +118,20 @@ export async function* findAllDossiers() {
|
|
|
118
118
|
.select((eb4) => [
|
|
119
119
|
"texte.texnum as numero",
|
|
120
120
|
"texte.orgcod as code_organisme",
|
|
121
|
-
sql `
|
|
122
|
-
case
|
|
123
|
-
when texte.texurl is not null then
|
|
124
|
-
regexp_replace(
|
|
125
|
-
regexp_replace(trim(texte.texurl), '#+$', ''),
|
|
126
|
-
'^(.*/)?(.*?)(\.html)?$', '\\2')
|
|
127
|
-
else null
|
|
128
|
-
end
|
|
121
|
+
sql `
|
|
122
|
+
case
|
|
123
|
+
when texte.texurl is not null then
|
|
124
|
+
regexp_replace(
|
|
125
|
+
regexp_replace(trim(texte.texurl), '#+$', ''),
|
|
126
|
+
'^(.*/)?(.*?)(\.html)?$', '\\2')
|
|
127
|
+
else null
|
|
128
|
+
end
|
|
129
129
|
`.as("id"),
|
|
130
|
-
sql `
|
|
131
|
-
case
|
|
132
|
-
when texte.typurl = 'I' then regexp_replace('https://www.senat.fr/leg/' || rtrim(texte.texurl), '#+$', '')
|
|
133
|
-
else regexp_replace(rtrim(texte.texurl), '#+$', '')
|
|
134
|
-
end
|
|
130
|
+
sql `
|
|
131
|
+
case
|
|
132
|
+
when texte.typurl = 'I' then regexp_replace('https://www.senat.fr/leg/' || rtrim(texte.texurl), '#+$', '')
|
|
133
|
+
else regexp_replace(rtrim(texte.texurl), '#+$', '')
|
|
134
|
+
end
|
|
135
135
|
`.as("url"),
|
|
136
136
|
sql `rtrim(oritxt.oritxtlib)`.as("origine"),
|
|
137
137
|
"oritxt.oriordre as ordre_origine",
|
|
@@ -181,20 +181,20 @@ export async function* findAllDossiers() {
|
|
|
181
181
|
.select((eb4) => [
|
|
182
182
|
"rap.rapnum as numero",
|
|
183
183
|
"raporg.orgcod as code_organisme",
|
|
184
|
-
sql `
|
|
185
|
-
case
|
|
186
|
-
when rap.rapurl is not null then
|
|
187
|
-
regexp_replace(
|
|
188
|
-
regexp_replace(trim(rap.rapurl), '#+$', ''),
|
|
189
|
-
'^(.*/)?(.*?)(\.html)?$', '\\2')
|
|
190
|
-
else null
|
|
191
|
-
end
|
|
184
|
+
sql `
|
|
185
|
+
case
|
|
186
|
+
when rap.rapurl is not null then
|
|
187
|
+
regexp_replace(
|
|
188
|
+
regexp_replace(trim(rap.rapurl), '#+$', ''),
|
|
189
|
+
'^(.*/)?(.*?)(\.html)?$', '\\2')
|
|
190
|
+
else null
|
|
191
|
+
end
|
|
192
192
|
`.as("id"),
|
|
193
|
-
sql `
|
|
194
|
-
case
|
|
195
|
-
when rap.typurl = 'I' then regexp_replace('https://www.senat.fr/rap/' || rtrim(rap.rapurl), '#+$', '')
|
|
196
|
-
else regexp_replace(rtrim(rap.rapurl), '#+$', '')
|
|
197
|
-
end
|
|
193
|
+
sql `
|
|
194
|
+
case
|
|
195
|
+
when rap.typurl = 'I' then regexp_replace('https://www.senat.fr/rap/' || rtrim(rap.rapurl), '#+$', '')
|
|
196
|
+
else regexp_replace(rtrim(rap.rapurl), '#+$', '')
|
|
197
|
+
end
|
|
198
198
|
`.as("url"),
|
|
199
199
|
sql `rtrim(denrap.libdenrap)`.as("type"),
|
|
200
200
|
sql `rtrim(rtrim(rap.raptil))`.as("titre"),
|
|
@@ -50,16 +50,16 @@ export async function* findAll() {
|
|
|
50
50
|
"etatquestion.etaquecod as etat_code",
|
|
51
51
|
sql `${eb.ref("etatquestion.etaquenumtri")}::text`.as("etat_tri"),
|
|
52
52
|
// Thèmes (extraits par regexp depuis la colonne themes)
|
|
53
|
-
sql `(
|
|
54
|
-
select coalesce(json_agg(theme_rows.libelle order by theme_rows.theme_order nulls last), '[]'::json)
|
|
55
|
-
from (
|
|
56
|
-
select
|
|
57
|
-
the.thelib as libelle,
|
|
58
|
-
the.thenouidt as theme_order
|
|
59
|
-
from regexp_matches(coalesce(${eb.ref("tam_questions.themes")}, ''), '#(\\d+)', 'g') as matches(match)
|
|
60
|
-
join senat.questions_the as the on the.thenouidt::text = matches.match[1]
|
|
61
|
-
order by the.thenouidt asc
|
|
62
|
-
) as theme_rows
|
|
53
|
+
sql `(
|
|
54
|
+
select coalesce(json_agg(theme_rows.libelle order by theme_rows.theme_order nulls last), '[]'::json)
|
|
55
|
+
from (
|
|
56
|
+
select
|
|
57
|
+
the.thelib as libelle,
|
|
58
|
+
the.thenouidt as theme_order
|
|
59
|
+
from regexp_matches(coalesce(${eb.ref("tam_questions.themes")}, ''), '#(\\d+)', 'g') as matches(match)
|
|
60
|
+
join senat.questions_the as the on the.thenouidt::text = matches.match[1]
|
|
61
|
+
order by the.thenouidt asc
|
|
62
|
+
) as theme_rows
|
|
63
63
|
)`.as("themes"),
|
|
64
64
|
// Réponses
|
|
65
65
|
jsonArrayFrom(eb
|
|
@@ -69,9 +69,9 @@ export async function* findAllScrutins(fromSession) {
|
|
|
69
69
|
"posvot.posvotlib",
|
|
70
70
|
"stavot.stavotlib",
|
|
71
71
|
"memgrppol.grppolcod",
|
|
72
|
-
sql `row_number() over (
|
|
73
|
-
partition by votsen.senmat, votsen.scrnum, votsen.sesann
|
|
74
|
-
order by memgrppol.memgrppoldatdeb desc nulls last
|
|
72
|
+
sql `row_number() over (
|
|
73
|
+
partition by votsen.senmat, votsen.scrnum, votsen.sesann
|
|
74
|
+
order by memgrppol.memgrppoldatdeb desc nulls last
|
|
75
75
|
)`.as("vote_rank"),
|
|
76
76
|
])
|
|
77
77
|
.whereRef("votsen.scrnum", "=", "scr.scrnum")
|
package/lib/src/server/sens.js
CHANGED
|
@@ -78,9 +78,9 @@ export async function* findAll() {
|
|
|
78
78
|
.select([
|
|
79
79
|
sql `to_char(fonmemcom.fonmemcomdatdeb, 'YYYY-MM-DD')`.as("date_debut"),
|
|
80
80
|
sql `to_char(fonmemcom.fonmemcomdatfin, 'YYYY-MM-DD')`.as("date_fin"),
|
|
81
|
-
sql `coalesce(
|
|
82
|
-
nullif(trim(foncom.foncomlib), ''),
|
|
83
|
-
nullif(trim(foncom.foncomlil), ''),
|
|
81
|
+
sql `coalesce(
|
|
82
|
+
nullif(trim(foncom.foncomlib), ''),
|
|
83
|
+
nullif(trim(foncom.foncomlil), ''),
|
|
84
84
|
nullif(trim(foncom.foncomlic), ''))`.as("libelle"),
|
|
85
85
|
"fonmemcom.fonmemcomdatdeb as order_date",
|
|
86
86
|
])
|
|
@@ -111,9 +111,9 @@ export async function* findAll() {
|
|
|
111
111
|
.select([
|
|
112
112
|
sql `to_char(fonmemdelega.fonmemdeldatdeb, 'YYYY-MM-DD')`.as("date_debut"),
|
|
113
113
|
sql `to_char(fonmemdelega.fonmemdeldatfin, 'YYYY-MM-DD')`.as("date_fin"),
|
|
114
|
-
sql `coalesce(
|
|
115
|
-
nullif(trim(fondelega.fondellib), ''),
|
|
116
|
-
nullif(trim(fondelega.fondellil), ''),
|
|
114
|
+
sql `coalesce(
|
|
115
|
+
nullif(trim(fondelega.fondellib), ''),
|
|
116
|
+
nullif(trim(fondelega.fondellil), ''),
|
|
117
117
|
nullif(trim(fondelega.fondellic), ''))`.as("libelle"),
|
|
118
118
|
"fonmemdelega.fonmemdeldatdeb as order_date",
|
|
119
119
|
])
|
|
@@ -144,9 +144,9 @@ export async function* findAll() {
|
|
|
144
144
|
.select([
|
|
145
145
|
sql `to_char(fonmemgrppol.fonmemgrppoldatdeb, 'YYYY-MM-DD')`.as("date_debut"),
|
|
146
146
|
sql `to_char(fonmemgrppol.fonmemgrppoldatfin, 'YYYY-MM-DD')`.as("date_fin"),
|
|
147
|
-
sql `coalesce(
|
|
148
|
-
nullif(trim(fongrppol.fongrppollib), ''),
|
|
149
|
-
nullif(trim(fongrppol.fongrppollil), ''),
|
|
147
|
+
sql `coalesce(
|
|
148
|
+
nullif(trim(fongrppol.fongrppollib), ''),
|
|
149
|
+
nullif(trim(fongrppol.fongrppollil), ''),
|
|
150
150
|
nullif(trim(fongrppol.fongrppollic), ''))`.as("libelle"),
|
|
151
151
|
"fonmemgrppol.fonmemgrppoldatdeb as order_date",
|
|
152
152
|
])
|
|
@@ -176,9 +176,9 @@ export async function* findAll() {
|
|
|
176
176
|
.select([
|
|
177
177
|
sql `to_char(fonmemorg.fonmemorgdatdeb, 'YYYY-MM-DD')`.as("date_debut"),
|
|
178
178
|
sql `to_char(fonmemorg.fonmemorgdatfin, 'YYYY-MM-DD')`.as("date_fin"),
|
|
179
|
-
sql `coalesce(
|
|
180
|
-
nullif(trim(fonorg.fonorglib), ''),
|
|
181
|
-
nullif(trim(fonorg.fonorglil), ''),
|
|
179
|
+
sql `coalesce(
|
|
180
|
+
nullif(trim(fonorg.fonorglib), ''),
|
|
181
|
+
nullif(trim(fonorg.fonorglil), ''),
|
|
182
182
|
nullif(trim(fonorg.fonorglic), ''))`.as("libelle"),
|
|
183
183
|
"fonmemorg.fonmemorgdatdeb as order_date",
|
|
184
184
|
])
|
|
@@ -224,9 +224,9 @@ export async function* findAll() {
|
|
|
224
224
|
.select([
|
|
225
225
|
sql `to_char(fonmemgrpsen.fonmemgrpsendatdeb, 'YYYY-MM-DD')`.as("date_debut"),
|
|
226
226
|
sql `to_char(fonmemgrpsen.fonmemgrpsendatfin, 'YYYY-MM-DD')`.as("date_fin"),
|
|
227
|
-
sql `coalesce(
|
|
228
|
-
nullif(trim(fongrpsen.fongrpsenlib), ''),
|
|
229
|
-
nullif(trim(fongrpsen.fongrpsenlil), ''),
|
|
227
|
+
sql `coalesce(
|
|
228
|
+
nullif(trim(fongrpsen.fongrpsenlib), ''),
|
|
229
|
+
nullif(trim(fongrpsen.fongrpsenlil), ''),
|
|
230
230
|
nullif(trim(fongrpsen.fongrpsenlic), ''))`.as("libelle"),
|
|
231
231
|
"fonmemgrpsen.fonmemgrpsendatdeb as order_date",
|
|
232
232
|
])
|
|
@@ -241,10 +241,10 @@ export async function* findAll() {
|
|
|
241
241
|
.select([
|
|
242
242
|
sql `to_char(senbur.senburdatdeb, 'YYYY-MM-DD')`.as("date_debut"),
|
|
243
243
|
sql `to_char(senbur.senburdatfin, 'YYYY-MM-DD')`.as("date_fin"),
|
|
244
|
-
sql `coalesce(
|
|
245
|
-
nullif(btrim(bur.burlib), ''),
|
|
246
|
-
nullif(btrim(bur.burlil), ''),
|
|
247
|
-
nullif(btrim(bur.burlic), '')
|
|
244
|
+
sql `coalesce(
|
|
245
|
+
nullif(btrim(bur.burlib), ''),
|
|
246
|
+
nullif(btrim(bur.burlil), ''),
|
|
247
|
+
nullif(btrim(bur.burlic), '')
|
|
248
248
|
)`.as("libelle"),
|
|
249
249
|
"senbur.senburdatdeb as order_date",
|
|
250
250
|
])
|
|
@@ -265,10 +265,6 @@ function computeCodeEtape(ev, dossier, flatActes) {
|
|
|
265
265
|
return cleanCode(genericActe.codeActe);
|
|
266
266
|
}
|
|
267
267
|
}
|
|
268
|
-
console.log(`✖ No stage code found for ev=${ev.id} (Date: ${evDate}, Nature: ${nature}, Lecture: ${lecture})`, {
|
|
269
|
-
totalActsInDossier: dossier["actes_legislatifs"]?.length || 0,
|
|
270
|
-
firstActDate: flat[0]?.date,
|
|
271
|
-
});
|
|
272
268
|
return null;
|
|
273
269
|
}
|
|
274
270
|
function buildFlatActes(dossier) {
|
package/lib/src/videos/match.js
CHANGED
|
@@ -98,23 +98,25 @@ export async function matchOneReunion(args) {
|
|
|
98
98
|
// Accept threshold (best must pass)
|
|
99
99
|
if (best.score < minAccept) {
|
|
100
100
|
if (!options["silent"])
|
|
101
|
-
console.log(`[threshold] ${agenda.uid} score=${best.score.toFixed(2)}
|
|
102
|
-
agenda title="${agenda.titre ?? ""}"
|
|
101
|
+
console.log(`[threshold] ${agenda.uid} score=${best.score.toFixed(2)}
|
|
102
|
+
agenda title="${agenda.titre ?? ""}"
|
|
103
103
|
best title="${best.vtitle ?? ""}"`);
|
|
104
104
|
return null;
|
|
105
105
|
}
|
|
106
106
|
// Margin (confidence) gate
|
|
107
107
|
if (second && best.score - second.score < margin) {
|
|
108
108
|
if (!options["silent"]) {
|
|
109
|
-
console.log(`[Margin] ${agenda.uid} score=${best.score.toFixed(2)}
|
|
110
|
-
agenda title="${agenda.titre ?? ""}" agenda date="${agenda.startTime ?? ""}"
|
|
109
|
+
console.log(`[Margin] ${agenda.uid} score=${best.score.toFixed(2)}
|
|
110
|
+
agenda title="${agenda.titre ?? ""}" agenda date="${agenda.startTime ?? ""}"
|
|
111
111
|
best title="${best.vtitle ?? ""}" date="${best.epoch ? new Date(best.epoch * 1000).toISOString() : "null"}"`);
|
|
112
112
|
console.log("second title=", second.vtitle ?? "", " score=", second.score.toFixed(2), "date=", second.epoch ? new Date(second.epoch * 1000).toISOString() : "null");
|
|
113
113
|
}
|
|
114
114
|
if (isSP && timeAmbigious) {
|
|
115
115
|
// Optional safety: second must also be "acceptable"
|
|
116
116
|
if (second.score >= minAccept) {
|
|
117
|
-
|
|
117
|
+
if (!options["silent"]) {
|
|
118
|
+
console.log(" - special case: séance publique + time ambigious => accepting best + secondBest (bis)");
|
|
119
|
+
}
|
|
118
120
|
return { best, secondBest: second, reason: "margin_ambiguous_time_sp" };
|
|
119
121
|
}
|
|
120
122
|
}
|