Introducing Semesters

This commit is contained in:
Thomas Blazek
2013-07-29 17:47:44 +02:00
parent 747ba5f91a
commit 161598846a
13 changed files with 151 additions and 47 deletions

View File

@@ -11,6 +11,18 @@ class StudienController < ApplicationController
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)
@@ -23,7 +35,7 @@ class StudienController < ApplicationController
end
modulgruppen =[]
modulgruppen_phase.each_slice(opts[:slice]) do |s|
modulgruppen<<s
modulgruppen<<s #
end
@studienphasen << {: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.' }

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

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

28
app/views/lvas/_lva.html.erb Executable file
View 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) %>

View 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) %>

View File

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

View File

@@ -15,8 +15,8 @@
<tr>
<td><%= semester.name %></td>
<td><%= semester.nummer %></td>
<td><%= semester.ws %></td>
<td><%= semester.ss %></td>
<td><%= semester.ssws %></td>
<td><% %></td>
<td><%= link_to 'Show', semester %></td>
<td><%= link_to 'Edit', edit_semester_path(semester) %></td>
<td><%= link_to 'Destroy', semester, method: :delete, data: { confirm: 'Are you sure?' } %></td>

View 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>

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

View File

@@ -4,7 +4,7 @@
<% @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 %>

42
app/views/studien/show.html.erb Executable file → Normal file
View File

@@ -1,32 +1,28 @@
<div class="container-fluid">
<div class="row-fluid">
<div class="row-fluid">
<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">
<% row.each do |modulgruppe| %>
<div class="span<%= sp[:width]%> min-width:13em;">
<%= render modulgruppe %>
<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>
<% 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>