diff --git a/app/controllers/meetings_controller.rb b/app/controllers/meetings_controller.rb index 247cf4c..4dee6c5 100644 --- a/app/controllers/meetings_controller.rb +++ b/app/controllers/meetings_controller.rb @@ -2,12 +2,41 @@ class MeetingsController < ApplicationController - load_and_authorize_resource + # load_and_authorize_resource def index + parent=params[:parent_type].constantize.find(params[:parent_id]) + unless parent.nil? + #authorize! :show, parent + if params[:filter]=="upcomming" + @meetings=parent.meetings.includes(:calentry).where("calentries.start>?",1.hour.ago) + else + @meetings=parent.meetings + end + @parent=parent + end respond_to do |format| format.html {redirect_to rubriken_path} + format.js end end + def announce + m=Meeting.find(params[:id]) + m.create_announcement(current_user) + m.save + + respond_to do |format| + format.html {redirect_to m.parent} + format.js {render action: :show} + end + end + def show + m=Meeting.find(params[:id]) + respond_to do |format| + format.html {redirect_to m.parent} + format.js + + end +end def new @meeting=Meeting.new @meeting.parent=params[:parent_type].constantize.find(params[:parent_id]) diff --git a/app/controllers/neuigkeiten_controller.rb b/app/controllers/neuigkeiten_controller.rb index a0aaae1..9b2b03b 100755 --- a/app/controllers/neuigkeiten_controller.rb +++ b/app/controllers/neuigkeiten_controller.rb @@ -112,13 +112,13 @@ class NeuigkeitenController < ApplicationController end @calentries1=@neuigkeit.calentries - @nlink_search = Neuigkeit::LINKTYPES.clone + nlink_search = Neuigkeit::LINKTYPES.clone + nlink_search.collect!{|t| t.constantize} + # @nlink_search.collect!{|t| t.search(params[:query]).limit(2)} + @results= Sunspot.search nlink_search do + fulltext params[:query] + end - @nlink_search.collect!{|t| t.constantize} - @nlink_search.collect!{|t| t.search(params[:query]).limit(2)} - - - @nlink_search.flatten! respond_to do |format| format.html { render action:"show" } format.js diff --git a/app/controllers/rubriken_controller.rb b/app/controllers/rubriken_controller.rb index 8f8857b..88c6250 100755 --- a/app/controllers/rubriken_controller.rb +++ b/app/controllers/rubriken_controller.rb @@ -29,7 +29,7 @@ class RubrikenController < ApplicationController @rubrik = Rubrik.find(params[:id]) @moderatoren=User.with_role(:newsmoderator,@rubrik) - @calentries= @rubrik.calentries + @calentries= @rubrik.calendar.calentries if can?(:showunpublished, Neuigkeit) @neuigkeiten = @rubrik.neuigkeiten.page(params[:page]).per(3) else diff --git a/app/models/meeting.rb b/app/models/meeting.rb index 646311f..dd8cb9d 100644 --- a/app/models/meeting.rb +++ b/app/models/meeting.rb @@ -3,7 +3,7 @@ class Meeting < ActiveRecord::Base belongs_to :meetingtyp attr_accessible :desc, :intern, :name, :parent_id, :parent_type, :calentry,:calentry_attributes, :meetingtyp_id - + belongs_to :neuigkeit has_one :protocol, :class_name=>'Document', :conditions=>{:typ=>10}, :as=>:parent has_one :agenda , :as=>:parent,:conditions=>{:typ=>11}, :class_name=>'Document' has_one :calentry, as: :object @@ -12,17 +12,29 @@ class Meeting < ActiveRecord::Base # validate :protocol, :presence=>true validate :parent, :presence=>true validate :calentry, :presence=>true -before_validation :fix_calentry + before_validation :fix_calentry + def title + self.text + end def text unless self.meetingtyp.try(:name).to_s.empty? t = self.meetingtyp.name.to_s+", " else - t = parent.title", " if self.name.empty? + t = parent.title.to_s + ", " if self.name.empty? end - t= t+ self.name - t = t + " " + I18n.l(self .calentry.start) + t= t+ self.name.to_s + t = t + " " + I18n.l(self.calentry.start) unless self.calentry.nil? t end + def create_announcement(user) + n = Neuigkeit.new + + n.title=self.text + n.text ="Agenda im Anhang" + n.rubrik = self.meetingtyp.rubrik + n.author=user + self.neuigkeit= n + end def fix_calentry self.calentry.object=self unless self.calentry.nil? end diff --git a/app/models/meetingtyp.rb b/app/models/meetingtyp.rb index f610170..a7ff90d 100644 --- a/app/models/meetingtyp.rb +++ b/app/models/meetingtyp.rb @@ -1,3 +1,5 @@ class Meetingtyp < ActiveRecord::Base attr_accessible :agendaintern, :desc, :name, :protocolintern + belongs_to :rubrik + validate :rubrik, :presence=>true end diff --git a/app/models/neuigkeit.rb b/app/models/neuigkeit.rb index c23be25..daab01e 100755 --- a/app/models/neuigkeit.rb +++ b/app/models/neuigkeit.rb @@ -23,7 +23,7 @@ class Neuigkeit < ActiveRecord::Base has_many :calentries, as: :object has_many :nlinks - + has_one :meeting mount_uploader :picture, PictureUploader default_scope order(:datum).reverse_order @@ -38,7 +38,9 @@ class Neuigkeit < ActiveRecord::Base before_validation :sanitize - + def is_annoncement? + self.meeting.nil? + end def self.published where("datum <= ? AND datum IS NOT NULL", Time.now.to_date) end diff --git a/app/models/rubrik.rb b/app/models/rubrik.rb index 8d862fb..027156d 100755 --- a/app/models/rubrik.rb +++ b/app/models/rubrik.rb @@ -16,6 +16,7 @@ class Rubrik < ActiveRecord::Base has_many :published, :class_name => "Neuigkeit", :conditions=>["Neuigkeit.published"] has_many :calentries, :through => :neuigkeiten, :as=>:object resourcify + has_many :meetingtyps has_one :calendar validates :calendar , :presence=>true before_validation :sanitize diff --git a/app/models/studium.rb b/app/models/studium.rb index ceb73c6..a701f6a 100755 --- a/app/models/studium.rb +++ b/app/models/studium.rb @@ -29,7 +29,7 @@ class Studium < ActiveRecord::Base attr_accessible :desc, :name,:abkuerzung, :typ, :zahl, :semester, :picture, :picture_cache, :qualifikation,:struktur, :jobmoeglichkeiten, :lvas_attributes has_many :modulgruppen, inverse_of: :studium, :class_name => "Modulgruppe", :dependent => :destroy - scope :search, ->(query) {where("name like ? or studien.desc like ?", "%#{query}%", "%#{query}%")} +# scope :search, ->(query) {where("name like ? or studien.desc like ?", "%#{query}%", "%#{query}%")} has_many :moduls, :through=>:modulgruppen has_many :lvas, :through=>:moduls has_many :semester, :dependent => :destroy diff --git a/app/views/meetings/_meeting.html.erb b/app/views/meetings/_meeting.html.erb index b6d4a81..d5f69d9 100644 --- a/app/views/meetings/_meeting.html.erb +++ b/app/views/meetings/_meeting.html.erb @@ -1,5 +1,7 @@