diff --git a/app/controllers/studien_controller.rb b/app/controllers/studien_controller.rb
index 7e5e2f6..6964774 100755
--- a/app/controllers/studien_controller.rb
+++ b/app/controllers/studien_controller.rb
@@ -7,23 +7,35 @@ class StudienController < ApplicationController
@toolbar_elements<<{:icon =>: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
+ end
def show
@studium= Studium.find(params[:id])
+ @sem = params[:sem]
+ if @sem.nil?
+ @sem = 'true'
+ end
+ if @sem == 'true'
+ @change = 'false'
+ else
+ @change = 'true'
+ end
+
+
+
@studienphasen=[]
[1, 2 ,3].each do |ph|
- modulgruppen_phase=@studium.modulgruppen.where(:phase=>ph)
- if modulgruppen_phase.count==1
- opts={:width=>12, :slice=>1}
- elsif modulgruppen_phase.count <= 4
- opts={:width=>6, :slice=>2}
- else
- opts={:width=>4, :slice=>3}
- end
- modulgruppen =[]
+ modulgruppen_phase=@studium.modulgruppen.where(:phase=>ph)
+ if modulgruppen_phase.count==1
+ opts={:width=>12, :slice=>1}
+ elsif modulgruppen_phase.count <= 4
+ opts={:width=>6, :slice=>2}
+ else
+ opts={:width=>4, :slice=>3}
+ end
+ modulgruppen =[]
modulgruppen_phase.each_slice(opts[:slice]) do |s|
- modulgruppen<modulgruppen, :phase => ph}.merge(opts)
end
@@ -32,7 +44,6 @@ class StudienController < ApplicationController
@toolbar_elements<<{:text=> I18n.t('common.delete'),:path => studium_path(@studium), :method=> :delete,:confirm=>"Sure?" }
end
-
def new
@studium = Studium.new
end
@@ -45,6 +56,7 @@ class StudienController < ApplicationController
def create
@studium = Studium.new(params[:studium])
+ Semester.batch_add @studium.name, @studium.typ, @studium.semester
respond_to do |format|
if @studium.save
format.html { redirect_to url_for(@studium), notice: 'Studium was successfully created.' }
diff --git a/app/models/lva.rb b/app/models/lva.rb
index 279af18..680ce1c 100755
--- a/app/models/lva.rb
+++ b/app/models/lva.rb
@@ -17,10 +17,10 @@
class Lva < ActiveRecord::Base
has_paper_trail # Versionsverfolgung
- attr_accessible :desc, :ects, :lvanr, :name, :stunden, :modul_ids
-
+ attr_accessible :desc, :ects, :lvanr, :name, :stunden, :modul_ids, :semester_ids
has_and_belongs_to_many :modul # Gehört zu einem Modul
- has_and_belongs_to_many :semester # Gehört zu einem Semester( derzeit nicht implementiert)
+ has_and_belongs_to_many :semester
+ #Gehört zu einem Semester( derzeit nicht implementiert)
has_many :beispiele , :class_name => "Beispiel"
translates :desc, :fallbacks_for_empty_translations => true
diff --git a/app/models/semester.rb b/app/models/semester.rb
index ca866b6..617fdaf 100755
--- a/app/models/semester.rb
+++ b/app/models/semester.rb
@@ -1,3 +1,4 @@
+
# == Schema Information
#
# Table name: semesters
@@ -12,6 +13,37 @@
#
class Semester < ActiveRecord::Base
+ attr_accessible :name, :nummer, :ssws, :lva_ids
has_and_belongs_to_many :lvas
- attr_accessible :name, :nummer, :ss, :ws
+ belongs_to :studium, :foreign_key => "studium_id"
+ validates :name, :presence => true
+ validates :nummer, :presence => true
+ validates :ssws, :presence => true
+ class << self
+ def batch_add(name, type, target)
+ if type == "Bachelor"
+ length = 6
+ else
+ length = 4
+ end
+ for i in 1..length
+ semester =Semester.new()
+ semester.name = i.to_s + ". " + name
+ semester.nummer = i
+ if i % 2 == 0
+ semester.ssws = "SS"
+ else
+ semester.ssws = "WS"
+ end
+ semester.save
+ target << semester
+ end
+ end
+
+ def batch_destroy(studium)
+ for m in studium.semester
+ m.destroy
+ end
+ end
+ end
end
diff --git a/app/models/studium.rb b/app/models/studium.rb
index dea3dae..3a1d5de 100755
--- a/app/models/studium.rb
+++ b/app/models/studium.rb
@@ -13,8 +13,9 @@
#
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"
+ has_many :semester, :dependent => :destroy
validates :typ, :inclusion => {:in => ["Bachelor","Master"] }
validates :name, :uniqueness => true, :presence=>true
diff --git a/app/views/lvas/_form.html.erb b/app/views/lvas/_form.html.erb
index 488b048..49bbb78 100755
--- a/app/views/lvas/_form.html.erb
+++ b/app/views/lvas/_form.html.erb
@@ -1,5 +1,6 @@
<%= semantic_form_for @lva do |f| %>
<%= f.inputs do %>
+ <%= f.input :semester, :collection=>Semester.all.sort_by{|n| [:name]}%>
<%= f.input :modul %>
<%= f.input :name %>
<%= f.input :ects %>
diff --git a/app/views/lvas/_lva.html.erb b/app/views/lvas/_lva.html.erb
new file mode 100755
index 0000000..e78e1f7
--- /dev/null
+++ b/app/views/lvas/_lva.html.erb
@@ -0,0 +1,28 @@
+<% @lva.modul.each do |modul| %>
+<% modul.modulgruppen.each do |g| %>
+
+<% end %>
+
+
<%= notice %>
++ <%= @lva.lvanr %> + <%= @lva.name %> <%= @lva.ects %> ECTS/ <%= @lva.stunden %> Std + +
++ <%= @lva.desc %> +
+<%= notice %>
+<%= notice %>
- <%= link_to ''.html_safe+ I18n.t("studien.allestudien"), studien_path,:raw=>true %> - -