dorsale 3.7.4 → 3.7.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/app/assets/stylesheets/dorsale/engines/flyboy.sass +10 -6
- data/app/controllers/dorsale/flyboy/task_comments_controller.rb +1 -0
- data/app/controllers/dorsale/flyboy/tasks_controller.rb +3 -12
- data/app/filters/dorsale/flyboy/small_data/filter_for_tasks.rb +1 -1
- data/app/filters/dorsale/flyboy/small_data/filter_strategy_by_task_state.rb +9 -0
- data/app/helpers/dorsale/flyboy/application_helper.rb +3 -13
- data/app/models/dorsale/flyboy/task.rb +29 -0
- data/app/models/dorsale/flyboy/task_comment.rb +1 -1
- data/app/sorters/dorsale/flyboy/task_comments_sorter.rb +12 -0
- data/app/views/dorsale/flyboy/_filters.html.slim +1 -1
- data/app/views/dorsale/flyboy/task_comments/_form.html.slim +11 -0
- data/app/views/dorsale/flyboy/task_comments/_list.html.slim +7 -26
- data/app/views/dorsale/flyboy/task_comments/_task_comment.html.slim +13 -0
- data/app/views/dorsale/flyboy/tasks/_context.html.slim +1 -1
- data/app/views/dorsale/flyboy/tasks/_list.html.slim +1 -1
- data/app/views/dorsale/flyboy/tasks/_reminder_fields.html.slim +15 -11
- data/app/views/dorsale/flyboy/tasks/_term_fields.html.slim +11 -7
- data/config/locales/flyboy.en.yml +8 -6
- data/config/locales/flyboy.fr.yml +8 -6
- data/features/step_definitions/flyboy_tasks_steps.rb +2 -2
- data/lib/dorsale/version.rb +1 -1
- data/spec/controllers/dorsale/flyboy/tasks_controller_spec.rb +2 -2
- data/spec/models/dorsale/flyboy/task_spec.rb +68 -5
- metadata +7 -6
- data/app/filters/dorsale/flyboy/small_data/filter_strategy_by_done.rb +0 -6
- data/spec/helpers/dorsale/flyboy/application_helper_spec.rb +0 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ad479d894fe508bd2db24dbcb03d17c986fd482b
|
4
|
+
data.tar.gz: 1122ddf76aabb70beab2c05c4807051b12d35e33
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 215f9de605cb95f630c71f709c514e617c8c942bcd22af69411a295900efdfb818b1ef7ae1a392dc5c5d13697c5756d13f1bd064e0ef6ef999e9fa1f59f9c3de
|
7
|
+
data.tar.gz: 45b40e12c35892c1a2741a70210195746737105bd673bb08543332e237a3ea3b48387c6a00ec9409f81f8c460f93f0ebdfad6299c4d758954d00e6ba95901b6f
|
data/CHANGELOG.md
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
th
|
10
10
|
text-align: left
|
11
11
|
|
12
|
-
.
|
12
|
+
.done td, .context-body.done
|
13
13
|
background: $state-success-bg !important
|
14
14
|
|
15
15
|
.onwarning td, .context-body.onwarning
|
@@ -61,13 +61,17 @@
|
|
61
61
|
|
62
62
|
.task_reminder_fields,
|
63
63
|
.task_term_fields,
|
64
|
-
|
65
|
-
|
66
|
-
> div
|
67
|
-
margin-right: 15px
|
64
|
+
height: 34px
|
68
65
|
|
69
66
|
label
|
70
|
-
|
67
|
+
padding-left: 0
|
68
|
+
|
69
|
+
.form-sub-group-container
|
70
|
+
display: flex
|
71
|
+
|
72
|
+
> div
|
73
|
+
margin-right: 15px
|
74
|
+
|
71
75
|
|
72
76
|
input, select
|
73
77
|
width: auto
|
@@ -60,19 +60,10 @@ class Dorsale::Flyboy::TasksController < ::Dorsale::Flyboy::ApplicationControlle
|
|
60
60
|
|
61
61
|
def show
|
62
62
|
authorize @task, :read?
|
63
|
-
@task_comments = @task.comments
|
64
63
|
|
65
|
-
@
|
66
|
-
|
67
|
-
|
68
|
-
%(LOWER(#{column}) #{direction})
|
69
|
-
when :progress
|
70
|
-
%(#{column} #{direction})
|
71
|
-
else
|
72
|
-
"date #{direction}"
|
73
|
-
end
|
74
|
-
end
|
75
|
-
@task_comments = @task_comments.reorder(@order)
|
64
|
+
@task_comments = @task.comments.preload(:author)
|
65
|
+
|
66
|
+
@task_comments = Dorsale::Flyboy::TaskCommentsSorter.(@task_comments, params[:sort] ||= "-date")
|
76
67
|
end
|
77
68
|
|
78
69
|
def new
|
@@ -1,6 +1,6 @@
|
|
1
1
|
class Dorsale::Flyboy::SmallData::FilterForTasks < ::Agilibox::SmallData::Filter
|
2
2
|
STRATEGIES = {
|
3
|
-
"
|
3
|
+
"fb_state" => ::Dorsale::Flyboy::SmallData::FilterStrategyByTaskState.new,
|
4
4
|
"fb_owner" => ::Agilibox::SmallData::FilterStrategyByKeyValue.new(:owner_id)
|
5
5
|
}
|
6
6
|
end
|
@@ -25,20 +25,10 @@ module Dorsale::Flyboy::ApplicationHelper
|
|
25
25
|
render "dorsale/flyboy/tasks/summary"
|
26
26
|
end
|
27
27
|
|
28
|
-
def task_color(task)
|
29
|
-
return "finished" if task.done
|
30
|
-
return "onalert" if task.term < Time.zone.now.to_date
|
31
|
-
return "onwarning" if task.reminder_date && task.reminder_date < Time.zone.now.to_date
|
32
|
-
return "ontime"
|
33
|
-
|
34
|
-
end
|
35
|
-
|
36
28
|
def flyboy_status_for_filters_select
|
37
|
-
|
38
|
-
Dorsale::Flyboy::Task.t("
|
39
|
-
|
40
|
-
Dorsale::Flyboy::Task.t("status.closed") => "closed",
|
41
|
-
}
|
29
|
+
Dorsale::Flyboy::Task::STATES.map do |state|
|
30
|
+
[Dorsale::Flyboy::Task.t("state.#{state}"), state]
|
31
|
+
end
|
42
32
|
end
|
43
33
|
|
44
34
|
def flyboy_tasks_owners_for_filters_select
|
@@ -15,6 +15,35 @@ class Dorsale::Flyboy::Task < ::Dorsale::ApplicationRecord
|
|
15
15
|
polymorphic_id_for :taskable
|
16
16
|
polymorphic_id_for :owner
|
17
17
|
|
18
|
+
STATES = %w(done undone ontime onwarning onalert)
|
19
|
+
|
20
|
+
def state
|
21
|
+
return "done" if done
|
22
|
+
return "onalert" if term && term <= Time.zone.now.to_date
|
23
|
+
return "onwarning" if reminder_date && reminder_date <= Time.zone.now.to_date
|
24
|
+
return "ontime"
|
25
|
+
end
|
26
|
+
|
27
|
+
scope :done, -> { where(done: true) }
|
28
|
+
scope :undone, -> { where(done: false) }
|
29
|
+
|
30
|
+
scope :ontime, -> {
|
31
|
+
undone
|
32
|
+
.where("term IS NULL OR term > ?", Time.zone.now.to_date)
|
33
|
+
.where("reminder_date IS NULL OR reminder_date > ?", Time.zone.now.to_date)
|
34
|
+
}
|
35
|
+
|
36
|
+
scope :onwarning, -> {
|
37
|
+
undone
|
38
|
+
.where("reminder_date <= ?", Time.zone.now.to_date)
|
39
|
+
.where("term IS NULL OR term > ?", Time.zone.now.to_date)
|
40
|
+
}
|
41
|
+
|
42
|
+
scope :onalert, -> {
|
43
|
+
undone
|
44
|
+
.where("term <= ?", Time.zone.now.to_date)
|
45
|
+
}
|
46
|
+
|
18
47
|
scope :delayed, -> { where(done: false).where("term < ?", Time.zone.now.to_date) }
|
19
48
|
scope :today, -> { where(done: false).where("term = ?", Time.zone.now.to_date) }
|
20
49
|
scope :tomorrow, -> { where(done: false).where("term = ?", Date.tomorrow) }
|
@@ -10,7 +10,7 @@ class Dorsale::Flyboy::TaskComment < ::Dorsale::ApplicationRecord
|
|
10
10
|
validates :description, presence: true
|
11
11
|
validates :progress, inclusion: {in: 0..100}
|
12
12
|
|
13
|
-
default_scope -> { order(
|
13
|
+
default_scope -> { order(date: :desc) }
|
14
14
|
|
15
15
|
def assign_default_values
|
16
16
|
assign_default :date, Time.zone.now
|
@@ -1,5 +1,5 @@
|
|
1
1
|
= filters_form do |f|
|
2
|
-
= f.input :
|
2
|
+
= f.input :fb_state, collection: flyboy_status_for_filters_select, include_blank: Dorsale::Flyboy::Task.t("state.all")
|
3
3
|
|
4
4
|
- if @filters.class::STRATEGIES.include?("fb_owner")
|
5
5
|
= f.input :fb_owner, collection: flyboy_tasks_owners_for_filters_select, include_blank: t("filters.all_owners")
|
@@ -0,0 +1,11 @@
|
|
1
|
+
- if policy(@task).comment?
|
2
|
+
tr#new_task_comment_tr
|
3
|
+
td.task_comment-progress
|
4
|
+
= f.input :progress, label: false
|
5
|
+
|
6
|
+
td.task_comment-content
|
7
|
+
= f.hidden_field :task_id
|
8
|
+
|
9
|
+
.textarea-input-group
|
10
|
+
= f.text_area :description, rows: 3, class: "form-control"
|
11
|
+
input type="submit" value=t("actions.save")
|
@@ -3,36 +3,17 @@
|
|
3
3
|
thead
|
4
4
|
tr
|
5
5
|
th.task_comment-progress
|
6
|
-
= sortable_column Dorsale::Flyboy::TaskComment.t(:progress), :
|
6
|
+
= sortable_column Dorsale::Flyboy::TaskComment.t(:progress), :date
|
7
7
|
|
8
8
|
th.task_comment-description
|
9
9
|
= sortable_column Dorsale::Flyboy::TaskComment.t(:description), :description
|
10
10
|
|
11
11
|
tbody
|
12
|
-
- if
|
13
|
-
|
14
|
-
td.task_comment-progress
|
15
|
-
= f.input :progress, label: false
|
12
|
+
- if params[:sort] != "date"
|
13
|
+
= render "dorsale/flyboy/task_comments/form", f: f
|
16
14
|
|
17
|
-
|
18
|
-
|
15
|
+
- @task_comments.each do |task_comment|
|
16
|
+
= render "dorsale/flyboy/task_comments/task_comment", task_comment: task_comment
|
19
17
|
|
20
|
-
|
21
|
-
|
22
|
-
input type="submit" value=t("actions.save")
|
23
|
-
|
24
|
-
|
25
|
-
- @task_comments.each do |comment|
|
26
|
-
tr.task_comment
|
27
|
-
td.task_comment-progress
|
28
|
-
= progress_bar percentage: comment.progress, label: true
|
29
|
-
|
30
|
-
td.task_comment-content
|
31
|
-
p: small
|
32
|
-
span.task_comment-date = date(comment.date)
|
33
|
-
= " "
|
34
|
-
= comment.t(:written_by)
|
35
|
-
= " "
|
36
|
-
span.task_comment-author = comment.author
|
37
|
-
|
38
|
-
p.task_comment-description = text2html comment.description
|
18
|
+
- if params[:sort] == "date"
|
19
|
+
= render "dorsale/flyboy/task_comments/form", f: f
|
@@ -0,0 +1,13 @@
|
|
1
|
+
tr.task_comment
|
2
|
+
td.task_comment-progress
|
3
|
+
= progress_bar percentage: task_comment.progress, label: true
|
4
|
+
|
5
|
+
td.task_comment-content
|
6
|
+
p: small
|
7
|
+
span.task_comment-date = date(task_comment.date)
|
8
|
+
= " "
|
9
|
+
= task_comment.t(:written_by)
|
10
|
+
= " "
|
11
|
+
span.task_comment-author = task_comment.author
|
12
|
+
|
13
|
+
p.task_comment-description = text2html task_comment.description
|
@@ -1,18 +1,22 @@
|
|
1
|
-
.task_reminder_fields
|
2
|
-
.
|
3
|
-
= f.label :reminder, class: "control-label"
|
1
|
+
.form-group.task_reminder_fields class=("has-error" if f.object.errors.key?(:reminder_date))
|
2
|
+
= f.label :reminder, class: "control-label col-sm-3"
|
4
3
|
|
5
|
-
.
|
6
|
-
|
4
|
+
.col-sm-9
|
5
|
+
.form-sub-group-container
|
6
|
+
.form-sub-group.task_reminder_type
|
7
|
+
= f.select :reminder_type, flyboy_reminder_types_for_select, {include_blank: false}, {class: "form-control"}
|
7
8
|
|
8
|
-
|
9
|
-
|
9
|
+
.form-sub-group.task_reminder_duration
|
10
|
+
= f.text_field :reminder_duration, class: "form-control"
|
10
11
|
|
11
|
-
|
12
|
-
|
12
|
+
.form-sub-group.task_reminder_unit
|
13
|
+
= f.select :reminder_unit, flyboy_reminder_type_units_for_select, {include_blank: false}, {class: "form-control"}
|
13
14
|
|
14
|
-
|
15
|
-
|
15
|
+
.form-sub-group.task_reminder_date
|
16
|
+
= f.date_field :reminder_date, class: "form-control"
|
17
|
+
|
18
|
+
- if errors = f.object.errors[:reminder_date].join(", ").presence
|
19
|
+
span.help-block = errors
|
16
20
|
|
17
21
|
coffee:
|
18
22
|
$("#task_reminder_type")
|
@@ -1,12 +1,16 @@
|
|
1
|
-
.task_term_fields
|
2
|
-
.
|
3
|
-
= f.label :term, class: "control-label"
|
1
|
+
.form-group.task_term_fields class=("has-error" if f.object.errors.key?(:term))
|
2
|
+
= f.label :term, class: "control-label col-sm-3"
|
4
3
|
|
5
|
-
.
|
6
|
-
|
4
|
+
.col-sm-9
|
5
|
+
.form-sub-group-container
|
6
|
+
.form-sub-group.task_term_type
|
7
|
+
= f.select :term, task_term_values_for_select, {include_blank: true}, {class: "form-control"}
|
7
8
|
|
8
|
-
|
9
|
-
|
9
|
+
.form-sub-group.task_term_custom
|
10
|
+
= f.date_field :term, class: "form-control", id: "task_term_custom"
|
11
|
+
|
12
|
+
- if errors = f.object.errors[:term].join(", ").presence
|
13
|
+
span.help-block = errors
|
10
14
|
|
11
15
|
coffee:
|
12
16
|
$("#task_term")
|
@@ -35,12 +35,6 @@ en:
|
|
35
35
|
other: "Task Comments"
|
36
36
|
|
37
37
|
attributes:
|
38
|
-
dorsale/flyboy/task/status:
|
39
|
-
all: "All status"
|
40
|
-
open: "Open"
|
41
|
-
closed: "Closed"
|
42
|
-
unknown: "Unknown"
|
43
|
-
|
44
38
|
dorsale/flyboy/task:
|
45
39
|
taskable: "Origin"
|
46
40
|
taskable_type: "Origin type"
|
@@ -58,6 +52,14 @@ en:
|
|
58
52
|
description: "Description"
|
59
53
|
progress: "Progress"
|
60
54
|
|
55
|
+
dorsale/flyboy/task/state:
|
56
|
+
all: "All states"
|
57
|
+
done: "Finished"
|
58
|
+
undone: "Not finished"
|
59
|
+
ontime: "On time"
|
60
|
+
onwarning: "Reminder outdated"
|
61
|
+
onalert: "Term outdated"
|
62
|
+
|
61
63
|
dorsale/flyboy/task_comment:
|
62
64
|
progress: "Progress"
|
63
65
|
description: "Description"
|
@@ -37,12 +37,6 @@ fr:
|
|
37
37
|
other: "Commentaires de tâche"
|
38
38
|
|
39
39
|
attributes:
|
40
|
-
dorsale/flyboy/task/status:
|
41
|
-
all: "Tous les status"
|
42
|
-
open: "Ouvert"
|
43
|
-
closed: "Fermé"
|
44
|
-
unknown: "Inconnu"
|
45
|
-
|
46
40
|
dorsale/flyboy/task:
|
47
41
|
taskable: "Origine"
|
48
42
|
taskable_type: "Type origine"
|
@@ -60,6 +54,14 @@ fr:
|
|
60
54
|
description: "Description"
|
61
55
|
progress: "Progression"
|
62
56
|
|
57
|
+
dorsale/flyboy/task/state:
|
58
|
+
all: "Tous les états"
|
59
|
+
done: "Terminée"
|
60
|
+
undone: "Non terminée"
|
61
|
+
ontime: "À temps"
|
62
|
+
onwarning: "Rappel dépassé"
|
63
|
+
onalert: "Échéance dépassée"
|
64
|
+
|
63
65
|
dorsale/flyboy/task_comment:
|
64
66
|
progress: "Progression"
|
65
67
|
description: "Description"
|
@@ -93,12 +93,12 @@ When(/^I snooze this task$/) do
|
|
93
93
|
end
|
94
94
|
|
95
95
|
When(/^I filter tasks by done$/) do
|
96
|
-
select "
|
96
|
+
select "Terminée"
|
97
97
|
find(".filters [type=submit]:last-child").click
|
98
98
|
end
|
99
99
|
|
100
100
|
When(/^I filter tasks by undone$/) do
|
101
|
-
select "
|
101
|
+
select "Non terminé"
|
102
102
|
find(".filters [type=submit]:last-child").click
|
103
103
|
end
|
104
104
|
|
data/lib/dorsale/version.rb
CHANGED
@@ -58,13 +58,13 @@ describe Dorsale::Flyboy::TasksController, type: :controller do
|
|
58
58
|
end
|
59
59
|
|
60
60
|
it 'should filter by status closed' do
|
61
|
-
cookies["filters"] = {'
|
61
|
+
cookies["filters"] = {'fb_state' => "done"}.to_json
|
62
62
|
get :index
|
63
63
|
expect(assigns(:tasks).to_a).to eq [@task1]
|
64
64
|
end
|
65
65
|
|
66
66
|
it 'should filter by status opened' do
|
67
|
-
cookies["filters"] = {'
|
67
|
+
cookies["filters"] = {'fb_state' => "undone"}.to_json
|
68
68
|
get :index
|
69
69
|
expect(assigns(:tasks).to_a).to eq [@task2]
|
70
70
|
end
|
@@ -89,7 +89,7 @@ describe Dorsale::Flyboy::Task do
|
|
89
89
|
end # describe "reminders"
|
90
90
|
|
91
91
|
describe "scopes" do
|
92
|
-
it "should return delayed
|
92
|
+
it "should return delayed undone tasks" do
|
93
93
|
task = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date+1)
|
94
94
|
task_1 = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date-1, done: true)
|
95
95
|
task_2 = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date-1, done: false)
|
@@ -99,7 +99,7 @@ describe Dorsale::Flyboy::Task do
|
|
99
99
|
expect(tasks).to contain_exactly(task_2, task_4)
|
100
100
|
end
|
101
101
|
|
102
|
-
it "should return today
|
102
|
+
it "should return today undone tasks" do
|
103
103
|
task = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date+1)
|
104
104
|
task_1 = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date, done: true)
|
105
105
|
task_2 = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date, done: false)
|
@@ -107,7 +107,7 @@ describe Dorsale::Flyboy::Task do
|
|
107
107
|
expect(tasks).to contain_exactly(task_2)
|
108
108
|
end
|
109
109
|
|
110
|
-
it "should return tomorrow
|
110
|
+
it "should return tomorrow undone tasks" do
|
111
111
|
task = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date)
|
112
112
|
task_1 = create(:flyboy_task, owner: @user1, term: Date.tomorrow, done: true)
|
113
113
|
task_2 = create(:flyboy_task, owner: @user1, term: Date.tomorrow, done: false)
|
@@ -115,7 +115,7 @@ describe Dorsale::Flyboy::Task do
|
|
115
115
|
expect(tasks).to contain_exactly(task_2)
|
116
116
|
end
|
117
117
|
|
118
|
-
it "should return this week
|
118
|
+
it "should return this week undone tasks" do
|
119
119
|
Timecop.freeze(2015, 5, 21, 12, 0, 0)
|
120
120
|
task = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date-7, done: false)
|
121
121
|
task_1 = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date+2, done: true)
|
@@ -126,7 +126,7 @@ describe Dorsale::Flyboy::Task do
|
|
126
126
|
expect(tasks).to contain_exactly(task_2, task_3)
|
127
127
|
end
|
128
128
|
|
129
|
-
it "should return next week
|
129
|
+
it "should return next week undone tasks" do
|
130
130
|
Timecop.freeze(2015, 5, 21)
|
131
131
|
task = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date, done: false)
|
132
132
|
task_1 = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date+7, done: true)
|
@@ -137,4 +137,67 @@ describe Dorsale::Flyboy::Task do
|
|
137
137
|
expect(tasks).to contain_exactly(task_2, task_3)
|
138
138
|
end
|
139
139
|
end # describe "scopes"
|
140
|
+
|
141
|
+
describe "states" do
|
142
|
+
# L’affichage de la couleur de la tâche dépend de son achèvement:
|
143
|
+
# Si date jour < date relance alors noir
|
144
|
+
let(:task_ontime) {
|
145
|
+
create(:flyboy_task,
|
146
|
+
:reminder_type => "custom",
|
147
|
+
:reminder_date => Time.zone.now.to_date + 1.day,
|
148
|
+
:term => Time.zone.now.to_date + 3.days,
|
149
|
+
:done => false,
|
150
|
+
)
|
151
|
+
}
|
152
|
+
|
153
|
+
it "should return :ontime" do
|
154
|
+
expect(task_ontime.state).to eq "ontime"
|
155
|
+
expect(described_class.ontime).to eq [task_ontime]
|
156
|
+
end
|
157
|
+
|
158
|
+
# Si date relance <= date jour
|
159
|
+
let(:task_onwarning) {
|
160
|
+
create(:flyboy_task,
|
161
|
+
:reminder_type => "custom",
|
162
|
+
:reminder_date => Time.zone.now.to_date,
|
163
|
+
:term => Time.zone.now.to_date + 3.days,
|
164
|
+
:done => false,
|
165
|
+
)
|
166
|
+
}
|
167
|
+
|
168
|
+
it "should return :onwarning" do
|
169
|
+
expect(task_onwarning.state).to eq "onwarning"
|
170
|
+
expect(described_class.onwarning).to eq [task_onwarning]
|
171
|
+
end
|
172
|
+
|
173
|
+
# Si date butoir <= date jour alors rouge
|
174
|
+
let(:task_onalert) {
|
175
|
+
create(:flyboy_task,
|
176
|
+
:reminder_type => "custom",
|
177
|
+
:reminder_date => Time.zone.now.to_date - 3.days,
|
178
|
+
:term => Time.zone.now.to_date,
|
179
|
+
:done => false,
|
180
|
+
)
|
181
|
+
}
|
182
|
+
|
183
|
+
it "should return :onalert" do
|
184
|
+
expect(task_onalert.state).to eq "onalert"
|
185
|
+
expect(described_class.onalert).to eq [task_onalert]
|
186
|
+
end
|
187
|
+
|
188
|
+
# Si action faite alors vert
|
189
|
+
let(:task_done) {
|
190
|
+
create(:flyboy_task,
|
191
|
+
:reminder_type => "custom",
|
192
|
+
:reminder_date => Time.zone.now.to_date - 3.days,
|
193
|
+
:term => Time.zone.now.to_date - 1.day,
|
194
|
+
:done => true,
|
195
|
+
)
|
196
|
+
}
|
197
|
+
|
198
|
+
it "should return :done" do
|
199
|
+
expect(task_done.state).to eq "done"
|
200
|
+
expect(described_class.done).to eq [task_done]
|
201
|
+
end
|
202
|
+
end # describe "states"
|
140
203
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dorsale
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.7.
|
4
|
+
version: 3.7.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- agilidée
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-10-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -558,7 +558,7 @@ files:
|
|
558
558
|
- app/filters/dorsale/customer_vault/small_data/filter_strategy_by_activity_type.rb
|
559
559
|
- app/filters/dorsale/expense_gun/small_data/filter_for_expenses.rb
|
560
560
|
- app/filters/dorsale/flyboy/small_data/filter_for_tasks.rb
|
561
|
-
- app/filters/dorsale/flyboy/small_data/
|
561
|
+
- app/filters/dorsale/flyboy/small_data/filter_strategy_by_task_state.rb
|
562
562
|
- app/helpers/dh.rb
|
563
563
|
- app/helpers/dorsale/alexandrie/attachments_helper.rb
|
564
564
|
- app/helpers/dorsale/all_helpers.rb
|
@@ -642,6 +642,7 @@ files:
|
|
642
642
|
- app/services/dorsale/flyboy/task/snoozer.rb
|
643
643
|
- app/services/dorsale/service.rb
|
644
644
|
- app/services/dorsale/tag_list_for_model.rb
|
645
|
+
- app/sorters/dorsale/flyboy/task_comments_sorter.rb
|
645
646
|
- app/uploaders/dorsale/alexandrie/file_uploader.rb
|
646
647
|
- app/uploaders/dorsale/application_uploader.rb
|
647
648
|
- app/uploaders/dorsale/avatar_uploader.rb
|
@@ -767,7 +768,9 @@ files:
|
|
767
768
|
- app/views/dorsale/expense_gun/expenses/new.html.slim
|
768
769
|
- app/views/dorsale/expense_gun/expenses/show.html.slim
|
769
770
|
- app/views/dorsale/flyboy/_filters.html.slim
|
771
|
+
- app/views/dorsale/flyboy/task_comments/_form.html.slim
|
770
772
|
- app/views/dorsale/flyboy/task_comments/_list.html.slim
|
773
|
+
- app/views/dorsale/flyboy/task_comments/_task_comment.html.slim
|
771
774
|
- app/views/dorsale/flyboy/task_mailer/new_task.html.slim
|
772
775
|
- app/views/dorsale/flyboy/task_mailer/term_email.html.slim
|
773
776
|
- app/views/dorsale/flyboy/tasks/_context.html.slim
|
@@ -950,7 +953,6 @@ files:
|
|
950
953
|
- spec/factories/flyboy_tasks.rb
|
951
954
|
- spec/files/avatar.png
|
952
955
|
- spec/files/pdf.pdf
|
953
|
-
- spec/helpers/dorsale/flyboy/application_helper_spec.rb
|
954
956
|
- spec/mailers/user_mailer.rb
|
955
957
|
- spec/models/dorsale/address_spec.rb
|
956
958
|
- spec/models/dorsale/alexandrie/attachment_spec.rb
|
@@ -1021,7 +1023,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1021
1023
|
version: '0'
|
1022
1024
|
requirements: []
|
1023
1025
|
rubyforge_project:
|
1024
|
-
rubygems_version: 2.6.
|
1026
|
+
rubygems_version: 2.6.13
|
1025
1027
|
signing_key:
|
1026
1028
|
specification_version: 4
|
1027
1029
|
summary: Modular ERP made with Ruby on Rails
|
@@ -1058,7 +1060,6 @@ test_files:
|
|
1058
1060
|
- spec/factories/flyboy_tasks.rb
|
1059
1061
|
- spec/files/avatar.png
|
1060
1062
|
- spec/files/pdf.pdf
|
1061
|
-
- spec/helpers/dorsale/flyboy/application_helper_spec.rb
|
1062
1063
|
- spec/mailers/user_mailer.rb
|
1063
1064
|
- spec/models/dorsale/address_spec.rb
|
1064
1065
|
- spec/models/dorsale/alexandrie/attachment_spec.rb
|
@@ -1,27 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
describe Dorsale::Flyboy::ApplicationHelper, type: :helper do
|
4
|
-
describe '#task_color' do
|
5
|
-
# L’affichage de la couleur de la tâche dépend de son achèvement:
|
6
|
-
# Si date jour < date relance alors noir
|
7
|
-
it 'should return .ontime' do
|
8
|
-
task = create(:flyboy_task, reminder_type: "custom", reminder_date: Time.zone.now.to_date + 1.day, term: Time.zone.now.to_date + 3.days, done: false)
|
9
|
-
expect(task_color(task)).to eq('ontime')
|
10
|
-
end
|
11
|
-
# Si date relance < date jour < date butoir alors orange
|
12
|
-
it 'should return .onwarning' do
|
13
|
-
task = create(:flyboy_task, reminder_type: "custom", reminder_date: Time.zone.now.to_date - 1.day, term: Time.zone.now.to_date + 3.days, done: false)
|
14
|
-
expect(task_color(task)).to eq('onwarning')
|
15
|
-
end
|
16
|
-
# Si date butoir < date jour alors rouge
|
17
|
-
it 'should return .onalert' do
|
18
|
-
task = create(:flyboy_task, reminder_type: "custom", reminder_date: Time.zone.now.to_date - 3.days, term: Time.zone.now.to_date - 1.day, done: false)
|
19
|
-
expect(task_color(task)).to eq('onalert')
|
20
|
-
end
|
21
|
-
# Si action faite alors vert
|
22
|
-
it 'should return .finished' do
|
23
|
-
task = create(:flyboy_task, reminder_type: "custom", reminder_date: Time.zone.now.to_date - 3.days, term: Time.zone.now.to_date - 1.day, done: true )
|
24
|
-
expect(task_color(task)).to eq('finished')
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|