This commit is contained in:
Andreas Stephanides
2014-12-14 21:30:21 +01:00
parent aa98919e88
commit 07944bce89
16 changed files with 104 additions and 26 deletions

View File

@@ -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])

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -1,3 +1,5 @@
class Meetingtyp < ActiveRecord::Base
attr_accessible :agendaintern, :desc, :name, :protocolintern
belongs_to :rubrik
validate :rubrik, :presence=>true
end

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -1,5 +1,7 @@
<div class="contentbox" id="meeting_<%= meeting.id%>">
<b><%= meeting.text %></b>
<b><%= link_to meeting.text, meeting %></b>
<%= link_to "Ankündigung", rubrik_neuigkeit_path(meeting.neuigkeit.rubrik, meeting.neuigkeit) unless meeting.neuigkeit.nil? %>
<%= link_to "ankündigen", announce_meeting_path(meeting), remote: true if meeting.neuigkeit.nil? %>
<%= link_to "edit", edit_meeting_path(meeting), remote: true %>
<%= link_to 'Delete', meeting, method: :delete, data: { confirm: 'Are you sure?' } , remote: true if can? :delete, meeting %>
<%= render meeting.calentry unless meeting.calentry.nil? %>

View File

@@ -0,0 +1,7 @@
<div id="meetings_for_<%= parent.class.to_s %>_<%= parent.id.to_s %>">
<% unless meeting_list.empty? %>
<% meeting_list.each do |m| %>
<%= render m %>
<% end%>
<% end%>
</div>

View File

@@ -0,0 +1 @@
$("#meetings_for_<%= @parent.class.to_s %>_<%= @parent.id.to_s %>").replaceWith("<%=escape_javascript( render :partial=>"meetings/meeting_list", object: @meetings, locals: {parent: @parent} ) %>");

View File

@@ -1,5 +1,19 @@
<div id="nlink_list_search">
<ul class="unstyled">
<%= render partial: "nlink_list_search", collection: nlink_list_search_whole %>
<% unless @results.nil? %>
<ul class="unstyled linkbox-list">
<% @results.results.each do |res| %>
<% if can?(:show, res) %>
<li>
<%= link_to create_link_rubrik_neuigkeit_path(@neuigkeit.rubrik, @neuigkeit, :link_id=>res.id, :link_type=>res.class.to_s), remote: true, class: :linkbox do %>
<%= render :partial=>res.class.to_s.pluralize.downcase+"/nlink", :object=>res %>
<% end %>
</li>
<% end %>
<% end %>
</ul>
<% end %>
<% render partial: "nlink_list_search", collection: nlink_list_search_whole %>
</ul>
</div>

View File

@@ -50,6 +50,9 @@ end
<%= render ce unless ce.nil? %>
<% end %>
</div>
<% unless @neuigkeit.meeting.nil? %>
<%= render @neuigkeit.meeting %>
<% end%>
<div id="calentry_new" ><%= link_to "new Calentry", new_calentry_path(:object_id=>@neuigkeit.id, :object_type=>"Neuigkeit"), :remote=>true if can? :edit, @neuigkeit %></div>
<%= render 'layouts/pretty_toolbar', :object=> @toolbar_elements %>
</div>

View File

@@ -24,11 +24,9 @@
<b>Treffen/Sitzungen</b>
<%= link_to "Neues Meeting", new_meeting_path(:parent_id=>small.id, :parent_type=>"Thema"), :remote=>true %>
<div id="<%= Meeting.new_divid_for(small) %>"></div>
<% unless small.meetings.empty? %>
<% small.meetings.each do |m| %>
<%= render m %>
<% end%>
<% end%>
<%= link_to "All", meetings_path(:parent_id=>small.id, :parent_type=>"Thema"), :remote=>true %>
<%= link_to "upcomming", meetings_path(:parent_id=>small.id, :parent_type=>"Thema",:filter=>"upcomming"), :remote=>true %>
<%= render :partial=>"meetings/meeting_list", object: small.meetings, locals: {parent: small} %>
<% end %>
<% if can?(:edit,small)|| ! small.documents.empty? %>
<b>Dokumente</b>

View File

@@ -166,9 +166,10 @@ Fetsite::Application.routes.draw do
resources :documents
resources :meetings do
member do
get :create_protocol
get :create_agenda
end
get :announce
get :create_protocol
get :create_agenda
end
end
resources :meetingtyps
end

View File

@@ -0,0 +1,6 @@
class AddNeuigkeitToMeeting < ActiveRecord::Migration
def change
add_column :meetings, :neuigkeit_id, :integer
add_column :meetingtyps, :rubrik_id, :integer
end
end