This commit is contained in:
Sai
2014-04-11 11:54:49 +02:00
120 changed files with 1324 additions and 524 deletions

10
.gitignore vendored
View File

@@ -1,4 +1,9 @@
/db/.#initdebug.rb
/usergroup.ldif
/newuser.ldif
/passwd.ldif
/config/omniauth_secrets.yml /config/omniauth_secrets.yml
/config/database.yml
/config/initializers/omniauth_secrets.rb /config/initializers/omniauth_secrets.rb
# See http://help.github.com/ignore-files/ for more about ignoring files. # See http://help.github.com/ignore-files/ for more about ignoring files.
# #
@@ -14,7 +19,7 @@
/db/schema.rb /db/schema.rb
/db/structure.sql /db/structure.sql
/config/initializers/devise.rb /config/initializers/devise.rb
Gemfile.lock
# Ignore all logfiles and tempfiles. # Ignore all logfiles and tempfiles.
/log/*.log /log/*.log
/tmp /tmp
@@ -24,4 +29,5 @@
console console
/server /server
/public/uploads/ /public/uploads/
/bak/*
*#

View File

@@ -33,7 +33,7 @@ gem 'jquery-rails'
# Use unicorn as the app server # Use unicorn as the app server
# gem 'unicorn' # gem 'unicorn'
# Deploy with Capistrano # Deploy with Capistran
# gem 'capistrano' # gem 'capistrano'
# To use debugger # To use debugger
@@ -87,10 +87,10 @@ gem 'rmagick'
gem 'bootstrap-addons-rails' gem 'bootstrap-addons-rails'
gem "jquery-fileupload-rails" gem "jquery-fileupload-rails"
gem "jquery-ui-rails","~> 4.1.1" gem "jquery-ui-rails","~> 4.1.1"
gem "font-awesome-rails"
# gem "jquery-sortable-rails" # gem "jquery-sortable-rails"
gem "seed_dump", "~> 0.5.3" 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/tkriplean/themes_for_rails.git'
#gem "themes_for_rails", :git=> 'git://github.com/lucasefe/themes_for_rails.git' #gem "themes_for_rails", :git=> 'git://github.com/lucasefe/themes_for_rails.git'
gem 'themes_for_rails' gem 'themes_for_rails'
gem 'remotipart', :git =>'git://github.com/JangoSteve/remotipart.git'

View File

@@ -1,9 +1,3 @@
GIT
remote: git://github.com/JangoSteve/remotipart.git
revision: aadc29e996c35096ee971bdc6cbf7ab148077a3a
specs:
remotipart (1.2.1)
GIT GIT
remote: git://github.com/airblade/paper_trail.git remote: git://github.com/airblade/paper_trail.git
revision: 802b7d4ead71703860fcb9befc2c9b2ee05a8b9f revision: 802b7d4ead71703860fcb9befc2c9b2ee05a8b9f
@@ -86,6 +80,8 @@ GEM
railties (>= 3.0.0) railties (>= 3.0.0)
faraday (0.8.8) faraday (0.8.8)
multipart-post (~> 1.2.0) multipart-post (~> 1.2.0)
font-awesome-rails (4.0.3.1)
railties (>= 3.2, < 5.0)
formtastic (2.2.1) formtastic (2.2.1)
actionpack (>= 3.0) actionpack (>= 3.0)
formtastic-bootstrap (2.1.3) formtastic-bootstrap (2.1.3)
@@ -245,6 +241,7 @@ DEPENDENCIES
devise (~> 2.2.3) devise (~> 2.2.3)
execjs (~> 1.4.0) execjs (~> 1.4.0)
factory_girl_rails factory_girl_rails
font-awesome-rails
formtastic (~> 2.2.1) formtastic (~> 2.2.1)
formtastic-bootstrap (~> 2.1.3) formtastic-bootstrap (~> 2.1.3)
git git
@@ -261,6 +258,7 @@ DEPENDENCIES
paper_trail (>= 2.7.0)! paper_trail (>= 2.7.0)!
paperclip (~> 3.4.0) paperclip (~> 3.4.0)
rails (= 3.2.13) rails (= 3.2.13)
remotipart!
rmagick rmagick
rolify rolify
rspec-rails rspec-rails

View File

@@ -25,15 +25,25 @@
//= require bootstrap/load-image.min //= require bootstrap/load-image.min
//= require bootstrap/image-gallery.min //= require bootstrap/image-gallery.min
//= require jquery-fileupload //= require jquery-fileupload
//= require jquery.remotipart // require jquery.remotipart
function insertAttachment(url,name) { function insertAttachment(url,name) {
var ext = url.split('.').pop().toLowerCase(); var ext = url.split('.').pop().toLowerCase();
var img_ext = [ "jpg", "png", "bmp" , "jpeg" ]; var img_ext = [ "jpg", "png", "bmp" , "jpeg" ];
// if ( img_ext.indexOf(ext) > -1) {
// tinymce.activeEditor.setContent(tinymce.activeEditor.getContent({format : 'raw'}) + "<img src=\"" + url + "\" title=\"" + name + "\">");
// }
// else {
// tinymce.activeEditor.setContent(tinymce.activeEditor.getContent({format : 'raw'}) + "<a href=\"" + url + "\">" + name +"</a>");
// }
if ( img_ext.indexOf(ext) > -1) { if ( img_ext.indexOf(ext) > -1) {
tinymce.activeEditor.setContent(tinymce.activeEditor.getContent({format : 'raw'}) + "<img src=\"" + url + "\" title=\"" + name + "\">"); tinymce.activeEditor.execCommand('mceInsertContent', false, "<img src=\"" + url + "\" title=\"" + name + "\">");
} }
else { else {
tinymce.activeEditor.setContent(tinymce.activeEditor.getContent({format : 'raw'}) + "<a href=\"" + url + "\">" + name +"</a>"); tinymce.activeEditor.execCommand('mceInsertContent', false, "<a href=\"" + url + "\">" + name +"</a>");
} }
} }

View File

@@ -42,6 +42,7 @@ $sansFontFamily: Helvetica, Arial;
@import 'bootstrap-responsive'; @import 'bootstrap-responsive';
@import 'bootstrap/image-gallery'; @import 'bootstrap/image-gallery';
@import 'font-awesome';
h1 { h1 {
font-size: 23px font-size: 23px

View File

@@ -58,7 +58,7 @@ $sansFontFamily: Helvetica, Arial;
@import 'bootstrap/image-gallery'; @import 'bootstrap/image-gallery';
@import 'neuigkeiten'; @import 'neuigkeiten';
@import 'font-awesome';
div.header { div.header {
display: block; display: block;

View File

@@ -56,7 +56,7 @@ $sansFontFamily: Helvetica, Arial;
@import 'bootstrap'; @import 'bootstrap';
@import 'bootstrap-responsive'; @import 'bootstrap-responsive';
@import 'bootstrap/image-gallery'; @import 'bootstrap/image-gallery';
@import 'font-awesome';
@import 'neuigkeiten'; @import 'neuigkeiten';

View File

@@ -56,7 +56,7 @@ $sansFontFamily: Helvetica, Arial;
@import 'bootstrap'; @import 'bootstrap';
@import 'bootstrap-responsive'; @import 'bootstrap-responsive';
@import 'bootstrap/image-gallery'; @import 'bootstrap/image-gallery';
@import 'font-awesome';
@import 'neuigkeiten'; @import 'neuigkeiten';

View File

@@ -41,7 +41,7 @@ $sansFontFamily: Helvetica, Arial;
@import 'bootstrap'; @import 'bootstrap';
@import 'bootstrap-responsive'; @import 'bootstrap-responsive';
@import 'bootstrap/image-gallery'; @import 'bootstrap/image-gallery';
@import 'font-awesome';
@import 'neuigkeiten'; @import 'neuigkeiten';
div.header { div.header {

View File

@@ -22,6 +22,6 @@ else
end end
end end
def default_url_options def default_url_options
{locale: I18n.locale, theme: theme_name} {locale: I18n.locale, theme: theme_name, ansicht: nil}
end end
end end

View File

@@ -16,11 +16,7 @@ class BeispieleController < ApplicationController
def show def show
# @lva = params([:lva]) unless params([:lva]).nil? # @lva = params([:lva]) unless params([:lva]).nil?
@beispiel = Beispiel.find(params[:id]) @beispiel = Beispiel.find(params[:id])
redirect_to @beispiel.lva
respond_to do |format|
format.html # show.html.erb
format.json { render json: @beispiel }
end
end end
# GET /beispiele/new # GET /beispiele/new

View File

@@ -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-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| respond_to do |format|

View File

@@ -6,7 +6,7 @@ class GremienController < ApplicationController
def verwalten def verwalten
@gremien = Gremium.all @gremien = Gremium.all
@gremientabs=Gremium.tabs @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| respond_to do |format|
format.html # index.html.erb format.html # index.html.erb
format.json { render json: @gremien } format.json { render json: @gremien }

View File

@@ -6,6 +6,8 @@ class HomeController < ApplicationController
end end
def dev def dev
end
def kontakt
end end
def startdev def startdev
render 'setup_fetsite_dev' render 'setup_fetsite_dev'

View File

@@ -1,6 +1,6 @@
class LvasController < ApplicationController class LvasController < ApplicationController
# GET /lvas # GET /lvas
before_filter {@toolbar_elements =[]} before_filter :load_toolbar, :only => [:show]
load_and_authorize_resource load_and_authorize_resource
def index def index
@lvas = Lva.all @lvas = Lva.all
@@ -15,9 +15,6 @@ class LvasController < ApplicationController
def show def show
@lva = Lva.find_by_id(params[:id]) @lva = Lva.find_by_id(params[:id])
@beispiel=Beispiel.new @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?' }
end end
# GET /lvas/new # GET /lvas/new
@@ -33,52 +30,70 @@ class LvasController < ApplicationController
def edit def edit
@lva = Lva.find(params[:id]) @lva = Lva.find(params[:id])
@semester = @lva.modul.map(&:modulgruppen).flatten.map(&:studium).map(&:semester).flatten.uniq @semester = @lva.modul.map(&:modulgruppen).flatten.map(&:studium).map(&:semester).flatten.uniq
end
def compare_tiss
@lva = Lva.find_by_id(params[:id])
@lvatiss = Lva.new
@lvatiss.lvanr=@lva.lvanr
@lvatiss.load_tissdata("-2013W")
end end
# POST /lvas
# POST /lvas.json def load_tiss
@lva = Lva.find_by_id(params[:id])
@lva.load_tissdata("-2013W")
if @lva.save
redirect_to @lva , notice: 'Lva von TISS geladen.'
else
redirect_to @lva, action: :compare_tiss
end
end
def create def create
@lva = Lva.new(params[:lva]) @lva = Lva.new(params[:lva])
respond_to do |format| respond_to do |format|
if @lva.save if @lva.save
@lva.add_semesters @lva.add_semesters
format.html { redirect_to @lva, notice: 'Lva was successfully created.' } format.html { redirect_to @lva, notice: 'Lva was successfully created.' }
else else
format.html { render action: "new" } format.html { render action: "new" }
end end
end end
end end
# PUT /lvas/1
# PUT /lvas/1.json
def update def update
@lva = Lva.find(params[:id]) @lva = Lva.find(params[:id])
respond_to do |format| respond_to do |format|
if @lva.update_attributes(params[:lva]) if @lva.update_attributes(params[:lva])
@lva.add_semesters @lva.add_semesters
format.html { redirect_to @lva, notice: 'Lva was successfully updated.' } format.html { redirect_to @lva, notice: 'Lva was successfully updated.' }
else else
format.html { render action: "edit" } format.html { render action: "edit" }
end end
end end
end end
# DELETE /lvas/1
# DELETE /lvas/1.json
def destroy def destroy
@lva = Lva.find(params[:id]) @lva = Lva.find(params[:id])
@lva.destroy @lva.destroy
respond_to do |format| respond_to do |format|
format.html { redirect_to lvas_url } 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=> compare_tiss_lva_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
end
end end

View File

@@ -1,9 +1,9 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
class ModulgruppenController < ApplicationController class ModulgruppenController < ApplicationController
# GET /modulgruppen before_filter :find_modulgruppe, :only=>[:show, :delete]
before_filter :load_toolbar_show, :only=>[:show] # Toolbar für show erstellen
load_and_authorize_resource load_and_authorize_resource
def index def index
@modulgruppen = Modulgruppe.all @modulgruppen = Modulgruppe.all
if !params[:studium_id].nil? if !params[:studium_id].nil?
@@ -14,17 +14,12 @@ class ModulgruppenController < ApplicationController
end end
# GET /modulgruppen/1 # GET /modulgruppen/1
def show def show
@modulgruppe = Modulgruppe.find(params[:id]) @modulgruppe = Modulgruppe.find(params[:id])
@studium = Studium.find(@modulgruppe.studium_id) @studium = Studium.find(@modulgruppe.studium_id)
if !params[:studium_id].nil? if !params[:studium_id].nil?
@studium=Studium.find(params[:studium_id]) @studium=Studium.find(params[:studium_id])
end end
@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?" }
end end
# GET /modulgruppen/new # GET /modulgruppen/new
@@ -38,7 +33,6 @@ class ModulgruppenController < ApplicationController
end end
respond_to do |format| respond_to do |format|
format.html # new.html.erb format.html # new.html.erb
format.json { render json: @modulgruppe }
end end
end end
@@ -51,13 +45,15 @@ class ModulgruppenController < ApplicationController
end end
end end
# POST /modulgruppen # POST /modulgruppen
def create def create
@modulgruppe = Modulgruppe.new(params[:modulgruppe]) @modulgruppe = Modulgruppe.new(params[:modulgruppe])
respond_to do |format| respond_to do |format|
if @modulgruppe.save if @modulgruppe.save
format.html { redirect_to @modulgruppe.studium, notice: 'Modulgruppe was successfully created.' } format.html { redirect_to @modulgruppe.studium, notice: 'Modulgruppe was successfully created.' }
@@ -71,7 +67,6 @@ class ModulgruppenController < ApplicationController
def update def update
@modulgruppe = Modulgruppe.find(params[:id]) @modulgruppe = Modulgruppe.find(params[:id])
respond_to do |format| respond_to do |format|
if @modulgruppe.update_attributes(params[:modulgruppe]) if @modulgruppe.update_attributes(params[:modulgruppe])
format.html { redirect_to @modulgruppe, notice: 'Modulgruppe was successfully updated.' } format.html { redirect_to @modulgruppe, notice: 'Modulgruppe was successfully updated.' }
@@ -94,4 +89,20 @@ class ModulgruppenController < ApplicationController
end end
end end
private
def find_modulgruppe
@modulgruppe = Modulgruppe.find(params[:id])
end
def load_toolbar_show
@toolbar_elements = [ {:text=>'Zurück', :path=>studium_path(@modulgruppe.studium, :ansicht=>:modulgruppenansicht)}]
@toolbar_elements << {:hicon=>'icon-plus-sign', :text=>I18n.t('modulgruppe.addmodule'), :path=>new_bulk_moduls_path(:modulgruppen_id=>@modulgruppe.id)}
@toolbar_elements << {:hicon=>'icon-plus-sign', :text=>I18n.t('modulgruppe.addmodul'), :path=>new_modul_path(:modulgruppen_id=>@modulgruppe.id)}
@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 => modulgruppe_path(@modulgruppe, :ansicht=>:modulgruppenansicht), :method=> :delete,:confirm=>'Sure?' }
end
end end

View File

@@ -1,21 +1,20 @@
# -*- coding: utf-8 -*-
class ModulsController < ApplicationController class ModulsController < ApplicationController
# GET /moduls # GET /moduls
# GET /moduls.json # GET /moduls.json
before_filter :find_modul, :only=>[:show,:update,:update_lvas,:edit_lvas,:load_tiss,:show_tiss] # @modul laden
before_filter :load_toolbar_show, :only=>[:show] # Toolbar für show erstellen
before_filter :load_toolbar_index, :only=>[:index] # Toolbar für index erstellen
load_and_authorize_resource load_and_authorize_resource
def index def index
@moduls = Modul.all @moduls = Modul.all
if @moduls if @moduls
if !params[:studium_id].nil? if !params[:studium_id].nil?
@studium=Studium.find_by_id(params[:studium_id]) @studium=Studium.find_by_id(params[:studium_id])
end 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}
@topbar_elements<<{:hicon=>'icon-list', :text=>I18n.t("lva.list"),:path=>lvas_path}
respond_to do |format| respond_to do |format|
format.html # index.html.erb format.html # index.html.erb
format.json { render json: @moduls }
end end
end end
@@ -24,27 +23,8 @@ class ModulsController < ApplicationController
# GET /moduls/1 # GET /moduls/1
# GET /moduls/1.json # GET /moduls/1.json
def show 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=>"Lvas bearbeiten", :path=>modul_edit_lvas_path(@modul)}
@toolbar_elements << {:hicon=>'icon-plus-sign', :text=>"ADD FROM TISS", :path=>modul_load_tiss_path(:modul_id =>@modul.id)}
@toolbar_elements << {:hicon=>'icon-pencil', :text=>I18n.t("modul.edit"), :path=>edit_modul_path(@modul)}
@toolbar_elements << {:hicon=>'icon-remove-circle', :text=>I18n.t("common.delete"),:path=>@modul , :method=>:delete , :data=>{:confirm =>'Are you sure'}}
@topbar_elements = [{:hicon=>'icon-list', :text=>I18n.t("modul.list"),:path=>moduls_path}]
@tb=[]
for i in @modul.modulgruppen for i in @modul.modulgruppen
@tb <<{:text=> i.long_name, :path=>modulgruppe_path(i)}
if !i.studium.nil?
name =i.studium.name
id = i.studium.id
else
s.name = 'Kein Studium vorhanden'
s.id = nil
end
@tb <<{:text=> i.name + ' ('+i.studium.name + ')', :path=>modulgruppe_path(i)}
end end
respond_to do |format| respond_to do |format|
format.html # show.html.erb format.html # show.html.erb
@@ -52,6 +32,7 @@ class ModulsController < ApplicationController
end end
end end
# GET /moduls/new # GET /moduls/new
# GET /moduls/new.json # GET /moduls/new.json
def new def new
@@ -62,70 +43,15 @@ class ModulsController < ApplicationController
end end
respond_to do |format| respond_to do |format|
format.html # new.html.erb format.html # new.html.erb
format.json { render json: @modul }
end end
end end
def edit_lvas
@modul = Modul.find(params[:modul_id])
@lvas = @modul.lvas
@semester = @modul.modulgruppen.flatten.map(&:studium).map(&:semester).flatten.uniq
def new_bulk
@moduls= []
@modulgruppe=Modulgruppe.find(params[:modulgruppen_id])
10.times {@moduls << Modul.new(:modulgruppen=>[@modulgruppe])}
end end
def update_lvas
params[:modul_id]=params[:id] if params[:modul_id].empty?
@modul = Modul.find(params[:modul_id])
@semester = @modul.modulgruppen.flatten.map(&:studium).map(&:semester).flatten.uniq
@newlvas=[]
@lvas=[]
params["lvas"].each do |i,l|
#lva= Lva.find(l[:id].to_i)
lva=Lva.where(:lvanr=>l["lvanr"]).first if lva.nil?
lva=Lva.new(l) if lva.nil?
lva.modul<<@modul
lva.modul.uniq!
lva.name=l["name"]
lva.lvanr=l["lvanr"]
lva.ects=l["ects"]
lva.desc=l["desc"]
lva.semester=Semester.where(:id=>l["semester_ids"].map(&:to_i))
lva.stunden=l["stunden"]
lva.pruefungsinformation=l["pruefungsinformation"]
lva.lernaufwand=l["lernaufwand"]
lva.typ=l["typ"]
lva.save
@newlvas<<lva
end
@lvas=@newlvas
if @newlvas.map(&:valid?).all?
redirect_to modul_path(@modul)
else
render "edit_lvas"
end
# end
end
def load_tiss
@modul = Modul.find(params[:modul_id])
@lvas = @modul.lvas
end
def show_tiss
@lvas=[];
@modul = Modul.find(params[:modul_id])
@semester = @modul.modulgruppen.flatten.map(&:studium).map(&:semester).flatten.uniq
params["lvas"].to_a.each do |l|
unless l.last["lvanr"].empty?
l=l.last
lva=Lva.new
lva.lvanr=l["lvanr"]
lva.load_tissdata("-"+ l["sem"])
lva.modul<<@modul
@lvas<<lva
end
end
render 'edit_lvas'
end
# GET /moduls/1/edit
def edit def edit
@modul = Modul.find(params[:id]) @modul = Modul.find(params[:id])
if !params[:studium_id].nil? if !params[:studium_id].nil?
@@ -133,31 +59,26 @@ class ModulsController < ApplicationController
end end
end end
# POST /moduls def edit_bulk
# POST /moduls.json unless params[:modulgruppen_id].nil?
def create @moduls=Modulgruppe.find(params[:modulgruppen_id]).moduls
@modul = Modul.new(params[:modul])
respond_to do |format|
if @modul.save
for i in @modul.lvas
i.add_semesters
end
format.html { redirect_to modulgruppe_path(@modul.modulgruppen.first), notice: 'Modul was successfully created.' }
format.json { render json: @modul, status: :created, location: @modul }
else else
format.html { render action: "new" } unless params[:studium_id].nil?
format.json { render json: @modul.errors, status: :unprocessable_entity } @moduls=Studium.find(params[:studium_id]).modulgruppen.collect(&:moduls).flatten
end else
@moduls=Modul.all
end
end end
end end
# PUT /moduls/1 def edit_lvas
# PUT /moduls/1.json @lvas = @modul.lvas
@semester = @modul.modulgruppen.flatten.map(&:studium).map(&:semester).flatten.uniq
end
def update def update
@modul = Modul.find(params[:id])
respond_to do |format| respond_to do |format|
if @modul.update_attributes(params[:modul]) if @modul.update_attributes(params[:modul])
@@ -165,27 +86,113 @@ class ModulsController < ApplicationController
i.add_semesters i.add_semesters
end end
format.html { redirect_to url_for(@modul), notice: 'Modul was successfully updated.' } format.html { redirect_to url_for(@modul), notice: 'Modul was successfully updated.' }
format.json { head :no_content }
else else
format.html { render action: "edit" } format.html { render action: "edit" }
format.json { render json: @modul.errors, status: :unprocessable_entity }
end end
end end
end end
def update_bulk
@moduls=Modul.update_multiple(params[:moduls])
if @moduls.map(&:valid?).all?
redirect_to @moduls.first.modulgruppen.first, :notice=>"Erfolgreich Module geändert"
else
render :edit_bulk
end
end
def update_lvas
@semester = @modul.modulgruppen.flatten.map(&:studium).map(&:semester).flatten.uniq
@newlvas=Lva.update_multiple_with_modul(params["lvas"],@modul)
@lvas=@newlvas
if @newlvas.map(&:valid?).all?
redirect_to modul_path(@modul)
else
render "edit_lvas"
end
end
def load_tiss
@lvas = @modul.lvas
end
def show_tiss
@lvas=[];
@semester = @modul.modulgruppen.flatten.map(&:studium).map(&:semester).flatten.uniq
params["lvas"].to_a.each do |l|
unless l.last["lvanr"].empty?
l=l.last
lva=Lva.new
lva.lvanr=l["lvanr"]
lva.load_tissdata("-"+ l["sem"])
lva.modul<<@modul
@lvas<<lva #
end
end
render 'edit_lvas'
end
# GET /moduls/1/edit
# POST /moduls
# POST /moduls.json
def create
@modul = Modul.new(params[:modul])
respond_to do |format|
if @modul.save
for i in @modul.lvas
i.add_semesters
end
format.html { redirect_to modulgruppe_path(@modul.modulgruppen.first), notice: 'Modul was successfully created.' }
else
format.html { render action: "new" }
end
end
end
# PUT /moduls/1
# PUT /moduls/1.json
# DELETE /moduls/1 # DELETE /moduls/1
# DELETE /moduls/1.json # DELETE /moduls/1.json
def destroy def destroy
@modul = Modul.find(params[:id]) @modul = Modul.find(params[:id])
modulgruppe=@modul.modulgruppen.first modulgruppe=@modul.modulgruppen.first
for i in @modul.lvas for i in @modul.lvas
i.add_semesters i.add_semesters
end end
@modul.destroy @modul.destroy
redirect_to modulgruppe_path(modulgruppe) redirect_to modulgruppe_path(modulgruppe)
end
private
def find_modul
@modul = Modul.find(params[:id])
end
def load_toolbar_show
@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=>"Lvas bearbeiten", :path=>edit_lvas_modul_path(@modul)}
@toolbar_elements << {:hicon=>'icon-plus-sign', :text=>"ADD FROM TISS", :path=>load_tiss_modul_path(:modul_id =>@modul.id)}
@toolbar_elements << {:hicon=>'icon-pencil', :text=>I18n.t("modul.edit"), :path=>edit_modul_path(@modul)}
@toolbar_elements << {:hicon=>'icon-remove-circle', :text=>I18n.t("common.delete"),:path=>@modul , :method=>:delete , :data=>{:confirm =>'Are you sure'}}
@topbar_elements = [{:hicon=>'icon-list', :text=>I18n.t("modul.list"),:path=>moduls_path}]
@tb=[]
end
def load_toolbar_index
@toolbar_elements = [{:hicon=>'icon-plus-sign', :text=>I18n.t("modul.add"), :path=>new_modul_path}]
@topbar_elements =[{:hicon=>'icon-list', :text=>I18n.t("studien.allestudien"),:path=>studien_path}]
@topbar_elements<<{:hicon=>'icon-list', :text=>I18n.t("modul.list"),:path=>moduls_path}
@topbar_elements<<{:hicon=>'icon-list', :text=>I18n.t("lva.list"),:path=>lvas_path}
end
end end
end

View File

@@ -1,28 +1,20 @@
class NeuigkeitenController < ApplicationController 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 load_and_authorize_resource
def show def show
@neuigkeit = Neuigkeit.find(params[:id]) @neuigkeit = Neuigkeit.find(params[:id])
@rubrik=@neuigkeit.rubrik @rubrik=@neuigkeit.rubrik
if !params[:version].nil? 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.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 end
@calentries1=@neuigkeit.calentries @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 end
def new def new
@@ -69,11 +61,29 @@ class NeuigkeitenController < ApplicationController
def edit def edit
@neuigkeit = Neuigkeit.find(params[:id]) @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= @neuigkeit.calentries
@calentries<< Calentry.new @calentries<< Calentry.new
end 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 def create
@neuigkeit = Neuigkeit.new(params[:neuigkeit]) @neuigkeit = Neuigkeit.new(params[:neuigkeit])
@@ -111,4 +121,29 @@ class NeuigkeitenController < ApplicationController
end end
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 end

View File

@@ -12,12 +12,11 @@ class RubrikenController < ApplicationController
@moderatoren=User.with_role(:newsmoderator,@rubrik) @moderatoren=User.with_role(:newsmoderator,@rubrik)
if can?(:showunpublished, Neuigkeit) if can?(:showunpublished, Neuigkeit)
@neuigkeiten = @rubrik.neuigkeiten @neuigkeiten = @rubrik.neuigkeiten
else else
@neuigkeiten = @rubrik.neuigkeiten.published @neuigkeiten = @rubrik.neuigkeiten.published
end 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('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
@toolbar_elements << {:text=>I18n.t('common.verwalten'),:path=>verwalten_rubrik_path(@rubrik),:icon=>:pencil} if can? :verwalten, @rubrik

View File

@@ -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) }, @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_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)}, @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}] {:hicon=>'icon-list', :text => I18n.t('modulgruppe.list'), :path=>modulgruppen_path}]
case params[:ansicht]
if params[:ansicht] != 'modulgruppenansicht' when 'semesteransicht'
@text = 'Zu Modulansicht wechseln' when 'infoansicht'
@flip = 'modulgruppenansicht' when 'qualifikationsprofil'
render 'semesteransicht'
else else
@text = 'Zu Semesteransicht wechseln' params[:ansicht]="modulgruppenansicht"
@flip = 'semesteransicht'
end end
end end
@@ -242,14 +240,14 @@ class StudienController < ApplicationController
end end
def default_url_options def default_url_options
{:ansicht=> params[:ansicht],
super.merge({:ansicht=> params[:ansicht],
:std_verw=> params[:std_verw], :std_verw=> params[:std_verw],
:mg_verw=> params[:mg_verw], :mg_verw=> params[:mg_verw],
:m_verw=>params[:m_verw], :m_verw=>params[:m_verw],
:lva_verw=>params[:lva_verw], :lva_verw=>params[:lva_verw],
:b_verw=>params[:b_verw], :b_verw=>params[:b_verw],
:lec_verw=>params[:lec_verw]}.merge(super) :lec_verw=>params[:lec_verw]})
end end
end end

View File

@@ -16,16 +16,27 @@ class ThemenController < ApplicationController
# GET /themen/1.json # GET /themen/1.json
def show def show
@thema = Thema.find(params[:id]) @thema = Thema.find(params[:id])
redirect_to :controller=>'themengruppen', :id=>@thema.themengruppe.id, :action=>:show, :anchor=> "thema_"+params[:id].to_s
@fragen=@thema.fragen @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 = [{: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')} @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| # respond_to do |format|
format.html # show.html.erb # format.html # show.html.erb
format.json { render json: @thema } # format.json { render json: @thema }
end # end
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
# GET /themen/new.json # GET /themen/new.json
def new def new
@@ -52,18 +63,21 @@ class ThemenController < ApplicationController
def create def create
@thema = Thema.new(params[:thema]) @thema = Thema.new(params[:thema])
@themen = @thema.themengruppe.themen.order(:priority).reverse
respond_to do |format| respond_to do |format|
if @thema.save if @thema.save
format.html { redirect_to @thema, notice: 'Thema was successfully created.' } format.html { redirect_to @thema, notice: 'Thema was successfully created.' }
format.json { render json: @thema, status: :created, location: @thema } format.json { render json: @thema, status: :created, location: @thema }
format.js {render action: "update"}
else else
format.html { render action: "new" } format.html { render action: "new" }
format.json { render json: @thema.errors, status: :unprocessable_entity } format.json { render json: @thema.errors, status: :unprocessable_entity }
format.js { render action: "edit" }
end end
end end
end end
def fragen def fragen
@thema = Thema.find(params[:thema_id]) @thema = Thema.find(params[:id])
@fragen=@thema.fragen @fragen=@thema.fragen
respond_to do |format| respond_to do |format|
format.js format.js
@@ -73,7 +87,7 @@ class ThemenController < ApplicationController
# PUT /themen/1.json # PUT /themen/1.json
def update def update
@thema = Thema.find(params[:id]) @thema = Thema.find(params[:id])
@themen = @thema.themengruppe.themen.order(:priority).reverse
respond_to do |format| respond_to do |format|
if @thema.update_attributes(params[:thema]) if @thema.update_attributes(params[:thema])
format.html { redirect_to @thema, notice: 'Thema was successfully updated.' } format.html { redirect_to @thema, notice: 'Thema was successfully updated.' }

View File

@@ -12,6 +12,10 @@ class ThemengruppenController < ApplicationController
format.json { render json: @themengruppen } format.json { render json: @themengruppen }
end end
end end
def faqs
@themengruppen = Themengruppe.order("themengruppen.priority").includes(:themen,{themen: :fragen}).order("themen.priority").reverse
end
# GET /themengruppen/1 # GET /themengruppen/1
# GET /themengruppen/1.json # GET /themengruppen/1.json
@@ -22,10 +26,9 @@ class ThemengruppenController < ApplicationController
@toolbar_elements = [] @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=>: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.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 << {: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 @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| respond_to do |format|
format.html # show.html.erb format.html # show.html.erb
format.json { render json: @themengruppe } format.json { render json: @themengruppe }

View File

@@ -1,9 +1,11 @@
module ApplicationHelper module ApplicationHelper
def current_url(overwrite={}) def current_url1(overwrite={})
url_for :params => params.merge(overwrite).except(:controller,:action) url_for :params => params.merge(overwrite).except(:controller,:action,:ansicht)
end end
def switch_locale_url(target_locale) 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 end
def toolbar_html(elemente) def toolbar_html(elemente)

View File

@@ -36,7 +36,9 @@ class Ability
can [:show, :index], Modul can [:show, :index], Modul
can [:show, :index], Lva can [:show, :index], Lva
can [:show,:index], Gallery can [:show,:index], Gallery
can [:show, :index], Themengruppe can [:show, :index,:faqs], Themengruppe
can [:show], Thema
can [:create], Beispiel
can [:show, :index], Fetprofile can [:show, :index], Fetprofile
can [:show, :index],Gremium can [:show, :index],Gremium
# Rechteverwaltung fuer Studien Modul # Rechteverwaltung fuer Studien Modul

View File

@@ -21,6 +21,7 @@ class Calentry < ActiveRecord::Base
validates :typ, :presence => true validates :typ, :presence => true
before_save :get_public before_save :get_public
belongs_to :object, polymorphic: true # Objekt zu dem der Calentry gehört (derzeit ein Newsartikel) belongs_to :object, polymorphic: true # Objekt zu dem der Calentry gehört (derzeit ein Newsartikel)
scope :upcoming, ->{ where("start >= ?", Time.now).order(:start)} scope :upcoming, ->{ where("start >= ?", Time.now).order(:start)}
scope :recent,-> { where("start <= ?", Time.now).order(:start).reverse_order} scope :recent,-> { where("start <= ?", Time.now).order(:start).reverse_order}
validate do |entry| validate do |entry|

View File

@@ -27,7 +27,11 @@ validates :desc, :presence=>true
scope :search, ->(query) {where("nachname like ? or vorname like ? or short like ?", "%#{query}%", "%#{query}%", "%#{query}%")} scope :search, ->(query) {where("nachname like ? or vorname like ? or short like ?", "%#{query}%", "%#{query}%", "%#{query}%")}
accepts_nested_attributes_for :memberships, :reject_if=>lambda{|a| a[:typ].blank?|| a[:start].blank? ||a[:gremium_id].blank?}, :allow_destroy=>true accepts_nested_attributes_for :memberships, :reject_if=>lambda{|a| a[:typ].blank?|| a[:start].blank? ||a[:gremium_id].blank?}, :allow_destroy=>true
has_many :nlinks, as: :link
def title
self.name
end
def name def name
[vorname, nachname, ((short.empty?)? "": ["(",short,")"].join)].join(" ") [vorname, nachname, ((short.empty?)? "": ["(",short,")"].join)].join(" ")
end end

View File

@@ -14,4 +14,11 @@ class Gallery < ActiveRecord::Base
WORD_COUNT = 20 WORD_COUNT = 20
attr_accessible :datum, :desc, :name attr_accessible :datum, :desc, :name
has_many :fotos 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 end

View File

@@ -12,21 +12,28 @@
# #
class Gremium < ActiveRecord::Base 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 TYPEN={1=>"offiziell", 2=>"offiziell-temporär", 3 => "inoffiziell",4=>"inoffiziell-tempo", 11=> "berufungskommission",11=> "habilitationskommission" } # Kategorien, im Wesentlichen wichtig für Listung oder nicht Listung
GESCHLECHT={0=>"saechlich", 1 => "maennlich", 2 => "weiblich"} # Geschlecht des Gremiums zur richtige Deklination 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")} FILTER={11=>I18n.t("gremium.filter.berufung.title")}
TEXT={11=>I18n.t("gremium.filter.berufung.text")} TEXT={11=>I18n.t("gremium.filter.berufung.text"),12=>"Habils"}
attr_accessible :desc, :name, :typ, :geschlecht,:thema_id, :memberships_attributes attr_accessible :desc, :name, :typ, :geschlecht,:thema_id, :memberships_attributes
has_many :memberships # Mitgliedschaften bei dem Gremium has_many :memberships # Mitgliedschaften bei dem Gremium
belongs_to :thema # Gehört zu einem Thema 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 scope :tabs, -> { where(:typ => [1,3]).order(:typ).order(:name) } # Gremien die in Tabs angezeigt werden (Alle Anderen nur in der Liste
scope :search, ->(query) {where("name like ? or desc like ?", "%#{query}%", "%#{query}%")}
# Gremium im 2. Fall für die Konstruktion "Mitglied des ... / der ... " # 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?} accepts_nested_attributes_for :memberships, :reject_if=>lambda{|a| a[:typ].blank?|| a[:start].blank? ||a[:fetprofile_id].blank?}
def fall2 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":"") Gremium::ART2FALL[self.geschlecht.to_i].to_s+" "+ self.name.to_s+ ((self.geschlecht.to_i==1||self.geschlecht.to_i==0)? "s":"")
end 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 end

View File

@@ -16,4 +16,16 @@ class Lecturer < ActiveRecord::Base
has_and_belongs_to_many :lvas has_and_belongs_to_many :lvas
mount_uploader :picture, PictureUploader mount_uploader :picture, PictureUploader
resourcify 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 end

View File

@@ -36,14 +36,15 @@
class Lva < ActiveRecord::Base class Lva < ActiveRecord::Base
ERLAUBTE_TYPEN = ['VO', 'UE', 'VU', 'LU', 'SE', 'andere']; 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 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 :modul,:uniq=>true # Gehört zu einem Modul
has_and_belongs_to_many :semester has_and_belongs_to_many :semester
#Gehört zu einem Semester( derzeit nicht implementiert) #Gehört zu einem Semester( derzeit nicht implementiert)
has_many :beispiele , :class_name => "Beispiel" has_many :beispiele , :class_name => "Beispiel"
has_and_belongs_to_many :lecturers 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 :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? validates_presence_of :ects # ECTS vorhanden?
@@ -52,6 +53,11 @@ class Lva < ActiveRecord::Base
validates_presence_of :stunden # Stunden Eingetragen? validates_presence_of :stunden # Stunden Eingetragen?
validates_presence_of :modul # Zugehöriges Modul eingetragen? validates_presence_of :modul # Zugehöriges Modul eingetragen?
# (zumindest eines) # (zumindest eines)
has_many :nlinks, as: :link
def title
self.name
end
def full_name def full_name
return self.typ + ' ' + self.name return self.typ + ' ' + self.name
end end
@@ -69,13 +75,37 @@ class Lva < ActiveRecord::Base
end end
## ##
# Lade Daten aus TISS und füge diese in die Datenbank ein. # Lade Daten aus TISS und füge diese in die Datenbank ein.
def load_tissdata(semester) def tisshash(semester)
url= "https://tiss.tuwien.ac.at/api/course/"+ lvanr.to_s.gsub(".","")+semester url= "https://tiss.tuwien.ac.at/api/course/"+ lvanr.to_s.gsub(".","")+semester
# begin
hash=Hash.from_xml(open(url).read)["tuvienna"] hash=Hash.from_xml(open(url).read)["tuvienna"]
end
def load_tissdata(semester)
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=[] # person=[]
# if hash["course"]["lecturers"]["oid"].is_a? String # if hash["course"]["lecturers"]["oid"].is_a? String
# person = @hash["course"]["lecturers"]["oid"] # person = @hash["course"]["lecturers"]["oid"]
@@ -84,15 +114,108 @@ 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"] # 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 # end
# rescue OpenURI::HTTPError => e self.name=hash["course"]["title"]["de"]
# end self.pruefungsinformation = hash["course"]["examinationModalities"][I18n.locale.to_s].to_s
self.name=hash["course"]["title"][I18n.locale.to_s] self.desc= hash["course"]["objective"][I18n.locale.to_s]+"<p></p>"+hash["course"]["teachingContent"][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.typ=hash["course"]["courseType"] self.typ=hash["course"]["courseType"]
self.stunden=hash["course"]["weeklyHours"] self.stunden=hash["course"]["weeklyHours"]
#hash["course"]["url"]
if hash["course"]["lecturers"]["oid"].is_a? Array
hash["course"]["lecturers"]["oid"].each do |oid|
lecturer= self.lecturers.where(:oid=>oid).first
if lecturer.nil?
lecturer=Lecturer.where(:oid=>oid).first
if lecturer.nil?
logger.debug "Neuen Lecturer laden"
lecturer=Lecturer.new
lecturer.oid=oid
lecturer.load_tissdata
if lecturer.save
self.lecturers << lecturer
else
logger.fatal "Invaliden Lecturer erzeugt"
end
else
logger.debug "Lecturer hinzufügen"
self.lecturers << lecturer
end
end
end
else
oid= hash["course"]["lecturers"]["oid"]
lecturer= self.lecturers.where(:oid=>oid).first
if lecturer.nil?
lecturer=Lecturer.where(:oid=>oid).first
if lecturer.nil?
logger.info "Neuen Lecturer laden"
lecturer=Lecturer.new
lecturer.oid=oid
lecturer.load_tissdata
if lecturer.save
self.lecturers << lecturer
else
logger.fatal "Invaliden Lecturer erzeugt"
end
else
logger.info "Lecturer hinzufügen"
lecturer.load_tissdata
lecturer.save
self.lecturers << lecturer
end
end end
end
end
def update_multiple(hash)
newlvas=[]
params["lvas"].each do |i,l|
lva=Lva.where(:lvanr=>l["lvanr"]).first if lva.nil?
lva=Lva.new(l) if lva.nil?
lva.name=l["name"]
lva.lvanr=l["lvanr"]
lva.ects=l["ects"]
descr = l["desc"]
lva.desc= (descr.empty?) ? "<div></div>" : descr
lva.semester=Semester.where(:id=>l["semester_ids"].map(&:to_i))
lva.stunden=l["stunden"]
pr =l["pruefungsinformation"]
lva.pruefungsinformation= (pr.empty?) ? "<div></div>" : pr
lva.lernaufwand=l["lernaufwand"]
lva.typ=l["typ"]
lva.save
newlvas<<lva #
end
newlvas
end
def self.update_multiple_with_modul(hash,modul)
newlvas=[]
hash.each do |i,l|
lva=Lva.where(:lvanr=>l["lvanr"]).first if lva.nil?
lva=Lva.new(l) if lva.nil?
lva.modul<<modul
lva.modul.uniq!
lva.name=l["name"]
lva.lvanr=l["lvanr"]
lva.ects=l["ects"]
descr = l["desc"]
lva.desc= (descr.empty?) ? "<div></div>" : descr
lva.semester=Semester.where(:id=>l["semester_ids"].map(&:to_i))
lva.stunden=l["stunden"]
pr =l["pruefungsinformation"]
lva.pruefungsinformation= (pr.empty?) ? "<div></div>" : pr
lva.lernaufwand=l["lernaufwand"]
lva.typ=l["typ"]
lva.save
newlvas<<lva #
end
newlvas
end
end end

View File

@@ -12,7 +12,7 @@
# #
class Modul < ActiveRecord::Base class Modul < ActiveRecord::Base
attr_accessible :desc,:name, :depend, :studium_id, :modulgruppe_ids attr_accessible :desc,:name, :depend, :studium_id, :modulgruppen
has_and_belongs_to_many :lvas , :uniq=>true has_and_belongs_to_many :lvas , :uniq=>true
has_and_belongs_to_many :modulgruppen has_and_belongs_to_many :modulgruppen
@@ -21,5 +21,36 @@ class Modul < ActiveRecord::Base
validates :modulgruppen, :presence=>true # Ein Modul muss zu einer Modulgruppe gehören validates :modulgruppen, :presence=>true # Ein Modul muss zu einer Modulgruppe gehören
validates :name, :presence=>true # Ein Modul muss einen Namen haben validates :name, :presence=>true # Ein Modul muss einen Namen haben
translates :desc,:depend,:name, :versioning =>true, :fallbacks_for_empty_translations => true translates :desc,:depend,:name, :versioning =>true, :fallbacks_for_empty_translations => true
def self.update_multiple(hash)
m= []
if hash.is_a? Hash
hash.each do |i,h|
if i.to_i == 0
unless h["name"].empty?
md=Modul.new(:name=>h["name"],:desc=>h["desc"],:depend=>h["depend"])
md.modulgruppen=Modulgruppe.where(:id => h["modulgruppe_ids"].map(&:to_i))
md.save
m << md
end
else
md=Modul.find(h["id"].to_i)
md.name=h["name"]
md.desc=h["desc"]
md.depend=h["depend"]
md.modulgruppen=Modulgruppe.where(:id => h["modulgruppe_ids"].map(&:to_i))
m << md
end
end
else
hash.each do |h|
unless h["name"].empty?
md=Modul.new(:name=>h["name"],:desc=>h["desc"],:depend=>h["depend"])
md.modulgruppen=Modulgruppe.where(:id => h["modulgruppe_ids"].map(&:to_i))
md.save
m << md
end
end
end
m
end
end end

View File

@@ -16,13 +16,20 @@ class Modulgruppe < ActiveRecord::Base
attr_accessible :name, :phase, :typ,:desc, :studium_id, :modul_ids attr_accessible :name, :phase, :typ,:desc, :studium_id, :modul_ids
belongs_to :studium, :foreign_key => "studium_id" belongs_to :studium, :foreign_key => "studium_id"
has_and_belongs_to_many :moduls has_and_belongs_to_many :moduls
has_many :lvas, :through=>:moduls
resourcify resourcify
validates :studium_id, :presence => true # Bei der Abfrage ist student_id entscheidend 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 :studium, :presence => true # Wird gesetzt, um das richtige Feld zu melden bei Fehlern
validates :name, :uniqueness =>{:scope => :studium_id}, :presence=>true # Pro Studium darf ein Name nur einmal vorkommen 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 :phase, :inclusion => {:in => [1, 2, 3, 4]}
validates :typ, :inclusion => {:in => ["Pflicht","Vertiefungspflicht","Wahl"] } validates :typ, :inclusion => {:in => ["Pflicht","Vertiefungspflicht","Wahl"] }
translates :desc, :versioning =>true,:fallbacks_for_empty_translations => true translates :desc, :versioning =>true,:fallbacks_for_empty_translations => true
def long_name
name + "(" + self.studium_name + ")"
end
def studium_name
self.studium.nil? ? "Kein Studium vorhanden" : self.studium.name
end
end end

View File

@@ -24,12 +24,15 @@ class Neuigkeit < ActiveRecord::Base
has_many :calentries, as: :object has_many :calentries, as: :object
mount_uploader :picture, PictureUploader mount_uploader :picture, PictureUploader
scope :published, -> {where("datum <= ? AND datum IS NOT NULL", Time.now.to_date).order(:datum).reverse_order} scope :published, -> {where("datum <= ? AND datum IS NOT NULL", Time.now.to_date).order(:datum).reverse_order}
scope :recent, -> { published.order(:datum).reverse_order.limit(15)} scope :recent, -> { published.limit(15)}
scope :unpublished, -> {where("datum >= ? OR datum IS NULL", Date.today)} scope :unpublished, -> {where("datum >= ? OR datum IS NULL", Date.today)}
scope :public, ->{includes(:rubrik).where("rubriken.public"=>:true)} scope :public, ->{includes(:rubrik).where("rubriken.public"=>:true)}
scope :search, ->(query) {where("text like ? or title like ?", "%#{query}%", "%#{query}%")} scope :search, ->(query) {where("text like ? or title like ?", "%#{query}%", "%#{query}%")}
LINKTYPES=["Thema", "Gallery", "Lva","Studium","Fetprofile"]
accepts_nested_attributes_for :calentries, :allow_destroy=>true , :reject_if=> lambda{|a| a[:start].blank?} accepts_nested_attributes_for :calentries, :allow_destroy=>true , :reject_if=> lambda{|a| a[:start].blank?}
before_validation :sanitize before_validation :sanitize
has_many :nlinks
def datum_nilsave def datum_nilsave
self.datum.nil? ? Time.now + 42.years : self.datum self.datum.nil? ? Time.now + 42.years : self.datum
end end
@@ -50,7 +53,7 @@ class Neuigkeit < ActiveRecord::Base
self.title self.title
end end
def text_first_words def text_first_words
md = /<p>(?<text>[\w\s,\.!\?]*)/.match self.text md = /<p>(?<text>[^\<\>]*)/.match Sanitize.clean(self.text,:elements=>['p'])
words=md[:text].split(" ") unless md.nil? words=md[:text].split(" ") unless md.nil?
if words.nil? || words.empty? if words.nil? || words.empty?
"...." "...."

10
app/models/nlink.rb Normal file
View File

@@ -0,0 +1,10 @@
class Nlink < ActiveRecord::Base
attr_accessible :link_id, :link_type, :neuigkeit_id, :neuigkeit,:link, :sort, :title
belongs_to :neuigkeit
belongs_to :link, :polymorphic=>true
validates :neuigkeit, :presence=>true
validates :link, :presence=>true
validates :link_id, :uniqueness=>{:scope=>[:neuigkeit_id]}
end

View File

@@ -22,7 +22,7 @@ class Semester < ActiveRecord::Base
if self.nummer == 0 if self.nummer == 0
return I18n.t("ohnezuordnung") + " (" + self.studium.name + ")" return I18n.t("ohnezuordnung") + " (" + self.studium.name + ")"
else else
return self.nummer.to_s + ". " + self.studium.name return self.nummer.to_s + "."+I18n.t("semester.semester")+", " + self.studium.name
end end
end end
def name_kurz def name_kurz

View File

@@ -27,19 +27,26 @@
# created_at :datetime not null # created_at :datetime not null
# updated_at :datetime not null # updated_at :datetime not null
class Studium < ActiveRecord::Base class Studium < ActiveRecord::Base
attr_accessible :desc, :name,:abkuerzung, :typ, :zahl, :semester, :picture, :picture_cache attr_accessible :desc, :name,:abkuerzung, :typ, :zahl, :semester, :picture, :picture_cache, :qualifikation,:struktur, :jobmoeglichkeiten
has_many :modulgruppen, inverse_of: :studium, :class_name => "Modulgruppe", :dependent => :destroy 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 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 :typ, :inclusion => {:in => ["Bachelor","Master"] }
validates :name, :uniqueness => true, :presence=>true validates :name, :uniqueness => true, :presence=>true
validates :zahl, :presence=>true, :format=>{:with=>/^[0-9A-Z]{4,10}$/}, :uniqueness => true validates :zahl, :presence=>true, :format=>{:with=>/^[0-9A-Z]{4,10}$/}, :uniqueness => true
mount_uploader :picture, PictureUploader mount_uploader :picture, PictureUploader
translates :desc,:shortdesc, :versioning =>true,:fallbacks_for_empty_translations => true translates :desc,:shortdesc, :qualifikation,:struktur, :jobmoeglichkeiten, :versioning =>true,:fallbacks_for_empty_translations => true
def title_context def title_context
return self.abkuerzung.to_s.strip.empty? ? self.name : self.abkuerzung return self.abkuerzung.to_s.strip.empty? ? self.name : self.abkuerzung
end end
has_many :nlinks, as: :link
def title
self.name
end
def batch_add_semester def batch_add_semester
# Semester automatisch zu Studien hinzufügen # Semester automatisch zu Studien hinzufügen
if self.typ == "Bachelor" if self.typ == "Bachelor"
@@ -65,7 +72,11 @@ class Studium < ActiveRecord::Base
def desc_first_words def desc_first_words
md = /<p>(?<text>[\w\s,\.!\?]*)/.match self.desc md = /<p>(?<text>[\w\s,\.!\?]*)/.match self.desc
md[:text].split(" ")[0..100].join(" ")+ " ..." unless md.nil? unless md.nil?
md[:text].split(" ")[0..100].join(" ")+ " ..."
else
""
end
end end
end end

View File

@@ -16,9 +16,22 @@ class Thema < ActiveRecord::Base
has_many :attachments has_many :attachments
belongs_to :themengruppe, :foreign_key => "themengruppe_id" belongs_to :themengruppe, :foreign_key => "themengruppe_id"
has_one :gremium has_one :gremium
has_many :nlinks, as: :link
validates :themengruppe, :presence => true validates :themengruppe, :presence => true
validates :title, :presence => true validates :title, :presence => true
validates :text, :presence => true
scope :search, ->(query) {where("text like ? or title like ?", "%#{query}%", "%#{query}%")} scope :search, ->(query) {where("text like ? or title like ?", "%#{query}%", "%#{query}%")}
translates :title,:text, :versioning =>true, :fallbacks_for_empty_translations => true translates :title,:text, :versioning =>true, :fallbacks_for_empty_translations => true
def text_first_words
md = /<p>(?<text>[^\<\>]*)/.match Sanitize.clean(self.text,:elements=>['p'])
words=md[:text].split(" ") unless md.nil?
if words.nil? || words.empty?
"...."
else
words[0..100].join(" ")+ " ..." unless words.nil?
end
end
end end

View File

@@ -10,12 +10,14 @@
class Themengruppe < ActiveRecord::Base class Themengruppe < ActiveRecord::Base
WORD_COUNT = 50 WORD_COUNT = 50
attr_accessible :text, :title, :picture,:priority attr_accessible :text, :title, :picture, :priority
has_many :themen, class_name: 'Thema' has_many :themen, class_name: 'Thema'
has_many :fragen, through: :themen has_many :fragen, through: :themen
mount_uploader :picture, PictureUploader mount_uploader :picture, PictureUploader
validates :title, :presence => true validates :title, :presence => true
validates :text, :presence => true
translates :title,:text, :versioning =>true, :fallbacks_for_empty_translations => true translates :title,:text, :versioning =>true, :fallbacks_for_empty_translations => true
end end

View File

@@ -1,18 +0,0 @@
<p id="notice"><%= notice %></p>
<p>
<b>Name:</b>
<%= @beispiel.name %>
</p>
<p>
<b>Desc:</b>
<%= @beispiel.desc %>
<%= @beispiel.beispieldatei.url %>
</p>
<p>
<%= @beispiel.lva.name %>
</p>
<%= link_to 'Edit', edit_beispiel_path(@beispiel) %> |
<%= link_to 'Back', beispiele_path %>

View File

@@ -1,5 +1,7 @@
<div class="contentbox"> <div class="contentbox">
<%= image_tag("/iconnavy/time.png") %> <% image_tag("/iconnavy/time.png") %>
<%= fa_icon("calendar 2x") %>
<% if calentry.start.to_date == calentry.ende.to_date <% if calentry.start.to_date == calentry.ende.to_date
format=:timeonly format=:timeonly
else else

View File

@@ -1,6 +1,7 @@
<div class="row-fluid"> <div class="row-fluid">
<div class="span1"></div><div class="span1"> <div class="span1"></div><div class="span1">
<%= image_tag("/icon_kalender_small.png") %> <%= fa_icon("calendar 2x") %>
</div> </div>
<div class="span4"> <div class="span4">
<%= f.input :start, :as => :datepicker %></div><div class="span4"> <%= f.input :start, :as => :datepicker %></div><div class="span4">

View File

@@ -0,0 +1 @@
<h2><%= nlink.title %></h2>

View File

@@ -41,7 +41,7 @@
<div class="row-fluid"> <div class="row-fluid">
<div class="span12"> <div class="span12">
<%= link_to I18n.t('fetprofiles.new'), new_fetprofile_path %> <%= link_to I18n.t('profile.new_profile'), new_fetprofile_path %>
</div> </div>
</div></div> </div></div>
</div> </div>

View File

@@ -0,0 +1,21 @@
<div class="media gallery-block">
<div class="pull-left" href="#">
<%= if(nlink.fotos.empty?)
image_tag "no_image_128.png", {:class => "img-rounded"}
else
image_tag nlink.fotos.sample.datei.big_thumb.url, {:class => "img-rounded"}
end %>
</div>
<div class="media-body">
<small class="pull-left"><%= nlink.fotos.size.to_s + " " + I18n.t('fotos.bilder')%> </small>
<small class="pull-right"><%=I18n.l(nlink.try(:datum).try(:to_date)) unless nlink.try(:datum).try(:to_date).nil? %></small></br>
<h1><%= nlink.name %></h1>
<p>
<%= if nlink.desc.split.size > Gallery::WORD_COUNT
nlink.desc.split[0..Gallery::WORD_COUNT].join(" ") + " ..."
else
nlink.desc
end%>
</p>
</div>
</div>

View File

@@ -25,6 +25,27 @@
</p> </p>
</div> </div>
</div> </div>
<div class="media gallery-block">
<div class="pull-left" href="#">
<%= if(gallery.fotos.empty?)
image_tag "no_image_128.png", {:class => "img-rounded"}
else
image_tag gallery.fotos.sample.datei.big_thumb.url, {:class => "img-rounded"}
end %>
</div>
<div class="media-body">
<small class="pull-left"><%= gallery.fotos.size.to_s + " " + I18n.t('fotos.bilder')%> </small>
<small class="pull-right"><%=I18n.l(gallery.try(:datum).try(:to_date)) unless gallery.try(:datum).try(:to_date).nil? %></small></br>
<h1><%= gallery.name %></h1>
<p>
<%= if gallery.desc.split.size > Gallery::WORD_COUNT
gallery.desc.split[0..Gallery::WORD_COUNT].join(" ") + " ..."
else
gallery.desc
end%>
</p>
</div>
</div>
<% end %> <!-- end link --> <% end %> <!-- end link -->
</div> <!-- close span6 --> </div> <!-- close span6 -->
<% end %> <!-- end row --> <% end %> <!-- end row -->

View File

@@ -12,7 +12,7 @@
<li> <li>
<%= link_to g do %> <%= link_to g do %>
<h2><%= g.name %></h2> <h2><%= g.name %></h2>
<p><%= g.desc %></p> <p><%= g.desc.html_safe %></p>
<% end %> <% end %>
</li> </li>
<% end %> <% end %>

View File

@@ -11,7 +11,11 @@
<%= @gremium.desc.html_safe %> <%= @gremium.desc.html_safe %>
</p> </p>
<% unless @gremium.thema.nil? %> <% unless @gremium.thema.nil? %>
<p><%= link_to "Mehr zum Gremium lesen ..." ,themengruppe_path(@gremium.thema.themengruppe , {:thema=>@gremium.thema.id})%></p> <p>
<%= link_to thema_path(@gremium.thema) do%>
<%= fa_icon "book 2x border" %> Mehr über <%=@gremium.fall4 %> erfahren
<% end %>
</p>
<% end %> <% end %>
</div> </div>

View File

@@ -39,7 +39,7 @@
<br /> <br />
<%= render 'layouts/pretty_toolbar' %> <%= render 'layouts/pretty_toolbar' %>
<%= link_to 'New Gremium', new_gremium_path %>

View File

@@ -28,10 +28,11 @@
<% end %> <% end %>
<% @themen.each do |thema| %> <% @themen.each do |thema| %>
<ul class="unstyled linkbox-list" style="max-width:70em"> <ul class="unstyled content-list" style="max-width:70em">
<li><%= link_to thema, {:class=>"linkbox"} do %> <li><%= link_to thema.title,thema %>
<div class="contentbox">
<%= render :partial=>"themen/small", :object=>thema %> <%= render :partial=>"themen/small", :object=>thema %>
<% end %> </div>
</li> </li>
</ul> </ul>
<% end %> <% end %>

View File

@@ -6,7 +6,7 @@
<% end %> <% end %>
</ul> </ul>
<p> <p>
<%= link_to "FET Login", user_omniauth_authorize_path(:ldap) %> <%= link_to I18n.t('home.login'), user_omniauth_authorize_path(:ldap) %>
</p> </p>
<div class="alert"> <div class="alert">
<h2>Beta Test</h2> <h2>Beta Test</h2>
@@ -22,12 +22,12 @@
</p> </p>
<p><%= link_to "Steuerelemente und Komponenten", "http://getbootstrap.com/2.3.2/index.html" %></p> <p><%= link_to "Steuerelemente und Komponenten", "http://getbootstrap.com/2.3.2/index.html" %></p>
<p>Um bei der Entwicklung mitzuhelfen braucht nur Ruby on Rails installiert werden</p> <p>Um bei der Entwicklung mitzuhelfen braucht nur Ruby on Rails installiert werden</p>
<p><%= link_to "Getting Started" , home_startdev_path%></p> <p><%= link_to "Getting Started" , startdev_home_index_path %></p>
<p> Das Kalender Feature wird überarbeitet, in Zukunft soll folgender Link nicht mehr funktionieren <%= link_to "Kalender", calendars_path %> <p> Das Kalender Feature wird überarbeitet, in Zukunft soll folgender Link nicht mehr funktionieren <%= link_to "Kalender", calendars_path %>
</p> </p>
</div> </div>
<%= link_to "Entwicklungsstatus" , home_dev_path %> <%= link_to "Entwicklungsstatus" , dev_home_index_path %>
<%= render 'beispiele' %> <%= render 'beispiele' %>
Verschiedene Styles Verschiedene Styles

View File

@@ -0,0 +1 @@
<%= I18n.t "home.kontakt" %>

View File

@@ -1,6 +1,6 @@
<div class="content-wrap content-column"> <div class="content-wrap content-column">
<%= semantic_form_for :search,:remote=>true, :url=>search_home_index_path, :html=>{:id=>"search_form", :method=>'get'} do |f| %> <%= semantic_form_for :search,:remote=>true, :url=>search_home_index_path, :html=>{:id=>"search_form",:class=>"navbar-search", :method=>'get'} do |f| %>
<%= f.input :query, :input_html => { :name => 'query' } %> <%= f.input :query, :input_html => { :name => 'query' } , :label=>false, :class=>"search-query" %>
<% end %> <% end %>
<script> <script>
$( document ).ready(function() { $( document ).ready(function() {

View File

@@ -17,13 +17,19 @@ Verwendung: Aufruf mit
Versionen<span class="caret"></span> Versionen<span class="caret"></span>
</a> </a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li> <%= link_to "active", t[:path] %>
</li>
<% t[:versions].each_with_index do |v,i| %> <% t[:versions].each_with_index do |v,i| %>
<li> <li>
<% <% unless t[:path].nil?
uri= URI.parse(t[:path]); uri= URI.parse(t[:path]);
uri.query= URI.encode_www_form(URI.decode_www_form(uri.query)<<["version",i.to_s]) q=[];
%> q= q.merge(URI.decode_www_form(uri.query)) unless uri.query.nil?
<%= link_to v[:created_at],uri.to_s ,:version=>v[:id]%>
uri.query= URI.encode_www_form(q<<["version",i.to_s])
%>
<%= link_to I18n.l(v[:created_at]).to_s,uri.to_s ,:version=>v[:id] %>
<% end %>
</li> </li>
<% end %> <% end %>
</ul> </ul>

View File

@@ -36,21 +36,27 @@
</div> </div>
</div> </div>
</div> </div>
<div class="span1 "></div> <div class="span1 "></div>
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span1"> <div class="span1">
</div> </div>
<div class="span10" id="contentdiv"> <div class="span10" id="contentdiv">
<%= yield %> <%= yield %>
<span class="pull-right"> <%= render 'layouts/login' %></span>
</div> </div>
<div class="span1"> <div class="span1">
</div> </div>
</div> </div>
<div class="row-fluid">
<div class="span1">
</div>
<div class="span10" id="contentdiv">
<span class="pull-right"> <%= render 'layouts/login' %></span> Version 0.0.3a
</div>
<div class="span1">
</div>
</div>
</div> </div>
</body> </body>

View File

@@ -17,7 +17,8 @@
<li><%= link_to I18n.t('mitarbeiter',:scope=>'home' ),fetprofiles_path %></li> <li><%= link_to I18n.t('mitarbeiter',:scope=>'home' ),fetprofiles_path %></li>
<li><%= link_to I18n.t('fotos',:scope=>'home' ),galleries_path %></li> <li><%= link_to I18n.t('fotos',:scope=>'home' ),galleries_path %></li>
<li><%= link_to I18n.t(:studien,:scope=>'home' ), studien_path %></li> <li><%= link_to I18n.t(:studien,:scope=>'home' ), studien_path %></li>
<li> <%= link_to I18n.t("home.search"), search_home_index_path %></li> <li> <%= link_to I18n.t("home.search"), search_home_index_path %></li>
<li> <%= link_to I18n.t("home.kontakt"), kontakt_home_index_path %></li>
<li> <li>
<%= link_to 'Admin' , config_path%> <%= link_to 'Admin' , config_path%>
</li> </li>

View File

@@ -1,11 +1,11 @@
<div class="media"> <div class="media">
<a class="pull-left" href="#"> <a class="pull-left" href="#">
<img class="media-object img" src="<%= lec_lva.picture.thumb.url %>"/> <img class="media-object img" src="<%= lec_lva.picture.thumb.url unless lec_lva.picture.nil? %>"/>
</a> </a>
<div class="media-body"> <div class="media-body">
<h4><%= link_to lec_lva.name, lec_lva %></h4> <h4><%= lec_lva.name %></h4>
Email: <%= mail_to lec_lva.email %><br> Email: <%= mail_to lec_lva.email %><br>
TISS: <%= link_to lec_lva.name, lec_lva.link %> TISS: <%= link_to lec_lva.name, lec_lva.link, target: "_blank" %>
</div>
</div> </div>
</div>

View File

@@ -16,7 +16,7 @@
<td><%= lecturer.name %></td> <td><%= lecturer.name %></td>
<td><%= lecturer.email %></td> <td><%= lecturer.email %></td>
<td><%= lecturer.oid %></td> <td><%= lecturer.oid %></td>
<td><%= lecturer.picture %></td> <td><%= image_tag lecturer.picture.thumb %></td>
<td><%= link_to 'Show', lecturer %></td> <td><%= link_to 'Show', lecturer %></td>
<td><%= link_to 'Edit', edit_lecturer_path(lecturer) %></td> <td><%= link_to 'Edit', edit_lecturer_path(lecturer) %></td>
<td><%= link_to 'Destroy', lecturer, method: :delete, data: { confirm: 'Are you sure?' } %></td> <td><%= link_to 'Destroy', lecturer, method: :delete, data: { confirm: 'Are you sure?' } %></td>

View File

@@ -1,5 +1,8 @@
<p id="notice"><%= notice %></p> <p id="notice"><%= notice %></p>
<%= render partial: "lec_lva", object: @lecturer %>
<p> <p>
<b>Name:</b> <b>Name:</b>
<%= @lecturer.name %> <%= @lecturer.name %>

View File

@@ -1,28 +1,25 @@
<% @lva.modul.each do |modul| %>
<% modul.modulgruppen.each do |g| %>
<ul class="breadcrumb">
<li><%= link_to g.studium.name , studium_path(g.studium)%>
<span class="divider"></span></li>
<li><%= link_to g.name , modulgruppe_path(g)%><span class="divider">/</span></li>
<li><%= link_to modul.name , modul_path(modul)%></li>
<% end %>
</ul>
<% end %>
<p id="notice"><%= notice %></p> <p id="notice"><%= notice %></p>
<p>
<%= @lva.lvanr %>
<b><%= @lva.name %> <%= @lva.ects %> ECTS/ <%= @lva.stunden %> Std</b>
<h1><%=lva.typ.to_s + ' ' + lva.name %></h1>
<h2>Prüfungsinformation</h2>
<div class="">
<%= lva.pruefungsinformation.to_s.html_safe %>
</div>
<h2>Lernaufwand</h2>
<div class="">
<%= lva.lernaufwand %>
</div>
<h2>Beschreibung</h2>
<div class="">
<%= lva.desc.to_s.html_safe %>
</div>
<p>
<%= lva.lvanr %>
<b><%= lva.name %> <%= lva.ects %> ECTS/ <%= lva.stunden %> Std</b>
</p> </p>
<p> <p>
<%= @lva.desc %>
</p> </p>
<ul>
<% @lva.beispiele.each do |b|%>
<li><%= render b%></li>
<% end %>
</ul>
<%= toolbar_html(@toolbar_elements) %>

View File

@@ -0,0 +1,2 @@
<h2><%= nlink.title %></h2>
<% render :partial=> "lvas/lva", :object=>nlink %>

View File

@@ -0,0 +1,29 @@
<div class="container-fluid">
<div class="row-fluid">
<div class="span6">
<p>&nbsp;</p>
<p>&nbsp;</p>
<%= render partial: "lva", object: @lva %>
<h2> <%= I18n.t "lecturers.lecturers" %> </h2>
<% @lva.lecturers.each do |lec| %>
<%= render :partial=>'lecturers/lec_lva', :object=>lec %>
<% end %>
</div>
<div class="span6">
<p> Tiss Version</p>
<%= link_to "Von Tiss laden", load_tiss_lva_path(@lva) %>
<%= render partial: "lva", object: @lvatiss %>
<h2> <%= I18n.t "lecturers.lecturers" %> </h2>
<% @lvatiss.lecturers.each do |lec| %>
<%= render :partial=>'lecturers/lec_lva', :object=>lec %>
<% end %>
</div>
</div>
</div>

View File

@@ -4,10 +4,12 @@
<div class="row-fluid"> <div class="row-fluid">
<div class="span8"> <div class="span8">
<h1><%=@lva.typ.to_s + ' ' + @lva.name %></h1> <h1><%=@lva.typ.to_s + ' ' + @lva.name %></h1>
<h2>Prüfungsinformation</h2> <h2>Prüfungsinformation</h2>
<div class=""> <div class="">
<%= @lva.pruefungsinformation.html_safe %> <%= @lva.pruefungsinformation.html_safe %>
</div> </div>
<h2>Lernaufwand</h2> <h2>Lernaufwand</h2>
<div class=""> <div class="">
<%= @lva.lernaufwand %> <%= @lva.lernaufwand %>
@@ -16,14 +18,13 @@
<div class=""> <div class="">
<%= @lva.desc.to_s.html_safe %> <%= @lva.desc.to_s.html_safe %>
</div> </div>
<div class="row-fluid">
<h2>Beispiele</h2> <h2>Beispiele</h2>
<% @lva.beispiele.each do |b| %> <% @lva.beispiele.each do |b| %>
<%= render b%> <%= render b%>
<% end %> <% end %>
</div>
</div> </div>
<div class="span4"> <div class="span4">
<div class="contentbox"> <div class="contentbox">
@@ -56,7 +57,30 @@
</div> </div>
</div> </div>
</div> </div>
<div class="row-fluid">
<div class="span12">
<% unless @lva.nlinks.empty? %>
<h2>Neuigkeiten</h2>
<% @lva.nlinks.each do |l| %>
<%= render l.neuigkeit %>
<% end %>
<% end %>
</div>
</div>
<div class="row-fluid">
<div class="span12">
<%= render 'layouts/pretty_toolbar' %> <%= render 'layouts/pretty_toolbar' %>
</div>
</div>
<div class="row-fluid">
<div class="span12">
<%= render 'beispiele/form_bulk' %>
</div>
</div>
</div> </div>
<%= render 'beispiele/form_bulk' %>

View File

@@ -2,7 +2,7 @@
<h2><%= link_to modulgruppe.name, modulgruppe_path(modulgruppe) %> <h2><%= link_to modulgruppe.name, modulgruppe_path(modulgruppe) %>
</h2> </h2>
<%= modulgruppe.desc%><ul> <%= modulgruppe.desc%><ul class="unstyled">
<%= render :partial=>'moduls/kurz', :collection=>modulgruppe.moduls, :as=>:modul%> <%= render :partial=>'moduls/kurz', :collection=>modulgruppe.moduls, :as=>:modul%>
</ul> </ul>
<br> <br>

View File

@@ -1,18 +1,23 @@
</ul><p id="notice"><%= notice %></p> <%= render 'studien/tabs' %>
<div class="content-wrap content-column">
<p id="notice"><%= notice %></p>
<h1> <h1>
<%= @modulgruppe.name %> <%= @modulgruppe.name %>
</h1> </h1>
<p> <p>
<!-- <b><%= link_to "Studium: "+@modulgruppe.studium.name, studium_path(@modulgruppe.studium) %></b>--> <!-- <b><%= link_to "Studium: "+@modulgruppe.studium.name, studium_path(@modulgruppe.studium) %></b>-->
</p><p> </p>
<p>
<b><%= I18n.t "modulgruppe.typ"%>:</b> <b><%= I18n.t "modulgruppe.typ"%>:</b>
<%= @modulgruppe.typ %> <%= @modulgruppe.typ %>
</p> </p>
<ul class="unstyled">
<% @modulgruppe.moduls.each do |modul| %>
<% @modulgruppe.moduls.each do |modul| %> <%= render 'moduls/kurz', :modul=>modul%>
<%= render 'moduls/kurz', :modul=>modul%> <% end %>
<% end %> </ul>
<%= render 'layouts/pretty_toolbar' %> <%= render 'layouts/pretty_toolbar' %>
</div>

View File

@@ -1,21 +1,29 @@
<div class="container-fluid"> <div class="container-fluid">
<%= semantic_form_for @modul do |f| %> <%= semantic_form_for @modul do |f| %>
<%= f.inputs do %> <%= f.inputs do %>
<div class="row-fluid"> <div class="row-fluid">
<div class="span9"> <div class="span9">
<%= f.input :name ,:hint=>true%> <div class="container-fluid">
<div class="row-fluid"> <div class="row-fluid">
<div class="span8"> <div class="span12">
<%= f.input :name ,:hint=>true%>
</div>
</div>
<div class="row-fluid">
<div class="span12">
<%= f.input :desc, :as=>:tinymce_text %> <%= f.input :desc, :as=>:tinymce_text %>
</div> </div>
<div class="span4"> </div>
<div class="row-fluid">
<div class="span12">
<%= f.input :depend %> <%= f.input :depend %>
</div> </div>
</div> </div>
</div> </div>
</div>
<div class="span3"> <div class="span3">
<%= f.input :modulgruppen,:as => :check_boxes, :collection => Hash[Modulgruppe.all.map{|m| [m.studium.name + " " + m.name,m.id]}.sort] %> <%= f.input :modulgruppen, :as => :check_boxes, :member_label=>:long_name, :collection => Modulgruppe.all %>
</div> </div>
</div> </div>

View File

@@ -0,0 +1,29 @@
<%= semantic_form_for "moduls[]", :url=>update_bulk_moduls_path do |ff| %>
<table>
<tr><th>Modulname</th><th>Modulgruppen</th><th>Beschreibung</th> <th>Voraussetzungen</th></tr>
<% @moduls.each do |m| %>
<%= semantic_fields_for "moduls[#{m.id}]", m do |f| %>
<tr><td>
<%= f.input :id, :label=>false, :hint=>"" ,:as=>:hidden %>
<%= f.input :name, :label=>false, :hint=>"" %></td>
<td>
<%= f.input :modulgruppen, :label=>false, :hint=>"" , :collection=>Modulgruppe.all %>
</td>
<td>
<%= f.input :desc, :label=>false, :hint=>"" ,:input_html=>{:class=>"row-fluid"} %>
</td>
<td>
<%= f.input :depend, :label=>false, :hint=>"" ,:input_html=>{:class=>"row-fluid"} %>
</td>
</tr>
<% end %>
<% end %>
</table>
<%= ff.actions do %>
<%= ff.action :submit, :label=>"Save", :as=>:button %>
<%= ff.action :cancel, :as => :link %>
<% end %>
<% end %>

View File

@@ -1,6 +1,19 @@
<li><p> <li>
<div class="contentbox">
<p>
<b><% if !modul.name.nil? %><%= link_to "Modul "+ modul.name , modul_path(modul) %> <%end%></b> <b><% if !modul.name.nil? %><%= link_to "Modul "+ modul.name , modul_path(modul) %> <%end%></b>
</p> </p>
<ul>
<% modul.lvas.each do |lva| %>
<li> <%= render :partial=>'lvas/lva_semester', :locals =>{:lva => lva}%>
</li>
<% end %>
</ul>
<% link_to '<i class="icon-pencil"></i>'.html_safe+I18n.t("common.edit"), edit_modul_path(modul) %> <% link_to '<i class="icon-pencil"></i>'.html_safe+I18n.t("common.edit"), edit_modul_path(modul) %>
</div>
</li> </li>

View File

@@ -5,31 +5,32 @@
<div class="row-fluid"> <div class="row-fluid">
<div class="span8"> <div class="span8">
<h2><%=I18n.t("modul.desc")%></h2> <h2><%=I18n.t("modul.lvas")%></h2>
<p> <% @modul.lvas.each_slice(3) do |row| %>
<ul>
<% row.each do |lv| %>
<li>
<%= render 'lvas/lva_semester', :lva=>lv%>
</li>
<% end %>
</ul>
<% end %>
<h2><%=I18n.t("modul.desc")%></h2>
<p>
<%= raw(@modul.desc) %> <%= raw(@modul.desc) %>
</p> </p>
</div>
</div> <div class="span4">
<div class="span4">
<div class="lva-sidebar"> <div class="lva-sidebar">
<h2><%=I18n.t("modul.mgs")%></h2> <h2><%=I18n.t("modul.mgs")%></h2>
<ul> <ul>
<% @modul.modulgruppen.each do |mg| %> <% @modul.modulgruppen.each do |mg| %>
<li> <li>
<%= render 'modulgruppen/kurz', :modulgruppe=>mg %> <%= render 'modulgruppen/kurz', :modulgruppe=>mg %>
</li> </li>
<% end %> <% end %>
</ul> </ul>
<h2><%=I18n.t("modul.lvas")%></h2>
<% @modul.lvas.each_slice(3) do |row| %> </div>
<ul> </div>
<% row.each do |lv| %>
<li>
<%= render 'lvas/lva_semester', :lva=>lv%>
</li>
<% end %>
</ul>
<% end %>
</div> </div>
</div></div>

View File

@@ -0,0 +1 @@
<%= render :partial=>"form_bulk" %>

View File

@@ -1,4 +1,4 @@
<%= semantic_form_for "lvas[]", :url=>modul_update_lvas_path(@modul) do |ff|%> <%= semantic_form_for "lvas[]", :url=>update_lvas_modul_path(@modul) do |ff|%>
<table> <table>
<% i = 0 %> <% i = 0 %>
<% @lvas.each do |lva|%> <% @lvas.each do |lva|%>

View File

@@ -1,4 +1,4 @@
<%= semantic_form_for "lvas[]", :url=>modul_show_tiss_path(params[:modul_id]) do |ff|%> <%= semantic_form_for "lvas[]", :url=>show_tiss_modul_path(params[:modul_id]) do |ff|%>
<% for i in 1..5 do %> <% for i in 1..5 do %>
<%= semantic_fields_for "lvas[#{i}]" do |f| %> <%= semantic_fields_for "lvas[#{i}]" do |f| %>

View File

@@ -0,0 +1 @@
<%= render :partial=>"form_bulk" %>

View File

@@ -16,7 +16,7 @@
</div> </div>
<% if neuigkeit.has_calentries? %> <% if neuigkeit.has_calentries? %>
<div class="pull-right" href="#"> <div class="pull-right" href="#">
<%= image_tag("/iconnavy/time.png") %> <%= fa_icon("calendar 2x") %>
<% unless neuigkeit.calentries.upcoming.empty? %> <% unless neuigkeit.calentries.upcoming.empty? %>
<%= neuigkeit.calentries.upcoming.first.text %> <%= neuigkeit.calentries.upcoming.first.text %>
<% else unless neuigkeit.calentries.recent.empty? %> <% else unless neuigkeit.calentries.recent.empty? %>

View File

@@ -0,0 +1,11 @@
<li>
<%= link_to nlink_list.link do %>
<div class="contentbox" >
<% p = nlink_list.link_type.downcase.pluralize+"/nlink" %>
<%= raw(strip_links(render :partial=>p, :object=>nlink_list.link )) %>
</div>
<% end %>
</li>

View File

@@ -0,0 +1,12 @@
<li>
<%= link_to nlink_list_search.title, nlink_list_search %>
<%= link_to "add:"+nlink_list_search.title, create_link_rubrik_neuigkeit_path(@neuigkeit.rubrik,@neuigkeit, :link_id=>nlink_list_search.id, :link_type=>nlink_list_search.class.to_s) %>
<div class="contentbox" >
<% p = nlink_list_search.class.to_s.downcase.pluralize+"/nlink" %>
<%= render :partial=>p, :object=>nlink_list_search %>
</div>
</li>

View File

@@ -11,22 +11,36 @@
</span> </span>
<div class="media"> <div class="media">
<div class="pull-left" href="#"> <div class="pull-left" href="#">
<p><br><%= link_to image_tag(@neuigkeit.picture.big_thumb.url),@neuigkeit.picture.url %> <p><br><%= link_to image_tag(@neuigkeit.picture.big_thumb.url),@neuigkeit.picture.try(:url) %>
</p> </p>
</div> </div>
<div class="media-body"> <div class="media-body">
<h1> <h1>
<%= @neuigkeit.title%> <%= @neuigkeit.title%>
</h1> </h1>
<%= raw(@neuigkeit.text) %> <%= raw(@neuigkeit.text) %>
<p></p> <p></p>
</div> </div>
</div> </div>
<% @calentries1.each do |ce|%> <% @calentries1.each do |ce|%>
<%= render ce unless ce.nil? %> <%= render ce unless ce.nil? %>
<% end %> <% end %>
<%= render 'layouts/pretty_toolbar', :object=> @toolbar_elements %> <%= render 'layouts/pretty_toolbar', :object=> @toolbar_elements %>
</div> </div>
Siehe auch:
<ul class="unstyled">
<div id="nlink_list">
<%= render partial: "nlink_list", collection: @neuigkeit.nlinks %>
</div>
<div id="nlink_list_search">
<%= render partial: "nlink_list_search", collection: @nlink_search %>
</div>
</ul>
<%= semantic_form_for :find_link, :url=>find_link_rubrik_neuigkeit_path(@rubrik,@neuigkeit), :html=>{:id=>"search_form", :method=>'get'} do |f| %>
<%= f.input :query, :input_html => { :name => 'query' },:label=>false %>
<% end %>
</div> </div>

View File

@@ -15,6 +15,15 @@
<div class="row-fluid"> <div class="row-fluid">
<%= f.input :desc, :as=>:tinymce_text , :wrapper_html=>{:class=>"span12"}%> <%= f.input :desc, :as=>:tinymce_text , :wrapper_html=>{:class=>"span12"}%>
</div> </div>
<div class="row-fluid">
<%= f.input :qualifikation, :as=>:tinymce_text , :wrapper_html=>{:class=>"span12"}%>
</div>
<div class="row-fluid">
<%= f.input :struktur, :as=>:tinymce_text , :wrapper_html=>{:class=>"span12"}%>
</div>
<div class="row-fluid">
<%= f.input :jobmoeglichkeiten, :as=>:tinymce_text , :wrapper_html=>{:class=>"span12"}%>
</div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span12"> <div class="span12">

View File

@@ -0,0 +1,21 @@
<div class="container-fluid">
<div class="row-fluid">
<div class="span12">
<p><%= link_to "Qualifikationsprofil", studium_path( @studium, :ansicht=>"qualifikationsprofil")%> </p>
<%= raw(@studium.desc) %>
</div>
</div>
<div class="row-fluid">
<div class="span12">
<ul class="unstyled">
<% @studium.nlinks.each do |l| %>
<li><%= render l.neuigkeit %></li>
<% end %>
</ul>
</div>
</div>
</div>

View File

@@ -0,0 +1,22 @@
<div class="container-fluid">
<div class="row-fluid">
<% if params[:info].true? %>
<%= raw(@studium.desc) %>
<% else %>
<%= @studium.desc_first_words %> <%= link_to I18n.t('studium.info'), studium_path(@studium, :ansicht=>params[:ansicht], :info=>true) %>
<% end %>
<% @studienphasen.each do |sp| %>
<% sp[:modulgruppen].each do |row| %>
<div class="row-fluid">
<% row.each do |modulgruppe| %>
<div class="span<%= sp[:width]%> min-width:13em;">
<%= render modulgruppe %>
</div>
<% end %>
</div>
<% end %>
<% end %>
</div>

View File

@@ -0,0 +1,2 @@
<h2><%= nlink.name %></h2>
<p><%= nlink.desc_first_words %></p>

View File

@@ -0,0 +1,34 @@
<div class="container-fluid">
<% if params[:info].true? %>
<%= raw(@studium.desc) %>
<% else %>
<%= @studium.desc_first_words %> <%= link_to I18n.t('studium.info'), studium_path(@studium, :ansicht=>params[:ansicht], :info=>true) %>
<% end %>
<% @studium.semester.each do |sem| %>
<div class="row-fluid">
<div class="span12">
<div class="contentbox">
<div class="container-fluid">
<div class="row-fluid">
<div class="span8">
<h2><%= sem.name %></h2>
</div>
<div class="span4"><div class="pull-right"><%= link_to I18n.t("lva.addrem"), edit_semester_path(sem), :class=>"btn-small"%>
</div>
</div>
</div>
<% sem.lvas.each do |lva| %>
<div class="row-fluid">
<%= render :partial=>'lvas/lva_semester', :locals =>{:lva => lva}%>
</div>
<% end %>
</div>
</div>
</div>
</div>
<% end %>
<%= render :partial=>'layouts/pretty_toolbar', :locals=>{:elements=>@toolbar_elements} %>
</div>

View File

@@ -1,4 +1,4 @@
<%= link_to studium_path(studium, :ansicht=>'semesteransicht') ,{:class=>"linkbox"} do %> <%= link_to studium_path(studium, {:ansicht=>'semesteransicht'}) ,{:class=>"linkbox"} do %>
<div class="media"> <div class="media">
<div class="pull-left"> <div class="pull-left">
<%= image_tag studium.picture.big_thumb.url %> <%= image_tag studium.picture.big_thumb.url %>

View File

@@ -0,0 +1,25 @@
<%= render 'studien/tabs' %>
<div class="content-wrap content-column">
<div class="container-fluid">
<div class="row-fluid">
<div class="span6">
<h1><%= @studium.typ %> <%= @studium.name %> (<%= @studium.zahl %>)</h1>
</div>
<div class="span3 pull-right">
<div class="pull-right">
<%= link_to @text, studium_path(@studium, :ansicht=>@flip), :class=>"btn" %>
<%= link_to "Infoansicht", studium_path(@studium, :ansicht=>'infoansicht'), :class=>"btn" unless params[:ansicht]=='infoansicht'%>
</div>
</div>
<div class="row-fluid">
<div class="span12">
<%= raw(@studium.desc) %>
</div>
</div>
</div>
</div>

View File

@@ -2,8 +2,14 @@
<div class="container-fluid"> <div class="container-fluid">
<div class="row-fluid"> <div class="row-fluid">
<%= render 'studien/tabs' %> <%= render 'studien/tabs' %>
<div class="span6"> <h1><%= @studium.typ %> <%= @studium.name %> (<%= @studium.zahl %>)</h1></div> <div class="span6">
<div class="span3 pull-right"><div class="pull-right"> <%= link_to @text, studium_path(@studium, :ansicht=>@flip), :class=>"btn" %></div> <h1><%= @studium.typ %> <%= @studium.name %> (<%= @studium.zahl %>)</h1>
</div>
<div class="span3 pull-right">
<div class="pull-right">
<%= link_to @text, studium_path(@studium, :ansicht=>@flip), :class=>"btn" %>
<%= link_to "Infoansicht", studium_path(@studium, :ansicht=>'infoansicht'), :class=>"btn" unless params[:ansicht]=='infoansicht'%>
</div>
</div> </div>
</div> </div>

View File

@@ -1,32 +1,31 @@
<div class="container-fluid"> <%= render 'studien/tabs' %>
<div class="row-fluid"> <div class="content-wrap content-column">
<%= render 'studien/tabs' %>
<p id="notice"><%= notice %></p> <p id="notice"><%= notice %></p>
<div class="span6"> <h1><%= @studium.typ %> <%= @studium.name %> (<%= @studium.zahl %>)</h1></div> <h1><%= @studium.typ %> <%= @studium.name %> (<%= @studium.zahl %>)</h1>
<div class="span3 pull-right"><div class="pull-right"><%= link_to @text, studium_path(@studium, :ansicht=>@flip), :class=>"btn" %></div> <p>
<div class="pull-right">
<%= link_to I18n.t("studien.ansicht.semester"), studium_path(@studium, :ansicht=>"semesteransicht"), :class=>"btn" unless params[:ansicht]=='semesteransicht' %>
<%= link_to I18n.t("studien.ansicht.modulgruppe"), studium_path(@studium, :ansicht=>"modulgruppenansicht"), :class=>"btn" unless params[:ansicht]=='modulgruppenansicht' %>
<%= link_to I18n.t("studien.ansicht.info"), studium_path(@studium, :ansicht=>"infoansicht"), :class=>"btn" unless params[:ansicht]=='infoansicht' %>
</div> </div>
</div> </p>
<div class="row-fluid"> <% if params[:ansicht]=='modulgruppenansicht' %>
<% if params[:info].true? %> <%= render partial: 'modulgruppenansicht' %>
<%= raw(@studium.desc) %> <% else if params[:ansicht]=='infoansicht' %>
<%= render partial: 'infoansicht' %>
<% else if params[:ansicht]== 'qualifikationsprofil' %>
<h2>Qualifikationsprofil</h2>
<p>
<%= raw(@studium.qualifikation) %>
</p>
<% else %> <% else %>
<%= @studium.desc_first_words %> <%= link_to I18n.t('studium.info'), studium_path(@studium, :ansicht=>params[:ansicht], :info=>true) %> <%= render partial: 'semesteransicht' %>
<% end %>
<% @studienphasen.each do |sp| %>
<% sp[:modulgruppen].each do |row| %>
<div class="row-fluid"> <% end %> <% end %> <% end %>
<% row.each do |modulgruppe| %>
<div class="span<%= sp[:width]%> min-width:13em;">
<%= render modulgruppe %>
</div>
<% end %>
</div>
<% end %>
<% end %>
</div>
<%= render :partial=>'layouts/pretty_toolbar', :object=>@toolbar_modulgruppen %><br> <%= render :partial=>'layouts/pretty_toolbar', :object=>@toolbar_modulgruppen %><br>
<%= render 'layouts/pretty_toolbar' %> <%= render 'layouts/pretty_toolbar' %>
</div> </div>

View File

@@ -21,7 +21,8 @@
</div> </div>
<%= f.actions do %> <%= f.actions do %>
<%= f.action :submit, :as => :input %> <%= f.action :submit, :as => :button, :label=>"Sdf"+raw(fa_icon("save"))%>
<%= f.action :cancel, :as => :link %> <%= f.action :cancel, :as => :link %>
<% end %> <% end %>
<% end %><% end %> <% end %><% end %>

View File

@@ -0,0 +1,2 @@
<h2><%= nlink.title %></h2>
<p><%= raw(nlink.text_first_words) %></p>

View File

@@ -1,3 +1,6 @@
<a name="thema_<%=small.id%>" href="#<%=small.id%>">
<h2><%= small.title %></h2>
</a>
<%= raw(small.text) %> <%= raw(small.text) %>
<br/> <br/>
<%= raw("<b>FAQs:</b>") unless small.fragen.empty? %> <%= raw("<b>FAQs:</b>") unless small.fragen.empty? %>
@@ -14,4 +17,4 @@
@small_elements = [] @small_elements = []
@small_elements << {:icon=>:pencil, :hicon=>'icon-pencil', :text=>I18n.t('thema.edit'), :path=>small} if can? :edit, small @small_elements << {:icon=>:pencil, :hicon=>'icon-pencil', :text=>I18n.t('thema.edit'), :path=>small} if can? :edit, small
@small_elements << {:hicon=>'icon-remove-circle',:text=>I18n.t('thema.remove'), :path=>small, :method=>:delete,:confirm=>I18n.t('thema.sure')} if can? :delete, small %> @small_elements << {:hicon=>'icon-remove-circle',:text=>I18n.t('thema.remove'), :path=>small, :method=>:delete,:confirm=>I18n.t('thema.sure')} if can? :delete, small %>
<%= render :partial=>'layouts/pretty_toolbar', :object=>@small_elements unless @small_elements.empty? %> <% render :partial=>'layouts/pretty_toolbar', :object=>@small_elements unless @small_elements.empty? %>

View File

@@ -0,0 +1,3 @@
<% verw_liste.each do |thema| %>
<li id="themen_<%= thema.id %>" class="sort" ><div class="contentbox handle" ><h2><%= thema.title %></h2> </div> <%= link_to edit_thema_path(thema),:remote=>true do %> Edit <% end %> <%= link_to fragen_thema_path(thema),:remote=>true do %> Fragen <% end %></li>
<% end %>

View File

@@ -1,5 +1,6 @@
<h1>New thema</h1>
<div id="themaview">
<h1><%= I18n.t("thema.add") %></h1>
<%= render 'form' %> <%= render 'form' %>
</div>
<%= link_to 'Back', themen_path %> <%= link_to 'Back', themen_path %>

View File

@@ -1,24 +1,9 @@
<p id="notice"><%= notice %></p> <p id="notice"><%= notice %></p>
<%= link_to "Zurück", @thema.themengruppe %>
<br>
<%= render :partial=>"themen/small", :object=>@thema %>
<h1><%= @thema.title %></h1>
<p>
<%= raw(@thema.text) %>
</p>
<!--
<%= link_to 'Edit', edit_thema_path(@thema) %> |
<%= link_to 'Back', themengruppe_path(@thema.themengruppe) %>
-->
<%= render :partial=>'layouts/pretty_toolbar' %> <%= render :partial=>'layouts/pretty_toolbar' %>
<%= render :partial=>'themen/fragen' %>
<!--
<%= link_to 'Neue Frage', new_frage_path %> <br/>
-->
<br/>
<h2><%= I18n.t('attachment.title')%>:</h2>
<div id="attachmentform">
</div>
<%= link_to new_thema_attachment_path(@thema) ,:remote=>true do %> new Attachment <% end %> <%= link_to new_thema_attachment_path(@thema) ,:remote=>true do %> new Attachment <% end %>
<%= render :partial => "themen/select", :object => @thema, :locals=>{:editor => :false} %> <%= render :partial => "themen/select", :object => @thema, :locals=>{:editor => :false} %>

View File

@@ -1,2 +1,4 @@
alert('t');
$("#themaview").html("<%= escape_javascript(raw("<h2>Bearbeiten</h2>")+render(:partial=>"themen/small", :object=>@thema) )%>"); $("#themaview").html("<%= escape_javascript(raw("<h2>Bearbeiten</h2>")+render(:partial=>"themen/small", :object=>@thema) )%>");
$("#themen").html("<%= escape_javascript(render(:partial=>"themen/verw_liste", :object=>@themen) )%>");

View File

@@ -0,0 +1,24 @@
<p id="notice"><%= notice %></p>
<h1><%= @thema.title %></h1>
<p>
<%= raw(@thema.text) %>
</p>
<!--
<%= link_to 'Edit', edit_thema_path(@thema) %> |
<%= link_to 'Back', themengruppe_path(@thema.themengruppe) %>
-->
<%= render :partial=>'layouts/pretty_toolbar' %>
<%= render :partial=>'themen/fragen' %>
<!--
<%= link_to 'Neue Frage', new_frage_path %> <br/>
-->
<br/>
<h2><%= I18n.t('attachment.title')%>:</h2>
<div id="attachmentform">
</div>
<%= link_to new_thema_attachment_path(@thema) ,:remote=>true do %> new Attachment <% end %>
<%= render :partial => "themen/select", :object => @thema, :locals=>{:editor => :false} %>

View File

@@ -9,5 +9,6 @@
<%= f.actions do %> <%= f.actions do %>
<%= f.action :submit, :as => :input %> <%= f.action :submit, :as => :input %>
<%= f.action :cancel,:label => I18n.t("common.back"), :as => :link %>
<% end %> <% end %>
<% end %> <% end %>

View File

@@ -0,0 +1,19 @@
<% @themengruppen.each do |tg| %>
<a name="themengruppe_<%=tg.id.to_s%>">
<h2><%= tg.title%></h2></a>
<ul>
<% tg.themen.order(:priority).reverse.each do |t| %>
<li><%= t.title %>
<ul>
<% t.fragen.each do |f| %>
<li><b> <%= f.title %></b><p> <%= f.text %></p></li>
<% end %>
</ul>
</li>
<% end %>
</ul>
<% end %>

View File

@@ -1,4 +1,5 @@
<div class="content-wrap content-column"> <div class="content-wrap content-column">
<p> <%= link_to "FAQS", faqs_themengruppen_path %></p>
<ul class="unstyled linkbox-list"> <ul class="unstyled linkbox-list">
<li> <li>
<% @themengruppen.each do |themengruppe| %> <% @themengruppen.each do |themengruppe| %>

View File

@@ -1,5 +1,6 @@
<div class="content-wrap content-column" > <div class="content-wrap content-column" >
<%= link_to fa_icon("arrow-circle-left 2x")+" Alle Themengruppen", themengruppen_path, :class=>"linkbox" %>
<%= link_to fa_icon("question 2x")+" Häufige Fragen", faqs_themengruppen_path(:anchor=>"themengruppe_"+@themengruppe.id.to_s), :class=>"linkbox" %>
<h1><%= @themengruppe.title %></h1> <h1><%= @themengruppe.title %></h1>
<p> <p>
<%= @themengruppe.text %> <%= @themengruppe.text %>
@@ -8,15 +9,26 @@
<% @themengruppe.themen.each do |thema| %> <% @themengruppe.themen.each do |thema| %>
<li> <li>
<div class="contentbox"> <div class="contentbox">
<a href="#<%=thema.id%>">
<h2><%= thema.title %></h2>
</a>
<% unless thema.gremium.nil? %>
<p>
<%= link_to "Zu dem Gremium ..." , thema.gremium %>
</p>
<% end %>
<%= render :partial => 'themen/small', :object => thema %> <%= render :partial => 'themen/small', :object => thema %>
tools:
<%
@small_elements2 = []
@small_elements2 << {:icon=>:pencil, :hicon=>'icon-pencil', :text=>I18n.t('common.verwalten'), :path=>verwalten_thema_path(thema)} if can? :edit, thema
%>
<%= render :partial=>'layouts/pretty_toolbar', :object=>@small_elements2 unless @small_elements2.empty? %>
<ul class="unstyled">
<% unless thema.gremium.nil? %>
<li>
<%= link_to fa_icon("users 2x")+thema.gremium.name , thema.gremium,:class=>"linkbox" %>
</li>
<% end %>
<% thema.nlinks.each do |l| %>
<li><%= render l.neuigkeit %></li>
<% end %>
</ul>
</div> </div>
</li> </li>
<% end %> <% end %>

View File

@@ -7,9 +7,7 @@
<div class="span4"> <div class="span4">
<ul id="themen" class="sort" > <ul id="themen" class="sort" >
<% @themen.each do |thema| %> <%= render partial:"themen/verw_liste", object: @themen %>
<li id="themen_<%= thema.id %>" class="sort" ><div class="contentbox handle" ><h2><%= thema.title %></h2> </div> <%= link_to edit_thema_path(thema),:remote=>true do %> Edit <% end %> <%= link_to thema_fragen_path(thema),:remote=>true do %> Fragen <% end %></li>
<% end %>
</ul> </ul>
<%= link_to new_themengruppe_thema_path(@themengruppe),:remote=>true do %> New Thema <% end %> <%= link_to new_themengruppe_thema_path(@themengruppe),:remote=>true do %> New Thema <% end %>
</div> </div>

View File

@@ -1,25 +0,0 @@
<div class="content-wrap content-column" >
<h1><%= @themengruppe.title %></h1>
<p>
<%= @themengruppe.text %>
</p>
<ul class="unstyled linkbox-list" >
<% @themen.each do |thema| %>
<li>
<div class="contentbox">
<a href="#<%=thema.id%>">
<h2><%= thema.title %></h2>
</a>
<% unless thema.gremium.nil? %>
<p>
<%= link_to "Zu dem Gremium ..." , thema.gremium %>
</p>
<% end %>
<%= render :partial => 'themen/small', :object => thema %>
</div>
</li>
<% end %>
</ul>
<%= render :partial=>'layouts/pretty_toolbar' unless @toolbar_elements.empty?%>
</div>

View File

@@ -0,0 +1 @@
Blue1 hat eine optisch schlankereKopfzeile und hat ein zentriertes Layout

Some files were not shown because too many files have changed in this diff Show More