forked from bofh/fetsite
meeting
This commit is contained in:
@@ -2,10 +2,39 @@ class MeetingsController < ApplicationController
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
load_and_authorize_resource
|
# load_and_authorize_resource
|
||||||
def index
|
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|
|
respond_to do |format|
|
||||||
format.html {redirect_to rubriken_path}
|
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
|
||||||
end
|
end
|
||||||
def new
|
def new
|
||||||
|
|||||||
@@ -112,13 +112,13 @@ class NeuigkeitenController < ApplicationController
|
|||||||
end
|
end
|
||||||
|
|
||||||
@calentries1=@neuigkeit.calentries
|
@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|
|
respond_to do |format|
|
||||||
format.html { render action:"show" }
|
format.html { render action:"show" }
|
||||||
format.js
|
format.js
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ class RubrikenController < ApplicationController
|
|||||||
|
|
||||||
@rubrik = Rubrik.find(params[:id])
|
@rubrik = Rubrik.find(params[:id])
|
||||||
@moderatoren=User.with_role(:newsmoderator,@rubrik)
|
@moderatoren=User.with_role(:newsmoderator,@rubrik)
|
||||||
@calentries= @rubrik.calentries
|
@calentries= @rubrik.calendar.calentries
|
||||||
if can?(:showunpublished, Neuigkeit)
|
if can?(:showunpublished, Neuigkeit)
|
||||||
@neuigkeiten = @rubrik.neuigkeiten.page(params[:page]).per(3)
|
@neuigkeiten = @rubrik.neuigkeiten.page(params[:page]).per(3)
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ class Meeting < ActiveRecord::Base
|
|||||||
belongs_to :meetingtyp
|
belongs_to :meetingtyp
|
||||||
attr_accessible :desc, :intern, :name, :parent_id, :parent_type, :calentry,:calentry_attributes, :meetingtyp_id
|
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 :protocol, :class_name=>'Document', :conditions=>{:typ=>10}, :as=>:parent
|
||||||
has_one :agenda , :as=>:parent,:conditions=>{:typ=>11}, :class_name=>'Document'
|
has_one :agenda , :as=>:parent,:conditions=>{:typ=>11}, :class_name=>'Document'
|
||||||
has_one :calentry, as: :object
|
has_one :calentry, as: :object
|
||||||
@@ -13,16 +13,28 @@ class Meeting < ActiveRecord::Base
|
|||||||
validate :parent, :presence=>true
|
validate :parent, :presence=>true
|
||||||
validate :calentry, :presence=>true
|
validate :calentry, :presence=>true
|
||||||
before_validation :fix_calentry
|
before_validation :fix_calentry
|
||||||
|
def title
|
||||||
|
self.text
|
||||||
|
end
|
||||||
def text
|
def text
|
||||||
unless self.meetingtyp.try(:name).to_s.empty?
|
unless self.meetingtyp.try(:name).to_s.empty?
|
||||||
t = self.meetingtyp.name.to_s+", "
|
t = self.meetingtyp.name.to_s+", "
|
||||||
else
|
else
|
||||||
t = parent.title", " if self.name.empty?
|
t = parent.title.to_s + ", " if self.name.empty?
|
||||||
end
|
end
|
||||||
t= t+ self.name
|
t= t+ self.name.to_s
|
||||||
t = t + " " + I18n.l(self .calentry.start)
|
t = t + " " + I18n.l(self.calentry.start) unless self.calentry.nil?
|
||||||
t
|
t
|
||||||
end
|
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
|
def fix_calentry
|
||||||
self.calentry.object=self unless self.calentry.nil?
|
self.calentry.object=self unless self.calentry.nil?
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
class Meetingtyp < ActiveRecord::Base
|
class Meetingtyp < ActiveRecord::Base
|
||||||
attr_accessible :agendaintern, :desc, :name, :protocolintern
|
attr_accessible :agendaintern, :desc, :name, :protocolintern
|
||||||
|
belongs_to :rubrik
|
||||||
|
validate :rubrik, :presence=>true
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ class Neuigkeit < ActiveRecord::Base
|
|||||||
|
|
||||||
has_many :calentries, as: :object
|
has_many :calentries, as: :object
|
||||||
has_many :nlinks
|
has_many :nlinks
|
||||||
|
has_one :meeting
|
||||||
mount_uploader :picture, PictureUploader
|
mount_uploader :picture, PictureUploader
|
||||||
|
|
||||||
default_scope order(:datum).reverse_order
|
default_scope order(:datum).reverse_order
|
||||||
@@ -38,7 +38,9 @@ class Neuigkeit < ActiveRecord::Base
|
|||||||
before_validation :sanitize
|
before_validation :sanitize
|
||||||
|
|
||||||
|
|
||||||
|
def is_annoncement?
|
||||||
|
self.meeting.nil?
|
||||||
|
end
|
||||||
def self.published
|
def self.published
|
||||||
where("datum <= ? AND datum IS NOT NULL", Time.now.to_date)
|
where("datum <= ? AND datum IS NOT NULL", Time.now.to_date)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ class Rubrik < ActiveRecord::Base
|
|||||||
has_many :published, :class_name => "Neuigkeit", :conditions=>["Neuigkeit.published"]
|
has_many :published, :class_name => "Neuigkeit", :conditions=>["Neuigkeit.published"]
|
||||||
has_many :calentries, :through => :neuigkeiten, :as=>:object
|
has_many :calentries, :through => :neuigkeiten, :as=>:object
|
||||||
resourcify
|
resourcify
|
||||||
|
has_many :meetingtyps
|
||||||
has_one :calendar
|
has_one :calendar
|
||||||
validates :calendar , :presence=>true
|
validates :calendar , :presence=>true
|
||||||
before_validation :sanitize
|
before_validation :sanitize
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
class Studium < ActiveRecord::Base
|
class Studium < ActiveRecord::Base
|
||||||
attr_accessible :desc, :name,:abkuerzung, :typ, :zahl, :semester, :picture, :picture_cache, :qualifikation,:struktur, :jobmoeglichkeiten, :lvas_attributes
|
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
|
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 :moduls, :through=>:modulgruppen
|
||||||
has_many :lvas, :through=>:moduls
|
has_many :lvas, :through=>:moduls
|
||||||
has_many :semester, :dependent => :destroy
|
has_many :semester, :dependent => :destroy
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
<div class="contentbox" id="meeting_<%= meeting.id%>">
|
<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 "edit", edit_meeting_path(meeting), remote: true %>
|
||||||
<%= link_to 'Delete', meeting, method: :delete, data: { confirm: 'Are you sure?' } , remote: true if can? :delete, meeting %>
|
<%= link_to 'Delete', meeting, method: :delete, data: { confirm: 'Are you sure?' } , remote: true if can? :delete, meeting %>
|
||||||
<%= render meeting.calentry unless meeting.calentry.nil? %>
|
<%= render meeting.calentry unless meeting.calentry.nil? %>
|
||||||
|
|||||||
7
app/views/meetings/_meeting_list.html.erb
Normal file
7
app/views/meetings/_meeting_list.html.erb
Normal 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>
|
||||||
1
app/views/meetings/index.js.erb
Normal file
1
app/views/meetings/index.js.erb
Normal 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} ) %>");
|
||||||
@@ -1,5 +1,19 @@
|
|||||||
<div id="nlink_list_search">
|
<div id="nlink_list_search">
|
||||||
<ul class="unstyled">
|
<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>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -50,6 +50,9 @@ end
|
|||||||
<%= render ce unless ce.nil? %>
|
<%= render ce unless ce.nil? %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</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>
|
<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 %>
|
<%= render 'layouts/pretty_toolbar', :object=> @toolbar_elements %>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -24,11 +24,9 @@
|
|||||||
<b>Treffen/Sitzungen</b>
|
<b>Treffen/Sitzungen</b>
|
||||||
<%= link_to "Neues Meeting", new_meeting_path(:parent_id=>small.id, :parent_type=>"Thema"), :remote=>true %>
|
<%= link_to "Neues Meeting", new_meeting_path(:parent_id=>small.id, :parent_type=>"Thema"), :remote=>true %>
|
||||||
<div id="<%= Meeting.new_divid_for(small) %>"></div>
|
<div id="<%= Meeting.new_divid_for(small) %>"></div>
|
||||||
<% unless small.meetings.empty? %>
|
<%= link_to "All", meetings_path(:parent_id=>small.id, :parent_type=>"Thema"), :remote=>true %>
|
||||||
<% small.meetings.each do |m| %>
|
<%= link_to "upcomming", meetings_path(:parent_id=>small.id, :parent_type=>"Thema",:filter=>"upcomming"), :remote=>true %>
|
||||||
<%= render m %>
|
<%= render :partial=>"meetings/meeting_list", object: small.meetings, locals: {parent: small} %>
|
||||||
<% end%>
|
|
||||||
<% end%>
|
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if can?(:edit,small)|| ! small.documents.empty? %>
|
<% if can?(:edit,small)|| ! small.documents.empty? %>
|
||||||
<b>Dokumente</b>
|
<b>Dokumente</b>
|
||||||
|
|||||||
@@ -166,6 +166,7 @@ Fetsite::Application.routes.draw do
|
|||||||
resources :documents
|
resources :documents
|
||||||
resources :meetings do
|
resources :meetings do
|
||||||
member do
|
member do
|
||||||
|
get :announce
|
||||||
get :create_protocol
|
get :create_protocol
|
||||||
get :create_agenda
|
get :create_agenda
|
||||||
end
|
end
|
||||||
|
|||||||
6
db/migrate/20141214132815_add_neuigkeit_to_meeting.rb
Normal file
6
db/migrate/20141214132815_add_neuigkeit_to_meeting.rb
Normal 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
|
||||||
Reference in New Issue
Block a user