politik-bei-uns / politik-bei-uns-web-old Goto Github PK
View Code? Open in Web Editor NEWOffenes Ratsinformationssystem: Weboberfläche
License: BSD 3-Clause "New" or "Revised" License
Offenes Ratsinformationssystem: Weboberfläche
License: BSD 3-Clause "New" or "Revised" License
Es danach immer "Deutschland" angezeigt.
Entsprechend #6 sollte auch ein OpenGovLD-konformer Import erfolgen können. Das übernehme ich. Zielzeitraum: grob Sommer 2015. Unterstützung ist dabei erwünscht!
Weiteres zu diesem Issue wird unter https://github.com/okfde/ris-web/wiki/OpenGovLD gesammelt.
Mittlerweile ist durch OParl die Datenstruktur klar genug, um eine relationale Datenbank nutzen zu können. PostgreSQL würde sich aufgrund der Datenmengen anbieten.
Das Logo ist noch recht vorläufig.
Somit TODO: ein Grafikdesigner müsste sich das mal zu Gemüte führen.
Bei der Suche nach einer Strasse in einer Stadt werden auch benachbarte Strassen angezeigt. Wenn man dann auf eine Strassenlinie klickt, dann werden bei den Treffern auch andere Gemeinden berücksichtigt, in denen eine gleichnamige Strasse vorkommt. Das dürfte fast nie erwünscht sein.
Durch die vielen Änderungen und die Integration von Bootstrap gibt es diverse kleinere Fehler in der Responsiveness der Seite.
Somit TODO: Neuaufbau der CSS-Regeln mit konsequenter Beachtung von Bootstrap.
Wenn man auf der Startseite von politik-bei-uns.de "Aachener" eintippt, dann werden automatisch vier Straßen in Berlin-Charlottenburg bzw. Moers aufgelistet. Die Aachener Straße in Köln (eine der Haupt-Straßen in der Stadt) fehlt jedoch.
Accessing https://politik-bei-uns.de/oparl/body?html=1 or https://politik-bei-uns.de/oparl/body results in:
Internal Server Error
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
Das ist heimtückisch, weil das nicht unmittelbar zu Fehlern führt.
Vorschlag: Für die Dokumente (auch die PDF-Dateien!) kann https://hypothes.is/ verwendet werden, um diese zu kommentieren.
The URL https://politik-bei-uns.de/oparl/consultation/54a027ab1ae6a00c416b1e7f/organization results in [].
Many OParl responses contain URL strings in the JSON data. These URLs should be properly escaped. Currently this is not the case. For example, the next
link in the paginated object list https://politik-bei-uns.de/oparl/body/54eaf4911ae6a017fc442c3a/person is
"links": {"next": "https://politik-bei-uns.de/oparl/body/54eaf4911ae6a017fc442c3a/person?q=modified:<2016-08-05T10:33:00.188000"}
That URL contains multiple characters that must be escaped (<
, :
) in its query string
z.B. bei dieser URL:
https://politik-bei-uns.de/oparl/agendaItem/54a0275f1ae6a00c416b195f?html=1
Die API liefert typestrings im stile von:
http://oparl.org/schema/1.0/System
sollte jedoch diese hier liefern:
https://schema.oparl.org/1.0/System
Dokumente der Stadt Köln nach dem 19.12.2016 gibt es auf politik-bei-uns.de anscheinend nicht. Dies ist vermutlich eine Folge eines Redesigns von https://ratsinformation.stadt-koeln.de/
Nach Abarbeitung von https://github.com/okfde/ris-web/wiki/Installation und Aufruf von http://localhost:23000 sehe ich dies. Hierzu eine Idee?
jinja2.exceptions.UndefinedError
UndefinedError: 'dict object' has no attribute u'5482ec449bcda40691218ef1'
Traceback (most recent call last)
File "/srv/www/ris-web/venv/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__
return self.wsgi_app(environ, start_response)
File "/srv/www/ris-web/venv/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/srv/www/ris-web/venv/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception
reraise(exc_type, exc_value, tb)
File "/srv/www/ris-web/venv/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "/srv/www/ris-web/venv/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/srv/www/ris-web/venv/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/srv/www/ris-web/venv/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request
rv = self.dispatch_request()
File "/srv/www/ris-web/venv/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/srv/www/ris-web/webapp/views.py", line 66, in index
html = render_template('index.html', session=session)
File "/srv/www/ris-web/venv/lib/python2.7/site-packages/flask/templating.py", line 128, in render_template
context, ctx.app)
File "/srv/www/ris-web/venv/lib/python2.7/site-packages/flask/templating.py", line 110, in _render
rv = template.render(context)
File "/srv/www/ris-web/venv/lib/python2.7/site-packages/jinja2/environment.py", line 969, in render
return self.environment.handle_exception(exc_info, True)
File "/srv/www/ris-web/venv/lib/python2.7/site-packages/jinja2/environment.py", line 742, in handle_exception
reraise(exc_type, exc_value, tb)
File "/srv/www/ris-web/webapp/templates/index.html", line 1, in top-level template code
{% extends "layout.html" %}
File "/srv/www/ris-web/webapp/templates/layout.html", line 1, in top-level template code
{% extends "bootstrap/base.html" %}
File "/srv/www/ris-web/venv/lib/python2.7/site-packages/flask_bootstrap/templates/bootstrap/base.html", line 1, in top-level template code
{% block doc -%}
File "/srv/www/ris-web/venv/lib/python2.7/site-packages/flask_bootstrap/templates/bootstrap/base.html", line 4, in block "doc"
{%- block html %}
File "/srv/www/ris-web/venv/lib/python2.7/site-packages/flask_bootstrap/templates/bootstrap/base.html", line 20, in block "html"
{% block body -%}
File "/srv/www/ris-web/venv/lib/python2.7/site-packages/flask_bootstrap/templates/bootstrap/base.html", line 23, in block "body"
{% block content -%}
File "/srv/www/ris-web/webapp/templates/layout.html", line 79, in block "content"
{% block riscontent %}{% endblock %}
File "/srv/www/ris-web/webapp/templates/index.html", line 43, in block "riscontent"
<div id="region-question" class="question">Ausgewählte Region: <span id="region-current">{{ config['regions'][region_id]['name'] }}</span> <span id="change-region" class="awesome extrawide">Ändern</span></div>
File "/srv/www/ris-web/venv/lib/python2.7/site-packages/jinja2/environment.py", line 378, in getitem
return obj[argument]
UndefinedError: 'dict object' has no attribute u'5482ec449bcda40691218ef1'
The debugger caught an exception in your WSGI application. You can now look at the traceback which led to the error.
To switch between the interactive traceback and the plaintext one, you can click on the "Traceback" headline. From the text traceback you can also create a paste of it. For code execution mouse-over the frame you want to debug and click on the console icon on the right side.
You can execute arbitrary Python code in the stack frames and there are some extra helpers available for introspection:
dump() shows all variables in the frame
dump(obj) dumps all that's known about the object
Der Zugriff sollte per default per https erfolgen oder zumindest ermöglicht werden. Insbesondere die Übertragung von Ortsangaben als auch z.B. Suchen nach bestimmten gesundheitlichen oder politischen Themen müssen verschlüsselt möglich sein.
Dazu gibt es auch neue Grundsatzempfehlungen des Internet Architecture Board (IAB):
IAB Statement on Internet Confidentiality
https://www.iab.org/2014/11/14/iab-statement-on-internet-confidentiality/
Internet Society Commends Internet Architecture Board Recommendation on Encryption-by-Default for the Internet
http://www.internetsociety.org/news/internet-society-commends-internet-architecture-board-recommendation-encryption-default
Auf der Seite http://opendata-network.org/ steht:
Diese Netzressource ist archiviert und wird seit Februar 2013 nicht mehr aktualisiert!
Damit kann die Software dann auch in anderen Teilen der Welt verwendet werden. Aber auch in Deutschland gibt es Menschen die andere Sprachen bevorzugen - selbst dann, wenn sie deutsch lesen können.
While downloading the paginated object list https://politik-bei-uns.de/oparl/body/54eaf4911ae6a017fc442c3a/person I'm getting (after multiple successful downloads of earlier sub-pages) the next
link https://politik-bei-uns.de/oparl/body/54eaf4911ae6a017fc442c3a/person?q=modified:<2016-08-04T10:18:33.539000 which yields an internal server error (HTTP 500).
Macht Sinn, wenn man als Stadt auf die Politik Bei Uns oberfläche für die eigene Kommune verlinken will.
Beispielseite: https://politik-bei-uns.de/suche?r=54ecd5631ae6a07485f645d7&q=%22Utopiastadt%22&ppp=10&output=facets
Im Quellcode findet man:
<link rel="alternate" type="application/rss+xml" title="RSS Feed neuer Dokumente in dieser Suche" href="/suche/feed/?r=54ecd5631ae6a07485f645d7&q="Utopiastadt"&fq=" />
in /suche/feed/?r=54ecd5631ae6a07485f645d7&q="Utopiastadt"&fq=
muss der /
nach Feed gelöscht werden.
Weil unten beim RSS-Symbol funktioniert der Link: https://politik-bei-uns.de/suche/feed?r=54ecd5631ae6a07485f645d7&q=%22Utopiastadt%22&fq= besitzt aber kein /
nach feed
Wenn es schon die geniale Funktion gibt, dass PDFs in Hypertext/Text konvertiert wird, dann sollten genau diese Inhalte aus dem PDFs auch im RSS-Feed zu finden sein. Gerade bei sehr langen Mitteilungen/Anfragen möchte man diese vielleicht lieber im Feedreader lesen.
Solange das so ist, sollte dies auf den Web-Seiten zur API klargestellt werden.
Darum kümmere ich mich. Es ist für #6 eine Vorausetzung.
Die eingebundenen Kartendaten (Mapquest) funktionieren nicht mehr, da Mapquest Dienst deaktiviert hat.
Alternative leaflet-provider wären z.B.
OSM oder OSM-De
siehe leaflet-extras.github.io/leaflet-providers/
Die Übersicht über Anfragen und deren Anworten/Mitteilungen der Verwaltung könnte dadurch erhöht werden, indem man diese miteinander verknüpft.
Oft würde bei einer Anfrage wie dieser ein großer Link mit "Antwort" zur Mitteilung der Verwaltung reichen.
Die Verlinkung könnte man (je nach offiziellem Ratsinformationssystem und Rat) anhand von Aktenzeichen oder "untergeordneten Vorlagen" ermitteln.
In #25 wurde festgestellt, dass der Ordner /srv/www/ris-web/webapp/static/sitemap
fehlt.
OpenGovLD (https://github.com/OpenGovLD/specs/) ist eine Spezifikation mit einer weltweiten Zielgruppe die in der Open Government Community Group des W3C (http://www.w3.org/community/opengov/) erarbeitet wird:
Die im gegenwärtigen OParl-Entwurf vorgesehenen Datenarten werden darin ebenso berücksichtigt wie die im Popolo Projekt (http://www.popoloproject.com/) in den letzten Jahren erfolgten Vorarbeiten. Im Gegensatz auf OParl basiert OpenGovLD auf JSON-LD und ermöglicht deshalb Linked Data-Anwendungen ohne Zusatzaufwand.
Ich beabsichtige eine Ergänzung der Plattform um entsprechende Ausgabeschnittstellen bis etwa Sommer 2015. Unterstützung ist erwünscht ;-)
[Ich habe es nur auf der politik-bei-uns-Seite (mit Webkit- und Gecko-basierten Browsern) ausprobiert.]
Beim Bestätigen der Suchanfrage unter "Sehen Sie sich an, was die Politik in Ihrer Umgebung macht:" durch Klicken auf die Schaltfläche "Anzeigen" wird nur die Lade-Animation angezeigt, aber keine Inhalte/keine Änderung der Perspektive in der Karte.
Vorteile: schneller, direkter Bezug zu den Bodies.
In der Spalte "Erstellungsdatum" werden zuerst die ältesten Zeiträume angezeigt. Besser wäre die Anzeige der jüngsten Zeiträume am Anfang.
the membership https://politik-bei-uns.de/oparl/membership/5665608d1ae6a0584c8b4b7e yields a 500 Internal Server Error
https://politik-bei-uns.de/oparl/paper/5671f6e41ae6a00300cce0b6
the above paper contains the following as superordinatedPaper
[
{
"_id": "566562c51ae6a0584c8b64b7",
"collection": "paper"
}
]
its supposed to contain an array of url-strings
Sind alle relevanten Committs und offenen Issues von Offenes Köln (https://github.com/marians/offeneskoeln) bereits berücksichtigt? Was ist da gegebenfalls noch zu tun?
https://github.com/openruhr/ris-web/ sagt aktuell: "35 commits behind marians:master"
Es würde sehr helfen, wenn das MongoDB Exportformat dokumentiert wäre.
Das würde es ermöglichen andere Scraper u.ä. einzubinden und zu verwenden.
In der Datei scripts/generate_xml_sitemaps.py
steht am Anfang nur:
Generiert XML Sitemaps fuer files
Wofür werden die "XML Sitemaps" benötigt?
Für welche Dateien ("files") werden diese generiert?
(Anlass für die Frage ist eine Fehlermeldung die ich bei der Ausführung erhalte.)
Es müsste einmal geschaut werden, was für Dokumenttypen es gibt und wie die sich vergleichen lassen. Siehe Typ: https://politik-bei-uns.de/suche/?q=Stadtwerke&r=549ad8a81ae6a038f9b5e1ab und Ergebnis: https://politik-bei-uns.de/paper/549af7d51ae6a008f36de4d6/ . Ich glaube, dass da ein wenig kommunalpolitischer Sachverstand für sehr sinnvoll wäre.
The current Vagrant installation instructions omit the necessary step to copy config_dist.py
to config.py
in /vagrant
:
cp /vagrant/config_dist.py /vagrant/config.py
Nutzer sollten Dokumente taggen können.
Beim Auslesen der OParl API von Politik-bei-uns sind ein paar Fehler beim (typisierten) Deserialisieren von JSON aufgefallen
https://politik-bei-uns.de/oparl/membership/562881d01ae6a02bb1892a28 line: 1, column: 114, endDate = "Der Paritätische"
https://politik-bei-uns.de/oparl/membership/57a2aec01ae6a00fe17a3754 line: 1, column: 114, endDate = "AG § 78 KJHG"
https://politik-bei-uns.de/oparl/membership/5581fa271ae6a004d80f6461 line: 1, column: 114, endDate = "Trägerverein Altes Landratsamt (in Gründung)"
https://politik-bei-uns.de/oparl/membership/549b3b341ae6a0073c43c40a line: 1, column: 114, endDate = "Vertreter Der Paritätische"
https://politik-bei-uns.de/oparl/membership/549b3abd1ae6a0073c43c130 line: 1, column: 114, endDate = "Kreispolizeibehörde"
Zur Zeit ist die Geolokalisierung eine reine Volltextsuche. Das ginge besser (Hausnummern, POI)
Das System-Objekt https://politik-bei-uns.de/oparl enthält:
"body": "https://politik-bei-uns.de/oparl/body?html=1"
es sollte jedoch nur
"body": "https://politik-bei-uns.de/oparl/body"
sein.
Viele Grüße,
Juka
I had to manually add the oparl_items_per_page
setting in admin/config
. It's not included in the default config from config/init.config.json
.
Um das Besuchererlebnis für Menschen außerhalb der bereits gescrapten Städte zu verbessern, sollten Beispielstraßen genannt werden, um die Funktionalität von ris-web zu demonstrieren (Vorschlag von Twitter).
https://politik-bei-uns.de/oparl/agendaItem/5668bc201ae6a0280fdfa081
the above object's result field contains an object instead of the required string
{
"PolitikBeiUns:originalId": 7198,
"body": "https://politik-bei-uns.de/oparl/body/566348611ae6a0740409c26f",
"consultation": "https://politik-bei-uns.de/oparl/consultation/5668bc201ae6a0280fdfa080",
"created": "2015-12-09T23:41:19+01:00",
"id": "https://politik-bei-uns.de/oparl/agendaItem/5668bc201ae6a0280fdfa081",
"meeting": "https://politik-bei-uns.de/oparl/meeting/5668bc241ae6a0280fdfa0b2",
"modified": "2016-01-17T23:45:35+01:00",
"name": "Ä nderung der Gemeindeordnung fü r das Land NRW und Auswirkungen auf die Beteiligungen der Kreisstadt Unna",
"number": "4.1",
"public": true,
"result": {
"int": 208620601371978602145391450824676722997
},
"result_details": "Ja: 48, Nein: 0, Enthaltungen: 0",
"type": "https://schema.oparl.org/1.0/AgendaItem"
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.