mirror of
https://github.com/CodeforLeipzig/stadtratmonitor.git
synced 2024-12-22 15:43:14 +01:00
Merge pull request #20 from joergreichert/master
Removes login button, fixes filtering
This commit is contained in:
commit
eef07c25b9
7 changed files with 48 additions and 54 deletions
44
README.md
44
README.md
|
@ -1,5 +1,49 @@
|
||||||
# Stadtratmonitor
|
# Stadtratmonitor
|
||||||
|
|
||||||
|
## Usage / Features
|
||||||
|
|
||||||
|
The Stadtratmonitor Leipzig is a lightweight user interface for performing full text searches against paper contents issued to the city council of Leipzig. Note, this solution uses the data from [Ratsinformationssystem Leipzig](https://ratsinfo.leipzig.de/bi/allris.net.asp) that also offers [text search capabilities](https://ratsinfo.leipzig.de/bi/yw010.asp).
|
||||||
|
|
||||||
|
### Sorting
|
||||||
|
* Sort by date, paper was issued
|
||||||
|
|
||||||
|
![Papers sorted by publishing date](https://cloud.githubusercontent.com/assets/994131/14060246/b29c0356-f35e-11e5-837a-2106dd274694.JPG)
|
||||||
|
|
||||||
|
* Sort by relevance, e.g. how often the search keyword appears inside the title resp. the content of the paper
|
||||||
|
|
||||||
|
![Papers sorted by relevance](https://cloud.githubusercontent.com/assets/994131/14060257/f7491002-f35e-11e5-9d39-f36b81c35c33.JPG)
|
||||||
|
|
||||||
|
### Filtering
|
||||||
|
* By paper type
|
||||||
|
|
||||||
|
![Filter by paper type](https://cloud.githubusercontent.com/assets/994131/14060263/28c9d800-f35f-11e5-8c56-e8d208d85916.JPG)
|
||||||
|
|
||||||
|
* By originator
|
||||||
|
|
||||||
|
![Filter by originator](https://cloud.githubusercontent.com/assets/994131/14060267/4fa539a6-f35f-11e5-981e-2467daf2dee2.JPG)
|
||||||
|
|
||||||
|
### Staying up-to-date
|
||||||
|
#### General
|
||||||
|
* Subscribing
|
||||||
|
* [Google Chrome RSS extension](https://chrome.google.com/webstore/detail/rss-subscription-extensio/nlbjncdgjeocebhnmkbbbdekmmmcbfjd?hl=de)
|
||||||
|
* [Firefox RSS extension](https://addons.mozilla.org/en-US/firefox/addon/rss-feed-icon-in-navbar/)
|
||||||
|
* Reading
|
||||||
|
* [Google Chrome Extension](https://chrome.google.com/webstore/detail/rss-feed-reader/pnjaodmkngahhkoihejjehlcdlnohgmp)
|
||||||
|
* [Firefox Extension](https://addons.mozilla.org/en-US/firefox/addon/simple-rss-reader-srr)
|
||||||
|
* [RSSOWL](http://www.rssowl.org/)
|
||||||
|
|
||||||
|
#### Example using Firefox and RSSOWL
|
||||||
|
Click on the newsfeed icon in the address bar
|
||||||
|
![Abonnieren mit Firefox](https://cloud.githubusercontent.com/assets/994131/14060508/fe7f4514-f366-11e5-85ae-2fa2e50b91ea.JPG)
|
||||||
|
|
||||||
|
Copy the URL from the address bar
|
||||||
|
![RSS URL in Firefox](https://cloud.githubusercontent.com/assets/994131/14060515/30140e98-f367-11e5-9c77-86ba626e3c1b.JPG)
|
||||||
|
|
||||||
|
Create a new Feed in RSSOWL and paste the just copied URL in the form
|
||||||
|
![RSSOWL Feed](https://cloud.githubusercontent.com/assets/994131/14060522/6c4a88ce-f367-11e5-8e0b-9d9f266306e2.JPG)
|
||||||
|
|
||||||
|
When updating the feed in RSSOWL (or any other RSS reader of your choice) time after time all new papers matching the search query criteria will appear.
|
||||||
|
|
||||||
[![Build Status](https://travis-ci.org/CodeforLeipzig/stadtratmonitor.png?branch=master)](https://travis-ci.org/CodeforLeipzig/stadtratmonitor) [![Coverage Status](https://coveralls.io/repos/github/CodeforLeipzig/stadtratmonitor/badge.svg?branch=master)](https://coveralls.io/github/CodeforLeipzig/stadtratmonitor?branch=master) [![Code Climate](https://codeclimate.com/github/CodeforLeipzig/stadtratmonitor/badges/gpa.svg)](https://codeclimate.com/github/CodeforLeipzig/stadtratmonitor)
|
[![Build Status](https://travis-ci.org/CodeforLeipzig/stadtratmonitor.png?branch=master)](https://travis-ci.org/CodeforLeipzig/stadtratmonitor) [![Coverage Status](https://coveralls.io/repos/github/CodeforLeipzig/stadtratmonitor/badge.svg?branch=master)](https://coveralls.io/github/CodeforLeipzig/stadtratmonitor?branch=master) [![Code Climate](https://codeclimate.com/github/CodeforLeipzig/stadtratmonitor/badges/gpa.svg)](https://codeclimate.com/github/CodeforLeipzig/stadtratmonitor)
|
||||||
|
|
||||||
## Setup
|
## Setup
|
||||||
|
|
|
@ -17,18 +17,3 @@
|
||||||
//= require_tree .
|
//= require_tree .
|
||||||
|
|
||||||
$(function(){ $(document).foundation(); });
|
$(function(){ $(document).foundation(); });
|
||||||
|
|
||||||
$('[data-persona-login]').click(function(e) {
|
|
||||||
e.preventDefault();
|
|
||||||
navigator.id.get(function(assertion) {
|
|
||||||
if (assertion) {
|
|
||||||
if (assertion) {
|
|
||||||
var form = $('#browser-id-form');
|
|
||||||
form.find('input[name=assertion]').val(assertion);
|
|
||||||
form.submit();
|
|
||||||
} else {
|
|
||||||
// TODO: Handle failure
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
|
@ -27,6 +27,7 @@ class Paper < ActiveRecord::Base
|
||||||
indexes :content, type: :string, analyzer: "german"
|
indexes :content, type: :string, analyzer: "german"
|
||||||
indexes :resolution, type: :string, analyzer: "german"
|
indexes :resolution, type: :string, analyzer: "german"
|
||||||
indexes :paper_type, type: :string, index: :not_analyzed
|
indexes :paper_type, type: :string, index: :not_analyzed
|
||||||
|
indexes :published_at, type: :date, index: :not_analyzed
|
||||||
indexes :originator, type: :string, index: :not_analyzed
|
indexes :originator, type: :string, index: :not_analyzed
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -9,10 +9,10 @@ class PaperSearch < ActiveRecord::Base
|
||||||
Elasticsearch::DSL::Search.search do
|
Elasticsearch::DSL::Search.search do
|
||||||
|
|
||||||
sort do
|
sort do
|
||||||
if options[:sort_by] == 'date'
|
if options[:sort_by] == 'score'
|
||||||
by :published_at, order: 'desc'
|
by '_score'
|
||||||
end
|
end
|
||||||
by '_score'
|
by :published_at, order: 'desc'
|
||||||
end
|
end
|
||||||
|
|
||||||
query do
|
query do
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
= form_tag '/auth/browser_id/callback', id: 'browser-id-form'
|
|
||||||
= hidden_field_tag(:assertion)
|
|
||||||
|
|
||||||
- if signed_in?
|
|
||||||
= link_to session_path, data: { method: :delete, logout: true }
|
|
||||||
| Abmelden
|
|
||||||
- else
|
|
||||||
= link_to session_path, data: { 'persona-login' => true }
|
|
||||||
| Anmelden
|
|
|
@ -11,11 +11,8 @@ html
|
||||||
.row
|
.row
|
||||||
.small-12.columns
|
.small-12.columns
|
||||||
.clearfix
|
.clearfix
|
||||||
.right = render 'login_button'
|
|
||||||
h1#title = link_to 'Stadtratmonitor Leipzig', root_path
|
h1#title = link_to 'Stadtratmonitor Leipzig', root_path
|
||||||
- flash.each do |name, msg|
|
- flash.each do |name, msg|
|
||||||
= content_tag :div, msg, class: name
|
= content_tag :div, msg, class: name
|
||||||
= yield
|
= yield
|
||||||
|
|
||||||
script src="https://login.persona.org/include.js"
|
|
||||||
= javascript_include_tag 'application', 'data-turbolinks-track' => true
|
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
require 'test_helper'
|
|
||||||
|
|
||||||
class AuthenticationTest < ActionDispatch::IntegrationTest
|
|
||||||
test 'register via first time sign in and sign out' do
|
|
||||||
visit '/auth/developer'
|
|
||||||
fill_in 'Name', with: 'me'
|
|
||||||
fill_in 'Email', with: 'user@example.com'
|
|
||||||
click_button 'Sign In'
|
|
||||||
assert_equal '/leipzig', current_path
|
|
||||||
assert_is_signed_in
|
|
||||||
|
|
||||||
click_link 'Abmelden'
|
|
||||||
assert_equal '/leipzig', current_path
|
|
||||||
assert_is_signed_out
|
|
||||||
end
|
|
||||||
|
|
||||||
def assert_is_signed_in
|
|
||||||
assert_equal 'Abmelden', find('[data-logout]').text
|
|
||||||
end
|
|
||||||
|
|
||||||
def assert_is_signed_out
|
|
||||||
assert_equal 'Anmelden', find('[data-persona-login]').text
|
|
||||||
end
|
|
||||||
end
|
|
Loading…
Reference in a new issue