first attempt of people crawler incl. detail view

This commit is contained in:
Marco Zeisler 2020-04-21 16:07:54 +02:00
parent e0a21f180f
commit c32819d819
11 changed files with 42 additions and 45 deletions

View File

@ -5,33 +5,19 @@ class TissCrawlerController < ApplicationController
def index
end
def show_basic
def people_search
end
def show_detail
end
def search
context = params[:context]
case context
when "People"
def people_show_basic
result = TissCrawler.search(params)
@people = result.map { |person| Tiss::Person.new(person) }
# render(people_show_path, detail: false)
render template: people_show_basic_path
else
flash.write[:alert] = "Unknown search context"
$people = result.map { |person| Tiss::Person.new(person) }
@people = $people
end
end
require 'tiss/tiss_crawler'
def show_basic
result = TissCrawler.search(params)
@people = result.map { |person| Tiss::Person.new(person) }
# render(people_show_path, detail: false)
render template: people_show_basic_path
def people_show_detail
people = $people
index = params[:index]
@person = people[Integer(index)]
end
end

View File

@ -1,6 +1,10 @@
module Tiss
class Base
def base_uri
'https://tiss.tuwien.ac.at/'
end
def initialize(args = {})
args.each do |name, value|
attr_name = name.to_s.underscore

View File

@ -21,10 +21,10 @@
<a href="#" class="logo">tiss2go</a>
<div class="left-menu">
<%= link_to 'Home', root_path %>
<%= link_to 'People', people_index_path %>
<%= link_to 'Courses', courses_index_path %>
<%= link_to 'Projects', projects_index_path %>
<%= link_to 'Theses', theses_index_path %>
<%= link_to 'People', tiss_crawler_people_search_path %>
<%#= link_to 'Courses', courses_index_path %>
<%#= link_to 'Projects', projects_index_path %>
<%#= link_to 'Theses', theses_index_path %>
</div>
<div class="right-menu">
<% if user_signed_in? %>

View File

@ -1,8 +1,8 @@
<%= form_tag('/tiss_crawler/search', :method => "get") do %>
<%= form_tag('/tiss_crawler/people_show_basic', :method => "get") do %>
<%= hidden_field_tag(:context, 'People') %>
<%= hidden_field_tag(:api, '/api/person/v22/psuche') %>
<%= hidden_field_tag(:search_parameter, 'q') %>
<%= label_tag(:search_term, "Search for:") %>
<%= label_tag(:search_term, "Search for people @TU Vienna:") %>
<%= text_field_tag(:search_term) %>
<%= submit_tag("Search") %>
<% end %>

View File

@ -1,8 +1,9 @@
This is the result for your basic people search:
<% @people.each do |person| %>
<% @people.each_with_index do |person, index| %>
<p>
<%= person.first_name %>
<%= person.last_name %>
<%= button_to 'Details', action: :people_show_detail, index: index %>
</p>
<% end %>

View File

@ -0,0 +1,14 @@
Chosen person in detail view:
<% if @person != nil %>
<% if @person.picture_uri != nil %>
<%= image_tag @person.base_uri + @person.picture_uri %>
<% end %>
<p><%= @person.preceding_titles %> <%= @person.first_name %> <%= @person.last_name %>,
<%= @person.gender %> <%= @person.postpositioned_titles %></p>
<p>Phone: <%= @person.main_phone_number %></p>
<p>Mail: <%= @person.main_email %></p>
<p>Other mails: <%= @person.other_emails %></p>
<p>Main addresses: <%= @person.main_addresses %></p>
<!-- <p>Employee: <%#= @person.employee %></p>-->
<% end %>

View File

@ -1,20 +1,12 @@
Rails.application.routes.draw do
devise_for :users, path_names: {sign_in: 'log_in', sign_out: 'log out'}
get 'people/index'
get 'people/show_basic'
post 'people/show_detailed'
get 'theses/index'
get 'theses/show_basic'
get 'theses/show_detailed'
get 'projects/index'
get 'projects/show_basic'
get 'projects/show_detailed'
get 'courses/index'
get 'courses/show_basic'
get 'courses/show_detailed'
get 'login/index'
get 'tiss_crawler/search'
get 'login/index'
get 'tiss_crawler/people_search'
get 'tiss_crawler/people_show_basic'
get 'tiss_crawler/people_show_detail'
post 'tiss_crawler/people_show_detail'
# For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
root 'login#index'