Fix: posibilidad de agregar seguimientos cuando una solicitud es remitida inter insti...
[openwolf:openwolf_v3.git] / app / controllers / seguimientos_controller.rb
1 class SeguimientosController < ApplicationController
2   before_filter :get_data
3
4   # GET /seguimientos/new
5   # GET /seguimientos/new.xml
6   def new
7     @seguimiento = @institucion.seguimientos.new
8
9     respond_to do |format|
10       format.js # new.html.erb
11     end
12   end
13
14   # POST /seguimientos
15   # POST /seguimientos.xml
16   def create
17     @seguimiento = @institucion.seguimientos.new(params[:seguimiento])
18     @seguimiento.usuario_id = usuario_actual.id
19     @seguimiento.actividad = @actividad
20     @dom_id = "#seguimientos_actividad_"+@seguimiento.actividad_id.to_s
21     respond_to do |format|
22       if @seguimiento.save
23         flash[:success] = 'Seguimiento grabado con exito.'
24         format.js
25       else
26         flash[:error] = 'No fue posible grabar seguimiento.'
27         format.js
28       end
29     end
30   end
31
32
33   # GET /seguimientos
34   # GET /seguimientos.xml
35   def index
36     @seguimientos = @institucion.seguimientos
37
38     respond_to do |format|
39       format.html # index.html.erb
40       format.xml  { render :xml => @seguimientos }
41     end
42   end
43
44   # GET /seguimientos/1
45   # GET /seguimientos/1.xml
46   def show
47     @seguimiento = @institucion.seguimientos.find(params[:id])
48
49     respond_to do |format|
50       format.html # show.html.erb
51       format.xml  { render :xml => @seguimiento }
52     end
53   end
54
55
56   # GET /seguimientos/1/edit
57   def edit
58     @seguimiento = @institucion.seguimientos.find(params[:id])
59     @actividad = @seguimiento.actividad
60     @solicitud = @actividad.solicitud
61     @institucion = @solicitud.institucion
62
63     respond_to do |format|
64       format.js # new.html.erb
65     end
66   end
67
68
69   # PUT /seguimientos/1
70   # PUT /seguimientos/1.xml
71   def update
72     @seguimiento = @institucion.seguimientos.find(params[:id])
73     @actividad = @seguimiento.actividad
74
75     @dom_id = "#seguimientos_actividad_"+@seguimiento.actividad_id.to_s
76
77     respond_to do |format|
78       if @seguimiento.update_attributes(params[:seguimiento])
79         flash[:notice] = 'Seguimiento actualizado con exito.'
80         format.js
81       else
82         format.js
83       end
84     end
85   end
86
87   # DELETE /seguimientos/1
88   # DELETE /seguimientos/1.xml
89   def destroy
90     @seguimiento = @institucion.seguimientos.find(params[:id])
91     @actividad = @seguimiento.actividad
92     @seguimiento.destroy
93
94     flash[:notice] = 'Seguimiento eliminado con exito.'
95     respond_to do |format|
96       format.js
97     end
98   end
99
100   private
101
102   def get_data
103     @institucion = current_user.institucion
104
105     begin
106       @solicitud = @institucion.solicitudes.find(params[:solicitud_id]) if params[:solicitud_id]
107       @actividad = @institucion.actividades.find(params[:actividad_id]) if params[:actividad_id]
108     rescue
109       @solicitud = nil
110       @actividad = nil
111     end
112
113     # si no se encontro datos verificamos si es una asignacion inter
114     # institucional
115     if current_user.has_role?(:superudip)
116       @solicitud = Solicitud.find(params[:solicitud_id]) if params[:solicitud_id]
117       @actividad = Actividad.find(params[:actividad_id]) if params[:actividad_id]
118     end
119
120
121   end
122 end