aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/models/calendar.rb5
-rw-r--r--app/models/concerns/application_days_support.rb3
-rw-r--r--db/migrate/20180124061955_add_int_day_types_to_calendars.rb2
-rw-r--r--db/schema.rb4
-rw-r--r--spec/models/calendar_spec.rb9
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