diff options
| author | Zog | 2018-01-24 10:15:48 +0100 | 
|---|---|---|
| committer | cedricnjanga | 2018-02-06 11:06:08 -0800 | 
| commit | 5253b169da36a3de270f00038597b007035f09dd (patch) | |
| tree | a607f7779203fb5ed38f7829dda62cf437224ca3 | |
| parent | b1fc1da5262d2b03c872829a7e1238059243e9f3 (diff) | |
| download | chouette-core-5253b169da36a3de270f00038597b007035f09dd.tar.bz2 | |
Refs #5682; Set default value for application days
| -rw-r--r-- | app/models/calendar.rb | 5 | ||||
| -rw-r--r-- | app/models/concerns/application_days_support.rb | 3 | ||||
| -rw-r--r-- | db/migrate/20180124061955_add_int_day_types_to_calendars.rb | 2 | ||||
| -rw-r--r-- | db/schema.rb | 4 | ||||
| -rw-r--r-- | spec/models/calendar_spec.rb | 9 | 
5 files changed, 18 insertions, 5 deletions
| diff --git a/app/models/calendar.rb b/app/models/calendar.rb index 40dfa1210..e0f0f03da 100644 --- a/app/models/calendar.rb +++ b/app/models/calendar.rb @@ -17,11 +17,16 @@ class Calendar < ActiveRecord::Base    has_many :time_tables    scope :contains_date, ->(date) { where('date ? = any (dates) OR date ? <@ any (date_ranges)', date, date) } +  before_create :set_default_days    def self.ransackable_scopes(auth_object = nil)      [:contains_date]    end +  def set_default_days +    self.int_day_types ||= EVERYDAY +  end +    def convert_to_time_table      Chouette::TimeTable.new.tap do |tt|        self.dates.each do |d| diff --git a/app/models/concerns/application_days_support.rb b/app/models/concerns/application_days_support.rb index f83e4a5c8..425cba5bf 100644 --- a/app/models/concerns/application_days_support.rb +++ b/app/models/concerns/application_days_support.rb @@ -8,7 +8,8 @@ module ApplicationDaysSupport    FRIDAY    = 64    SATURDAY  = 128    SUNDAY    = 256 -   +  EVERYDAY  = MONDAY | TUESDAY | WEDNESDAY | THURSDAY | FRIDAY | SATURDAY | SUNDAY +    def display_day_types      %w(monday tuesday wednesday thursday friday saturday sunday).select{ |d| self.send(d) }.map{ |d| self.human_attribute_name(d).first(2)}.join(', ')    end diff --git a/db/migrate/20180124061955_add_int_day_types_to_calendars.rb b/db/migrate/20180124061955_add_int_day_types_to_calendars.rb index 6384c7177..5b1ff6fc1 100644 --- a/db/migrate/20180124061955_add_int_day_types_to_calendars.rb +++ b/db/migrate/20180124061955_add_int_day_types_to_calendars.rb @@ -1,5 +1,5 @@  class AddIntDayTypesToCalendars < ActiveRecord::Migration    def change -    add_column :calendars, :int_day_types, :integer, default: 0 +    add_column :calendars, :int_day_types, :integer    end  end diff --git a/db/schema.rb b/db/schema.rb index 614d9803e..231bea9ba 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -16,10 +16,9 @@ ActiveRecord::Schema.define(version: 20180126134944) do    # These are extensions that must be enabled in order to support this database    enable_extension "plpgsql" -  enable_extension "hstore"    enable_extension "postgis" +  enable_extension "hstore"    enable_extension "unaccent" -  enable_extension "objectid"    create_table "access_links", id: :bigserial, force: :cascade do |t|      t.integer  "access_point_id",                        limit: 8 @@ -121,7 +120,6 @@ ActiveRecord::Schema.define(version: 20180126134944) do      t.datetime "updated_at"      t.date     "end_date"      t.string   "date_type" -    t.string   "mode"    end    add_index "clean_ups", ["referential_id"], name: "index_clean_ups_on_referential_id", using: :btree diff --git a/spec/models/calendar_spec.rb b/spec/models/calendar_spec.rb index 4c65b9660..86ce565cd 100644 --- a/spec/models/calendar_spec.rb +++ b/spec/models/calendar_spec.rb @@ -21,6 +21,15 @@ RSpec.describe Calendar, :type => :model do      end    end +  describe 'application days' do +    let(:calendar) { create(:calendar) } +    it "should default to all days" do +      %w(monday tuesday wednesday thursday friday saturday sunday).each do |day| +        expect(calendar.send(day)).to be_truthy +      end +    end +  end +    describe 'validations' do      it 'validates that dates and date_ranges do not overlap' do        expect(build(:calendar, dates: [Date.today], date_ranges: [Date.today..Date.tomorrow])).to_not be_valid | 
