Introducing Semesters
This commit is contained in:
@@ -11,6 +11,18 @@ class StudienController < ApplicationController
|
|||||||
|
|
||||||
def show
|
def show
|
||||||
@studium= Studium.find(params[:id])
|
@studium= Studium.find(params[:id])
|
||||||
|
@sem = params[:sem]
|
||||||
|
if @sem.nil?
|
||||||
|
@sem = 'true'
|
||||||
|
end
|
||||||
|
if @sem == 'true'
|
||||||
|
@change = 'false'
|
||||||
|
else
|
||||||
|
@change = 'true'
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@studienphasen=[]
|
@studienphasen=[]
|
||||||
[1, 2 ,3].each do |ph|
|
[1, 2 ,3].each do |ph|
|
||||||
modulgruppen_phase=@studium.modulgruppen.where(:phase=>ph)
|
modulgruppen_phase=@studium.modulgruppen.where(:phase=>ph)
|
||||||
@@ -23,7 +35,7 @@ class StudienController < ApplicationController
|
|||||||
end
|
end
|
||||||
modulgruppen =[]
|
modulgruppen =[]
|
||||||
modulgruppen_phase.each_slice(opts[:slice]) do |s|
|
modulgruppen_phase.each_slice(opts[:slice]) do |s|
|
||||||
modulgruppen<<s
|
modulgruppen<<s #
|
||||||
end
|
end
|
||||||
@studienphasen << {:modulgruppen=>modulgruppen, :phase => ph}.merge(opts)
|
@studienphasen << {:modulgruppen=>modulgruppen, :phase => ph}.merge(opts)
|
||||||
end
|
end
|
||||||
@@ -32,7 +44,6 @@ class StudienController < ApplicationController
|
|||||||
@toolbar_elements<<{:text=> I18n.t('common.delete'),:path => studium_path(@studium), :method=> :delete,:confirm=>"Sure?" }
|
@toolbar_elements<<{:text=> I18n.t('common.delete'),:path => studium_path(@studium), :method=> :delete,:confirm=>"Sure?" }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
def new
|
def new
|
||||||
@studium = Studium.new
|
@studium = Studium.new
|
||||||
end
|
end
|
||||||
@@ -45,6 +56,7 @@ class StudienController < ApplicationController
|
|||||||
|
|
||||||
def create
|
def create
|
||||||
@studium = Studium.new(params[:studium])
|
@studium = Studium.new(params[:studium])
|
||||||
|
Semester.batch_add @studium.name, @studium.typ, @studium.semester
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
if @studium.save
|
if @studium.save
|
||||||
format.html { redirect_to url_for(@studium), notice: 'Studium was successfully created.' }
|
format.html { redirect_to url_for(@studium), notice: 'Studium was successfully created.' }
|
||||||
|
|||||||
@@ -17,10 +17,10 @@
|
|||||||
|
|
||||||
class Lva < ActiveRecord::Base
|
class Lva < ActiveRecord::Base
|
||||||
has_paper_trail # Versionsverfolgung
|
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 :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"
|
has_many :beispiele , :class_name => "Beispiel"
|
||||||
|
|
||||||
translates :desc, :fallbacks_for_empty_translations => true
|
translates :desc, :fallbacks_for_empty_translations => true
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
# == Schema Information
|
# == Schema Information
|
||||||
#
|
#
|
||||||
# Table name: semesters
|
# Table name: semesters
|
||||||
@@ -12,6 +13,37 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
class Semester < ActiveRecord::Base
|
class Semester < ActiveRecord::Base
|
||||||
|
attr_accessible :name, :nummer, :ssws, :lva_ids
|
||||||
has_and_belongs_to_many :lvas
|
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
|
end
|
||||||
|
|||||||
@@ -13,8 +13,9 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
class Studium < ActiveRecord::Base
|
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 :modulgruppen, inverse_of: :studium, :class_name => "Modulgruppe"
|
||||||
|
has_many :semester, :dependent => :destroy
|
||||||
|
|
||||||
validates :typ, :inclusion => {:in => ["Bachelor","Master"] }
|
validates :typ, :inclusion => {:in => ["Bachelor","Master"] }
|
||||||
validates :name, :uniqueness => true, :presence=>true
|
validates :name, :uniqueness => true, :presence=>true
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
<%= semantic_form_for @lva do |f| %>
|
<%= semantic_form_for @lva do |f| %>
|
||||||
<%= f.inputs do %>
|
<%= f.inputs do %>
|
||||||
|
<%= f.input :semester, :collection=>Semester.all.sort_by{|n| [:name]}%>
|
||||||
<%= f.input :modul %>
|
<%= f.input :modul %>
|
||||||
<%= f.input :name %>
|
<%= f.input :name %>
|
||||||
<%= f.input :ects %>
|
<%= f.input :ects %>
|
||||||
|
|||||||
28
app/views/lvas/_lva.html.erb
Executable file
28
app/views/lvas/_lva.html.erb
Executable file
@@ -0,0 +1,28 @@
|
|||||||
|
<% @lva.modul.each do |modul| %>
|
||||||
|
<% modul.modulgruppen.each do |g| %>
|
||||||
|
<ul class="breadcrumb">
|
||||||
|
<li><%= link_to g.studium.name , studium_path(g.studium)%>
|
||||||
|
<span class="divider"></span></li>
|
||||||
|
<li><%= link_to g.name , modulgruppe_path(g)%><span class="divider">/</span></li>
|
||||||
|
<li><%= link_to modul.name , modul_path(modul)%></li>
|
||||||
|
<% end %>
|
||||||
|
</ul>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<p id="notice"><%= notice %></p>
|
||||||
|
<p>
|
||||||
|
<%= @lva.lvanr %>
|
||||||
|
<b><%= @lva.name %> <%= @lva.ects %> ECTS/ <%= @lva.stunden %> Std</b>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<%= @lva.desc %>
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<% @lva.beispiele.each do |b|%>
|
||||||
|
|
||||||
|
<li><%= render b%></li>
|
||||||
|
|
||||||
|
<% end %>
|
||||||
|
</ul>
|
||||||
|
<%= toolbar_html(@toolbar_elements) %>
|
||||||
5
app/views/lvas/_lva_semester.html.erb
Executable file
5
app/views/lvas/_lva_semester.html.erb
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
<div class="lva_semester">
|
||||||
|
<%= %>
|
||||||
|
<b> <%= link_to lva.lvanr.to_s + " " + lva.name + "", lva_path(lva) %> </b><%= lva.ects %> ECTS/ <%= lva.stunden %> Std
|
||||||
|
</div class="lva_semester">
|
||||||
|
<% #toolbar_html(@toolbar_elements) %>
|
||||||
@@ -2,8 +2,8 @@
|
|||||||
<%= f.inputs do %>
|
<%= f.inputs do %>
|
||||||
<%= f.input :name %>
|
<%= f.input :name %>
|
||||||
<%= f.input :nummer %>
|
<%= f.input :nummer %>
|
||||||
<%= f.input :ws %>
|
<%= f.input :ssws %>
|
||||||
<%= f.input :ss %>
|
<%= f.input :lvas %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= f.actions do %>
|
<%= f.actions do %>
|
||||||
|
|||||||
@@ -15,8 +15,8 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td><%= semester.name %></td>
|
<td><%= semester.name %></td>
|
||||||
<td><%= semester.nummer %></td>
|
<td><%= semester.nummer %></td>
|
||||||
<td><%= semester.ws %></td>
|
<td><%= semester.ssws %></td>
|
||||||
<td><%= semester.ss %></td>
|
<td><% %></td>
|
||||||
<td><%= link_to 'Show', semester %></td>
|
<td><%= link_to 'Show', semester %></td>
|
||||||
<td><%= link_to 'Edit', edit_semester_path(semester) %></td>
|
<td><%= link_to 'Edit', edit_semester_path(semester) %></td>
|
||||||
<td><%= link_to 'Destroy', semester, method: :delete, data: { confirm: 'Are you sure?' } %></td>
|
<td><%= link_to 'Destroy', semester, method: :delete, data: { confirm: 'Are you sure?' } %></td>
|
||||||
|
|||||||
12
app/views/studien/_semesteransicht.html.erb
Normal file
12
app/views/studien/_semesteransicht.html.erb
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
|
||||||
|
<h1><%= @studium.typ %> <%= @studium.name %> (<%= @studium.zahl %>)</h1>
|
||||||
|
</div>
|
||||||
|
<%= raw(@studium.desc) %>
|
||||||
|
<% @studium.semester.each do |sem| %>
|
||||||
|
<div class="row-fluid">
|
||||||
|
<h2><%= sem.nummer.to_s + ". Semester" %></h2>
|
||||||
|
<div class="span<%= sem[:width]%> min-width:13em;">
|
||||||
|
<%= render :partial=>'lvas/lva_semester', :collection=>sem.lvas, :as=>:lva%>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
17
app/views/studien/_studien.html.erb
Executable file
17
app/views/studien/_studien.html.erb
Executable file
@@ -0,0 +1,17 @@
|
|||||||
|
|
||||||
|
<h1><%= @studium.typ %> <%= @studium.name %> (<%= @studium.zahl %>)</h1>
|
||||||
|
</div>
|
||||||
|
<%= raw(@studium.desc) %>
|
||||||
|
<% @studienphasen.each do |sp| %>
|
||||||
|
<% sp[:modulgruppen].each do |row| %>
|
||||||
|
<div class="row-fluid">
|
||||||
|
<% row.each do |modulgruppe| %>
|
||||||
|
<div class="span<%= sp[:width]%> min-width:13em;">
|
||||||
|
<%= render modulgruppe %>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
<% @studien.sort_by{|z| z[:zahl]}.each do |studium| %>
|
<% @studien.sort_by{|z| z[:zahl]}.each do |studium| %>
|
||||||
|
|
||||||
|
|
||||||
<h2><%= link_to studium.zahl + " "+ studium.typ+" " + studium.name, studium_path(studium) %></h2>
|
<h2><%= link_to studium.zahl + " "+ studium.typ+" " + studium.name, studium_path(studium, :sem=>"true") %></h2><h4><%= link_to "Modulansicht", studium_path(studium, :sem=>"false") %></h4>
|
||||||
|
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
|
|||||||
42
app/views/studien/show.html.erb
Executable file → Normal file
42
app/views/studien/show.html.erb
Executable file → Normal file
@@ -1,32 +1,28 @@
|
|||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<div class="row-fluid">
|
<div class="row-fluid">
|
||||||
<p id="notice"><%= notice %></p>
|
<p id="notice"><%= notice %></p>
|
||||||
|
|
||||||
<%= link_to '<i class="icon-list"></i>'.html_safe+ I18n.t("studien.allestudien"), studien_path,:raw=>true %>
|
<%= link_to '<i class="icon-list"></i>'.html_safe+ I18n.t("studien.allestudien"), studien_path,:raw=>true %>|<%= link_to "Ansicht wechseln", studium_path(@studium, :sem => @change)%>
|
||||||
|
|
||||||
|
|
||||||
|
<%= @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 %>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
|
||||||
<h1><%= @studium.typ %> <%= @studium.name %> (<%= @studium.zahl %>)</h1>
|
|
||||||
</div>
|
|
||||||
<%= raw(@studium.desc) %>
|
|
||||||
<% @studienphasen.each do |sp| %>
|
|
||||||
<% sp[:modulgruppen].each do |row| %>
|
|
||||||
<div class="row-fluid">
|
<div class="row-fluid">
|
||||||
<% row.each do |modulgruppe| %>
|
<span class="span12">
|
||||||
<div class="span<%= sp[:width]%> min-width:13em;">
|
<%= link_to '<i class="icon-plus-sign"></i>'.html_safe+I18n.t("studien.newmodulgroup"), new_studium_modulgruppe_path(@studium),:class=>"btn" %> |
|
||||||
<%= render modulgruppe %>
|
<%= link_to '<i class="icon-pencil"></i>'.html_safe+I18n.t("common.edit"), edit_studium_path(@studium) ,:class=>"btn"%>
|
||||||
|
<%= link_to 'Destroy', @studium, method: :delete, data: { confirm: 'Are you sure?' } %>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="row-fluid">
|
|
||||||
<span class="span12">
|
|
||||||
<%= link_to '<i class="icon-plus-sign"></i>'.html_safe+I18n.t("studien.newmodulgroup"), new_studium_modulgruppe_path(@studium),:class=>"btn" %> |
|
|
||||||
<%= link_to '<i class="icon-pencil"></i>'.html_safe+I18n.t("common.edit"), edit_studium_path(@studium) ,:class=>"btn"%>
|
|
||||||
<%= link_to 'Destroy', @studium, method: :delete, data: { confirm: 'Are you sure?' } %>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user