aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoachim Filip Ignacy Bartosik <jbartosik@gmail.com>2011-05-17 17:14:01 +0200
committerJoachim Filip Ignacy Bartosik <jbartosik@gmail.com>2011-05-24 18:55:39 +0200
commit8fcbeab8bf791e9b2b793bb85ee5faea80338ac7 (patch)
tree3fdc4e394423118d4337d6307d3d546ae37f11ad /site/app/models/agenda.rb
parentAgenda items (diff)
downloadcouncil-webapp-8fcbeab8bf791e9b2b793bb85ee5faea80338ac7.tar.gz
council-webapp-8fcbeab8bf791e9b2b793bb85ee5faea80338ac7.tar.bz2
council-webapp-8fcbeab8bf791e9b2b793bb85ee5faea80338ac7.zip
Basic meeting participation tracing
When archiving agenda mark all council members as participants. Remember their names and irc_nicks.
Diffstat (limited to 'site/app/models/agenda.rb')
-rw-r--r--site/app/models/agenda.rb10
1 files changed, 9 insertions, 1 deletions
diff --git a/site/app/models/agenda.rb b/site/app/models/agenda.rb
index 5998ae8..f8f90df 100644
--- a/site/app/models/agenda.rb
+++ b/site/app/models/agenda.rb
@@ -8,6 +8,7 @@ class Agenda < ActiveRecord::Base
end
has_many :agenda_items
+ has_many :participations
lifecycle do
state :open, :default => true
@@ -16,7 +17,14 @@ class Agenda < ActiveRecord::Base
transition :close, {:open => :submissions_closed}, :available_to => '::Agenda.transitions_available(acting_user)'
transition :reopen, {:submissions_closed=> :open}, :available_to => '::Agenda.transitions_available(acting_user)'
transition :archive, {:submissions_closed => :old}, :available_to => '::Agenda.transitions_available(acting_user)' do
- Agenda.new.save!
+ ActiveRecord::Base.transaction do
+ Agenda.new.save!
+ ::User.council_member_is(true).each do |participant|
+ Participation.create! :irc_nick => participant.irc_nick,
+ :participant => participant,
+ :agenda => self
+ end
+ end
end
end