diff --git a/app/controllers/modulgruppen_controller.rb b/app/controllers/modulgruppen_controller.rb index c8167d6..abb8308 100755 --- a/app/controllers/modulgruppen_controller.rb +++ b/app/controllers/modulgruppen_controller.rb @@ -5,19 +5,20 @@ class ModulgruppenController < ApplicationController load_and_authorize_resource def index @modulgruppen = Modulgruppe.all - if !params[:studium_id].nil? - @studium=Studium.find(params[:studium_id]) - end - + if !params[:studium_id].nil? + @studium=Studium.find(params[:studium_id]) + else + @studium=Studium.first + end end # GET /modulgruppen/1 def show @modulgruppe = Modulgruppe.find(params[:id]) - if !params[:studium_id].nil? - @studium=Studium.find(params[:studium_id]) - end + if !params[:studium_id].nil? + @studium=Studium.find(params[:studium_id]) + end end @@ -25,9 +26,15 @@ class ModulgruppenController < ApplicationController def new @modulgruppe = Modulgruppe.new - if !params[:studium_id].nil? - @studium=Studium.find(params[:studium_id]) - end + if !params[:studium_id].nil? + @studium=Studium.find(params[:studium_id]) + else + @studium=Studium.first + end + respond_to do |format| + format.html # new.html.erb + format.json { render json: @modulgruppe } + end end @@ -35,26 +42,26 @@ class ModulgruppenController < ApplicationController def edit @modulgruppe = Modulgruppe.find(params[:id]) if !params[:studium_id].nil? - @studium=Studium.find(params[:studium_id]) - end + @studium=Studium.find(params[:studium_id]) + end end # POST /modulgruppen def create @modulgruppe = Modulgruppe.new(params[:modulgruppe]) - if !params[:studium_id].nil? + if !params[:studium_id].nil? @studium=Studium.find_by_id(params[:studium_id]) else @studium=Studium.find_by_id(params[:modulgruppe][:studium_id]) - end + end respond_to do |format| if @modulgruppe.save format.html { redirect_to @modulgruppe, notice: 'Modulgruppe was successfully created.' } else format.html { render action: "new" } - + end end end @@ -66,10 +73,10 @@ class ModulgruppenController < ApplicationController respond_to do |format| if @modulgruppe.update_attributes(params[:modulgruppe]) format.html { redirect_to @modulgruppe, notice: 'Modulgruppe was successfully updated.' } - + else format.html { render action: "edit" } - + end end end diff --git a/app/controllers/moduls_controller.rb b/app/controllers/moduls_controller.rb index 33aead5..8eb773a 100755 --- a/app/controllers/moduls_controller.rb +++ b/app/controllers/moduls_controller.rb @@ -4,12 +4,13 @@ class ModulsController < ApplicationController def index @moduls = Modul.all if !params[:studium_id].nil? - @studium=Studium.find(params[:studium_id]) - end + @studium=Studium.find(params[:studium_id]) + end respond_to do |format| format.html # index.html.erb format.json { render json: @moduls } end + end # GET /moduls/1 @@ -27,8 +28,10 @@ class ModulsController < ApplicationController # GET /moduls/new.json def new @modul = Modul.new - modulgruppe=Modulgruppe.find(params[:modulgruppen_id]) - @modul.modulgruppen<:plus, :text=> I18n.t('studien.new') ,:path=>new_studium_path } + @toolbar_elements<<{:text=> I18n.t('modulgruppe.show.link') ,:path=>modulgruppen_path } + @toolbar_elements<<{:text=> I18n.t('modul.show.link') ,:path=>moduls_path } end def show diff --git a/app/models/lva.rb b/app/models/lva.rb index 66a17f7..59dd2b9 100755 --- a/app/models/lva.rb +++ b/app/models/lva.rb @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- # == Schema Information # # Table name: lvas @@ -24,9 +25,12 @@ class Lva < ActiveRecord::Base translates :desc, :fallbacks_for_empty_translations => true - validates :lvanr, :presence=>true; # LVA Nr vorhanden? - validates :ects, :presence=>true; # ECTS vorhanden? - + validates :lvanr,:format=>{ :with => /^[0-9][0-9][0-9]\.[0-9][0-9][0-9]$/} # , :uniqueness=>true # LVA-Nummer muss das Format 000.000 besitzen (uniqueness?) oder 000 für nicht existent + + validates_presence_of :ects # ECTS vorhanden? + validates_presence_of :name # Name Eingetragen? + validates_presence_of :stunden # Stunden Eingetragen? + validates_presence_of :modul # Zugehöriges Modul eingetragen? (zumindest eines) private ## diff --git a/app/models/modul.rb b/app/models/modul.rb index 84fcfca..b03a060 100755 --- a/app/models/modul.rb +++ b/app/models/modul.rb @@ -1,3 +1,4 @@ +# -*- coding: undecided -*- # == Schema Information # # Table name: moduls @@ -13,9 +14,11 @@ class Modul < ActiveRecord::Base attr_accessible :desc,:name, :depend, :studium_id, :modulgruppe_ids - has_and_belongs_to_many :lvas + has_and_belongs_to_many :lvas has_and_belongs_to_many :modulgruppen + validates :modulgruppen, :presence=>true # Ein Modul muss zu einer Modulgruppe gehören + validates :name, :presence=>true # Ein Modul muss einen Namen haben translates :desc,:depend,:name, :versioning =>true, :fallbacks_for_empty_translations => true end diff --git a/app/models/modulgruppe.rb b/app/models/modulgruppe.rb index 2d06fe4..47fa049 100755 --- a/app/models/modulgruppe.rb +++ b/app/models/modulgruppe.rb @@ -16,10 +16,12 @@ class Modulgruppe < ActiveRecord::Base attr_accessible :name, :phase, :typ,:desc, :studium_id belongs_to :studium, :foreign_key => "studium_id" has_and_belongs_to_many :moduls + resourcify - validates :studium_id, :presence => true - validates :studium, :presence => true - validates :name, :uniqueness =>{:scope => :studium}, :presence=>true + + validates :studium_id, :presence => true # Bei der Abfrage ist student_id entscheidend + validates :studium, :presence => true # Wird gesetzt, um das richtige Feld zu melden bei Fehlern + validates :name, :uniqueness =>{:scope => :studium}, :presence=>true # Funktioniert leider nicht validates :phase, :inclusion => {:in => [1, 2, 3, 4]} validates :typ, :inclusion => {:in => ["Pflicht","Vertiefungspflicht","Wahl"] } translates :name,:desc, :versioning =>true,:fallbacks_for_empty_translations => true diff --git a/app/views/lvas/show.html.erb b/app/views/lvas/show.html.erb index 7ebe219..66ebf33 100755 --- a/app/views/lvas/show.html.erb +++ b/app/views/lvas/show.html.erb @@ -1,7 +1,7 @@ <% @lva.modul.each do |modul| %> <% modul.modulgruppen.each do |g| %> - + - + + diff --git a/app/views/modulgruppen/index.html.erb b/app/views/modulgruppen/index.html.erb index f304aaa..871c406 100755 --- a/app/views/modulgruppen/index.html.erb +++ b/app/views/modulgruppen/index.html.erb @@ -1,4 +1,4 @@ -

Listing modulgruppen

+

<%= I18n.t("modulgruppe.show.title")%>

@@ -11,7 +11,7 @@ -<% @modulgruppen.each do |modulgruppe| %> +<% @modulgruppen.sort_by{|n| n[:name]}.each do |modulgruppe| %> @@ -24,7 +24,7 @@ <% end %>
<%= modulgruppe.typ %> <%= modulgruppe.phase %>
-
+
<% if !@studium.nil? %> -<%= link_to 'New Modulgruppe', new_modulgruppe_path %> +<%= link_to 'New Modulgruppe', new_studium_modulgruppe_path(@studium) %> <% end%> diff --git a/app/views/moduls/index.html.erb b/app/views/moduls/index.html.erb index 6f22799..933d4a7 100755 --- a/app/views/moduls/index.html.erb +++ b/app/views/moduls/index.html.erb @@ -1,9 +1,8 @@ -

Alle Module der Elektrotechnik

+

<%= I18n.t("modul.show.title") %>

- - + @@ -11,12 +10,19 @@ -<% @moduls.each do |modul| %> +<% @moduls.sort_by{|n| n[:name]}.each do |modul| %> - - + + @@ -27,6 +33,7 @@ end %>
StudiumModulgruppeModulgruppe (Studium) Name Desc
<%= %><%= if !modul.modulgruppen.first.nil? -modul.modulgruppen.first[:name] -end %> + <%modul.modulgruppen.sort_by{|n| n[:name]}.each do |m|%> + + + <%=m.name unless m.nil? %> (<%=m.studium.name unless m.studium.nil? %>) + +
+ <% end %> + +
<%= modul.name %> <%= modul.desc %> <%= link_to 'Show', modul_path(modul) %>

-<% if !@studium.nil? %> +<% #if !@studium.nil? %> <%= link_to 'New Modul', new_modul_path() %> -<% end%> +<% #end%> + diff --git a/app/views/studien/index.html.erb b/app/views/studien/index.html.erb index 31d1a18..52068d1 100755 --- a/app/views/studien/index.html.erb +++ b/app/views/studien/index.html.erb @@ -1,7 +1,7 @@

<%= I18n.t("studien.list") %>

-<% @studien.each do |studium| %> +<% @studien.sort_by{|z| z[:zahl]}.each do |studium| %>

<%= link_to studium.zahl + " "+ studium.typ+" " + studium.name, studium_path(studium) %>

@@ -10,6 +10,6 @@
- <% link_to I18n.t("studien.new"), new_studium_path %> +<% link_to I18n.t("modulgruppe.show"), modulgruppen_path %> <%= toolbar_html(@toolbar_elements) %> diff --git a/config/locales/de.yml b/config/locales/de.yml index 410ff67..ae777b7 100755 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -15,12 +15,18 @@ de: modul: edit: title: "Bearbeite Modul" + show: + title: "Auflistung aller Module" + link: "Alle Module auflisten" modulgruppe: typ: "Typ" addmodul: "Neues Modul hinzufügen" studium: "Studium" new: "Neue Modulgruppe" + show: + title: "Auflistung aller Modulgruppen" + link: "Modulgruppen auflisten" home: mtitle: "Menu" @@ -65,3 +71,16 @@ de: name: blank: "Bitte geben sie einen Namen ein" taken: "Der Name ist schon vergeben (Hier ist ein Bug)" + lva: + attributes: + modul: + blank: "Wählen Sie zumindest ein Modul aus" + name: + blank: "Geben Sie bitte den Namen der LVA an" + ects: + blank: "Geben Sie die ECTS der LVA an" + stunden: + blank: "Geben Sie die Stunden der LVA an" + lvanr: + invalid: "Geben Sie eine LVA-Nummer in richtigem Format an. Wenn die LVA noch keine Nummer hat, so geben sie 000 an." +