OpenIrekia v4.0.0
Copyright 2009-2013 eFaber, S.L. Copyright 2009-2013 Ejie, S.A. Copyrigth 2009-2013 Dirección de Gobierno Abierto y Comunicación en Internet;
Gobernu Irekirako eta Interneteko Komunikaziorako Zuzendaritza; Lehendakaritza. Gobierno Vasco – Eusko Jaurlaritza
Licencia con arreglo a la EUPL, Versión 1.1 o –en cuanto sean aprobadas por la Comisión Europea– versiones posteriores de la EUPL (la Licencia); Solo podrá usarse esta obra si se respeta la Licencia. Puede obtenerse una copia de la Licencia en: ec.europa.eu/idabc/eupl Salvo cuando lo exija la legislación aplicable o se acuerde por escrito, el programa distribuido con arreglo a la Licencia se distribuye TAL CUAL, SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, ni expresas ni implícitas. Véase la Licencia en el idioma concreto que rige los permisos y limitaciones que establece la Licencia
http://open.irekia.net, openirekia@efaber.net
# File app/models/area.rb, line 117 def approved_arguments nil end
# File app/models/area.rb, line 113 def approved_comments nil end
# File app/models/area.rb, line 121 def approved_headlines Headline.published.translated.tagged_with(self.tag_name_es).find(:all, :limit => 10) end
# File app/models/area.rb, line 61 def area_tag @area_tag ||= self.tags.detect {|t| t.name_es.match(/^_a_/)} @area_tag end
# File app/models/area.rb, line 54 def area_tag_name=(value) @area_tag_name = value old_tags = self.tag_list self.tag_list = old_tags.select {|t| !t.match(/^_a_/)} + [value] return @area_tag_name end
# File app/models/area.rb, line 43 def area_tag_name_format self.errors.add :area_tag_name, 'debe empezar por _a_' unless @area_tag_name.match(/^_a_/) end
Para descatar una noticia en un área hay que ponerle el tag “destacado<tag del area>”
# File app/models/area.rb, line 75 def featured_tag_name_es "_destacado#{self.tag_name_es}" end
# File app/models/area.rb, line 125 def find_headlines_from_albiste_es if self.headline_keywords.present? ['es', 'eu'].each do |locale| begin query = {"size" => 10, "from" => 0, "query" => {"filtered" => { "filter" => {"and" => [{"term" => {"published_at" => Date.today.to_s}}, {"term" => {"locale" => locale}}]}, "query" => {"query_string" => {"fields" => ["title^10"], "query" => self.headline_keywords.tildes, "analyzer" => "semicolon"}} }}} # query = {"size" => 10, "from" => 0, # "query" => {"query_string" => {"fields" => ["title^3", "body"], "query" => self.headline_keywords.tildes}} } # puts "QUERY STRING #{query.inspect}" uri=(URI.parse("#{ELASTICSEARCH_ALBISTE_URI}/references/_search?pretty=true")) Net::HTTP.start(uri.host, uri.port) do |http| headers = { 'Content-Type' => 'application/json'} data = query.to_json response = http.send_request("GET", uri.request_uri, data, headers) # puts "Elasticsearch Response: #{response.code} #{response.message} #{response.body}" puts "Elasticsearch Response: #{response.code} #{response.message}" @code=response.code @body=response.body end rescue => e puts "ERROR. Elasticsearch is not available. #{e}" return false end if @code.eql?('200') results=Hash.new results['hits']=[] results['total_hits'] = JSON.parse(@body)['hits']['total'] JSON.parse(@body)["hits"]["hits"].each do |result| es_item = result['_source'] item = Headline.find(:all, :conditions => {:source_item_id => result['_source']['source_item_id'], :source_item_type => result['_source']['source_item_type']}) unless item.present? item = Headline.create(result['_source'].merge(:tag_list => self.area_tag.name)) end end # return true else # return false end end puts "Headlines successfully created for area #{self.name}" end end
# File app/models/area.rb, line 70 def tag_name_es self.area_tag.name_es end
HQ # Preguntas del área: son las preguntas que comparten tags con el área def approved_and_published_questions
Question.approved.published.tagged_with(self.tag_name_es)
end
def questions_count
self.approved_and_published_questions.count('distinct contributions.id')
end
# Respuestas del área. Son las respuestas de las preguntas del área. def answers
Answer.tagged_with(self.tag_name_es)
end
def answers_count
self.answers.count('distinct contributions.id')
end
# File app/models/area.rb, line 101 def to_yaml( opts = {} ) YAML.quick_emit( self.id, opts ) { |out| out.map( taguri, to_yaml_style ) { |map| atr = @attributes.dup #atr.each_key {|key| atr[key] = "#{atr[key]}" if ["description_es", "description_eu", "description_en"].include?(key)} atr["tag_name_es"] = self.tag_name_es atr["filename4icon"] = self.icon_file_name map.add("attributes", atr) } } end