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.`
}
}
}`;