This commit is contained in:
HausdorffHimself
2013-08-24 04:17:03 +02:00
25 changed files with 131 additions and 43 deletions

View File

@@ -19,7 +19,7 @@ class MembershipsController < ApplicationController
# POST /memberships.json # POST /memberships.json
def create def create
@membership = Membership.new(params[:membership]) @membership = Membership.new(params[:membership])
@membership.fetprofile= Fetprofle.find(params[:fetprofile_id])
respond_to do |format| respond_to do |format|
if @membership.save if @membership.save
format.html { redirect_to @membership.fetprofile, notice: 'Membership was successfully created.' } format.html { redirect_to @membership.fetprofile, notice: 'Membership was successfully created.' }

View File

@@ -10,6 +10,9 @@ class NeuigkeitenController < ApplicationController
@neuigkeit = Neuigkeit.find(params[:id]) @neuigkeit = Neuigkeit.find(params[:id])
if can? :edit, @neuigkeit if can? :edit, @neuigkeit
@toolbar_elements << {:text=>I18n.t('common.edit'),:path=>edit_neuigkeit_path(@neuigkeit),:icon=>:pencil} @toolbar_elements << {:text=>I18n.t('common.edit'),:path=>edit_neuigkeit_path(@neuigkeit),:icon=>:pencil}
@toolbar_elements << {:hicon=>'icon-remove-circle', :text=> I18n.t('common.delete'),:path => neuigkeit_path(@neuigkeit), :method=> :delete,:confirm=>"Sure?" }
@toolbar_elements << {:hicon=>'icon-plus', :text=> "publish",:path => neuigkeit_publish_path(@neuigkeit),:confirm=>"Sure?" }
end end
end end
@@ -19,14 +22,19 @@ class NeuigkeitenController < ApplicationController
@neuigkeit.rubrik=@rubrik unless @rubrik.nil? @neuigkeit.rubrik=@rubrik unless @rubrik.nil?
end end
def publish
@neuigkeit = Neuigkeit.find(params[:id])
@neuigkeit.publish
@neuigkeit.save
redirect_to @neuigkeit
end
def edit def edit
@neuigkeit = Neuigkeit.find(params[:id]) @neuigkeit = Neuigkeit.find(params[:id])
end end
def create def create
@neuigkeit = Neuigkeit.new(params[:neuigkeit]) @neuigkeit = Neuigkeit.new(params[:neuigkeit])
@rubrik = @neuigkeit.rubrik
respond_to do |format| respond_to do |format|
if @neuigkeit.save if @neuigkeit.save

View File

@@ -3,7 +3,7 @@ class RubrikenController < ApplicationController
load_and_authorize_resource load_and_authorize_resource
def index def index
@rubriken = Rubrik.all @rubriken = Rubrik.all
@neuigkeiten = Neuigkeit.recent
end end

View File

@@ -15,4 +15,5 @@ class Calendar < ActiveRecord::Base
has_and_belongs_to_many :calentries has_and_belongs_to_many :calentries
mount_uploader :picture, PictureUploader mount_uploader :picture, PictureUploader
resourcify resourcify
scope :public, -> { where(:public => :true) }
end end

View File

@@ -16,14 +16,21 @@ class Calentry < ActiveRecord::Base
has_and_belongs_to_many :calendars has_and_belongs_to_many :calendars
validates :start, :presence => true validates :start, :presence => true
validates :typ, :presence => true validates :typ, :presence => true
before_save :get_public
belongs_to :object, polymorphic: true
validate do |entry| validate do |entry|
if entry.ende.nil? if entry.ende.nil?
errors.add(:ende, "Es muss ein Endzeitpunkt vorhanden sein") errors.add(:ende, "Es muss ein Endzeitpunkt vorhanden sein")
end end
end end
belongs_to :object, polymorphic: true
resourcify resourcify
def get_public
self.public = (self.try(:object).nil?)? (self.calendars.public.count>0) : object.try(:public)
true
end
def start_time def start_time
start start
end end
@@ -33,5 +40,6 @@ class Calentry < ActiveRecord::Base
def name def name
summary summary
end end
scope :public, -> { where(:public => :true) }
scope :upcoming, -> { where("start >= ?" , Time.now).where("start <= ?", 8.days.from_now) } scope :upcoming, -> { where("start >= ?" , Time.now).where("start <= ?", 8.days.from_now) }
end end

View File

@@ -14,14 +14,30 @@
class Neuigkeit < ActiveRecord::Base class Neuigkeit < ActiveRecord::Base
attr_accessible :datum, :text, :title, :rubrik_id, :author_id attr_accessible :datum, :text, :title, :rubrik_id, :author_id,:picture
belongs_to :author, :class_name =>'User' belongs_to :author, :class_name =>'User'
belongs_to :rubrik, :class_name =>'Rubrik', :foreign_key => "rubrik_id" belongs_to :rubrik, :class_name =>'Rubrik', :foreign_key => "rubrik_id"
validates :rubrik, :presence=>true validates :rubrik, :presence=>true
validates :author, :presence=>true validates :author, :presence=>true
translates :title,:text, :versioning=>true, :fallbacks_for_empty_translations => true translates :title,:text, :versioning=>true, :fallbacks_for_empty_translations => true
has_one :calentry, :as => :object
scope :published, -> {where("datum >= ?", Time.now.to_date)} mount_uploader :picture, PictureUploader
scope :recent, -> { where("updated_at >= ? ",Time.now - 7.days)} scope :published, -> {where("datum >= ? AND datum IS NOT NULL", Time.now.to_date)}
scope :recent, -> { published.where("updated_at >= ? ",Time.now - 7.days)}
def datum_nilsave
self.datum.nil? ? Time.now + 42.years : self.datum
end
def public
self.rubrik.public && self.datum >=Time.now.to_date
end
def publish
self.datum = Time.now
end
def reverse_publish
self.datum = nil
end
def text_first_words
md = /<p>(?<text>[\w\s,\.!\?]*)/.match self.text
md[:text].split(" ")[1..100].join(" ")+ " ..."
end
end end

View File

@@ -13,6 +13,7 @@
class Rubrik < ActiveRecord::Base class Rubrik < ActiveRecord::Base
attr_accessible :desc, :name, :prio attr_accessible :desc, :name, :prio
has_many :neuigkeiten, :class_name => "Neuigkeit" has_many :neuigkeiten, :class_name => "Neuigkeit"
has_many :calentries, :through => :neuigkeiten, :as=>:object
resourcify resourcify
def moderator def moderator
u=User.with_role(:newsmoderator).first u=User.with_role(:newsmoderator).first

View File

@@ -35,7 +35,10 @@ class PictureUploader < CarrierWave::Uploader::Base
version :thumb do version :thumb do
process :resize_to_fill => [64, 64] process :resize_to_fill => [64, 64]
end end
version :big_thumb do
process :resize_to_fill => [200,200]
end
version :portrait do version :portrait do
process :resize_to_fill => [128,192] process :resize_to_fill => [128,192]
end end

View File

@@ -2,8 +2,9 @@
<h2><%= link_to modulgruppe.name, modulgruppe_path(modulgruppe) %> <h2><%= link_to modulgruppe.name, modulgruppe_path(modulgruppe) %>
</h2> </h2>
<%= modulgruppe.desc%> <%= modulgruppe.desc%><ul>
<%= render :partial=>'moduls/kurz', :collection=>modulgruppe.moduls, :as=>:modul%> <%= render :partial=>'moduls/kurz', :collection=>modulgruppe.moduls, :as=>:modul%>
</ul>
<br> <br>
<% link_to '<i class="icon-pencil"></i>'.html_safe+I18n.t("common.edit"), edit_modulgruppe_path(modulgruppe) %> <% link_to '<i class="icon-pencil"></i>'.html_safe+I18n.t("common.edit"), edit_modulgruppe_path(modulgruppe) %>

View File

@@ -1,6 +1,6 @@
<div style="border: solid 1px; padding:2px;margin-top:5px;"><p> <li><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>
<% 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>

View File

@@ -12,17 +12,24 @@
</div> </div>
<div class="span4"> <div class="span4">
<div class="lva-sidebar">
<h2>Modulgruppen</h2> <h2>Modulgruppen</h2>
<ul>
<% @modul.modulgruppen.each do |mg| %> <% @modul.modulgruppen.each do |mg| %>
<%= render 'modulgruppen/kurz', :modulgruppe=>mg %><br> <li>
<%= render 'modulgruppen/kurz', :modulgruppe=>mg %>
</li>
<% end %> <% end %>
</ul>
<h2>Lvas</h2> <h2>Lvas</h2>
<% @modul.lvas.each_slice(3) do |row| %> <% @modul.lvas.each_slice(3) do |row| %>
<ul>
<% row.each do |lv| %> <% row.each do |lv| %>
<li>
<%= render 'lvas/lva_semester', :lva=>lv%> <%= render 'lvas/lva_semester', :lva=>lv%>
</li>
<% end %> <% end %>
</ul>
<% end %> <% end %>
</div>
</div></div> </div></div>

View File

@@ -3,9 +3,10 @@
<%= f.inputs do %> <%= f.inputs do %>
<%= f.input :title, :placeholder=>"Titel" %> <%= f.input :title, :placeholder=>"Titel" %>
<%= f.input :text, :as=>:tinymce_text %> <%= f.input :text, :as=>:tinymce_text %>
<%= f.input :datum %> <% f.input :datum %>
<%= f.input :rubrik, :as=>:radio, :collection=>Rubrik.all %> <%= f.input :rubrik, :as=>:radio, :collection=>Rubrik.all %>
<%= f.input :author, :as=>:radio %> <%= f.input :author, :as=>:radio %>
<%= f.input :picture, :as=>:file %>
<% end %> <% end %>
<%= f.actions do %> <%= f.actions do %>

View File

@@ -1,6 +1,15 @@
<h2><%= link_to neuigkeit.title,neuigkeit_path(neuigkeit) %></h2>
<%= if !neuigkeit.author.nil? <div class="media">
neuigkeit.author.email <div class="pull-left" href="#">
end %> <p><br><%= image_tag neuigkeit.picture.thumb.url unless neuigkeit.picture.url.nil? %></p>
<p><%= raw(neuigkeit.text) %></p> </div>
<div class="media-body"><div><small><%= neuigkeit.rubrik.name %></small>
<small class="pull-right"><%= "am "+ I18n.l(neuigkeit.try(:datum).try(:to_date)) unless neuigkeit.try(:datum).try(:to_date).nil? %></small> </div>
<h1><%= link_to neuigkeit.title,neuigkeit_path(neuigkeit) %></h1>
<%= raw(neuigkeit.text_first_words) unless neuigkeit.text.nil?%>
<%= link_to "more" , neuigkeit_path(neuigkeit) %>
<p></p>
</div>
</div>

View File

@@ -9,20 +9,22 @@
<div class="span9"> <div class="span9">
<%= @neuigkeit.rubrik.name %> <%= @neuigkeit.rubrik.name %>
</div> </div>
<div class="span3"><p> <div class="span3">
<%= @neuigkeit.try(:author).email.to_s %> am
<%= I18n.l @neuigkeit.datum.to_date %></p> <%= @neuigkeit.author.email.to_s unless @neuigkeit.try(:author).try(:email).to_s %>
<%= "am " + I18n.l(@neuigkeit.try(:datum).try(:to_date)) unless @neuigkeit.try(:datum).try(:to_date).nil? %>
</div> </div>
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span12"> <div class="span12">
<div class="media"> <div class="media">
<div class="pull-right" href="#"> <div class="pull-left" href="#">
<p><br><%= "FOTO" %></p> <p><br><%= link_to image_tag(@neuigkeit.picture.big_thumb.url),@neuigkeit.picture.url %></p>
</div> </div>
<div class="media-body"> <div class="media-body">
<h1><%= link_to @neuigkeit.title,neuigkeit_path(@neuigkeit) %></h1> <h1><%= link_to @neuigkeit.title,neuigkeit_path(@neuigkeit) %></h1>
<%= raw(@neuigkeit.text) %> <%= raw(@neuigkeit.text) %>
<p></p>
</div> </div>
</div> </div>
</div> </div>

View File

@@ -1,12 +1,12 @@
<%= render 'tabs' %> <%= render 'tabs' %>
<h1><%= I18n.t("rubrik.title")%></h1> <h1><%= I18n.t("rubrik.title")%></h1>
<% @rubriken.each do |rubrik| %>
<% rubrik.neuigkeiten.recent.each do |n| %> <ul class="unstyled"
<li><%= link_to n.title+"("+rubrik.name+")" , n %> </li> <% @neuigkeiten.each do |n| %>
<% end %>
<%= link_to 'Weitere Artikel zu '+rubrik.name.to_s , rubrik %> <li><%= render n %> </li>
<% end %> <% end %>
</ul>

View File

@@ -21,7 +21,7 @@
<% row.each do |neuigkeit| %> <% row.each do |neuigkeit| %>
<div class="span6 min-width:13em;"> <div class="span6 min-width:13em;">
<%= render neuigkeit %> <%= render neuigkeit %>
<%= link_to "more" , neuigkeit_path(neuigkeit) %>
</div> </div>
<% end %> <% end %>
</div> </div>

View File

@@ -1,6 +1,6 @@
<div class="studium"> <div class="studium">
<h2><%= link_to studium.name + " " + studium.zahl.to_s, studium_path(studium, :ansicht=>'semesteransicht')%></h2> <p><b><%= studium.typ%> </b></p> <h2><%= link_to studium.name + " " + studium.zahl.to_s, studium_path(studium, :ansicht=>'semesteransicht')%></h2> <p><b><%= studium.typ%> </b></p>
<p><b>Beschreibung:</b><br> <p><b><%=I18n.t("studien.desc")%>:</b><br>
<%= !(studium.desc.to_s == "") ? studium.desc.html_safe : I18n.t("keine.beschreibung")%></p> <%= !(studium.desc.to_s == "") ? studium.desc.html_safe : I18n.t("keine.beschreibung")%></p>
</div> </div>

View File

@@ -4,7 +4,7 @@
<% else %> <% else %>
<li> <li>
<% end %> <% end %>
<%= link_to "Alle Studien", studien_path %> </li> <%= link_to I18n.t("studien.allestudien"), studien_path %> </li>
<% for s in Studium.all %> <% for s in Studium.all %>
<% if !@studium.nil? && s == @studium %> <% if !@studium.nil? && s == @studium %>
@@ -20,6 +20,6 @@
<% else %> <% else %>
<li class="pull-right"> <li class="pull-right">
<% end %> <% end %>
<%= link_to "Verwaltung", studien_verwalten_path %> <%= link_to I18n.t("studien.verwaltung.title"), studien_verwalten_path %>
</li> </li>
</ul> </ul>

View File

@@ -18,7 +18,7 @@
<div class="span8"> <div class="span8">
<h2><%= sem.name %></h2> <h2><%= sem.name %></h2>
</div> </div>
<div class="span4"><div class="pull-right"><%= link_to 'Lvas hinzufügen/entfernen', edit_semester_path(sem), :class=>"btn-small"%></div> <div class="span4"><div class="pull-right"><%= link_to I18n.t("lva.addrem"), edit_semester_path(sem), :class=>"btn-small"%></div>
</div></div> </div></div>
<% sem.lvas.each do |lva| %> <% sem.lvas.each do |lva| %>
<div class="row-fluid"> <div class="row-fluid">

View File

@@ -1,5 +1,6 @@
de: de:
studien: studien:
desc: "Beschreibung"
studien: "Studien" studien: "Studien"
list: "Studien der Fakultät Elektrotechnik" list: "Studien der Fakultät Elektrotechnik"
anzeigen: "Studium anzeigen" anzeigen: "Studium anzeigen"
@@ -21,6 +22,7 @@ de:
beschreibung: "Keine Beschreibung vorhanden" beschreibung: "Keine Beschreibung vorhanden"
lva: lva:
add: "Lva hinzufügen" add: "Lva hinzufügen"
addrem: "Lva hinzufügen/entfernen"
list: "Alle Lvas" list: "Alle Lvas"
semester: semester:
ohne: "Ohne Semesterzuordnung" ohne: "Ohne Semesterzuordnung"

View File

@@ -51,7 +51,8 @@
resources :neuigkeiten resources :neuigkeiten
resources :fragen resources :fragen
get 'rubriken/verwalten', :controller=>:rubriken, :action=>:alle_verwalten, :as=>'alle_verwalten_rubrik' get 'rubriken/verwalten', :controller=>:rubriken, :action=>:alle_verwalten, :as=>'alle_verwalten_rubrik'
get 'neuigkeiten/:id/publish', :controller=>:neuigkeiten, :action=>:publish, :as=>'neuigkeit_publish'
resources :rubriken do resources :rubriken do
resources :neuigkeiten, :only=>[:new, :show] resources :neuigkeiten, :only=>[:new, :show]
end end

View File

@@ -3,13 +3,13 @@ class TranslateLvas < ActiveRecord::Migration
Lva.create_translation_table!({ Lva.create_translation_table!({
:desc => :text :desc => :text
}, { }, {
#:migrate_data => true :migrate_data => true
}) })
end end
def self.down def self.down
Lva.drop_translation_table! #:migrate_data => true Lva.drop_translation_table! :migrate_data => true
end end
end end

View File

@@ -0,0 +1,14 @@
class AddObjectToCalentries < ActiveRecord::Migration
def up
add_column :calentries,:object_id, :integer
add_column :calentries,:object_type, :string
add_column :calentries, :public, :boolean
Calentry.update_all(:public => :true)
end
def down
remove_column :calentries, :object_id
remove_column :calentries,:object_type
remove_column :calentries,:public
end
end

View File

@@ -0,0 +1,9 @@
class AddPublicToRubrikneuigkeiten < ActiveRecord::Migration
def up
add_column :rubriken, :public,:boolean
Rubrik.update_all(:public => :true)
end
def down
remove_column :rubriken, :public
end
end

View File

@@ -0,0 +1,5 @@
class AddPictureToNeuigkeiten < ActiveRecord::Migration
def change
add_column :neuigkeiten,:picture,:string
end
end