diff --git a/app/controllers/studien_controller.rb b/app/controllers/studien_controller.rb index ff017ac..a438c9f 100755 --- a/app/controllers/studien_controller.rb +++ b/app/controllers/studien_controller.rb @@ -93,7 +93,13 @@ class StudienController < ApplicationController def verwalten @new_params={:studium=>params[:studium], :modulgruppe=>params[:modulgruppe], :modul=>params[:modul], :lva=>params[:lva], :beispiel=>params[:beispiel]} - + if @new_params.values.compact.empty? + @studien=Studium.all + @modulgruppen=Modulgruppe.all + @module=Modul.all + @lvas=Lva.all + @beispiele=Beispiel.all + else if !@new_params[:studium].nil? @studien = [Studium.find(@new_params[:studium])] else @@ -101,36 +107,115 @@ class StudienController < ApplicationController end if !@new_params[:modulgruppe].nil? @modulgruppen = [Modulgruppe.find(@new_params[:modulgruppe])] - + temp = @modulgruppen.map{|x| x.studium}.flatten.uniq # Force Studien + @studien=@studien.select{|k| temp.include?(k)} + else @modulgruppen = Modulgruppe.all + temp = @studien.map{|x| x.modulgruppen}.flatten.uniq # Studien forcen Modulgruppen + @modulgruppen = @modulgruppen.select{|k| temp.include?(k)} end if !@new_params[:modul].nil? @module = [Modul.find(@new_params[:modul])] + temp = @module.map{|x| x.modulgruppen}.flatten.uniq # Force Modulgruppen + @modulgruppen = @modulgruppen.select{|k| temp.include?(k)} + temp = @modulgruppen.map{|x| x.studium}.flatten.uniq # Force Studien + @studien=@studien.select{|k| temp.include?(k)} + else @module = Modul.all + temp = @modulgruppen.map{|x| x.moduls}.flatten.uniq + @module=@module.select{|k| temp.include?(k)} end if !@new_params[:lva].nil? @lvas = [Lva.find(@new_params[:lva])] + temp = @lvas.map{|x| x.modul}.flatten.uniq + @module=@module.select{|k| temp.include?(k)} + temp = @module.map{|x| x.modulgruppen}.flatten.uniq # Force Modulgruppen + @modulgruppen = @modulgruppen.select{|k| temp.include?(k)} + temp = @modulgruppen.map{|x| x.studium}.flatten.uniq # Force Studien + @studien=@studien.select{|k| temp.include?(k)} else @lvas = Lva.all + temp = @module.map{|x| x.lvas}.flatten.uniq #Force Module + @lvas=@lvas.select{|k| temp.include?(k)} end if !@new_params[:beispiel].nil? @beispiele = [Beispiel.find(@new_params[:beispiel])] + temp = @lvas.map{|x| x.beispiele}.flatten.uniq #Force Force Lvas + @lvas=@lvas.select{|k| temp.include?(k)} + temp = @module.map{|x| x.lvas}.flatten.uniq #Force Module + @module=@module.select{|k| temp.include?(k)} + temp = @module.map{|x| x.modulgruppen}.flatten.uniq # Force Modulgruppen + @modulgruppen = @modulgruppen.select{|k| temp.include?(k)} + temp = @modulgruppen.map{|x| x.studium}.flatten.uniq # Force Studien + @studien=@studien.select{|k| temp.include?(k)} + + else @beispiele = Beispiel.all + temp = @lvas.map{|x| x.beispiele}.flatten.uniq # Force beispiel + @beispiele=@beispiele.select{|k| temp.include?(k)} + end +end + + @messages = [] + for s in @studien + + if s.valid? + @messages << s.name + ' hat keine Modulgruppe' if s.modulgruppen.count == 0 + else + @messages << s.name + ': ' + @messages << s.errors.full_messages + end + end + for mg in @modulgruppen + + if mg.valid? + @messages << mg.name + ' hat kein Modul' if mg.moduls.count == 0 + else + @messages << mg.name + ': ' + @messages << mg.errors.full_messages + end + end + for m in @module + + if m.valid? + @messages << m.name + ' hat keine Modulgruppe' if m.modulgruppen.count == 0 + @messages << m.name + ' hat keine Lvas' if m.lvas.count == 0 + else + @messages << m.name + ': ' + @messages << m.errors.full_messages + end + end + for lva in @lvas + + if lva.valid? + @messages << lva.name + ' hat keine Module' if lva.modul.count == 0 + + else + @messages << lva.name + ': ' + @messages << lva.errors.full_messages + end + end + for b in @beispiele + if b.valid? + @messages << b.name + ' hat keine Lva' if lva.moduls + else + @messages << b.name + ': ' + @messages << b.errors.full_messages + end end - render 'studien/verwalten' end def default_url_options {:ansicht=> params[:ansicht], - :studium=> params[:studium], - :modulgruppe=> params[:modulgruppe], - :modul=>params[:modul], - :lva=>params[:lva], - :beispiel=>params[:beispiel]}.merge(super) + :studium=> params[:studium], + :modulgruppe=> params[:modulgruppe], + :modul=>params[:modul], + :lva=>params[:lva], + :beispiel=>params[:beispiel]}.merge(super) end end diff --git a/app/views/studien/_verwalten_menu.html.erb b/app/views/studien/_verwalten_menu.html.erb index 9c626d6..a646743 100644 --- a/app/views/studien/_verwalten_menu.html.erb +++ b/app/views/studien/_verwalten_menu.html.erb @@ -39,26 +39,26 @@
diff --git a/app/views/studien/verwalten.html.erb b/app/views/studien/verwalten.html.erb index 74e8ee6..9674023 100644 --- a/app/views/studien/verwalten.html.erb +++ b/app/views/studien/verwalten.html.erb @@ -8,15 +8,21 @@