diff --git a/.gitignore b/.gitignore index 4678fd7..2f63aa3 100755 --- a/.gitignore +++ b/.gitignore @@ -29,6 +29,7 @@ Gemfile.lock console /server /public/uploads/ +/vendor/* /bak/* *# Gemfile.lock diff --git a/Gemfile b/Gemfile index 9bde7ec..ec3165b 100755 --- a/Gemfile +++ b/Gemfile @@ -2,6 +2,7 @@ source 'https://rubygems.org' gem 'rails', '3.2.13' gem 'sprockets', '2.2.2' +gem 'webrick', '1.3.1' # Bundle edge Rails instead: # gem 'rails', :git => 'git://github.com/rails/rails.git' gem 'mysql2' diff --git a/app/controllers/neuigkeiten_controller.rb b/app/controllers/neuigkeiten_controller.rb index 31d371e..f08759a 100755 --- a/app/controllers/neuigkeiten_controller.rb +++ b/app/controllers/neuigkeiten_controller.rb @@ -9,6 +9,11 @@ class NeuigkeitenController < ApplicationController def show @neuigkeit = Neuigkeit.find(params[:id]) @rubrik=@neuigkeit.rubrik + if can?(:shownonpublic, Rubrik) + @rubriken = Rubrik.all + else + @rubriken = Rubrik.where(:public=>true) + end if !params[:version].nil? @neuigkeit.assign_attributes(@neuigkeit.translation.versions.reverse[params[:version].to_i].reify.attributes.select{|k,v| @neuigkeit.translated_attribute_names.include? k.to_sym }) diff --git a/app/controllers/rubriken_controller.rb b/app/controllers/rubriken_controller.rb index 0ff05ff..4e44a20 100755 --- a/app/controllers/rubriken_controller.rb +++ b/app/controllers/rubriken_controller.rb @@ -2,14 +2,25 @@ class RubrikenController < ApplicationController before_filter {@toolbar_elements=[]} load_and_authorize_resource def index - @rubriken = Rubrik.all - @neuigkeiten = Neuigkeit.recent - @calentries= Calentry.public + if can?(:shownonpublic, Rubrik) + @rubriken = Rubrik.all + else + @rubriken = Rubrik.where(:public=>true) + end + @neuigkeiten = @rubriken.collect(&:neuigkeiten).map(&:recent).flatten + @calentries= @rubriken.collect(&:calendar).collect(&:calentries).flatten end def show + if can?(:shownonpublic, Rubrik) + @rubriken = Rubrik.all + else + @rubriken = Rubrik.where(:public=>true) + end + @rubrik = Rubrik.find(params[:id]) @moderatoren=User.with_role(:newsmoderator,@rubrik) + @calentries= @rubrik.calentries if can?(:showunpublished, Neuigkeit) @neuigkeiten = @rubrik.neuigkeiten else diff --git a/app/controllers/studien_controller.rb b/app/controllers/studien_controller.rb index 35f80d3..79de843 100755 --- a/app/controllers/studien_controller.rb +++ b/app/controllers/studien_controller.rb @@ -34,6 +34,7 @@ class StudienController < ApplicationController @toolbar_elements=[{:icon=>:plus, :hicon =>'icon-plus-sign' ,:text=> I18n.t('studien.new') , :path => new_studium_path(@studium) }, {:icon=>:pencil, :hicon=>'icon-pencil',:text =>I18n.t('common.edit'),:path => edit_studium_path(@studium)}, + {:icon=>:pencil, :hicon=>'icon-pencil',:text =>I18n.t('common.edit'),:path => edit_lvas_studium_path(@studium)}, {:hicon=>'icon-remove-circle', :text=> I18n.t('common.delete'),:path => studium_path(@studium), :method=> :delete,:confirm=>'Sure?' }] @toolbar_modulgruppen =[ {:hicon=>'icon-plus-sign', :text=> I18n.t('modulgruppe.new'), :path=>new_studium_modulgruppe_path(@studium)}, @@ -57,6 +58,15 @@ class StudienController < ApplicationController @toolbar_elements<<{:text =>I18n.t('studien.allestudien'),:path=>studien_path(@studium)} end + def edit_lvas + @studium = Studium.find(params[:id]) + @lvas=@studium.lvas + @semester=@studium.semester + @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 @studium = Studium.new(params[:studium]) @@ -73,9 +83,13 @@ 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.' + logger.info "params: #{params[:studium].inspect}" + if @studium.update_attributes(params[:studium]) + if @studium.lvas.map(&:valid?).all? + redirect_to url_for(@studium), notice: 'Studium was successfully updated.' + else + render action: "edit" + end else render action: "edit" diff --git a/app/models/ability.rb b/app/models/ability.rb index 1dcb42b..86f364a 100755 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -76,6 +76,7 @@ class Ability if user.has_role?("newsadmin") || user.has_role?( "fetadmin") || user.has_role?( "fetuser") can :manage, Rubrik can :manage, Neuigkeit + can :shownonpublic, Rubrik can :showunpublished, Neuigkeit end diff --git a/app/models/lva.rb b/app/models/lva.rb index 5ca8e97..5a0f5d5 100755 --- a/app/models/lva.rb +++ b/app/models/lva.rb @@ -36,14 +36,18 @@ class Lva < ActiveRecord::Base ERLAUBTE_TYPEN = ['VO', 'UE', 'VU', 'LU', 'SE', 'andere']; + has_paper_trail :ignore=>[:desc, :pruefungsinformation]# Versionsverfolgung + translates :desc,:pruefungsinformation, :fallbacks_for_empty_translations => true, :versioning=>true + attr_accessible :desc, :ects, :lvanr, :name, :stunden, :modul_ids, :semester_ids, :pruefungsinformation, :lernaufwand, :typ, :lecturer_ids + has_and_belongs_to_many :modul,:uniq=>true # Gehört zu einem Modul has_and_belongs_to_many :semester - #Gehört zu einem Semester( derzeit nicht implementiert) has_many :beispiele , :class_name => "Beispiel" has_and_belongs_to_many :lecturers - translates :desc,:pruefungsinformation, :fallbacks_for_empty_translations => true, :versioning=>true + has_many :nlinks, as: :link + scope :search, ->(query) {where("name like ? or lvas.desc like ?", "%#{query}%", "%#{query}%")} validates :lvanr,:format=>{ :with => /^[0-9][0-9][0-9]\.[0-9A][0-9][0-9]$/}, :presence=>true, :uniqueness=>true # , :uniqueness=>true # LVA-Nummer muss das Format 000.000 besitzen (uniqueness?) oder 000 für nicht @@ -53,7 +57,7 @@ class Lva < ActiveRecord::Base validates_presence_of :stunden # Stunden Eingetragen? validates_presence_of :modul # Zugehöriges Modul eingetragen? # (zumindest eines) - has_many :nlinks, as: :link + def title self.name diff --git a/app/models/neuigkeit.rb b/app/models/neuigkeit.rb index e5b710b..e894dc9 100755 --- a/app/models/neuigkeit.rb +++ b/app/models/neuigkeit.rb @@ -23,6 +23,7 @@ class Neuigkeit < ActiveRecord::Base has_many :calentries, as: :object mount_uploader :picture, PictureUploader + scope :published, -> {where("datum <= ? AND datum IS NOT NULL", Time.now.to_date).order(:datum).reverse_order} scope :recent, -> { published.limit(15)} scope :unpublished, -> {where("datum >= ? OR datum IS NULL", Date.today)} @@ -32,7 +33,7 @@ class Neuigkeit < ActiveRecord::Base accepts_nested_attributes_for :calentries, :allow_destroy=>true , :reject_if=> lambda{|a| a[:start].blank?} before_validation :sanitize has_many :nlinks - + def datum_nilsave self.datum.nil? ? Time.now + 42.years : self.datum end diff --git a/app/models/studium.rb b/app/models/studium.rb index 51afdf1..044ae08 100755 --- a/app/models/studium.rb +++ b/app/models/studium.rb @@ -27,18 +27,24 @@ # created_at :datetime not null # updated_at :datetime not null class Studium < ActiveRecord::Base - attr_accessible :desc, :name,:abkuerzung, :typ, :zahl, :semester, :picture, :picture_cache, :qualifikation,:struktur, :jobmoeglichkeiten + attr_accessible :desc, :name,:abkuerzung, :typ, :zahl, :semester, :picture, :picture_cache, :qualifikation,:struktur, :jobmoeglichkeiten, :lvas_attributes has_many :modulgruppen, inverse_of: :studium, :class_name => "Modulgruppe", :dependent => :destroy scope :search, ->(query) {where("name like ? or studien.desc like ?", "%#{query}%", "%#{query}%")} has_many :moduls, :through=>:modulgruppen has_many :lvas, :through=>:moduls has_many :semester, :dependent => :destroy - validates :abkuerzung, :length=>{:maximum=>5}, :format=>{:with=>/^[a-zA-z]{0,5}$/} + +validates :abkuerzung, :length=>{:maximum=>5}, :format=>{:with=>/^[a-zA-z]{0,5}$/} validates :typ, :inclusion => {:in => ["Bachelor","Master"] } validates :name, :uniqueness => true, :presence=>true validates :zahl, :presence=>true, :format=>{:with=>/^[0-9A-Z]{4,10}$/}, :uniqueness => true + mount_uploader :picture, PictureUploader + + accepts_nested_attributes_for :lvas #, :allow_destroy=>true # , :reject_if=> lambda{|a| a[:name].blank?} + translates :desc,:shortdesc, :qualifikation,:struktur, :jobmoeglichkeiten, :versioning =>true,:fallbacks_for_empty_translations => true + def title_context return self.abkuerzung.to_s.strip.empty? ? self.name : self.abkuerzung end diff --git a/app/views/galleries/index.html.erb b/app/views/galleries/index.html.erb index ed4bb87..258fd23 100644 --- a/app/views/galleries/index.html.erb +++ b/app/views/galleries/index.html.erb @@ -13,29 +13,13 @@ end %>
- <%= if gallery.desc.split.size > Gallery::WORD_COUNT - gallery.desc.split[0..Gallery::WORD_COUNT].join(" ") + " ..." - else - gallery.desc - end%> -
-<%= if gallery.desc.split.size > Gallery::WORD_COUNT diff --git a/app/views/home/index.html.erb b/app/views/home/index.html.erb index 87417d4..7b57ca4 100755 --- a/app/views/home/index.html.erb +++ b/app/views/home/index.html.erb @@ -1,6 +1,5 @@
<%= I18n.t('home.hallobeiderfet') %>
+Die Webseite befindet sich derzeit in einem Entsicklungsstadium, +
Die Webseite befindet sich derzeit in einem Entwicklungsstadium, volle Funktionsfähigkeit ist noch nicht erreicht. Bitte Featurerequests und Fehlermeldungen auf GitHub melden.
diff --git a/app/views/home/setup_fetsite_dev.html.erb b/app/views/home/setup_fetsite_dev.html.erb index 2d7dc0e..fb62ea4 100644 --- a/app/views/home/setup_fetsite_dev.html.erb +++ b/app/views/home/setup_fetsite_dev.html.erb @@ -17,9 +17,12 @@ Im angelegten Verzeichnis den bundle installer ausführen.sudo gem install bundlerImageMagick,sqlite3 installieren
sudo apt-get install libmagickwand-dev libsqlite3-dev nodejs+ + +
sudo apt-get install libmysql-ruby libmysqlclient-devgegebenenfalls g++ installieren
cd fetsite -sudo bundle install + sudo bundle installFalls Fehler auftreten je nach Fehlermeldung Pakete mit
apt-get nach installieren (zB sqlite, ...) - google!
diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb
index 5f41239..3841dce 100755
--- a/app/views/layouts/application.html.erb
+++ b/app/views/layouts/application.html.erb
@@ -3,6 +3,8 @@
+
+
<%= link_to "FAQS", faqs_themengruppen_path %>
+<%= link_to "FAQS", faqs_themengruppen_path,class: :btn %>
<%= link_to "FAQS", faqs_themengruppen_path,class=btn %>
+| Title | -Text | -- | - | - |
|---|