diff --git a/app/models/recurring_todos/abstract_recurring_todos_builder.rb b/app/models/recurring_todos/abstract_recurring_todos_builder.rb index fb300d03..17fbded5 100644 --- a/app/models/recurring_todos/abstract_recurring_todos_builder.rb +++ b/app/models/recurring_todos/abstract_recurring_todos_builder.rb @@ -69,21 +69,22 @@ module RecurringTodos def filter_generic_attributes(attributes) return Tracks::AttributeHandler.new(@user, { - recurring_period: attributes[:recurring_period], - description: attributes[:description], - notes: attributes[:notes], - tag_list: tag_list_or_empty_string(attributes), - start_from: attributes[:start_from], - end_date: attributes[:end_date], - ends_on: attributes[:ends_on], - target: attributes[:target], - project: attributes[:project], - context: attributes[:context], - project_id: attributes[:project_id], - context_id: attributes[:context_id], - target: attributes[:recurring_target], - show_from_delta: attributes[:recurring_show_days_before], - show_always: attributes[:recurring_show_always] + recurring_period: attributes[:recurring_period], + description: attributes[:description], + notes: attributes[:notes], + tag_list: tag_list_or_empty_string(attributes), + start_from: attributes[:start_from], + end_date: attributes[:end_date], + ends_on: attributes[:ends_on], + number_of_occurences: attributes[:number_of_occurences], + target: attributes[:target], + project: attributes[:project], + context: attributes[:context], + project_id: attributes[:project_id], + context_id: attributes[:context_id], + target: attributes[:recurring_target], + show_from_delta: attributes[:recurring_show_days_before], + show_always: attributes[:recurring_show_always] }) end diff --git a/app/models/recurring_todos/abstract_repeat_pattern.rb b/app/models/recurring_todos/abstract_repeat_pattern.rb index 45332d99..87479519 100644 --- a/app/models/recurring_todos/abstract_repeat_pattern.rb +++ b/app/models/recurring_todos/abstract_repeat_pattern.rb @@ -32,6 +32,10 @@ module RecurringTodos get :show_from_delta end + def number_of_occurences + get :number_of_occurences + end + def recurring_target_as_text target == 'due_date' ? I18n.t("todos.recurrence.pattern.due") : I18n.t("todos.recurrence.pattern.show") end diff --git a/test/models/recurring_todos/abstract_repeat_pattern_test.rb b/test/models/recurring_todos/abstract_repeat_pattern_test.rb index a4304aa8..fcb3e025 100644 --- a/test/models/recurring_todos/abstract_repeat_pattern_test.rb +++ b/test/models/recurring_todos/abstract_repeat_pattern_test.rb @@ -73,6 +73,24 @@ module RecurringTodos assert pattern.valid?, "should be valid" end + def test_validation_on_number_of_occurences + attributes = { + 'weekly_return_monday' => 'm', # weekly specific + 'weekly_every_x_week' => 1, + 'recurring_show_always' => false, + 'recurring_show_days_before' => 5, + 'ends_on' => 'ends_on_number_of_times', + } + +# pattern = create_recurring_todo(attributes) +# assert !pattern.valid?, "number_of_occurences should be filled" + + attributes['number_of_occurences']=5 + pattern = create_recurring_todo(attributes) + assert pattern.valid?, "should be valid" + end + + def test_end_date_on_recurring_todo rt = recurring_todos(:call_bill_gates_every_day)