From a92ff607183eb3c6762edc92fedb9fc9773a0a3f Mon Sep 17 00:00:00 2001 From: Thomas Blazek Date: Wed, 7 Aug 2013 17:51:48 +0200 Subject: [PATCH] Verwaltung erste interessante version --- app/controllers/studien_controller.rb | 101 +++++++++++++++++++-- app/views/studien/_verwalten_menu.html.erb | 16 ++-- app/views/studien/verwalten.html.erb | 24 ++--- 3 files changed, 114 insertions(+), 27 deletions(-) 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 @@
- <%= params[:modulgruppe].nil? ? "Modulgruppe" : Modulgruppe.find(params[:modulgruppe]).name %> + <%= params[:lva].nil? ? "LVA" : Lva.find(params[:lva]).name %>
- <%= params[:modulgruppe].nil? ? "Modulgruppe" : Modulgruppe.find(params[:modulgruppe]).name %> + <%= params[:beispiel].nil? ? "Beispiele" : Beispiel.find(params[:beispiel]).name %>
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 @@
<%= render 'studien/verwalten_menu'%>
+
+
+ <% @messages.flatten.each do |m| %>
+ <%= m.to_s %> + <% end %> +
-

Studien

+

Studien <%= link_to "new", new_studium_path %>

<% @studien.each do |s| %> - <%= link_to s.name, s %> <%= (s.valid?) ? "Gültig" : "Problemfall" %> <%= link_to "Show", studien_verwalten_path( :studium=>params[:studium], :modul=>params[:modul],:lva=>params[:lva], :modulgruppe=>params[:modulgruppe], :beispiel=>params[:beispiel], :studium=>s) %>
+ <%= link_to s.name, s %> <%= (s.valid?) ? "Gültig" : "Problemfall" %>
<% end %>
-

Modulgruppen

+

Modulgruppen <%= link_to 'new', new_studium_modulgruppe_path(Studium.first) unless Studium.first.nil? %>

<% @modulgruppen.each do |mg| %> <%= link_to mg.name, mg %><%=' ('+mg.studium.name.to_s+')' unless mg.studium.nil? %> <%= (mg.valid?) ? "Gültig" : "Problemfall" %>
<% end %> @@ -24,30 +30,26 @@
-

Module

+

Module <%= link_to "new", new_modul_path %>

<% @module.each do |m| %> <%= link_to m.name, m %> ( <% m.modulgruppen.each do |mg| %> <%=mg.name.to_s+ ' ' %> <% end %> - )<%= (m.valid?) ? "Gültig" : "Problemfall" %> - <%=link_to "show", studien_verwalten_path(:modul=>m)%>
+ ) | <%= (m.valid?) ? "Gültig" : "Problemfall" %>
<% end %>
-

LVas

+

LVas <%= link_to "new", new_lva_path %>

<% @lvas.each do |lva| %> <%= link_to lva.name, lva %> | - <% lva.modul.each do |m| %> - <%=m.name.to_s+ ' | ' %> - <% end %> <%= (lva.valid?) ? "Gültig" : "Problemfall" %>
<% end %>
-

Beispiele

+

Beispiele <%= link_to "new", new_beispiel_path %>

<% @beispiele.each do |b| %> <%= link_to b.name, b %> <% end %>