diff --git a/app/controllers/neuigkeiten_controller.rb b/app/controllers/neuigkeiten_controller.rb index 1211e41..dabdad6 100755 --- a/app/controllers/neuigkeiten_controller.rb +++ b/app/controllers/neuigkeiten_controller.rb @@ -8,15 +8,17 @@ class NeuigkeitenController < ApplicationController @neuigkeit.versions.reverse[params[:version].to_i].reify.save! @neuigkeit=Neuigkeit.find(params[:id]) end - + @calentries1=@neuigkeit.calentries if params[:verwalten] @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 + @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.versions.select([:created_at]).reverse @toolbar_elements <<{:path=>rubrik_neuigkeit_path(@neuigkeit.rubrik,@neuigkeit),:method=>:versions,:versions=>@versions} - @toolbar_elements << {:text=>I18n.t('common.edit'),:path=>edit_rubrik_neuigkeit_path(@neuigkeit.rubrik,@neuigkeit),:icon=>:pencil} if can? :edit, @neuigkeit.rubrik - @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} + + @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} else @toolbar_elements << {:text=>I18n.t('common.verwalten'),:path=>rubrik_neuigkeit_path(@neuigkeit.rubrik,@neuigkeit,{:verwalten=>true}),:icon=>:pencil} if can? :verwalten, @neuigkeit @@ -66,6 +68,9 @@ class NeuigkeitenController < ApplicationController def edit @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<< Calentry.new + end def create diff --git a/app/controllers/rubriken_controller.rb b/app/controllers/rubriken_controller.rb index 9ab537e..639fc9d 100755 --- a/app/controllers/rubriken_controller.rb +++ b/app/controllers/rubriken_controller.rb @@ -14,6 +14,12 @@ class RubrikenController < ApplicationController else @neuigkeiten = @rubrik.neuigkeiten.published 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('common.verwalten'),:path=>verwalten_rubrik_path(@rubrik),:icon=>:pencil} if can? :verwalten, @rubrik + + + end def new @@ -83,6 +89,9 @@ end @neuigkeiten_unpublished = @rubrik.neuigkeiten.unpublished @neuigkeiten_published=@rubrik.neuigkeiten.published @moderatoren=User.with_role(:newsmoderator,@rubrik) +@toolbar_elements << {:text=>I18n.t('neuigkeit.new.title'),:path=> new_rubrik_neuigkeit_path(@rubrik),:hicon=>'icon-plus-sign'} if can? :verwalten, @rubrik + + end # Alle Rubriken verwalten und Sachen einstellen.. diff --git a/app/models/ability.rb b/app/models/ability.rb index 8b9a52d..f9388ae 100755 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -67,7 +67,7 @@ class Ability if user.has_role?("newsadmin") || user.has_role?("fetadmin") can :addmoderator, Rubrik end - can [:show, :index], [Rubrik,Neuigkeit], :public=>true + can [:show, :index], [Rubrik,Neuigkeit] if user.has_role?("newsadmin") || user.has_role?( "fetadmin") || user.has_role?( "fetuser") can :manage, Rubrik can :manage, Neuigkeit diff --git a/app/models/calendar.rb b/app/models/calendar.rb index e4bbad6..1f3b903 100644 --- a/app/models/calendar.rb +++ b/app/models/calendar.rb @@ -15,7 +15,7 @@ class Calendar < ActiveRecord::Base has_many :calentries mount_uploader :picture, PictureUploader belongs_to :rubrik - validates :rubrik, :presence=>true + # validates :rubrik, :presence=>true resourcify scope :public_cals, -> { where(:public => :true) } diff --git a/app/models/calentry.rb b/app/models/calentry.rb index 9057992..a52157b 100644 --- a/app/models/calentry.rb +++ b/app/models/calentry.rb @@ -40,10 +40,15 @@ validate do |entry| start.to_date end def dauer - (self.ende-self.start)/3600 +if self.ende.nil? && self.start.nil? +0 +else +self.ende = self.start unless self.start.nil? + (self.ende-self.start)/3600 +end end def dauer=(dauer) - self.ende=self.start+dauer.to_i.hours + self.ende=self.start+dauer.to_i.hours end def name unless self.object.nil? diff --git a/app/models/neuigkeit.rb b/app/models/neuigkeit.rb index d15cf71..72b4f94 100755 --- a/app/models/neuigkeit.rb +++ b/app/models/neuigkeit.rb @@ -14,25 +14,30 @@ class Neuigkeit < ActiveRecord::Base - attr_accessible :datum, :text, :title, :rubrik_id, :author_id,:picture, :calentry_attributes + attr_accessible :datum, :text, :title, :rubrik_id, :author_id,:picture, :calentries_attributes belongs_to :author, :class_name =>'User' belongs_to :rubrik, :class_name =>'Rubrik', :foreign_key => "rubrik_id" validates :rubrik, :presence=>true validates :author, :presence=>true translates :title,:text, :versioning=>true, :fallbacks_for_empty_translations => true - has_one :calentry, inverse_of: :object + has_many :calentries, inverse_of: :object mount_uploader :picture, PictureUploader scope :published, -> {where("datum <= ? AND datum IS NOT NULL", Time.now.to_date).order(:datum).reverse_order} scope :recent, -> { published.where("updated_at >= ? ",Time.now - 7.days)} scope :unpublished, -> {where("datum >= ? OR datum IS NULL", Date.today)} scope :public, ->{includes(:rubrik).where("rubriken.public"=>:true)} -accepts_nested_attributes_for :calentry, :allow_destroy=>true + accepts_nested_attributes_for :calentries, :allow_destroy=>true , :reject_if=> lambda{|a| a[:start].blank?} +before_save :sanitize def datum_nilsave self.datum.nil? ? Time.now + 42.years : self.datum end def public self.rubrik.public && self.datum_nilsave >=Time.now.to_date end + def published? + self.datum_nilsave>=Time.now.to_date + end + def publish self.datum = Date.today end @@ -46,4 +51,11 @@ end md = /
(?
- y
<%= calendar.name %>
- <%= link_to 'Verwalten', verwalten_rubrik_path(@rubrik) %> |
- <%= link_to ''.html_safe+"Neuer Artikel", new_rubrik_neuigkeit_path(@rubrik) %>
+<%= render 'layouts/pretty_toolbar', :object=> @toolbar_elements %>
-<%= toolbar_html(@toolbar_elements)%>
diff --git a/config/locales/date.de.yml b/config/locales/date.de.yml
index 510c5a2..80a9e1a 100644
--- a/config/locales/date.de.yml
+++ b/config/locales/date.de.yml
@@ -194,4 +194,5 @@ de:
default: ! '%d.%m.%Y, %H:%M Uhr'
long: ! '%A, %d. %B %Y, %H:%M Uhr'
short: ! '%d.%m.%Y, %H:%M Uhr'
+ timeonly: ! '%H:%M Uhr'
pm: nachmittags
diff --git a/config/locales/neuigkeiten.de.yml b/config/locales/neuigkeiten.de.yml
index 171d8b3..9a12ca3 100644
--- a/config/locales/neuigkeiten.de.yml
+++ b/config/locales/neuigkeiten.de.yml
@@ -2,8 +2,10 @@
de:
neuigkeit:
publish: "Neuigkeit veröffentlichen"
+ republish: "Neuigkeit erneut veröffentlichen"
+ unpublish: "Veröffentlichung rückgängig"
new:
- title: "Neue Neuigkeit"
+ title: "Neuer Artikel"
rubriken:
alle: "Alle Rubriken"
rubrik:
diff --git a/config/routes.rb b/config/routes.rb
index def54c9..44d0176 100755
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -56,6 +56,7 @@
#resources :neuigkeiten, :except => [:index] do
#end
+ resources :neuigkeiten, :only =>[:show]
resources :rubriken do
collection do
get 'verwalten' , :action => :alle_verwalten