| Class | DocumentsController |
| In: |
app/controllers/documents_controller.rb
|
| Parent: | ApplicationController |
RSS para las noticias de cada departamento
# File app/controllers/documents_controller.rb, line 35
35: def department
36: @department = Department.find(params[:id])
37: @feed_title = t('documents.feed_title', :name => @department.name)
38: organization_ids = [@department.id] + @department.organization_ids
39: @documents = News.in_irekia.published.translated.find :all,
40: :conditions => "organization_id in (#{organization_ids.join(',')})",
41: :order => 'published_at DESC', :limit => 10
42: respond_to :rss
43: end
Devuelve una imagen de una noticia, generando el tamaño solicitado por el camino si este no existe ya
# File app/controllers/documents_controller.rb, line 139
139: def image
140: if params[:path].present? && params[:size].present?
141: file_to_send = get_or_generate_desired_image(params[:path], params[:size])
142: send_file(file_to_send, :type => 'image/jpeg', :disposition => 'inline')
143: else
144: render :nothing => true
145: end
146: end
Listado de noticias
# File app/controllers/documents_controller.rb, line 11
11: def index
12: @title = t('documents.News')
13: @feed_title = t('documents.feed_title', :name => t('site_name'))
14: @dept = nil
15: conditions = nil
16:
17: if params[:dept]
18: @dept = Department.find(:first, :conditions => ["tag_name = ?", "_#{params[:dept]}"])
19: if @dept
20: organization_ids = [@dept.id] + @dept.organization_ids
21: conditions = "organization_id in (#{organization_ids.join(',')})"
22: end
23: end
24:
25: @documents = News.in_irekia.published.translated.paginate :conditions => conditions,
26: :page => params[:page], :per_page => 15,
27: :order => 'published_at DESC'
28: respond_to do |format|
29: format.html
30: format.rss {render :layout => false}
31: end
32: end
Vista de una noticia con el nuevo diseño
# File app/controllers/documents_controller.rb, line 75
75: def show
76: begin
77: @document = News.in_irekia.published.find(params[:id])
78: rescue ActiveRecord::RecordNotFound
79: if can_edit?("news")
80: @document = News.in_irekia.find(params[:id])
81: else
82: raise ActiveRecord::RecordNotFound
83: end
84: end
85:
86: @parent = @document
87: @comments = @document.comments.approved.paginate :page => params[:page], :per_page => 50
88:
89: @content_title = t('documents.comunicacion_y_opinion')
90:
91: @videos_flv = @document.videos(subsite)[:list][I18n.locale.to_sym] + [@document.featured_video(subsite)]
92: @videos_mpg = @document.videos(subsite)[:mpg][I18n.locale.to_sym]
93:
94:
95: respond_to do |format|
96: format.html { render }
97: format.iphone { render }
98: format.android { render }
99: format.floki { render }
100: format.ipad { render :action => "show.floki", :layout => "application.floki" }
101: end
102: end
Antiguamente se podían votar las noticias. Esta funcionalidad esta desactivada
# File app/controllers/documents_controller.rb, line 105
105: def vote
106: @document = News.published.in_irekia.find(params[:id])
107:
108: @document.ratings.build(:rating => params[:vote].to_i)
109:
110: if @document.save
111: cookies["vote_#{@document.id}"] = {:value => params[:vote], :expires => 1.month.from_now}
112: respond_to do |format|
113: format.html {
114: flash[:notice] = "Gracias por tu voto"
115: redirect_to @document
116: }
117: format.js {
118: render :update do |page|
119: page.replace :vote_action, :partial => "voted", :locals => {:vote => params[:vote].to_i}
120: page<<"$('current_rating').setStyle({width: '#{(@document.ratings.average('rating')/5.0*100).to_i}%'})"
121: end
122: }
123: end
124: else
125: respond_to do |format|
126: format.html {
127: flash[:error] = "Tu voto no se ha guardado. Por favor, inténtalo más tarde"
128: redirect_to @document
129: }
130: format.js {
131: logger.info "El voto no se ha guardado: #{@document.errors.inspect}"
132: render :nothing => true
133: }
134: end
135: end
136: end