fat_free_crm 0.17.3 → 0.18.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of fat_free_crm might be problematic. Click here for more details.

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"