dorsale 3.2.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -0
  3. data/app/assets/javascripts/dorsale/common/forms.coffee +3 -14
  4. data/app/assets/stylesheets/dorsale/common/contexts.sass +0 -23
  5. data/app/assets/stylesheets/dorsale/common/styles.sass +5 -0
  6. data/app/assets/stylesheets/dorsale/engines/billing_machine.sass +3 -0
  7. data/app/assets/stylesheets/dorsale/print.sass +1 -0
  8. data/app/helpers/dorsale/button_helper.rb +18 -0
  9. data/app/helpers/dorsale/context_helper.rb +2 -6
  10. data/app/views/dorsale/_page.html.slim +40 -0
  11. data/app/views/dorsale/billing_machine/id_cards/_index_actions.html.slim +2 -0
  12. data/app/views/dorsale/billing_machine/id_cards/index.html.slim +2 -3
  13. data/app/views/dorsale/billing_machine/invoices/_details.html.slim +0 -14
  14. data/app/views/dorsale/billing_machine/invoices/_index_actions.html.slim +6 -0
  15. data/app/views/dorsale/billing_machine/invoices/_show_title.html.slim +12 -0
  16. data/app/views/dorsale/billing_machine/invoices/index.html.slim +2 -6
  17. data/app/views/dorsale/billing_machine/invoices/index.pdf.ruby +5 -0
  18. data/app/views/dorsale/billing_machine/invoices/show.html.slim +7 -3
  19. data/app/views/dorsale/billing_machine/payment_terms/_index_actions.html.slim +2 -0
  20. data/app/views/dorsale/billing_machine/payment_terms/index.html.slim +2 -3
  21. data/app/views/dorsale/billing_machine/quotations/_details.html.slim +1 -0
  22. data/app/views/dorsale/billing_machine/quotations/_index_actions.html.slim +2 -0
  23. data/app/views/dorsale/billing_machine/quotations/_show_title.html.slim +1 -0
  24. data/app/views/dorsale/billing_machine/quotations/index.html.slim +2 -3
  25. data/app/views/dorsale/billing_machine/quotations/show.html.slim +7 -4
  26. data/app/views/dorsale/customer_vault/links/edit.html.slim +1 -1
  27. data/app/views/dorsale/customer_vault/links/index.html.slim +6 -7
  28. data/app/views/dorsale/customer_vault/links/new.html.slim +1 -1
  29. data/app/views/dorsale/customer_vault/people/{_actions.html.slim → _index_actions.html.slim} +1 -1
  30. data/app/views/dorsale/customer_vault/people/_show_layout.html.slim +3 -4
  31. data/app/views/dorsale/customer_vault/people/_show_tabs.html.slim +26 -0
  32. data/app/views/dorsale/customer_vault/people/activity.slim +3 -3
  33. data/app/views/dorsale/customer_vault/people/edit.html.slim +2 -2
  34. data/app/views/dorsale/customer_vault/people/index.html.slim +2 -2
  35. data/app/views/dorsale/customer_vault/people/invoices.html.slim +2 -3
  36. data/app/views/dorsale/customer_vault/people/new.html.slim +2 -2
  37. data/app/views/dorsale/customer_vault/people/show.html.slim +1 -1
  38. data/app/views/dorsale/customer_vault/people/tasks.html.slim +4 -3
  39. data/app/views/dorsale/expense_gun/categories/_index_actions.html.slim +2 -0
  40. data/app/views/dorsale/expense_gun/categories/index.html.slim +2 -3
  41. data/app/views/dorsale/expense_gun/expenses/_index_actions.html.slim +2 -0
  42. data/app/views/dorsale/expense_gun/expenses/_show_actions.html.slim +19 -0
  43. data/app/views/dorsale/expense_gun/expenses/index.html.slim +2 -3
  44. data/app/views/dorsale/expense_gun/expenses/show.html.slim +36 -49
  45. data/app/views/dorsale/flyboy/folders/_context.html.slim +1 -1
  46. data/app/views/dorsale/flyboy/folders/{_actions.html.slim → _context_actions.html.slim} +0 -0
  47. data/app/views/dorsale/flyboy/folders/_index_actions.html.slim +2 -0
  48. data/app/views/dorsale/flyboy/folders/edit.html.slim +3 -3
  49. data/app/views/dorsale/flyboy/folders/index.html.slim +2 -3
  50. data/app/views/dorsale/flyboy/folders/show.html.slim +8 -3
  51. data/app/views/dorsale/flyboy/tasks/_index_actions.html.slim +2 -0
  52. data/app/views/dorsale/flyboy/tasks/_tasks_for_taskable.html.slim +4 -3
  53. data/app/views/dorsale/flyboy/tasks/edit.html.slim +3 -3
  54. data/app/views/dorsale/flyboy/tasks/index.html.slim +2 -3
  55. data/app/views/dorsale/flyboy/tasks/new.html.slim +3 -3
  56. data/app/views/dorsale/flyboy/tasks/show.html.slim +3 -3
  57. data/app/views/dorsale/users/_index_actions.html.slim +2 -0
  58. data/app/views/dorsale/users/index.html.slim +2 -3
  59. data/config/locales/common.en.yml +5 -0
  60. data/config/locales/common.fr.yml +5 -9
  61. data/config/locales/customer_vault.fr.yml +1 -1
  62. data/config/locales/expense_gun.fr.yml +0 -4
  63. data/lib/dorsale/version.rb +1 -1
  64. data/spec/controllers/dorsale/billing_machine/invoices_controller_spec.rb +10 -0
  65. data/spec/models/dorsale/i18n_spec.rb +3 -5
  66. metadata +20 -8
  67. data/app/views/dorsale/_contextual.html.slim +0 -11
  68. data/app/views/dorsale/_index.html.slim +0 -24
  69. data/app/views/dorsale/customer_vault/people/_tabs.html.slim +0 -24
  70. data/app/views/dorsale/flyboy/tasks/_actions.html.slim +0 -9
@@ -3,7 +3,7 @@
3
3
  = render "dorsale/customer_vault/people/context", person: @person
4
4
  = render "dorsale/customer_vault/people/data_context", person: @person
5
5
 
6
- - content_for :main
6
+ - content_for :page_body
7
7
  .panel.panel-default: .panel-heading: .panel-title
8
8
  = t("actions.update")
9
9
  = " : "
@@ -11,4 +11,4 @@
11
11
 
12
12
  = render "dorsale/customer_vault/people/form"
13
13
 
14
- = render_contextual
14
+ = render_dorsale_page
@@ -11,7 +11,7 @@
11
11
  = render "dorsale/customer_vault/people/index_tabs"
12
12
 
13
13
  - content_for :actions
14
- = render "dorsale/customer_vault/people/actions"
14
+ = render "dorsale/customer_vault/people/index_actions"
15
15
 
16
16
  - content_for :page_body
17
17
  = render "dorsale/customer_vault/people/list"
@@ -23,4 +23,4 @@
23
23
  .text-center
24
24
  = info model, :count, @people_without_pagination.count
25
25
 
26
- = render_dorsale_index
26
+ = render_dorsale_page
@@ -1,5 +1,4 @@
1
- - content_for :person_page
2
- .panel.panel-default
3
- = render "dorsale/billing_machine/invoices/list", invoices: @person.invoices
1
+ - content_for :table
2
+ = render "dorsale/billing_machine/invoices/list", invoices: @person.invoices
4
3
 
5
4
  = render "dorsale/customer_vault/people/show_layout"
@@ -1,8 +1,8 @@
1
1
  .customer_vault
2
- - content_for :main
2
+ - content_for :page_body
3
3
  .panel.panel-default: .panel-heading: .panel-title
4
4
  = t("actions.new_#{@person.person_type}")
5
5
 
6
6
  = render "dorsale/customer_vault/people/form"
7
7
 
8
- = render_contextual
8
+ = render_dorsale_page
@@ -1,4 +1,4 @@
1
- - content_for :person_page
1
+ - content_for :page_body
2
2
  = comments_for(@person)
3
3
 
4
4
  - if @person.try(:context).present?
@@ -1,4 +1,5 @@
1
- - content_for :person_page
2
- = tasks_for(@person)
1
+ .flyboy
2
+ - content_for :page_body
3
+ = tasks_for(@person)
3
4
 
4
- = render "dorsale/customer_vault/people/show_layout"
5
+ = render "dorsale/customer_vault/people/show_layout"
@@ -0,0 +1,2 @@
1
+ - if policy(::Dorsale::ExpenseGun::Category).create?
2
+ = create_button new_expense_gun_category_path, action: :create
@@ -3,10 +3,9 @@
3
3
  = ::Dorsale::ExpenseGun::Category.ts
4
4
 
5
5
  - content_for :actions
6
- - if policy(::Dorsale::ExpenseGun::Category).create?
7
- = create_button new_expense_gun_category_path, action: :create
6
+ = render "dorsale/expense_gun/categories/index_actions"
8
7
 
9
8
  - content_for :table
10
9
  = render "dorsale/expense_gun/categories/list", categories: @categories
11
10
 
12
- = render_dorsale_index
11
+ = render_dorsale_page
@@ -0,0 +1,2 @@
1
+ - if policy(::Dorsale::ExpenseGun::Expense).create?
2
+ = create_button dorsale.new_expense_gun_expense_path, text: t("expense_gun.expense.actions.create")
@@ -0,0 +1,19 @@
1
+ - if policy(@expense).update?
2
+ = update_button dorsale.edit_expense_gun_expense_path(@expense)
3
+
4
+ - if policy(@expense).copy?
5
+ = copy_button dorsale.copy_expense_gun_expense_path(@expense)
6
+
7
+ - if policy(@expense).submit?
8
+ = dorsale_button dorsale.submit_expense_gun_expense_path(@expense), action: :submit, method: "patch", confirm: true, icon: :check, class: "btn btn-xs btn-primary"
9
+
10
+ - if policy(@expense).accept?
11
+ = dorsale_button dorsale.accept_expense_gun_expense_path(@expense), action: :accept, method: "patch", confirm: true, icon: :check, class: "btn btn-xs btn-success"
12
+
13
+ - if policy(@expense).refuse?
14
+ = dorsale_button dorsale.refuse_expense_gun_expense_path(@expense), action: :refuse, method: "patch", confirm: true, icon: :ban, class: "btn btn-xs btn-danger"
15
+
16
+ - if policy(@expense).cancel?
17
+ = dorsale_button dorsale.cancel_expense_gun_expense_path(@expense), action: :cancel, method: "patch", confirm: true, icon: :times, class: "btn btn-xs btn-warning"
18
+
19
+ = print_button
@@ -8,8 +8,7 @@
8
8
  = paginate @expenses
9
9
 
10
10
  - content_for :actions
11
- - if policy(::Dorsale::ExpenseGun::Expense).create?
12
- = create_button dorsale.new_expense_gun_expense_path, text: t("expense_gun.expense.actions.create")
11
+ = render "dorsale/expense_gun/expenses/index_actions"
13
12
 
14
13
  - content_for :filters
15
14
  = render "dorsale/expense_gun/expenses/filters"
@@ -17,4 +16,4 @@
17
16
  - content_for :page_body
18
17
  = render "dorsale/expense_gun/expenses/list", expenses: @expenses
19
18
 
20
- = render_dorsale_index
19
+ = render_dorsale_page
@@ -1,65 +1,52 @@
1
1
  .expense_gun
2
- .actions.top
3
- - if policy(@expense).update?
4
- = update_button dorsale.edit_expense_gun_expense_path(@expense)
2
+ - content_for :actions
3
+ = render "dorsale/expense_gun/expenses/show_actions"
5
4
 
6
- - if policy(@expense).copy?
7
- = copy_button dorsale.copy_expense_gun_expense_path(@expense)
5
+ - content_for :title
6
+ = @expense.t
7
+ = " : "
8
+ = @expense
8
9
 
9
- - if policy(@expense).submit?
10
- = link_to t("expense_gun.expense.actions.submit"), dorsale.submit_expense_gun_expense_path(@expense), data: {method: "patch", confirm: t("actions.confirm")}, class: "btn btn-primary"
11
-
12
- - if policy(@expense).accept?
13
- = link_to t("expense_gun.expense.actions.accept"), dorsale.accept_expense_gun_expense_path(@expense), data: {method: "patch", confirm: t("actions.confirm")}, class: "btn btn-success"
14
-
15
- - if policy(@expense).refuse?
16
- = link_to t("expense_gun.expense.actions.refuse"), dorsale.refuse_expense_gun_expense_path(@expense), data: {method: "patch", confirm: t("actions.confirm")}, class: "btn btn-danger"
17
-
18
- - if policy(@expense).cancel?
19
- = link_to t("expense_gun.expense.actions.cancel"), dorsale.cancel_expense_gun_expense_path(@expense), data: {method: "patch", confirm: t("actions.confirm")}, class: "btn btn-warning"
20
-
21
- = print_button
22
-
23
- .panel.panel-default
24
- .panel-heading: .panel-title
25
- = @expense.t
26
- = " : "
27
- = @expense
28
10
 
11
+ - content_for :table
29
12
  .panel-body
30
13
  = info @expense, :date
31
14
  = info @expense, :user
32
15
  = info @expense, :state
33
16
 
34
- hr
17
+ - content_for :page_body
35
18
 
36
- - @expense.expense_lines.each do |expense_line|
37
- .panel.panel-default.expense-line
38
- .panel-body
39
- .row
40
- .col-md-4
41
- = info expense_line, :name
42
- = info expense_line, :category
43
- = info expense_line, :date
19
+ hr
44
20
 
45
- .col-md-4
46
- = info expense_line, :total_all_taxes, helper: :euros
47
- = info expense_line, :company_part, helper: :percentage
48
- = info expense_line, :employee_payback, helper: :euros
21
+ - @expense.expense_lines.each do |expense_line|
22
+ .panel.panel-default.expense-line
23
+ .panel-body
24
+ .row
25
+ .col-md-4
26
+ = info expense_line, :name
27
+ = info expense_line, :category
28
+ = info expense_line, :date
49
29
 
50
- .col-md-4
51
- = info expense_line, :vat, helper: :euros
52
- = info expense_line, :total_vat_deductible, helper: :euros
30
+ .col-md-4
31
+ = info expense_line, :total_all_taxes, helper: :euros
32
+ = info expense_line, :company_part, helper: :percentage
33
+ = info expense_line, :employee_payback, helper: :euros
53
34
 
54
- hr
35
+ .col-md-4
36
+ = info expense_line, :vat, helper: :euros
37
+ = info expense_line, :total_vat_deductible, helper: :euros
55
38
 
56
- .panel.panel-default
57
- .panel-body
58
- = info @expense, :total_all_taxes, helper: :euros
59
- = info @expense, :total_employee_payback, helper: :euros
60
- = info @expense, :total_vat_deductible, helper: :euros
39
+ hr
40
+
41
+ .panel.panel-default
42
+ .panel-body
43
+ = info @expense, :total_all_taxes, helper: :euros
44
+ = info @expense, :total_employee_payback, helper: :euros
45
+ = info @expense, :total_vat_deductible, helper: :euros
46
+
47
+ hr
61
48
 
62
- hr
49
+ .attachments-panel
50
+ = attachments_for(@expense)
63
51
 
64
- .attachments-panel
65
- = attachments_for(@expense)
52
+ = render_dorsale_page
@@ -15,4 +15,4 @@
15
15
  = info folder, :description, helper: :text2html
16
16
 
17
17
  .context-footer
18
- = render "dorsale/flyboy/folders/actions", folder: folder
18
+ = render "dorsale/flyboy/folders/context_actions", folder: folder
@@ -0,0 +1,2 @@
1
+ - if policy(::Dorsale::Flyboy::Folder).create?
2
+ = create_button dorsale.new_flyboy_folder_path
@@ -1,8 +1,8 @@
1
1
  .flyboy
2
- - content_for :context do
2
+ - content_for :context
3
3
  = render "dorsale/flyboy/folders/context", folder: @folder
4
4
 
5
- - content_for :main do
5
+ - content_for :page_body
6
6
  = render "dorsale/flyboy/folders/form"
7
7
 
8
- = render_contextual
8
+ = render_dorsale_page
@@ -11,8 +11,7 @@
11
11
  = search_form
12
12
 
13
13
  - content_for :actions
14
- - if policy(::Dorsale::Flyboy::Folder).create?
15
- = create_button dorsale.new_flyboy_folder_path
14
+ = render "dorsale/flyboy/folders/index_actions"
16
15
 
17
16
  - content_for :table
18
17
  = render "dorsale/flyboy/folders/list", folders: @folders
@@ -20,4 +19,4 @@
20
19
  - content_for :pagination
21
20
  = paginate @folders
22
21
 
23
- = render_dorsale_index
22
+ = render_dorsale_page
@@ -1,9 +1,14 @@
1
1
  .flyboy
2
- - content_for :context do
2
+ - content_for :title
3
+ = icon :check_square_o
4
+ = " "
5
+ = ::Dorsale::Flyboy::Task.ts
6
+
7
+ - content_for :context
3
8
  = render "dorsale/flyboy/folders/context", folder: @folder
4
9
 
5
- - content_for :main do
10
+ - content_for :page_body
6
11
  .tasks
7
12
  = tasks_for @folder
8
13
 
9
- = render_contextual
14
+ = render_dorsale_page
@@ -0,0 +1,2 @@
1
+ - if policy(model).export?
2
+ = export_button url_for(format: :xlsx), download: "#{model.ts}.xlsx"
@@ -1,9 +1,10 @@
1
1
  .flyboy
2
- = render "dorsale/flyboy/filters"
2
+ - content_for :filters
3
+ = render "dorsale/flyboy/filters"
3
4
 
4
- .panel.panel-default
5
+ - content_for :table
5
6
  = render "dorsale/flyboy/tasks/list", tasks: tasks, nested: true
6
7
 
7
- p.text-center
8
+ - content_for :actions
8
9
  - if policy(::Dorsale::Flyboy::Task).create?
9
10
  = create_button dorsale.new_flyboy_task_path(taskable_guid: taskable.guid), action: :new_task
@@ -1,8 +1,8 @@
1
1
  .flyboy
2
- - content_for :context do
2
+ - content_for :context
3
3
  = render "dorsale/flyboy/tasks/context", task: @task
4
4
 
5
- - content_for :main do
5
+ - content_for :page_body
6
6
  = render "dorsale/flyboy/tasks/form"
7
7
 
8
- = render_contextual
8
+ = render_dorsale_page
@@ -11,8 +11,7 @@
11
11
  = search_form
12
12
 
13
13
  - content_for :actions
14
- - if policy(model).export?
15
- = download_button url_for(format: :xlsx), download: "#{model.ts}.xlsx"
14
+ = render "dorsale/flyboy/tasks/index_actions"
16
15
 
17
16
  - content_for :table
18
17
  = render "dorsale/flyboy/tasks/list", tasks: @tasks, nested: false
@@ -20,5 +19,5 @@
20
19
  - content_for :pagination
21
20
  = paginate @tasks
22
21
 
23
- = render_dorsale_index
22
+ = render_dorsale_page
24
23
 
@@ -1,8 +1,8 @@
1
1
  .flyboy
2
- - content_for :context do
2
+ - content_for :context
3
3
  = render "dorsale/flyboy/tasks/taskable_context", taskable: @task.taskable
4
4
 
5
- - content_for :main do
5
+ - content_for :page_body
6
6
  = render "dorsale/flyboy/tasks/form"
7
7
 
8
- = render_contextual
8
+ = render_dorsale_page
@@ -1,9 +1,9 @@
1
1
  .flyboy
2
- - content_for :context do
2
+ - content_for :context
3
3
  = render "dorsale/flyboy/tasks/context", task: @task
4
4
  = render "dorsale/flyboy/tasks/taskable_context", taskable: @task.taskable
5
5
 
6
- - content_for :main do
6
+ - content_for :page_body
7
7
  .task-comments
8
8
  = render "dorsale/flyboy/task_comments/list", task: @task
9
9
 
@@ -14,4 +14,4 @@
14
14
  .panel-body
15
15
  = text2html @task.description
16
16
 
17
- = render_contextual
17
+ = render_dorsale_page
@@ -0,0 +1,2 @@
1
+ - if policy(User).create?
2
+ = create_button dorsale.new_user_path
@@ -5,10 +5,9 @@
5
5
  = User.ts
6
6
 
7
7
  - content_for :actions
8
- - if policy(User).create?
9
- = create_button dorsale.new_user_path
8
+ = render "dorsale/users/index_actions"
10
9
 
11
10
  - content_for :table
12
11
  = render "dorsale/users/list", users: @users
13
12
 
14
- = render_dorsale_index
13
+ = render_dorsale_page
@@ -57,10 +57,12 @@ en:
57
57
  export : "Export"
58
58
  export_csv : "Export CSV"
59
59
  export_xls : "Export XLS"
60
+ export_xlsx: "Export XLSX"
60
61
  export_pdf : "Export PDF"
61
62
  import : "Import"
62
63
  import_csv : "Import CSV"
63
64
  import_xls : "Import XLS"
65
+ import_xlsx: "Import XLSX"
64
66
  import_pdf : "Import PDF"
65
67
  send : "Send"
66
68
  comment : "Comment"
@@ -72,6 +74,9 @@ en:
72
74
  rename : "Rename"
73
75
  email : "Send by email"
74
76
  print : "Print"
77
+ submit : "Submit"
78
+ accept : "Accept"
79
+ refuse : "Refuse"
75
80
 
76
81
  attributes: &attributes
77
82
  id : "Id"
@@ -65,10 +65,12 @@ fr:
65
65
  export : "Exporter"
66
66
  export_csv : "Export CSV"
67
67
  export_xls : "Export XLS"
68
+ export_xlsx: "Export XLSX"
68
69
  export_pdf : "Export PDF"
69
70
  import : "Importer"
70
71
  import_csv : "Import CSV"
71
72
  import_xls : "Import XLS"
73
+ import_xlsx: "Import XLSX"
72
74
  import_pdf : "Import PDF"
73
75
  send : "Envoyer"
74
76
  comment : "Commenter"
@@ -80,6 +82,9 @@ fr:
80
82
  rename : "Renommer"
81
83
  email : "Envoyer par email"
82
84
  print : "Imprimer"
85
+ submit : "Soumettre"
86
+ accept : "Accepter"
87
+ refuse : "Refuser"
83
88
 
84
89
  attributes: &attributes
85
90
  id : "Id"
@@ -167,15 +172,6 @@ fr:
167
172
  email_attachment : "Pièce jointe"
168
173
  email_body : "Message"
169
174
 
170
- # TODO : Move to bakkbone
171
- administrator : "Administrateur?"
172
- billing_machine : "Accès Facturation?"
173
- time_machine : "Accès Gestion Du Temps?"
174
- expense_gun : "Accès Note de Frais?"
175
- customer_vault : "Accès Annuaire?"
176
- flyboy : "Accès Taches?"
177
- notify_invoices_late_payments: "Notifications de Retard de Paiement?"
178
-
179
175
  errors:
180
176
  messages:
181
177
  extension_white_list_error : "Ce type de fichier n'est pas prit en charge"