forked from bofh/fetsite
Introducing Semesters
This commit is contained in:
@@ -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.' }
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
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.input :name %>
|
||||
<%= f.input :nummer %>
|
||||
<%= f.input :ws %>
|
||||
<%= f.input :ss %>
|
||||
<%= f.input :ssws %>
|
||||
<%= f.input :lvas %>
|
||||
<% end %>
|
||||
|
||||
<%= f.actions do %>
|
||||
|
||||
@@ -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>
|
||||
|
||||
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| %>
|
||||
|
||||
|
||||
<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 %>
|
||||
|
||||
|
||||
24
app/views/studien/show.html.erb
Executable file → Normal file
24
app/views/studien/show.html.erb
Executable file → Normal file
@@ -2,22 +2,18 @@
|
||||
<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)%>
|
||||
|
||||
<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 %>
|
||||
|
||||
<%= @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>
|
||||
|
||||
|
||||
<div class="row-fluid">
|
||||
|
||||
Reference in New Issue
Block a user