Merge pull request #20 from joergreichert/master

Removes login button, fixes filtering
This commit is contained in:
Jörg Reichert 2016-03-26 15:33:58 +01:00
commit eef07c25b9
7 changed files with 48 additions and 54 deletions

View file

@ -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

View file

@ -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
}
}
});
});

View file

@ -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

View file

@ -9,11 +9,11 @@ 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'
end
by '_score' by '_score'
end end
by :published_at, order: 'desc'
end
query do query do
# search query # search query

View file

@ -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

View file

@ -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

View file

@ -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