fat_free_crm 0.17.3 → 0.18.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 (195) hide show
  1. checksums.yaml +4 -4
  2. data/.dockerignore +11 -0
  3. data/.rubocop.yml +1 -1
  4. data/.rubocop_todo.yml +30 -8
  5. data/.travis.yml +14 -9
  6. data/CHANGELOG.md +43 -7
  7. data/CONTRIBUTORS.md +95 -53
  8. data/Gemfile +11 -7
  9. data/Gemfile.lock +83 -83
  10. data/README.md +7 -4
  11. data/app/assets/javascripts/crm.js.coffee +3 -3
  12. data/app/assets/javascripts/crm_select2.js.coffee +15 -14
  13. data/app/controllers/admin/field_groups_controller.rb +8 -1
  14. data/app/controllers/admin/fields_controller.rb +4 -4
  15. data/app/controllers/admin/groups_controller.rb +1 -1
  16. data/app/controllers/admin/tags_controller.rb +1 -1
  17. data/app/controllers/application_controller.rb +11 -0
  18. data/app/controllers/authentications_controller.rb +1 -1
  19. data/app/controllers/comments_controller.rb +15 -7
  20. data/app/controllers/entities/campaigns_controller.rb +7 -2
  21. data/app/controllers/entities/leads_controller.rb +9 -2
  22. data/app/controllers/entities/opportunities_controller.rb +13 -2
  23. data/app/controllers/entities_controller.rb +10 -5
  24. data/app/controllers/lists_controller.rb +5 -1
  25. data/app/controllers/tasks_controller.rb +15 -1
  26. data/app/helpers/accounts_helper.rb +1 -1
  27. data/app/helpers/application_helper.rb +2 -2
  28. data/app/helpers/leads_helper.rb +1 -1
  29. data/app/helpers/opportunities_helper.rb +56 -3
  30. data/app/helpers/tags_helper.rb +1 -1
  31. data/app/models/entities/lead.rb +0 -7
  32. data/app/models/entities/opportunity.rb +3 -2
  33. data/app/models/observers/opportunity_observer.rb +4 -4
  34. data/app/models/users/ability.rb +3 -4
  35. data/app/views/campaigns/_metrics.html.haml +3 -3
  36. data/app/views/home/_opportunity.html.haml +4 -19
  37. data/app/views/opportunities/_index_long.html.haml +1 -24
  38. data/app/views/opportunities/_sidebar_show.html.haml +3 -3
  39. data/app/views/opportunities/_top_section.html.haml +1 -1
  40. data/db/schema.rb +0 -3
  41. data/fat_free_crm.gemspec +1 -1
  42. data/lib/fat_free_crm/core_ext/string.rb +1 -1
  43. data/lib/fat_free_crm/engine.rb +2 -2
  44. data/lib/fat_free_crm/fields.rb +1 -1
  45. data/lib/fat_free_crm/permissions.rb +0 -14
  46. data/lib/fat_free_crm/version.rb +2 -2
  47. data/lib/tasks/ffcrm/setup.rake +4 -4
  48. data/spec/controllers/admin/users_controller_spec.rb +27 -27
  49. data/spec/controllers/authentications_controller_spec.rb +7 -7
  50. data/spec/controllers/comments_controller_spec.rb +13 -13
  51. data/spec/controllers/emails_controller_spec.rb +2 -2
  52. data/spec/controllers/entities/accounts_controller_spec.rb +56 -56
  53. data/spec/controllers/entities/campaigns_controller_spec.rb +66 -66
  54. data/spec/controllers/entities/contacts_controller_spec.rb +67 -67
  55. data/spec/controllers/entities/leads_controller_spec.rb +125 -125
  56. data/spec/controllers/entities/opportunities_controller_spec.rb +100 -100
  57. data/spec/controllers/home_controller_spec.rb +26 -26
  58. data/spec/controllers/passwords_controller_spec.rb +1 -1
  59. data/spec/controllers/tasks_controller_spec.rb +37 -37
  60. data/spec/controllers/users_controller_spec.rb +18 -18
  61. data/spec/factories/account_factories.rb +8 -8
  62. data/spec/factories/campaign_factories.rb +5 -5
  63. data/spec/factories/contact_factories.rb +10 -10
  64. data/spec/factories/field_factories.rb +7 -7
  65. data/spec/factories/lead_factories.rb +8 -8
  66. data/spec/factories/list_factories.rb +1 -1
  67. data/spec/factories/opportunity_factories.rb +6 -6
  68. data/spec/factories/sequences.rb +1 -1
  69. data/spec/factories/setting_factories.rb +3 -3
  70. data/spec/factories/shared_factories.rb +14 -14
  71. data/spec/factories/subscription_factories.rb +1 -1
  72. data/spec/factories/tag_factories.rb +1 -1
  73. data/spec/factories/task_factories.rb +4 -4
  74. data/spec/factories/user_factories.rb +13 -13
  75. data/spec/features/accounts_spec.rb +17 -4
  76. data/spec/features/admin/groups_spec.rb +1 -1
  77. data/spec/features/admin/users_spec.rb +1 -1
  78. data/spec/features/campaigns_spec.rb +4 -4
  79. data/spec/features/contacts_spec.rb +10 -4
  80. data/spec/features/dashboard_spec.rb +7 -7
  81. data/spec/features/leads_spec.rb +4 -4
  82. data/spec/features/opportunities_overview_spec.rb +15 -15
  83. data/spec/features/opportunities_spec.rb +34 -8
  84. data/spec/features/support/autocomlete_helper.rb +17 -0
  85. data/spec/features/support/browser.rb +3 -8
  86. data/spec/features/support/helpers.rb +1 -1
  87. data/spec/features/tasks_spec.rb +4 -4
  88. data/spec/helpers/admin/field_groups_helper_spec.rb +1 -1
  89. data/spec/helpers/application_helper_spec.rb +1 -1
  90. data/spec/helpers/tasks_helper_spec.rb +1 -1
  91. data/spec/helpers/users_helper_spec.rb +3 -3
  92. data/spec/lib/comment_extensions_spec.rb +1 -1
  93. data/spec/lib/mail_processor/base_spec.rb +3 -3
  94. data/spec/lib/mail_processor/comment_replies_spec.rb +3 -3
  95. data/spec/lib/mail_processor/dropbox_spec.rb +16 -16
  96. data/spec/lib/permissions_spec.rb +7 -25
  97. data/spec/mailers/user_mailer_spec.rb +7 -7
  98. data/spec/models/entities/account_spec.rb +31 -32
  99. data/spec/models/entities/campaign_spec.rb +18 -25
  100. data/spec/models/entities/contact_spec.rb +18 -21
  101. data/spec/models/entities/lead_spec.rb +9 -11
  102. data/spec/models/entities/opportunity_spec.rb +45 -45
  103. data/spec/models/fields/custom_field_spec.rb +17 -17
  104. data/spec/models/list_spec.rb +2 -2
  105. data/spec/models/observers/entity_observer_spec.rb +6 -6
  106. data/spec/models/polymorphic/address_spec.rb +1 -1
  107. data/spec/models/polymorphic/avatar_spec.rb +5 -5
  108. data/spec/models/polymorphic/comment_spec.rb +5 -5
  109. data/spec/models/polymorphic/task_spec.rb +65 -58
  110. data/spec/models/polymorphic/version_spec.rb +26 -26
  111. data/spec/models/setting_spec.rb +2 -2
  112. data/spec/models/users/preference_spec.rb +6 -6
  113. data/spec/models/users/user_spec.rb +26 -26
  114. data/spec/shared/models.rb +22 -22
  115. data/spec/spec_helper.rb +2 -2
  116. data/spec/support/auth_macros.rb +1 -1
  117. data/spec/support/macros.rb +3 -3
  118. data/spec/views/accounts/_edit.haml_spec.rb +1 -1
  119. data/spec/views/accounts/create.js.haml_spec.rb +2 -2
  120. data/spec/views/accounts/destroy.js.haml_spec.rb +1 -1
  121. data/spec/views/accounts/edit.js.haml_spec.rb +2 -2
  122. data/spec/views/accounts/index.haml_spec.rb +2 -2
  123. data/spec/views/accounts/index.js.haml_spec.rb +1 -1
  124. data/spec/views/accounts/show.haml_spec.rb +4 -4
  125. data/spec/views/accounts/update.js.haml_spec.rb +1 -1
  126. data/spec/views/admin/field_groups/create.js.haml_spec.rb +1 -1
  127. data/spec/views/admin/field_groups/destroy.js.haml_spec.rb +1 -1
  128. data/spec/views/admin/field_groups/edit.js.haml_spec.rb +1 -1
  129. data/spec/views/admin/field_groups/new.js.haml_spec.rb +1 -1
  130. data/spec/views/admin/field_groups/update.js.haml_spec.rb +1 -1
  131. data/spec/views/admin/users/create.js.haml_spec.rb +2 -2
  132. data/spec/views/admin/users/destroy.js.haml_spec.rb +2 -2
  133. data/spec/views/admin/users/edit.js.haml_spec.rb +2 -2
  134. data/spec/views/admin/users/index.haml_spec.rb +1 -1
  135. data/spec/views/admin/users/index.js.haml_spec.rb +2 -2
  136. data/spec/views/admin/users/reactivate.js.haml_spec.rb +1 -1
  137. data/spec/views/admin/users/suspend.js.haml_spec.rb +1 -1
  138. data/spec/views/admin/users/update.js.haml_spec.rb +1 -1
  139. data/spec/views/application/auto_complete.haml_spec.rb +3 -3
  140. data/spec/views/campaigns/_edit.haml_spec.rb +1 -1
  141. data/spec/views/campaigns/create.js.haml_spec.rb +3 -3
  142. data/spec/views/campaigns/destroy.js.haml_spec.rb +1 -1
  143. data/spec/views/campaigns/edit.js.haml_spec.rb +2 -2
  144. data/spec/views/campaigns/index.haml_spec.rb +1 -1
  145. data/spec/views/campaigns/index.js.haml_spec.rb +1 -1
  146. data/spec/views/campaigns/show.haml_spec.rb +4 -4
  147. data/spec/views/campaigns/update.js.haml_spec.rb +1 -1
  148. data/spec/views/contacts/_edit.haml_spec.rb +7 -7
  149. data/spec/views/contacts/_new.haml_spec.rb +1 -1
  150. data/spec/views/contacts/create.js.haml_spec.rb +4 -4
  151. data/spec/views/contacts/destroy.js.haml_spec.rb +1 -1
  152. data/spec/views/contacts/edit.js.haml_spec.rb +3 -3
  153. data/spec/views/contacts/index.haml_spec.rb +1 -1
  154. data/spec/views/contacts/index.js.html_spec.rb +1 -1
  155. data/spec/views/contacts/new.js.haml_spec.rb +1 -1
  156. data/spec/views/contacts/show.haml_spec.rb +3 -3
  157. data/spec/views/contacts/update.js.haml_spec.rb +2 -2
  158. data/spec/views/home/index.haml_spec.rb +1 -1
  159. data/spec/views/home/index.js.haml_spec.rb +1 -1
  160. data/spec/views/home/options.js.haml_spec.rb +2 -2
  161. data/spec/views/leads/_convert.haml_spec.rb +3 -3
  162. data/spec/views/leads/_edit.haml_spec.rb +2 -2
  163. data/spec/views/leads/_new.haml_spec.rb +2 -2
  164. data/spec/views/leads/_sidebar_show.haml_spec.rb +5 -5
  165. data/spec/views/leads/convert.js.haml_spec.rb +4 -4
  166. data/spec/views/leads/create.js.haml_spec.rb +5 -5
  167. data/spec/views/leads/destroy.js.haml_spec.rb +2 -2
  168. data/spec/views/leads/edit.js.haml_spec.rb +4 -4
  169. data/spec/views/leads/index.haml_spec.rb +1 -1
  170. data/spec/views/leads/index.js.haml_spec.rb +1 -1
  171. data/spec/views/leads/new.js.haml_spec.rb +1 -1
  172. data/spec/views/leads/promote.js.haml_spec.rb +7 -7
  173. data/spec/views/leads/reject.js.haml_spec.rb +2 -2
  174. data/spec/views/leads/show.haml_spec.rb +2 -2
  175. data/spec/views/leads/update.js.haml_spec.rb +4 -4
  176. data/spec/views/opportunities/_edit.haml_spec.rb +7 -7
  177. data/spec/views/opportunities/_new.haml_spec.rb +2 -2
  178. data/spec/views/opportunities/create.js.haml_spec.rb +6 -6
  179. data/spec/views/opportunities/destroy.js.haml_spec.rb +3 -3
  180. data/spec/views/opportunities/edit.js.haml_spec.rb +3 -3
  181. data/spec/views/opportunities/index.haml_spec.rb +1 -1
  182. data/spec/views/opportunities/index.js.haml_spec.rb +1 -1
  183. data/spec/views/opportunities/new.js.haml_spec.rb +1 -1
  184. data/spec/views/opportunities/show.haml_spec.rb +3 -3
  185. data/spec/views/opportunities/update.js.haml_spec.rb +4 -4
  186. data/spec/views/tasks/_edit.haml_spec.rb +1 -1
  187. data/spec/views/tasks/complete.js.haml_spec.rb +4 -4
  188. data/spec/views/tasks/create.js.haml_spec.rb +6 -6
  189. data/spec/views/tasks/destroy.js.haml_spec.rb +2 -2
  190. data/spec/views/tasks/index.haml_spec.rb +4 -4
  191. data/spec/views/tasks/new.js.haml_spec.rb +1 -1
  192. data/spec/views/tasks/uncomplete.js.haml_spec.rb +2 -2
  193. data/spec/views/tasks/update.js.haml_spec.rb +18 -18
  194. data/spec/views/users/upload_avatar.js.haml_spec.rb +2 -2
  195. metadata +5 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2ca66c981de552c61f57b222cafd88bc9d34e1c2ec4a184a0bc8ffd009d4da37
4
- data.tar.gz: d484f322f7594b1c821d13424d8cd9a8bce8a4912d37b7e4151ff7bdfc8d6640
3
+ metadata.gz: 0e742d170861eae5ac601236d6f2d0ddd25d42186a66651a4adb24f5f65859fa
4
+ data.tar.gz: 25bea2bb3db3844aac5084caab8c6dd18a6ba857ed3cf3ea997ef7c604435f83
5
5
  SHA512:
6
- metadata.gz: a3944df108b8ee40424ef0747b0cead3b03a6e08129b164232b8cb7be258a632469126d0d3fc2f1bfeb35066c6089b5712afc5dea8dbf9950ebe493e4dcfcd87
7
- data.tar.gz: 3f4544819b61cefb933787a84c2a4ff693810378c1a66c5669aecea9683881000216002d7ad80d692de80b3cc4767e643eed8f93a3e1f421c2f993712ddf9dc8
6
+ metadata.gz: fea727f3837d27e618797ef91da85a2b628965fede5b84ec579c7362dc1ff7ee9180a5a39b67c705e8be528ff7431bc4077dee9a7985fb61e3c3a0f852b95c03
7
+ data.tar.gz: e63e10fc312f93a2b5e4f8be302202ebd4221ca400debf663e6a0b5acd66779fee4d03cbe9aafcdd99ece4acdb8db2d68311ec803e64e498664cc944d57491b4
@@ -0,0 +1,11 @@
1
+ .bundle
2
+ .git*
3
+ db/*.sql*
4
+ log/*
5
+ tmp/*
6
+ Dockerfile
7
+ README.md
8
+ spec/reports
9
+ spec/internal/public/avatars
10
+ spec/internal/public/assets
11
+ coverage/*
@@ -1,7 +1,7 @@
1
1
  inherit_from: .rubocop_todo.yml
2
2
 
3
3
  AllCops:
4
- TargetRubyVersion: 2.3
4
+ TargetRubyVersion: 2.4
5
5
 
6
6
  Bundler/OrderedGems:
7
7
  Enabled: false
@@ -1,11 +1,18 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2018-01-21 02:52:41 +1030 using RuboCop version 0.52.1.
3
+ # on 2018-02-02 11:21:41 +0300 using RuboCop version 0.52.1.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
+ # Offense count: 1
10
+ # Configuration parameters: Include.
11
+ # Include: **/Gemfile, **/gems.rb
12
+ Bundler/DuplicatedGem:
13
+ Exclude:
14
+ - 'Gemfile'
15
+
9
16
  # Offense count: 1
10
17
  # Cop supports --auto-correct.
11
18
  Layout/EmptyLinesAroundArguments:
@@ -31,6 +38,11 @@ Lint/BooleanSymbol:
31
38
  Exclude:
32
39
  - 'config/initializers/ransack.rb'
33
40
 
41
+ # Offense count: 1
42
+ Lint/Debugger:
43
+ Exclude:
44
+ - 'app/controllers/entities/opportunities_controller.rb'
45
+
34
46
  # Offense count: 1
35
47
  Lint/DuplicateMethods:
36
48
  Exclude:
@@ -93,7 +105,7 @@ Lint/UselessAssignment:
93
105
  - 'app/helpers/application_helper.rb'
94
106
  - 'app/views/home/index.atom.builder'
95
107
 
96
- # Offense count: 132
108
+ # Offense count: 131
97
109
  Metrics/AbcSize:
98
110
  Max: 57
99
111
 
@@ -105,13 +117,13 @@ Metrics/BlockNesting:
105
117
  # Offense count: 14
106
118
  # Configuration parameters: CountComments.
107
119
  Metrics/ClassLength:
108
- Max: 199
120
+ Max: 209
109
121
 
110
122
  # Offense count: 29
111
123
  Metrics/CyclomaticComplexity:
112
124
  Max: 14
113
125
 
114
- # Offense count: 100
126
+ # Offense count: 102
115
127
  # Configuration parameters: CountComments.
116
128
  Metrics/MethodLength:
117
129
  Max: 38
@@ -148,7 +160,7 @@ Naming/HeredocDelimiterNaming:
148
160
  Exclude:
149
161
  - 'app/controllers/passwords_controller.rb'
150
162
 
151
- # Offense count: 4
163
+ # Offense count: 5
152
164
  # Configuration parameters: NamePrefix, NamePrefixBlacklist, NameWhitelist, MethodDefinitionMacros.
153
165
  # NamePrefix: is_, has_, have_
154
166
  # NamePrefixBlacklist: is_, has_, have_
@@ -158,6 +170,7 @@ Naming/PredicateName:
158
170
  Exclude:
159
171
  - 'spec/**/*'
160
172
  - 'app/inputs/date_time_input.rb'
173
+ - 'app/models/entities/opportunity.rb'
161
174
  - 'app/models/users/user.rb'
162
175
  - 'lib/fat_free_crm/fields.rb'
163
176
  - 'lib/fat_free_crm/mail_processor/base.rb'
@@ -227,10 +240,11 @@ Style/CommentedKeyword:
227
240
  - 'app/models/users/authentication.rb'
228
241
  - 'db/migrate/20100928030617_drop_openid_tables.rb'
229
242
 
230
- # Offense count: 3
243
+ # Offense count: 4
231
244
  Style/DoubleNegation:
232
245
  Exclude:
233
246
  - 'app/helpers/application_helper.rb'
247
+ - 'app/models/entities/opportunity.rb'
234
248
  - 'app/models/polymorphic/task.rb'
235
249
  - 'lib/gravatar_image_tag.rb'
236
250
 
@@ -239,6 +253,14 @@ Style/EvalWithLocation:
239
253
  Exclude:
240
254
  - 'lib/fat_free_crm/permissions.rb'
241
255
 
256
+ # Offense count: 1
257
+ # Cop supports --auto-correct.
258
+ # Configuration parameters: EnforcedStyle.
259
+ # SupportedStyles: when_needed, always, never
260
+ Style/FrozenStringLiteralComment:
261
+ Exclude:
262
+ - 'db/schema.rb'
263
+
242
264
  # Offense count: 3
243
265
  # Configuration parameters: AllowedVariables.
244
266
  Style/GlobalVars:
@@ -246,7 +268,7 @@ Style/GlobalVars:
246
268
  - 'db/migrate/20100928030598_create_sessions.rb'
247
269
  - 'db/migrate/20120510025219_add_not_null_constraints_for_timestamp_columns.rb'
248
270
 
249
- # Offense count: 45
271
+ # Offense count: 46
250
272
  # Configuration parameters: MinBodyLength.
251
273
  Style/GuardClause:
252
274
  Enabled: false
@@ -350,7 +372,7 @@ Style/TrivialAccessors:
350
372
  Exclude:
351
373
  - 'spec/support/auth_macros.rb'
352
374
 
353
- # Offense count: 1922
375
+ # Offense count: 1924
354
376
  # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
355
377
  # URISchemes: http, https
356
378
  Metrics/LineLength:
@@ -1,8 +1,8 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
- - 2.3.6
5
4
  - 2.4.2
5
+ - 2.5.0
6
6
 
7
7
  env:
8
8
  global:
@@ -11,21 +11,24 @@ env:
11
11
  - DB=postgres TEST_SUITE=rubocop
12
12
  - DB=postgres TEST_SUITE="rake spec:features"
13
13
  - DB=postgres TEST_SUITE="rake spec:models"
14
- - DB=postgres TEST_SUITE="rake spec:mailers"
15
- - DB=postgres TEST_SUITE="rake spec:controllers"
16
- - DB=postgres TEST_SUITE="rake spec:helpers"
17
- - DB=postgres TEST_SUITE="rake spec:lib"
18
- - DB=postgres TEST_SUITE="rake spec:routing"
19
- - DB=postgres TEST_SUITE="rake spec:views"
14
+ - DB=postgres TEST_SUITE="rake spec:controllers spec:lib spec:routing spec:mailers"
15
+ - DB=postgres TEST_SUITE="rake spec:views spec:helpers"
20
16
  - DB=mysql TEST_SUITE="rake spec:models"
21
17
  - DB=sqlite TEST_SUITE="rake spec:models"
22
18
 
23
19
  matrix:
24
20
  fast_finish: true
21
+ exclude:
22
+ - rvm: 2.5.0
23
+ env: DB=postgres TEST_SUITE=rubocop
25
24
  allow_failures:
26
- - rvm: 2.3.6
27
- env: DB=sqlite TEST_SUITE="rake spec:models"
28
25
  - rvm: 2.4.2
26
+ env: DB=mysql TEST_SUITE="rake spec:models"
27
+ - rvm: 2.4.2
28
+ env: DB=sqlite TEST_SUITE="rake spec:models"
29
+ - rvm: 2.5.0
30
+ env: DB=mysql TEST_SUITE="rake spec:models"
31
+ - rvm: 2.5.0
29
32
  env: DB=sqlite TEST_SUITE="rake spec:models"
30
33
 
31
34
  addons:
@@ -40,6 +43,8 @@ before_install:
40
43
  - "sh -e /etc/init.d/xvfb start"
41
44
 
42
45
  before_script:
46
+ # gem update --system is a workaround for travis-ci/travis-ci#8978
47
+ - "gem update --system"
43
48
  - sh -c "cp config/database.$DB.yml config/database.yml"
44
49
  - sh -c "if [ \"$DB\" = 'postgres' ]; then psql -c 'create database fat_free_crm_test;' -U postgres; fi"
45
50
  - sh -c "if [ \"$DB\" = 'mysql' ]; then mysql -e 'create database fat_free_crm_test;'; fi"
@@ -4,24 +4,60 @@ It does not matter how slowly you go as long as you do not stop.
4
4
  First they ignore you, then they laugh at you, then they fight you,
5
5
  then you win. –- Mahatma Gandhi
6
6
 
7
- Sat Oct 27, 2018 (0.17.3)
7
+ Unreleased (0.19.0)
8
+ =======
9
+
10
+
11
+ Sat Apr 21, 2018 (0.18.0)
8
12
  ---------------------------------------------------------------------
9
13
 
10
- #### Fixed XSS flaw in tags_helper
11
- Credit Antonin Steinhauser (asteinhauser) for discovery and responsible disclosure.
14
+ ### Important changes
15
+ #### Mininium ruby version
16
+ #665 Support for Ruby 2.3 has been dropped, with test coverage for 2.4 and 2.5 enabled.
17
+
18
+ #### Swap to FactoryBot
19
+ If you consume fat free crm as an engine and re-use any factories, you'll need to [upgrade to FactoryBot](https://github.com/thoughtbot/factory_bot/blob/4-9-0-stable/UPGRADE_FROM_FACTORY_GIRL.md).
20
+
21
+ #### Removed methods
22
+ `Lead.update_with_permissions` is removed, use user_ids and group_ids inside attributes instead and call lead.update_with_account_and_lead_counters
23
+ `FatFreeCRM::Permissions.save_with_permissions` is removed, use user_ids and group_ids inside attributes and call save
24
+ `FatFreeCRM::Permissions.update_with_permissions` is removed, use user_ids and group_ids inside attributes and call update_attributes
25
+
26
+ #### Other changes
27
+ - CVE-2018-8048 (loofah gem)
28
+ - CVE-2018-3741 (rails-html-sanitizer gem)
29
+ - #768 Fix comment creation on entities
30
+ - #762 #764 Fix bug in select menu
31
+ - #759 Improve zero revenue display
32
+ - #753 Opportunities sort by weighted amount
33
+ - #749 Fix unsafe reflection and mass assignment
12
34
 
13
35
  Wed Jan 24, 2018 (0.17.2)
14
36
  ---------------------------------------------------------------------
15
- - Fix CVE-2017-0889
16
- - Fix #687
37
+ - CVE-2017-0889
38
+ - #724 Fixes #589 Autocomplete regression
39
+ - #723 Fixes #687 Passing string to define a callback is not supported.
17
40
 
18
- Mon Jan 22, 2018 (0.16.2)
41
+ Wed Jan 24, 2018 (0.16.3)
19
42
  ---------------------------------------------------------------------
20
- - Fix #687
43
+ CVE-2017-0889
44
+
45
+ Wed Jan 24, 2018 (0.15.1)
46
+ ---------------------------------------------------------------------
47
+ CVE-2017-0889
48
+
49
+ Wed Jan 24, 2018 (0.14.1)
50
+ ---------------------------------------------------------------------
51
+ CVE-2017-0889
21
52
 
22
53
  Sat Jan 20, 2018 (0.17.1)
23
54
  ---------------------------------------------------------------------
24
55
  - #709 Revert accidental minimum ruby version 2.4 changes (#665)
56
+ - Fix #687 Passing string to define a callback is not supported.
57
+
58
+ Mon Jan 22, 2018 (0.16.2)
59
+ ---------------------------------------------------------------------
60
+ Fix #687
25
61
 
26
62
  Sat Jan 20, 2018 (0.17.0)
27
63
  ---------------------------------------------------------------------
@@ -2,91 +2,133 @@ The following people have contributed code, patches, bug fixes, and language
2
2
  translations to the Fat Free CRM:
3
3
 
4
4
  * Aaron Brethorst
5
+ * Adis Osmonov ªº
5
6
  * Adrian Klingel
6
- * Alexander Kabanov (USA)
7
+ * Ain Tohvri
8
+ * Alejandro
9
+ * Aleksander Madland Stapnes
10
+ * Alexander Kabanov
7
11
  * Alex Tomlins
8
- * Andrew Neil (United Kingdom)
9
- * Apirak Panatkool (Thailand)
10
- * Avery Pennarun (Canada)
11
- * Beatriz Garcia Parrilla (Spain)
12
- * Ben Tillman (Hong Kong)
12
+ * AndrewsHerrera
13
+ * Anton Oslyak
14
+ * Apirak
15
+ * Apirak Panatkool
16
+ * Ashwin Phatak
17
+ * Avery Pennarun
18
+ * Ben Tillman
13
19
  * Brook
14
- * Cédric Brancourt (France)
20
+ * Bryan Helmkamp
15
21
  * Chris Carter
16
22
  * Codemis
17
- * Craig Ulliott (USA)
18
- * Daniel Jabbour (USA)
19
- * Daniel O'Connor (@CloCkWeRX)
23
+ * Cody Swann
24
+ * Daniel Jabbour
25
+ * Daniel O'Connor
26
+ * Danilo Lacoste
27
+ * David Chua
20
28
  * David Cornu
21
29
  * David Keita
22
- * Dirk Kelly (Australia)
23
- * Dmitry Dudin (Russia)
24
- * Douglas Campos (Brasil)
30
+ * David Westerink
31
+ * deppbot
32
+ * Dirk Kelly
33
+ * DmitriySalko
34
+ * Dmitry
35
+ * Dmitry Avramets
36
+ * Dmitry Dudin
37
+ * Douglas Campos
25
38
  * Drew Neil
26
- * Dr. Nic Williams (Australia)
27
39
  * dup2
28
- * Elad Meidar (Israel)
29
40
  * Electron-libre
30
- * Enderson Maia (Brasil)
31
- * Eric Davis (USA)
32
- * Eric Shelley (USA)
33
- * Fritz Thielemann (Germany)
34
- * Gavin Baker (USA)
41
+ * Enderson Maia
42
+ * Eric Shelley
43
+ * François Koessler
44
+ * Fritz Thielemann
45
+ * Gaston Arbeletche -VAIRIX-
46
+ * Gavin Baker
47
+ * Grzegorz Unijewski
35
48
  * guesxy
36
- * Hamish Rickerby (United Kingdom)
37
- * Jack Tang (China)
38
- * James Zhang (China)
49
+ * James Cook
50
+ * James Zhang
39
51
  * Jan Schulz-Hofen
40
- * Jim Gay (USA)
41
- * Johnny Shields (@jonnyshields)
52
+ * Jim Gay
53
+ * johnnyshields
54
+ * Johnny Shields
55
+ * John W. M. Carneiro
42
56
  * Josef Chmel
43
- * Jose Luis Gordo Romero (Spain)
57
+ * jose-gordo
58
+ * jose.gordo
59
+ * Jose Luis Gordo
60
+ * Jose Luis Gordo Romero
44
61
  * Joseph Near
45
- * Kamil Politowicz (Germany)
62
+ * Josh Adams
63
+ * Kamil Politowicz
64
+ * ken-wong
46
65
  * Kevin Fullerton
47
66
  * Kiran Jonnalagadda
48
67
  * Kouichi Kishikami
49
- * Lana Dvorkin (USA)
50
- * Leonid Dinershtein (Russia)
51
- * Louis Nyffenegger (Australia)
52
- * Lukasz Kosewski (Canada)
68
+ * Koustubh Sinkar
69
+ * Lana Dvorkin
70
+ * Lincoln Lee
71
+ * Louis Nyffenegger
72
+ * Lukasz Kosewski
73
+ * m
74
+ * Malachai
75
+ * Marcelo M. Leal
53
76
  * Marian Mrózek
54
77
  * Mark Friedgan
55
- * Martin Gajdos (Switzerland)
56
- * Martin Trejo (Mexico)
78
+ * Martin Gajdos
79
+ * Martin Trejo
80
+ * Martin Villero
57
81
  * Masaki Muranaka
58
- * Matt Beedle (Spain)
82
+ * Matthew Lehner
59
83
  * Mauro Alloro
60
- * Michael Dvorkin (USA)
61
- * Miles Togoe (USA)
62
- * Nathan Broadbent (Hong Kong)
84
+ * Michael Dvorkin
85
+ * Mike Dvorkin
86
+ * Murray Steele
87
+ * Nathan B
88
+ * Nathan Broadbent
63
89
  * Nicholas Fine
64
- * Nicholas Rowe (USA)
65
- * Nobuhito Okada (Japan)
66
- * Olmo Maldonado (USA)
67
- * Patrick Mulder (Germany)
90
+ * Nicholas Rowe
91
+ * Nicolas Leger
92
+ * nigh7m4r3
93
+ * Nobuhito OKADA
94
+ * Olle Jonsson
95
+ * Olmo Maldonado
96
+ * orthographic-pedant
97
+ * papilip
98
+ * Patrick Mulder
68
99
  * Paul
69
- * Peter McCurdy (Canada)
100
+ * Peter McCurdy
70
101
  * Philipp Ullmann
71
- * Ralf Ebert (Germany)
102
+ * Ralf Ebert
103
+ * Reuben Salagaras
72
104
  * rickerbh
73
- * Rit Li (USA)
105
+ * Rit Li
106
+ * Road Tang
74
107
  * Robert Fletcher
75
108
  * Rob Esposito
76
- * Roman Smirnov (Russia)
77
- * Russell Niller (USA)
78
- * Ryan Stenhouse (Scotland)
79
- * Scott Miller (USA)
109
+ * Roman Smirnov
110
+ * Ryan Stenhouse
111
+ * Satoru Ishikawa
112
+ * Scott
113
+ * Scott Dudley
114
+ * Scott Miller
80
115
  * Sebastian Castro
81
116
  * Seb Jacobs
82
117
  * Serafim Junior Dos Santos Fagundes
83
- * Steve Kenworthy (Hong Kong)
118
+ * Stanley Hansen
119
+ * Steve Kenworthy
120
+ * steveyken
121
+ * Szeto Bo
84
122
  * tarbalazs
85
- * Todd Makinster (USA)
86
- * Tom Meier (Australia)
87
- * Trevor Oke (Canada)
123
+ * Thomas Pike
124
+ * Tim Adler
125
+ * Todd Makinster
126
+ * Tom Meier
127
+ * Trevor Oke
88
128
  * William Lawson
89
129
  * Xughaa
90
- * Yury Kotlyarov (Russia)
130
+ * Yann Hourdel
131
+ * Yury Kotlyarov
132
+ * Zlatko Zahariev
91
133
 
92
134
  Generated using "git shortlog -s -n | cut -f 2 | sort"