diff options
| author | Zog | 2018-01-24 10:15:48 +0100 |
|---|---|---|
| committer | Zog | 2018-01-31 15:12:28 +0100 |
| commit | b83d26389e6726eaea86955c3a2d2bffa5e65b5e (patch) | |
| tree | 73d1969dfca088b9d5bde998423c5773855fcb14 | |
| parent | 52e07ba395ddd01f74eb6b81593dfdc7c636d25a (diff) | |
| download | chouette-core-b83d26389e6726eaea86955c3a2d2bffa5e65b5e.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 d58e7737d..a4d279e25 100644 --- a/app/models/calendar.rb +++ b/app/models/calendar.rb @@ -16,11 +16,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 34654bdda..94939cfa3 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -15,10 +15,9 @@ ActiveRecord::Schema.define(version: 20180124061955) 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 @@ -118,7 +117,6 @@ ActiveRecord::Schema.define(version: 20180124061955) 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 |
