From 13007157d546151228f6a34f580c23aa853163c9 Mon Sep 17 00:00:00 2001 From: Joachim Filip Ignacy Bartosik Date: Mon, 27 Jun 2011 19:25:00 +0200 Subject: Agenda.current creates new agenda if needed Removed agenda initializer as it is no longer needed. --- site/app/models/agenda.rb | 4 +++- site/config/initializers/agenda.rb | 12 ------------ site/spec/models/agenda_spec.rb | 12 ++++++++++++ 3 files changed, 15 insertions(+), 13 deletions(-) delete mode 100644 site/config/initializers/agenda.rb diff --git a/site/app/models/agenda.rb b/site/app/models/agenda.rb index 46cf2d8..4a02dbb 100644 --- a/site/app/models/agenda.rb +++ b/site/app/models/agenda.rb @@ -48,7 +48,9 @@ class Agenda < ActiveRecord::Base end def self.current - Agenda.state_is_not(:old).first + result = Agenda.state_is_not(:old).first + result = Agenda.create! unless result + result end def self.transitions_available(user) diff --git a/site/config/initializers/agenda.rb b/site/config/initializers/agenda.rb deleted file mode 100644 index bdd35b9..0000000 --- a/site/config/initializers/agenda.rb +++ /dev/null @@ -1,12 +0,0 @@ -# If there are no active agendas create one -begin - return unless ['development', 'production'].include? Rails.env - return if Agenda.state_is_not(:old).count > 0 - Agenda.create! -rescue - # Just ignore it. It will happen when: - # * Everything is fine, but database is missing (eg. rake db:schema:load) - # * It's safe to ignore this then - # * Something is seriously wrong (like broken db) - # * Users will notice this anyway -end diff --git a/site/spec/models/agenda_spec.rb b/site/spec/models/agenda_spec.rb index b84f462..05212d0 100644 --- a/site/spec/models/agenda_spec.rb +++ b/site/spec/models/agenda_spec.rb @@ -233,6 +233,18 @@ describe Agenda do end end + describe '#current?' do + it 'should create new agenda if needed' do + Agenda.count.should be_zero + agenda = Agenda.current + agenda2 = Agenda.current + agenda.should be_a(Agenda) + agenda2.should be_a(Agenda) + Agenda.count.should be_equal(1) + agenda.id.should be_equal(agenda2.id) + end + end + it 'should return proper voting_array' do old_agenda = Factory(:agenda, :state => 'old') current_agenda = Factory(:agenda) -- cgit v1.2.3-65-gdbad From 38bfc2754eeb6db9697a1f258fc652875566e8ba Mon Sep 17 00:00:00 2001 From: Joachim Filip Ignacy Bartosik Date: Tue, 28 Jun 2011 17:53:04 +0200 Subject: Show slacking status properly when there were no meetings yet. --- site/app/models/user.rb | 3 +++ site/spec/models/user_spec.rb | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/site/app/models/user.rb b/site/app/models/user.rb index 7809e87..cde0df5 100644 --- a/site/app/models/user.rb +++ b/site/app/models/user.rb @@ -58,6 +58,9 @@ class User < ActiveRecord::Base num_status = 0 agendas = Agenda.all :conditions => ['agendas.meeting_time BETWEEN ? AND ?', start_date, end_date], :order => :meeting_time + + return 'There were no meetings in this term yet' if agendas.count.zero? + for agenda in agendas if Participation.participant_is(self).agenda_is(agenda).count == 0 num_status += 1 if num_status < 3 diff --git a/site/spec/models/user_spec.rb b/site/spec/models/user_spec.rb index 5246015..ad36761 100644 --- a/site/spec/models/user_spec.rb +++ b/site/spec/models/user_spec.rb @@ -81,6 +81,12 @@ describe User do u.slacking_status_in_period(agendas.first.meeting_time - 1.minute, agendas.last.meeting_time + 1.minute).should == 'No more a council' end + + it 'should return "There were no meetings in this term yet" if there were no meeting yet' do + a = Factory(:agenda, :meeting_time => 1.year.from_now) + u = users_factory(:council) + u.slacking_status_in_period(1.year.ago, 1.month.from_now).should == "There were no meetings in this term yet" + end end it 'should allow no one to create' do -- cgit v1.2.3-65-gdbad From ae943141a998fcfae527cbea977f41967be347a2 Mon Sep 17 00:00:00 2001 From: Joachim Filip Ignacy Bartosik Date: Wed, 29 Jun 2011 13:50:13 +0200 Subject: Display buttons on Agenda item view page in cleaner way --- site/app/views/agenda_items/show.dryml | 10 ++++++++-- site/features/agenda_items.feature | 10 ++++++++++ site/features/step_definitions/agenda_item_steps.rb | 12 ++++++++++++ site/features/step_definitions/within_steps.rb | 2 +- site/public/stylesheets/application.css | 4 ++++ 5 files changed, 35 insertions(+), 3 deletions(-) diff --git a/site/app/views/agenda_items/show.dryml b/site/app/views/agenda_items/show.dryml index 1713266..b0b425d 100644 --- a/site/app/views/agenda_items/show.dryml +++ b/site/app/views/agenda_items/show.dryml @@ -1,16 +1,22 @@ - + +
+
+
+
- +
+
+
diff --git a/site/features/agenda_items.feature b/site/features/agenda_items.feature index 114b8a4..18d301f 100644 --- a/site/features/agenda_items.feature +++ b/site/features/agenda_items.feature @@ -44,3 +44,13 @@ Feature: Suggest Agenda Items When I am on newest agenda item page Then I should not see "Add to current agenda" button And I should not see "Reject" button + + Scenario: Reject and Add to current agenda buttons displayed nicely + Given example agenda item + And an agenda + And I am logged in as a council member + When I am on the first suggested agenda page + Then I should see "Reject" button inside content body + And "Reject" button should be inline + And I should see "Add to current agenda" button inside content body + And "Add to current agenda" button should be inline diff --git a/site/features/step_definitions/agenda_item_steps.rb b/site/features/step_definitions/agenda_item_steps.rb index 22348e8..5bf5de2 100644 --- a/site/features/step_definitions/agenda_item_steps.rb +++ b/site/features/step_definitions/agenda_item_steps.rb @@ -27,3 +27,15 @@ Given /^agenda item in current agenda$/ do Agenda.create! AgendaItem.create! :agenda => Agenda.last, :title => 'Item in current agenda' end + +Then /^I should see "([^"]*)" button inside content body$/ do |arg1| + within('.content-body') do + page.all(:xpath, "//input[@type='submit'][@value='#{arg1}']").should_not be_empty + end +end + +Then /^"([^"]*)" button should be inline$/ do |arg1| + within('.one-button-form') do + page.all(:xpath, "//input[@type='submit'][@value='#{arg1}']").should_not be_empty + end +end diff --git a/site/features/step_definitions/within_steps.rb b/site/features/step_definitions/within_steps.rb index 821eb61..a36a4af 100644 --- a/site/features/step_definitions/within_steps.rb +++ b/site/features/step_definitions/within_steps.rb @@ -2,9 +2,9 @@ 'as current agenda' => '.current-agenda', 'as agenda state' => '.state-tag.view.agenda-state', 'as transition' => '.transition', + 'inside content body' => '.content-body', 'in the notices' => '.flash.notice', 'in the errors' => '.error-messages', - 'in the content body' => '.content-body', 'in the agenda items' => '.agenda-items', 'in the agendas collection' => '.collection.agendas', 'as empty collection message' => '.empty-collection-message', diff --git a/site/public/stylesheets/application.css b/site/public/stylesheets/application.css index e69de29..2ac85eb 100644 --- a/site/public/stylesheets/application.css +++ b/site/public/stylesheets/application.css @@ -0,0 +1,4 @@ +.one-button-form{ + float: left; + margin: 5pt; +} -- cgit v1.2.3-65-gdbad