diff --git a/app/controllers/lvas_controller.rb b/app/controllers/lvas_controller.rb index b353558..28d7172 100755 --- a/app/controllers/lvas_controller.rb +++ b/app/controllers/lvas_controller.rb @@ -31,10 +31,10 @@ class LvasController < ApplicationController # POST /lvas.json def create @lva = Lva.new(params[:lva]) - + Lva.add_semesters(@lva) respond_to do |format| if @lva.save - Lva.add_semesters(@lva) + format.html { redirect_to @lva, notice: 'Lva was successfully created.' } else diff --git a/app/models/lva.rb b/app/models/lva.rb index 8a17c1d..d08fa5c 100755 --- a/app/models/lva.rb +++ b/app/models/lva.rb @@ -32,10 +32,13 @@ class Lva < ActiveRecord::Base validates_presence_of :stunden # Stunden Eingetragen? validates_presence_of :modul # Zugehöriges Modul eingetragen? (zumindest eines) def self.add_semesters(l) - if l.semester.empty? - for m in l.modul - for mg in m.modulgruppen - l.semester << mg.studium.semester.last + + for m in l.modul + for mg in m.modulgruppen + hits = mg.studium.semester.all.map{|x| x.lvas}.collect{|x| x.find_by_id(l.id)}.compact + + if hits.empty? + l.semester << mg.studium.semester.where(:nummer => 0) end end end