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

- - - - - - - - - - <% @modulgruppen.sort_by{|n| n[:name]}.each do |modulgruppe| %> - - - - - - - - - + <%= render modulgruppe%> <% end %> -
TypePhaseStudiumName
<%= 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?' } %>
-
<% 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: + + + +Modulgruppen: + +<% # @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") %>

- - - - - - - - - - -<% @moduls.sort_by{|n| n[:name]}.each do |modul| %> - - - - - - - - - -<% end %> -
Modulgruppe (Studium)NameDesc
- <%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?' } %>
+<%= 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

- - - - - - - - - - + - - - - - - +
  • +<%= render :partial=> "beispiele/beispiel_list", :object => beispiel, :as=>:beispiel%> <% end %> -
  • NameDesc
    <%= 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?' } %>
    - -
    + + <%= 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| %> + +<% 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") %>) - -
    +
      +
    • <%= render studium%>
    • +
    <% 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

    - - - - - - - - - - - - - -<% @lvas.each do |lva| %> - - - - - - - - - - -<% end %> -
    NameDescEctsLvanrStunden
    <%= 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?' } %>
    - -
    - +
      +<% @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%> + + 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 @@ 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| %> -
      -
    • <%= render studium%>
    • -
    +
      +
    • <%= render 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| %>

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