forked from bofh/fetsite
changes in lva und beispiele
change
This commit is contained in:
@@ -14,7 +14,7 @@ class LvasController < ApplicationController
|
||||
|
||||
def show
|
||||
@lva = Lva.find_by_id(params[:id])
|
||||
|
||||
@beispiel=Beispiel.new
|
||||
@toolbar_elements<<{:hicon=>'icon-plus-sign', :icon=>:plus, :text => "Neues Beispiel", :path=> new_beispiel_path(:lva_id =>@lva.id)}
|
||||
@toolbar_elements<<{:hicon=>'icon-pencil', :icon=>:pencil,:text =>I18n.t('common.edit'),:path => edit_lva_path(@lva)}
|
||||
@toolbar_elements << {:hicon=>'icon-remove-circle', :text=>I18n.t('common.delete'), :path=> lva_path(@lva), :method=>:delete, :confirm=>'Sure?' }
|
||||
@@ -32,8 +32,10 @@ class LvasController < ApplicationController
|
||||
# GET /lvas/1/edit
|
||||
def edit
|
||||
@lva = Lva.find(params[:id])
|
||||
end
|
||||
@semester = @lva.modul.map(&:modulgruppen).flatten.map(&:studium).map(&:semester).flatten.uniq
|
||||
|
||||
|
||||
end
|
||||
# POST /lvas
|
||||
# POST /lvas.json
|
||||
def create
|
||||
|
||||
@@ -26,6 +26,9 @@ class ModulsController < ApplicationController
|
||||
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'}}
|
||||
|
||||
@@ -65,18 +68,27 @@ class ModulsController < ApplicationController
|
||||
def edit_lvas
|
||||
@modul = Modul.find(params[:modul_id])
|
||||
@lvas = @modul.lvas
|
||||
@semester = @modul.modulgruppen.flatten.map(&:studium).map(&:semester).flatten.uniq
|
||||
|
||||
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=[]
|
||||
params["lvas"].each do |l|
|
||||
lva=Lva.where(:lvanr=>l["lvanr"])
|
||||
lva=Lva.new(l)
|
||||
lva.modul=[@modul]
|
||||
@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"]
|
||||
@@ -85,11 +97,11 @@ class ModulsController < ApplicationController
|
||||
@newlvas<<lva
|
||||
end
|
||||
@lvas=@newlvas
|
||||
# if @newlvas.map(&:valid?).all?
|
||||
if @newlvas.map(&:valid?).all?
|
||||
redirect_to modul_path(@modul)
|
||||
else
|
||||
render "edit_lvas"
|
||||
# else
|
||||
# @lvas=@newlvas
|
||||
# render show_tiss
|
||||
end
|
||||
# end
|
||||
end
|
||||
def load_tiss
|
||||
@@ -100,12 +112,14 @@ class ModulsController < ApplicationController
|
||||
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("-2013W")
|
||||
lva.load_tissdata("-"+ l["sem"])
|
||||
lva.modul<<@modul
|
||||
@lvas<<lva
|
||||
end
|
||||
end
|
||||
|
||||
@@ -38,7 +38,7 @@ class Lva < ActiveRecord::Base
|
||||
ERLAUBTE_TYPEN = ['VO', 'UE', 'VU', 'LU', 'SE', 'andere'];
|
||||
has_paper_trail # Versionsverfolgung
|
||||
attr_accessible :desc, :ects, :lvanr, :name, :stunden, :modul_ids, :semester_ids, :pruefungsinformation, :lernaufwand, :typ, :lecturer_ids
|
||||
has_and_belongs_to_many :modul # Gehört zu einem Modul
|
||||
has_and_belongs_to_many :modul,:uniq=>true # Gehört zu einem Modul
|
||||
has_and_belongs_to_many :semester
|
||||
#Gehört zu einem Semester( derzeit nicht implementiert)
|
||||
has_many :beispiele , :class_name => "Beispiel"
|
||||
@@ -89,7 +89,8 @@ class Lva < ActiveRecord::Base
|
||||
self.name=hash["course"]["title"][I18n.locale.to_s]
|
||||
self.pruefungsinformation= hash["course"]["examinationModalities"][I18n.locale.to_s]
|
||||
self.desc= hash["course"]["objective"][I18n.locale.to_s]+hash["course"]["teachingContent"][I18n.locale.to_s]
|
||||
|
||||
self.typ=hash["course"]["courseType"]
|
||||
self.stunden=hash["course"]["weeklyHours"]
|
||||
end
|
||||
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
class Modul < ActiveRecord::Base
|
||||
attr_accessible :desc,:name, :depend, :studium_id, :modulgruppe_ids
|
||||
|
||||
has_and_belongs_to_many :lvas
|
||||
has_and_belongs_to_many :lvas , :uniq=>true
|
||||
has_and_belongs_to_many :modulgruppen
|
||||
|
||||
|
||||
|
||||
142
app/views/beispiele/_form_bulk.html.erb
Normal file
142
app/views/beispiele/_form_bulk.html.erb
Normal file
@@ -0,0 +1,142 @@
|
||||
<div class="container">
|
||||
<%= semantic_form_for [@lva, @beispiel], :remote=>true, :html => { :multipart => true, :id => "fileupload" } do |f| %>
|
||||
<!-- The fileupload-buttonbar contains buttons to add/delete files and start/cancel the upload -->
|
||||
<div class="row ">
|
||||
|
||||
<div class="span7">
|
||||
<div class="fileupload-buttonbar">
|
||||
<!-- The fileinput-button span is used to style the file input field as button -->
|
||||
<span class="btn btn-success fileinput-button">
|
||||
<i class="icon-plus icon-white"></i>
|
||||
<span>Add files...</span>
|
||||
<%= f.file_field :beispieldatei, :multiple=>true %>
|
||||
<%= f.input :lva %>
|
||||
</span>
|
||||
<button type="submit" class="btn btn-primary start">
|
||||
<i class="icon-upload icon-white"></i>
|
||||
<span>Start upload</span>
|
||||
</button>
|
||||
<button type="reset" class="btn btn-warning cancel">
|
||||
<i class="icon-ban-circle icon-white"></i>
|
||||
<span>Cancel upload</span>
|
||||
</button>
|
||||
<button type="button" class="btn btn-danger delete">
|
||||
<i class="icon-trash icon-white"></i>
|
||||
<span>Delete</span>
|
||||
</button>
|
||||
<input type="checkbox" class="toggle">
|
||||
</div>
|
||||
<div class="span5">
|
||||
<!-- The global progress bar -->
|
||||
<div class="progress progress-success progress-striped active fade">
|
||||
<div class="bar" style="width:100%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- The loading indicator is shown during image processing -->
|
||||
<div class="fileupload-loading"></div>
|
||||
<br>
|
||||
<!-- The table listing the files available for upload/download -->
|
||||
<table class="table table-striped"><tbody class="files" data-toggle="modal-lva" data-target="#modal-lva"></tbody>
|
||||
</table>
|
||||
<% end %>
|
||||
|
||||
</div>
|
||||
<script>
|
||||
var fileUploadErrors = {
|
||||
maxFileSize: 'File is too big',
|
||||
minFileSize: 'File is too small',
|
||||
acceptFileTypes: 'Filetype not allowed',
|
||||
maxNumberOfFiles: 'Max number of files exceeded',
|
||||
uploadedBytes: 'Uploaded bytes exceed file size',
|
||||
emptyResult: 'Empty file upload result'
|
||||
};
|
||||
</script>
|
||||
|
||||
<!-- The template to display files available for upload -->
|
||||
<script id="template-upload" type="text/x-tmpl">
|
||||
{% for (var i=0, file; file=o.files[i]; i++) { %}
|
||||
<tr class="template-upload fade">
|
||||
<!--<td class="preview"><span class="fade"></span></td>-->
|
||||
<td class="name"><span>{%=file.name %}</span></td>
|
||||
<td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
|
||||
{% if (file.error) { %}
|
||||
<td class="error" colspan="2"><span class="label label-important">{%=locale.fileupload.error%}</span> {%=locale.fileupload.errors[file.error] || file.error%}</td>
|
||||
{% } else if (o.files.valid && !i) { %}
|
||||
<td>
|
||||
<div class="progress progress-success progress-striped active"><div class="bar" style="width:0%;"></div></div>
|
||||
</td>
|
||||
<td class="start">{% if (!o.options.autoUpload) { %}
|
||||
<button class="btn btn-primary">
|
||||
<i class="icon-upload icon-white"></i>
|
||||
<span>{%=locale.fileupload.start%}</span>
|
||||
</button>
|
||||
{% } %}</td>
|
||||
{% } else { %}
|
||||
<td colspan="2"></td>
|
||||
{% } %}
|
||||
<td class="cancel">{% if (!i) { %}
|
||||
<button class="btn btn-warning">
|
||||
<i class="icon-ban-circle icon-white"></i>
|
||||
<span>{%=locale.fileupload.cancel%}</span>
|
||||
</button>
|
||||
{% } %}</td>
|
||||
</tr>
|
||||
{% } %}
|
||||
</script>
|
||||
<!-- The template to display files available for download -->
|
||||
<script id="template-download" type="text/x-tmpl">
|
||||
{% for (var i=0, file; file=o.files[i]; i++) { %}
|
||||
<tr class="template-download fade">
|
||||
{% if (file.error) { %}
|
||||
<td></td>
|
||||
<td class="name"><span>{%=file.name%}</span></td>
|
||||
<td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
|
||||
<td class="error" colspan="2"><span class="label label-important">{%=locale.fileupload.error%}</span> {%=locale.fileupload.errors[file.error] || file.error%}</td>
|
||||
{% } else { %}
|
||||
<!--<td class="preview">{% if (file.thumbnail_url) { %}
|
||||
<a href="{%=file.url%}" title="{%=file.name%}" rel="lva" download="{%=file.name%}"><img src="{%=file.thumbnail_url%}"></a>
|
||||
{% } %}</td>-->
|
||||
<td class="name">
|
||||
<a href="{%=file.url%}" title="{%=file.name%}" rel="{%=file.thumbnail_url&&'lva'%}" download="{%=file.name%}">{%=file.name%}</a>
|
||||
</td>
|
||||
<td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
|
||||
<td colspan="2"></td>
|
||||
{% } %}
|
||||
<td class="delete">
|
||||
<button class="btn btn-danger" data-type="{%=file.delete_type%}" data-url="{%=file.delete_url%}">
|
||||
<i class="icon-trash icon-white"></i>
|
||||
<span>{%=locale.fileupload.destroy%}</span>
|
||||
</button>
|
||||
<input type="checkbox" name="delete" value="1">
|
||||
</td>
|
||||
</tr>
|
||||
{% } %}
|
||||
</script>
|
||||
|
||||
<script type="text/javascript" charset="utf-8">
|
||||
$(function () {
|
||||
// Initialize the jQuery File Upload widget:
|
||||
$('#fileupload').fileupload();
|
||||
//
|
||||
// Load existing files:
|
||||
$.getJSON($('#fileupload').prop('action'), function (files) {
|
||||
var fu = $('#fileupload').data('blueimpFileupload'),
|
||||
template;
|
||||
fu._adjustMaxNumberOfFiles(-files.length);
|
||||
console.log(files);
|
||||
// no Download on Upload form
|
||||
//template = fu._renderDownload(files)
|
||||
//.appendTo($('#fileupload .files'));
|
||||
// Force reflow:
|
||||
fu._reflow = fu._transition && template.length &&
|
||||
template[0].offsetWidth;
|
||||
template.addClass('in');
|
||||
$('#loading').remove();
|
||||
});
|
||||
$('#beispiel_beispieldatei').attr('name', 'beispiel[beispieldatei]');
|
||||
$('#beispiel_beispieldatei').fileupload();
|
||||
|
||||
});
|
||||
</script>
|
||||
@@ -25,7 +25,7 @@
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="row-fluid">
|
||||
<%= f.input :desc %>
|
||||
<%= f.input :desc , :as=>:tinymce_text %>
|
||||
<%= f.input :pruefungsinformation %>
|
||||
<%= f.input :lernaufwand %>
|
||||
</div></div>
|
||||
@@ -39,7 +39,7 @@
|
||||
</div>
|
||||
<div class="span3">
|
||||
|
||||
<%= f.input :semester, :as=>:check_boxes%>
|
||||
<%= f.input :semester, :as=>:check_boxes, :collection=>@semester%>
|
||||
<%= f.input :lecturers, :as=>:check_boxes%>
|
||||
</div>
|
||||
<% end %>
|
||||
@@ -47,3 +47,4 @@
|
||||
<%= f.action :submit, :as => :input %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<%= tinymce %>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<h1><%=@lva.typ.to_s + ' ' + @lva.name %></h1>
|
||||
<h2>Prüfungsinformation</h2>
|
||||
<div class="">
|
||||
<%= @lva.pruefungsinformation %>
|
||||
<%= @lva.pruefungsinformation.html_safe %>
|
||||
</div>
|
||||
<h2>Lernaufwand</h2>
|
||||
<div class="">
|
||||
@@ -14,7 +14,7 @@
|
||||
</div>
|
||||
<h2>Beschreibung</h2>
|
||||
<div class="">
|
||||
<%= @lva.desc %>
|
||||
<%= @lva.desc.to_s.html_safe %>
|
||||
</div>
|
||||
<div class="row-fluid">
|
||||
<h2>Beispiele</h2>
|
||||
@@ -59,3 +59,4 @@
|
||||
|
||||
<%= render 'layouts/pretty_toolbar' %>
|
||||
</div>
|
||||
<%= render 'beispiele/form_bulk' %>
|
||||
|
||||
41
app/views/moduls/edit_lvas.html.erb
Normal file
41
app/views/moduls/edit_lvas.html.erb
Normal file
@@ -0,0 +1,41 @@
|
||||
<%= semantic_form_for "lvas[]", :url=>modul_update_lvas_path(@modul) do |ff|%>
|
||||
<table>
|
||||
<% i = 0 %>
|
||||
<% @lvas.each do |lva|%>
|
||||
<% i = i +1 %>
|
||||
<tr>
|
||||
<%= semantic_fields_for "lvas[#{i}]", lva do |f|%>
|
||||
<td>
|
||||
<h4><%= lva.name %></h4>
|
||||
<%= f.semantic_errors :state %>
|
||||
<%= f.input :id, :as=>:hidden %></td>
|
||||
<td><%= f.input :lvanr , :input_html => { "style"=>"width:7em" }%></td>
|
||||
|
||||
|
||||
<td><%= f.input :name %></td>
|
||||
<td><%= f.input :ects, :input_html => { "style"=>"width:4em" },:size=>5 %>
|
||||
<%= f.input :stunden, :input_html => { "style"=>"width:4em" }%></td>
|
||||
<td><%= f.input :typ, :input_html => { "style"=>"width:4em" }%></td>
|
||||
<td>
|
||||
<%= f.input :semester , :input_html=>{:style=>"height:8em"},:collection=>@semester%></td>
|
||||
|
||||
<td><%= f.input :pruefungsinformation,:input_html=>{:rows=>4} %></td>
|
||||
|
||||
<td><%= f.input :desc, :input_html=>{:rows=>4}%></td>
|
||||
<td>
|
||||
<%= lva.valid? %>
|
||||
|
||||
</td>
|
||||
|
||||
<% end%>
|
||||
|
||||
</tr>
|
||||
<% end %>
|
||||
|
||||
<%= ff.actions do %>
|
||||
<%= ff.action :submit, :as => :button %>
|
||||
<%= ff.action :cancel, :as => :link %>
|
||||
<% end %>
|
||||
|
||||
|
||||
<% end %>
|
||||
15
app/views/moduls/load_tiss.html.erb
Normal file
15
app/views/moduls/load_tiss.html.erb
Normal file
@@ -0,0 +1,15 @@
|
||||
<%= semantic_form_for "lvas[]", :url=>modul_show_tiss_path(params[:modul_id]) do |ff|%>
|
||||
<% for i in 1..5 do %>
|
||||
|
||||
<%= semantic_fields_for "lvas[#{i}]" do |f| %>
|
||||
<%= f.input :lvanr %>
|
||||
<%= f.input :sem , :input_html => { "style"=>"width:7em" },:as=>:select, :collection=>["2013W","2014S"] %>
|
||||
<% end %>
|
||||
|
||||
<% end %>
|
||||
<%= ff.actions do %>
|
||||
<%= ff.action :submit, :as => :button %>
|
||||
<%= ff.action :cancel, :as => :link %>
|
||||
<% end %>
|
||||
|
||||
<% end %>
|
||||
23
app/views/themes/2003/themengruppen/show.html.erb
Normal file
23
app/views/themes/2003/themengruppen/show.html.erb
Normal file
@@ -0,0 +1,23 @@
|
||||
<h1><%= @themengruppe.title %></h1>
|
||||
<p>
|
||||
<%= @themengruppe.text %>
|
||||
</p>
|
||||
<ul class="unstyled linkbox-list" >
|
||||
<% @themengruppe.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' %>
|
||||
@@ -61,7 +61,9 @@ end
|
||||
post 'show_tiss'
|
||||
end
|
||||
|
||||
resources :lvas
|
||||
resources :lvas do
|
||||
resources :beispiele, :only=>[:show,:index]
|
||||
end
|
||||
|
||||
resources :fragen
|
||||
# get 'rubriken/verwalten', :controller=>:rubriken, :action=>:alle_verwalten, :as=>'alle_verwalten_rubrik'
|
||||
|
||||
Reference in New Issue
Block a user