From c6e75842537280e6d31832e51e9a40635d995ca5 Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Thu, 25 Jul 2013 20:10:25 +0200
Subject: [PATCH 01/44] =?UTF-8?q?Layout=20=C3=A4nderungen=20f=C3=BCr=20Mod?=
=?UTF-8?q?ul=20und=20Modulgruppenindex?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Tabellenformatierung durch render-div kombination ersetzt, modul/lang-
version für Modulanzeige mit Modulgruppen eingefügt
---
app/views/modulgruppen/index.html.erb | 22 +-----------------
app/views/moduls/_lang.html.erb | 32 ++++++++++++++++++++++++++
app/views/moduls/index.html.erb | 33 ++-------------------------
3 files changed, 35 insertions(+), 52 deletions(-)
create mode 100755 app/views/moduls/_lang.html.erb
diff --git a/app/views/modulgruppen/index.html.erb b/app/views/modulgruppen/index.html.erb
index 871c406..fb37c87 100755
--- a/app/views/modulgruppen/index.html.erb
+++ b/app/views/modulgruppen/index.html.erb
@@ -1,29 +1,9 @@
<%= I18n.t("modulgruppe.show.title")%>
-
-
- | Type |
- Phase |
- Studium |
- Name |
- |
- |
- |
-
<% @modulgruppen.sort_by{|n| n[:name]}.each do |modulgruppe| %>
-
- | <%= modulgruppe.typ %> |
- <%= modulgruppe.phase %> |
- <%= modulgruppe.studium.name unless modulgruppe.studium.nil? %> |
- <%= modulgruppe.name %> |
- <%= link_to 'Show', modulgruppe %> |
- <%= link_to 'Edit', edit_modulgruppe_path(modulgruppe) %> |
- <%= link_to 'Destroy', modulgruppe, method: :delete, data: { confirm: 'Are you sure?' } %> |
-
+ <%= render modulgruppe%>
<% end %>
-
-
<% if !@studium.nil? %>
<%= link_to 'New Modulgruppe', new_studium_modulgruppe_path(@studium) %>
diff --git a/app/views/moduls/_lang.html.erb b/app/views/moduls/_lang.html.erb
new file mode 100755
index 0000000..1dbb929
--- /dev/null
+++ b/app/views/moduls/_lang.html.erb
@@ -0,0 +1,32 @@
+
+ <%=
+if modul.name.nil?
+name=""
+else
+name=modul.name
+end
+link_to "Modul "+name , modul_path(modul) %>
+
+
+ <%= raw(modul.desc) %>
+
+LVAs:
+
+
+
+<% modul.lvas.each do |lv| %>
+-
+<%= link_to lv.name.to_s, lva_path(lv.id) %>
+
+<% end %>
+
+
+
+Modulgruppen:
+
+<% modul.modulgruppen.each do |mg| %>
+- <%=mg.name%> (<%= mg.studium.name unless mg.studium.nil?%>)
+<%end%>
+
+<% # @toolbar_elements << {:icon=>:pencil,:text=>I18n.t("common.edit"),:path=> edit_modul_path(modul)} %>
+
diff --git a/app/views/moduls/index.html.erb b/app/views/moduls/index.html.erb
index 933d4a7..98ade7d 100755
--- a/app/views/moduls/index.html.erb
+++ b/app/views/moduls/index.html.erb
@@ -1,36 +1,7 @@
+
<%= I18n.t("modul.show.title") %>
-
-
- | Modulgruppe (Studium) |
- Name |
- Desc |
- |
- |
- |
-
-
-<% @moduls.sort_by{|n| n[:name]}.each do |modul| %>
-
-
- <%modul.modulgruppen.sort_by{|n| n[:name]}.each do |m|%>
-
-
- <%=m.name unless m.nil? %> (<%=m.studium.name unless m.studium.nil? %>)
-
-
- <% end %>
-
- |
-
- <%= modul.name %> |
- <%= modul.desc %> |
- <%= link_to 'Show', modul_path(modul) %> |
- <%= link_to 'Edit', edit_modul_path(modul) %> |
- <%= link_to 'Destroy', [modul], method: :delete, data: { confirm: 'Are you sure?' } %> |
-
-<% end %>
-
+<%= render :partial=>'moduls/lang', :collection=>@moduls, :as=>:modul%>
<% #if !@studium.nil? %>
From 8c24c7b09b1338830165884af468319d09251fce Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Thu, 25 Jul 2013 23:26:23 +0200
Subject: [PATCH 02/44] Beispiel Listing design
---
app/views/beispiele/_beispiel_list.html.erb | 19 ++++++++++++++++
app/views/beispiele/index.html.erb | 25 +++++----------------
2 files changed, 24 insertions(+), 20 deletions(-)
create mode 100644 app/views/beispiele/_beispiel_list.html.erb
diff --git a/app/views/beispiele/_beispiel_list.html.erb b/app/views/beispiele/_beispiel_list.html.erb
new file mode 100644
index 0000000..b739e54
--- /dev/null
+++ b/app/views/beispiele/_beispiel_list.html.erb
@@ -0,0 +1,19 @@
+
+
+
+ <%=link_to beispiel.name, beispiel.beispieldatei.url%>
+
+
+ Beschreibung:
+
+ <%= beispiel.desc %>
+
+
+
+ LVA: <%=link_to beispiel.lva.name, lva_path(beispiel.lva.id)%>
+
+
+ <%= link_to 'Show', beispiel %>
+ <%= link_to 'Edit', edit_beispiel_path(beispiel) %>
+ <%= link_to 'Destroy', beispiel, method: :delete, data: { confirm: 'Are you sure?' } %>
+
diff --git a/app/views/beispiele/index.html.erb b/app/views/beispiele/index.html.erb
index aca1b90..7f175a8 100755
--- a/app/views/beispiele/index.html.erb
+++ b/app/views/beispiele/index.html.erb
@@ -1,25 +1,10 @@
Listing beispiele
-
-
-
- | Name |
- Desc |
- |
- |
- |
-
-
+
<% @beispiele.each do |beispiel| %>
-
- | <%= beispiel.name %> |
- <%= beispiel.desc %> |
- <%= link_to 'Show', beispiel %> |
- <%= link_to 'Edit', edit_beispiel_path(beispiel) %> |
- <%= link_to 'Destroy', beispiel, method: :delete, data: { confirm: 'Are you sure?' } %> |
-
+-
+<%= render :partial=> "beispiele/beispiel_list", :object => beispiel, :as=>:beispiel%>
<% end %>
-
-
-
+
+
<%= link_to 'New Beispiel', new_beispiel_path %>
From 92f1797dfbfcfc4aed1973425771647ce2481c0f Mon Sep 17 00:00:00 2001
From: Andreas Stephanides
Date: Fri, 26 Jul 2013 00:41:21 +0200
Subject: [PATCH 03/44] rspec install
Install Rspec FacoryGirl
---
.gitignore | 1 +
.rspec | 1 +
Gemfile | 6 ++++-
Gemfile.lock | 19 ++++++++++++++++
db/schema.rb | 10 --------
spec/factories/studien.rb | 12 ++++++++++
spec/factories/studium_factory.rb | 1 +
spec/models/studium_spec.rb | 9 ++++++++
spec/spec_helper.rb | 38 +++++++++++++++++++++++++++++++
9 files changed, 86 insertions(+), 11 deletions(-)
create mode 100644 .rspec
create mode 100644 spec/factories/studien.rb
create mode 100644 spec/factories/studium_factory.rb
create mode 100644 spec/models/studium_spec.rb
create mode 100644 spec/spec_helper.rb
diff --git a/.gitignore b/.gitignore
index f66e129..2c9abc6 100755
--- a/.gitignore
+++ b/.gitignore
@@ -15,3 +15,4 @@
/log/*.log
/tmp
/config/initializers/devise.rb
+/app/doc/*
diff --git a/.rspec b/.rspec
new file mode 100644
index 0000000..4e1e0d2
--- /dev/null
+++ b/.rspec
@@ -0,0 +1 @@
+--color
diff --git a/Gemfile b/Gemfile
index 3fb298c..7fce64e 100755
--- a/Gemfile
+++ b/Gemfile
@@ -70,4 +70,8 @@ gem 'haml'
#gem 'gollum'
gem 'awesome_nested_set'
gem 'annotate', ">=2.5.0"
-gem 'carrierwave'
\ No newline at end of file
+gem 'carrierwave'
+group :development, :test do
+gem 'factory_girl_rails'
+gem 'rspec-rails'
+end
diff --git a/Gemfile.lock b/Gemfile.lock
index 9508763..2f98cfb 100755
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -56,9 +56,15 @@ GEM
orm_adapter (~> 0.1)
railties (~> 3.1)
warden (~> 1.2.1)
+ diff-lcs (1.2.4)
erubis (2.7.0)
execjs (1.4.0)
multi_json (~> 1.0)
+ factory_girl (4.2.0)
+ activesupport (>= 3.0.0)
+ factory_girl_rails (4.2.1)
+ factory_girl (~> 4.2.0)
+ railties (>= 3.0.0)
formtastic (2.2.1)
actionpack (>= 3.0)
formtastic-bootstrap (2.0.0)
@@ -123,6 +129,17 @@ GEM
json (~> 1.4)
ref (1.0.2)
rolify (3.2.0)
+ rspec-core (2.14.4)
+ rspec-expectations (2.14.0)
+ diff-lcs (>= 1.1.3, < 2.0)
+ rspec-mocks (2.14.1)
+ rspec-rails (2.14.0)
+ actionpack (>= 3.0)
+ activesupport (>= 3.0)
+ railties (>= 3.0)
+ rspec-core (~> 2.14.0)
+ rspec-expectations (~> 2.14.0)
+ rspec-mocks (~> 2.14.0)
sass (3.2.5)
sass-rails (3.2.6)
railties (~> 3.2.0)
@@ -165,6 +182,7 @@ DEPENDENCIES
coffee-rails (~> 3.2.1)
devise (~> 2.2.3)
execjs (~> 1.4.0)
+ factory_girl_rails
formtastic (~> 2.2.1)
formtastic-bootstrap
git
@@ -175,6 +193,7 @@ DEPENDENCIES
paperclip (~> 3.4.0)
rails (= 3.2.9)
rolify
+ rspec-rails
sass-rails (~> 3.2.3)
sqlite3
therubyracer
diff --git a/db/schema.rb b/db/schema.rb
index e41f87b..c642d5b 100755
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -13,16 +13,6 @@
ActiveRecord::Schema.define(:version => 20130214233723) do
- create_table "beispiel_translations", :force => true do |t|
- t.string "locale"
- t.text "desc"
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
- t.integer "beispiele_id"
- end
-
- add_index "beispiel_translations", ["locale"], :name => "index_beispiel_translations_on_locale"
-
create_table "beispiele", :force => true do |t|
t.string "name"
t.text "desc"
diff --git a/spec/factories/studien.rb b/spec/factories/studien.rb
new file mode 100644
index 0000000..4608747
--- /dev/null
+++ b/spec/factories/studien.rb
@@ -0,0 +1,12 @@
+# Read about factories at https://github.com/thoughtbot/factory_girl
+
+
+FactoryGirl.define do
+ factory :studium do
+ zahl "066 506"
+ name "Automatisierung"
+ desc "TEST DESC"
+ typ "Master"
+ end
+
+end
diff --git a/spec/factories/studium_factory.rb b/spec/factories/studium_factory.rb
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/spec/factories/studium_factory.rb
@@ -0,0 +1 @@
+
diff --git a/spec/models/studium_spec.rb b/spec/models/studium_spec.rb
new file mode 100644
index 0000000..1e34d74
--- /dev/null
+++ b/spec/models/studium_spec.rb
@@ -0,0 +1,9 @@
+require 'spec_helper'
+
+describe Studium do
+ it "should not be valid without name" do
+ s = FactoryGirl.build(:studium, :name=>nil)
+ s.should_not be_valid
+
+ end
+end
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
new file mode 100644
index 0000000..d2cbea7
--- /dev/null
+++ b/spec/spec_helper.rb
@@ -0,0 +1,38 @@
+# This file is copied to spec/ when you run 'rails generate rspec:install'
+ENV["RAILS_ENV"] ||= 'test'
+require File.expand_path("../../config/environment", __FILE__)
+require 'rspec/rails'
+require 'rspec/autorun'
+
+# Requires supporting ruby files with custom matchers and macros, etc,
+# in spec/support/ and its subdirectories.
+Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
+
+RSpec.configure do |config|
+ # ## Mock Framework
+ #
+ # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
+ #
+ # config.mock_with :mocha
+ # config.mock_with :flexmock
+ # config.mock_with :rr
+
+ # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
+ config.fixture_path = "#{::Rails.root}/spec/fixtures"
+
+ # If you're not using ActiveRecord, or you'd prefer not to run each of your
+ # examples within a transaction, remove the following line or assign false
+ # instead of true.
+ config.use_transactional_fixtures = true
+
+ # If true, the base class of anonymous controllers will be inferred
+ # automatically. This will be the default behavior in future versions of
+ # rspec-rails.
+ config.infer_base_class_for_anonymous_controllers = false
+
+ # Run specs in random order to surface order dependencies. If you find an
+ # order dependency and want to debug it, you can fix the order by providing
+ # the seed, which is printed after each run.
+ # --seed 1234
+ config.order = "random"
+end
From eeae723994e29003f657156482e3d4e2cf6104c7 Mon Sep 17 00:00:00 2001
From: Andreas Stephanides
Date: Fri, 26 Jul 2013 01:09:26 +0200
Subject: [PATCH 04/44] =?UTF-8?q?Tests=20f=C3=BCr=20studium?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
RSPEC Tests für studium hinzugefügt
verwende
bundle exec rspec spec/models
um Model-Tests auszuführen
---
spec/factories/studien.rb | 2 +-
spec/models/studium_spec.rb | 26 ++++++++++++++++++++++----
2 files changed, 23 insertions(+), 5 deletions(-)
diff --git a/spec/factories/studien.rb b/spec/factories/studien.rb
index 4608747..071a60e 100644
--- a/spec/factories/studien.rb
+++ b/spec/factories/studien.rb
@@ -3,7 +3,7 @@
FactoryGirl.define do
factory :studium do
- zahl "066 506"
+ zahl "066.506"
name "Automatisierung"
desc "TEST DESC"
typ "Master"
diff --git a/spec/models/studium_spec.rb b/spec/models/studium_spec.rb
index 1e34d74..0297604 100644
--- a/spec/models/studium_spec.rb
+++ b/spec/models/studium_spec.rb
@@ -1,9 +1,27 @@
require 'spec_helper'
describe Studium do
- it "should not be valid without name" do
- s = FactoryGirl.build(:studium, :name=>nil)
- s.should_not be_valid
-
+ [:name, :zahl].each do |attr|
+ it "should not be valid without #{attr}" do
+ s = FactoryGirl.build(:studium, attr=>nil)
+ s.should_not be_valid
+ end
end
+ it "should create studium with valid data" do
+ s=FactoryGirl.build(:studium)
+ lambda {
+ s.save!}.should change {Studium.count()}.by(1)
+ end
+ it "should not accept double entrys" do
+ FactoryGirl.create(:studium)
+ s=FactoryGirl.build(:studium)
+ s.should_not be_valid
+ s.should have_at_least(1).error_on(:name)
+ s.should have_at_least(1).error_on(:zahl)
+ end
+ it "should expect zahl to be 000.000" do
+ s=FactoryGirl.build(:studium, :zahl=>"000000")
+ s.should_not be_valid
+ s.should have_at_least(1).error_on(:zahl)
+ end
end
From 8eabea255ef90cd921f104418bac945ac1c854c0 Mon Sep 17 00:00:00 2001
From: Andreas Stephanides
Date: Fri, 26 Jul 2013 02:57:30 +0200
Subject: [PATCH 05/44] Added factories and spec files for Beispielsammlung
---
spec/factories/beispiele.rb | 6 ++++++
spec/factories/lvas.rb | 6 ++++++
spec/factories/modulgruppen.rb | 10 ++++++++++
spec/factories/moduls.rb | 6 ++++++
spec/models/beispiel_spec.rb | 5 +++++
spec/models/lva_spec.rb | 5 +++++
spec/models/modul_spec.rb | 5 +++++
spec/models/modulgruppe_spec.rb | 16 ++++++++++++++++
8 files changed, 59 insertions(+)
create mode 100644 spec/factories/beispiele.rb
create mode 100644 spec/factories/lvas.rb
create mode 100644 spec/factories/modulgruppen.rb
create mode 100644 spec/factories/moduls.rb
create mode 100644 spec/models/beispiel_spec.rb
create mode 100644 spec/models/lva_spec.rb
create mode 100644 spec/models/modul_spec.rb
create mode 100644 spec/models/modulgruppe_spec.rb
diff --git a/spec/factories/beispiele.rb b/spec/factories/beispiele.rb
new file mode 100644
index 0000000..f9cfcdf
--- /dev/null
+++ b/spec/factories/beispiele.rb
@@ -0,0 +1,6 @@
+# Read about factories at https://github.com/thoughtbot/factory_girl
+
+FactoryGirl.define do
+ factory :beispiel do
+ end
+end
diff --git a/spec/factories/lvas.rb b/spec/factories/lvas.rb
new file mode 100644
index 0000000..7a0091b
--- /dev/null
+++ b/spec/factories/lvas.rb
@@ -0,0 +1,6 @@
+# Read about factories at https://github.com/thoughtbot/factory_girl
+
+FactoryGirl.define do
+ factory :lva do
+ end
+end
diff --git a/spec/factories/modulgruppen.rb b/spec/factories/modulgruppen.rb
new file mode 100644
index 0000000..0d43b62
--- /dev/null
+++ b/spec/factories/modulgruppen.rb
@@ -0,0 +1,10 @@
+# Read about factories at https://github.com/thoughtbot/factory_girl
+
+FactoryGirl.define do
+ factory :modulgruppe do
+ typ "Pflicht"
+ phase 1
+ name "Pflichtmodule 1"
+ desc "ASDFASDF"
+ end
+end
diff --git a/spec/factories/moduls.rb b/spec/factories/moduls.rb
new file mode 100644
index 0000000..ef48c30
--- /dev/null
+++ b/spec/factories/moduls.rb
@@ -0,0 +1,6 @@
+# Read about factories at https://github.com/thoughtbot/factory_girl
+
+FactoryGirl.define do
+ factory :modul do
+ end
+end
diff --git a/spec/models/beispiel_spec.rb b/spec/models/beispiel_spec.rb
new file mode 100644
index 0000000..cfaeb19
--- /dev/null
+++ b/spec/models/beispiel_spec.rb
@@ -0,0 +1,5 @@
+require 'spec_helper'
+
+describe Beispiel do
+ pending "add some examples to (or delete) #{__FILE__}"
+end
diff --git a/spec/models/lva_spec.rb b/spec/models/lva_spec.rb
new file mode 100644
index 0000000..4209553
--- /dev/null
+++ b/spec/models/lva_spec.rb
@@ -0,0 +1,5 @@
+require 'spec_helper'
+
+describe Lva do
+ pending "add some examples to (or delete) #{__FILE__}"
+end
diff --git a/spec/models/modul_spec.rb b/spec/models/modul_spec.rb
new file mode 100644
index 0000000..c4af626
--- /dev/null
+++ b/spec/models/modul_spec.rb
@@ -0,0 +1,5 @@
+require 'spec_helper'
+
+describe Modul do
+ pending "add some examples to (or delete) #{__FILE__}"
+end
diff --git a/spec/models/modulgruppe_spec.rb b/spec/models/modulgruppe_spec.rb
new file mode 100644
index 0000000..7a39d6c
--- /dev/null
+++ b/spec/models/modulgruppe_spec.rb
@@ -0,0 +1,16 @@
+require 'spec_helper'
+
+describe Modulgruppe do
+ it "modulgruppe should not be valid without studium" do
+ mg=FactoryGirl.build(:modulgruppe)
+ mg.should_not be_valid
+ mg.should have(1).errors_on(:studium_id)
+ end
+ it "modulgruppe should be valid with studium" do
+ s=FactoryGirl.create(:studium)
+ mg=FactoryGirl.build(:modulgruppe)
+ mg.studium=s
+ mg.should be_valid
+ end
+
+end
From 747ba5f91a05f84ed49bb05716ca0df4105b4cb4 Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Mon, 29 Jul 2013 17:46:10 +0200
Subject: [PATCH 06/44] Kosmetik
---
app/controllers/moduls_controller.rb | 34 ++++++++++----------
app/views/semesters/show.html.erb | 15 +++------
config/routes.rb | 47 +++++++++++++---------------
3 files changed, 43 insertions(+), 53 deletions(-)
diff --git a/app/controllers/moduls_controller.rb b/app/controllers/moduls_controller.rb
index bace79f..f5315c9 100755
--- a/app/controllers/moduls_controller.rb
+++ b/app/controllers/moduls_controller.rb
@@ -2,11 +2,11 @@ class ModulsController < ApplicationController
# GET /moduls
# GET /moduls.json
def index
- @moduls = Modul.all
- if @moduls
- if !params[:studium_id].nil?
- @studium=Studium.find_by_id(params[:studium_id])
- end
+ @moduls = Modul.all
+ if @moduls
+ if !params[:studium_id].nil?
+ @studium=Studium.find_by_id(params[:studium_id])
+ end
respond_to do |format|
format.html # index.html.erb
format.json { render json: @moduls }
@@ -19,7 +19,7 @@ class ModulsController < ApplicationController
def show
@modul = Modul.find(params[:id])
- respond_to do |format|
+ respond_to do |format|
format.html # show.html.erb
format.json { render json: @modul }
end
@@ -31,7 +31,7 @@ class ModulsController < ApplicationController
@modul = Modul.new
modulgruppe=Modulgruppe.find_by_id(params[:modulgruppen_id])
if !modulgruppe.nil?
- @modul.modulgruppen<<%= notice %>
- Name:
- <%= @semester.name %>
+ Name: <%= @semester.name %>
- Nummer:
- <%= @semester.nummer %>
+ Nummer: <%= @semester.nummer %>
+
- Ws:
- <%= @semester.ws %>
+ WS/SS?: <%= @semester.ssws %>
-
- Ss:
- <%= @semester.ss %>
+<%= render :partial =>'lvas/lva_semester', :collection=>@semester.lvas, :as=>:lva%>
-
<%= link_to 'Edit', edit_semester_path(@semester) %> |
<%= link_to 'Back', semesters_path %>
diff --git a/config/routes.rb b/config/routes.rb
index 4e4ed7d..0c2ce9e 100755
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1,29 +1,24 @@
Fetsite::Application.routes.draw do
+
+ devise_for :users
+ resources :home, :only=>[:index]
+ #get 'home',:controller=>home,:action=>:index,:as=>"home_index"
+ scope '(:locale)/admin' do
+ resources :users
+ get 'config',:controller=>:config,:action=>:index , :as => 'config'
+ get 'config/get_git_update',:controller=>:config,:action=>:get_git_update, :as=>'config_getgitupdate'
+ get 'config/get_git_update',:controller=>:config,:action=>:get_git_update
+ end
+ devise_for :users
-
-
- devise_for :users
- resources :home, :only=>[:index]
- #get 'home',:controller=>home,:action=>:index,:as=>"home_index"
- scope '(:locale)/admin' do
- resources :users
- get 'config',:controller=>:config,:action=>:index , :as => 'config'
- get 'config/get_git_update',:controller=>:config,:action=>:get_git_update, :as=>'config_getgitupdate'
- get 'config/get_git_update',:controller=>:config,:action=>:get_git_update
-
-
-end
-
-devise_for :users
-
-resources :pages, :except => [:index] do
- member do
- post 'preview'
- end
-end
-get 'pages', :to =>'pages#show'
-scope '(:locale)' do
+ resources :pages, :except => [:index] do
+ member do
+ post 'preview'
+ end
+ 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
@@ -36,7 +31,7 @@ scope '(:locale)' do
get 'rubriken/verwalten', :controller=>:rubriken, :action=>:alle_verwalten, :as=>'alle_verwalten_rubrik'
resources :rubriken do
- resources :neuigkeiten, :only=>[:new, :show]
+ resources :neuigkeiten, :only=>[:new, :show]
end
put 'rubriken/(:id)/addmoderator',:controller=>:rubriken,:action=>:addmoderator
get 'rubriken/:id/verwalten',:controller=>:rubriken,:action=>:verwalten, :as=>'verwalten_rubrik'
@@ -44,7 +39,7 @@ scope '(:locale)' do
get 'home/dev', :controller=>:home, :action=>:dev, :as=>'home_dev'
resources :beispiele
- end
+ end
# The priority is based upon order of creation:
# first created -> highest priority.
@@ -96,7 +91,7 @@ scope '(:locale)' do
# You can have the root of your site routed with "root"
# just remember to delete public/index.html.
- root :to => 'home#index'
+ root :to => 'home#index'
# See how all your routes lay out with "rake routes"
From 161598846a8972006ed97c512f25682f3c2e51d6 Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Mon, 29 Jul 2013 17:47:44 +0200
Subject: [PATCH 07/44] Introducing Semesters
---
app/controllers/studien_controller.rb | 36 ++++++++++------
app/models/lva.rb | 6 +--
app/models/semester.rb | 34 ++++++++++++++-
app/models/studium.rb | 3 +-
app/views/lvas/_form.html.erb | 1 +
app/views/lvas/_lva.html.erb | 28 +++++++++++++
app/views/lvas/_lva_semester.html.erb | 5 +++
app/views/semesters/_form.html.erb | 4 +-
app/views/semesters/index.html.erb | 4 +-
app/views/studien/_semesteransicht.html.erb | 12 ++++++
app/views/studien/_studien.html.erb | 17 ++++++++
app/views/studien/index.html.erb | 2 +-
app/views/studien/show.html.erb | 46 ++++++++++-----------
13 files changed, 151 insertions(+), 47 deletions(-)
create mode 100755 app/views/lvas/_lva.html.erb
create mode 100755 app/views/lvas/_lva_semester.html.erb
create mode 100644 app/views/studien/_semesteransicht.html.erb
create mode 100755 app/views/studien/_studien.html.erb
mode change 100755 => 100644 app/views/studien/show.html.erb
diff --git a/app/controllers/studien_controller.rb b/app/controllers/studien_controller.rb
index 7e5e2f6..6964774 100755
--- a/app/controllers/studien_controller.rb
+++ b/app/controllers/studien_controller.rb
@@ -7,23 +7,35 @@ class StudienController < ApplicationController
@toolbar_elements<<{:icon =>:plus, :text=> I18n.t('studien.new') ,:path=>new_studium_path }
@toolbar_elements<<{:text=> I18n.t('modulgruppe.show.link') ,:path=>modulgruppen_path }
@toolbar_elements<<{:text=> I18n.t('modul.show.link') ,:path=>moduls_path }
- end
+ end
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)
- if modulgruppen_phase.count==1
- opts={:width=>12, :slice=>1}
- elsif modulgruppen_phase.count <= 4
- opts={:width=>6, :slice=>2}
- else
- opts={:width=>4, :slice=>3}
- end
- modulgruppen =[]
+ modulgruppen_phase=@studium.modulgruppen.where(:phase=>ph)
+ if modulgruppen_phase.count==1
+ opts={:width=>12, :slice=>1}
+ elsif modulgruppen_phase.count <= 4
+ opts={:width=>6, :slice=>2}
+ else
+ opts={:width=>4, :slice=>3}
+ end
+ modulgruppen =[]
modulgruppen_phase.each_slice(opts[:slice]) do |s|
- 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.' }
diff --git a/app/models/lva.rb b/app/models/lva.rb
index 279af18..680ce1c 100755
--- a/app/models/lva.rb
+++ b/app/models/lva.rb
@@ -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
diff --git a/app/models/semester.rb b/app/models/semester.rb
index ca866b6..617fdaf 100755
--- a/app/models/semester.rb
+++ b/app/models/semester.rb
@@ -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
diff --git a/app/models/studium.rb b/app/models/studium.rb
index dea3dae..3a1d5de 100755
--- a/app/models/studium.rb
+++ b/app/models/studium.rb
@@ -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
diff --git a/app/views/lvas/_form.html.erb b/app/views/lvas/_form.html.erb
index 488b048..49bbb78 100755
--- a/app/views/lvas/_form.html.erb
+++ b/app/views/lvas/_form.html.erb
@@ -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 %>
diff --git a/app/views/lvas/_lva.html.erb b/app/views/lvas/_lva.html.erb
new file mode 100755
index 0000000..e78e1f7
--- /dev/null
+++ b/app/views/lvas/_lva.html.erb
@@ -0,0 +1,28 @@
+<% @lva.modul.each do |modul| %>
+<% modul.modulgruppen.each do |g| %>
+
+- <%= link_to g.studium.name , studium_path(g.studium)%>
+
+- <%= link_to g.name , modulgruppe_path(g)%>/
+- <%= link_to modul.name , modul_path(modul)%>
+<% end %>
+
+<% end %>
+
+<%= notice %>
+
+ <%= @lva.lvanr %>
+ <%= @lva.name %> <%= @lva.ects %> ECTS/ <%= @lva.stunden %> Std
+
+
+
+ <%= @lva.desc %>
+
+
+<% @lva.beispiele.each do |b|%>
+
+- <%= render b%>
+
+<% end %>
+
+<%= toolbar_html(@toolbar_elements) %>
diff --git a/app/views/lvas/_lva_semester.html.erb b/app/views/lvas/_lva_semester.html.erb
new file mode 100755
index 0000000..7168aa7
--- /dev/null
+++ b/app/views/lvas/_lva_semester.html.erb
@@ -0,0 +1,5 @@
+
+ <%= %>
+ <%= link_to lva.lvanr.to_s + " " + lva.name + "", lva_path(lva) %> <%= lva.ects %> ECTS/ <%= lva.stunden %> Std
+
+<% #toolbar_html(@toolbar_elements) %>
diff --git a/app/views/semesters/_form.html.erb b/app/views/semesters/_form.html.erb
index 85a79e6..710e4ea 100755
--- a/app/views/semesters/_form.html.erb
+++ b/app/views/semesters/_form.html.erb
@@ -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 %>
diff --git a/app/views/semesters/index.html.erb b/app/views/semesters/index.html.erb
index 1a62a2f..3ec5688 100755
--- a/app/views/semesters/index.html.erb
+++ b/app/views/semesters/index.html.erb
@@ -15,8 +15,8 @@
| <%= semester.name %> |
<%= semester.nummer %> |
- <%= semester.ws %> |
- <%= semester.ss %> |
+ <%= semester.ssws %> |
+ <% %> |
<%= link_to 'Show', semester %> |
<%= link_to 'Edit', edit_semester_path(semester) %> |
<%= link_to 'Destroy', semester, method: :delete, data: { confirm: 'Are you sure?' } %> |
diff --git a/app/views/studien/_semesteransicht.html.erb b/app/views/studien/_semesteransicht.html.erb
new file mode 100644
index 0000000..d229dd1
--- /dev/null
+++ b/app/views/studien/_semesteransicht.html.erb
@@ -0,0 +1,12 @@
+
+ <%= @studium.typ %> <%= @studium.name %> (<%= @studium.zahl %>)
+
+ <%= raw(@studium.desc) %>
+<% @studium.semester.each do |sem| %>
+
+
<%= sem.nummer.to_s + ". Semester" %>
+
+<%= render :partial=>'lvas/lva_semester', :collection=>sem.lvas, :as=>:lva%>
+
+<% end %>
+
diff --git a/app/views/studien/_studien.html.erb b/app/views/studien/_studien.html.erb
new file mode 100755
index 0000000..65b0ae4
--- /dev/null
+++ b/app/views/studien/_studien.html.erb
@@ -0,0 +1,17 @@
+
+ <%= @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/index.html.erb b/app/views/studien/index.html.erb
index 52068d1..eb87bce 100755
--- a/app/views/studien/index.html.erb
+++ b/app/views/studien/index.html.erb
@@ -4,7 +4,7 @@
<% @studien.sort_by{|z| z[:zahl]}.each do |studium| %>
- <%= link_to studium.zahl + " "+ studium.typ+" " + studium.name, studium_path(studium) %>
+ <%= link_to studium.zahl + " "+ studium.typ+" " + studium.name, studium_path(studium, :sem=>"true") %>
<%= link_to "Modulansicht", studium_path(studium, :sem=>"false") %>
<% end %>
diff --git a/app/views/studien/show.html.erb b/app/views/studien/show.html.erb
old mode 100755
new mode 100644
index 6c755c2..4c97a77
--- a/app/views/studien/show.html.erb
+++ b/app/views/studien/show.html.erb
@@ -1,32 +1,28 @@
-
-
<%= notice %>
+
+
<%= notice %>
- <%= link_to '
'.html_safe+ I18n.t("studien.allestudien"), studien_path,:raw=>true %>
-
-
<%= @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 %>
+ <%= link_to '
'.html_safe+ I18n.t("studien.allestudien"), studien_path,:raw=>true %>|<%= link_to "Ansicht wechseln", studium_path(@studium, :sem => @change)%>
-
-
-<%= link_to ''.html_safe+I18n.t("studien.newmodulgroup"), new_studium_modulgruppe_path(@studium),:class=>"btn" %> |
-<%= link_to ''.html_safe+I18n.t("common.edit"), edit_studium_path(@studium) ,:class=>"btn"%>
-<%= link_to 'Destroy', @studium, method: :delete, data: { confirm: 'Are you sure?' } %>
-
-
+<%= @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 %>
+
+
+
+
+
+ <%= link_to ''.html_safe+I18n.t("studien.newmodulgroup"), new_studium_modulgruppe_path(@studium),:class=>"btn" %> |
+ <%= link_to ''.html_safe+I18n.t("common.edit"), edit_studium_path(@studium) ,:class=>"btn"%>
+ <%= link_to 'Destroy', @studium, method: :delete, data: { confirm: 'Are you sure?' } %>
+
+
From 9698551d8d05dc710e3afec8c153e09b1d48019e Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Mon, 29 Jul 2013 17:49:18 +0200
Subject: [PATCH 08/44] =?UTF-8?q?Migration=20&=20Schema=20=C3=A4nderungen?=
=?UTF-8?q?=20f=C3=BCr=20Die=20Semester?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...29085446_create_lva_semester_join_table.rb | 21 +++++++++++++++++++
db/schema.rb | 7 ++++++-
2 files changed, 27 insertions(+), 1 deletion(-)
create mode 100644 db/migrate/20130729085446_create_lva_semester_join_table.rb
diff --git a/db/migrate/20130729085446_create_lva_semester_join_table.rb b/db/migrate/20130729085446_create_lva_semester_join_table.rb
new file mode 100644
index 0000000..c4f8ea4
--- /dev/null
+++ b/db/migrate/20130729085446_create_lva_semester_join_table.rb
@@ -0,0 +1,21 @@
+class CreateLvaSemesterJoinTable < ActiveRecord::Migration
+ def self.up
+ create_table :lvas_semesters, :id=>false do |t|
+ t.integer :lva_id
+ t.integer :semester_id
+ end
+ add_index :lva_semesters, [:lva_id, :semester_id]
+ add_index :lva_semesters, :semester_id
+ end
+ def change
+ create_table :lvas_semesters, :id=>false do |t|
+ t.integer :lva_id
+ t.integer :semester_id
+ end
+ add_index :lva_semesters, [:lva_id, :semester_id]
+ add_index :lva_semesters, :semester_id
+ end
+ def self.down
+ drop_table :lva_semesters
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index c642d5b..6a96d37 100755
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20130214233723) do
+ActiveRecord::Schema.define(:version => 20130729085446) do
create_table "beispiele", :force => true do |t|
t.string "name"
@@ -50,6 +50,11 @@ ActiveRecord::Schema.define(:version => 20130214233723) do
t.integer "modul_id"
end
+ create_table "lvas_semesters", :force => true do |t|
+ t.integer "lva_id"
+ t.integer "semester_id"
+ end
+
create_table "modul_translations", :force => true do |t|
t.integer "modul_id"
t.string "locale"
From d9618d5bbadf7f5bd4b8a89fef773bc0cb8e0859 Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Mon, 29 Jul 2013 18:02:35 +0200
Subject: [PATCH 09/44] =?UTF-8?q?Semester=20vorl=C3=A4ufig?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controllers/studien_controller.rb | 2 ++
app/views/studien/show.html.erb | 36 ++++++++++++---------------
2 files changed, 18 insertions(+), 20 deletions(-)
diff --git a/app/controllers/studien_controller.rb b/app/controllers/studien_controller.rb
index 6964774..8c5e3cb 100755
--- a/app/controllers/studien_controller.rb
+++ b/app/controllers/studien_controller.rb
@@ -16,8 +16,10 @@ class StudienController < ApplicationController
@sem = 'true'
end
if @sem == 'true'
+ @link = "Modulansicht"
@change = 'false'
else
+ @link = "Semesteransicht"
@change = 'true'
end
diff --git a/app/views/studien/show.html.erb b/app/views/studien/show.html.erb
index 4c97a77..494b00b 100644
--- a/app/views/studien/show.html.erb
+++ b/app/views/studien/show.html.erb
@@ -2,28 +2,24 @@
<%= notice %>
- <%= link_to '
'.html_safe+ I18n.t("studien.allestudien"), studien_path,:raw=>true %>|<%= link_to "Ansicht wechseln", studium_path(@studium, :sem => @change)%>
+ <%= 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/studien", @collection => @studium, :as=>:studium%>
+ <% else %>
+ <%= render :partial =>"studien/semesteransicht", @collection => @studium, :as=>:studium%>
+ <% 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 %>
-
+
+
+ <%= link_to ''.html_safe+I18n.t("studien.newmodulgroup"), new_studium_modulgruppe_path(@studium),:class=>"btn" %> |
+ <%= link_to ''.html_safe+I18n.t("common.edit"), edit_studium_path(@studium) ,:class=>"btn"%>
+ <%= link_to 'Destroy', @studium, method: :delete, data: { confirm: 'Are you sure?' } %>
+
+
-
-
- <%= link_to ''.html_safe+I18n.t("studien.newmodulgroup"), new_studium_modulgruppe_path(@studium),:class=>"btn" %> |
- <%= link_to ''.html_safe+I18n.t("common.edit"), edit_studium_path(@studium) ,:class=>"btn"%>
- <%= link_to 'Destroy', @studium, method: :delete, data: { confirm: 'Are you sure?' } %>
-
-
-
-
-<%= toolbar_html(@toolbar_elements) %>
+ <%= toolbar_html(@toolbar_elements) %>
From 5f45487d00c0acce138b9bce793c4ebf0ea6c613 Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Mon, 29 Jul 2013 18:42:44 +0200
Subject: [PATCH 10/44] Semester "ohne zuordnung"
---
app/models/semester.rb | 7 ++++++-
app/views/studien/_semesteransicht.html.erb | 20 ++++++++++++--------
2 files changed, 18 insertions(+), 9 deletions(-)
diff --git a/app/models/semester.rb b/app/models/semester.rb
index 617fdaf..7771004 100755
--- a/app/models/semester.rb
+++ b/app/models/semester.rb
@@ -18,7 +18,6 @@ class Semester < ActiveRecord::Base
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"
@@ -38,6 +37,12 @@ class Semester < ActiveRecord::Base
semester.save
target << semester
end
+ semester = Semester.new()
+ semester.name = "Ohne Zuordnung"
+ semester.nummer = 0
+ semester.ssws = "WS"
+ semester.save
+ target << semester
end
def batch_destroy(studium)
diff --git a/app/views/studien/_semesteransicht.html.erb b/app/views/studien/_semesteransicht.html.erb
index d229dd1..a861223 100644
--- a/app/views/studien/_semesteransicht.html.erb
+++ b/app/views/studien/_semesteransicht.html.erb
@@ -1,12 +1,16 @@
- <%= @studium.typ %> <%= @studium.name %> (<%= @studium.zahl %>)
-
- <%= raw(@studium.desc) %>
-<% @studium.semester.each do |sem| %>
-
-
<%= sem.nummer.to_s + ". Semester" %>
-
-<%= render :partial=>'lvas/lva_semester', :collection=>sem.lvas, :as=>:lva%>
+
<%= @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 %>
+
+ <%= render :partial=>'lvas/lva_semester', :collection=>sem.lvas, :as=>:lva%>
+
<% end %>
From 7405a2a229b3b83279fd05f6de4ef3636ea8d96f Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Mon, 29 Jul 2013 18:42:59 +0200
Subject: [PATCH 11/44] Versuch automatische zuordnung
---
app/controllers/lvas_controller.rb | 24 ++++++++++++++++++------
1 file changed, 18 insertions(+), 6 deletions(-)
diff --git a/app/controllers/lvas_controller.rb b/app/controllers/lvas_controller.rb
index 974b089..7f9949e 100755
--- a/app/controllers/lvas_controller.rb
+++ b/app/controllers/lvas_controller.rb
@@ -18,8 +18,8 @@ class LvasController < ApplicationController
def new
@lva = Lva.new
modul=Modul.find(params[:modul_id])
- @lva.modul<
Date: Mon, 29 Jul 2013 19:46:31 +0200
Subject: [PATCH 12/44] Optik semesteransicht
---
app/views/studien/_semesteransicht.html.erb | 2 +-
app/views/studien/index.html.erb | 6 ++++--
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/app/views/studien/_semesteransicht.html.erb b/app/views/studien/_semesteransicht.html.erb
index a861223..96630bc 100644
--- a/app/views/studien/_semesteransicht.html.erb
+++ b/app/views/studien/_semesteransicht.html.erb
@@ -10,7 +10,7 @@
Ohne Zuordnung
<% end %>
- <%= render :partial=>'lvas/lva_semester', :collection=>sem.lvas, :as=>:lva%>
+ <%= render :partial=>'lvas/lva_semester', :collection=>sem.lvas.sort_by{|n| [:name]}, :as=>:lva%>
<% end %>
diff --git a/app/views/studien/index.html.erb b/app/views/studien/index.html.erb
index eb87bce..5a09d84 100755
--- a/app/views/studien/index.html.erb
+++ b/app/views/studien/index.html.erb
@@ -2,10 +2,12 @@
<% @studien.sort_by{|z| z[:zahl]}.each do |studium| %>
+
-
-
<%= link_to studium.zahl + " "+ studium.typ+" " + studium.name, studium_path(studium, :sem=>"true") %>
<%= link_to "Modulansicht", studium_path(studium, :sem=>"false") %>
+ <%= link_to studium.zahl + " "+ studium.typ+" " + studium.name, studium_path(studium, :sem=>"true") %>
+ (<%= link_to "Modulansicht", studium_path(studium, :sem=>"false") %>)
+
<% end %>
From 733080c09355c142dd4bc0c1b84c8ea2f5bc5f5d Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Mon, 29 Jul 2013 19:47:29 +0200
Subject: [PATCH 13/44] automatik lvas
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
LVas die kein Semester anhängen haben, werden automatisch Zu Ungeordnet
hinzugefügt
---
app/controllers/lvas_controller.rb | 18 ++++--------------
app/models/lva.rb | 12 +++++++++++-
2 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/app/controllers/lvas_controller.rb b/app/controllers/lvas_controller.rb
index 7f9949e..b353558 100755
--- a/app/controllers/lvas_controller.rb
+++ b/app/controllers/lvas_controller.rb
@@ -31,15 +31,10 @@ class LvasController < ApplicationController
# POST /lvas.json
def create
@lva = Lva.new(params[:lva])
- if @lva.semester.nil?
- for m in @lva.modul
- for mg in m.modulgruppen
- @lva.semester << mg.studium.semester.last
- end
- end
- end
+
respond_to do |format|
if @lva.save
+ Lva.add_semesters(@lva)
format.html { redirect_to @lva, notice: 'Lva was successfully created.' }
else
@@ -53,15 +48,10 @@ class LvasController < ApplicationController
# PUT /lvas/1.json
def update
@lva = Lva.find(params[:id])
- if @lva.semester.nil?
- for m in @lva.modul
- for mg in m.modulgruppen
- @lva.semester << mg.studium.semester.last
- end
- end
- end
+
respond_to do |format|
if @lva.update_attributes(params[:lva])
+ Lva.add_semesters(@lva)
format.html { redirect_to @lva, notice: 'Lva was successfully updated.' }
else
diff --git a/app/models/lva.rb b/app/models/lva.rb
index 680ce1c..8a17c1d 100755
--- a/app/models/lva.rb
+++ b/app/models/lva.rb
@@ -31,7 +31,17 @@ class Lva < ActiveRecord::Base
validates_presence_of :name # Name Eingetragen?
validates_presence_of :stunden # Stunden Eingetragen?
validates_presence_of :modul # Zugehöriges Modul eingetragen? (zumindest eines)
-private
+ def self.add_semesters(l)
+ if l.semester.empty?
+ for m in l.modul
+ for mg in m.modulgruppen
+ l.semester << mg.studium.semester.last
+ end
+ end
+ end
+
+ end
+ private
##
# Lade Daten aus TISS und füge diese in die Datenbank ein.
From cacee4aa60f4cf493e5e503cc04c97d0059e4293 Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Mon, 29 Jul 2013 20:17:00 +0200
Subject: [PATCH 14/44] Zusatz LVa-automatismus
---
app/controllers/lvas_controller.rb | 4 ++--
app/models/lva.rb | 11 +++++++----
2 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/app/controllers/lvas_controller.rb b/app/controllers/lvas_controller.rb
index b353558..28d7172 100755
--- a/app/controllers/lvas_controller.rb
+++ b/app/controllers/lvas_controller.rb
@@ -31,10 +31,10 @@ class LvasController < ApplicationController
# POST /lvas.json
def create
@lva = Lva.new(params[:lva])
-
+ Lva.add_semesters(@lva)
respond_to do |format|
if @lva.save
- Lva.add_semesters(@lva)
+
format.html { redirect_to @lva, notice: 'Lva was successfully created.' }
else
diff --git a/app/models/lva.rb b/app/models/lva.rb
index 8a17c1d..d08fa5c 100755
--- a/app/models/lva.rb
+++ b/app/models/lva.rb
@@ -32,10 +32,13 @@ class Lva < ActiveRecord::Base
validates_presence_of :stunden # Stunden Eingetragen?
validates_presence_of :modul # Zugehöriges Modul eingetragen? (zumindest eines)
def self.add_semesters(l)
- if l.semester.empty?
- for m in l.modul
- for mg in m.modulgruppen
- l.semester << mg.studium.semester.last
+
+ for m in l.modul
+ for mg in m.modulgruppen
+ hits = mg.studium.semester.all.map{|x| x.lvas}.collect{|x| x.find_by_id(l.id)}.compact
+
+ if hits.empty?
+ l.semester << mg.studium.semester.where(:nummer => 0)
end
end
end
From c03ecd3076d358777452950db25d5e1317604a18 Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Mon, 29 Jul 2013 21:10:15 +0200
Subject: [PATCH 15/44] Einbindung Beispieluploader
---
app/controllers/beispiele_controller.rb | 2 +-
app/controllers/lvas_controller.rb | 7 ++++---
app/models/beispiel.rb | 5 +++++
app/views/beispiele/_form.html.erb | 2 +-
4 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/app/controllers/beispiele_controller.rb b/app/controllers/beispiele_controller.rb
index 7f117ce..d0a8146 100755
--- a/app/controllers/beispiele_controller.rb
+++ b/app/controllers/beispiele_controller.rb
@@ -25,7 +25,7 @@ class BeispieleController < ApplicationController
# GET /beispiele/new.json
def new
@beispiel = Beispiel.new
-
+ @beispiel.lva_id = params[:lva_id]
respond_to do |format|
format.html # new.html.erb
format.json { render json: @beispiel }
diff --git a/app/controllers/lvas_controller.rb b/app/controllers/lvas_controller.rb
index 28d7172..f9409be 100755
--- a/app/controllers/lvas_controller.rb
+++ b/app/controllers/lvas_controller.rb
@@ -11,14 +11,15 @@ class LvasController < ApplicationController
def show
@lva = Lva.find_by_id(params[:id])
@toolbar_elements<<{:icon=>:pencil,:text =>I18n.t('common.edit'),:path => edit_lva_path(@lva)}
+ @toolbar_elements<<{:icon=>:plus, :text => "Neues Beispiel", :path=> new_beispiel_path(:lva_id =>@lva.id)}
end
# GET /lvas/new
# GET /lvas/new.json
def new
@lva = Lva.new
- modul=Modul.find(params[:modul_id])
- @lva.modul< true
+ validates :name, :presence => true
+ validates :lva_id, :presence => true
+ validates :lva, :presence => true
+
end
diff --git a/app/views/beispiele/_form.html.erb b/app/views/beispiele/_form.html.erb
index dca1eb9..bf0c027 100755
--- a/app/views/beispiele/_form.html.erb
+++ b/app/views/beispiele/_form.html.erb
@@ -4,7 +4,7 @@
<%= f.input :desc %>
<%= f.file_field :beispieldatei %>
<%= f.hidden_field :beispieldatei_cache %>
- <%= f.input :lva, :as=>:radio, :collection => Lva.all%>
+ <%= f.input :lva, :as=>:select, :collection => Lva.all%>
<% end %>
<%= f.actions do %>
From 15f5b599ff4cc5fcc442c929b9f0effa3eb3be2a Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Mon, 29 Jul 2013 21:10:40 +0200
Subject: [PATCH 16/44] Kosmetik
---
app/controllers/studien_controller.rb | 2 +-
app/views/lvas/_lva_semester.html.erb | 5 +++--
app/views/studien/_semesteransicht.html.erb | 4 ++--
app/views/studien/show.html.erb | 1 -
4 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/app/controllers/studien_controller.rb b/app/controllers/studien_controller.rb
index 8c5e3cb..97de33b 100755
--- a/app/controllers/studien_controller.rb
+++ b/app/controllers/studien_controller.rb
@@ -41,7 +41,7 @@ class StudienController < ApplicationController
end
@studienphasen << {:modulgruppen=>modulgruppen, :phase => ph}.merge(opts)
end
- @toolbar_elements=[{:icon =>:plus ,:text=> I18n.t('studien.new') , :path => new_studium_modulgruppe_path(@studium) }]
+ @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
diff --git a/app/views/lvas/_lva_semester.html.erb b/app/views/lvas/_lva_semester.html.erb
index 7168aa7..f0babee 100755
--- a/app/views/lvas/_lva_semester.html.erb
+++ b/app/views/lvas/_lva_semester.html.erb
@@ -1,5 +1,6 @@
+
- <%= %>
- <%= link_to lva.lvanr.to_s + " " + lva.name + "", lva_path(lva) %> <%= lva.ects %> ECTS/ <%= lva.stunden %> Std
+
<%= link_to lva.name + " " + lva.lvanr.to_s, lva_path(lva) %>
+<%= lva.ects %> ECTS/ <%= lva.stunden %> Std
<% #toolbar_html(@toolbar_elements) %>
diff --git a/app/views/studien/_semesteransicht.html.erb b/app/views/studien/_semesteransicht.html.erb
index 96630bc..ef6f1a0 100644
--- a/app/views/studien/_semesteransicht.html.erb
+++ b/app/views/studien/_semesteransicht.html.erb
@@ -5,12 +5,12 @@
<% @studium.semester.each do |sem| %>
<% if sem.nummer > 0 %>
-
<%= sem.nummer.to_s + ". Semester" %>
+
<%= sem.nummer.to_s + ". Semester" %>
<% else %>
Ohne Zuordnung
<% end %>
- <%= render :partial=>'lvas/lva_semester', :collection=>sem.lvas.sort_by{|n| [:name]}, :as=>:lva%>
+
<%= render :partial=>'lvas/lva_semester', :collection=>sem.lvas.sort_by{|n| n[:name]}, :as=>:lva%>
<% end %>
diff --git a/app/views/studien/show.html.erb b/app/views/studien/show.html.erb
index 494b00b..73f1f73 100644
--- a/app/views/studien/show.html.erb
+++ b/app/views/studien/show.html.erb
@@ -16,7 +16,6 @@
<%= link_to ''.html_safe+I18n.t("studien.newmodulgroup"), new_studium_modulgruppe_path(@studium),:class=>"btn" %> |
<%= link_to ''.html_safe+I18n.t("common.edit"), edit_studium_path(@studium) ,:class=>"btn"%>
- <%= link_to 'Destroy', @studium, method: :delete, data: { confirm: 'Are you sure?' } %>
From 079266895cc7214e7853f433a8396107e3c5a420 Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Mon, 29 Jul 2013 21:10:50 +0200
Subject: [PATCH 17/44] Kommentare
---
app/models/lva.rb | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/app/models/lva.rb b/app/models/lva.rb
index d08fa5c..4000a69 100755
--- a/app/models/lva.rb
+++ b/app/models/lva.rb
@@ -31,14 +31,14 @@ class Lva < ActiveRecord::Base
validates_presence_of :name # Name Eingetragen?
validates_presence_of :stunden # Stunden Eingetragen?
validates_presence_of :modul # Zugehöriges Modul eingetragen? (zumindest eines)
- def self.add_semesters(l)
+ def add_semesters
+ # Diese Methode fügt die Instanz automatisch zu allen Studien als "Ohne Semesterempfehlung" (Semester 0) zu, bei denen die Instanz im Studium noch nicht vorkommt.
+ for m in self.modul
+ for mg in m.modulgruppen # Über alle Module und alle Modulgruppen iterieren
+ hits = mg.studium.semester.all.map{|x| x.lvas}.collect{|x| x.find_by_id(self.id)}.compact # Alle einträge in allen semestern mit gleicher LVa-ID suchen und alle nils entfernen
- for m in l.modul
- for mg in m.modulgruppen
- hits = mg.studium.semester.all.map{|x| x.lvas}.collect{|x| x.find_by_id(l.id)}.compact
-
- if hits.empty?
- l.semester << mg.studium.semester.where(:nummer => 0)
+ if hits.empty? # wurde gar kein eintrag gefunden ?
+ self.semester << mg.studium.semester.where(:nummer => 0) # auf nummer null eintragen
end
end
end
From 6840beb66455d3b9cfea4d92ed6d4a896cd1aca3 Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Mon, 29 Jul 2013 21:11:05 +0200
Subject: [PATCH 18/44] Studium.semester nicht mehr accessible
---
app/models/studium.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/models/studium.rb b/app/models/studium.rb
index 3a1d5de..d48bda5 100755
--- a/app/models/studium.rb
+++ b/app/models/studium.rb
@@ -13,7 +13,7 @@
#
class Studium < ActiveRecord::Base
- attr_accessible :desc, :name, :typ, :zahl, :semester
+ attr_accessible :desc, :name, :typ, :zahl
has_many :modulgruppen, inverse_of: :studium, :class_name => "Modulgruppe"
has_many :semester, :dependent => :destroy
From f2b8e354fe89d0eb84691cfc0b363b8ccb3ee514 Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Tue, 30 Jul 2013 09:38:46 +0200
Subject: [PATCH 19/44] Umbenennung
---
.../studien/{_studien.html.erb => _modulansicht.html.erb} | 0
app/views/studien/show.html.erb | 4 ++--
2 files changed, 2 insertions(+), 2 deletions(-)
rename app/views/studien/{_studien.html.erb => _modulansicht.html.erb} (100%)
diff --git a/app/views/studien/_studien.html.erb b/app/views/studien/_modulansicht.html.erb
similarity index 100%
rename from app/views/studien/_studien.html.erb
rename to app/views/studien/_modulansicht.html.erb
diff --git a/app/views/studien/show.html.erb b/app/views/studien/show.html.erb
index 73f1f73..1baa67f 100644
--- a/app/views/studien/show.html.erb
+++ b/app/views/studien/show.html.erb
@@ -5,7 +5,7 @@
<%= 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/studien", @collection => @studium, :as=>:studium%>
+ <%= render :partial => "studien/modulansicht", @collection => @studium, :as=>:studium%>
<% else %>
<%= render :partial =>"studien/semesteransicht", @collection => @studium, :as=>:studium%>
<% end %>
@@ -14,7 +14,7 @@
- <%= link_to ''.html_safe+I18n.t("studien.newmodulgroup"), new_studium_modulgruppe_path(@studium),:class=>"btn" %> |
+ <%= link_to ''.html_safe+I18n.t("studien.newmodulgroup"), new_studium_modulgruppe_path(:studium_id=>@studium.id),:class=>"btn" %> |
<%= link_to ''.html_safe+I18n.t("common.edit"), edit_studium_path(@studium) ,:class=>"btn"%>
From 3cc2899b261ef4a136bc2a201dffec0a263fe194 Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Tue, 30 Jul 2013 09:41:32 +0200
Subject: [PATCH 20/44] Validations korrigiert
Hab jetzt den Namen von Modulgruppen aus den Translations
herausgenommen, dadurch funktioniert uniqueness
---
app/models/lva.rb | 6 +++---
app/models/modulgruppe.rb | 4 ++--
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/app/models/lva.rb b/app/models/lva.rb
index 4000a69..3e0036f 100755
--- a/app/models/lva.rb
+++ b/app/models/lva.rb
@@ -25,10 +25,10 @@ class Lva < ActiveRecord::Base
translates :desc, :fallbacks_for_empty_translations => true
- validates :lvanr,:format=>{ :with => /^[0-9][0-9][0-9]\.[0-9][0-9][0-9]$/} # , :uniqueness=>true # LVA-Nummer muss das Format 000.000 besitzen (uniqueness?) oder 000 für nicht existent
-
+ validates :lvanr,:format=>{ :with => /^[0-9][0-9][0-9]\.[0-9][0-9][0-9]$/}, :presence=>true, :uniqueness=>true # , :uniqueness=>true # LVA-Nummer muss das Format 000.000 besitzen (uniqueness?) oder 000 für nicht
validates_presence_of :ects # ECTS vorhanden?
- validates_presence_of :name # Name Eingetragen?
+ validates :name, :presence=>true
+ validates :name, :uniqueness=>true# Name Eingetragen?
validates_presence_of :stunden # Stunden Eingetragen?
validates_presence_of :modul # Zugehöriges Modul eingetragen? (zumindest eines)
def add_semesters
diff --git a/app/models/modulgruppe.rb b/app/models/modulgruppe.rb
index 47fa049..dc3787b 100755
--- a/app/models/modulgruppe.rb
+++ b/app/models/modulgruppe.rb
@@ -21,8 +21,8 @@ class Modulgruppe < ActiveRecord::Base
validates :studium_id, :presence => true # Bei der Abfrage ist student_id entscheidend
validates :studium, :presence => true # Wird gesetzt, um das richtige Feld zu melden bei Fehlern
- validates :name, :uniqueness =>{:scope => :studium}, :presence=>true # Funktioniert leider nicht
+ validates :name, :uniqueness =>{:scope => :studium_id}, :presence=>true # Pro Studium darf ein Name nur einmal vorkommen
validates :phase, :inclusion => {:in => [1, 2, 3, 4]}
validates :typ, :inclusion => {:in => ["Pflicht","Vertiefungspflicht","Wahl"] }
- translates :name,:desc, :versioning =>true,:fallbacks_for_empty_translations => true
+ translates :desc, :versioning =>true,:fallbacks_for_empty_translations => true
end
From e686a21c9fa2860f3f82ab16fd6d5ce040a82775 Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Tue, 30 Jul 2013 09:42:13 +0200
Subject: [PATCH 21/44] Kleine Korrekturen
---
app/controllers/modulgruppen_controller.rb | 4 ++--
app/controllers/studien_controller.rb | 1 +
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/app/controllers/modulgruppen_controller.rb b/app/controllers/modulgruppen_controller.rb
index abb8308..6d2f972 100755
--- a/app/controllers/modulgruppen_controller.rb
+++ b/app/controllers/modulgruppen_controller.rb
@@ -27,9 +27,9 @@ class ModulgruppenController < ApplicationController
def new
@modulgruppe = Modulgruppe.new
if !params[:studium_id].nil?
- @studium=Studium.find(params[:studium_id])
+ @modulgruppe.studium_id=(params[:studium_id])
else
- @studium=Studium.first
+ @modulgruppe.studium_id=studium_id=Studium.first.id
end
respond_to do |format|
format.html # new.html.erb
diff --git a/app/controllers/studien_controller.rb b/app/controllers/studien_controller.rb
index 97de33b..6a4ca7b 100755
--- a/app/controllers/studien_controller.rb
+++ b/app/controllers/studien_controller.rb
@@ -7,6 +7,7 @@ class StudienController < ApplicationController
@toolbar_elements<<{:icon =>:plus, :text=> I18n.t('studien.new') ,:path=>new_studium_path }
@toolbar_elements<<{:text=> I18n.t('modulgruppe.show.link') ,:path=>modulgruppen_path }
@toolbar_elements<<{:text=> I18n.t('modul.show.link') ,:path=>moduls_path }
+ @toolbar_elements<<{:text=> 'Alle LVas auflisten', :path=>lvas_path}
end
def show
From 9d1b915cd4018a63311b5547ab71b1ee159d5314 Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Tue, 30 Jul 2013 14:28:28 +0200
Subject: [PATCH 22/44] =?UTF-8?q?Studien-views=20=C3=BCberarbeiten?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/views/lvas/_lva_semester.html.erb | 4 ++--
app/views/studien/_semesteransicht.html.erb | 6 +++++-
app/views/studien/_studium.html.erb | 10 ++++++++++
app/views/studien/index.html.erb | 9 +++------
4 files changed, 20 insertions(+), 9 deletions(-)
create mode 100644 app/views/studien/_studium.html.erb
diff --git a/app/views/lvas/_lva_semester.html.erb b/app/views/lvas/_lva_semester.html.erb
index f0babee..96544d5 100755
--- a/app/views/lvas/_lva_semester.html.erb
+++ b/app/views/lvas/_lva_semester.html.erb
@@ -1,6 +1,6 @@
-
<%= link_to lva.name + " " + lva.lvanr.to_s, lva_path(lva) %>
-<%= lva.ects %> ECTS/ <%= lva.stunden %> Std
+ <%= link_to lva.name + " / " + lva.lvanr.to_s, lva_path(lva) %>
+<%= lva.ects %> ECTS/ <%= lva.stunden %> Std <%= " / " + lva.beispiele.count.to_s + " Beispiele"%>
<% #toolbar_html(@toolbar_elements) %>
diff --git a/app/views/studien/_semesteransicht.html.erb b/app/views/studien/_semesteransicht.html.erb
index ef6f1a0..65af43a 100644
--- a/app/views/studien/_semesteransicht.html.erb
+++ b/app/views/studien/_semesteransicht.html.erb
@@ -10,7 +10,11 @@
Ohne Zuordnung
<% end %>
-
<%= render :partial=>'lvas/lva_semester', :collection=>sem.lvas.sort_by{|n| n[:name]}, :as=>:lva%>
+
+<% 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
new file mode 100644
index 0000000..91edd1b
--- /dev/null
+++ b/app/views/studien/_studium.html.erb
@@ -0,0 +1,10 @@
+
+
<%= link_to studium.name + " " + studium.zahl.to_s, studium_path(studium)%>(<%=link_to "Modulgruppenansicht", studium_path(studium, :sem=>'false')%>)
+
+Typ: <%= studium.typ%>
+
+
+Beschreibung:
+<%= studium.desc %>
+
+
diff --git a/app/views/studien/index.html.erb b/app/views/studien/index.html.erb
index 5a09d84..1cd2dcb 100755
--- a/app/views/studien/index.html.erb
+++ b/app/views/studien/index.html.erb
@@ -2,12 +2,9 @@
<% @studien.sort_by{|z| z[:zahl]}.each do |studium| %>
-
-
-
<%= link_to studium.zahl + " "+ studium.typ+" " + studium.name, studium_path(studium, :sem=>"true") %>
- (<%= link_to "Modulansicht", studium_path(studium, :sem=>"false") %>)
-
-
+
<% end %>
From bbaa9b89dd5df5925c64bd6544d93f8daf8a3990 Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Tue, 30 Jul 2013 14:42:37 +0200
Subject: [PATCH 23/44] Kosmetik
---
app/controllers/studien_controller.rb | 2 +-
app/views/lvas/_lva_semester.html.erb | 9 +++----
app/views/lvas/index.html.erb | 34 ++++-----------------------
3 files changed, 11 insertions(+), 34 deletions(-)
diff --git a/app/controllers/studien_controller.rb b/app/controllers/studien_controller.rb
index 6a4ca7b..976bd4b 100755
--- a/app/controllers/studien_controller.rb
+++ b/app/controllers/studien_controller.rb
@@ -5,7 +5,7 @@ class StudienController < ApplicationController
def index
@studien = Studium.all
@toolbar_elements<<{:icon =>:plus, :text=> I18n.t('studien.new') ,:path=>new_studium_path }
- @toolbar_elements<<{:text=> I18n.t('modulgruppe.show.link') ,:path=>modulgruppen_path }
+ # @toolbar_elements<<{:text=> I18n.t('modulgruppe.show.link') ,:path=>modulgruppen_path }
@toolbar_elements<<{:text=> I18n.t('modul.show.link') ,:path=>moduls_path }
@toolbar_elements<<{:text=> 'Alle LVas auflisten', :path=>lvas_path}
end
diff --git a/app/views/lvas/_lva_semester.html.erb b/app/views/lvas/_lva_semester.html.erb
index 96544d5..48ea699 100755
--- a/app/views/lvas/_lva_semester.html.erb
+++ b/app/views/lvas/_lva_semester.html.erb
@@ -1,6 +1,7 @@
-
- <%= link_to lva.name + " / " + lva.lvanr.to_s, lva_path(lva) %>
-<%= lva.ects %> ECTS/ <%= lva.stunden %> Std <%= " / " + lva.beispiele.count.to_s + " Beispiele"%>
-
+
+ <%= link_to lva.name, lva_path(lva)%>
<%="LVa-Nr " + lva.lvanr.to_s %>
+<%= lva.ects %> ECTS / <%= lva.stunden %> Std <%= " / " + lva.beispiele.count.to_s + " Beispiele"%>
+<%= link_to "Edit", edit_lva_path(lva) %> | <%= link_to "Beispiel hinzufügen", new_beispiel_path(:lva_id=>lva.id) %>
+
<% #toolbar_html(@toolbar_elements) %>
diff --git a/app/views/lvas/index.html.erb b/app/views/lvas/index.html.erb
index c09b08a..2eec9ee 100755
--- a/app/views/lvas/index.html.erb
+++ b/app/views/lvas/index.html.erb
@@ -1,31 +1,7 @@
Listing lvas
-
-
-
- | Name |
- Desc |
- Ects |
- Lvanr |
- Stunden |
- |
- |
- |
-
-
-<% @lvas.each do |lva| %>
-
- | <%= lva.name %> |
- <%= lva.desc %> |
- <%= lva.ects %> |
- <%= lva.lvanr %> |
- <%= lva.stunden %> |
- <%= link_to 'Show', lva %> |
- <%= link_to 'Edit', edit_lva_path(lva) %> |
- <%= link_to 'Destroy', lva, method: :delete, data: { confirm: 'Are you sure?' } %> |
-
-<% end %>
-
-
-
-
+
+<% @lvas.each do |l| %>
+- <%= render :partial => 'lvas/lva_semester', :locals=> {:lva => l} %>
+<%end%>
+
<%= link_to 'New Lva', new_lva_path %>
From afd85d0bc04b1cfd8978ad35c7d4817d2b1b28a3 Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Thu, 1 Aug 2013 11:57:37 +0200
Subject: [PATCH 24/44] 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
From 6b6a8657be4c49029ccb254b29c09a88a03ea5c2 Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Thu, 1 Aug 2013 17:43:55 +0200
Subject: [PATCH 25/44] =?UTF-8?q?=C3=9Cbersetzungen?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
config/locales/de.yml | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/config/locales/de.yml b/config/locales/de.yml
index 97cc3af..69b66c1 100755
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -18,7 +18,9 @@ de:
show:
title: "Auflistung aller Module"
link: "Alle Module auflisten"
-
+
+ semester:
+ ohne: "Ohne Semesterzuordnung"
modulgruppe:
typ: "Typ"
addmodul: "Neues Modul hinzufügen"
@@ -85,4 +87,17 @@ de:
blank: "Geben Sie die Stunden der LVA an"
lvanr:
invalid: "Geben Sie eine LVA-Nummer in richtigem Format an. Wenn die LVA noch keine Nummer hat, so geben sie 000 an."
+ studium:
+ attributes:
+ zahl:
+ blank: "Geben Sie die Studienkennzahl an"
+ invalid: "Die eingegebene Form stimmt nicht (beginnend mit 033 oder 066, dann 3 Stellen)"
+ taken: "Die Kennzahl wird bereits verwendet"
+ name:
+ blank: "Geben Sie den Namen des Studiums ein"
+ taken: "Der Name ist bereits vergeben"
+ typ:
+ inclusion: 'Wählen Sie "Bachelor" oder "Master" aus'
+
+
From 42f6ee9a49f70049fa40973a7e8a94afe257317d Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Thu, 1 Aug 2013 17:45:31 +0200
Subject: [PATCH 26/44] =?UTF-8?q?Einr=C3=BCckungen?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controllers/semesters_controller.rb | 5 ++--
app/models/lva.rb | 34 ++++++++++++-------------
app/models/modul.rb | 1 +
3 files changed, 21 insertions(+), 19 deletions(-)
diff --git a/app/controllers/semesters_controller.rb b/app/controllers/semesters_controller.rb
index 6a2e39d..751a4b7 100755
--- a/app/controllers/semesters_controller.rb
+++ b/app/controllers/semesters_controller.rb
@@ -4,7 +4,7 @@ class SemestersController < ApplicationController
@semesters = Semester.all
end
-
+
def show
@semester = Semester.find(params[:id])
@@ -20,6 +20,7 @@ class SemestersController < ApplicationController
def create
@semester = Semester.new(params[:semester])
+
respond_to do |format|
if @semester.save
@@ -45,7 +46,7 @@ class SemestersController < ApplicationController
def destroy
@semester = Semester.find(params[:id])
@semester.destroy
-redirect_to semester_url
+ redirect_to semester_url
end
end
diff --git a/app/models/lva.rb b/app/models/lva.rb
index 3e0036f..bf0b2e8 100755
--- a/app/models/lva.rb
+++ b/app/models/lva.rb
@@ -35,7 +35,7 @@ class Lva < ActiveRecord::Base
# Diese Methode fügt die Instanz automatisch zu allen Studien als "Ohne Semesterempfehlung" (Semester 0) zu, bei denen die Instanz im Studium noch nicht vorkommt.
for m in self.modul
for mg in m.modulgruppen # Über alle Module und alle Modulgruppen iterieren
- hits = mg.studium.semester.all.map{|x| x.lvas}.collect{|x| x.find_by_id(self.id)}.compact # Alle einträge in allen semestern mit gleicher LVa-ID suchen und alle nils entfernen
+ hits = mg.studium.semester.all.map{|x| x.lvas}.collect{|x| x.find_by_id(self.id)}.compact # Alle einträge in allen semestern mit gleicher LVa-ID suchen und alle nils entfernen
if hits.empty? # wurde gar kein eintrag gefunden ?
self.semester << mg.studium.semester.where(:nummer => 0) # auf nummer null eintragen
@@ -46,23 +46,23 @@ class Lva < ActiveRecord::Base
end
private
-##
-# Lade Daten aus TISS und füge diese in die Datenbank ein.
-def load_tissdata
- url= "https://tiss.tuwien.ac.at/api/course/"+ self.lvanr.to_s+"-2012W"
- begin
- @hash=Hash.from_xml(open(url).read)["tuvienna"]
- @person=[]
- if @hash["course"]["lecturers"]["oid"].is_a? String
- @person = @hash["course"]["lecturers"]["oid"]
- else
- @hash["course"]["lecturers"]["oid"].each do |pid|
- @person << Hash.from_xml(open("https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/" + pid.to_s + ".xml").read)["tuvienna"]["person"]
+ ##
+ # Lade Daten aus TISS und füge diese in die Datenbank ein.
+ def load_tissdata
+ url= "https://tiss.tuwien.ac.at/api/course/"+ self.lvanr.to_s+"-2012W"
+ begin
+ @hash=Hash.from_xml(open(url).read)["tuvienna"]
+ @person=[]
+ if @hash["course"]["lecturers"]["oid"].is_a? String
+ @person = @hash["course"]["lecturers"]["oid"]
+ else
+ @hash["course"]["lecturers"]["oid"].each do |pid|
+ @person << Hash.from_xml(open("https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/" + pid.to_s + ".xml").read)["tuvienna"]["person"]
+ end
end
- end
- rescue OpenURI::HTTPError => e
- end
-end
+ rescue OpenURI::HTTPError => e
+ end
+ end
diff --git a/app/models/modul.rb b/app/models/modul.rb
index f6939d4..028a86a 100755
--- a/app/models/modul.rb
+++ b/app/models/modul.rb
@@ -17,6 +17,7 @@ class Modul < ActiveRecord::Base
has_and_belongs_to_many :lvas
has_and_belongs_to_many :modulgruppen
+
validates :modulgruppen, :presence=>true # Ein Modul muss zu einer Modulgruppe gehören
validates :name, :presence=>true # Ein Modul muss einen Namen haben
translates :desc,:depend,:name, :versioning =>true, :fallbacks_for_empty_translations => true
From 348037036ab1fa375cd8d8c31fc97343b7c45ba3 Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Thu, 1 Aug 2013 17:46:04 +0200
Subject: [PATCH 27/44] Weitere korrekturen Semester
---
app/controllers/studien_controller.rb | 4 +--
app/models/semester.rb | 33 ----------------------
app/models/studium.rb | 28 ++++++++++++++++--
app/views/studien/_navigation.html.erb | 28 ++++++++++++------
app/views/studien/semesteransicht.html.erb | 32 +++++++++------------
5 files changed, 59 insertions(+), 66 deletions(-)
diff --git a/app/controllers/studien_controller.rb b/app/controllers/studien_controller.rb
index 3919265..f07e443 100755
--- a/app/controllers/studien_controller.rb
+++ b/app/controllers/studien_controller.rb
@@ -52,7 +52,7 @@ class StudienController < ApplicationController
def create
@studium = Studium.new(params[:studium])
- Semester.batch_add @studium.name, @studium.typ, @studium.semester
+ @studium.batch_add_semester
respond_to do |format|
if @studium.save
format.html { redirect_to url_for(@studium), notice: 'Studium was successfully created.' }
@@ -65,7 +65,7 @@ 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
diff --git a/app/models/semester.rb b/app/models/semester.rb
index 7771004..913a370 100755
--- a/app/models/semester.rb
+++ b/app/models/semester.rb
@@ -18,37 +18,4 @@ class Semester < ActiveRecord::Base
belongs_to :studium, :foreign_key => "studium_id"
validates :name, :presence => true
validates :nummer, :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
- semester = Semester.new()
- semester.name = "Ohne Zuordnung"
- semester.nummer = 0
- semester.ssws = "WS"
- semester.save
- target << semester
- end
-
- def batch_destroy(studium)
- for m in studium.semester
- m.destroy
- end
- end
- end
end
diff --git a/app/models/studium.rb b/app/models/studium.rb
index d48bda5..a072ced 100755
--- a/app/models/studium.rb
+++ b/app/models/studium.rb
@@ -1,3 +1,4 @@
+# -*- coding: utf-8 -*-
# == Schema Information
#
# Table name: studien
@@ -10,8 +11,6 @@
# typ :string(255)
# created_at :datetime not null
# updated_at :datetime not null
-#
-
class Studium < ActiveRecord::Base
attr_accessible :desc, :name, :typ, :zahl
has_many :modulgruppen, inverse_of: :studium, :class_name => "Modulgruppe"
@@ -19,6 +18,29 @@ class Studium < ActiveRecord::Base
validates :typ, :inclusion => {:in => ["Bachelor","Master"] }
validates :name, :uniqueness => true, :presence=>true
- validates :zahl, :uniqueness => true, :presence=>true
+ validates :zahl, :format=>{:with=>/^0(33|66)[0-9]{3}$/}, :uniqueness => true
translates :desc,:shortdesc, :versioning =>true,:fallbacks_for_empty_translations => true
+
+ def batch_add_semester
+ # Semester automatisch zu Studien hinzufügen
+ if self.typ == "Bachelor"
+ length = 6
+ else
+ length = 4
+ end
+ for i in 1..length
+ semester =Semester.new()
+ semester.name = i.to_s + '. ' + self.name
+ semester.nummer = i
+ semester.ssws = ((i % 2 == 0) ? "SS" : "WS")
+ semester.save
+ self.semester << semester
+ end
+ semester = Semester.new()
+ semester.name = 'Ohne Zuordnung (' + self.name + ')'
+ semester.nummer = 0
+ semester.ssws = "WS"
+ semester.save
+ self.semester << semester
+ end
end
diff --git a/app/views/studien/_navigation.html.erb b/app/views/studien/_navigation.html.erb
index fce00a2..675da8f 100755
--- a/app/views/studien/_navigation.html.erb
+++ b/app/views/studien/_navigation.html.erb
@@ -1,10 +1,20 @@
-<%= 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%>
+
+- <%= link_to ''.html_safe+ I18n.t("studien.allestudien"), studien_path,:raw=>true %>
+ /
+- <%= link_to @text, @path%>
+ /
+
+ <% 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 %>
+
+
+
diff --git a/app/views/studien/semesteransicht.html.erb b/app/views/studien/semesteransicht.html.erb
index cc00404..de3a868 100644
--- a/app/views/studien/semesteransicht.html.erb
+++ b/app/views/studien/semesteransicht.html.erb
@@ -1,21 +1,15 @@
<%= 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 %>
+
+
<%= @studium.typ %> <%= @studium.name %> (<%= @studium.zahl %>)
+<%= raw(@studium.desc) %>
+<% @studium.semester.each do |sem| %>
+
+
<%= sem.name %>
+
+
+ <% sem.lvas.sort_by{|n| n[:name]}.each do |l| %>
+ - <%= render :partial=>'lvas/lva_semester', :locals =>{:lva => l}%>
+ <% end %>
+
-
+<% end %>
From 110069d49789a2178c06706342704f965d3a26c0 Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Fri, 2 Aug 2013 10:38:19 +0200
Subject: [PATCH 28/44] Mein eigener Toolbar
---
app/views/layouts/_pretty_toolbar.html.erb | 8 ++++++++
1 file changed, 8 insertions(+)
create mode 100644 app/views/layouts/_pretty_toolbar.html.erb
diff --git a/app/views/layouts/_pretty_toolbar.html.erb b/app/views/layouts/_pretty_toolbar.html.erb
new file mode 100644
index 0000000..cdbaa85
--- /dev/null
+++ b/app/views/layouts/_pretty_toolbar.html.erb
@@ -0,0 +1,8 @@
+
+
+
+ <% @toolbar_elements.each do |t| %>
+ <%= link_to ''.html_safe+t[:text], t[:path],:class=>"btn" %>
+ <% end %>
+
+
From 0053a4de0cc9b2b1576fd1da5399ae5dd78c0f65 Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Fri, 2 Aug 2013 10:39:58 +0200
Subject: [PATCH 29/44] =?UTF-8?q?Einr=C3=BCckungen?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controllers/studien_controller.rb | 19 +++++++++----------
app/views/lvas/_lva_semester.html.erb | 4 ++--
app/views/studien/_navigation.html.erb | 14 +++++++-------
app/views/studien/_studium.html.erb | 15 +++++++--------
4 files changed, 25 insertions(+), 27 deletions(-)
diff --git a/app/controllers/studien_controller.rb b/app/controllers/studien_controller.rb
index f07e443..531109e 100755
--- a/app/controllers/studien_controller.rb
+++ b/app/controllers/studien_controller.rb
@@ -4,18 +4,14 @@ class StudienController < ApplicationController
def index
@studien = Studium.all
- @toolbar_elements<<{:icon =>:plus, :text=> I18n.t('studien.new') ,:path=>new_studium_path }
+ @toolbar_elements<<{:icon =>:plus, :hicon=>'icon-plus-sign', :text=> I18n.t('studien.new') ,:path=>new_studium_path }
# @toolbar_elements<<{:text=> I18n.t('modulgruppe.show.link') ,:path=>modulgruppen_path }
- @toolbar_elements<<{:text=> I18n.t('modul.show.link') ,:path=>moduls_path }
- @toolbar_elements<<{:text=> 'Alle LVas auflisten', :path=>lvas_path}
+ @toolbar_elements<<{:hicon=> 'icon-list', :text=> I18n.t('modul.show.link') ,:path=>moduls_path }
+ @toolbar_elements<<{:hicon=> 'icon-list', :text=> 'Alle LVas auflisten', :path=>lvas_path}
end
def show
@studium= Studium.find(params[:id])
- @sem = 'false'
- if @sem.nil?
- @sem = 'true'
- end
@text = 'Zu Semesteransicht wechseln'
@path = studium_semesteransicht_path(@studium)
@@ -35,9 +31,9 @@ class StudienController < ApplicationController
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?" }
+ @toolbar_elements=[{:icon=>:plus, :hicon =>'icon-plus-sign' ,:text=> I18n.t('studien.new') , :path => new_studium_path(@studium) }]
+ @toolbar_elements<<{:icon=>:pencil, :hicon=>'icon-pencil',:text =>I18n.t('common.edit'),:path => edit_studium_path(@studium)}
+ @toolbar_elements<<{:hicon=>'icon-remove-circle', :text=> I18n.t('common.delete'),:path => studium_path(@studium), :method=> :delete,:confirm=>"Sure?" }
end
def new
@@ -82,6 +78,9 @@ class StudienController < ApplicationController
end
@text = 'Zu Modulgruppenansicht wechseln'
@path = studium_path(@studium)
+ @toolbar_elements=[{:icon=>:plus, :hicon =>'icon-plus-sign' ,:text=> I18n.t('studien.new') , :path => new_studium_path(@studium) }]
+ @toolbar_elements<<{:icon=>:pencil, :hicon=>'icon-pencil',:text =>I18n.t('common.edit'),:path => edit_studium_path(@studium)}
+ @toolbar_elements<<{:hicon=>'icon-remove-circle', :text=> I18n.t('common.delete'),:path => studium_path(@studium), :method=> :delete,:confirm=>"Sure?" }
end
def destroy
diff --git a/app/views/lvas/_lva_semester.html.erb b/app/views/lvas/_lva_semester.html.erb
index 48ea699..8545843 100755
--- a/app/views/lvas/_lva_semester.html.erb
+++ b/app/views/lvas/_lva_semester.html.erb
@@ -1,7 +1,7 @@
<%= link_to lva.name, lva_path(lva)%>
<%="LVa-Nr " + lva.lvanr.to_s %>
-<%= lva.ects %> ECTS / <%= lva.stunden %> Std <%= " / " + lva.beispiele.count.to_s + " Beispiele"%>
-<%= link_to "Edit", edit_lva_path(lva) %> | <%= link_to "Beispiel hinzufügen", new_beispiel_path(:lva_id=>lva.id) %>
+ <%= lva.ects %> ECTS / <%= lva.stunden %> Std <%= " / " + lva.beispiele.count.to_s + " Beispiele"%>
+ <%= link_to "Edit", edit_lva_path(lva) %> | <%= link_to "Beispiel hinzufügen", new_beispiel_path(:lva_id=>lva.id) %>
<% #toolbar_html(@toolbar_elements) %>
diff --git a/app/views/studien/_navigation.html.erb b/app/views/studien/_navigation.html.erb
index 675da8f..cee7ed0 100755
--- a/app/views/studien/_navigation.html.erb
+++ b/app/views/studien/_navigation.html.erb
@@ -1,10 +1,10 @@
-- <%= link_to ''.html_safe+ I18n.t("studien.allestudien"), studien_path,:raw=>true %>
- /
-- <%= link_to @text, @path%>
- /
-
+ - <%= link_to ''.html_safe+ I18n.t("studien.allestudien"), studien_path,:raw=>true %>
+ /
+ - <%= link_to @text, @path%>
+ /
+
<% Studium.all.each do |s| %>
-
<% if @sem=='true' %>
@@ -13,8 +13,8 @@
<%= link_to s.name, studium_path(s) %>
<% end %>
/
-
- <% end %>
+
+<% end %>
diff --git a/app/views/studien/_studium.html.erb b/app/views/studien/_studium.html.erb
index ff92710..04a654a 100644
--- a/app/views/studien/_studium.html.erb
+++ b/app/views/studien/_studium.html.erb
@@ -1,10 +1,9 @@
-
<%= link_to studium.name + " " + studium.zahl.to_s, studium_semesteransicht_path(studium)%>(<%=link_to "Modulgruppenansicht",studium_path(studium) %>)
-
-Typ: <%= studium.typ%>
-
-
-Beschreibung:
-<%= studium.desc %>
-
+
<%= link_to studium.name + " " + studium.zahl.to_s, studium_semesteransicht_path(studium)%>
+
+ - <%= studium.typ%>
+ - Beschreibung:
+ <%= !(studium.desc.to_s == "") ? studium.desc.html_safe : I18n.t("keine.beschreibung")%>
+ - <%=link_to "Link zur Modulgruppenansicht",studium_path(studium) %>
+
From 8562cdd99794ebbcba12b37e8d95d56bc36d3815 Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Fri, 2 Aug 2013 10:40:11 +0200
Subject: [PATCH 30/44] =?UTF-8?q?=C3=9Cbersetzungen?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
config/locales/de.yml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/config/locales/de.yml b/config/locales/de.yml
index 69b66c1..751723c 100755
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -12,12 +12,16 @@ de:
new: "Neues Studium"
newmodulgroup: "Neue Modulgruppe"
allestudien: "Alle Studien"
+ loeschen: "Dieses Studium löschen"
+ edit: "Studium bearbeiten"
modul:
edit:
title: "Bearbeite Modul"
show:
title: "Auflistung aller Module"
link: "Alle Module auflisten"
+ keine:
+ beschreibung: "Keine Beschreibung vorhanden"
semester:
ohne: "Ohne Semesterzuordnung"
From 13e1c6356107fcdb6b8d3cf5973002d54b1dd442 Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Fri, 2 Aug 2013 10:40:22 +0200
Subject: [PATCH 31/44] Toolbar einbindungen
---
app/views/studien/edit.html.erb | 4 ++--
app/views/studien/index.html.erb | 9 +++++----
app/views/studien/semesteransicht.html.erb | 2 ++
app/views/studien/show.html.erb | 12 +-----------
4 files changed, 10 insertions(+), 17 deletions(-)
diff --git a/app/views/studien/edit.html.erb b/app/views/studien/edit.html.erb
index 766d5b2..a2f6ed9 100755
--- a/app/views/studien/edit.html.erb
+++ b/app/views/studien/edit.html.erb
@@ -1,6 +1,6 @@
-Editing studium
+<%= I18n.t("studien.edit")%>
<%= render 'form' %>
<%= link_to 'Show', @studium %> |
-<%= link_to 'Back', studien_path %>
\ No newline at end of file
+<%= link_to 'Back', studien_path %>
diff --git a/app/views/studien/index.html.erb b/app/views/studien/index.html.erb
index 1cd2dcb..c4c242b 100755
--- a/app/views/studien/index.html.erb
+++ b/app/views/studien/index.html.erb
@@ -2,13 +2,14 @@
<% @studien.sort_by{|z| z[:zahl]}.each do |studium| %>
-
+
<% end %>
<% link_to I18n.t("studien.new"), new_studium_path %>
<% link_to I18n.t("modulgruppe.show"), modulgruppen_path %>
-<%= toolbar_html(@toolbar_elements) %>
+<%= render :partial=>'layouts/pretty_toolbar'%>
+<% #toolbar_html(@toolbar_elements) %>
diff --git a/app/views/studien/semesteransicht.html.erb b/app/views/studien/semesteransicht.html.erb
index de3a868..a46b9fe 100644
--- a/app/views/studien/semesteransicht.html.erb
+++ b/app/views/studien/semesteransicht.html.erb
@@ -13,3 +13,5 @@
<% end %>
+
+<%= render :partial=>'layouts/pretty_toolbar' %>
diff --git a/app/views/studien/show.html.erb b/app/views/studien/show.html.erb
index 9919f43..96ff5e8 100644
--- a/app/views/studien/show.html.erb
+++ b/app/views/studien/show.html.erb
@@ -16,14 +16,4 @@
<% end %>
<% end %>
-
-
-
- <%= link_to ''.html_safe+I18n.t("studien.newmodulgroup"), new_studium_modulgruppe_path(:studium_id=>@studium.id),:class=>"btn" %> |
- <%= link_to ''.html_safe+I18n.t("common.edit"), edit_studium_path(@studium) ,:class=>"btn"%>
-
-
-
-
-
- <%= toolbar_html(@toolbar_elements) %>
+<%= render :partial=>'layouts/pretty_toolbar' %>
From 9f8d83a0b544bf69b7c874e159857d3c956b5b91 Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Fri, 2 Aug 2013 12:45:46 +0200
Subject: [PATCH 32/44] Translations
---
config/locales/de.yml | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/config/locales/de.yml b/config/locales/de.yml
index 751723c..44b6fc0 100755
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -10,19 +10,18 @@ de:
list: "Studien der Fakultät Elektrotechnik"
anzeigen: "Studium anzeigen"
new: "Neues Studium"
- newmodulgroup: "Neue Modulgruppe"
allestudien: "Alle Studien"
loeschen: "Dieses Studium löschen"
edit: "Studium bearbeiten"
modul:
- edit:
- title: "Bearbeite Modul"
+ edit: "Modul bearbeiten"
show:
title: "Auflistung aller Module"
link: "Alle Module auflisten"
keine:
beschreibung: "Keine Beschreibung vorhanden"
-
+ lva:
+ add: "Lva hinzufügen"
semester:
ohne: "Ohne Semesterzuordnung"
modulgruppe:
@@ -30,6 +29,7 @@ de:
addmodul: "Neues Modul hinzufügen"
studium: "Studium"
new: "Neue Modulgruppe"
+ list: "Alle Modulgruppen auflisten"
show:
title: "Auflistung aller Modulgruppen"
link: "Modulgruppen auflisten"
From 1c1b0cfe917807d6ebfe0bfd81c44660fd74fcc9 Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Fri, 2 Aug 2013 12:46:18 +0200
Subject: [PATCH 33/44] Einbau Toolbar
---
app/controllers/moduls_controller.rb | 4 ++++
app/controllers/studien_controller.rb | 2 ++
app/views/layouts/_pretty_toolbar.html.erb | 11 +++++------
app/views/studien/semesteransicht.html.erb | 2 +-
app/views/studien/show.html.erb | 4 +++-
5 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/app/controllers/moduls_controller.rb b/app/controllers/moduls_controller.rb
index f5315c9..82a7bd3 100755
--- a/app/controllers/moduls_controller.rb
+++ b/app/controllers/moduls_controller.rb
@@ -18,11 +18,15 @@ class ModulsController < ApplicationController
# GET /moduls/1.json
def show
@modul = Modul.find(params[:id])
+ @toolbar_elements = [{:hicon=>'icon-plus-sign', :text=>I18n.t("lva.add"), :path=>new_lva_path(:modul_id =>@modul.id)}]
+ @toolbar_elements << {:hicon=>'icon-pencil', :text=>I18n.t("modul.edit"), :path=>edit_modul_path(@modul)}
+ @toolbar_elements << {:hicon=>'icon-remove-circle', :text=>I18n.t("common.delete"),:path=>@modul , :method=>:delete , :data=>{:confirm =>'Are you sure'}}
respond_to do |format|
format.html # show.html.erb
format.json { render json: @modul }
end
+
end
# GET /moduls/new
diff --git a/app/controllers/studien_controller.rb b/app/controllers/studien_controller.rb
index 531109e..4b431e6 100755
--- a/app/controllers/studien_controller.rb
+++ b/app/controllers/studien_controller.rb
@@ -34,6 +34,8 @@ class StudienController < ApplicationController
@toolbar_elements=[{:icon=>:plus, :hicon =>'icon-plus-sign' ,:text=> I18n.t('studien.new') , :path => new_studium_path(@studium) }]
@toolbar_elements<<{:icon=>:pencil, :hicon=>'icon-pencil',:text =>I18n.t('common.edit'),:path => edit_studium_path(@studium)}
@toolbar_elements<<{:hicon=>'icon-remove-circle', :text=> I18n.t('common.delete'),:path => studium_path(@studium), :method=> :delete,:confirm=>"Sure?" }
+ @toolbar_modulgruppen =[ {:hicon=>'icon-plus-sign', :text=> I18n.t('modulgruppe.new'), :path=>new_studium_modulgruppe_path(@studium)}]
+ @toolbar_modulgruppen << {:hicon=>'icon-list', :text => I18n.t('modulgruppe.list'), :path=>modulgruppen_path}
end
def new
diff --git a/app/views/layouts/_pretty_toolbar.html.erb b/app/views/layouts/_pretty_toolbar.html.erb
index cdbaa85..cb8514a 100644
--- a/app/views/layouts/_pretty_toolbar.html.erb
+++ b/app/views/layouts/_pretty_toolbar.html.erb
@@ -1,8 +1,7 @@
-
-
-
- <% @toolbar_elements.each do |t| %>
- <%= link_to ''.html_safe+t[:text], t[:path],:class=>"btn" %>
+<% toolbar_elements = !pretty_toolbar.nil? ? pretty_toolbar : @toolbar_elements %>
+<%= I18n.t("common.actions")%>
+
+<% toolbar_elements.each do |t| %>
+ <%= link_to ''.html_safe+t[:text], t[:path], :method=>t[:method], :confirm=>t[:confirm].to_s, :data=>t[:data], :class=>"btn" %>
<% end %>
-
diff --git a/app/views/studien/semesteransicht.html.erb b/app/views/studien/semesteransicht.html.erb
index a46b9fe..62c81eb 100644
--- a/app/views/studien/semesteransicht.html.erb
+++ b/app/views/studien/semesteransicht.html.erb
@@ -14,4 +14,4 @@
<% end %>
-<%= render :partial=>'layouts/pretty_toolbar' %>
+<%= render :partial=>'layouts/pretty_toolbar', :locals=>{:elements=>@toolbar_elements} %>
diff --git a/app/views/studien/show.html.erb b/app/views/studien/show.html.erb
index 96ff5e8..20632c0 100644
--- a/app/views/studien/show.html.erb
+++ b/app/views/studien/show.html.erb
@@ -16,4 +16,6 @@
<% end %>
<% end %>
-<%= render :partial=>'layouts/pretty_toolbar' %>
+ <%= render 'layouts/pretty_toolbar'%>
+ <%= render 'layouts/pretty_toolbar', :pretty_toolbar=>@toolbar_modulgruppen %>
+
From 58663f25f1af849a1bd76f0f470f2552c59c8269 Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Fri, 2 Aug 2013 12:46:34 +0200
Subject: [PATCH 34/44] Safeguards
---
app/models/studium.rb | 2 +-
app/views/moduls/show.html.erb | 30 +++++++++++++++++++++---------
2 files changed, 22 insertions(+), 10 deletions(-)
diff --git a/app/models/studium.rb b/app/models/studium.rb
index a072ced..dff014f 100755
--- a/app/models/studium.rb
+++ b/app/models/studium.rb
@@ -13,7 +13,7 @@
# updated_at :datetime not null
class Studium < ActiveRecord::Base
attr_accessible :desc, :name, :typ, :zahl
- has_many :modulgruppen, inverse_of: :studium, :class_name => "Modulgruppe"
+ has_many :modulgruppen, inverse_of: :studium, :class_name => "Modulgruppe", :dependent => :destroy
has_many :semester, :dependent => :destroy
validates :typ, :inclusion => {:in => ["Bachelor","Master"] }
diff --git a/app/views/moduls/show.html.erb b/app/views/moduls/show.html.erb
index 5190cfc..45f598a 100755
--- a/app/views/moduls/show.html.erb
+++ b/app/views/moduls/show.html.erb
@@ -1,16 +1,28 @@
-<% @modul.modulgruppen.each do |g| %>
--
-<%= link_to g.studium.name , studium_path(g.studium)%> /
-- <%= link_to g.name , modulgruppe_path(g)%>
-<%end%>
+ <% @modul.modulgruppen.each do |g| %>
+ <% if !g.nil? %>
+ -
+ <% if !g.studium.nil? %>
+ <%= link_to g.studium.name , studium_path(g.studium) %>
+
+ <% else %>
+
- Studium fehlt!
+ <% end %>
+ /
+ - <%= link_to g.name , modulgruppe_path(g)%>
+ <% else %>
+
- Modulgruppe Fehlt
+ <%end %>
+ /
+ <%end%>
+
<%= notice %>
<%= render @modul %>
-
-<%= link_to 'Add LVA', new_lva_path(:modul_id =>@modul.id) %>
-<%= link_to ''.html_safe+ I18n.t("common.edit") , edit_modul_path(@modul) %>
-<%= link_to "Loeschen", [@modul],:method=>:delete ,:data => {:confirm =>"Are you sure" } %>
+<%= render 'layouts/pretty_toolbar' %>
+<% # link_to 'Add LVA', %>
+<% # link_to ''.html_safe+ I18n.t("common.edit") , edit_modul_path(@modul) %>
+<% # link_to "Loeschen", [@modul],:method=>:delete ,:data => {:confirm =>"Are you sure" } %>
From 005c28a273b3605acf087d7ea0d4d5128ce83421 Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Fri, 2 Aug 2013 15:00:58 +0200
Subject: [PATCH 35/44] Toolbar und kopfzeileneinbindung
---
app/controllers/lvas_controller.rb | 2 +-
app/controllers/moduls_controller.rb | 2 ++
app/controllers/studien_controller.rb | 2 --
app/views/layouts/_link_all.html.erb | 11 +++++++++++
app/views/lvas/index.html.erb | 5 +++--
app/views/moduls/_form.html.erb | 3 ++-
app/views/moduls/index.html.erb | 10 ++++------
app/views/studien/index.html.erb | 5 ++---
app/views/studien/show.html.erb | 4 ++--
config/locales/de.yml | 6 +++---
10 files changed, 30 insertions(+), 20 deletions(-)
create mode 100755 app/views/layouts/_link_all.html.erb
diff --git a/app/controllers/lvas_controller.rb b/app/controllers/lvas_controller.rb
index f9409be..ecc3082 100755
--- a/app/controllers/lvas_controller.rb
+++ b/app/controllers/lvas_controller.rb
@@ -3,7 +3,7 @@ class LvasController < ApplicationController
before_filter {@toolbar_elements =[]}
def index
@lvas = Lva.all
-
+ @toolbar_elements=[{:hicon=>'icon-plus-sign',:text =>I18n.t('lva.add'),:path => new_lva_path}]
end
# GET /lvas/1
diff --git a/app/controllers/moduls_controller.rb b/app/controllers/moduls_controller.rb
index 82a7bd3..49c0168 100755
--- a/app/controllers/moduls_controller.rb
+++ b/app/controllers/moduls_controller.rb
@@ -7,6 +7,8 @@ class ModulsController < ApplicationController
if !params[:studium_id].nil?
@studium=Studium.find_by_id(params[:studium_id])
end
+ @toolbar_elements = [{:hicon=>'icon-plus-sign', :text=>I18n.t("modul.add"), :path=>new_modul_path}]
+
respond_to do |format|
format.html # index.html.erb
format.json { render json: @moduls }
diff --git a/app/controllers/studien_controller.rb b/app/controllers/studien_controller.rb
index 4b431e6..22f109f 100755
--- a/app/controllers/studien_controller.rb
+++ b/app/controllers/studien_controller.rb
@@ -6,8 +6,6 @@ class StudienController < ApplicationController
@studien = Studium.all
@toolbar_elements<<{:icon =>:plus, :hicon=>'icon-plus-sign', :text=> I18n.t('studien.new') ,:path=>new_studium_path }
# @toolbar_elements<<{:text=> I18n.t('modulgruppe.show.link') ,:path=>modulgruppen_path }
- @toolbar_elements<<{:hicon=> 'icon-list', :text=> I18n.t('modul.show.link') ,:path=>moduls_path }
- @toolbar_elements<<{:hicon=> 'icon-list', :text=> 'Alle LVas auflisten', :path=>lvas_path}
end
def show
diff --git a/app/views/layouts/_link_all.html.erb b/app/views/layouts/_link_all.html.erb
new file mode 100755
index 0000000..0108206
--- /dev/null
+++ b/app/views/layouts/_link_all.html.erb
@@ -0,0 +1,11 @@
+
+
+ - <%= link_to_unless_current ''.html_safe+ I18n.t("studien.allestudien"), studien_path,:raw=>true %>
+ /
+
+ - <%= link_to_unless_current ''.html_safe+ I18n.t("modul.list"), moduls_path,:raw=>true %>
+ /
+ - <%= link_to_unless_current ''.html_safe+ I18n.t("lva.list"), lvas_path,:raw=>true %>
+ /
+
+
diff --git a/app/views/lvas/index.html.erb b/app/views/lvas/index.html.erb
index 2eec9ee..640e04a 100755
--- a/app/views/lvas/index.html.erb
+++ b/app/views/lvas/index.html.erb
@@ -1,7 +1,8 @@
-Listing lvas
+<%= render 'layouts/link_all' %>
+<%= I18n.t("lva.list")%>
<% @lvas.each do |l| %>
- <%= render :partial => 'lvas/lva_semester', :locals=> {:lva => l} %>
<%end%>
-<%= link_to 'New Lva', new_lva_path %>
+<%= render 'layouts/pretty_toolbar' %>
diff --git a/app/views/moduls/_form.html.erb b/app/views/moduls/_form.html.erb
index fd67fc1..fb6b68b 100755
--- a/app/views/moduls/_form.html.erb
+++ b/app/views/moduls/_form.html.erb
@@ -1,7 +1,8 @@
<%= semantic_form_for @modul do |f| %>
<%= f.inputs do %>
- <%= f.input :modulgruppen,:as => :select, :collection => Hash[Modulgruppe.all.map{|m| [m.studium.name + " " + m.name,m.id]}] %>
+ <% # f.input :modulgruppen,:as => :select, :collection => Hash[Modulgruppe.all.map{|m| [m.studium.name + " " + m.name,m.id]}] %>
+ <%= f.input :modulgruppen %>
<%= f.input :name ,:hint=>true%>
<%= f.input :desc, :as=>:tinymce_text %>
<%= f.input :depend %>
diff --git a/app/views/moduls/index.html.erb b/app/views/moduls/index.html.erb
index 98ade7d..3b0e973 100755
--- a/app/views/moduls/index.html.erb
+++ b/app/views/moduls/index.html.erb
@@ -1,10 +1,8 @@
-
-<%= I18n.t("modul.show.title") %>
+<%= render 'layouts/link_all' %>
+<%= I18n.t("modul.list") %>
<%= render :partial=>'moduls/lang', :collection=>@moduls, :as=>:modul%>
-
-<% #if !@studium.nil? %>
-<%= link_to 'New Modul', new_modul_path() %>
-<% #end%>
+
+<%= render 'layouts/pretty_toolbar'%>
diff --git a/app/views/studien/index.html.erb b/app/views/studien/index.html.erb
index c4c242b..cf2ae8b 100755
--- a/app/views/studien/index.html.erb
+++ b/app/views/studien/index.html.erb
@@ -1,3 +1,4 @@
+<%= render 'layouts/link_all' %>
<%= I18n.t("studien.list") %>
@@ -8,8 +9,6 @@
<% end %>
-
-<% link_to I18n.t("studien.new"), new_studium_path %>
-<% link_to I18n.t("modulgruppe.show"), modulgruppen_path %>
+
<%= render :partial=>'layouts/pretty_toolbar'%>
<% #toolbar_html(@toolbar_elements) %>
diff --git a/app/views/studien/show.html.erb b/app/views/studien/show.html.erb
index 20632c0..64f3c32 100644
--- a/app/views/studien/show.html.erb
+++ b/app/views/studien/show.html.erb
@@ -16,6 +16,6 @@
<% end %>
<% end %>
- <%= render 'layouts/pretty_toolbar'%>
- <%= render 'layouts/pretty_toolbar', :pretty_toolbar=>@toolbar_modulgruppen %>
+ <%= render 'layouts/pretty_toolbar' %>
+ <%= render :partial=>'layouts/pretty_toolbar', :object=>@toolbar_modulgruppen %>
diff --git a/config/locales/de.yml b/config/locales/de.yml
index 44b6fc0..84fa7a6 100755
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -15,13 +15,13 @@ de:
edit: "Studium bearbeiten"
modul:
edit: "Modul bearbeiten"
- show:
- title: "Auflistung aller Module"
- link: "Alle Module auflisten"
+ list: "Alle Module"
+ add: "Neues Modul"
keine:
beschreibung: "Keine Beschreibung vorhanden"
lva:
add: "Lva hinzufügen"
+ list: "Alle Lvas"
semester:
ohne: "Ohne Semesterzuordnung"
modulgruppe:
From c4a27d17f2c799714eee0b89f1ea666e9b3399ee Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Fri, 2 Aug 2013 16:54:55 +0200
Subject: [PATCH 36/44] Kleinigkeiten
---
app/controllers/lvas_controller.rb | 5 +++--
app/controllers/modulgruppen_controller.rb | 5 ++++-
app/controllers/studien_controller.rb | 3 ++-
app/models/studium.rb | 2 +-
app/views/lvas/show.html.erb | 6 +++---
5 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/app/controllers/lvas_controller.rb b/app/controllers/lvas_controller.rb
index ecc3082..985d99d 100755
--- a/app/controllers/lvas_controller.rb
+++ b/app/controllers/lvas_controller.rb
@@ -10,8 +10,9 @@ class LvasController < ApplicationController
def show
@lva = Lva.find_by_id(params[:id])
- @toolbar_elements<<{:icon=>:pencil,:text =>I18n.t('common.edit'),:path => edit_lva_path(@lva)}
- @toolbar_elements<<{:icon=>:plus, :text => "Neues Beispiel", :path=> new_beispiel_path(:lva_id =>@lva.id)}
+
+ @toolbar_elements<<{:hicon=>'icon-plus-sign', :icon=>:plus, :text => "Neues Beispiel", :path=> new_beispiel_path(:lva_id =>@lva.id)}
+ @toolbar_elements<<{:hicon=>'icon-pencil', :icon=>:pencil,:text =>I18n.t('common.edit'),:path => edit_lva_path(@lva)}
end
# GET /lvas/new
diff --git a/app/controllers/modulgruppen_controller.rb b/app/controllers/modulgruppen_controller.rb
index 6d2f972..be6f8e0 100755
--- a/app/controllers/modulgruppen_controller.rb
+++ b/app/controllers/modulgruppen_controller.rb
@@ -50,14 +50,17 @@ class ModulgruppenController < ApplicationController
def create
@modulgruppe = Modulgruppe.new(params[:modulgruppe])
+
if !params[:studium_id].nil?
@studium=Studium.find_by_id(params[:studium_id])
else
@studium=Studium.find_by_id(params[:modulgruppe][:studium_id])
end
+ @modulgruppe.studium_id = params[:studium_id]
respond_to do |format|
+
if @modulgruppe.save
- format.html { redirect_to @modulgruppe, notice: 'Modulgruppe was successfully created.' }
+ format.html { redirect_to @studium, notice: 'Modulgruppe was successfully created.' }
else
format.html { render action: "new" }
diff --git a/app/controllers/studien_controller.rb b/app/controllers/studien_controller.rb
index 22f109f..3c426ab 100755
--- a/app/controllers/studien_controller.rb
+++ b/app/controllers/studien_controller.rb
@@ -48,9 +48,10 @@ class StudienController < ApplicationController
def create
@studium = Studium.new(params[:studium])
- @studium.batch_add_semester
+
respond_to do |format|
if @studium.save
+ @studium.batch_add_semester
format.html { redirect_to url_for(@studium), notice: 'Studium was successfully created.' }
else
format.html { render action: "new" }
diff --git a/app/models/studium.rb b/app/models/studium.rb
index dff014f..94177f9 100755
--- a/app/models/studium.rb
+++ b/app/models/studium.rb
@@ -18,7 +18,7 @@ class Studium < ActiveRecord::Base
validates :typ, :inclusion => {:in => ["Bachelor","Master"] }
validates :name, :uniqueness => true, :presence=>true
- validates :zahl, :format=>{:with=>/^0(33|66)[0-9]{3}$/}, :uniqueness => true
+ validates :zahl, :presence=>true, :format=>{:with=>/^0(33|66)[0-9]{3}$/}, :uniqueness => true
translates :desc,:shortdesc, :versioning =>true,:fallbacks_for_empty_translations => true
def batch_add_semester
diff --git a/app/views/lvas/show.html.erb b/app/views/lvas/show.html.erb
index 4f90f1c..e88bce4 100755
--- a/app/views/lvas/show.html.erb
+++ b/app/views/lvas/show.html.erb
@@ -11,8 +11,8 @@
<%= notice %>
- <%= @lva.lvanr %>
- <%= @lva.name %> <%= @lva.ects %> ECTS/ <%= @lva.stunden %> Std
+
+
<%= @lva.lvanr %><%= @lva.name %> <%= @lva.ects %> ECTS/ <%= @lva.stunden %> Std
@@ -25,4 +25,4 @@
<% end %>
-<%= toolbar_html(@toolbar_elements) %>
+<%= render 'layouts/pretty_toolbar' %>
From 3114d9fa524da0fb83bcfc86d855479e50f7fe8f Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Fri, 2 Aug 2013 18:06:06 +0200
Subject: [PATCH 37/44] Bugfix
---
app/controllers/lvas_controller.rb | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/app/controllers/lvas_controller.rb b/app/controllers/lvas_controller.rb
index 985d99d..b7460cd 100755
--- a/app/controllers/lvas_controller.rb
+++ b/app/controllers/lvas_controller.rb
@@ -20,7 +20,7 @@ class LvasController < ApplicationController
def new
@lva = Lva.new
modul=Modul.find_by_id(params[:modul_id])
- @lva.modul<
Date: Fri, 2 Aug 2013 19:08:35 +0200
Subject: [PATCH 38/44] Bugfixes
---
app/controllers/modulgruppen_controller.rb | 1 -
app/views/lvas/show.html.erb | 2 +-
app/views/studien/_navigation.html.erb | 6 +++---
app/views/studien/show.html.erb | 6 ++++--
4 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/app/controllers/modulgruppen_controller.rb b/app/controllers/modulgruppen_controller.rb
index be6f8e0..c69f8fe 100755
--- a/app/controllers/modulgruppen_controller.rb
+++ b/app/controllers/modulgruppen_controller.rb
@@ -56,7 +56,6 @@ class ModulgruppenController < ApplicationController
else
@studium=Studium.find_by_id(params[:modulgruppe][:studium_id])
end
- @modulgruppe.studium_id = params[:studium_id]
respond_to do |format|
if @modulgruppe.save
diff --git a/app/views/lvas/show.html.erb b/app/views/lvas/show.html.erb
index e88bce4..9dd333c 100755
--- a/app/views/lvas/show.html.erb
+++ b/app/views/lvas/show.html.erb
@@ -1,7 +1,7 @@
<% @lva.modul.each do |modul| %>
<% modul.modulgruppen.each do |g| %>
-
+
+
Beschreibung
<%= @lva.desc %>
+Beispiele
-<% @lva.beispiele.each do |b|%>
+ <% @lva.beispiele.each do |b|%>
-- <%= render b%>
+ - <%= render b%>
-<% end %>
+ <% end %>
+
+Module
+
+ <% @lva.modul.each do |modul| %>
+ - <%= link_to modul.name , modul_path(modul)%>
+
+ <% modul.modulgruppen.each do |g| %>
+
+ - <%= link_to g.studium.name , studium_semesteransicht_path(g.studium)%> (<%=link_to g.name, modulgruppe_path(g)%>)
+ <% end %>
+
+
+
+ <% end %>
<%= render 'layouts/pretty_toolbar' %>
diff --git a/app/views/moduls/show.html.erb b/app/views/moduls/show.html.erb
index 45f598a..cfaff5b 100755
--- a/app/views/moduls/show.html.erb
+++ b/app/views/moduls/show.html.erb
@@ -15,6 +15,7 @@
Modulgruppe Fehlt
<%end %>
/
+
<%end%>
From 4e5fb8f22e2c6488ecb46b6d881510ede7b53fd9 Mon Sep 17 00:00:00 2001
From: Andreas Stephanides
Date: Sun, 4 Aug 2013 16:15:46 +0200
Subject: [PATCH 40/44] =?UTF-8?q?einige=20Tests=20f=C3=BCr=20Modulgruppe?=
=?UTF-8?q?=20hinzugef=C3=BCgt?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
spec/factories/modulgruppen.rb | 5 +++++
spec/factories/studien.rb | 9 ++++++++-
spec/models/modulgruppe_spec.rb | 34 +++++++++++++++++++++++++++++++--
3 files changed, 45 insertions(+), 3 deletions(-)
diff --git a/spec/factories/modulgruppen.rb b/spec/factories/modulgruppen.rb
index 0d43b62..90946d0 100644
--- a/spec/factories/modulgruppen.rb
+++ b/spec/factories/modulgruppen.rb
@@ -6,5 +6,10 @@ FactoryGirl.define do
phase 1
name "Pflichtmodule 1"
desc "ASDFASDF"
+ factory :other_modulgruppe do
+ name "PFlichtmodule 2"
+ desc "sdafaswdfsfr"
+ end
end
+
end
diff --git a/spec/factories/studien.rb b/spec/factories/studien.rb
index 071a60e..5677904 100644
--- a/spec/factories/studien.rb
+++ b/spec/factories/studien.rb
@@ -3,10 +3,17 @@
FactoryGirl.define do
factory :studium do
- zahl "066.506"
+ zahl "066506"
name "Automatisierung"
desc "TEST DESC"
typ "Master"
+
+ factory :other_studium do
+ name "Telecommunication"
+ desc "frueher Telekommungikation"
+ zahl "066507"
+ typ "Master"
+ end
end
end
diff --git a/spec/models/modulgruppe_spec.rb b/spec/models/modulgruppe_spec.rb
index 7a39d6c..3a863e3 100644
--- a/spec/models/modulgruppe_spec.rb
+++ b/spec/models/modulgruppe_spec.rb
@@ -1,16 +1,46 @@
require 'spec_helper'
describe Modulgruppe do
- it "modulgruppe should not be valid without studium" do
+ it "should not be valid without studium" do
mg=FactoryGirl.build(:modulgruppe)
mg.should_not be_valid
mg.should have(1).errors_on(:studium_id)
end
- it "modulgruppe should be valid with studium" do
+ it "should be valid with studium" do
s=FactoryGirl.create(:studium)
mg=FactoryGirl.build(:modulgruppe)
mg.studium=s
mg.should be_valid
end
+ it "should not be valid without name" do
+ s=FactoryGirl.create(:studium)
+ mg=FactoryGirl.build(:modulgruppe)
+ mg.studium=s
+ mg.name=nil
+ mg.should_not be_valid
+ mg.should have_at_least(1).errors_on(:name)
+ end
+ xit "should not be valid with dubble name" do
+ s=FactoryGirl.create(:studium)
+ mg=FactoryGirl.build(:modulgruppe, name: "Gruppe 1", desc: "132")
+ mg.studium=s
+ mg.save
+ mg=FactoryGirl.build(:modulgruppe, name: "Gruppe 2", desc: "133")
+ mg.studium=s
+ mg.should_not be_valid
+ mg.should have_at_least(1).errors_on(:name)
+ end
+
+ it "should be valid with same name on different studien" do
+ s=FactoryGirl.create(:studium)
+ s2=FactoryGirl.create(:other_studium)
+ mg=FactoryGirl.build(:modulgruppe, name: "Gruppe")
+ mg.studium=s
+ mg.save
+ mg=FactoryGirl.build(:other_modulgruppe, name: "Gruppe")
+ mg.studium=s2
+ mg.should be_valid
+
+ end
end
From c72c186d62e05450348c90d0de7ba65f99fb5f77 Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Sun, 4 Aug 2013 18:04:04 +0200
Subject: [PATCH 41/44] Topbar layouts
---
app/controllers/lvas_controller.rb | 3 +
app/controllers/moduls_controller.rb | 31 ++++++--
app/controllers/studien_controller.rb | 91 ++++++++++++++--------
app/views/layouts/_topbar.html.erb | 11 +++
app/views/lvas/index.html.erb | 2 +-
app/views/moduls/index.html.erb | 2 +-
app/views/moduls/show.html.erb | 22 +-----
app/views/studien/index.html.erb | 2 +-
app/views/studien/semesteransicht.html.erb | 2 +-
app/views/studien/show.html.erb | 2 +-
10 files changed, 101 insertions(+), 67 deletions(-)
create mode 100755 app/views/layouts/_topbar.html.erb
diff --git a/app/controllers/lvas_controller.rb b/app/controllers/lvas_controller.rb
index b7460cd..d2ee71f 100755
--- a/app/controllers/lvas_controller.rb
+++ b/app/controllers/lvas_controller.rb
@@ -4,6 +4,9 @@ class LvasController < ApplicationController
def index
@lvas = Lva.all
@toolbar_elements=[{:hicon=>'icon-plus-sign',:text =>I18n.t('lva.add'),:path => new_lva_path}]
+ @tb=[{:hicon=>'icon-list', :text=>I18n.t("studien.allestudien"),:path=>studien_path},
+ {:hicon=>'icon-list', :text=>I18n.t("modul.list"),:path=>moduls_path},
+ {:hicon=>'icon-list', :text=>I18n.t("lva.list"),:path=>lvas_path}]
end
# GET /lvas/1
diff --git a/app/controllers/moduls_controller.rb b/app/controllers/moduls_controller.rb
index c1ae1f1..d4503ed 100755
--- a/app/controllers/moduls_controller.rb
+++ b/app/controllers/moduls_controller.rb
@@ -7,28 +7,45 @@ class ModulsController < ApplicationController
if !params[:studium_id].nil?
@studium=Studium.find_by_id(params[:studium_id])
end
- @toolbar_elements = [{:hicon=>'icon-plus-sign', :text=>I18n.t("modul.add"), :path=>new_modul_path}]
+ @toolbar_elements = [{:hicon=>'icon-plus-sign', :text=>I18n.t("modul.add"), :path=>new_modul_path}]
+ @topbar_elements=[{:hicon=>'icon-list', :text=>I18n.t("studien.allestudien"),:path=>studien_path}]
+ @topbar_elements<<{:hicon=>'icon-list', :text=>I18n.t("modul.list"),:path=>moduls_path}
+ @topbar_elements<<{:hicon=>'icon-list', :text=>I18n.t("lva.list"),:path=>lvas_path}
respond_to do |format|
format.html # index.html.erb
format.json { render json: @moduls }
end
end
+
end
# GET /moduls/1
# GET /moduls/1.json
def show
@modul = Modul.find(params[:id])
- @toolbar_elements = [{:hicon=>'icon-plus-sign', :text=>I18n.t("lva.add"), :path=>new_lva_path(:modul_id =>@modul.id)}]
+ @toolbar_elements = [{:hicon=>'icon-plus-sign', :text=>I18n.t("lva.add"), :path=>new_lva_path(:modul_id =>@modul.id)}]
@toolbar_elements << {:hicon=>'icon-pencil', :text=>I18n.t("modul.edit"), :path=>edit_modul_path(@modul)}
@toolbar_elements << {:hicon=>'icon-remove-circle', :text=>I18n.t("common.delete"),:path=>@modul , :method=>:delete , :data=>{:confirm =>'Are you sure'}}
+
+ @topbar_elements = [{:hicon=>'icon-list', :text=>I18n.t("modul.list"),:path=>moduls_path}]
+
+ @topbar_elements <<{:newline=>true}
+ for i in @modul.modulgruppen
+ if !i.studium.nil?
+ name =i.studium.name
+ id = i.studium.id
+ else
+ s.name = 'Kein Studium vorhanden'
+ s.id = nil
+ end
+ @topbar_elements <<{:text=> i.name + ' ('+i.studium.name + ')', :path=>studium_modulgruppen_path(i)}
+ end
respond_to do |format|
format.html # show.html.erb
format.json { render json: @modul }
end
-
end
# GET /moduls/new
@@ -63,7 +80,7 @@ class ModulsController < ApplicationController
if @modul.save
for i in @modul.lvas
i.add_semesters
- end
+ end
format.html { redirect_to modulgruppe_path(@modul.modulgruppen.first), notice: 'Modul was successfully created.' }
format.json { render json: @modul, status: :created, location: @modul }
else
@@ -83,7 +100,7 @@ class ModulsController < ApplicationController
if @modul.update_attributes(params[:modul])
for i in @modul.lvas
i.add_semesters
- end
+ end
format.html { redirect_to url_for(@modul), notice: 'Modul was successfully updated.' }
format.json { head :no_content }
else
@@ -100,8 +117,8 @@ class ModulsController < ApplicationController
@modul = Modul.find(params[:id])
modulgruppe=@modul.modulgruppen.first
for i in @modul.lvas
- i.add_semesters
- end
+ i.add_semesters
+ end
@modul.destroy
diff --git a/app/controllers/studien_controller.rb b/app/controllers/studien_controller.rb
index 3c426ab..603131e 100755
--- a/app/controllers/studien_controller.rb
+++ b/app/controllers/studien_controller.rb
@@ -1,39 +1,53 @@
class StudienController < ApplicationController
- before_filter {@toolbar_elements =[]}
+before_filter {@toolbar_elements =[]}
- def index
- @studien = Studium.all
- @toolbar_elements<<{:icon =>:plus, :hicon=>'icon-plus-sign', :text=> I18n.t('studien.new') ,:path=>new_studium_path }
- # @toolbar_elements<<{:text=> I18n.t('modulgruppe.show.link') ,:path=>modulgruppen_path }
- end
+def index
+ @studien = Studium.all
+ @topbar_elements=[{:hicon=>'icon-list', :text=>I18n.t("studien.allestudien"),:path=>studien_path}]
+ @topbar_elements<<{:hicon=>'icon-list', :text=>I18n.t("modul.list"),:path=>moduls_path}
+ @topbar_elements<<{:hicon=>'icon-list', :text=>I18n.t("lva.list"),:path=>lvas_path}
+ @toolbar_elements<<{:icon =>:plus, :hicon=>'icon-plus-sign', :text=> I18n.t('studien.new') ,:path=>new_studium_path }
+ # @toolbar_elements<<{:text=> I18n.t('modulgruppe.show.link') ,:path=>modulgruppen_path }
+end
+
+def show
+ @studium= Studium.find(params[:id])
+ @text = 'Zu Semesteransicht wechseln'
+ @path = studium_semesteransicht_path(@studium)
+
+ @studienphasen=[]
+ [1, 2 ,3].each do |ph|
+ modulgruppen_phase=@studium.modulgruppen.where(:phase=>ph)
+ if modulgruppen_phase.count==1
+ opts={:width=>12, :slice=>1}
+ elsif modulgruppen_phase.count <= 4
+ opts={:width=>6, :slice=>2}
+ else
+ opts={:width=>4, :slice=>3}
+ end
+ modulgruppen =[]
+ modulgruppen_phase.each_slice(opts[:slice]) do |s|
+ modulgruppen<ph)
- if modulgruppen_phase.count==1
- opts={:width=>12, :slice=>1}
- elsif modulgruppen_phase.count <= 4
- opts={:width=>6, :slice=>2}
- else
- opts={:width=>4, :slice=>3}
- end
- modulgruppen =[]
- modulgruppen_phase.each_slice(opts[:slice]) do |s|
- modulgruppen<modulgruppen, :phase => ph}.merge(opts)
- end
- @toolbar_elements=[{:icon=>:plus, :hicon =>'icon-plus-sign' ,:text=> I18n.t('studien.new') , :path => new_studium_path(@studium) }]
- @toolbar_elements<<{:icon=>:pencil, :hicon=>'icon-pencil',:text =>I18n.t('common.edit'),:path => edit_studium_path(@studium)}
- @toolbar_elements<<{:hicon=>'icon-remove-circle', :text=> I18n.t('common.delete'),:path => studium_path(@studium), :method=> :delete,:confirm=>"Sure?" }
- @toolbar_modulgruppen =[ {:hicon=>'icon-plus-sign', :text=> I18n.t('modulgruppe.new'), :path=>new_studium_modulgruppe_path(@studium)}]
- @toolbar_modulgruppen << {:hicon=>'icon-list', :text => I18n.t('modulgruppe.list'), :path=>modulgruppen_path}
+ end
+
+ @toolbar_elements=[{:icon=>:plus, :hicon =>'icon-plus-sign' ,:text=> I18n.t('studien.new') , :path => new_studium_path(@studium) },
+ {:icon=>:pencil, :hicon=>'icon-pencil',:text =>I18n.t('common.edit'),:path => edit_studium_path(@studium)},
+ {:hicon=>'icon-remove-circle', :text=> I18n.t('common.delete'),:path => studium_path(@studium), :method=> :delete,:confirm=>"Sure?" }]
+
+ @toolbar_modulgruppen =[ {:hicon=>'icon-plus-sign', :text=> I18n.t('modulgruppe.new'), :path=>new_studium_modulgruppe_path(@studium)},
+ {:hicon=>'icon-list', :text => I18n.t('modulgruppe.list'), :path=>modulgruppen_path}]
+
+ @topbar_elements = [ {:hicon=>'icon-list', :text=>I18n.t("studien.allestudien"), :path=>studien_path},
+ {:text=>'Zur Semesteransicht wechseln', :path=>studium_semesteransicht_path(@studium)},
+ {:newline=>true}]
+ for i in Studium.all
+ @topbar_elements << {:text=>i.name, :path=>studium_path(i)}
+ end
+
end
def new
@@ -79,11 +93,20 @@ class StudienController < ApplicationController
end
@text = 'Zu Modulgruppenansicht wechseln'
@path = studium_path(@studium)
- @toolbar_elements=[{:icon=>:plus, :hicon =>'icon-plus-sign' ,:text=> I18n.t('studien.new') , :path => new_studium_path(@studium) }]
- @toolbar_elements<<{:icon=>:pencil, :hicon=>'icon-pencil',:text =>I18n.t('common.edit'),:path => edit_studium_path(@studium)}
- @toolbar_elements<<{:hicon=>'icon-remove-circle', :text=> I18n.t('common.delete'),:path => studium_path(@studium), :method=> :delete,:confirm=>"Sure?" }
+ @topbar_elements = [ {:hicon=>'icon-list', :text=>I18n.t("studien.allestudien"), :path=>studien_path},
+ {:text=>'Zur Modulgruppenansicht wechseln', :path=>studium_path(@studium)},
+ {:newline=>true}]
+ for i in Studium.all
+ @topbar_elements << {:text=>i.name, :path=>studium_semesteransicht_path(i)}
+ end
+
+
+
+ @toolbar_elements = [ {:icon=>:plus, :hicon =>'icon-plus-sign' ,:text=> I18n.t('studien.new') , :path => new_studium_path(@studium) },
+ {:icon=>:pencil, :hicon=>'icon-pencil',:text =>I18n.t('common.edit'),:path => edit_studium_path(@studium)},
+ {:hicon=>'icon-remove-circle', :text=> I18n.t('common.delete'),:path => studium_path(@studium), :method=> :delete,:confirm=>"Sure?" }]
end
-
+
def destroy
@studium = Studium.find(params[:id])
@studium.destroy
diff --git a/app/views/layouts/_topbar.html.erb b/app/views/layouts/_topbar.html.erb
new file mode 100755
index 0000000..f22b2dc
--- /dev/null
+++ b/app/views/layouts/_topbar.html.erb
@@ -0,0 +1,11 @@
+<% topbar = !topbar.nil? ? topbar : @topbar_elements %>
+
+ <% topbar.each do |tb| %>
+ <% if tb[:newline]%>
+
+ <% else %>
+ -
+ <%= link_to_unless_current ''.html_safe+ tb[:text], tb[:path] %>/
+ <% end %>
+ <% end %>
+
diff --git a/app/views/lvas/index.html.erb b/app/views/lvas/index.html.erb
index 640e04a..eb1a57b 100755
--- a/app/views/lvas/index.html.erb
+++ b/app/views/lvas/index.html.erb
@@ -1,4 +1,4 @@
-<%= render 'layouts/link_all' %>
+<%= render :partial=>'layouts/topbar', :object=>@tb %>
<%= I18n.t("lva.list")%>
<% @lvas.each do |l| %>
diff --git a/app/views/moduls/index.html.erb b/app/views/moduls/index.html.erb
index 3b0e973..385cfb6 100755
--- a/app/views/moduls/index.html.erb
+++ b/app/views/moduls/index.html.erb
@@ -1,4 +1,4 @@
-<%= render 'layouts/link_all' %>
+<%= render 'layouts/topbar' %>
<%= I18n.t("modul.list") %>
<%= render :partial=>'moduls/lang', :collection=>@moduls, :as=>:modul%>
diff --git a/app/views/moduls/show.html.erb b/app/views/moduls/show.html.erb
index cfaff5b..74c1367 100755
--- a/app/views/moduls/show.html.erb
+++ b/app/views/moduls/show.html.erb
@@ -1,24 +1,4 @@
-
-
- <% @modul.modulgruppen.each do |g| %>
- <% if !g.nil? %>
- -
- <% if !g.studium.nil? %>
- <%= link_to g.studium.name , studium_path(g.studium) %>
-
- <% else %>
-
- Studium fehlt!
- <% end %>
- /
- - <%= link_to g.name , modulgruppe_path(g)%>
- <% else %>
-
- Modulgruppe Fehlt
- <%end %>
- /
-
- <%end%>
-
-
+<%= render 'layouts/topbar'%>
<%= notice %>
<%= render @modul %>
diff --git a/app/views/studien/index.html.erb b/app/views/studien/index.html.erb
index cf2ae8b..c67e6c9 100755
--- a/app/views/studien/index.html.erb
+++ b/app/views/studien/index.html.erb
@@ -1,4 +1,4 @@
-<%= render 'layouts/link_all' %>
+<%= render 'layouts/topbar' %>
<%= I18n.t("studien.list") %>
diff --git a/app/views/studien/semesteransicht.html.erb b/app/views/studien/semesteransicht.html.erb
index 62c81eb..22c82c2 100644
--- a/app/views/studien/semesteransicht.html.erb
+++ b/app/views/studien/semesteransicht.html.erb
@@ -1,4 +1,4 @@
-<%= render :partial=>'studien/navigation'%>
+<%= render :partial=>'layouts/topbar'%>
<%= @studium.typ %> <%= @studium.name %> (<%= @studium.zahl %>)
<%= raw(@studium.desc) %>
diff --git a/app/views/studien/show.html.erb b/app/views/studien/show.html.erb
index e557109..e813c9c 100644
--- a/app/views/studien/show.html.erb
+++ b/app/views/studien/show.html.erb
@@ -1,4 +1,4 @@
-<%= render :partial=>'studien/navigation'%>
+<%= render 'layouts/topbar'%>
<%= notice %>
From ef81b61260fef2101d25cbf91ec66216031c803a Mon Sep 17 00:00:00 2001
From: Thomas Blazek
Date: Sun, 4 Aug 2013 18:37:34 +0200
Subject: [PATCH 42/44] Topbar inclusions
---
app/controllers/lvas_controller.rb | 8 ++++++++
app/controllers/moduls_controller.rb | 16 ++++++++--------
app/views/layouts/_topbar.html.erb | 2 +-
app/views/lvas/_lva_semester.html.erb | 4 ++--
app/views/lvas/show.html.erb | 2 +-
app/views/moduls/show.html.erb | 2 +-
6 files changed, 21 insertions(+), 13 deletions(-)
diff --git a/app/controllers/lvas_controller.rb b/app/controllers/lvas_controller.rb
index d2ee71f..7b737dd 100755
--- a/app/controllers/lvas_controller.rb
+++ b/app/controllers/lvas_controller.rb
@@ -16,6 +16,14 @@ class LvasController < ApplicationController
@toolbar_elements<<{:hicon=>'icon-plus-sign', :icon=>:plus, :text => "Neues Beispiel", :path=> new_beispiel_path(:lva_id =>@lva.id)}
@toolbar_elements<<{:hicon=>'icon-pencil', :icon=>:pencil,:text =>I18n.t('common.edit'),:path => edit_lva_path(@lva)}
+ @topbar_elements =[{:hicon=>'icon-list', :text=>I18n.t("lva.list"), :path=>lvas_path}]
+ for m in @lva.modul
+ @topbar_elements << {:newline=>true}
+ @topbar_elements << {:text=> '' + m.name + '', :path=>modul_path(m)}
+ for mg in m.modulgruppen
+ @topbar_elements << {:text => mg.studium.name + ' (' + mg.name + ')', :path=>studium_path(mg.studium)}
+ end
+ end
end
# GET /lvas/new
diff --git a/app/controllers/moduls_controller.rb b/app/controllers/moduls_controller.rb
index d4503ed..a21712c 100755
--- a/app/controllers/moduls_controller.rb
+++ b/app/controllers/moduls_controller.rb
@@ -30,18 +30,18 @@ class ModulsController < ApplicationController
@topbar_elements = [{:hicon=>'icon-list', :text=>I18n.t("modul.list"),:path=>moduls_path}]
-
- @topbar_elements <<{:newline=>true}
+ @tb=[]
for i in @modul.modulgruppen
+
if !i.studium.nil?
- name =i.studium.name
- id = i.studium.id
- else
- s.name = 'Kein Studium vorhanden'
+ name =i.studium.name
+ id = i.studium.id
+ else
+ s.name = 'Kein Studium vorhanden'
s.id = nil
- end
- @topbar_elements <<{:text=> i.name + ' ('+i.studium.name + ')', :path=>studium_modulgruppen_path(i)}
end
+ @tb <<{:text=> i.name + ' ('+i.studium.name + ')', :path=>modulgruppe_path(i)}
+ end
respond_to do |format|
format.html # show.html.erb
format.json { render json: @modul }
diff --git a/app/views/layouts/_topbar.html.erb b/app/views/layouts/_topbar.html.erb
index f22b2dc..2a4c0de 100755
--- a/app/views/layouts/_topbar.html.erb
+++ b/app/views/layouts/_topbar.html.erb
@@ -5,7 +5,7 @@
<% else %>
-
- <%= link_to_unless_current ''.html_safe+ tb[:text], tb[:path] %>/
+ <%= link_to_unless_current ''.html_safe+ tb[:text].html_safe, tb[:path] %>/
<% end %>
<% end %>
diff --git a/app/views/lvas/_lva_semester.html.erb b/app/views/lvas/_lva_semester.html.erb
index 3c04128..a60029d 100755
--- a/app/views/lvas/_lva_semester.html.erb
+++ b/app/views/lvas/_lva_semester.html.erb
@@ -1,7 +1,7 @@
- <%= link_to lva.name, lva_path(lva)%>
- (|<% lva.modul.each do |m| %> <%= link_to m.name, modul_path(m) unless m.modulgruppen.map{|x| x.studium}.index(@studium).nil? && !@studium.nil? %> |<% end %>)
+ <%= link_to lva.name, lva_path(lva)%>
+ Module: /<% lva.modul.each do |m| %> <%= link_to m.name + ' / ', modul_path(m) unless m.modulgruppen.map{|x| x.studium}.index(@studium).nil? && !@studium.nil? %><% end %>
<%="LVa-Nr " + lva.lvanr.to_s %>
<%= lva.ects %> ECTS / <%= lva.stunden %> Std <% " / " + lva.beispiele.count.to_s + " Beispiele"%>
diff --git a/app/views/lvas/show.html.erb b/app/views/lvas/show.html.erb
index df3bb49..78efd78 100755
--- a/app/views/lvas/show.html.erb
+++ b/app/views/lvas/show.html.erb
@@ -1,4 +1,4 @@
-<%= render 'layouts/link_all'%>
+<%= render 'layouts/topbar'%>
<%= notice %>
diff --git a/app/views/moduls/show.html.erb b/app/views/moduls/show.html.erb
index 74c1367..2bf73e9 100755
--- a/app/views/moduls/show.html.erb
+++ b/app/views/moduls/show.html.erb
@@ -1,5 +1,5 @@
<%= render 'layouts/topbar'%>
-
+<%= render 'layouts/topbar', :topbar=>@tb%>
<%= notice %>
<%= render @modul %>
From d29713f1504d9a36df5dc77d49fe71f74d216772 Mon Sep 17 00:00:00 2001
From: HausdorffHimself
Date: Sun, 4 Aug 2013 19:05:45 +0200
Subject: [PATCH 43/44] FIX der CreateLvaSemesterJoinTable-Migration
---
...130729085446_create_lva_semester_join_table.rb | 15 ++++-----------
1 file changed, 4 insertions(+), 11 deletions(-)
diff --git a/db/migrate/20130729085446_create_lva_semester_join_table.rb b/db/migrate/20130729085446_create_lva_semester_join_table.rb
index c4f8ea4..cd29e07 100644
--- a/db/migrate/20130729085446_create_lva_semester_join_table.rb
+++ b/db/migrate/20130729085446_create_lva_semester_join_table.rb
@@ -4,18 +4,11 @@ class CreateLvaSemesterJoinTable < ActiveRecord::Migration
t.integer :lva_id
t.integer :semester_id
end
- add_index :lva_semesters, [:lva_id, :semester_id]
- add_index :lva_semesters, :semester_id
+ add_index :lvas_semesters, [:lva_id, :semester_id]
+ add_index :lvas_semesters, :semester_id
end
- def change
- create_table :lvas_semesters, :id=>false do |t|
- t.integer :lva_id
- t.integer :semester_id
- end
- add_index :lva_semesters, [:lva_id, :semester_id]
- add_index :lva_semesters, :semester_id
- end
+
def self.down
- drop_table :lva_semesters
+ drop_table :lvas_semesters
end
end
From 5623201e4e7f38616e09fc68163b48fb1d3b0dd6 Mon Sep 17 00:00:00 2001
From: HausdorffHimself
Date: Sun, 4 Aug 2013 19:07:05 +0200
Subject: [PATCH 44/44] FIX: Anpassung der Factory Studium
---
spec/factories/studien.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/spec/factories/studien.rb b/spec/factories/studien.rb
index 071a60e..c2e1b8e 100644
--- a/spec/factories/studien.rb
+++ b/spec/factories/studien.rb
@@ -3,7 +3,7 @@
FactoryGirl.define do
factory :studium do
- zahl "066.506"
+ zahl "066506"
name "Automatisierung"
desc "TEST DESC"
typ "Master"