diff --git a/app/assets/javascripts/application/search.js b/app/assets/javascripts/application/search.js index ecb67de393318dbca81b254cb14a2a2f190cb43b..42786f18c620b1a70002bba6b03d6255ec4852d1 100644 --- a/app/assets/javascripts/application/search.js +++ b/app/assets/javascripts/application/search.js @@ -142,8 +142,8 @@ var search = function() { watchCheckbox('type', 'filter-type', true); break; // schoolyear - case 'school_year': - watchCheckbox('school_year', 'filter-school-year', true); + case 'school_level': + watchCheckbox('school_level', 'filter-school-level', true); break; case 'year': var year = params.get('year').split('-'); @@ -202,7 +202,7 @@ var search = function() { // watchFilterSubject(); watchCheckbox('subject','filter-subject'); watchCheckbox('type', 'filter-type'); - watchCheckbox('school_year', 'filter-school-year'); + watchCheckbox('school_level', 'filter-school-level'); watchFilterYear(); watchFilterRegex(); } @@ -352,7 +352,7 @@ var searchParameters = function() { order: "", subject: [], type: [], - school_year: [], + school_level: [], year: "", regex_all: "", regex_exact: "", @@ -425,7 +425,7 @@ var searchParameters = function() { var params_to_send = JSON.parse(JSON.stringify(params)); params_to_send.subject = params_to_send.subject.join(', '); params_to_send.type = params_to_send.type.join(', '); - params_to_send.school_year = params_to_send.school_year.join(', '); + params_to_send.school_level = params_to_send.school_level.join(', '); return params_to_send; }, url: function() { diff --git a/app/assets/stylesheets/application/search.scss b/app/assets/stylesheets/application/search.scss index b9295a1a7b58474e4dbb0febfa1588758856aedc..454ef0a722430e915d11f6eb59ff17c3548e9364 100644 --- a/app/assets/stylesheets/application/search.scss +++ b/app/assets/stylesheets/application/search.scss @@ -19,6 +19,7 @@ font-weight: 300; display: inline-block; margin-bottom: 6px; + white-space: normal; } } @@ -31,10 +32,11 @@ position: relative; font-weight: 300; margin-bottom: 8px; + padding-right: 15px; input[type=checkbox] { position: absolute; - right: 10px; + right: 5px; } } } diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb index 6bdd3cfb559114b202fb340f88a003f22fbbbad6..b16e7f87be2c1315615a97d119329bb05a083ddb 100644 --- a/app/controllers/search_controller.rb +++ b/app/controllers/search_controller.rb @@ -2,8 +2,12 @@ class SearchController < ApplicationController include SearchEngine::OrientdbLucene def index - @types = learning_object_repository.get_types + @types = learning_object_repository.types + @subjects = ['Arte', 'Biologia', 'Ciências', 'Educação FÃsica', 'Filosofia', 'FÃsica', 'Geografia', 'História', 'Matemática', 'Português', 'QuÃmica', 'Sociologia'] + + # 'Ensino Infantil' and 'Ensino Superior' will only exist after creation of new learning objects or update of the old ones + @school_levels = ['Ensino Infantil', 'Ensino Fundamental Inicial', 'Ensino Fundamental', 'Ensino Fundamental Final', 'Ensino Médio', 'Ensino Superior', 'Ensino Profissionalizante'] end def fetch @@ -11,7 +15,7 @@ class SearchController < ApplicationController params[:subject]= params[:subject].split(', ') params[:type] = params[:type].split(', ') - params[:school_year] = params[:school_year].split(', ') + params[:school_level] = params[:school_level].split(', ') params[:year] = params[:year].split('-').take(2) page=1 if (params[:page]) diff --git a/app/repositories/orient_db/learning_object_repository.rb b/app/repositories/orient_db/learning_object_repository.rb index 611e35e4ed08b046039c448e9d8bc2f78046c016..63048ea2e1769069f241bf2f06221e1e6fa30dd6 100644 --- a/app/repositories/orient_db/learning_object_repository.rb +++ b/app/repositories/orient_db/learning_object_repository.rb @@ -163,7 +163,7 @@ module OrientDb end end - def get_types + def types Rails.cache.fetch("learning_object/types", expires_in: 1.days) do query = "select type from LearningObject GROUP BY type" types_hash = connection.query query, limit: 100 @@ -182,7 +182,7 @@ module OrientDb # METADATA {"analyzer":"org.apache.lucene.analysis.br.BrazilianAnalyzer"} def search(params) # mount cache_key with params - valid_params = %w(query order subject type school_year year) + valid_params = %w(query order subject type school_level year) cache_key = "search_result/" valid_params.each do |param| if params[param].class == Array @@ -213,6 +213,7 @@ module OrientDb query = "SELECT FROM LearningObject WHERE [name, description] LUCENE '#{qry}'" query = query + " AND out('IsAbout') CONTAINS (name in ['" + params[:subject].join("','") + "'])" unless params[:subject].blank? + query = query + " AND out('IsAbout') CONTAINS (name in ['" + params[:school_level].join("','") + "'])" unless params[:school_level].blank? query = "SELECT * FROM (" + query + ") WHERE " + fetch_types(params[:type]) unless params[:type].blank? query = "SELECT * FROM (" + query + ") WHERE " + fetch_year(params[:year]) unless params[:year].blank? query = "SELECT * FROM (" + query + ") ORDER BY #{order}" diff --git a/app/views/search/index.html.erb b/app/views/search/index.html.erb index 74d412f5c5701d71f9f7a4e579edfec85f3ee1eb..f05dc2e30b57cb825a405c45516f0516ae425a20 100644 --- a/app/views/search/index.html.erb +++ b/app/views/search/index.html.erb @@ -18,7 +18,7 @@ <div class="dropdown-element"> <% @subjects.each do |subject|%> - <label class="label-checkbox"><h4><%= subject %><input value="<%= subject %>" name="filter-subject" type="checkbox"/></h4></label><br> + <label class="label-checkbox"><%= subject %><input value="<%= subject %>" name="filter-subject" type="checkbox"/></label><br> <% end %> </div> @@ -197,7 +197,7 @@ <h3 class="dropdown open">Conteúdo<span class="caret caret-align-right"/></h3><!--Tipo 1--> <div class="dropdown-element"> <% @types.each do |type| %> - <label class="label-checkbox"><h4><input value="<%= type %>" name="filter-type" type="checkbox"> <%= type %></h4></label><br/> + <label class="label-checkbox"><input value="<%= type %>" name="filter-type" type="checkbox"> <%= type %></label><br/> <% end %> <!-- <table class="tipo1" style="width:100%"> <tr> @@ -259,26 +259,11 @@ <% end %> - <h3 class="dropdown">Ano escolar<span class="caret caret-align-right"/></h3> + <h3 class="dropdown">NÃveis de Ensino<span class="caret caret-align-right"/></h3> <div class="dropdown-element"> - <table style="width:100%"> - <tr> - <td><input value="1" name="filter-school-year" type="checkbox">1º</td> - <td><input value="5" name="filter-school-year" type="checkbox">5º</td> - </tr> - <tr> - <td><input value="2" name="filter-school-year" type="checkbox">2º</td> - <td><input value="6" name="filter-school-year" type="checkbox">6º</td> - </tr> - <tr> - <td><input value="3" name="filter-school-year" type="checkbox">3º</td> - <td><input value="7" name="filter-school-year" type="checkbox">7º</td> - </tr> - <tr> - <td><input value="4" name="filter-school-year" type="checkbox">4º</td> - <td><input value="8" name="filter-school-year" type="checkbox">8º</td> - </tr> - </table> + <% @school_levels.each do |school_level|%> + <label class="label-checkbox"><%= school_level %><input value="<%= school_level %>" name="filter-school-level" type="checkbox"/></label><br> + <% end %> </div> </div> <!-- fim div class="nestedAccordion"--> @@ -366,7 +351,7 @@ switch (item.type) { case 'subject': return 'label label-success'; case 'type' : return 'label label-default'; - case 'school_year' : return 'label label-warning'; + case 'school_level' : return 'label label-warning'; case 'year' : return 'label label-info'; } },