store and display favorite person by tiss_id

This commit is contained in:
Marco Zeisler
2020-04-21 18:06:07 +02:00
parent c32819d819
commit fbfc12e096
31 changed files with 153 additions and 88 deletions
+3
View File
@@ -0,0 +1,3 @@
// Place all the styles related to the favorites controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: https://sass-lang.com/
@@ -0,0 +1,3 @@
// Place all the styles related to the favorites/favorite_person controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: https://sass-lang.com/
@@ -0,0 +1,3 @@
// Place all the styles related to the favorites/favorite_person controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: https://sass-lang.com/
@@ -1,3 +0,0 @@
class CoursesController < ApplicationController
end
@@ -0,0 +1,5 @@
class Favorites::FavoritePersonController < ApplicationController
def index
@favoritePeople = FavoritePerson.all
end
end
@@ -1,3 +0,0 @@
class PeopleController < ApplicationController
end
@@ -1,3 +0,0 @@
class ProjectsController < ApplicationController
end
@@ -1,3 +0,0 @@
class ThesesController < ApplicationController
end
+12 -7
View File
@@ -9,15 +9,20 @@ class TissCrawlerController < ApplicationController
end
def people_show_basic
result = TissCrawler.search(params)
$people = result.map { |person| Tiss::Person.new(person) }
@people = $people
params[:api] = '/api/person/v22/psuche'
params[:search_parameter] = 'q'
@people = TissCrawler.search(params)
end
def people_show_detail
people = $people
index = params[:index]
@person = people[Integer(index)]
def person_show_detail
params[:api] = '/api/person/v22/id/'
@person = TissCrawler.get_details(params)
@host = TissCrawler.get_host
end
def person_add_to_fav
puts params[:tiss_id]
person = FavoritePerson.create(tiss_id: params[:tiss_id])
end
end
@@ -0,0 +1,2 @@
module Favorite::FavoritePersonHelper
end
+2
View File
@@ -0,0 +1,2 @@
module FavoriteHelper
end
@@ -0,0 +1,2 @@
module Favorites::FavoritePersonHelper
end
+3
View File
@@ -0,0 +1,3 @@
class FavoritePerson < ApplicationRecord
self.primary_key = "tiss_id"
end
-43
View File
@@ -1,43 +0,0 @@
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
send("#{attr_name}=", value) if respond_to?("#{attr_name}=")
end
end
end
class Person < Base
# tiss json properties
attr_accessor :tiss_id,
:oid,
:old_tiss_ids,
:first_name,
:last_name,
:gender,
:pseudoperson,
:preceding_titles,
:postpositioned_titles,
:orcid,
:card_uri,
:picture_uri,
:main_phone_number,
:main_email,
:other_emails,
:main_addresses,
:employee
def initialize(args = {})
super(args)
end
end
end
@@ -0,0 +1,6 @@
<h1>Your favorite perople listed here ...</h1>
<p>For now only the tiss_ids are stored and shown</p>
<% @favoritePeople.each do |favPerson| %>
Tiss_id: <%= favPerson.tiss_id %>
<% end %>
+2 -2
View File
@@ -21,8 +21,8 @@
<a href="#" class="logo">tiss2go</a>
<div class="left-menu">
<%= link_to 'Home', root_path %>
<%= link_to 'People', tiss_crawler_people_search_path %>
<%#= link_to 'Courses', courses_index_path %>
<%= link_to 'Search', tiss_crawler_people_search_path %>
<%= link_to 'Favorite People', '/favorites/favorite_person/index' %>
<%#= link_to 'Projects', projects_index_path %>
<%#= link_to 'Theses', theses_index_path %>
</div>
@@ -1,7 +1,4 @@
<%= 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 people @TU Vienna:") %>
<%= text_field_tag(:search_term) %>
<%= submit_tag("Search") %>
@@ -2,8 +2,9 @@ This is the result for your basic people search:
<% @people.each_with_index do |person, index| %>
<p>
<%= person.first_name %>
<%= person.last_name %>
<%= button_to 'Details', action: :people_show_detail, index: index %>
<%= person['first_name'] %>
<%= person['last_name'] %>
<%= button_to 'Details', action: :person_show_detail, tiss_id: person['tiss_id'] %>
<%= button_to 'Add to favs.', action: :person_add_to_fav, tiss_id: person['tiss_id'] %>
</p>
<% end %>
@@ -1,14 +0,0 @@
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 %>
@@ -0,0 +1,14 @@
Chosen person in detail view:
<% if @person != nil %>
<% if @person['picture_uri'] != nil %>
<%= image_tag @host + @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 %>