From afd85d0bc04b1cfd8978ad35c7d4817d2b1b28a3 Mon Sep 17 00:00:00 2001 From: Thomas Blazek Date: Thu, 1 Aug 2013 11:57:37 +0200 Subject: [PATCH] Semesteransicht auf RESTful routes aufgebaut --- app/controllers/studien_controller.rb | 56 +++++++++++---------- app/views/studien/_modulansicht.html.erb | 17 ------- app/views/studien/_navigation.html.erb | 10 ++++ app/views/studien/_semesteransicht.html.erb | 20 -------- app/views/studien/_studium.html.erb | 2 +- app/views/studien/semesteransicht.html.erb | 21 ++++++++ app/views/studien/show.html.erb | 23 +++++---- config/routes.rb | 6 ++- 8 files changed, 80 insertions(+), 75 deletions(-) delete mode 100755 app/views/studien/_modulansicht.html.erb create mode 100755 app/views/studien/_navigation.html.erb delete mode 100644 app/views/studien/_semesteransicht.html.erb create mode 100644 app/views/studien/semesteransicht.html.erb diff --git a/app/controllers/studien_controller.rb b/app/controllers/studien_controller.rb index 976bd4b..3919265 100755 --- a/app/controllers/studien_controller.rb +++ b/app/controllers/studien_controller.rb @@ -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<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" - - end + if @studium.update_attributes(params[:studium]) + redirect_to url_for(@studium), notice: 'Studium was successfully updated.' + else + render action: "edit" + + 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 diff --git a/app/views/studien/_modulansicht.html.erb b/app/views/studien/_modulansicht.html.erb deleted file mode 100755 index 65b0ae4..0000000 --- a/app/views/studien/_modulansicht.html.erb +++ /dev/null @@ -1,17 +0,0 @@ - -

<%= @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/_navigation.html.erb b/app/views/studien/_navigation.html.erb new file mode 100755 index 0000000..fce00a2 --- /dev/null +++ b/app/views/studien/_navigation.html.erb @@ -0,0 +1,10 @@ +<%= link_to ''.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%> diff --git a/app/views/studien/_semesteransicht.html.erb b/app/views/studien/_semesteransicht.html.erb deleted file mode 100644 index 65af43a..0000000 --- a/app/views/studien/_semesteransicht.html.erb +++ /dev/null @@ -1,20 +0,0 @@ - -

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

- -<%= raw(@studium.desc) %> -<% @studium.semester.each do |sem| %> -
- <% if sem.nummer > 0 %> -

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

- <% else %> -

Ohne Zuordnung

- <% end %> -
-
    -<% sem.lvas.sort_by{|n| n[:name]}.each do |l| %> -
  • <%= render :partial=>'lvas/lva_semester', :locals =>{:lva => l}%> -<%end%> -
-
-<% end %> -
diff --git a/app/views/studien/_studium.html.erb b/app/views/studien/_studium.html.erb index 91edd1b..ff92710 100644 --- a/app/views/studien/_studium.html.erb +++ b/app/views/studien/_studium.html.erb @@ -1,5 +1,5 @@
-<%= link_to studium.name + " " + studium.zahl.to_s, studium_path(studium)%>(<%=link_to "Modulgruppenansicht", studium_path(studium, :sem=>'false')%>)
+<%= link_to studium.name + " " + studium.zahl.to_s, studium_semesteransicht_path(studium)%>(<%=link_to "Modulgruppenansicht",studium_path(studium) %>)
Typ: <%= studium.typ%>
diff --git a/app/views/studien/semesteransicht.html.erb b/app/views/studien/semesteransicht.html.erb new file mode 100644 index 0000000..cc00404 --- /dev/null +++ b/app/views/studien/semesteransicht.html.erb @@ -0,0 +1,21 @@ +<%= render :partial=>'studien/navigation'%> +
+

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

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

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

+ <% else %> +

Ohne Zuordnung

+ <% end %> +
+
    + <% sem.lvas.sort_by{|n| n[:name]}.each do |l| %> +
  • <%= render :partial=>'lvas/lva_semester', :locals =>{:lva => l}%> + <%end%> +
+
+ <% end %> +
+
diff --git a/app/views/studien/show.html.erb b/app/views/studien/show.html.erb index 1baa67f..9919f43 100644 --- a/app/views/studien/show.html.erb +++ b/app/views/studien/show.html.erb @@ -1,16 +1,21 @@ +<%= render :partial=>'studien/navigation'%>

<%= notice %>

- - <%= link_to ''.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%> +

<%= @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/config/routes.rb b/config/routes.rb index 0c2ce9e..2603420 100755 --- a/config/routes.rb +++ b/config/routes.rb @@ -19,17 +19,21 @@ 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 resources :neuigkeiten get 'rubriken/verwalten', :controller=>:rubriken, :action=>:alle_verwalten, :as=>'alle_verwalten_rubrik' - + resources :rubriken do resources :neuigkeiten, :only=>[:new, :show] end