diff --git a/.changeset/quiet-phones-grow.md b/.changeset/quiet-phones-grow.md new file mode 100644 index 000000000..bd16c8cc1 --- /dev/null +++ b/.changeset/quiet-phones-grow.md @@ -0,0 +1,5 @@ +--- +'frontend-gelinkt-notuleren': minor +--- + +Use list-based election results to sort mandatee tables not candidate-based diff --git a/app/config/mandatee-table-config.js b/app/config/mandatee-table-config.js index 7a4a3079f..985291ce5 100644 --- a/app/config/mandatee-table-config.js +++ b/app/config/mandatee-table-config.js @@ -64,6 +64,8 @@ export const mandateeTableConfigIVGR = (meeting) => { PREFIX lmb: PREFIX besluit: PREFIX regorg: + PREFIX ext: + PREFIX skos: SELECT DISTINCT ?persoon ?persoon_naam WHERE { ?persoon a person:Person . @@ -71,8 +73,9 @@ export const mandateeTableConfigIVGR = (meeting) => { ?persoon foaf:familyName ?achternaam. BIND(CONCAT(?voornaam, " ", ?achternaam) AS ?persoon_naam) - ?mandataris a mandaat:Mandataris. ?mandataris mandaat:isBestuurlijkeAliasVan ?persoon. + ?mandataris a mandaat:Mandataris. + ?mandataris org:hasMembership/org:organisation ?fractie. ?mandataris org:holds ?mandaat. ?mandaat org:role <${BESTUURSFUNCTIE_CODES.GEMEENTERAADSLID}>. @@ -80,15 +83,15 @@ export const mandateeTableConfigIVGR = (meeting) => { ?bestuursorgaanIT org:hasPost ?mandaat. ?bestuursorgaanIT lmb:heeftBestuursperiode <${BESTUURSPERIODES['2024-heden']}>. ?bestuursorgaanIT mandaat:isTijdspecialisatieVan ?bestuursorgaan. + ?bestuursorgaan besluit:bestuurt <${bestuurseenheid.uri}>. ?bestuursorgaan besluit:classificatie ?classificatie. VALUES ?classificatie { <${BESTUURSORGAAN_CLASSIFICATIE_CODES.GEMEENTERAAD}> } - ?bestuursorgaan besluit:bestuurt <${bestuurseenheid.uri}>. - ?mandataris org:hasMembership/org:organisation ?fractie. ${fractieOrderingSubquery( + bestuurseenheid.uri, BESTUURSFUNCTIE_CODES.GEMEENTERAADSLID, BESTUURSPERIODES['2024-heden'], )} @@ -154,6 +157,7 @@ export const mandateeTableConfigIVGR = (meeting) => { PREFIX foaf: PREFIX besluit: PREFIX regorg: + PREFIX skos: SELECT DISTINCT ?mandataris ?mandataris_naam WHERE { ?mandaat org:role <${BESTUURSFUNCTIE_CODES.GEMEENTERAADSLID}>. @@ -179,6 +183,7 @@ export const mandateeTableConfigIVGR = (meeting) => { ?mandataris org:hasMembership/org:organisation ?fractie. ${fractieOrderingSubquery( + bestuurseenheid.uri, BESTUURSFUNCTIE_CODES.GEMEENTERAADSLID, BESTUURSPERIODES['2024-heden'], )} @@ -484,6 +489,7 @@ export const mandateeTableConfigIVGR = (meeting) => { PREFIX foaf: PREFIX regorg: PREFIX besluit: + PREFIX skos: SELECT DISTINCT ?fractie ?fractie_naam (COUNT(DISTINCT ?lid) as ?fractie_aantal_zetels) WHERE { ?fractie a mandaat:Fractie. @@ -507,12 +513,10 @@ export const mandateeTableConfigIVGR = (meeting) => { ?lid a person:Person. ?mandataris mandaat:isBestuurlijkeAliasVan ?lid. - ?verkiezing mandaat:steltSamen ?bestuursorgaanIT. - ?verkiezingsresultaat mandaat:isResultaatVoor/mandaat:behoortTot ?verkiezing. - ?verkiezingsresultaat mandaat:isResultaatVan ?lid. - ?verkiezingsresultaat mandaat:aantalNaamstemmen ?aantal_stemmen. + ?fractie ext:geproduceerdDoor/ext:matched_stemmen ?fractie_stemmen. + } - ORDER BY DESC(?fractie_aantal_zetels) DESC(SUM(?aantal_stemmen)) ?fractie + ORDER BY DESC(?fractie_aantal_zetels) DESC(?fractie_stemmen) ?fractie `; return executeQuery({ query: sparqlQuery, @@ -572,6 +576,7 @@ export const mandateeTableConfigIVGR = (meeting) => { PREFIX regorg: PREFIX person: PREFIX besluit: + PREFIX skos: SELECT DISTINCT ?persoon ?persoon_naam ?fractie ?fractie_naam WHERE { ?persoon a person:Person. @@ -596,6 +601,7 @@ export const mandateeTableConfigIVGR = (meeting) => { ?bestuursorgaan besluit:bestuurt <${bestuurseenheid.uri}>. ${fractieOrderingSubquery( + bestuurseenheid.uri, BESTUURSFUNCTIE_CODES.GEMEENTERAADSLID, BESTUURSPERIODES['2024-heden'], )} @@ -1336,6 +1342,7 @@ export const mandateeTableConfigRMW = (meeting) => { ?bestuursorgaan besluit:bestuurt <${bestuurseenheid.uri}>. ${fractieOrderingSubquery( + bestuurseenheid.uri, BESTUURSFUNCTIE_CODES.LID_BCSD, BESTUURSPERIODES['2024-heden'], true, @@ -1439,6 +1446,7 @@ export const mandateeTableConfigRMW = (meeting) => { ?bestuursorgaan besluit:bestuurt <${bestuurseenheid.uri}>. ${fractieOrderingSubquery( + bestuurseenheid.uri, BESTUURSFUNCTIE_CODES.LID_BCSD, BESTUURSPERIODES['2024-heden'], true, @@ -1531,6 +1539,7 @@ export const mandateeTableConfigRMW = (meeting) => { ?bestuursorgaan besluit:bestuurt <${bestuurseenheid.uri}>. ${fractieOrderingSubquery( + bestuurseenheid.uri, BESTUURSFUNCTIE_CODES.LID_BCSD, BESTUURSPERIODES['2024-heden'], true, @@ -1618,6 +1627,7 @@ export const mandateeTableConfigRMW = (meeting) => { ?bestuursorgaan besluit:bestuurt <${bestuurseenheid.uri}>. ${fractieOrderingSubquery( + bestuurseenheid.uri, BESTUURSFUNCTIE_CODES.LID_BCSD, BESTUURSPERIODES['2024-heden'], true, diff --git a/app/config/mandatee-table-query-fragments.js b/app/config/mandatee-table-query-fragments.js index 588ae08cf..688b65168 100644 --- a/app/config/mandatee-table-query-fragments.js +++ b/app/config/mandatee-table-query-fragments.js @@ -1,5 +1,10 @@ -export const fractieOrderingSubquery = (role, period, ignoreVotes) => `{ - SELECT ?fractie ?fractie_naam (COUNT(DISTINCT ?_persoon) AS ?fractie_grootte) (SUM(?_aantal_stemmen) AS ?fractie_stemmen) +export const fractieOrderingSubquery = ( + bestuurseenheid, + role, + period, + ignoreVotes, +) => `{ + SELECT ?fractie ?fractie_naam (COUNT(DISTINCT ?_persoon) AS ?fractie_grootte) ?fractie_stemmen WHERE { ?_mandataris a mandaat:Mandataris. ?_mandataris org:hasMembership/org:organisation ?fractie. @@ -13,17 +18,16 @@ export const fractieOrderingSubquery = (role, period, ignoreVotes) => `{ ?_bestuursorgaanIT org:hasPost ?_mandaat. ?_bestuursorgaanIT lmb:heeftBestuursperiode <${period}>. + ?_bestuursorgaanIT mandaat:isTijdspecialisatieVan ?_bestuursorgaan. + ?_bestuursorgaan besluit:bestuurt <${bestuurseenheid}>. + ?_persoon a person:Person. ?_mandataris mandaat:isBestuurlijkeAliasVan ?_persoon. ${ ignoreVotes ? '' - : ` - ?_verkiezing mandaat:steltSamen ?_bestuursorgaanIT. - ?_verkiezingsresultaat mandaat:isResultaatVoor/mandaat:behoortTot ?_verkiezing. - ?_verkiezingsresultaat mandaat:isResultaatVan ?_persoon. - ?_verkiezingsresultaat mandaat:aantalNaamstemmen ?_aantal_stemmen.` + : `?fractie ext:geproduceerdDoor/ext:matched_stemmen ?fractie_stemmen.` } } }`;