Semesteransicht auf RESTful routes aufgebaut

This commit is contained in:
Thomas Blazek
2013-08-01 11:57:37 +02:00
parent bbaa9b89dd
commit afd85d0bc0
8 changed files with 80 additions and 75 deletions

View File

@@ -1,5 +1,5 @@
class StudienController < ApplicationController
before_filter {@toolbar_elements =[]}
before_filter {@toolbar_elements =[]}
def index
@@ -12,19 +12,12 @@ class StudienController < ApplicationController
def show
@studium= Studium.find(params[:id])
@sem = params[:sem]
@sem = 'false'
if @sem.nil?
@sem = 'true'
end
if @sem == 'true'
@link = "Modulansicht"
@change = 'false'
else
@link = "Semesteransicht"
@change = 'true'
end
@text = 'Zu Semesteransicht wechseln'
@path = studium_semesteransicht_path(@studium)
@studienphasen=[]
[1, 2 ,3].each do |ph|
@@ -37,15 +30,15 @@ class StudienController < ApplicationController
opts={:width=>4, :slice=>3}
end
modulgruppen =[]
modulgruppen_phase.each_slice(opts[:slice]) do |s|
modulgruppen_phase.each_slice(opts[:slice]) do |s|
modulgruppen<<s #
end
@studienphasen << {:modulgruppen=>modulgruppen, :phase => ph}.merge(opts)
end
@studienphasen << {:modulgruppen=>modulgruppen, :phase => ph}.merge(opts)
end
@toolbar_elements=[{:icon =>:plus ,:text=> I18n.t('studien.new') , :path => new_studium_path(@studium) }]
@toolbar_elements<<{:icon=>:pencil,:text =>I18n.t('common.edit'),:path => edit_studium_path(@studium)}
@toolbar_elements<<{:text=> I18n.t('common.delete'),:path => studium_path(@studium), :method=> :delete,:confirm=>"Sure?" }
end
end
def new
@studium = Studium.new
@@ -53,8 +46,8 @@ class StudienController < ApplicationController
def edit
@studium = Studium.find(params[:id])
@toolbar_elements=[{:text => I18n.t('studien.anzeigen') , :path => url_for(@studium) }]
@toolbar_elements<<{:text =>I18n.t('studien.allestudien'),:path=>studien_path(@studium)}
@toolbar_elements=[{:text => I18n.t('studien.anzeigen') , :path => url_for(@studium) }]
@toolbar_elements<<{:text =>I18n.t('studien.allestudien'),:path=>studien_path(@studium)}
end
def create
@@ -73,18 +66,27 @@ class StudienController < ApplicationController
def update
@studium = Studium.find(params[:id])
if @studium.update_attributes(params[:studium])
redirect_to url_for(@studium), notice: 'Studium was successfully updated.'
else
render action: "edit"
if @studium.update_attributes(params[:studium])
redirect_to url_for(@studium), notice: 'Studium was successfully updated.'
else
render action: "edit"
end
end
end
def semesteransicht
@sem = 'true'
@studium = Studium.find(params[:id])
if @studium.nil?
@studium = Studium.first
end
@text = 'Zu Modulgruppenansicht wechseln'
@path = studium_path(@studium)
end
def destroy
@studium = Studium.find(params[:id])
@studium.destroy
redirect_to studien_url
@studium = Studium.find(params[:id])
@studium.destroy
redirect_to studien_url
end
end

View File

@@ -1,17 +0,0 @@
<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

@@ -0,0 +1,10 @@
<%= link_to '<i class="icon-list"></i>'.html_safe+ I18n.t("studien.allestudien"), studien_path,:raw=>true %> /
<% Studium.all.each do |s| %>
<% if @sem=='true' %>
<%= link_to s.name + " / ", studium_semesteransicht_path(s) %>
<% else %>
<%= link_to s.name + " / ", studium_path(s) %>
<% end %>
<% end %>
<%= link_to @text, @path%>

View File

@@ -1,20 +0,0 @@
<h1><%= @studium.typ %> <%= @studium.name %> (<%= @studium.zahl %>)</h1>
</div>
<%= raw(@studium.desc) %>
<% @studium.semester.each do |sem| %>
<div class="row-fluid">
<% if sem.nummer > 0 %>
<h2><%= sem.nummer.to_s + ". Semester" %></h2>
<% else %>
<h2> Ohne Zuordnung </h2>
<% end %>
<div class="span<%= sem[:width]%> min-width:13em;">
<ul>
<% sem.lvas.sort_by{|n| n[:name]}.each do |l| %>
<li><%= render :partial=>'lvas/lva_semester', :locals =>{:lva => l}%>
<%end%>
</ul>
</div>
<% end %>
</div>

View File

@@ -1,5 +1,5 @@
<div class="studium">
<b ><%= link_to studium.name + " " + studium.zahl.to_s, studium_path(studium)%></b>(<%=link_to "Modulgruppenansicht", studium_path(studium, :sem=>'false')%>)<br>
<b ><%= link_to studium.name + " " + studium.zahl.to_s, studium_semesteransicht_path(studium)%></b>(<%=link_to "Modulgruppenansicht",studium_path(studium) %>)<br>
<div>
<b>Typ: </b><%= studium.typ%>
</div>

View File

@@ -0,0 +1,21 @@
<%= render :partial=>'studien/navigation'%>
<div>
<h1><%= @studium.typ %> <%= @studium.name %> (<%= @studium.zahl %>)</h1>
<%= raw(@studium.desc) %>
<% @studium.semester.each do |sem| %>
<div class="row-fluid">
<% if sem.nummer > 0 %>
<h2><%= sem.nummer.to_s + ". Semester" %></h2>
<% else %>
<h2> Ohne Zuordnung </h2>
<% end %>
<div class="span<%= sem[:width]%> min-width:13em;">
<ul>
<% sem.lvas.sort_by{|n| n[:name]}.each do |l| %>
<li><%= render :partial=>'lvas/lva_semester', :locals =>{:lva => l}%>
<%end%>
</ul>
</div>
<% end %>
</div>
</div>

View File

@@ -1,16 +1,21 @@
<%= render :partial=>'studien/navigation'%>
<div class="container-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 "Zu "+@link+ " wechseln", studium_path(@studium, :sem => @change)%>
<% if @sem=='false'%>
<%= render :partial => "studien/modulansicht", @collection => @studium, :as=>:studium%>
<% else %>
<%= render :partial =>"studien/semesteransicht", @collection => @studium, :as=>:studium%>
<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 %>
<br>
<% end %>
<div class="row-fluid">
<span class="span12">

View File

@@ -19,11 +19,15 @@ Fetsite::Application.routes.draw do
end
get 'pages', :to =>'pages#show'
scope '(:locale)' do
resources :studien, :only=>[:show,:new,:edit,:update,:destroy]
resources :modulgruppen,:only =>[:create,:index]
resources :studien,:except=>[:show,:new,:edit,:update,:destroy], :shallow=>true do
resources :modulgruppen, :path => "(:locale)/modulgruppen"
end
get 'studien/:id/semesteransicht', :controller=>:studien, :action=>:semesteransicht, :as=>'studium_semesteransicht'
resources :semesters
resources :moduls
resources :lvas