Merge branch 'master' into calendar

This commit is contained in:
Thomas Blazek
2013-08-12 13:31:47 +02:00
13 changed files with 76 additions and 55 deletions

View File

@@ -1,6 +1,9 @@
form.formtastic .stringish input { form.formtastic .stringish input {
width:90%; width:90%;
} }
form.formtastic select {
width:90%
}
form.formtastic textarea { form.formtastic textarea {
width:90%; width:90%;
height:20em; height:20em;

View File

@@ -184,10 +184,10 @@ class StudienController < ApplicationController
for m in @module for m in @module
if m.valid? if m.valid?
@messages << m.name + ' hat keine Modulgruppe' if m.modulgruppen.count == 0 @messages << m.name.to_s + ' hat keine Modulgruppe' if m.modulgruppen.count == 0
@messages << m.name + ' hat keine Lvas' if m.lvas.count == 0 @messages << m.name.to_s + ' hat keine Lvas' if m.lvas.count == 0
else else
@messages << '<font color="red"><b>'+m.name + ': ' @messages << '<font color="red"><b>'+m.name.to_s + ': '
@messages << m.errors.full_messages @messages << m.errors.full_messages
@messages << '</font></b>' @messages << '</font></b>'
end end

View File

@@ -16,8 +16,9 @@
# #
class Lva < ActiveRecord::Base class Lva < ActiveRecord::Base
ERLAUBTE_TYPEN = ['VO', 'UE', 'VU', 'LU', 'SE', 'andere'];
has_paper_trail # Versionsverfolgung has_paper_trail # Versionsverfolgung
attr_accessible :desc, :ects, :lvanr, :name, :stunden, :modul_ids, :semester_ids, :pruefungsinformation, :lernaufwand attr_accessible :desc, :ects, :lvanr, :name, :stunden, :modul_ids, :semester_ids, :pruefungsinformation, :lernaufwand, :typ
has_and_belongs_to_many :modul # Gehört zu einem Modul has_and_belongs_to_many :modul # Gehört zu einem Modul
has_and_belongs_to_many :semester has_and_belongs_to_many :semester
#Gehört zu einem Semester( derzeit nicht implementiert) #Gehört zu einem Semester( derzeit nicht implementiert)
@@ -27,8 +28,8 @@ class Lva < ActiveRecord::Base
validates :lvanr,:format=>{ :with => /^[0-9][0-9][0-9]\.[0-9][0-9][0-9]$/}, :presence=>true, :uniqueness=>true # , :uniqueness=>true # LVA-Nummer muss das Format 000.000 besitzen (uniqueness?) oder 000 für nicht validates :lvanr,:format=>{ :with => /^[0-9][0-9][0-9]\.[0-9][0-9][0-9]$/}, :presence=>true, :uniqueness=>true # , :uniqueness=>true # LVA-Nummer muss das Format 000.000 besitzen (uniqueness?) oder 000 für nicht
validates_presence_of :ects # ECTS vorhanden? validates_presence_of :ects # ECTS vorhanden?
validates :name, :presence=>true validates :name, :presence=>true, :uniqueness=>true# Name Eingetragen?
validates :name, :uniqueness=>true# Name Eingetragen? validates :typ, :presence=>true, :inclusion=> ERLAUBTE_TYPEN
validates_presence_of :stunden # Stunden Eingetragen? validates_presence_of :stunden # Stunden Eingetragen?
validates_presence_of :modul # Zugehöriges Modul eingetragen? (zumindest eines) validates_presence_of :modul # Zugehöriges Modul eingetragen? (zumindest eines)
def add_semesters def add_semesters

View File

@@ -8,8 +8,11 @@
<div class="span9"> <div class="span9">
<div class="form-group"> <div class="form-group">
<div class="row-fluid"> <div class="row-fluid">
<%= f.input :typ, :as=>:select, :include_blank=>false, :collection=>Lva::ERLAUBTE_TYPEN, :wrapper_html=>{:class=>'span2'}%>
<%= f.input :name, :wrapper_html=>{:class=>'span5'}%>
<%= f.input :name, :wrapper_html=>{:class=>'span10'}%>
</div>
<div class="row-fluid">
<div class="span7"%> <div class="span7"%>
<div class="row-fluid"> <div class="row-fluid">
<%= f.input :lvanr, :wrapper_html=>{:class=>'span4'}%> <%= f.input :lvanr, :wrapper_html=>{:class=>'span4'}%>

View File

@@ -3,7 +3,7 @@
<p id="notice"><%= notice %></p> <p id="notice"><%= notice %></p>
<div class="row-fluid"> <div class="row-fluid">
<div class="span8"> <div class="span8">
<h1><%= @lva.name %></h1> <h1><%=@lva.typ.to_s + ' ' + @lva.name %></h1>
<h2>Prüfungsinformation</h2> <h2>Prüfungsinformation</h2>
<div class="lva-beschreibung"> <div class="lva-beschreibung">
<%= @lva.pruefungsinformation %> <%= @lva.pruefungsinformation %>

View File

@@ -1,11 +1,4 @@
<ul class="breadcrumb">
<li>
<%= link_to @modulgruppe.studium.name, studium_path(@modulgruppe.studium) %> <span class="divider">/</span></li>
</ul><p id="notice"><%= notice %></p> </ul><p id="notice"><%= notice %></p>
<div class ="modulgruppe_phase_<%= @modulgruppe.phase %>">
<h1> <h1>
<%= @modulgruppe.name %> <%= @modulgruppe.name %>
</h1> </h1>
@@ -21,7 +14,6 @@
<% @modulgruppe.moduls.each do |modul| %> <% @modulgruppe.moduls.each do |modul| %>
<%= render 'moduls/kurz', :modul=>modul%> <%= render 'moduls/kurz', :modul=>modul%>
<% end %> <% end %>
</div>
<span class="label"><%= I18n.t("common.actions")%></span> <span class="label"><%= I18n.t("common.actions")%></span>
@@ -30,4 +22,4 @@
<%= link_to I18n.t("modulgruppe.studium"), studium_path(@modulgruppe.studium),:class =>"btn" %> <%= link_to I18n.t("modulgruppe.studium"), studium_path(@modulgruppe.studium),:class =>"btn" %>
<%= link_to I18n.t("common.edit"), edit_modulgruppe_path(@modulgruppe),:class =>"btn" %> <%= link_to I18n.t("common.edit"), edit_modulgruppe_path(@modulgruppe),:class =>"btn" %>
<%= link_to I18n.t("common.delete"),[@modulgruppe], :method=>:delete , :data=>{:confirm=>I18n.t("common.sure")} ,:class=>"btn" %> <%= link_to I18n.t("common.delete"),[@modulgruppe], :method=>:delete , :data=>{:confirm=>I18n.t("common.sure")} ,:class=>"btn" %>
</div> </div>

View File

@@ -1,10 +1,6 @@
<div style="border: solid 1px; padding:2px;margin-top:5px;"><p> <div style="border: solid 1px; padding:2px;margin-top:5px;"><p>
<b><% if !modul.name.nil? %><%= link_to "Modul "+ modul.name , modul_path(modul) %> <%end%></b> <b><% if !modul.name.nil? %><%= link_to "Modul "+ modul.name , modul_path(modul) %> <%end%></b>
</p> </p>
<p >
<%= raw(modul.desc) %>
</p>
<% link_to '<i class="icon-pencil"></i>'.html_safe+I18n.t("common.edit"), edit_modul_path(modul) %> <% link_to '<i class="icon-pencil"></i>'.html_safe+I18n.t("common.edit"), edit_modul_path(modul) %>
</div> </div>

View File

@@ -2,22 +2,27 @@
<h1><%=@modul.name %></h1> <h1><%=@modul.name %></h1>
<h2>Beschreibung </h2>
<div class="row-fluid">
<div class="span8">
<h2>Beschreibung </h2>
<p> <p>
<%= raw(@modul.desc) %> <%= raw(@modul.desc) %>
</p> </p>
<h2>Lvas</h2>
<% @modul.lvas.each_slice(3) do |row| %>
<div class="row-fluid">
<% row.each do |lv| %>
<div class="span4">
<%= render 'lvas/lva_semester', :lva=>lv%>
</div>
<% end %>
</div>
<% end %> </div>
<h2>Modulgruppen</h2> <div class="span4">
<h2>Modulgruppen</h2>
<% @modul.modulgruppen.each do |mg| %> <% @modul.modulgruppen.each do |mg| %>
<%= render 'modulgruppen/kurz', :modulgruppe=>mg %><br> <%= render 'modulgruppen/kurz', :modulgruppe=>mg %><br>
<% end %> <% end %>
<h2>Lvas</h2>
<% @modul.lvas.each_slice(3) do |row| %>
<% row.each do |lv| %>
<%= render 'lvas/lva_semester', :lva=>lv%>
<% end %>
<% end %>
</div></div>

View File

@@ -3,14 +3,14 @@
<div class="row-fluid"> <div class="row-fluid">
<div class="span9"> <div class="span9">
<h1><%= I18n.t("studien.verwaltung") %></h1> <%= link_to I18n.t("filter.reset"), studien_verwalten_path(:std_verw=>nil, :mg_verw=>nil, :m_verw=>nil, :lva_verw=>nil, :b_verw=>nil), :class=>"btn" %> <h1><%= I18n.t("studien.verwaltung.title") %></h1>
<%= I18n.t("filter.explanation").html_safe %> <%= I18n.t("studien.verwaltung.explanation").html_safe %>
<h2>Studien </h2> <h2>Studien </h2>
<div class="verwalten-block"> <div class="verwalten-block">
| |
<% @studien.each do |s| %> <% @studien.each do |s| %>
<%= link_to s.name, s %> <%= (s.valid?) ? "Gültig" : "Problemfall" %> | <% end %> <%= (s.valid?) ? '<i class="icon-ok"> </i>'.html_safe : '<i class="icon-remove"></i>'.html_safe %> <%= link_to s.name, s %> | <%=link_to '<i class="icon-pencil"></i>'.html_safe+ 'edit', edit_studium_path(s)%> ||<% end %>
<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="#">
@@ -36,7 +36,7 @@
<h2>Modulgruppen </h2> <h2>Modulgruppen </h2>
<div class="verwalten-block"> <div class="verwalten-block">
<% @modulgruppen.each do |mg| %> <% @modulgruppen.each do |mg| %>
<%= link_to mg.name, mg %> | <%= (mg.valid?) ? "Gültig" : "Problemfall" %><br> <%= (mg.valid?) ? '<i class="icon-ok"> </i>'.html_safe : '<i class="icon-remove"></i>'.html_safe %> <%= link_to mg.name, mg %> | <%=link_to '<i class="icon-pencil"></i>'.html_safe+ 'edit', edit_modulgruppe_path(mg)%><br>
<% end %> <% end %>
<div class="btn-toolbar"> <div class="btn-toolbar">
<div class="btn-group"> <div class="btn-group">
@@ -65,8 +65,8 @@
<% @module.each do |m| %> <% @module.each do |m| %>
<%= link_to m.name, m %> <%= (m.valid?) ? '<i class="icon-ok"> </i>'.html_safe : '<i class="icon-remove"></i>'.html_safe %> <%= link_to m.name, m %>
| <%= (m.valid?) ? "Gültig" : "Problemfall" %><br> | <%=link_to '<i class="icon-pencil"></i>'.html_safe+ 'edit', edit_modul_path(m)%><br>
<% end %> <% end %>
<div class="btn-toolbar"> <div class="btn-toolbar">
<div class="btn-group"> <div class="btn-group">
@@ -93,8 +93,8 @@
<% @lvas.each do |lva| %> <% @lvas.each do |lva| %>
<%= link_to lva.name, lva %> | <%= (lva.valid?) ? '<i class="icon-ok"> </i>'.html_safe : '<i class="icon-remove"></i>'.html_safe %><%= link_to lva.name, lva %> |
<%= (lva.valid?) ? "Gültig" : "Problemfall" %><br> <%=link_to '<i class="icon-pencil"></i>'.html_safe+ 'edit', edit_lva_path(lva)%><br>
<% end %> <% end %>
<div class="btn-toolbar"> <div class="btn-toolbar">
@@ -123,11 +123,12 @@
</div> </div>
</div> </div>
<div class="span3"> <div class="span3">
<%= link_to I18n.t("filter.reset"), studien_verwalten_path(:std_verw=>nil, :mg_verw=>nil, :m_verw=>nil, :lva_verw=>nil, :b_verw=>nil), :class=>"btn" %>
<h2>Error Log</h2> <h2>Error Log</h2>
<ul> <ul>
<li><b>Red</b>: Error, Solve immediately</li> <li><font color="red"><b>Red</b></font>: Error, Solve immediately</li>
<li><b>Black</b>: Warning, should be solved</li> <li>Black: Warning, should be solved</li>
<li><b>Green</b>: Everything is fine</li> <li><font color="green"><b>Green</b></font>: Everything is fine</li>
</ul> </ul>
<div class="verwalten-block"> <div class="verwalten-block">
<ul> <ul>
@@ -144,7 +145,7 @@
<% @beispiele.each do |b| %> <% @beispiele.each do |b| %>
<%= link_to b.name, b %> <%= (b.valid?) ? '<i class="icon-ok"> </i>'.html_safe : '<i class="icon-remove"></i>'.html_safe %> <%= link_to b.name, b %> | <%=link_to '<i class="icon-pencil"></i>'.html_safe+ 'edit', edit_beispiel_path(b)%>
<% end %> <% end %>
<div class="btn-toolbar"> <div class="btn-toolbar">
<div class="btn-group"> <div class="btn-group">

View File

@@ -13,7 +13,12 @@ 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" verwaltung:
title: "Studien verwalten"
explanation: "<ul>
<li>Klick auf den Namen eines Objektes führt zu dessen Ansicht, ein Klick auf edit direkt zum Bearbeitungsformular</li>
<li>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></li>
</ul>"
modul: modul:
edit: "Modul bearbeiten" edit: "Modul bearbeiten"
list: "Alle Module" list: "Alle Module"
@@ -83,17 +88,20 @@ de:
lva: lva:
attributes: attributes:
modul: modul:
blank: "Wählen Sie zumindest ein Modul aus" blank: "Lva muss zumindest einem Modul zugewiesen sein"
name: name:
blank: "Geben Sie bitte den Namen der LVA an" blank: "Die Lva muss einen Namen haben"
ects: ects:
blank: "Geben Sie die ECTS der LVA an" blank: "Es müssen ECTS eingetragen sein"
stunden: stunden:
blank: "Geben Sie die Stunden der LVA an" blank: "Es muss die Studenanzahl eingettragen sein"
lvanr: lvanr:
invalid: "Geben Sie eine Nummer im Format 000.000 an." invalid: "Die Nummer muss im Format 000.000 eingegeben sein"
blank: "Geben sie eine Lva-Nr an" blank: "Geben sie eine Lva-Nr an"
taken: "Die Lva-Nummer ist bereits vergeben" taken: "Die Lva-Nummer ist vergeben"
typ:
blank: "Es muss ein Lva-Typ angegeben sein"
inclusion: "Der Typ ist nicht aus der Auswahl der gültigen Typen"
studium: studium:
attributes: attributes:
@@ -111,7 +119,7 @@ de:
modulgruppen: modulgruppen:
blank: "Wählen Sie zumindest eine Modulgruppe aus" blank: "Wählen Sie zumindest eine Modulgruppe aus"
filter: 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" studium: "Studium"
modulgruppe: "Modulgruppe" modulgruppe: "Modulgruppe"
modul: "Modul" modul: "Modul"

View File

@@ -0,0 +1,6 @@
class AddPruefungsinfosToLvas < ActiveRecord::Migration
def change
add_column :lvas, :pruefungsinformation, :text
add_column :lvas, :lernaufwand, :text
end
end

View File

@@ -0,0 +1,5 @@
class AddTypToLvas < ActiveRecord::Migration
def change
add_column :lvas, :typ, :string
end
end

View File

@@ -11,7 +11,7 @@
# #
# It's strongly recommended to check this file into your version control system. # It's strongly recommended to check this file into your version control system.
ActiveRecord::Schema.define(:version => 20130811191150) do ActiveRecord::Schema.define(:version => 20130812070544) do
create_table "attachments", :force => true do |t| create_table "attachments", :force => true do |t|
t.string "name" t.string "name"
@@ -116,6 +116,7 @@ ActiveRecord::Schema.define(:version => 20130811191150) do
t.integer "semester_id" t.integer "semester_id"
t.text "pruefungsinformation" t.text "pruefungsinformation"
t.text "lernaufwand" t.text "lernaufwand"
t.string "typ"
end end
create_table "lvas_moduls", :id => false, :force => true do |t| create_table "lvas_moduls", :id => false, :force => true do |t|