decidim-kids 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE-AGPLv3.txt +661 -0
  3. data/README.md +265 -0
  4. data/Rakefile +45 -0
  5. data/app/commands/concerns/decidim/kids/system/create_minors_default_pages.rb +20 -0
  6. data/app/commands/concerns/decidim/kids/system/register_organization_override.rb +32 -0
  7. data/app/commands/concerns/decidim/kids/system/update_organization_override.rb +30 -0
  8. data/app/commands/decidim/kids/admin/save_participatory_space_config.rb +37 -0
  9. data/app/commands/decidim/kids/authorize_minor.rb +52 -0
  10. data/app/commands/decidim/kids/close_session_managed_minor.rb +38 -0
  11. data/app/commands/decidim/kids/create_minor_account.rb +57 -0
  12. data/app/commands/decidim/kids/destroy_minor_account.rb +50 -0
  13. data/app/commands/decidim/kids/impersonate_minor.rb +64 -0
  14. data/app/commands/decidim/kids/update_minor_account.rb +45 -0
  15. data/app/controllers/concerns/decidim/kids/disable_minors_participation.rb +17 -0
  16. data/app/controllers/concerns/decidim/kids/has_decidim_kids_permissions.rb +15 -0
  17. data/app/controllers/concerns/decidim/kids/has_minor_activities_as_own.rb +17 -0
  18. data/app/controllers/concerns/decidim/kids/impersonate_minors.rb +53 -0
  19. data/app/controllers/concerns/decidim/kids/needs_adult_permission.rb +16 -0
  20. data/app/controllers/concerns/decidim/kids/needs_tutor_authorization.rb +54 -0
  21. data/app/controllers/concerns/decidim/kids/participatory_space_context_override.rb +86 -0
  22. data/app/controllers/concerns/decidim/kids/writes_minor_log.rb +28 -0
  23. data/app/controllers/decidim/assemblies/admin/minors_space_controller.rb +12 -0
  24. data/app/controllers/decidim/kids/admin/application_controller.rb +10 -0
  25. data/app/controllers/decidim/kids/admin/minors_space_controller.rb +63 -0
  26. data/app/controllers/decidim/kids/application_controller.rb +8 -0
  27. data/app/controllers/decidim/kids/authorizations_controller.rb +82 -0
  28. data/app/controllers/decidim/kids/minor_impersonations_controller.rb +57 -0
  29. data/app/controllers/decidim/kids/user_minors_controller.rb +106 -0
  30. data/app/controllers/decidim/participatory_processes/admin/minors_space_controller.rb +12 -0
  31. data/app/forms/concerns/decidim/kids/system/organization_form_override.rb +40 -0
  32. data/app/forms/decidim/kids/admin/minors_space_form.rb +20 -0
  33. data/app/forms/decidim/kids/impersonate_minor_form.rb +23 -0
  34. data/app/forms/decidim/kids/minor_account_form.rb +35 -0
  35. data/app/helpers/decidim/kids/application_helper.rb +11 -0
  36. data/app/helpers/decidim/kids/user_minors_helper.rb +57 -0
  37. data/app/jobs/decidim/kids/expire_impersonation_job.rb +16 -0
  38. data/app/mailers/decidim/kids/kids_mailer.rb +14 -0
  39. data/app/models/concerns/decidim/kids/organization_override.rb +45 -0
  40. data/app/models/concerns/decidim/kids/static_page_override.rb +17 -0
  41. data/app/models/concerns/decidim/kids/user_override.rb +53 -0
  42. data/app/models/decidim/kids/application_record.rb +10 -0
  43. data/app/models/decidim/kids/impersonation_minor_log.rb +36 -0
  44. data/app/models/decidim/kids/minor_account.rb +51 -0
  45. data/app/models/decidim/kids/minor_data.rb +28 -0
  46. data/app/models/decidim/kids/minors_space_config.rb +26 -0
  47. data/app/models/decidim/kids/organization_config.rb +13 -0
  48. data/app/overrides/decidim/devise/registrations/new/minors.html.erb.deface +2 -0
  49. data/app/overrides/decidim/system/organizations/_advanced_settings/minors.html.erb.deface +2 -0
  50. data/app/overrides/layouts/decidim/_impersonation_warning/replace_button.html.erb.deface +3 -0
  51. data/app/packs/entrypoints/decidim_kids.js +2 -0
  52. data/app/packs/images/decidim/kids/icon.svg +1 -0
  53. data/app/packs/stylesheets/decidim/kids/kids.scss +13 -0
  54. data/app/permissions/concerns/decidim/kids/admin/permissions_override.rb +38 -0
  55. data/app/permissions/decidim/kids/permissions.rb +100 -0
  56. data/app/views/decidim/kids/admin/minors_space/_form.html.erb +53 -0
  57. data/app/views/decidim/kids/admin/minors_space/index.html.erb +18 -0
  58. data/app/views/decidim/kids/authorizations/new.html.erb +29 -0
  59. data/app/views/decidim/kids/devise/registrations/_minors.html.erb +8 -0
  60. data/app/views/decidim/kids/kids_mailer/promote_minor_account.html.erb +3 -0
  61. data/app/views/decidim/kids/minor_impersonations/_impersonation_minor_button.html.erb +13 -0
  62. data/app/views/decidim/kids/minor_impersonations/new.html.erb +19 -0
  63. data/app/views/decidim/kids/system/organizations/_minors_form.html.erb +28 -0
  64. data/app/views/decidim/kids/user_minors/_form_fields.html.erb +12 -0
  65. data/app/views/decidim/kids/user_minors/_minor_tr.html.erb +58 -0
  66. data/app/views/decidim/kids/user_minors/_tos_field.html.erb +3 -0
  67. data/app/views/decidim/kids/user_minors/edit.html.erb +19 -0
  68. data/app/views/decidim/kids/user_minors/index.html.erb +30 -0
  69. data/app/views/decidim/kids/user_minors/new.html.erb +22 -0
  70. data/app/views/decidim/kids/user_minors/unverified.html.erb +10 -0
  71. data/app/views/devise/mailer/invite_minor.html.erb +15 -0
  72. data/config/assets.rb +9 -0
  73. data/config/i18n-tasks.yml +10 -0
  74. data/config/locales/ca.yml +165 -0
  75. data/config/locales/en.yml +190 -0
  76. data/config/locales/es.yml +165 -0
  77. data/db/migrate/20221017110422_create_organization_minors_configs.rb +16 -0
  78. data/db/migrate/20221024124523_create_decidim_kids_minor_accounts.rb +13 -0
  79. data/db/migrate/20221027211859_create_decidim_kids_minor_data.rb +14 -0
  80. data/db/migrate/20221127103636_create_impersonation_minor_logs.rb +15 -0
  81. data/db/migrate/20221220132306_create_decidim_kids_participatory_spaces_minors_configs.rb +13 -0
  82. data/db/seeds.rb +36 -0
  83. data/lib/decidim/kids/admin.rb +8 -0
  84. data/lib/decidim/kids/admin_engine.rb +43 -0
  85. data/lib/decidim/kids/age_methods.rb +17 -0
  86. data/lib/decidim/kids/engine.rb +86 -0
  87. data/lib/decidim/kids/templates/dummy_age_authorization_handler.rb +30 -0
  88. data/lib/decidim/kids/templates/verifications_initializer.rb +8 -0
  89. data/lib/decidim/kids/test/factories.rb +64 -0
  90. data/lib/decidim/kids/version.rb +10 -0
  91. data/lib/decidim/kids.rb +91 -0
  92. data/lib/tasks/authorization_handlers.rake +35 -0
  93. data/lib/tasks/kids.rake +8 -0
  94. data/package-lock.json +12463 -0
  95. data/package.json +50 -0
  96. metadata +213 -0
data/package.json ADDED
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "decidim-module-kids",
3
+ "description": "A module for promoting kids participation in Decidim.",
4
+ "private": true,
5
+ "scripts": {
6
+ "lint": "eslint -c .eslintrc.json --no-error-on-unmatched-pattern --ext .js,.jsx app/packs",
7
+ "lint-fix": "eslint -c .eslintrc.json --no-error-on-unmatched-pattern --ext .js,.jsx app/packs --fix",
8
+ "markdownlint": "markdownlint '**/*.md'",
9
+ "stylelint": "stylelint **/*.scss",
10
+ "stylelint-fix": "stylelint **/*.scss --fix"
11
+ },
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "git+https://github.com/AjuntamentdeBarcelona/decidim-module-kids.git"
15
+ },
16
+ "keywords": [
17
+ "decidim"
18
+ ],
19
+ "author": "ivan@pokecode.net",
20
+ "license": "AGPL-3.0-or-later",
21
+ "bugs": {
22
+ "url": "https://github.com/AjuntamentdeBarcelona/decidim-module-kids/issues"
23
+ },
24
+ "homepage": "https://github.com/AjuntamentdeBarcelona/decidim-module-kids#readme",
25
+ "stylelint": {
26
+ "extends": "@decidim/stylelint-config",
27
+ "rules" : {
28
+ "block-opening-brace-space-before": "always"
29
+ }
30
+ },
31
+ "devDependencies": {
32
+ "@babel/eslint-parser": "^7.19.1",
33
+ "@babel/plugin-proposal-class-properties": "^7.18.6",
34
+ "@babel/plugin-proposal-private-methods": "^7.18.6",
35
+ "@babel/plugin-proposal-private-property-in-object": "^7.20.5",
36
+ "@babel/plugin-transform-classes": "^7.20.7",
37
+ "@babel/plugin-transform-regenerator": "^7.20.5",
38
+ "@babel/plugin-transform-runtime": "^7.19.6",
39
+ "@babel/preset-env": "^7.20.2",
40
+ "@babel/preset-react": "^7.18.6",
41
+ "@decidim/dev": "0.27.1",
42
+ "@decidim/eslint-config": "0.27.1",
43
+ "@decidim/stylelint-config": "0.27.1",
44
+ "eslint-config-prettier": "^8.2.0",
45
+ "eslint-config-standard": "^11.0.0",
46
+ "eslint-plugin-import": "^2.22.0",
47
+ "eslint-plugin-standard": "^3.1.0",
48
+ "sass-embedded": "~1.57.1"
49
+ }
50
+ }
metadata ADDED
@@ -0,0 +1,213 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: decidim-kids
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Ivan Vergés
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2023-03-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: decidim-core
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0.27'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '0.28'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '0.27'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '0.28'
33
+ - !ruby/object:Gem::Dependency
34
+ name: decidim-system
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0.27'
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '0.28'
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: '0.27'
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '0.28'
53
+ - !ruby/object:Gem::Dependency
54
+ name: decidim-verifications
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: '0.27'
60
+ - - "<"
61
+ - !ruby/object:Gem::Version
62
+ version: '0.28'
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0.27'
70
+ - - "<"
71
+ - !ruby/object:Gem::Version
72
+ version: '0.28'
73
+ - !ruby/object:Gem::Dependency
74
+ name: deface
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: '1.5'
80
+ type: :runtime
81
+ prerelease: false
82
+ version_requirements: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: '1.5'
87
+ description: A module for promoting kids participation in Decidim.
88
+ email:
89
+ - ivan@pokecode.net
90
+ executables: []
91
+ extensions: []
92
+ extra_rdoc_files: []
93
+ files:
94
+ - LICENSE-AGPLv3.txt
95
+ - README.md
96
+ - Rakefile
97
+ - app/commands/concerns/decidim/kids/system/create_minors_default_pages.rb
98
+ - app/commands/concerns/decidim/kids/system/register_organization_override.rb
99
+ - app/commands/concerns/decidim/kids/system/update_organization_override.rb
100
+ - app/commands/decidim/kids/admin/save_participatory_space_config.rb
101
+ - app/commands/decidim/kids/authorize_minor.rb
102
+ - app/commands/decidim/kids/close_session_managed_minor.rb
103
+ - app/commands/decidim/kids/create_minor_account.rb
104
+ - app/commands/decidim/kids/destroy_minor_account.rb
105
+ - app/commands/decidim/kids/impersonate_minor.rb
106
+ - app/commands/decidim/kids/update_minor_account.rb
107
+ - app/controllers/concerns/decidim/kids/disable_minors_participation.rb
108
+ - app/controllers/concerns/decidim/kids/has_decidim_kids_permissions.rb
109
+ - app/controllers/concerns/decidim/kids/has_minor_activities_as_own.rb
110
+ - app/controllers/concerns/decidim/kids/impersonate_minors.rb
111
+ - app/controllers/concerns/decidim/kids/needs_adult_permission.rb
112
+ - app/controllers/concerns/decidim/kids/needs_tutor_authorization.rb
113
+ - app/controllers/concerns/decidim/kids/participatory_space_context_override.rb
114
+ - app/controllers/concerns/decidim/kids/writes_minor_log.rb
115
+ - app/controllers/decidim/assemblies/admin/minors_space_controller.rb
116
+ - app/controllers/decidim/kids/admin/application_controller.rb
117
+ - app/controllers/decidim/kids/admin/minors_space_controller.rb
118
+ - app/controllers/decidim/kids/application_controller.rb
119
+ - app/controllers/decidim/kids/authorizations_controller.rb
120
+ - app/controllers/decidim/kids/minor_impersonations_controller.rb
121
+ - app/controllers/decidim/kids/user_minors_controller.rb
122
+ - app/controllers/decidim/participatory_processes/admin/minors_space_controller.rb
123
+ - app/forms/concerns/decidim/kids/system/organization_form_override.rb
124
+ - app/forms/decidim/kids/admin/minors_space_form.rb
125
+ - app/forms/decidim/kids/impersonate_minor_form.rb
126
+ - app/forms/decidim/kids/minor_account_form.rb
127
+ - app/helpers/decidim/kids/application_helper.rb
128
+ - app/helpers/decidim/kids/user_minors_helper.rb
129
+ - app/jobs/decidim/kids/expire_impersonation_job.rb
130
+ - app/mailers/decidim/kids/kids_mailer.rb
131
+ - app/models/concerns/decidim/kids/organization_override.rb
132
+ - app/models/concerns/decidim/kids/static_page_override.rb
133
+ - app/models/concerns/decidim/kids/user_override.rb
134
+ - app/models/decidim/kids/application_record.rb
135
+ - app/models/decidim/kids/impersonation_minor_log.rb
136
+ - app/models/decidim/kids/minor_account.rb
137
+ - app/models/decidim/kids/minor_data.rb
138
+ - app/models/decidim/kids/minors_space_config.rb
139
+ - app/models/decidim/kids/organization_config.rb
140
+ - app/overrides/decidim/devise/registrations/new/minors.html.erb.deface
141
+ - app/overrides/decidim/system/organizations/_advanced_settings/minors.html.erb.deface
142
+ - app/overrides/layouts/decidim/_impersonation_warning/replace_button.html.erb.deface
143
+ - app/packs/entrypoints/decidim_kids.js
144
+ - app/packs/images/decidim/kids/icon.svg
145
+ - app/packs/stylesheets/decidim/kids/kids.scss
146
+ - app/permissions/concerns/decidim/kids/admin/permissions_override.rb
147
+ - app/permissions/decidim/kids/permissions.rb
148
+ - app/views/decidim/kids/admin/minors_space/_form.html.erb
149
+ - app/views/decidim/kids/admin/minors_space/index.html.erb
150
+ - app/views/decidim/kids/authorizations/new.html.erb
151
+ - app/views/decidim/kids/devise/registrations/_minors.html.erb
152
+ - app/views/decidim/kids/kids_mailer/promote_minor_account.html.erb
153
+ - app/views/decidim/kids/minor_impersonations/_impersonation_minor_button.html.erb
154
+ - app/views/decidim/kids/minor_impersonations/new.html.erb
155
+ - app/views/decidim/kids/system/organizations/_minors_form.html.erb
156
+ - app/views/decidim/kids/user_minors/_form_fields.html.erb
157
+ - app/views/decidim/kids/user_minors/_minor_tr.html.erb
158
+ - app/views/decidim/kids/user_minors/_tos_field.html.erb
159
+ - app/views/decidim/kids/user_minors/edit.html.erb
160
+ - app/views/decidim/kids/user_minors/index.html.erb
161
+ - app/views/decidim/kids/user_minors/new.html.erb
162
+ - app/views/decidim/kids/user_minors/unverified.html.erb
163
+ - app/views/devise/mailer/invite_minor.html.erb
164
+ - config/assets.rb
165
+ - config/i18n-tasks.yml
166
+ - config/locales/ca.yml
167
+ - config/locales/en.yml
168
+ - config/locales/es.yml
169
+ - db/migrate/20221017110422_create_organization_minors_configs.rb
170
+ - db/migrate/20221024124523_create_decidim_kids_minor_accounts.rb
171
+ - db/migrate/20221027211859_create_decidim_kids_minor_data.rb
172
+ - db/migrate/20221127103636_create_impersonation_minor_logs.rb
173
+ - db/migrate/20221220132306_create_decidim_kids_participatory_spaces_minors_configs.rb
174
+ - db/seeds.rb
175
+ - lib/decidim/kids.rb
176
+ - lib/decidim/kids/admin.rb
177
+ - lib/decidim/kids/admin_engine.rb
178
+ - lib/decidim/kids/age_methods.rb
179
+ - lib/decidim/kids/engine.rb
180
+ - lib/decidim/kids/templates/dummy_age_authorization_handler.rb
181
+ - lib/decidim/kids/templates/verifications_initializer.rb
182
+ - lib/decidim/kids/test/factories.rb
183
+ - lib/decidim/kids/version.rb
184
+ - lib/tasks/authorization_handlers.rake
185
+ - lib/tasks/kids.rake
186
+ - package-lock.json
187
+ - package.json
188
+ homepage: https://github.com/AjuntamentdeBarcelona/decidim-module-kids
189
+ licenses:
190
+ - AGPL-3.0
191
+ metadata:
192
+ bug_tracker_uri: https://github.com/AjuntamentdeBarcelona/decidim-module-kids/issues
193
+ source_code_uri: https://github.com/AjuntamentdeBarcelona/decidim-module-kids
194
+ post_install_message:
195
+ rdoc_options: []
196
+ require_paths:
197
+ - lib
198
+ required_ruby_version: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - ">="
201
+ - !ruby/object:Gem::Version
202
+ version: '3.0'
203
+ required_rubygems_version: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - ">="
206
+ - !ruby/object:Gem::Version
207
+ version: '0'
208
+ requirements: []
209
+ rubygems_version: 3.2.33
210
+ signing_key:
211
+ specification_version: 4
212
+ summary: A decidim for kids module
213
+ test_files: []