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 %> +

+ +<%= toolbar_html(@toolbar_elements) %> diff --git a/app/views/lvas/_lva_semester.html.erb b/app/views/lvas/_lva_semester.html.erb new file mode 100755 index 0000000..7168aa7 --- /dev/null +++ b/app/views/lvas/_lva_semester.html.erb @@ -0,0 +1,5 @@ +
+ <%= %> + <%= link_to lva.lvanr.to_s + " " + lva.name + "", lva_path(lva) %> <%= lva.ects %> ECTS/ <%= lva.stunden %> Std +
+<% #toolbar_html(@toolbar_elements) %> diff --git a/app/views/semesters/_form.html.erb b/app/views/semesters/_form.html.erb index 85a79e6..710e4ea 100755 --- a/app/views/semesters/_form.html.erb +++ b/app/views/semesters/_form.html.erb @@ -2,8 +2,8 @@ <%= f.inputs do %> <%= f.input :name %> <%= f.input :nummer %> - <%= f.input :ws %> - <%= f.input :ss %> + <%= f.input :ssws %> + <%= f.input :lvas %> <% end %> <%= f.actions do %> diff --git a/app/views/semesters/index.html.erb b/app/views/semesters/index.html.erb index 1a62a2f..3ec5688 100755 --- a/app/views/semesters/index.html.erb +++ b/app/views/semesters/index.html.erb @@ -15,8 +15,8 @@ <%= semester.name %> <%= semester.nummer %> - <%= semester.ws %> - <%= semester.ss %> + <%= semester.ssws %> + <% %> <%= link_to 'Show', semester %> <%= link_to 'Edit', edit_semester_path(semester) %> <%= link_to 'Destroy', semester, method: :delete, data: { confirm: 'Are you sure?' } %> diff --git a/app/views/studien/_semesteransicht.html.erb b/app/views/studien/_semesteransicht.html.erb new file mode 100644 index 0000000..d229dd1 --- /dev/null +++ b/app/views/studien/_semesteransicht.html.erb @@ -0,0 +1,12 @@ + +

<%= @studium.typ %> <%= @studium.name %> (<%= @studium.zahl %>)

+ + <%= raw(@studium.desc) %> +<% @studium.semester.each do |sem| %> +
+

<%= sem.nummer.to_s + ". Semester" %>

+
+<%= render :partial=>'lvas/lva_semester', :collection=>sem.lvas, :as=>:lva%> +
+<% end %> +
diff --git a/app/views/studien/_studien.html.erb b/app/views/studien/_studien.html.erb new file mode 100755 index 0000000..65b0ae4 --- /dev/null +++ b/app/views/studien/_studien.html.erb @@ -0,0 +1,17 @@ + +

<%= @studium.typ %> <%= @studium.name %> (<%= @studium.zahl %>)

+ + <%= raw(@studium.desc) %> + <% @studienphasen.each do |sp| %> + <% sp[:modulgruppen].each do |row| %> +
+ <% row.each do |modulgruppe| %> +
+ <%= render modulgruppe %> +
+ <% end %> +
+ <% end %> + <% end %> + + diff --git a/app/views/studien/index.html.erb b/app/views/studien/index.html.erb index 52068d1..eb87bce 100755 --- a/app/views/studien/index.html.erb +++ b/app/views/studien/index.html.erb @@ -4,7 +4,7 @@ <% @studien.sort_by{|z| z[:zahl]}.each do |studium| %> -

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

+

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

<%= link_to "Modulansicht", studium_path(studium, :sem=>"false") %>

<% end %> diff --git a/app/views/studien/show.html.erb b/app/views/studien/show.html.erb old mode 100755 new mode 100644 index 6c755c2..4c97a77 --- a/app/views/studien/show.html.erb +++ b/app/views/studien/show.html.erb @@ -1,32 +1,28 @@
-
-

<%= notice %>

+
+

<%= notice %>

- <%= link_to ''.html_safe+ I18n.t("studien.allestudien"), studien_path,:raw=>true %> - -

<%= @studium.typ %> <%= @studium.name %> (<%= @studium.zahl %>)

-
- <%= raw(@studium.desc) %> - <% @studienphasen.each do |sp| %> - <% sp[:modulgruppen].each do |row| %> -
- <% row.each do |modulgruppe| %> -
- <%= render modulgruppe %> -
- <% end %> -
- <% end %> - <% end %> + <%= link_to ''.html_safe+ I18n.t("studien.allestudien"), studien_path,:raw=>true %>|<%= link_to "Ansicht wechseln", studium_path(@studium, :sem => @change)%> -
- -<%= link_to ''.html_safe+I18n.t("studien.newmodulgroup"), new_studium_modulgruppe_path(@studium),:class=>"btn" %> | -<%= link_to ''.html_safe+I18n.t("common.edit"), edit_studium_path(@studium) ,:class=>"btn"%> -<%= link_to 'Destroy', @studium, method: :delete, data: { confirm: 'Are you sure?' } %> - -
+<%= @sem %> +<% if @sem=='false'%> +<% @change = 'true' %> +<%= render :partial => "studien/studien", @collection => @studium, :as=>:studium%> +<% else %> +<%= render :partial =>"studien/semesteransicht", @collection => @studium, :as=>:studium%> +<% @change = 'false' %> +<% end %> +
+ + +
+ + <%= link_to ''.html_safe+I18n.t("studien.newmodulgroup"), new_studium_modulgruppe_path(@studium),:class=>"btn" %> | + <%= link_to ''.html_safe+I18n.t("common.edit"), edit_studium_path(@studium) ,:class=>"btn"%> + <%= link_to 'Destroy', @studium, method: :delete, data: { confirm: 'Are you sure?' } %> + +