voluntary 0.4.0 → 0.5.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 (81) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -1
  3. data/README.md +0 -1
  4. data/app/assets/javascripts/voluntary/base.js.coffee +13 -12
  5. data/app/assets/stylesheets/voluntary/application.css +1 -1
  6. data/app/assets/stylesheets/voluntary/base.css.sass +3 -3
  7. data/app/assets/stylesheets/voluntary/bootstrap_and_overrides.css.sass +0 -1
  8. data/app/assets/stylesheets/voluntary/sticky_footer.css +1 -1
  9. data/app/controllers/products_controller.rb +2 -2
  10. data/app/controllers/voluntary/api/v1/base_controller.rb +24 -4
  11. data/app/controllers/voluntary/api/v1/tasks_controller.rb +50 -0
  12. data/app/controllers/voluntary/application_controller.rb +0 -4
  13. data/app/helpers/voluntary/show_helper.rb +2 -1
  14. data/app/models/area.rb +1 -2
  15. data/app/models/product.rb +1 -0
  16. data/app/models/project.rb +0 -1
  17. data/app/models/project_user.rb +1 -2
  18. data/app/models/result.rb +4 -0
  19. data/app/models/story.rb +21 -2
  20. data/app/models/task.rb +14 -1
  21. data/app/models/thing.rb +11 -0
  22. data/app/models/user.rb +9 -8
  23. data/app/models/wikidata.rb +20 -0
  24. data/app/views/areas/_form.html.erb +7 -6
  25. data/app/views/comments/_form.html.erb +7 -7
  26. data/app/views/layouts/application.html.erb +10 -10
  27. data/app/views/layouts/shared/_flash_messages.html.erb +1 -1
  28. data/app/views/layouts/shared/_navigation.html.erb +7 -9
  29. data/app/views/organizations/_form.html.erb +6 -6
  30. data/app/views/pages/_form.html.erb +7 -7
  31. data/app/views/products/_form.html.erb +19 -20
  32. data/app/views/projects/_form.html.erb +12 -12
  33. data/app/views/shared/form/_error_messages.html.erb +1 -1
  34. data/app/views/shared/layouts/twitter_bootstrap/_control_group.html.erb +5 -5
  35. data/app/views/shared/layouts/twitter_bootstrap/control_group/_boolean.html.erb +4 -4
  36. data/app/views/shared/resource/_actions.html.erb +2 -1
  37. data/app/views/stories/_form.html.erb +4 -14
  38. data/app/views/stories/show.html.erb +1 -0
  39. data/app/views/stories/steps/_activate.html.erb +6 -9
  40. data/app/views/stories/steps/_setup_tasks.html.erb +19 -18
  41. data/app/views/tasks/show.html.erb +20 -0
  42. data/app/views/users/_form.html.erb +6 -10
  43. data/app/views/users/preferences.html.erb +6 -8
  44. data/app/views/users/show.html.erb +1 -0
  45. data/app/views/workflow/project_owner/index.html.erb +2 -2
  46. data/app/views/workflow/tasks/_work_form.html.erb +5 -7
  47. data/app/views/workflow/tasks/steps/_complete.html.erb +9 -5
  48. data/app/views/workflow/tasks/steps/_review.html.erb +11 -6
  49. data/app/views/workflow/tasks/steps/_work.html.erb +15 -10
  50. data/app/views/workflow/user/index.html.erb +4 -4
  51. data/config/initializers/simple_form.rb +10 -10
  52. data/config/initializers/simple_form_bootstrap.rb +136 -0
  53. data/config/locales/general/en.yml +3 -10
  54. data/config/locales/resources/story/en.yml +5 -0
  55. data/config/locales/resources/thing/en.yml +8 -0
  56. data/config/locales/resources/user/en.yml +13 -1
  57. data/config/routes/api.rb +4 -3
  58. data/db/migrate/20120907144853_create_schema.rb +0 -2
  59. data/db/migrate/20131018143613_replace_user_by_polymorphic_resource_in_candidatures.rb +16 -8
  60. data/db/migrate/20150802141840_drop_recruiting_unless_recruiting_plugin_present.rb +3 -2
  61. data/db/migrate/20150808155719_add_api_key_to_users.rb +13 -0
  62. data/db/migrate/20150809120211_remove_roles_model.rb +63 -0
  63. data/lib/applicat/mvc/model/resource/base.rb +0 -8
  64. data/lib/concerns/model/base_thing.rb +9 -0
  65. data/lib/generators/voluntary/install/install_generator.rb +0 -15
  66. data/lib/generators/voluntary/product_dummy/product_dummy_generator.rb +0 -15
  67. data/lib/voluntary/test/rspec_helpers/factories.rb +0 -11
  68. data/lib/voluntary/version.rb +1 -1
  69. data/lib/voluntary.rb +3 -5
  70. metadata +48 -94
  71. data/app/models/role/admin.rb +0 -2
  72. data/app/models/role/master.rb +0 -2
  73. data/app/models/role/project_owner.rb +0 -2
  74. data/app/models/role/user.rb +0 -2
  75. data/app/models/role.rb +0 -8
  76. data/app/models/user_role.rb +0 -6
  77. data/db/seeds.rb +0 -14
  78. data/lib/db_seed.rb +0 -166
  79. data/lib/generators/voluntary/install/templates/db/seeds.rb +0 -14
  80. data/lib/generators/voluntary/install/templates/lib/volontariat_seed.rb +0 -36
  81. data/lib/volontariat_seed.rb +0 -27
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: voluntary
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mathias Gawlista
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-03 00:00:00.000000000 Z
11
+ date: 2015-08-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -164,6 +164,20 @@ dependencies:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
166
  version: 1.0.3
167
+ - !ruby/object:Gem::Dependency
168
+ name: httparty
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: 0.13.5
174
+ type: :runtime
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: 0.13.5
167
181
  - !ruby/object:Gem::Dependency
168
182
  name: devise
169
183
  requirement: !ruby/object:Gem::Requirement
@@ -403,61 +417,61 @@ dependencies:
403
417
  - !ruby/object:Gem::Version
404
418
  version: 2.4.1
405
419
  - !ruby/object:Gem::Dependency
406
- name: mongoid_slug
420
+ name: bitmask_attributes
407
421
  requirement: !ruby/object:Gem::Requirement
408
422
  requirements:
409
423
  - - "~>"
410
424
  - !ruby/object:Gem::Version
411
- version: 3.2.0
425
+ version: 1.0.0
412
426
  type: :runtime
413
427
  prerelease: false
414
428
  version_requirements: !ruby/object:Gem::Requirement
415
429
  requirements:
416
430
  - - "~>"
417
431
  - !ruby/object:Gem::Version
418
- version: 3.2.0
432
+ version: 1.0.0
419
433
  - !ruby/object:Gem::Dependency
420
- name: has_scope
434
+ name: mongoid_slug
421
435
  requirement: !ruby/object:Gem::Requirement
422
436
  requirements:
423
437
  - - "~>"
424
438
  - !ruby/object:Gem::Version
425
- version: 0.5.1
439
+ version: 3.2.0
426
440
  type: :runtime
427
441
  prerelease: false
428
442
  version_requirements: !ruby/object:Gem::Requirement
429
443
  requirements:
430
444
  - - "~>"
431
445
  - !ruby/object:Gem::Version
432
- version: 0.5.1
446
+ version: 3.2.0
433
447
  - !ruby/object:Gem::Dependency
434
- name: friendly_id
448
+ name: has_scope
435
449
  requirement: !ruby/object:Gem::Requirement
436
450
  requirements:
437
451
  - - "~>"
438
452
  - !ruby/object:Gem::Version
439
- version: 5.0.0
453
+ version: 0.5.1
440
454
  type: :runtime
441
455
  prerelease: false
442
456
  version_requirements: !ruby/object:Gem::Requirement
443
457
  requirements:
444
458
  - - "~>"
445
459
  - !ruby/object:Gem::Version
446
- version: 5.0.0
460
+ version: 0.5.1
447
461
  - !ruby/object:Gem::Dependency
448
- name: wicked
462
+ name: friendly_id
449
463
  requirement: !ruby/object:Gem::Requirement
450
464
  requirements:
451
465
  - - "~>"
452
466
  - !ruby/object:Gem::Version
453
- version: 1.0.2
467
+ version: 5.0.0
454
468
  type: :runtime
455
469
  prerelease: false
456
470
  version_requirements: !ruby/object:Gem::Requirement
457
471
  requirements:
458
472
  - - "~>"
459
473
  - !ruby/object:Gem::Version
460
- version: 1.0.2
474
+ version: 5.0.0
461
475
  - !ruby/object:Gem::Dependency
462
476
  name: versionist
463
477
  requirement: !ruby/object:Gem::Requirement
@@ -506,14 +520,14 @@ dependencies:
506
520
  requirements:
507
521
  - - "~>"
508
522
  - !ruby/object:Gem::Version
509
- version: 3.0.0
523
+ version: 3.1.0
510
524
  type: :runtime
511
525
  prerelease: false
512
526
  version_requirements: !ruby/object:Gem::Requirement
513
527
  requirements:
514
528
  - - "~>"
515
529
  - !ruby/object:Gem::Version
516
- version: 3.0.0
530
+ version: 3.1.0
517
531
  - !ruby/object:Gem::Dependency
518
532
  name: country_select
519
533
  requirement: !ruby/object:Gem::Requirement
@@ -562,14 +576,14 @@ dependencies:
562
576
  requirements:
563
577
  - - "~>"
564
578
  - !ruby/object:Gem::Version
565
- version: 2.3.2.1
579
+ version: 3.1.0.0
566
580
  type: :runtime
567
581
  prerelease: false
568
582
  version_requirements: !ruby/object:Gem::Requirement
569
583
  requirements:
570
584
  - - "~>"
571
585
  - !ruby/object:Gem::Version
572
- version: 2.3.2.1
586
+ version: 3.1.0.0
573
587
  - !ruby/object:Gem::Dependency
574
588
  name: auto_html
575
589
  requirement: !ruby/object:Gem::Requirement
@@ -724,20 +738,6 @@ dependencies:
724
738
  - - "~>"
725
739
  - !ruby/object:Gem::Version
726
740
  version: 1.8.1
727
- - !ruby/object:Gem::Dependency
728
- name: acts_as_api
729
- requirement: !ruby/object:Gem::Requirement
730
- requirements:
731
- - - "~>"
732
- - !ruby/object:Gem::Version
733
- version: 0.4.2
734
- type: :runtime
735
- prerelease: false
736
- version_requirements: !ruby/object:Gem::Requirement
737
- requirements:
738
- - - "~>"
739
- - !ruby/object:Gem::Version
740
- version: 0.4.2
741
741
  - !ruby/object:Gem::Dependency
742
742
  name: i18n-inflector-rails
743
743
  requirement: !ruby/object:Gem::Requirement
@@ -814,14 +814,14 @@ dependencies:
814
814
  requirements:
815
815
  - - "~>"
816
816
  - !ruby/object:Gem::Version
817
- version: 0.8.9
817
+ version: 0.9.1
818
818
  type: :runtime
819
819
  prerelease: false
820
820
  version_requirements: !ruby/object:Gem::Requirement
821
821
  requirements:
822
822
  - - "~>"
823
823
  - !ruby/object:Gem::Version
824
- version: 0.8.9
824
+ version: 0.9.1
825
825
  - !ruby/object:Gem::Dependency
826
826
  name: faraday_middleware
827
827
  requirement: !ruby/object:Gem::Requirement
@@ -884,42 +884,42 @@ dependencies:
884
884
  requirements:
885
885
  - - "~>"
886
886
  - !ruby/object:Gem::Version
887
- version: '2.0'
887
+ version: 3.3.3
888
888
  type: :development
889
889
  prerelease: false
890
890
  version_requirements: !ruby/object:Gem::Requirement
891
891
  requirements:
892
892
  - - "~>"
893
893
  - !ruby/object:Gem::Version
894
- version: '2.0'
894
+ version: 3.3.3
895
895
  - !ruby/object:Gem::Dependency
896
896
  name: capybara
897
897
  requirement: !ruby/object:Gem::Requirement
898
898
  requirements:
899
899
  - - "~>"
900
900
  - !ruby/object:Gem::Version
901
- version: 1.1.2
901
+ version: 2.4.4
902
902
  type: :development
903
903
  prerelease: false
904
904
  version_requirements: !ruby/object:Gem::Requirement
905
905
  requirements:
906
906
  - - "~>"
907
907
  - !ruby/object:Gem::Version
908
- version: 1.1.2
908
+ version: 2.4.4
909
909
  - !ruby/object:Gem::Dependency
910
910
  name: capybara-webkit
911
911
  requirement: !ruby/object:Gem::Requirement
912
912
  requirements:
913
913
  - - "~>"
914
914
  - !ruby/object:Gem::Version
915
- version: 0.13.0
915
+ version: 1.6.0
916
916
  type: :development
917
917
  prerelease: false
918
918
  version_requirements: !ruby/object:Gem::Requirement
919
919
  requirements:
920
920
  - - "~>"
921
921
  - !ruby/object:Gem::Version
922
- version: 0.13.0
922
+ version: 1.6.0
923
923
  - !ruby/object:Gem::Dependency
924
924
  name: cucumber-rails-training-wheels
925
925
  requirement: !ruby/object:Gem::Requirement
@@ -1004,48 +1004,6 @@ dependencies:
1004
1004
  - - "~>"
1005
1005
  - !ruby/object:Gem::Version
1006
1006
  version: 1.0rc2
1007
- - !ruby/object:Gem::Dependency
1008
- name: guard-rspec
1009
- requirement: !ruby/object:Gem::Requirement
1010
- requirements:
1011
- - - "~>"
1012
- - !ruby/object:Gem::Version
1013
- version: 3.0.2
1014
- type: :development
1015
- prerelease: false
1016
- version_requirements: !ruby/object:Gem::Requirement
1017
- requirements:
1018
- - - "~>"
1019
- - !ruby/object:Gem::Version
1020
- version: 3.0.2
1021
- - !ruby/object:Gem::Dependency
1022
- name: guard-spork
1023
- requirement: !ruby/object:Gem::Requirement
1024
- requirements:
1025
- - - "~>"
1026
- - !ruby/object:Gem::Version
1027
- version: 1.5.1
1028
- type: :development
1029
- prerelease: false
1030
- version_requirements: !ruby/object:Gem::Requirement
1031
- requirements:
1032
- - - "~>"
1033
- - !ruby/object:Gem::Version
1034
- version: 1.5.1
1035
- - !ruby/object:Gem::Dependency
1036
- name: guard-cucumber
1037
- requirement: !ruby/object:Gem::Requirement
1038
- requirements:
1039
- - - "~>"
1040
- - !ruby/object:Gem::Version
1041
- version: 1.4.0
1042
- type: :development
1043
- prerelease: false
1044
- version_requirements: !ruby/object:Gem::Requirement
1045
- requirements:
1046
- - - "~>"
1047
- - !ruby/object:Gem::Version
1048
- version: 1.4.0
1049
1007
  - !ruby/object:Gem::Dependency
1050
1008
  name: launchy
1051
1009
  requirement: !ruby/object:Gem::Requirement
@@ -1158,7 +1116,7 @@ dependencies:
1158
1116
  - - "~>"
1159
1117
  - !ruby/object:Gem::Version
1160
1118
  version: 2.2.0
1161
- description: "#Crowdsourcing management system for #RubyOnRails: http://bit.ly/voluntary-0-4-0"
1119
+ description: "#Crowdsourcing management system for #RubyOnRails: http://bit.ly/voluntary-0-5-0"
1162
1120
  email:
1163
1121
  - gawlista@gmail.com
1164
1122
  executables: []
@@ -1198,6 +1156,7 @@ files:
1198
1156
  - app/controllers/tasks_controller.rb
1199
1157
  - app/controllers/users_controller.rb
1200
1158
  - app/controllers/voluntary/api/v1/base_controller.rb
1159
+ - app/controllers/voluntary/api/v1/tasks_controller.rb
1201
1160
  - app/controllers/voluntary/application_controller.rb
1202
1161
  - app/controllers/workflow/products_controller.rb
1203
1162
  - app/controllers/workflow/project_owner_controller.rb
@@ -1241,11 +1200,6 @@ files:
1241
1200
  - app/models/project.rb
1242
1201
  - app/models/project_user.rb
1243
1202
  - app/models/result.rb
1244
- - app/models/role.rb
1245
- - app/models/role/admin.rb
1246
- - app/models/role/master.rb
1247
- - app/models/role/project_owner.rb
1248
- - app/models/role/user.rb
1249
1203
  - app/models/state_machines/page.rb
1250
1204
  - app/models/state_machines/story.rb
1251
1205
  - app/models/state_machines/task.rb
@@ -1253,7 +1207,7 @@ files:
1253
1207
  - app/models/task.rb
1254
1208
  - app/models/thing.rb
1255
1209
  - app/models/user.rb
1256
- - app/models/user_role.rb
1210
+ - app/models/wikidata.rb
1257
1211
  - app/presenters/layout/application_presenter.rb
1258
1212
  - app/presenters/layout_presenter.rb
1259
1213
  - app/presenters/presenter.rb
@@ -1330,6 +1284,7 @@ files:
1330
1284
  - app/views/stories/steps/_setup_tasks.html.erb
1331
1285
  - app/views/stories/tasks.html.erb
1332
1286
  - app/views/tasks/_collection.html.erb
1287
+ - app/views/tasks/show.html.erb
1333
1288
  - app/views/users/_form.html.erb
1334
1289
  - app/views/users/edit.html.erb
1335
1290
  - app/views/users/index.html.erb
@@ -1362,6 +1317,7 @@ files:
1362
1317
  - config/initializers/locale_settings.rb
1363
1318
  - config/initializers/mongoid-history.rb
1364
1319
  - config/initializers/simple_form.rb
1320
+ - config/initializers/simple_form_bootstrap.rb
1365
1321
  - config/initializers/simple_navigation.rb
1366
1322
  - config/initializers/state_machine_patch_for_rails_4_1_support.rb
1367
1323
  - config/initializers/vendor_extensions.rb
@@ -1379,6 +1335,7 @@ files:
1379
1335
  - config/locales/resources/result/en.yml
1380
1336
  - config/locales/resources/story/en.yml
1381
1337
  - config/locales/resources/task/en.yml
1338
+ - config/locales/resources/thing/en.yml
1382
1339
  - config/locales/resources/user/en.yml
1383
1340
  - config/locales/simple_form.en.yml
1384
1341
  - config/locales/workflow/en.yml
@@ -1404,7 +1361,8 @@ files:
1404
1361
  - db/migrate/20150119171210_add_lastfm_user_name_to_users.rb
1405
1362
  - db/migrate/20150126185249_create_likes.rb
1406
1363
  - db/migrate/20150802141840_drop_recruiting_unless_recruiting_plugin_present.rb
1407
- - db/seeds.rb
1364
+ - db/migrate/20150808155719_add_api_key_to_users.rb
1365
+ - db/migrate/20150809120211_remove_roles_model.rb
1408
1366
  - lib/api_constraints.rb
1409
1367
  - lib/applicat/mvc/controller.rb
1410
1368
  - lib/applicat/mvc/controller/error_handling.rb
@@ -1415,7 +1373,6 @@ files:
1415
1373
  - lib/applicat/mvc/model/tree.rb
1416
1374
  - lib/concerns/model/base_list_item.rb
1417
1375
  - lib/concerns/model/base_thing.rb
1418
- - lib/db_seed.rb
1419
1376
  - lib/environment_configuration.rb
1420
1377
  - lib/generators/voluntary/install/install_generator.rb
1421
1378
  - lib/generators/voluntary/install/templates/app/controllers/application_controller.rb
@@ -1433,7 +1390,6 @@ files:
1433
1390
  - lib/generators/voluntary/install/templates/config/nginx.conf
1434
1391
  - lib/generators/voluntary/install/templates/config/unicorn.rb
1435
1392
  - lib/generators/voluntary/install/templates/config/unicorn_init.sh
1436
- - lib/generators/voluntary/install/templates/db/seeds.rb
1437
1393
  - lib/generators/voluntary/install/templates/features/step_definitions/email_steps.rb
1438
1394
  - lib/generators/voluntary/install/templates/features/step_definitions/factory_steps.rb
1439
1395
  - lib/generators/voluntary/install/templates/features/step_definitions/javascript_steps.rb
@@ -1450,7 +1406,6 @@ files:
1450
1406
  - lib/generators/voluntary/install/templates/features/support/selectors.rb
1451
1407
  - lib/generators/voluntary/install/templates/features/support/spork_env
1452
1408
  - lib/generators/voluntary/install/templates/features/support/user_cuke_helpers.rb
1453
- - lib/generators/voluntary/install/templates/lib/volontariat_seed.rb
1454
1409
  - lib/generators/voluntary/install/templates/spec/factories.rb
1455
1410
  - lib/generators/voluntary/install/templates/spec/spec_helper.rb
1456
1411
  - lib/generators/voluntary/install/templates/spec/support/deferred_garbage_collector.rb
@@ -1520,7 +1475,6 @@ files:
1520
1475
  - lib/tasks/voluntary_tasks.rake
1521
1476
  - lib/vendors/simple_navigation/renderer/breadcrumbs_without_method_links.rb
1522
1477
  - lib/vendors/simple_navigation/renderer/twitter_sidenav.rb
1523
- - lib/volontariat_seed.rb
1524
1478
  - lib/voluntary.rb
1525
1479
  - lib/voluntary/engine.rb
1526
1480
  - lib/voluntary/navigation.rb
@@ -1,2 +0,0 @@
1
- class Role::Admin < Role
2
- end
@@ -1,2 +0,0 @@
1
- class Role::Master < Role
2
- end
@@ -1,2 +0,0 @@
1
- class Role::ProjectOwner < Role
2
- end
@@ -1,2 +0,0 @@
1
- class Role::User < Role
2
- end
data/app/models/role.rb DELETED
@@ -1,8 +0,0 @@
1
- class Role < ActiveRecord::Base
2
- has_many :users, through: :user_roles
3
- has_many :projects, through: :project_users
4
-
5
- scope :is_public, -> { where(public: true) }
6
-
7
- attr_accessible :name, :public
8
- end
@@ -1,6 +0,0 @@
1
- class UserRole < ActiveRecord::Base
2
- self.table_name = 'users_roles'
3
-
4
- belongs_to :user
5
- belongs_to :role
6
- end
data/db/seeds.rb DELETED
@@ -1,14 +0,0 @@
1
- # This file should contain all the record creation needed to seed the database with its default values.
2
- # The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
3
- #
4
- # Examples:
5
- #
6
- # cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }])
7
- # Mayor.create(name: 'Emanuel', city: cities.first)
8
- delivery_method_was = ActionMailer::Base.delivery_method
9
- ActionMailer::Base.delivery_method = :test
10
-
11
- db_seed = VolontariatSeed.new
12
- db_seed.create_fixtures
13
-
14
- ActionMailer::Base.delivery_method = delivery_method_was
data/lib/db_seed.rb DELETED
@@ -1,166 +0,0 @@
1
- require 'faker'
2
-
3
- class DbSeed
4
- USER_ROLES = {
5
- master: {},
6
- admin: {},
7
- project_owner: {},
8
- user: {}
9
- }
10
-
11
- attr_accessor :logger, :user_roles
12
-
13
- def initialize(options = {logger: nil})
14
- self.logger = options[:logger]
15
- end
16
-
17
- def create_fixtures
18
- create_roles
19
- create_users
20
- create_user_roles
21
- end
22
-
23
- protected
24
-
25
- def users
26
- return @users if @users
27
-
28
- @users = {}
29
-
30
- self.class::USER_ROLES.each do |role,attributes|
31
- name = role.to_s.humanize
32
- name += ' user' unless name == 'User'
33
-
34
- @users[role] = attributes
35
- @users[role][:id] = User.find_by_name(name).id
36
- end
37
-
38
- @users
39
- end
40
-
41
- # roles
42
- # TODO: define methods through USER_ROLES
43
- def user
44
- @user ||= User.find(user_id)
45
- end
46
-
47
- def user_id
48
- @user_id ||= users[:user][:id]
49
- end
50
-
51
- def tenant
52
- @tenant ||= User.find(tenant_id)
53
- end
54
-
55
- def tenant_id
56
- @tenant_id ||= users[:tenant][:id]
57
- end
58
-
59
- def log(message, type = :info)
60
- if logger
61
- logger.send(type, message)
62
- else
63
- puts message
64
- end
65
- end
66
-
67
- def create_roles
68
- Role.import([:name], self.class::USER_ROLES.keys.map{|role| [role.to_s.humanize]})
69
-
70
- self.class::USER_ROLES.keys.each do |role|
71
- attributes = { name: role.to_s.humanize }
72
-
73
- attributes[:public] = [:project_owner, :user].include?(role) if Role.new.respond_to? :public
74
-
75
- "Role::#{role.to_s.classify}".constantize.create(attributes)
76
- end
77
- end
78
-
79
- def create_users
80
- self.class::USER_ROLES.each do |role, settings|
81
- name = role.to_s.humanize
82
- name += ' user' unless name == 'User'
83
-
84
- attributes = {
85
- name: name, first_name: 'Mister', last_name: role.to_s.humanize, email: "#{role}@volontari.at",
86
- password: "#{role}2012", language: 'en', country: 'Germany', interface_language: 'en'
87
- }
88
-
89
- attributes.reject!{|key,value| !User.new.respond_to? key }
90
- attributes[:password_confirmation] = attributes[:password]
91
-
92
- create_record(User, attributes) # events: ['skip_confirmation!']
93
- end
94
- end
95
-
96
- def create_user_roles
97
- UserRole.import(
98
- [:role_id, :user_id], users.keys.map{|r| [Role.find_by_name(r.to_s.humanize).id, users[r][:id]]}
99
- )
100
- end
101
-
102
- private
103
-
104
- def create_record(klass, attributes, options = {})
105
- options.assert_valid_keys(:events)
106
-
107
- klass = klass.constantize if klass.is_a?(String)
108
- events = options[:events] || []
109
-
110
- record = klass.new
111
-
112
- (attributes || {}).each {|attribute,value| record.send("#{attribute}=", value) }
113
-
114
- send_events(record, events) if events.any?
115
-
116
- record.save!(validate: false) if record.new_record?
117
-
118
- record
119
- end
120
-
121
- def send_events(object, events = [])
122
- events.each {|event| send_event(object, event) }
123
- end
124
-
125
- def send_event(object, event)
126
- object_was = object
127
- event_condition_class = "::DbSeed::EventConditions::#{object.class.table_name.classify}".constantize rescue nil
128
- arguments = nil
129
-
130
- if event.is_a?(Array)
131
- arguments = event
132
- event = arguments.shift
133
-
134
- if event == 'assignment'
135
- # TODO: YAGNI?
136
- object_was = object
137
- object = object.send(event)
138
- event = arguments.shift
139
- arguments = nil if arguments.none?
140
- end
141
- elsif event.is_a?(Proc)
142
- event.call(object)
143
-
144
- return
145
- end
146
-
147
- if event_condition_class && event_condition_class.respond_to?("before_#{event.gsub('!', '')}")
148
- conditions_arguments = arguments.is_a?(Array) ? [object] + arguments : [object]
149
- event_condition_class.send("before_#{event.gsub('!', '')}", *conditions_arguments)
150
- end
151
-
152
- if event_condition_class && event_condition_class.respond_to?(event.gsub('!', ''))
153
- # override event method through event condition class
154
- event_condition_class.send(event.gsub('!', ''), object)
155
- else
156
- arguments ? object.send(event, *arguments) : object.send(event)
157
- end
158
-
159
- if event_condition_class && event_condition_class.respond_to?("after_#{event.gsub('!', '')}")
160
- conditions_arguments = arguments.is_a?(Array) ? [object] + arguments : [object]
161
- event_condition_class.send("after_#{event.gsub('!', '')}", *conditions_arguments)
162
- end
163
-
164
- object = object_was
165
- end
166
- end
@@ -1,14 +0,0 @@
1
- # This file should contain all the record creation needed to seed the database with its default values.
2
- # The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
3
- #
4
- # Examples:
5
- #
6
- # cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }])
7
- # Mayor.create(name: 'Emanuel', city: cities.first)
8
- delivery_method_was = ActionMailer::Base.delivery_method
9
- ActionMailer::Base.delivery_method = :test
10
-
11
- db_seed = VolontariatSeed.new
12
- db_seed.create_fixtures
13
-
14
- ActionMailer::Base.delivery_method = delivery_method_was
@@ -1,36 +0,0 @@
1
- class VolontariatSeed < DbSeed
2
- USER_ROLES = {
3
- master: {},
4
- admin: {},
5
- project_owner: {},
6
- user: {}
7
- }
8
-
9
- def create_fixtures
10
- super
11
-
12
- create_areas
13
- create_products
14
-
15
- # should send notifications to stream and email
16
- end
17
-
18
- private
19
-
20
- def create_areas
21
- Area.create!(
22
- [
23
- { name: 'General' },
24
- { name: 'Software Engineering' }
25
- ]
26
- )
27
- end
28
-
29
- def create_products
30
- product = Product.new(
31
- name: 'Text Creation', text: 'Dummy', area_ids: [Area.where(name: 'General').first.id]
32
- )
33
- product.user_id = User.where(name: 'Master').first.id
34
- product.save!
35
- end
36
- end
@@ -1,27 +0,0 @@
1
- class VolontariatSeed < DbSeed
2
- USER_ROLES = {
3
- master: {},
4
- admin: {},
5
- project_owner: {},
6
- user: {}
7
- }
8
-
9
- def create_fixtures
10
- super
11
-
12
- create_areas
13
-
14
- # should send notifications to stream and email
15
- end
16
-
17
- private
18
-
19
- def create_areas
20
- Area.create!(
21
- [
22
- { name: 'General' },
23
- { name: 'Software Engineering' }
24
- ]
25
- )
26
- end
27
- end