Skip to content

Commit adf7658

Browse files
authored
Merge pull request #397 from OParl/f_omit_internal
Option zum Auslassen von eingebetteten Listen mit einem Filter für #396
2 parents 83e3696 + 98851fb commit adf7658

File tree

5 files changed

+45
-11
lines changed

5 files changed

+45
-11
lines changed

schema/AgendaItem.json

+7-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
"type": "object",
55
"required": [
66
"id",
7-
"type"
7+
"type",
8+
"order"
89
],
910
"properties": {
1011
"id": {
@@ -25,6 +26,10 @@
2526
"description": "{{ AgendaItem.properties.number.description }}",
2627
"type": "string"
2728
},
29+
"order": {
30+
"description": "{{ AgendaItem.properties.order.description }}",
31+
"type": "integer"
32+
},
2833
"name": {
2934
"description": "{{ AgendaItem.properties.name.description }}",
3035
"type": "string"
@@ -97,4 +102,4 @@
97102
"type": "boolean"
98103
}
99104
}
100-
}
105+
}

schema/Body.json

+10
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,16 @@
169169
"schema": "Location.json"
170170
}
171171
},
172+
"legislativeTermList": {
173+
"description": "{{ Body.properties.legislativeTermList.description }}",
174+
"type": "string",
175+
"format": "url",
176+
"references": "externalList",
177+
"items": {
178+
"type": "object",
179+
"schema": "LegislativeTerm.json"
180+
}
181+
},
172182
"membership": {
173183
"description": "{{ Body.properties.membership.description }}",
174184
"type": "string",

schema/strings.yml

+5
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ de:
1616
wie z. B. "10.", "10.1", "C", "c)" o. ä. Die Reihenfolge wird nicht dadurch,
1717
sondern durch die Reihenfolge der TOPs im `agendaItem`-Attribut von `oparl:Meeting`
1818
festgelegt, **sollte** allerdings zu dieser identisch sein.
19+
AgendaItem.properties.order.description: |
20+
Neu in OParl 1.1: Die Position des Tagesordnungspunkts in der Sitzung,
21+
wenn alle Tagesordnungspunkte von 0 an durchgehend numeriert werden.
22+
Diese Nummer entspricht der Position in `Meeting:agendaItem`
1923
AgendaItem.properties.name.description: Das Thema des Tagesordnungspunktes.
2024
AgendaItem.properties.public.description: |
2125
Kennzeichnet, ob der Tagesordnungspunkt zur Behandlung in öffentlicher Sitzung
@@ -113,6 +117,7 @@ de:
113117
Body.properties.file.description: "**ZWINGEND** Link zur [Objektliste](#objektlisten) mit allen Dateien der Körperschaft. Neu in OParl 1.1."
114118
Body.properties.membership.description: "**ZWINGEND** Link zur [Objektliste](#objektlisten) mit allen Mitgliedschaften der Körperschaft. Neu in OParl 1.1."
115119
Body.properties.locationList.description: "**ZWINGEND** Link zur [Objektliste](#objektlisten) mit allen Ortsangaben der Körperschaft. Neu in OParl 1.1."
120+
Body.properties.legislativeTermList.description: "**ZWINGEND** Link zur [Objektliste](#objektlisten) mit allen Legislaturperioden der Körperschaft. Neu in OParl 1.1. Die externe Objektliste enthält die gleichen Objekte wie `legislativeTerm`"
116121
Body.properties.shortName.description: Kurzer Name der Körperschaft.
117122
Body.properties.name.description: Der offizielle lange Name der Körperschaft.
118123
Body.properties.website.description: Allgemeine Website der Körperschaft.

src/2-05-objektlisten-und-paginierung.md

+15-2
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,19 @@ beziehen sich auf die entsprechenden Attribute der jeweiligen Objekte, wobei
223223
reservierte Zeichen URL-Kodiert werden müssen. Ein Server muss diese Parameter
224224
bei allen externen Objektlisten unterstützen.
225225

226+
Neu in OParl 1.1: Wenn ein Client den Parameter `omit_internal` mit dem Wert
227+
`true` angibt, dann **soll** der Server auf die Ausgabe von internen Listen
228+
verzichten. Konkret bedeutet das, dass die folgenden Attribute nicht ausgegeben
229+
werden müssen:
230+
231+
- `auxiliaryFile` in `AgendaItem`
232+
- `auxiliaryFile` in `Meeting`
233+
- `auxiliaryFile` in `Paper`
234+
- `location` in `Paper`
235+
- `membership` in `Person`
236+
- `agendaItem` in `Meeting`
237+
- `legislativeTerm` in `Body`
238+
226239
Die Filter werden vom Client benutzt, indem die gewünschten URL-Parameter an
227240
die URL der ersten Listenseite angehängt werden. Bei allen weiteren Seiten,
228241
genauer gesagt bei den Werten von `links`, **muss** der Server sicherzustellen,
@@ -271,9 +284,9 @@ Drucksachen herunterladen und in einer Datenbank speichern.
271284

272285
Um den Datenbestand am nächsten Tag zu aktualisieren, ruft der Client die selbe
273286
URL auf, diesmal jedoch mit dem Parameter `modified_since` mit dem Wert
274-
`2014-01-01T02:00:00+01:00`.
287+
`2014-01-01T02:00:00+01:00` und mit `omit_internal`.
275288

276-
https://oparl.example.org/papers/?modified_since=2014-01-01T02%3A00%3A00%2B01%3A00
289+
https://oparl.example.org/papers/?modified_since=2014-01-01T02%3A00%3A00%2B01%3A00&omit_internal=true
277290

278291
Diese Liste ist in der Regel deutlich kürzer als die Liste aller Objekte,
279292
sodass die Aktualisierung bedeutend schneller ist als der erste Abruf. Der

src/4-01-oparl-1-1.md

+8-7
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ Das bedeutet, dass ein für OParl 1.0 entwickelter Client auch die Ausgabe von
66
OParl 1.1 versteht. Dadurch ist wird der Migrationsaufwand von OParl 1.0 zu
77
OParl 1.1 gering gehalten.
88

9-
109
OParl 1.0 wurde in der Annahme geschrieben, dass für sechs Objekttypen
1110
(LegislativeTerm, Membership, AgendaItem, Consultation, File, Location)
1211
keine verlässlichen Werte für `created` und `modified` existieren.
@@ -17,17 +16,19 @@ OParl 1.0 wurde in der Annahme geschrieben, dass für sechs Objekttypen
1716
bei der Synchronisation.
1817

1918
Konkret sind `created` und `modified` in OParl 1.1 für alle Objekte zwingend
20-
und es gibt fünf neue externe Objektlisten in Body: AgendaItem, Consultation,
21-
File, Location und Membership. LegislativeTerm wird weiterhin als
22-
eingebettete Liste direkt in Body ausgegeben. Das Attribut für die
23-
Location-Liste in Body heißt dabei `locationList`, um eine Kollision
24-
mit dem bereits existierenden `location` zu vermeiden.
19+
und es gibt fünf neue externe Objektlisten in Body: AgendaItem, Consultation,
20+
File, LegislativeTerm, Location und Membership. Das Attribut für die
21+
Location-Liste in Body heißt dabei `locationList`, um eine Kollision
22+
mit dem bereits existierenden `location` zu vermeiden. Das gleiche gilt auch für
23+
`legislativeTermList`.
2524

2625
Es entsteht dabei Redundanz zwischen den bereits existierenden Objektlisten mit
2726
eingebetteten Objekten (Body, Paper, Meeting, Person, Organization) und den
2827
neuen externen Listen, die die bisher eingebetteten Objekte extern ausgeben.
2928
Diese Redundanz lässt sich auf Grund der Semver-Regeln in Version 1.1 nicht
30-
vermeiden und kann erst in einer Version 2 beseitigt werden.
29+
vermeiden und kann erst in einer Version 2 beseitigt werden. Um diese Redundanz
30+
zumindest bei der Aktualisierung eines lokalen Datenbestands vermeiden zu können
31+
wurde die URL-Paramter `omit_internal` eingeführt.
3132

3233
### Weitere Änderungen
3334
* Namespace-URLs werden durchgängig im Camel Case geschrieben

0 commit comments

Comments
 (0)