| Class | EventsController |
| In: |
app/controllers/events_controller.rb
|
| Parent: | ApplicationController |
Lista de los eventos actuales. Por defecto se muestran todos los eventos desde el día anterior al día actual.
La lista de puede restringir por departamento o por Tag. Se puede indicar también si hay que mostrar los eventos actuales o los del archivo.
# File app/controllers/events_controller.rb, line 11
11: def index
12: @title = t('documents.Events')
13:
14: @archive = params[:archive] || 'f'
15:
16: if @archive.eql?('f')
17: events_scope = Event.in_irekia.published.translated.future(Time.zone.now - 1.day)
18: #conditions = "ends_at::date >= now()::date"
19: # @title << ": #{t('events.comming_events')}"
20: @title << ": #{t('events.current_events')}"
21: else
22: #conditions = "ends_at::date < now()::date"
23: events_scope = Event.passed.in_irekia.published.translated
24: @title << ": #{t('events.archive')}"
25: end
26:
27: conditions = {}
28: @dept_label = params[:dept_label] || 'all'
29: if params[:dept_label]
30: tag_name = "_#{params[:dept_label]}".gsub(/[^\w_]/,'')
31: if Department.tag_names.include?(tag_name)
32: @dept = Department.find_by_tag_name(tag_name)
33: conditions["documents.organization_id"] = [@dept.id] + @dept.organization_ids
34: @title << ": #{@dept.name}"
35: end
36: end
37:
38: joins = nil
39: @tag_label = params[:tag_label]
40: if @tag_label && Event.show_in_opts.map {|o| "_irekia_#{o}"}.include?(@tag_label)
41: if itag = Tag.find_by_sanitized_name_es(@tag_label)
42: conditions['taggings.tag_id'] = itag.id
43: joins = [:taggings]
44: @title << ": #{itag.name}"
45: end
46: end
47:
48: @events = events_scope.paginate :page => params[:page], :conditions => conditions, :joins => joins
49:
50: end
Ver los datos públicos de un evento publicado.
# File app/controllers/events_controller.rb, line 53
53: def show
54: begin
55: @event = Event.in_irekia.published.find(params[:id])
56: rescue ActiveRecord::RecordNotFound
57: if can_edit?("events")
58: @event = Event.in_irekia.find(params[:id])
59: else
60: #raise ActiveRecord::RecordNotFound
61: bad_record
62: return
63: end
64: end
65:
66: if @category
67: # Comprobar que la categoria y el documento estan relacionados
68: if @event.tags.private.collect(&:name_es) & @category.tags.private.collect(&:name_es) == []
69: logger.info "Categoria y documento no relacionados"
70: raise ActiveRecord::RecordNotFound
71: end
72: end
73:
74: respond_to do |format|
75: format.html {
76: render
77: }
78: format.iphone {
79: render :layout => false
80: }
81: end
82:
83: end