dorsale 3.1.7 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (157) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -0
  3. data/app/assets/javascripts/dorsale/common/comments.coffee +18 -20
  4. data/app/assets/javascripts/dorsale/common/datepicker.coffee +1 -1
  5. data/app/assets/javascripts/dorsale/common/forms.coffee +1 -1
  6. data/app/assets/javascripts/dorsale/common/modals.coffee +1 -1
  7. data/app/assets/javascripts/dorsale/common/tabs_loader.coffee +1 -1
  8. data/app/assets/javascripts/dorsale/common/tags.coffee +1 -1
  9. data/app/assets/javascripts/dorsale/common/tooltips.coffee +1 -1
  10. data/app/assets/javascripts/dorsale/dependencies.coffee +2 -0
  11. data/app/assets/javascripts/dorsale/engines/billing_machine.coffee +1 -1
  12. data/app/assets/stylesheets/dorsale/all.sass +1 -1
  13. data/app/assets/stylesheets/dorsale/common/comments.sass +1 -1
  14. data/app/assets/stylesheets/dorsale/common/filters.sass +16 -1
  15. data/app/assets/stylesheets/dorsale/common/styles.sass +3 -0
  16. data/app/assets/stylesheets/dorsale/engines/customer_vault.sass +2 -2
  17. data/app/assets/stylesheets/dorsale/engines/expense_gun.sass +3 -0
  18. data/app/assets/stylesheets/dorsale/engines/flyboy.sass +4 -0
  19. data/app/assets/stylesheets/dorsale/print.sass +73 -0
  20. data/app/controllers/dorsale/alexandrie/attachments_controller.rb +0 -4
  21. data/app/controllers/dorsale/application_controller.rb +12 -0
  22. data/app/controllers/dorsale/billing_machine/application_controller.rb +0 -5
  23. data/app/controllers/dorsale/billing_machine/id_cards_controller.rb +0 -4
  24. data/app/controllers/dorsale/billing_machine/invoices_controller.rb +0 -4
  25. data/app/controllers/dorsale/billing_machine/payment_terms_controller.rb +0 -4
  26. data/app/controllers/dorsale/billing_machine/quotations_controller.rb +0 -4
  27. data/app/controllers/dorsale/comments_controller.rb +30 -55
  28. data/app/controllers/dorsale/customer_vault/links_controller.rb +5 -5
  29. data/app/controllers/dorsale/customer_vault/people_controller.rb +9 -11
  30. data/app/controllers/dorsale/expense_gun/categories_controller.rb +0 -4
  31. data/app/controllers/dorsale/expense_gun/expenses_controller.rb +1 -5
  32. data/app/controllers/dorsale/flyboy/folders_controller.rb +0 -4
  33. data/app/controllers/dorsale/flyboy/tasks_controller.rb +0 -4
  34. data/app/controllers/dorsale/users_controller.rb +7 -11
  35. data/app/filters/dorsale/billing_machine/small_data/filter_strategy_by_customer.rb +1 -1
  36. data/app/filters/dorsale/flyboy/small_data/filter_for_tasks.rb +1 -1
  37. data/app/helpers/dorsale/all_helpers.rb +1 -0
  38. data/app/helpers/dorsale/billing_machine/application_helper.rb +23 -0
  39. data/app/helpers/dorsale/comments_helper.rb +14 -2
  40. data/app/helpers/dorsale/flyboy/application_helper.rb +4 -0
  41. data/app/helpers/dorsale/text_helper.rb +12 -7
  42. data/app/libs/dorsale/sortable_uuid_generator.rb +11 -0
  43. data/app/mailers/dorsale/billing_machine/invoice_mailer.rb +2 -4
  44. data/app/models/concerns/dorsale/active_record_uuid_concern.rb +15 -0
  45. data/app/models/concerns/dorsale/default_values_concern.rb +13 -0
  46. data/app/models/dorsale/alexandrie/attachment.rb +3 -3
  47. data/app/models/dorsale/application_record.rb +11 -0
  48. data/app/models/dorsale/billing_machine/invoice.rb +13 -13
  49. data/app/models/dorsale/billing_machine/invoice_line.rb +3 -9
  50. data/app/models/dorsale/billing_machine/quotation.rb +6 -12
  51. data/app/models/dorsale/billing_machine/quotation_line.rb +3 -8
  52. data/app/models/dorsale/customer_vault/person.rb +5 -4
  53. data/app/models/dorsale/expense_gun/expense.rb +3 -4
  54. data/app/models/dorsale/expense_gun/expense_line.rb +4 -5
  55. data/app/models/dorsale/flyboy/folder.rb +2 -3
  56. data/app/models/dorsale/flyboy/task.rb +5 -6
  57. data/app/models/dorsale/flyboy/task_comment.rb +3 -8
  58. data/app/models/dorsale/users/active.rb +1 -1
  59. data/app/policies/dorsale/billing_machine/invoice_policy_helper.rb +5 -0
  60. data/app/policies/dorsale/comment_policy_helper.rb +21 -0
  61. data/app/serializers/dorsale/serializers/xlsx.rb +13 -2
  62. data/app/views/dorsale/billing_machine/invoices/_details.html.slim +1 -1
  63. data/app/views/dorsale/billing_machine/invoices/_filters.html.slim +1 -1
  64. data/app/views/dorsale/billing_machine/invoices/_form.html.slim +1 -1
  65. data/app/views/dorsale/billing_machine/invoices/_header_infos.html.slim +9 -4
  66. data/app/views/dorsale/billing_machine/invoices/_list.html.slim +3 -2
  67. data/app/views/dorsale/billing_machine/invoices/email.html.slim +6 -0
  68. data/app/views/dorsale/billing_machine/invoices/index.html.slim +1 -1
  69. data/app/views/dorsale/billing_machine/invoices/index.xlsx.ruby +41 -0
  70. data/app/views/dorsale/billing_machine/quotations/_filters.html.slim +1 -1
  71. data/app/views/dorsale/billing_machine/quotations/_list.html.slim +4 -3
  72. data/app/views/dorsale/comments/_comment.html.slim +2 -2
  73. data/app/views/dorsale/comments/_comments.html.slim +5 -0
  74. data/app/views/dorsale/comments/_form.html.slim +5 -6
  75. data/app/views/dorsale/comments/_list.html.slim +1 -1
  76. data/app/views/dorsale/comments/edit.html.slim +1 -1
  77. data/app/views/dorsale/customer_vault/links/edit.html.slim +13 -17
  78. data/app/views/dorsale/customer_vault/links/index.html.slim +10 -0
  79. data/app/views/dorsale/customer_vault/links/new.html.slim +10 -14
  80. data/app/views/dorsale/customer_vault/people/_actions.html.slim +2 -2
  81. data/app/views/dorsale/customer_vault/people/_data_context.html.slim +1 -1
  82. data/app/views/dorsale/customer_vault/people/_index_tabs.html.slim +2 -2
  83. data/app/views/dorsale/customer_vault/people/_show_layout.html.slim +10 -0
  84. data/app/views/dorsale/customer_vault/people/_tabs.html.slim +24 -0
  85. data/app/views/dorsale/customer_vault/people/activity.slim +2 -3
  86. data/app/views/dorsale/customer_vault/people/edit.html.slim +1 -0
  87. data/app/views/dorsale/customer_vault/people/index.html.slim +2 -2
  88. data/app/views/dorsale/customer_vault/people/index.xlsx.ruby +49 -0
  89. data/app/views/dorsale/customer_vault/people/invoices.html.slim +5 -0
  90. data/app/views/dorsale/customer_vault/people/show.html.slim +5 -26
  91. data/app/views/dorsale/customer_vault/people/tasks.html.slim +4 -0
  92. data/app/views/dorsale/expense_gun/categories/_list.html.slim +4 -1
  93. data/app/views/dorsale/expense_gun/expenses/_list.html.slim +1 -1
  94. data/app/views/dorsale/expense_gun/expenses/show.html.slim +3 -3
  95. data/app/views/dorsale/flyboy/_filters.html.slim +3 -0
  96. data/app/views/dorsale/flyboy/folders/_form.html.slim +3 -1
  97. data/app/views/dorsale/flyboy/folders/_list.html.slim +2 -2
  98. data/app/views/dorsale/flyboy/task_comments/_list.html.slim +2 -2
  99. data/app/views/dorsale/flyboy/tasks/_form.html.slim +4 -1
  100. data/app/views/dorsale/flyboy/tasks/_list.html.slim +1 -1
  101. data/app/views/dorsale/flyboy/tasks/_summary_list.html.slim +6 -5
  102. data/app/views/dorsale/flyboy/tasks/index.html.slim +2 -4
  103. data/app/views/dorsale/flyboy/tasks/index.xlsx.ruby +23 -0
  104. data/app/views/dorsale/flyboy/tasks/summary.html.slim +0 -2
  105. data/config/locales/common.en.yml +2 -0
  106. data/config/locales/common.fr.yml +2 -0
  107. data/config/locales/customer_vault.en.yml +0 -6
  108. data/config/locales/customer_vault.fr.yml +0 -6
  109. data/config/locales/flyboy.en.yml +2 -0
  110. data/config/locales/flyboy.fr.yml +2 -0
  111. data/config/routes.rb +7 -2
  112. data/db/migrate/20161118071317_dorsale_add_missing_indexes.rb +25 -0
  113. data/features/billing_machine_invoices.feature +4 -2
  114. data/features/customer_vault_invoices.feature +10 -0
  115. data/features/customer_vault_tasks.feature +1 -1
  116. data/features/flyboy_tasks.feature +3 -15
  117. data/features/step_definitions/billing_machine_invoices_steps.rb +2 -6
  118. data/features/step_definitions/billing_machine_quotations_steps.rb +5 -5
  119. data/features/step_definitions/common_steps.rb +7 -1
  120. data/features/step_definitions/customer_vault_corporations_steps.rb +7 -7
  121. data/features/step_definitions/customer_vault_filters_steps.rb +3 -3
  122. data/features/step_definitions/customer_vault_individuals_steps.rb +1 -1
  123. data/features/step_definitions/customer_vault_invoices_steps.rb +7 -0
  124. data/features/step_definitions/customer_vault_links_steps.rb +5 -3
  125. data/features/step_definitions/customer_vault_people_steps.rb +1 -1
  126. data/features/step_definitions/customer_vault_search_steps.rb +4 -4
  127. data/features/step_definitions/customer_vault_tasks_steps.rb +6 -16
  128. data/features/step_definitions/expense_gun_expenses_steps.rb +2 -2
  129. data/features/step_definitions/flyboy_folders_steps.rb +5 -5
  130. data/features/step_definitions/flyboy_tasks_steps.rb +5 -29
  131. data/lib/dorsale/engine.rb +6 -1
  132. data/lib/dorsale/polymorphic_id.rb +1 -1
  133. data/lib/dorsale/version.rb +1 -1
  134. data/spec/controllers/dorsale/billing_machine/invoices_controller_spec.rb +3 -4
  135. data/spec/controllers/dorsale/comments_controller_spec.rb +3 -3
  136. data/spec/controllers/dorsale/expense_gun/expenses_controller_spec.rb +10 -0
  137. data/spec/controllers/dorsale/flyboy/tasks_controller_spec.rb +1 -13
  138. data/spec/factories/dorsale_comments.rb +3 -3
  139. data/spec/helpers/dorsale/text_helper_spec.rb +15 -0
  140. data/spec/{lib → libs}/active_record_comma_type_cast_spec.rb +0 -0
  141. data/spec/{lib → libs/dorsale}/polymorphic_id_spec.rb +0 -0
  142. data/spec/libs/dorsale/sortable_uuid_generator_spec.rb +29 -0
  143. data/spec/rails_helper.rb +2 -0
  144. data/spec/routing/dorsale/customer_vault/people_routing_spec.rb +15 -0
  145. metadata +54 -18
  146. data/app/pdfs/dorsale/flyboy/roadmap.rb +0 -47
  147. data/app/views/dorsale/billing_machine/invoices/index.csv.ruby +0 -46
  148. data/app/views/dorsale/comments/_loader.html.slim +0 -5
  149. data/app/views/dorsale/comments/index.html.slim +0 -11
  150. data/app/views/dorsale/customer_vault/people/_activity_tab.html.slim +0 -4
  151. data/app/views/dorsale/customer_vault/people/_comment.html.slim +0 -1
  152. data/app/views/dorsale/customer_vault/people/_links_tab.html.slim +0 -7
  153. data/app/views/dorsale/customer_vault/people/_tasks_tab.html.slim +0 -1
  154. data/app/views/dorsale/customer_vault/people/index.xls.slim +0 -24
  155. data/app/views/dorsale/flyboy/tasks/index.csv.ruby +0 -24
  156. data/app/views/dorsale/flyboy/tasks/index.pdf.ruby +0 -6
  157. data/app/views/dorsale/flyboy/tasks/index.xls.erb +0 -29
@@ -1,47 +0,0 @@
1
- require "prawn"
2
- require "prawn/table"
3
-
4
- class Dorsale::Flyboy::Roadmap < Prawn::Document
5
- include ::ActionView::Helpers::NumberHelper
6
- include ::Dorsale::TextHelper
7
-
8
- attr_accessor :tasks
9
-
10
- def initialize(tasks)
11
- super(:page_layout => :landscape)
12
- @tasks = tasks
13
- end
14
-
15
- def build
16
- font_size 10
17
- text "Plan d'actions au #{I18n.l(Time.zone.now.to_date)}", :size => 20
18
- move_down(10)
19
- display_tasks(@tasks)
20
- end
21
-
22
- def display_tasks(tasks)
23
- display = [[
24
- "Taskable",
25
- "Type",
26
- "Avancement taskable",
27
- "Tâche",
28
- "Avancement tâche",
29
- "Echéance"
30
- ]]
31
-
32
- tasks.each do |task|
33
- display << [
34
- task.taskable.name,
35
- task.taskable.class.t,
36
- percentage(task.taskable.try(:progress)),
37
- task.name,
38
- percentage(task.progress),
39
- I18n.l(task.term)
40
- ]
41
- end
42
-
43
- table display
44
- move_down(10)
45
- end
46
-
47
- end
@@ -1,46 +0,0 @@
1
- CSV.generate({force_quotes: true, col_sep: ";" }) do |csv|
2
- column_names = [
3
- "Date",
4
- "Numéro",
5
- "Objet",
6
- "Client",
7
- "Adresse 1",
8
- "Adresse 2",
9
- "Code postal",
10
- "Ville",
11
- "Pays",
12
- "Remise commerciale",
13
- "Montant HT",
14
- "Montant TVA",
15
- "Montant TTC",
16
- "Acompte",
17
- "Solde à payer"
18
- ]
19
-
20
- csv << column_names
21
-
22
- @invoices_without_pagination.each do |invoice|
23
- csv << [
24
- invoice.date,
25
- invoice.tracking_id,
26
- invoice.label,
27
- invoice.customer.try(:name),
28
- invoice.customer.try(:address).try(:street),
29
- invoice.customer.try(:address).try(:street_bis),
30
- invoice.customer.try(:address).try(:zip),
31
- invoice.customer.try(:address).try(:city),
32
- invoice.customer.try(:address).try(:country),
33
- number(invoice.commercial_discount),
34
- number(invoice.total_excluding_taxes),
35
- number(invoice.vat_amount),
36
- number(invoice.total_including_taxes),
37
- number(invoice.advance),
38
- number(invoice.balance)
39
- ]
40
- end
41
- end.encode("WINDOWS-1252",
42
- :crlf_newline => true,
43
- :invalid => :replace,
44
- :undef => :replace,
45
- :replace => "?"
46
- )
@@ -1,5 +0,0 @@
1
- div#dorsale-comments data-url=dorsale.comments_path(commentable_type: commentable.class, commentable_id: commentable.id)
2
-
3
- coffee:
4
- $ ->
5
- dorsaleComments.load()
@@ -1,11 +0,0 @@
1
- = render "dorsale/flash"
2
-
3
- - if policy(@comment).create?
4
- = render "dorsale/comments/form", commentable: @commentable
5
-
6
- = render "dorsale/comments/list", comments: @comments
7
-
8
- javascript:
9
- if(location.pathname == "#{engine_polymorphic_path(@commentable)}") {
10
- $("#dorsale-comments .commentable-container").hide()
11
- }
@@ -1,4 +0,0 @@
1
- = comments_for(person)
2
-
3
- - if person.try(:context).present?
4
- .panel.panel-default: .panel-body = text2html(person.context)
@@ -1 +0,0 @@
1
- = render "dorsale/comments/comment", comment: comment
@@ -1,7 +0,0 @@
1
- .linkable
2
- - person.links.each do |link|
3
- = render "dorsale/customer_vault/people/list_item", person: link.other_person, link: link
4
-
5
- .text-center
6
- - if policy(person).update?
7
- = create_button dorsale.new_customer_vault_person_link_path(person), action: :new_link
@@ -1 +0,0 @@
1
- = tasks_for(@person)
@@ -1,24 +0,0 @@
1
- - fields = %w(person_type first_name last_name name short_name email phone fax mobile skype www twitter legal_form capital immatriculation_number_1 immatriculation_number_2 european_union_vat_number address.street address.street_bis address.city address.zip address.country)
2
-
3
- doctype xml
4
- Workbook(
5
- xmlns="urn:schemas-microsoft-com:office:spreadsheet"
6
- xmlns:o="urn:schemas-microsoft-com:office:office"
7
- xmlns:x="urn:schemas-microsoft-com:office:excel"
8
- xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
9
- xmlns:html="http://www.w3.org/TR/REC-html40"
10
- )
11
- Worksheet ss:Name=Dorsale::CustomerVault::Person.ts
12
- Table
13
- Row
14
- - fields.each do |field|
15
- Cell: Data ss:Type="String" = Dorsale::CustomerVault::Person.t(field)
16
-
17
- - @people_without_pagination.each do |person|
18
- Row
19
- - fields.each do |field|
20
- Cell: Data ss:Type="String"
21
- - if field.include?("address.")
22
- = person.address.public_send(field.gsub("address.", ""))
23
- - else
24
- = person.public_send(:try, field)
@@ -1,24 +0,0 @@
1
- filename = "feuille_de_route_#{Time.zone.now.to_date}.csv"
2
- response.headers["Content-Disposition"] = %(inline; filename="#{filename}")
3
-
4
- CSV.generate do |csv|
5
- csv << [
6
- "Taskable",
7
- "Type",
8
- "Avancement taskable",
9
- "Tâche",
10
- "Avancement tâche",
11
- "Echéance"
12
- ]
13
-
14
- @tasks_without_pagination.each do |task|
15
- csv << [
16
- task.taskable.name,
17
- task.taskable.class.t,
18
- "#{task.taskable.try(:progress)} %",
19
- task.name,
20
- "#{task.progress} %",
21
- I18n.l(task.term),
22
- ]
23
- end
24
- end
@@ -1,6 +0,0 @@
1
- filename = "feuille_de_route_#{Time.zone.now.to_date}.pdf"
2
- response.headers["Content-Disposition"] = %(inline; filename="#{filename}")
3
-
4
- ::Dorsale::Flyboy::Roadmap.new(@tasks_without_pagination)
5
- .tap(&:build)
6
- .render
@@ -1,29 +0,0 @@
1
- <?xml version="1.0"?>
2
- <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
3
- xmlns:o="urn:schemas-microsoft-com:office:office"
4
- xmlns:x="urn:schemas-microsoft-com:office:excel"
5
- xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
6
- xmlns:html="http://www.w3.org/TR/REC-html40">
7
- <Worksheet ss:Name="Sheet1">
8
- <Table>
9
- <Row>
10
- <Cell><Data ss:Type="String">Taskable</Data></Cell>
11
- <Cell><Data ss:Type="String">Type</Data></Cell>
12
- <Cell><Data ss:Type="String">Avancement taskable</Data></Cell>
13
- <Cell><Data ss:Type="String">Tâche</Data></Cell>
14
- <Cell><Data ss:Type="String">Avancement tâche</Data></Cell>
15
- <Cell><Data ss:Type="String">Echéance</Data></Cell>
16
- </Row>
17
- <% @tasks_without_pagination.each do |task| %>
18
- <Row>
19
- <Cell><Data ss:Type="String"><%= task.taskable.name %></Data></Cell>
20
- <Cell><Data ss:Type="String"><%= task.taskable.class.t %></Data></Cell>
21
- <Cell><Data ss:Type="String"><%= percentage(task.taskable.try(:progress)) %></Data></Cell>
22
- <Cell><Data ss:Type="String"><%= task.name %></Data></Cell>
23
- <Cell><Data ss:Type="String"><%= percentage(task.progress) %></Data></Cell>
24
- <Cell><Data ss:Type="String"><%= l(task.term) %></Data></Cell>
25
- </Row>
26
- <% end %>
27
- </Table>
28
- </Worksheet>
29
- </Workbook>