forked from bofh/fetsite
Beispiele als ZIP Datei
This commit is contained in:
1
Gemfile
1
Gemfile
@@ -98,3 +98,4 @@ gem "seed_dump", "~> 0.5.3"
|
||||
#gem "themes_for_rails", :git=> 'git://github.com/lucasefe/themes_for_rails.git'
|
||||
gem 'themes_for_rails'
|
||||
|
||||
gem 'rubyzip'
|
||||
@@ -1,5 +1,6 @@
|
||||
class LvasController < ApplicationController
|
||||
# GET /lvas
|
||||
require 'zip'
|
||||
before_filter :load_toolbar, :only => [:show]
|
||||
load_and_authorize_resource
|
||||
def index
|
||||
@@ -9,7 +10,34 @@ class LvasController < ApplicationController
|
||||
{:hicon=>'icon-list', :text=>I18n.t("modul.list"),:path=>moduls_path},
|
||||
{:hicon=>'icon-list', :text=>I18n.t("lva.list"),:path=>lvas_path}]
|
||||
end
|
||||
def beispiel_sammlung
|
||||
@lva = Lva.find_by_id(params[:id])
|
||||
#Attachment name
|
||||
filename = 'beispiel_sammlung_' + @lva.lvanr.to_s + '_' + l(Date.today).to_s + '.zip'
|
||||
temp_file = Tempfile.new(filename)
|
||||
begin
|
||||
#This is the tricky part
|
||||
#Initialize the temp file as a zip file
|
||||
Zip::OutputStream.open(temp_file) { |zos| }
|
||||
#Add files to the zip file as usual
|
||||
Zip::File.open(temp_file.path, Zip::File::CREATE) do |zip|
|
||||
#Put files in here
|
||||
i=1
|
||||
@lva.beispiele.each do |bsp|
|
||||
zip.add(i.to_s + '_' + File.basename(bsp.beispieldatei.current_path), bsp.beispieldatei.current_path)
|
||||
i = i + 1
|
||||
end
|
||||
|
||||
end
|
||||
#Read the binary data from the file
|
||||
zip_data = File.read(temp_file.path)
|
||||
send_data(zip_data, :type => 'application/zip', :filename => filename)
|
||||
ensure
|
||||
#Close and delete the temp file
|
||||
temp_file.close
|
||||
temp_file.unlink
|
||||
end
|
||||
end
|
||||
# GET /lvas/1
|
||||
|
||||
def show
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
</div>
|
||||
|
||||
<h2>Beispiele</h2>
|
||||
<%= link_to t("beispiel.zip") , beispiel_sammlung_lva_path(@lva), class: :linkbox %>
|
||||
<% @lva.beispiele.each do |b| %>
|
||||
<%= render b%>
|
||||
<% end %>
|
||||
|
||||
@@ -16,6 +16,7 @@ de:
|
||||
beschreibung: "Keine Beschreibung vorhanden"
|
||||
beispiel:
|
||||
add: "Beispiel hinzufügen"
|
||||
zip: "Alle Beispiele als ZIP Datei"
|
||||
lecturers:
|
||||
lecturers: "Vortragende"
|
||||
file:
|
||||
@@ -23,3 +24,5 @@ de:
|
||||
semester:
|
||||
ohne: "Ohne Semesterzuordnung"
|
||||
semester: "Semester"
|
||||
home:
|
||||
newexamples: "Neueste Beispiele"
|
||||
@@ -65,6 +65,7 @@ Fetsite::Application.routes.draw do
|
||||
resources :beispiele#, :only=>[:show,:index,:create]
|
||||
resources :lvas do
|
||||
member do
|
||||
get 'beispiel_sammlung'
|
||||
get 'compare_tiss'
|
||||
get 'load_tiss'
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user