Verwaltungsübersicht

This commit is contained in:
Thomas Blazek
2013-08-07 22:07:08 +02:00
parent a92ff60718
commit 5c36eb55a3
5 changed files with 185 additions and 129 deletions

View File

@@ -99,74 +99,76 @@ class StudienController < ApplicationController
@module=Modul.all @module=Modul.all
@lvas=Lva.all @lvas=Lva.all
@beispiele=Beispiel.all @beispiele=Beispiel.all
else
if !@new_params[:studium].nil?
@studien = [Studium.find(@new_params[:studium])]
else else
if !@new_params[:studium].nil? @studien = Studium.all
@studien = [Studium.find(@new_params[:studium])] end
else if !@new_params[:modulgruppe].nil?
@studien = Studium.all @modulgruppen = [Modulgruppe.find(@new_params[:modulgruppe])]
end temp = @modulgruppen.map{|x| x.studium}.flatten.uniq # Force Studien
if !@new_params[:modulgruppe].nil? @studien=@studien.select{|k| temp.include?(k)}
@modulgruppen = [Modulgruppe.find(@new_params[:modulgruppe])]
temp = @modulgruppen.map{|x| x.studium}.flatten.uniq # Force Studien
@studien=@studien.select{|k| temp.include?(k)}
else else
@modulgruppen = Modulgruppe.all @modulgruppen = Modulgruppe.all
temp = @studien.map{|x| x.modulgruppen}.flatten.uniq # Studien forcen Modulgruppen temp = @studien.map{|x| x.modulgruppen}.flatten.uniq # Studien forcen Modulgruppen
@modulgruppen = @modulgruppen.select{|k| temp.include?(k)} @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 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 = [] @messages = []
for s in @studien for s in @studien
if s.valid? if s.valid?
@messages << s.name + ' hat keine Modulgruppe' if s.modulgruppen.count == 0 @messages << s.name + ' hat keine Modulgruppe' if s.modulgruppen.count == 0
else else
@messages << s.name + ': ' @messages << '<font color="red"><b>'+s.name + ': '
@messages << s.errors.full_messages @messages << s.errors.full_messages
@messages << '</font></b>'
end end
end end
for mg in @modulgruppen for mg in @modulgruppen
@@ -174,8 +176,9 @@ end
if mg.valid? if mg.valid?
@messages << mg.name + ' hat kein Modul' if mg.moduls.count == 0 @messages << mg.name + ' hat kein Modul' if mg.moduls.count == 0
else else
@messages << mg.name + ': ' @messages << '<font color="red"><b>'+mg.name + ': '
@messages << mg.errors.full_messages @messages << mg.errors.full_messages
@messages << '</font></b>'
end end
end end
for m in @module for m in @module
@@ -184,31 +187,43 @@ end
@messages << m.name + ' hat keine Modulgruppe' if m.modulgruppen.count == 0 @messages << m.name + ' hat keine Modulgruppe' if m.modulgruppen.count == 0
@messages << m.name + ' hat keine Lvas' if m.lvas.count == 0 @messages << m.name + ' hat keine Lvas' if m.lvas.count == 0
else else
@messages << m.name + ': ' @messages << '<font color="red"><b>'+m.name + ': '
@messages << m.errors.full_messages @messages << m.errors.full_messages
@messages << '</font></b>'
end end
end end
for lva in @lvas for lva in @lvas
if lva.valid? if lva.valid?
@messages << lva.name + ' hat keine Module' if lva.modul.count == 0 @messages << lva.name + ' hat keine Module' if lva.modul.count == 0
for s in @studien
stu_sem = s.semester.map{|l| l.lvas}.flatten.uniq.index(lva)
stu_mod = s.modulgruppen.map{|m| m.moduls}.flatten.map{|l| l.lvas}.flatten.uniq.index(lva)
if (stu_sem.nil? && !stu_mod.nil?)
@messages << lva.name + ' erscheint nicht in der Semesteransicht von ' +s.name + ' aber in der Modulgruppenansicht'
end
if (!stu_sem.nil? && stu_mod.nil?)
@messages << lva.name + ' erscheint in der Semesteransicht von ' +s.name + ' aber nicht in der Modulgruppenansicht'
end
end
else else
@messages << lva.name + ': ' @messages << '<font color="red"><b>'+lva.name + ': '
@messages << lva.errors.full_messages @messages << lva.errors.full_messages
@messages << '</font></b>'
end end
end end
for b in @beispiele for b in @beispiele
if b.valid? if b.valid?
@messages << b.name + ' hat keine Lva' if lva.moduls @messages << b.name + ' hat keine Lva' if lva.moduls
else else
@messages << b.name + ': ' @messages << '<font color="red"><b>'+b.name + ': '
@messages << b.errors.full_messages @messages << b.errors.full_messages
@messages << '</font></b>'
end end
end end
render 'studien/verwalten' render 'studien/verwalten'
end end
def default_url_options def default_url_options
{:ansicht=> params[:ansicht], {:ansicht=> params[:ansicht],
:studium=> params[:studium], :studium=> params[:studium],

View File

@@ -12,7 +12,7 @@
# created_at :datetime not null # created_at :datetime not null
# updated_at :datetime not null # updated_at :datetime not null
class Studium < ActiveRecord::Base class Studium < ActiveRecord::Base
attr_accessible :desc, :name, :typ, :zahl attr_accessible :desc, :name, :typ, :zahl, :semester
has_many :modulgruppen, inverse_of: :studium, :class_name => "Modulgruppe", :dependent => :destroy has_many :modulgruppen, inverse_of: :studium, :class_name => "Modulgruppe", :dependent => :destroy
has_many :semester, :dependent => :destroy has_many :semester, :dependent => :destroy

View File

@@ -1,7 +1,7 @@
<div class="btn-toolbar"> <div class="btn-toolbar">
<div class="btn-group"> <div class="btn-group">
<a class="btn dropdown-toggle" data-toggle="dropdown" href="#"> <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
<%= params[:studium].nil? ? "Studium" : Studium.find(params[:studium]).name %> <%= params[:studium].nil? ? I18n.t("filter.studium") : Studium.find(params[:studium]).name %>
<span class="caret"></span> <span class="caret"></span>
</a> </a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
@@ -13,7 +13,7 @@
</div> </div>
<div class="btn-group"> <div class="btn-group">
<a class="btn dropdown-toggle" data-toggle="dropdown" href="#"> <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
<%= params[:modulgruppe].nil? ? "Modulgruppe" : Modulgruppe.find(params[:modulgruppe]).name %> <%= params[:modulgruppe].nil? ? I18n.t("filter.modulgruppe") : Modulgruppe.find(params[:modulgruppe]).name %>
<span class="caret"></span> <span class="caret"></span>
</a> </a>
@@ -26,7 +26,7 @@
</div> </div>
<div class="btn-group"> <div class="btn-group">
<a class="btn dropdown-toggle" data-toggle="dropdown" href="#"> <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
<%= params[:modul].nil? ? "Modul" : Modul.find(params[:modul]).name %> <%= params[:modul].nil? ? I18n.t("filter.modul") : Modul.find(params[:modul]).name %>
<span class="caret"></span> <span class="caret"></span>
</a> </a>
@@ -39,7 +39,7 @@
</div> </div>
<div class="btn-group"> <div class="btn-group">
<a class="btn dropdown-toggle" data-toggle="dropdown" href="#"> <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
<%= params[:lva].nil? ? "LVA" : Lva.find(params[:lva]).name %> <%= params[:lva].nil? ? I18n.t("filter.lva") : Lva.find(params[:lva]).name %>
<span class="caret"></span> <span class="caret"></span>
</a> </a>
@@ -51,7 +51,7 @@
</ul> </div> </ul> </div>
<div class="btn-group"> <div class="btn-group">
<a class="btn dropdown-toggle" data-toggle="dropdown" href="#"> <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
<%= params[:beispiel].nil? ? "Beispiele" : Beispiel.find(params[:beispiel]).name %> <%= params[:beispiel].nil? ? I18n.t("filter.beispiel") : Beispiel.find(params[:beispiel]).name %>
<span class="caret"></span> <span class="caret"></span>
</a> </a>
@@ -62,6 +62,7 @@
<% end %> <% end %>
</ul> </ul>
</div> </div>
<%= link_to 'Alle Filter Löschen', studien_verwalten_path(:studium=>nil, :modulgruppe=>nil, :modul=>nil, :lva=>nil, :beispiel=>nil), :class=>"btn" %> <%= link_to I18n.t("filter.reset"), studien_verwalten_path(:studium=>nil, :modulgruppe=>nil, :modul=>nil, :lva=>nil, :beispiel=>nil), :class=>"btn" %>
</div>
</div> </div>

View File

@@ -1,63 +1,89 @@
<div class="container-fluid"> <div class="container-fluid">
<%= render 'studien/tabs'%> <%= render 'studien/tabs'%>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3">
<h1>Verwaltung <%=@title%></h1>
</div>
<div class="span9"> <div class="span9">
<div class="pull-right"><%= render 'studien/verwalten_menu'%></div> <div class="container-fluid">
</div> <div class="row-fluid">
</div> <div class="span9">
<div class="row-fluid"> <h1><%= I18n.t("studien.verwaltung") %></h1>
<div class="span12"> <%= I18n.t("filter.explanation").html_safe %>
<% @messages.flatten.each do |m| %><br> <%= render 'studien/verwalten_menu' %>
<%= m.to_s %> </div>
<% end %>
</div> <div class="span3">
<div class="row-fluid"> <div class="modulgruppe_phase_2">
<div class="span5"> <h2>Studien <%= link_to "new", new_studium_path %></h2>
<h2>Studien <%= link_to "new", new_studium_path %></h2> <% @studien.each do |s| %>
<% @studien.each do |s| %> <%= link_to s.name, s %> <%= (s.valid?) ? "Gültig" : "Problemfall" %> <br>
<%= link_to s.name, s %> <%= (s.valid?) ? "Gültig" : "Problemfall" %> <br> <% end %>
<% end %>
</div> </div>
<div class="span5"> </div>
<h2>Modulgruppen <%= link_to 'new', new_studium_modulgruppe_path(Studium.first) unless Studium.first.nil? %></h2> </div>
<% @modulgruppen.each do |mg| %> <div class="row-fluid">
<%= link_to mg.name, mg %><%=' ('+mg.studium.name.to_s+')' unless mg.studium.nil? %> <%= (mg.valid?) ? "Gültig" : "Problemfall" %><br>
<% end %> <div class="span3">
</div> <div class="modulgruppe_phase_2">
</div> <h2>Modulgruppen <%= link_to 'new', new_studium_modulgruppe_path(Studium.first) unless Studium.first.nil? %></h2>
<div class="row-fluid"> <% @modulgruppen.each do |mg| %>
<div class="span4"> <%= link_to mg.name, mg %> | <%= (mg.valid?) ? "Gültig" : "Problemfall" %><br>
<h2>Module <%= link_to "new", new_modul_path %></h2> <% end %>
<% @module.each do |m| %> </div>
<%= link_to m.name, m %> ( </div>
<% m.modulgruppen.each do |mg| %> <div class="span3">
<%=mg.name.to_s+ ' ' %> <div class="modulgruppe_phase_2">
<% end %> <h2>Module <%= link_to "new", new_modul_path %></h2>
) | <%= (m.valid?) ? "Gültig" : "Problemfall" %><br> <% @module.each do |m| %>
<% end %> <%= link_to m.name, m %>
| <%= (m.valid?) ? "Gültig" : "Problemfall" %><br>
</div> <% end %>
<div class="span4"> </div>
<h2>LVas <%= link_to "new", new_lva_path %></h2> </div>
<% @lvas.each do |lva| %> <div class="span3">
<%= link_to lva.name, lva %> | <div class="modulgruppe_phase_2">
<%= (lva.valid?) ? "Gültig" : "Problemfall" %><br> <h2>LVas <%= link_to "new", new_lva_path %></h2>
<% @lvas.each do |lva| %>
<% end %> <%= link_to lva.name, lva %> |
</div> <%= (lva.valid?) ? "Gültig" : "Problemfall" %><br>
<div class="span4">
<h2>Beispiele <%= link_to "new", new_beispiel_path %></h2> <% end %>
<% @beispiele.each do |b| %> </div>
<%= link_to b.name, b %> </div>
<% end %> <div class="span3">
<div class="modulgruppe_phase_2">
<h2>Beispiele <%= link_to "new", new_beispiel_path %></h2>
<% @beispiele.each do |b| %>
<%= link_to b.name, b %>
<% end %>
</div>
</div>
</div>
</div>
</div> </div>
<div class="span3">
<div class="row-fluid">
<h2>Error Log</h2>
<ul>
<li><b>Red</b>: Error, Solve immediately</li>
<li><b>Black</b>: Warning, should be solved</li>
<li><b>Green</b>: Everything is fine</li>
</ul>
<div class="modulgruppe_phase_1">
<ul>
<% @messages.flatten.each do |m| %><br>
<li><%= m.html_safe %></li>
<% end %>
</ul>
<b><font color="green"><%= I18n.t("verwalten.fehler.keine").html_safe if @messages.empty?%></font></b>
</div>
</div>
</div>
</div> </div>
</div>
</div>

View File

@@ -13,6 +13,7 @@ de:
allestudien: "Alle Studien" allestudien: "Alle Studien"
loeschen: "Dieses Studium löschen" loeschen: "Dieses Studium löschen"
edit: "Studium bearbeiten" edit: "Studium bearbeiten"
verwaltung: "Studien verwalten"
modul: modul:
edit: "Modul bearbeiten" edit: "Modul bearbeiten"
list: "Alle Module" list: "Alle Module"
@@ -102,6 +103,19 @@ de:
taken: "Der Name ist bereits vergeben" taken: "Der Name ist bereits vergeben"
typ: typ:
inclusion: 'Wählen Sie "Bachelor" oder "Master" aus' inclusion: 'Wählen Sie "Bachelor" oder "Master" aus'
modul:
attributes:
modulgruppen:
blank: "Wählen Sie zumindest eine Modulgruppe aus"
filter:
explanation: "Per Dropdown-Menü kann nach einzelnen Objekten gefiltert werden. Die Filter können kombiniert werden, wobei nur erlaubte Kombinationen möglich sind. <b>Solange validation-Fehler (im Log rot und fett) auftreten, keine Filter verwenden</b>"
studium: "Studium"
modulgruppe: "Modulgruppe"
modul: "Modul"
lva: "Lva"
beispiel: "Beispiel"
reset: "Alle Filter zurücksetzen"
verwalten:
fehler:
keine: "Keine Fehlermeldungen oder Warnungen"