forked from bofh/fetsite
199 lines
5.3 KiB
Ruby
Executable File
199 lines
5.3 KiB
Ruby
Executable File
# -*- coding: utf-8 -*-
|
|
class ModulsController < ApplicationController
|
|
# GET /moduls
|
|
# 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
|
|
|
|
def index
|
|
@moduls = Modul.all
|
|
if @moduls
|
|
if !params[:studium_id].nil?
|
|
@studium=Studium.find_by_id(params[:studium_id])
|
|
end
|
|
respond_to do |format|
|
|
format.html # index.html.erb
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
# GET /moduls/1
|
|
# GET /moduls/1.json
|
|
def show
|
|
for i in @modul.modulgruppen
|
|
@tb <<{:text=> i.long_name, :path=>modulgruppe_path(i)}
|
|
end
|
|
respond_to do |format|
|
|
format.html # show.html.erb
|
|
format.json { render json: @modul }
|
|
end
|
|
end
|
|
|
|
|
|
# GET /moduls/new
|
|
# GET /moduls/new.json
|
|
def new
|
|
@modul = Modul.new
|
|
modulgruppe=Modulgruppe.find_by_id(params[:modulgruppen_id])
|
|
if !modulgruppe.nil?
|
|
@modul.modulgruppen<<modulgruppe #
|
|
end
|
|
respond_to do |format|
|
|
format.html # new.html.erb
|
|
end
|
|
end
|
|
|
|
def new_bulk
|
|
@moduls= []
|
|
@modulgruppe=Modulgruppe.find(params[:modulgruppen_id])
|
|
10.times {@moduls << Modul.new(:modulgruppen=>[@modulgruppe])}
|
|
end
|
|
|
|
def edit
|
|
@modul = Modul.find(params[:id])
|
|
if !params[:studium_id].nil?
|
|
@studium=Studium.find(params[:studium_id])
|
|
end
|
|
end
|
|
|
|
def edit_bulk
|
|
unless params[:modulgruppen_id].nil?
|
|
@moduls=Modulgruppe.find(params[:modulgruppen_id]).moduls
|
|
else
|
|
unless params[:studium_id].nil?
|
|
@moduls=Studium.find(params[:studium_id]).modulgruppen.collect(&:moduls).flatten
|
|
else
|
|
|
|
@moduls=Modul.all
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
def edit_lvas
|
|
@lvas = @modul.lvas
|
|
@semester = @modul.modulgruppen.flatten.map(&:studium).map(&:semester).flatten.uniq
|
|
end
|
|
|
|
def update
|
|
|
|
respond_to do |format|
|
|
if @modul.update_attributes(params[:modul])
|
|
for i in @modul.lvas
|
|
i.add_semesters
|
|
end
|
|
format.html { redirect_to url_for(@modul), notice: 'Modul was successfully updated.' }
|
|
else
|
|
format.html { render action: "edit" }
|
|
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.json
|
|
def destroy
|
|
@modul = Modul.find(params[:id])
|
|
modulgruppe=@modul.modulgruppen.first
|
|
for i in @modul.lvas
|
|
i.add_semesters
|
|
end
|
|
@modul.destroy
|
|
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
|