diff --git a/.gitignore b/.gitignore
index 0747299..56919f1 100755
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,9 @@
+/db/.#initdebug.rb
+/usergroup.ldif
+/newuser.ldif
+/passwd.ldif
/config/omniauth_secrets.yml
+/config/database.yml
/config/initializers/omniauth_secrets.rb
# See http://help.github.com/ignore-files/ for more about ignoring files.
#
@@ -14,7 +19,7 @@
/db/schema.rb
/db/structure.sql
/config/initializers/devise.rb
-
+Gemfile.lock
# Ignore all logfiles and tempfiles.
/log/*.log
/tmp
@@ -24,4 +29,4 @@
console
/server
/public/uploads/
-
+*#
diff --git a/Gemfile b/Gemfile
index b532080..9bde7ec 100755
--- a/Gemfile
+++ b/Gemfile
@@ -33,7 +33,7 @@ gem 'jquery-rails'
# Use unicorn as the app server
# gem 'unicorn'
-# Deploy with Capistrano
+# Deploy with Capistran
# gem 'capistrano'
# To use debugger
@@ -87,10 +87,10 @@ gem 'rmagick'
gem 'bootstrap-addons-rails'
gem "jquery-fileupload-rails"
gem "jquery-ui-rails","~> 4.1.1"
-
+gem "font-awesome-rails"
# gem "jquery-sortable-rails"
gem "seed_dump", "~> 0.5.3"
#gem "themes_for_rails" ,:git =>'git://github.com/tkriplean/themes_for_rails.git'
#gem "themes_for_rails", :git=> 'git://github.com/lucasefe/themes_for_rails.git'
gem 'themes_for_rails'
-gem 'remotipart', :git =>'git://github.com/JangoSteve/remotipart.git'
+
diff --git a/Gemfile.lock b/Gemfile.lock
index 47be881..f01eff7 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,9 +1,3 @@
-GIT
- remote: git://github.com/JangoSteve/remotipart.git
- revision: aadc29e996c35096ee971bdc6cbf7ab148077a3a
- specs:
- remotipart (1.2.1)
-
GIT
remote: git://github.com/airblade/paper_trail.git
revision: 802b7d4ead71703860fcb9befc2c9b2ee05a8b9f
@@ -86,6 +80,8 @@ GEM
railties (>= 3.0.0)
faraday (0.8.8)
multipart-post (~> 1.2.0)
+ font-awesome-rails (4.0.3.1)
+ railties (>= 3.2, < 5.0)
formtastic (2.2.1)
actionpack (>= 3.0)
formtastic-bootstrap (2.1.3)
@@ -245,6 +241,7 @@ DEPENDENCIES
devise (~> 2.2.3)
execjs (~> 1.4.0)
factory_girl_rails
+ font-awesome-rails
formtastic (~> 2.2.1)
formtastic-bootstrap (~> 2.1.3)
git
diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js
index 3492931..50fb36d 100755
--- a/app/assets/javascripts/application.js
+++ b/app/assets/javascripts/application.js
@@ -25,15 +25,25 @@
//= require bootstrap/load-image.min
//= require bootstrap/image-gallery.min
//= require jquery-fileupload
-//= require jquery.remotipart
+// require jquery.remotipart
function insertAttachment(url,name) {
var ext = url.split('.').pop().toLowerCase();
var img_ext = [ "jpg", "png", "bmp" , "jpeg" ];
+ // if ( img_ext.indexOf(ext) > -1) {
+// tinymce.activeEditor.setContent(tinymce.activeEditor.getContent({format : 'raw'}) + "");
+// }
+// else {
+// tinymce.activeEditor.setContent(tinymce.activeEditor.getContent({format : 'raw'}) + "" + name +"");
+// }
+
+
if ( img_ext.indexOf(ext) > -1) {
- tinymce.activeEditor.setContent(tinymce.activeEditor.getContent({format : 'raw'}) + "
");
+ tinymce.activeEditor.execCommand('mceInsertContent', false, "
");
}
else {
- tinymce.activeEditor.setContent(tinymce.activeEditor.getContent({format : 'raw'}) + "" + name +"");
+ tinymce.activeEditor.execCommand('mceInsertContent', false, "" + name +"");
}
+
+
}
diff --git a/app/assets/stylesheets/application.css.scss b/app/assets/stylesheets/application.css.scss
index 9b7217f..9cd5a40 100755
--- a/app/assets/stylesheets/application.css.scss
+++ b/app/assets/stylesheets/application.css.scss
@@ -42,8 +42,9 @@ $sansFontFamily: Helvetica, Arial;
@import 'bootstrap-responsive';
@import 'bootstrap/image-gallery';
+@import 'font-awesome';
-h1 {
+h1 {
font-size: 23px
}
diff --git a/app/assets/stylesheets/themes/2003/application.css.scss b/app/assets/stylesheets/themes/2003/application.css.scss
index c21efd0..d45d70e 100755
--- a/app/assets/stylesheets/themes/2003/application.css.scss
+++ b/app/assets/stylesheets/themes/2003/application.css.scss
@@ -58,7 +58,7 @@ $sansFontFamily: Helvetica, Arial;
@import 'bootstrap/image-gallery';
@import 'neuigkeiten';
-
+@import 'font-awesome';
div.header {
display: block;
diff --git a/app/assets/stylesheets/themes/blue1/application.css.scss b/app/assets/stylesheets/themes/blue1/application.css.scss
index c733110..fe7a383 100755
--- a/app/assets/stylesheets/themes/blue1/application.css.scss
+++ b/app/assets/stylesheets/themes/blue1/application.css.scss
@@ -56,7 +56,7 @@ $sansFontFamily: Helvetica, Arial;
@import 'bootstrap';
@import 'bootstrap-responsive';
@import 'bootstrap/image-gallery';
-
+@import 'font-awesome';
@import 'neuigkeiten';
diff --git a/app/assets/stylesheets/themes/darkblue/application.css.scss b/app/assets/stylesheets/themes/darkblue/application.css.scss
index 36fce0c..2057e79 100755
--- a/app/assets/stylesheets/themes/darkblue/application.css.scss
+++ b/app/assets/stylesheets/themes/darkblue/application.css.scss
@@ -56,7 +56,7 @@ $sansFontFamily: Helvetica, Arial;
@import 'bootstrap';
@import 'bootstrap-responsive';
@import 'bootstrap/image-gallery';
-
+@import 'font-awesome';
@import 'neuigkeiten';
diff --git a/app/assets/stylesheets/themes/white_1/application.css.scss b/app/assets/stylesheets/themes/white_1/application.css.scss
index 99793a5..8cbca33 100644
--- a/app/assets/stylesheets/themes/white_1/application.css.scss
+++ b/app/assets/stylesheets/themes/white_1/application.css.scss
@@ -41,7 +41,7 @@ $sansFontFamily: Helvetica, Arial;
@import 'bootstrap';
@import 'bootstrap-responsive';
@import 'bootstrap/image-gallery';
-
+@import 'font-awesome';
@import 'neuigkeiten';
div.header {
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index f7c7c86..cdd3a1f 100755
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -22,6 +22,6 @@ else
end
end
def default_url_options
- {locale: I18n.locale, theme: theme_name}
+ {locale: I18n.locale, theme: theme_name, ansicht: nil}
end
end
diff --git a/app/controllers/beispiele_controller.rb b/app/controllers/beispiele_controller.rb
index ef93f78..286e91e 100755
--- a/app/controllers/beispiele_controller.rb
+++ b/app/controllers/beispiele_controller.rb
@@ -16,11 +16,7 @@ class BeispieleController < ApplicationController
def show
# @lva = params([:lva]) unless params([:lva]).nil?
@beispiel = Beispiel.find(params[:id])
-
- respond_to do |format|
- format.html # show.html.erb
- format.json { render json: @beispiel }
- end
+ redirect_to @beispiel.lva
end
# GET /beispiele/new
diff --git a/app/controllers/fetprofiles_controller.rb b/app/controllers/fetprofiles_controller.rb
index 2f8a654..ad61588 100644
--- a/app/controllers/fetprofiles_controller.rb
+++ b/app/controllers/fetprofiles_controller.rb
@@ -28,7 +28,7 @@ class FetprofilesController < ApplicationController
@toolbar_elements << {:hicon=>'icon-pencil', :text=> I18n.t('common.edit'),:path => edit_fetprofile_path(@fetprofile) } if can? :edit, @fetprofile
- @toolbar_elements << {:hicon=>'icon-minus', :text => I18n.t('common.delete'), :method=>:delete, :confirm=>"Sure"}
+ @toolbar_elements << {:hicon=>'icon-minus', :text => I18n.t('common.delete'), :method=>:delete, :confirm=>"Sure"} if can? :destroy,@fetprofile
respond_to do |format|
diff --git a/app/controllers/gremien_controller.rb b/app/controllers/gremien_controller.rb
index 966cc4c..497163f 100644
--- a/app/controllers/gremien_controller.rb
+++ b/app/controllers/gremien_controller.rb
@@ -6,7 +6,7 @@ class GremienController < ApplicationController
def verwalten
@gremien = Gremium.all
@gremientabs=Gremium.tabs
- @toolbar_elements << {:text=>I18n.t('common.new'),:path=>new_gremium_path() ,:icon=>:plus} if can? :new, Gremium
+ @toolbar_elements << {:text=>I18n.t('gremium.new'),:path=>new_gremium_path() ,:icon=>:plus} if can? :new, Gremium
respond_to do |format|
format.html # index.html.erb
format.json { render json: @gremien }
diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb
index 4333ec6..019cff1 100755
--- a/app/controllers/home_controller.rb
+++ b/app/controllers/home_controller.rb
@@ -6,6 +6,8 @@ class HomeController < ApplicationController
end
def dev
+ end
+ def kontakt
end
def startdev
render 'setup_fetsite_dev'
diff --git a/app/controllers/lvas_controller.rb b/app/controllers/lvas_controller.rb
index 8919adb..dd6781e 100755
--- a/app/controllers/lvas_controller.rb
+++ b/app/controllers/lvas_controller.rb
@@ -1,6 +1,6 @@
class LvasController < ApplicationController
# GET /lvas
- before_filter {@toolbar_elements =[]}
+ before_filter :load_toolbar, :only => [:show]
load_and_authorize_resource
def index
@lvas = Lva.all
@@ -14,10 +14,7 @@ class LvasController < ApplicationController
def show
@lva = Lva.find_by_id(params[:id])
- @beispiel=Beispiel.new
- @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)}
- @toolbar_elements << {:hicon=>'icon-remove-circle', :text=>I18n.t('common.delete'), :path=> lva_path(@lva), :method=>:delete, :confirm=>'Sure?' }
+ @beispiel=Beispiel.new
end
# GET /lvas/new
@@ -33,52 +30,71 @@ class LvasController < ApplicationController
def edit
@lva = Lva.find(params[:id])
@semester = @lva.modul.map(&:modulgruppen).flatten.map(&:studium).map(&:semester).flatten.uniq
-
-
end
- # POST /lvas
- # POST /lvas.json
+
+ def compare_tiss
+ @lva = Lva.find_by_id(params[:id])
+ @lvatiss = Lva.new
+ @lvatiss.lvanr=@lva.lvanr
+ @lvatiss.load_tissdata("-2013W")
+
+ end
+
+ def load_tiss
+ @lva = Lva.find_by_id(params[:id])
+ @lva.load_tissdata("-2013W")
+ if @lva.save
+ redirect_to @lva , notice: 'Lva von TISS geleaden.'
+ else
+ redirect_to @lva, action: :compare_tiss
+ end
+ end
+
def create
@lva = Lva.new(params[:lva])
respond_to do |format|
if @lva.save
- @lva.add_semesters
+ @lva.add_semesters
format.html { redirect_to @lva, notice: 'Lva was successfully created.' }
-
else
format.html { render action: "new" }
-
end
end
end
- # PUT /lvas/1
- # PUT /lvas/1.json
def update
@lva = Lva.find(params[:id])
-
respond_to do |format|
if @lva.update_attributes(params[:lva])
@lva.add_semesters
format.html { redirect_to @lva, notice: 'Lva was successfully updated.' }
-
else
format.html { render action: "edit" }
-
end
end
end
- # DELETE /lvas/1
- # DELETE /lvas/1.json
def destroy
@lva = Lva.find(params[:id])
@lva.destroy
respond_to do |format|
format.html { redirect_to lvas_url }
-
end
end
+
+private
+ def load_toolbar
+ @lva = Lva.find_by_id(params[:id])
+ @toolbar_elements =[]
+ @toolbar_elements<<{:hicon=>'icon-pencil', :icon=>:pencil,:text =>I18n.t('common.edit'),:path => edit_lva_path(@lva)} if can? :edit, @lva
+ @toolbar_elements << {:hicon=>'icon-remove-circle', :text=>"Tissvergleichladen", :path=> lva_compare_tiss_path(@lva)} if can? :compare_tiss, @lva
+ @toolbar_elements << {:hicon=>'icon-remove-circle', :text=>I18n.t('common.delete'), :path=> lva_path(@lva), :method=>:delete, :confirm=>'Sure?' } if can? :delete, @lva
+
+
+
+
+ end
+
end
diff --git a/app/controllers/modulgruppen_controller.rb b/app/controllers/modulgruppen_controller.rb
index 42d0502..6c2e6f8 100755
--- a/app/controllers/modulgruppen_controller.rb
+++ b/app/controllers/modulgruppen_controller.rb
@@ -24,7 +24,7 @@ class ModulgruppenController < ApplicationController
@toolbar_elements = [ {:text=>'Zurück', :path=>studium_path(@studium, :ansicht=>:modulgruppenansicht)}]
@toolbar_elements << {:hicon=>'icon-plus-sign', :text=>I18n.t('modulgruppe.addmodul'), :path=>new_modul_path(@modulgruppe)}
@toolbar_elements << {:hicon=>'icon-pencil', :text=>I18n.t('modulgruppe.edit'), :path=>edit_modulgruppe_path(@modulgruppe)}
- @toolbar_elements << {:hicon=>'icon-remove-circle', :text=> I18n.t('common.delete'),:path => studium_path(@studium, :ansicht=>:modulgruppenansicht), :method=> :delete,:confirm=>"Sure?" }
+ @toolbar_elements << {:hicon=>'icon-remove-circle', :text=> I18n.t('common.delete'),:path => studium_path(@studium, :ansicht=>:modulgruppenansicht), :method=> :delete,:confirm=>'Sure?' }
end
# GET /modulgruppen/new
@@ -71,7 +71,6 @@ class ModulgruppenController < ApplicationController
def update
@modulgruppe = Modulgruppe.find(params[:id])
-
respond_to do |format|
if @modulgruppe.update_attributes(params[:modulgruppe])
format.html { redirect_to @modulgruppe, notice: 'Modulgruppe was successfully updated.' }
diff --git a/app/controllers/moduls_controller.rb b/app/controllers/moduls_controller.rb
index 624d536..ace786b 100755
--- a/app/controllers/moduls_controller.rb
+++ b/app/controllers/moduls_controller.rb
@@ -8,6 +8,7 @@ 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}]
@topbar_elements =[{:hicon=>'icon-list', :text=>I18n.t("studien.allestudien"),:path=>studien_path}]
@topbar_elements<<{:hicon=>'icon-list', :text=>I18n.t("modul.list"),:path=>moduls_path}
diff --git a/app/controllers/neuigkeiten_controller.rb b/app/controllers/neuigkeiten_controller.rb
index df2bd33..31d371e 100755
--- a/app/controllers/neuigkeiten_controller.rb
+++ b/app/controllers/neuigkeiten_controller.rb
@@ -1,28 +1,20 @@
class NeuigkeitenController < ApplicationController
- before_filter {@toolbar_elements=[]}
+ before_filter :load_toolbar_elements, :only=>[:show,:find_link]
+ before_filter :load_toolbar_elements_edit, :only=>[:edit]
+
+
+
load_and_authorize_resource
def show
- @neuigkeit = Neuigkeit.find(params[:id])
+ @neuigkeit = Neuigkeit.find(params[:id])
@rubrik=@neuigkeit.rubrik
+
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 })
-
- # @neuigkeit=Neuigkeit.find(params[:id])
end
@calentries1=@neuigkeit.calentries
- @toolbar_elements << {:hicon=>'icon-plus', :text=> I18n.t('neuigkeit.publish'),:path => publish_rubrik_neuigkeit_path(@neuigkeit.rubrik,@neuigkeit),:confirm=>"Sure?" } if can? :publish, @neuigkeit
- @toolbar_elements << {:hicon=>'icon-minus', :text=> I18n.t('neuigkeit.unpublish'),:path => unpublish_rubrik_neuigkeit_path(@neuigkeit.rubrik,@neuigkeit),:confirm=>"Sure?" } if can?(:unpublish, @neuigkeit) && !@neuigkeit.published?
-
- @toolbar_elements << {:text=>I18n.t('common.edit'),:path=>edit_rubrik_neuigkeit_path(@neuigkeit.rubrik,@neuigkeit),:icon=>:pencil} if can? :edit, @neuigkeit.rubrik
- @versions= @neuigkeit.translation.versions.select([:created_at]).reverse
- @toolbar_elements <<{:path=>rubrik_neuigkeit_path(@neuigkeit.rubrik,@neuigkeit),:method=>:versions,:versions=>@versions}
-
- @toolbar_elements << {:hicon=>'icon-remove-circle', :text=> I18n.t('common.delete'),:path => rubrik_neuigkeit_path(@neuigkeit.rubrik,@neuigkeit), :method=> :delete,:confirm=>'Sure?' } if can? :delete, @neuigkeit
-# @toolbar_elements << {:path=> add_calentry_rubrik_neuigkeit_path(@neuigkeit.rubrik,@neuigkeit), :text=>"Add Calentry", :icon=>:plus}
-
-
end
def new
@@ -45,7 +37,7 @@ class NeuigkeitenController < ApplicationController
@neuigkeit.calentry=ce
@neuigkeit.save
- render 'edit'
+ render 'edit'
end
def unpublish
@@ -69,11 +61,29 @@ class NeuigkeitenController < ApplicationController
def edit
@neuigkeit = Neuigkeit.find(params[:id])
- @toolbar_elements << {:text=>I18n.t('common.show'),:path=>rubrik_neuigkeit_path(@neuigkeit.rubrik,@neuigkeit)} if can? :show, @neuigkeit
+
@calentries= @neuigkeit.calentries
@calentries<< Calentry.new
end
+ def find_link
+ @rubrik=@neuigkeit.rubrik
+ @calentries1=@neuigkeit.calentries
+ @nlink_search = Neuigkeit::LINKTYPES.clone
+
+ @nlink_search.collect!{|t| t.constantize}
+ @nlink_search.collect!{|t| t.search(params[:query]).limit(2)}
+
+
+@nlink_search.flatten!
+
+ render action:"show"
+ end
+ def create_link
+ Nlink.create(:link=>params[:link_type].constantize.find(params[:link_id]),:neuigkeit=>Neuigkeit.find(params[:id]))
+
+ redirect_to action:"show"
+ end
def create
@neuigkeit = Neuigkeit.new(params[:neuigkeit])
@@ -111,4 +121,29 @@ class NeuigkeitenController < ApplicationController
end
end
+
+private
+ def load_toolbar_elements
+ @neuigkeit=Neuigkeit.find(params[:id])
+ @toolbar_elements=[]
+ @toolbar_elements << {:hicon=>'icon-plus', :text=> I18n.t('neuigkeit.publish'),:path => publish_rubrik_neuigkeit_path(@neuigkeit.rubrik,@neuigkeit),:confirm=>'Sure?' } if can?(:publish, @neuigkeit) && @neuigkeit.published?
+ @toolbar_elements << {:hicon=>'icon-minus', :text=> I18n.t('neuigkeit.unpublish'),:path => unpublish_rubrik_neuigkeit_path(@neuigkeit.rubrik,@neuigkeit),:confirm=>'Sure?' } if can?(:unpublish, @neuigkeit) && !@neuigkeit.published?
+ @toolbar_elements << {:text=>I18n.t('common.edit'),:path=>edit_rubrik_neuigkeit_path(@neuigkeit.rubrik,@neuigkeit),:icon=>:pencil} if can? :edit, @neuigkeit.rubrik
+ @versions= @neuigkeit.translation.versions.select([:created_at]).reverse
+
+ @toolbar_elements <<{:path=>rubrik_neuigkeit_path(@neuigkeit.rubrik,@neuigkeit),:method=>:versions,:versions=>@versions}
+
+ @toolbar_elements << {:hicon=>'icon-remove-circle', :text=> I18n.t('common.delete'),:path => rubrik_neuigkeit_path(@neuigkeit.rubrik,@neuigkeit), :method=> :delete,:confirm=>'Sure?' } if can? :delete, @neuigkeit
+
+ end
+
+
+ def load_toolbar_elements_edit
+ @neuigkeit = Neuigkeit.find(params[:id])
+ @toolbar_elements=[]
+ @toolbar_elements << {:text=>I18n.t('common.show'),:path=>rubrik_neuigkeit_path(@neuigkeit.rubrik,@neuigkeit)} if can? :show, @neuigkeit
+
+ end
+
+
end
diff --git a/app/controllers/rubriken_controller.rb b/app/controllers/rubriken_controller.rb
index 79e1d6b..0ff05ff 100755
--- a/app/controllers/rubriken_controller.rb
+++ b/app/controllers/rubriken_controller.rb
@@ -11,13 +11,12 @@ class RubrikenController < ApplicationController
@rubrik = Rubrik.find(params[:id])
@moderatoren=User.with_role(:newsmoderator,@rubrik)
if can?(:showunpublished, Neuigkeit)
- @neuigkeiten = @rubrik.neuigkeiten
-else
- @neuigkeiten = @rubrik.neuigkeiten.published
-end
-@toolbar_elements << {:text=>I18n.t('neuigkeit.new.title'),:path=> new_rubrik_neuigkeit_path(@rubrik),:hicon=>'icon-plus-sign'} if can? :verwalten, @rubrik
-
-@toolbar_elements << {:text=>I18n.t('common.verwalten'),:path=>verwalten_rubrik_path(@rubrik),:icon=>:pencil} if can? :verwalten, @rubrik
+ @neuigkeiten = @rubrik.neuigkeiten
+ else
+ @neuigkeiten = @rubrik.neuigkeiten.published
+ end
+ @toolbar_elements << {:text=>I18n.t('neuigkeit.new.title'), :path=> new_rubrik_neuigkeit_path(@rubrik),:hicon=>'icon-plus-sign'} if can? :verwalten, @rubrik
+ @toolbar_elements << {:text=>I18n.t('common.verwalten'), :path=>verwalten_rubrik_path(@rubrik),:icon=>:pencil} if can? :verwalten, @rubrik
diff --git a/app/controllers/studien_controller.rb b/app/controllers/studien_controller.rb
index 3b2fe05..35f80d3 100755
--- a/app/controllers/studien_controller.rb
+++ b/app/controllers/studien_controller.rb
@@ -34,18 +34,16 @@ 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)},
- {:hicon=>'icon-remove-circle', :text=> I18n.t('common.delete'),:path => studium_path(@studium), :method=> :delete,:confirm=>"Sure?" }]
+ {:hicon=>'icon-remove-circle', :text=> I18n.t('common.delete'),:path => studium_path(@studium), :method=> :delete,:confirm=>'Sure?' }]
@toolbar_modulgruppen =[ {:hicon=>'icon-plus-sign', :text=> I18n.t('modulgruppe.new'), :path=>new_studium_modulgruppe_path(@studium)},
{:hicon=>'icon-list', :text => I18n.t('modulgruppe.list'), :path=>modulgruppen_path}]
-
- if params[:ansicht] != 'modulgruppenansicht'
- @text = 'Zu Modulansicht wechseln'
- @flip = 'modulgruppenansicht'
- render 'semesteransicht'
+ case params[:ansicht]
+ when 'semesteransicht'
+ when 'infoansicht'
+ when 'qualifikationsprofil'
else
- @text = 'Zu Semesteransicht wechseln'
- @flip = 'semesteransicht'
+ params[:ansicht]="modulgruppenansicht"
end
end
@@ -242,14 +240,14 @@ class StudienController < ApplicationController
end
def default_url_options
- {:ansicht=> params[:ansicht],
+
+ super.merge({:ansicht=> params[:ansicht],
:std_verw=> params[:std_verw],
:mg_verw=> params[:mg_verw],
:m_verw=>params[:m_verw],
:lva_verw=>params[:lva_verw],
:b_verw=>params[:b_verw],
- :lec_verw=>params[:lec_verw]}.merge(super)
-
-
+ :lec_verw=>params[:lec_verw]})
end
+
end
diff --git a/app/controllers/themen_controller.rb b/app/controllers/themen_controller.rb
index 4435ec6..2f5fa51 100644
--- a/app/controllers/themen_controller.rb
+++ b/app/controllers/themen_controller.rb
@@ -16,16 +16,27 @@ class ThemenController < ApplicationController
# GET /themen/1.json
def show
@thema = Thema.find(params[:id])
+ redirect_to :controller=>'themengruppen', :id=>@thema.themengruppe.id, :action=>:show, :anchor=> "thema_"+params[:id].to_s
@fragen=@thema.fragen
+ @toolbar_elements = [{:icon=>:pencil, :hicon=>'icon-pencil', :text=>"Verwalten", :path=>verwalten_thema_path(@thema)}]
+
@toolbar_elements = [{:icon=>:pencil, :hicon=>'icon-pencil', :text=>I18n.t('thema.edit'), :path=>edit_thema_path(@thema)}]
@toolbar_elements << {:hicon=>'icon-remove-circle', :text=>I18n.t('thema.remove'), :path=>thema_path(@thema), :method=>:delete, :confirm=>I18n.t('thema.sure')}
- respond_to do |format|
- format.html # show.html.erb
- format.json { render json: @thema }
- end
+ # respond_to do |format|
+ # format.html # show.html.erb
+ # format.json { render json: @thema }
+ # end
end
+ def verwalten
+ @thema = Thema.find(params[:id])
+ @fragen=@thema.fragen
+ @toolbar_elements = [{:icon=>:pencil, :hicon=>'icon-pencil', :text=>"Verwalten", :path=>verwalten_thema_path(@thema)}]
+ @toolbar_elements = [{:icon=>:pencil, :hicon=>'icon-pencil', :text=>I18n.t('thema.edit'), :path=>edit_thema_path(@thema)}]
+ @toolbar_elements << {:hicon=>'icon-remove-circle', :text=>I18n.t('thema.remove'), :path=>thema_path(@thema), :method=>:delete, :confirm=>I18n.t('thema.sure')}
+
+ end
# GET /themen/new
# GET /themen/new.json
def new
@@ -51,19 +62,22 @@ class ThemenController < ApplicationController
# POST /themen.json
def create
@thema = Thema.new(params[:thema])
-
+
+ @themen = @thema.themengruppe.themen.order(:priority).reverse
respond_to do |format|
if @thema.save
format.html { redirect_to @thema, notice: 'Thema was successfully created.' }
format.json { render json: @thema, status: :created, location: @thema }
+ format.js {render action: "update"}
else
format.html { render action: "new" }
format.json { render json: @thema.errors, status: :unprocessable_entity }
+ format.js { render action: "edit" }
end
end
end
def fragen
- @thema = Thema.find(params[:thema_id])
+ @thema = Thema.find(params[:id])
@fragen=@thema.fragen
respond_to do |format|
format.js
@@ -73,7 +87,7 @@ class ThemenController < ApplicationController
# PUT /themen/1.json
def update
@thema = Thema.find(params[:id])
-
+ @themen = @thema.themengruppe.themen.order(:priority).reverse
respond_to do |format|
if @thema.update_attributes(params[:thema])
format.html { redirect_to @thema, notice: 'Thema was successfully updated.' }
diff --git a/app/controllers/themengruppen_controller.rb b/app/controllers/themengruppen_controller.rb
index aba10ca..f639b42 100644
--- a/app/controllers/themengruppen_controller.rb
+++ b/app/controllers/themengruppen_controller.rb
@@ -12,19 +12,22 @@ class ThemengruppenController < ApplicationController
format.json { render json: @themengruppen }
end
end
+ def faqs
+ @themengruppen = Themengruppe.order("themengruppen.priority").includes(:themen,{themen: :fragen}).order("themen.priority").reverse
+
+ end
# GET /themengruppen/1
# GET /themengruppen/1.json
def show
@themengruppe = Themengruppe.find(params[:id])
- @themen = @themengruppe.themen.order(:priority).reverse
+ @themen = @themengruppe.themen.order(:priority).reverse
@toolbar_elements = []
@toolbar_elements << {:icon=>:plus, :hicon=>'icon-plus-sign', :text=>I18n.t('thema.add'), :path=>new_themengruppe_thema_path(@themengruppe)} if can? :new, Themengruppe
@toolbar_elements << {:icon=>:pencil, :hicon=>'icon-pencil', :text=>I18n.t('themengruppe.edit'), :path=>edit_themengruppe_path(@themengruppe)} if can? :edit, @themengruppe
- @toolbar_elements << {:icon=>:pencil, :hicon=>'icon-pencil', :text=>I18n.t("themengruppe.verwalten"), :path=>themengruppe_verwalten_path(@themengruppe)} if can? :edit, @themengruppe
- @toolbar_elements << {:hicon=>'icon-remove-circle',:text=>I18n.t('themengruppe.remove'), :path=>themengruppe_path(@themengruppe), :method=>:delete,:confirm=>I18n.t('themengruppe.sure')} if can? :delete, @themengruppe
-
+ @toolbar_elements << {:icon=>:pencil, :hicon=>'icon-pencil', :text=>I18n.t("themengruppe.manage"), :path=>themengruppe_verwalten_path(@themengruppe)} if can? :edit, @themengruppe
+ @toolbar_elements << {:hicon=>'icon-remove-circle',:text=>I18n.t('themengruppe.remove'), :path=>themengruppe_path(@themengruppe), :method=>:delete,:confirm=>I18n.t('themengruppe.sure')} if can? :delete, @themengruppe
respond_to do |format|
format.html # show.html.erb
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index f34ec3d..b2acb74 100755
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -1,9 +1,11 @@
module ApplicationHelper
- def current_url(overwrite={})
- url_for :params => params.merge(overwrite).except(:controller,:action)
- end
+ def current_url1(overwrite={})
+ url_for :params => params.merge(overwrite).except(:controller,:action,:ansicht)
+ end
+
+
def switch_locale_url(target_locale)
- current_url({:locale=>target_locale}) .sub "/"+I18n.locale.to_s+"/", "/"+target_locale.to_s+"/"
+ current_url1({:locale=>target_locale}) .sub "/"+I18n.locale.to_s+"/", "/"+target_locale.to_s+"/"
end
def toolbar_html(elemente)
diff --git a/app/models/ability.rb b/app/models/ability.rb
index 38a73c6..055e2c7 100755
--- a/app/models/ability.rb
+++ b/app/models/ability.rb
@@ -37,6 +37,8 @@ class Ability
can [:show, :index], Lva
can [:show,:index], Gallery
can [:show, :index], Themengruppe
+ can [:show], Thema
+ can [:create], Beispiel
can [:show, :index], Fetprofile
can [:show, :index],Gremium
# Rechteverwaltung fuer Studien Modul
@@ -49,16 +51,16 @@ class Ability
can [:show], Calentry
if( user.has_role?("fetuser") || user.has_role?("fetadmin"))
can :manage,:all
- can :manage, Modulgruppe
+ can :manage, Modulgruppe
- can [:show,:index], Calendar
- can [:edit, :update,:new,:create,:verwalten], Calendar
- can [:edit, :update,:new,:create,:verwalten], Calentry
+ can [:show,:index], Calendar
+ can [:edit, :update,:new,:create,:verwalten], Calendar
+ can [:edit, :update,:new,:create,:verwalten], Calentry
+ end
+ if( user.has_role?("fetadmin"))
+ can [:delete],Calendar
+ can [:delete],Calentry
end
- if( user.has_role?("fetadmin"))
- can [:delete],Calendar
- can [:delete],Calentry
- end
# Rechteverwaltung fuer Neuigkeiten
diff --git a/app/models/calentry.rb b/app/models/calentry.rb
index 1689d1d..f7f0699 100644
--- a/app/models/calentry.rb
+++ b/app/models/calentry.rb
@@ -21,6 +21,7 @@ class Calentry < ActiveRecord::Base
validates :typ, :presence => true
before_save :get_public
belongs_to :object, polymorphic: true # Objekt zu dem der Calentry gehört (derzeit ein Newsartikel)
+
scope :upcoming, ->{ where("start >= ?", Time.now).order(:start)}
scope :recent,-> { where("start <= ?", Time.now).order(:start).reverse_order}
validate do |entry|
@@ -31,8 +32,8 @@ class Calentry < ActiveRecord::Base
resourcify
def get_public
- self.public = (self.try(:object).nil?)? (self.calendar.try(:public)) : object.try(:public)
- true
+ self.public = (self.try(:object).nil?)? (self.calendar.try(:public)) : object.try(:public)
+ true
end
def start_time
start
diff --git a/app/models/gallery.rb b/app/models/gallery.rb
index ae4afde..ac5855c 100644
--- a/app/models/gallery.rb
+++ b/app/models/gallery.rb
@@ -14,4 +14,11 @@ class Gallery < ActiveRecord::Base
WORD_COUNT = 20
attr_accessible :datum, :desc, :name
has_many :fotos
+ has_many :nlinks, as: :link
+ scope :search, ->(query) {where("name like ? or galleries.desc like ?", "%#{query}%", "%#{query}%")}
+
+ def title
+ name
+ end
end
+
diff --git a/app/models/gremium.rb b/app/models/gremium.rb
index ebc571d..a88f890 100644
--- a/app/models/gremium.rb
+++ b/app/models/gremium.rb
@@ -14,7 +14,8 @@
class Gremium < ActiveRecord::Base
TYPEN={1=>"offiziell", 2=>"offiziell-temporär", 3 => "inoffiziell",4=>"inoffiziell-tempo", 11=> "berufungskommission"} # Kategorien, im Wesentlichen wichtig für Listung oder nicht Listung
GESCHLECHT={0=>"saechlich", 1 => "maennlich", 2 => "weiblich"} # Geschlecht des Gremiums zur richtige Deklination
- ART2FALL={0=>"des", 1=>"des",2=>"der"} # Artikel 2.Fall abhängig vom Geschlecht
+ ART2FALL={0=>"des", 1=>"des",2=>"der"} # Artikel 2.Fall abhängig vom Geschlecht
+ ART4FALL={0=>"das", 1=>"den",2=>"die"} # Artikel 2.Fall abhängig vom Geschlecht
FILTER={11=>I18n.t("gremium.filter.berufung.title")}
TEXT={11=>I18n.t("gremium.filter.berufung.text")}
@@ -23,10 +24,16 @@ class Gremium < ActiveRecord::Base
belongs_to :thema # Gehört zu einem Thema
scope :tabs, -> { where(:typ => [1,3]).order(:typ).order(:name) } # Gremien die in Tabs angezeigt werden (Alle Anderen nur in der Liste
- # Gremium im 2. Fall für die Konstruktion "Mitglied des ... / der ... "
+ scope :search, ->(query) {where("name like ? or desc like ?", "%#{query}%", "%#{query}%")}
+
+ # Gremium im 2. Fall für die Konstruktion "Mitglied des ... / der ... "
accepts_nested_attributes_for :memberships, :reject_if=>lambda{|a| a[:typ].blank?|| a[:start].blank? ||a[:fetprofile_id].blank?}
def fall2
Gremium::ART2FALL[self.geschlecht.to_i].to_s+" "+ self.name.to_s+ ((self.geschlecht.to_i==1||self.geschlecht.to_i==0)? "s":"")
end
+ def fall4
+ Gremium::ART4FALL[self.geschlecht.to_i].to_s+" "+ self.name.to_s+ ((self.geschlecht.to_i==1||self.geschlecht.to_i==0)? "":"")
+ end
end
+
diff --git a/app/models/lecturer.rb b/app/models/lecturer.rb
index f860542..8195633 100644
--- a/app/models/lecturer.rb
+++ b/app/models/lecturer.rb
@@ -16,4 +16,16 @@ class Lecturer < ActiveRecord::Base
has_and_belongs_to_many :lvas
mount_uploader :picture, PictureUploader
resourcify
+
+ def load_tissdata
+ url= "https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/"+self.oid.to_s+".xml"
+ hash=Hash.from_xml(open(url).read)["tuvienna"]
+ self.name=hash["person"]["firstname"]+" "+hash["person"]["lastname"]
+ if hash["person"]["employee"]["employment"].is_a? Array
+ self.email= hash["person"]["employee"]["employment"].first["emails"]["email"].first
+ else
+ self.email= hash["person"]["employee"]["employment"]["emails"]["email"].first
+ end
+ self.link= "https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/"+self.oid.to_s
+ end
end
diff --git a/app/models/lva.rb b/app/models/lva.rb
index 241b4b6..a63d94c 100755
--- a/app/models/lva.rb
+++ b/app/models/lva.rb
@@ -36,14 +36,15 @@
class Lva < ActiveRecord::Base
ERLAUBTE_TYPEN = ['VO', 'UE', 'VU', 'LU', 'SE', 'andere'];
- has_paper_trail # Versionsverfolgung
+ has_paper_trail :ignore=>[:desc, :pruefungsinformation]# Versionsverfolgung
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, :fallbacks_for_empty_translations => true
+ translates :desc,:pruefungsinformation, :fallbacks_for_empty_translations => true, :versioning=>true
+ 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
validates_presence_of :ects # ECTS vorhanden?
@@ -52,6 +53,11 @@ 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
+ end
def full_name
return self.typ + ' ' + self.name
end
@@ -69,13 +75,37 @@ class Lva < ActiveRecord::Base
end
-
##
# Lade Daten aus TISS und füge diese in die Datenbank ein.
+ def tisshash(semester)
+ url= "https://tiss.tuwien.ac.at/api/course/"+ lvanr.to_s.gsub(".","")+semester
+ hash=Hash.from_xml(open(url).read)["tuvienna"]
+ end
def load_tissdata(semester)
- url= "https://tiss.tuwien.ac.at/api/course/"+ lvanr.to_s.gsub(".","")+semester
-# begin
+ urlp="https://tiss.tuwien.ac.at/api/course/"+ lvanr.to_s.gsub(".","")+"-"
+ begin
+ url= urlp+Time.now.year.to_s+"W"
hash=Hash.from_xml(open(url).read)["tuvienna"]
+ rescue OpenURI::HTTPError => e
+ begin
+ url= urlp+Time.now.year.to_s+"S"
+ hash=Hash.from_xml(open(url).read)["tuvienna"]
+ rescue OpenURI::HTTPError => e
+ begin
+ url= urlp+(Time.now.year-1).to_s+"W"
+ hash=Hash.from_xml(open(url).read)["tuvienna"]
+ rescue OpenURI::HTTPError => e
+
+ end
+
+ end
+
+ end
+
+
+
+# begin
+
# person=[]
# if hash["course"]["lecturers"]["oid"].is_a? String
# person = @hash["course"]["lecturers"]["oid"]
@@ -84,15 +114,60 @@ class Lva < ActiveRecord::Base
# person << Hash.from_xml(open("https://tiss.tuwien.ac.at/adressbuch/adressbuch/person_via_oid/" + pid.to_s + ".xml").read)["tuvienna"]["person"]
# end
# end
- # rescue OpenURI::HTTPError => e
- # end
- self.name=hash["course"]["title"][I18n.locale.to_s]
- self.pruefungsinformation= hash["course"]["examinationModalities"][I18n.locale.to_s]
- self.desc= hash["course"]["objective"][I18n.locale.to_s]+hash["course"]["teachingContent"][I18n.locale.to_s]
+ self.name=hash["course"]["title"]["de"]
+ self.pruefungsinformation = hash["course"]["examinationModalities"][I18n.locale.to_s].to_s
+ self.desc= hash["course"]["objective"][I18n.locale.to_s]+"
(? <%= notice %>
- Name:
- <%= @beispiel.name %>
-
- Desc:
- <%= @beispiel.desc %>
- <%= @beispiel.beispieldatei.url %>
-
- <%= @beispiel.lva.name %>
-
+ <%= if nlink.desc.split.size > Gallery::WORD_COUNT
+ nlink.desc.split[0..Gallery::WORD_COUNT].join(" ") + " ..."
+ else
+ nlink.desc
+ end%>
+
+ <%= if gallery.desc.split.size > Gallery::WORD_COUNT
+ gallery.desc.split[0..Gallery::WORD_COUNT].join(" ") + " ..."
+ else
+ gallery.desc
+ end%>
+ <%= nlink.name %>
+ <%= gallery.name %>
+
<%= link_to "Mehr zum Gremium lesen ..." ,themengruppe_path(@gremium.thema.themengruppe , {:thema=>@gremium.thema.id})%>
++<%= link_to thema_path(@gremium.thema) do%> +<%= fa_icon "book 2x border" %> Mehr über <%=@gremium.fall4 %> erfahren +<% end %> +
<% end %> diff --git a/app/views/gremien/verwalten.html.erb b/app/views/gremien/verwalten.html.erb index 3348678..38a339e 100644 --- a/app/views/gremien/verwalten.html.erb +++ b/app/views/gremien/verwalten.html.erb @@ -39,7 +39,7 @@-<%= link_to "FET Login", user_omniauth_authorize_path(:ldap) %> +<%= link_to I18n.t('home.login'), user_omniauth_authorize_path(:ldap) %>
<%= link_to "Steuerelemente und Komponenten", "http://getbootstrap.com/2.3.2/index.html" %>
Um bei der Entwicklung mitzuhelfen braucht nur Ruby on Rails installiert werden
-<%= link_to "Getting Started" , home_startdev_path%>
+<%= link_to "Getting Started" , startdev_home_index_path %>
Das Kalender Feature wird überarbeitet, in Zukunft soll folgender Link nicht mehr funktionieren <%= link_to "Kalender", calendars_path %>