decidim-reporting_proposals 0.2.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 (142) hide show
  1. checksums.yaml +7 -0
  2. data/.codeclimate.yml +32 -0
  3. data/.erb-lint.yml +30 -0
  4. data/.eslintignore +3 -0
  5. data/.eslintrc.json +239 -0
  6. data/.github/workflows/codeql-analysis.yml +74 -0
  7. data/.github/workflows/lint.yml +45 -0
  8. data/.github/workflows/test_integration.yml +125 -0
  9. data/.github/workflows/test_unit.yml +51 -0
  10. data/.gitignore +27 -0
  11. data/.rspec +3 -0
  12. data/.rubocop.yml +3 -0
  13. data/.rubocop_rails.yml +87 -0
  14. data/.rubocop_ruby.yml +1754 -0
  15. data/.ruby-version +1 -0
  16. data/.simplecov +13 -0
  17. data/CODE_OF_CONDUCT.md +74 -0
  18. data/Gemfile +40 -0
  19. data/Gemfile.lock +815 -0
  20. data/LICENSE-AGPLv3.txt +661 -0
  21. data/README.md +166 -0
  22. data/Rakefile +40 -0
  23. data/app/cells/decidim/reporting_proposals/edit_note_modal/show.erb +20 -0
  24. data/app/cells/decidim/reporting_proposals/edit_note_modal_cell.rb +37 -0
  25. data/app/commands/concerns/decidim/reporting_proposals/admin/create_category_override.rb +32 -0
  26. data/app/commands/concerns/decidim/reporting_proposals/admin/update_category_override.rb +32 -0
  27. data/app/commands/concerns/decidim/reporting_proposals/create_report_override.rb +19 -0
  28. data/app/commands/decidim/reporting_proposals/admin/update_proposal.rb +46 -0
  29. data/app/commands/decidim/reporting_proposals/admin/update_proposal_note.rb +36 -0
  30. data/app/commands/decidim/reporting_proposals/create_reporting_proposal.rb +68 -0
  31. data/app/controllers/concerns/decidim/reporting_proposals/admin/categories_controller_override.rb +16 -0
  32. data/app/controllers/concerns/decidim/reporting_proposals/admin/needs_header_snippets.rb +50 -0
  33. data/app/controllers/concerns/decidim/reporting_proposals/admin/proposal_answer_templates_controller_override.rb +18 -0
  34. data/app/controllers/concerns/decidim/reporting_proposals/admin/proposal_answers_controller_override.rb +35 -0
  35. data/app/controllers/concerns/decidim/reporting_proposals/admin/proposals_controller_override.rb +28 -0
  36. data/app/controllers/concerns/decidim/reporting_proposals/needs_proposal_extra_validations_snippets.rb +51 -0
  37. data/app/controllers/concerns/decidim/reporting_proposals/proposals_controller_override.rb +113 -0
  38. data/app/controllers/decidim/reporting_proposals/admin/application_controller.rb +18 -0
  39. data/app/controllers/decidim/reporting_proposals/admin/proposal_notes_controller.rb +38 -0
  40. data/app/controllers/decidim/reporting_proposals/admin/proposals_controller.rb +61 -0
  41. data/app/controllers/decidim/reporting_proposals/application_controller.rb +11 -0
  42. data/app/controllers/decidim/reporting_proposals/geolocation_controller.rb +32 -0
  43. data/app/forms/concerns/decidim/reporting_proposals/admin/category_form_override.rb +19 -0
  44. data/app/forms/concerns/decidim/reporting_proposals/form_builder_override.rb +48 -0
  45. data/app/forms/concerns/decidim/reporting_proposals/map_builder_override.rb +60 -0
  46. data/app/forms/decidim/reporting_proposals/admin/proposal_photo_form.rb +23 -0
  47. data/app/forms/decidim/reporting_proposals/proposal_form.rb +33 -0
  48. data/app/helpers/concerns/decidim/reporting_proposals/admin/proposals_helper_override.rb +63 -0
  49. data/app/helpers/concerns/decidim/reporting_proposals/proposal_wizard_helper_override.rb +61 -0
  50. data/app/jobs/decidim/reporting_proposals/assign_proposal_valuators_job.rb +51 -0
  51. data/app/models/concerns/decidim/reporting_proposals/category_override.rb +28 -0
  52. data/app/models/concerns/decidim/reporting_proposals/participatory_space_role_config/valuator_override.rb +17 -0
  53. data/app/models/concerns/decidim/reporting_proposals/participatory_space_user_role_override.rb +25 -0
  54. data/app/models/decidim/reporting_proposals/category_valuator.rb +28 -0
  55. data/app/overrides/decidim/admin/categories/_form/add_valuators_field.html.erb.deface +3 -0
  56. data/app/overrides/decidim/admin/categories/index/add_table_column_name.html.erb.deface +3 -0
  57. data/app/overrides/decidim/admin/categories/index/add_valuators.html.erb.deface +3 -0
  58. data/app/overrides/decidim/proposals/admin/proposal_notes/_proposal_notes/add_edit_link.html.erb.deface +3 -0
  59. data/app/overrides/decidim/proposals/admin/proposal_notes/_proposal_notes/add_links_to_note.html.erb.deface +3 -0
  60. data/app/overrides/decidim/proposals/admin/proposals/_proposal-tr/add_td_hide_action.html.erb.deface +3 -0
  61. data/app/overrides/decidim/proposals/admin/proposals/_proposal-tr/add_valuators_name.html.erb.deface +9 -0
  62. data/app/overrides/decidim/proposals/admin/proposals/_proposal-tr/replace_td_title.html.erb.deface +3 -0
  63. data/app/overrides/decidim/proposals/admin/proposals/show/add_photo_management.html.erb.deface +3 -0
  64. data/app/overrides/decidim/proposals/admin/proposals/show/add_send_email_btn.html.erb.deface +3 -0
  65. data/app/overrides/decidim/proposals/admin/proposals/show/remove_photos.html.erb.deface +4 -0
  66. data/app/overrides/decidim/proposals/admin/proposals/show/replace_valuators.html.erb.deface +3 -0
  67. data/app/overrides/decidim/proposals/proposals/_proposal_similar/add_distance_badge.html.erb.deface +5 -0
  68. data/app/overrides/decidim/proposals/proposals/_wizard_header/replace_title.html.erb.deface +14 -0
  69. data/app/overrides/decidim/proposals/proposals/edit/add_user_group.html.erb.deface +3 -0
  70. data/app/overrides/decidim/proposals/proposals/edit/replace_javascript.html.erb.deface +8 -0
  71. data/app/overrides/decidim/proposals/proposals/edit/replace_partial_edit_form_fields.html.erb.deface +3 -0
  72. data/app/overrides/decidim/proposals/proposals/edit_draft/add_user_group.html.erb.deface +3 -0
  73. data/app/overrides/decidim/proposals/proposals/edit_draft/replace_javascript.html.erb.deface +8 -0
  74. data/app/overrides/decidim/proposals/proposals/edit_draft/replace_partial_edit_form_fields.html.erb.deface +3 -0
  75. data/app/overrides/decidim/proposals/proposals/index/add_additional_button.html.erb.deface +3 -0
  76. data/app/overrides/decidim/proposals/proposals/new/remove_title.html.erb.deface +1 -0
  77. data/app/overrides/decidim/proposals/proposals/new/replace_body.html.erb.deface +3 -0
  78. data/app/overrides/decidim/proposals/proposals/new/replace_javascript.html.erb.deface +8 -0
  79. data/app/overrides/decidim/proposals/proposals/show/add_additional_button.html.erb.deface +3 -0
  80. data/app/overrides/layouts/decidim/_process_header_steps/always_show_new_proposals.html.erb.deface +3 -0
  81. data/app/packs/entrypoints/decidim_reporting_proposals.js +6 -0
  82. data/app/packs/entrypoints/decidim_reporting_proposals_camera.js +2 -0
  83. data/app/packs/entrypoints/decidim_reporting_proposals_geocoding.js +2 -0
  84. data/app/packs/entrypoints/decidim_reporting_proposals_js_validations.js +1 -0
  85. data/app/packs/entrypoints/decidim_reporting_proposals_list_component_admin.js +1 -0
  86. data/app/packs/entrypoints/decidim_reporting_proposals_manage_component_admin.js +1 -0
  87. data/app/packs/images/.keep +0 -0
  88. data/app/packs/src/decidim/reporting_proposals/proposal_extra_validations.js +89 -0
  89. data/app/packs/src/decidim/reporting_proposals/proposals/add_proposal.js +66 -0
  90. data/app/packs/src/decidim/reporting_proposals/reverse_geocoding.js +54 -0
  91. data/app/packs/src/decidim/reporting_proposals/user_camera_inputs.js +49 -0
  92. data/app/packs/stylesheets/decidim/reporting_proposals/geocoding_addons.scss +34 -0
  93. data/app/packs/stylesheets/decidim/reporting_proposals/list_component_admin.scss +27 -0
  94. data/app/packs/stylesheets/decidim/reporting_proposals/manage_component_admin.scss +31 -0
  95. data/app/packs/stylesheets/decidim/reporting_proposals/proposals/add_proposal.scss +12 -0
  96. data/app/packs/stylesheets/decidim/reporting_proposals/user_camera_inputs.scss +19 -0
  97. data/app/permissions/concerns/decidim/reporting_proposals/admin/permissions_override.rb +27 -0
  98. data/app/permissions/decidim/reporting_proposals/admin/permissions.rb +79 -0
  99. data/app/permissions/decidim/reporting_proposals/permissions.rb +17 -0
  100. data/app/queries/decidim/reporting_proposals/nearby_proposals.rb +57 -0
  101. data/app/serializers/decidim/reporting_proposals/proposal_serializer_override.rb +77 -0
  102. data/app/validators/concerns/decidim/reporting_proposals/component_validator_override.rb +25 -0
  103. data/app/views/decidim/proposals/admin/proposal_notes/_editing_note.html.erb +18 -0
  104. data/app/views/decidim/proposals/admin/proposal_notes/_proposal_notes_body.html.erb +6 -0
  105. data/app/views/decidim/proposals/admin/proposals/_send_email_button.html.erb +4 -0
  106. data/app/views/decidim/proposals/proposals/_additional_button.html.erb +6 -0
  107. data/app/views/decidim/reporting_proposals/admin/categories/_column_valuators.html.erb +1 -0
  108. data/app/views/decidim/reporting_proposals/admin/categories/_valuators.html.erb +1 -0
  109. data/app/views/decidim/reporting_proposals/admin/categories/_valuators_field.html.erb +7 -0
  110. data/app/views/decidim/reporting_proposals/admin/proposals/_photo_form.html.erb +24 -0
  111. data/app/views/decidim/reporting_proposals/admin/proposals/_photo_gallery.html.erb +21 -0
  112. data/app/views/decidim/reporting_proposals/admin/proposals/_photos.html.erb +14 -0
  113. data/app/views/decidim/reporting_proposals/admin/proposals/_proposal_td_hide.html.erb +20 -0
  114. data/app/views/decidim/reporting_proposals/admin/proposals/_proposal_td_title.html.erb +41 -0
  115. data/app/views/decidim/reporting_proposals/proposals/_additional_button_for_show.html.erb +6 -0
  116. data/app/views/decidim/reporting_proposals/proposals/_new_proposal_fields.html.erb +7 -0
  117. data/app/views/decidim/reporting_proposals/proposals/_reporting_proposal_fields.html.erb +113 -0
  118. data/app/views/decidim/reporting_proposals/proposals/_user_group.html.erb +5 -0
  119. data/bin/rails +6 -0
  120. data/bin/webpack-dev-server +6 -0
  121. data/codecov.yml +11 -0
  122. data/config/assets.rb +13 -0
  123. data/config/i18n-tasks.yml +13 -0
  124. data/config/locales/ca.yml +366 -0
  125. data/config/locales/de.yml +366 -0
  126. data/config/locales/en.yml +426 -0
  127. data/config/locales/es.yml +366 -0
  128. data/crowdin.yml +45 -0
  129. data/db/migrate/20221219151846_create_decidim_categories_valuators.rb +17 -0
  130. data/decidim-reporting_proposals.gemspec +34 -0
  131. data/lib/decidim/api/reporting_proposals_type.rb +10 -0
  132. data/lib/decidim/reporting_proposals/admin.rb +8 -0
  133. data/lib/decidim/reporting_proposals/admin_engine.rb +31 -0
  134. data/lib/decidim/reporting_proposals/component.rb +490 -0
  135. data/lib/decidim/reporting_proposals/config.rb +53 -0
  136. data/lib/decidim/reporting_proposals/engine.rb +96 -0
  137. data/lib/decidim/reporting_proposals/test/factories.rb +13 -0
  138. data/lib/decidim/reporting_proposals/version.rb +15 -0
  139. data/lib/decidim/reporting_proposals.rb +13 -0
  140. data/package-lock.json +7844 -0
  141. data/package.json +195 -0
  142. metadata +319 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 245ec2346fca96939db2dcc928be00ef2258221dd7a67c5b7966f1ee5ce524ac
4
+ data.tar.gz: 1b234b2090b4e5dd3b2cd94e75d0490118e9f819c51939cccb948f6f192710dc
5
+ SHA512:
6
+ metadata.gz: fa925058053438ab117426bbbda5c3011ff6c9dd667bfd85bf39073faff9a004980f77d2fc59855ba0272d7a481c0a47a9eaea17d500578cc23a0a7953dc661f
7
+ data.tar.gz: 39e3ba93d594a0a4d87008c79602b5d579fea679f35d24566e8ea0eea4e21dfab599a189e735fe8551ff03d814f5abde05fe2bb2335b81d71fd49b40d7be62b8
data/.codeclimate.yml ADDED
@@ -0,0 +1,32 @@
1
+ version: "2"
2
+
3
+ checks:
4
+ argument-count:
5
+ enabled: false
6
+
7
+ complex-logic:
8
+ enabled: false
9
+
10
+ file-lines:
11
+ enabled: false
12
+
13
+ identical-code:
14
+ enabled: false
15
+
16
+ method-complexity:
17
+ enabled: false
18
+
19
+ method-count:
20
+ enabled: false
21
+
22
+ method-lines:
23
+ enabled: false
24
+
25
+ nested-control-flow:
26
+ enabled: false
27
+
28
+ return-statements:
29
+ enabled: false
30
+
31
+ similar-code:
32
+ enabled: false
data/.erb-lint.yml ADDED
@@ -0,0 +1,30 @@
1
+ ---
2
+
3
+ linters:
4
+ ExtraNewline:
5
+ enabled: true
6
+
7
+ FinalNewline:
8
+ enabled: true
9
+
10
+ SpaceAroundErbTag:
11
+ enabled: true
12
+
13
+ AllowedScriptType:
14
+ enabled: true
15
+ allowed_types:
16
+ - text/javascript
17
+ - text/template
18
+
19
+ Rubocop:
20
+ enabled: true
21
+
22
+ rubocop_config:
23
+ AllCops:
24
+ DisabledByDefault: true
25
+
26
+ Style/StringLiterals:
27
+ EnforcedStyle: double_quotes
28
+
29
+ Layout/SpaceInsideHashLiteralBraces:
30
+ Enabled: true
data/.eslintignore ADDED
@@ -0,0 +1,3 @@
1
+ **/*{.,-}min.js
2
+ app/packs/src/vendor/**/*.js
3
+ vendor/*
data/.eslintrc.json ADDED
@@ -0,0 +1,239 @@
1
+ {
2
+ "env": {
3
+ "browser": true,
4
+ "es2021": true
5
+ },
6
+ "extends": [
7
+ "eslint:recommended",
8
+ "prettier"
9
+ ],
10
+ "parserOptions": {
11
+ "ecmaVersion": 12,
12
+ "sourceType": "module"
13
+ },
14
+ "globals": {
15
+ "require": false,
16
+ "Decidim": false,
17
+ "$": false,
18
+ "jQuery": false,
19
+ "L": false
20
+ },
21
+ "rules": {
22
+ "accessor-pairs": "error",
23
+ "array-bracket-spacing": "error",
24
+ "array-callback-return": "error",
25
+ "arrow-body-style": "off",
26
+ "arrow-parens": [
27
+ "error",
28
+ "always"
29
+ ],
30
+ "arrow-spacing": [
31
+ "error",
32
+ {
33
+ "after": true,
34
+ "before": true
35
+ }
36
+ ],
37
+ "block-scoped-var": "error",
38
+ "block-spacing": "off",
39
+ "callback-return": "error",
40
+ "class-methods-use-this": "off",
41
+ "comma-dangle": ["error", "never"],
42
+ "comma-spacing": [
43
+ "error",
44
+ {
45
+ "after": true,
46
+ "before": false
47
+ }
48
+ ],
49
+ "comma-style": [
50
+ "error",
51
+ "last"
52
+ ],
53
+ "complexity": "error",
54
+ "computed-property-spacing": [
55
+ "error",
56
+ "never"
57
+ ],
58
+ "consistent-this": "error",
59
+ "curly": "error",
60
+ "default-case": "error",
61
+ "dot-location": "error",
62
+ "dot-notation": "error",
63
+ "eol-last": "error",
64
+ "func-call-spacing": "error",
65
+ "func-name-matching": "error",
66
+ "func-names": [
67
+ "error",
68
+ "never"
69
+ ],
70
+ "generator-star-spacing": "error",
71
+ "global-require": "error",
72
+ "handle-callback-err": "error",
73
+ "id-blacklist": "error",
74
+ "id-match": "error",
75
+ "indent": ["error", 2, { "VariableDeclarator": 2 }],
76
+ "jsx-quotes": "error",
77
+ "key-spacing": "error",
78
+ "keyword-spacing": [
79
+ "error",
80
+ {
81
+ "after": true,
82
+ "before": true
83
+ }
84
+ ],
85
+ "linebreak-style": [
86
+ "error",
87
+ "unix"
88
+ ],
89
+ "lines-around-comment": "error",
90
+ "lines-around-directive": "error",
91
+ "max-len": "off",
92
+ "max-lines": "error",
93
+ "max-nested-callbacks": "error",
94
+ "max-params": "error",
95
+ "max-statements": "off",
96
+ "max-statements-per-line": "error",
97
+ "multiline-ternary": "error",
98
+ "new-cap": "error",
99
+ "new-parens": "error",
100
+ "newline-after-var": "off",
101
+ "newline-before-return": "off",
102
+ "newline-per-chained-call": "off",
103
+ "no-alert": "error",
104
+ "no-array-constructor": "error",
105
+ "no-bitwise": "error",
106
+ "no-caller": "error",
107
+ "no-catch-shadow": "error",
108
+ "no-confusing-arrow": "error",
109
+ "no-continue": "error",
110
+ "no-div-regex": "error",
111
+ "no-duplicate-imports": "error",
112
+ "no-else-return": "error",
113
+ "no-eq-null": "error",
114
+ "no-eval": "error",
115
+ "no-extend-native": "error",
116
+ "no-extra-bind": "error",
117
+ "no-extra-label": "error",
118
+ "no-extra-parens": "off",
119
+ "no-floating-decimal": "error",
120
+ "no-implicit-coercion": "error",
121
+ "no-implicit-globals": "error",
122
+ "no-implied-eval": "error",
123
+ "no-iterator": "error",
124
+ "no-label-var": "error",
125
+ "no-labels": "error",
126
+ "no-lone-blocks": "error",
127
+ "no-lonely-if": "error",
128
+ "no-magic-numbers": "off",
129
+ "no-mixed-requires": "error",
130
+ "no-multi-spaces": "off",
131
+ "no-multi-str": "error",
132
+ "no-multiple-empty-lines": "error",
133
+ "no-native-reassign": "error",
134
+ "no-negated-condition": "error",
135
+ "no-negated-in-lhs": "error",
136
+ "no-nested-ternary": "error",
137
+ "no-new": "error",
138
+ "no-new-func": "error",
139
+ "no-new-object": "error",
140
+ "no-new-require": "error",
141
+ "no-new-wrappers": "error",
142
+ "no-octal-escape": "error",
143
+ "no-path-concat": "error",
144
+ "no-plusplus": "error",
145
+ "no-process-env": "error",
146
+ "no-process-exit": "error",
147
+ "no-proto": "error",
148
+ "no-prototype-builtins": "error",
149
+ "no-restricted-globals": "error",
150
+ "no-restricted-imports": "error",
151
+ "no-restricted-modules": "error",
152
+ "no-restricted-properties": "error",
153
+ "no-restricted-syntax": "error",
154
+ "no-return-assign": "error",
155
+ "no-script-url": "error",
156
+ "no-self-compare": "error",
157
+ "no-sequences": "error",
158
+ "no-shadow": "error",
159
+ "no-shadow-restricted-names": "error",
160
+ "no-spaced-func": "error",
161
+ "no-sync": "error",
162
+ "no-tabs": "error",
163
+ "no-template-curly-in-string": "error",
164
+ "no-throw-literal": "error",
165
+ "no-trailing-spaces": "off",
166
+ "no-undef-init": "error",
167
+ "no-undefined": "error",
168
+ "no-underscore-dangle": "off",
169
+ "no-unmodified-loop-condition": "error",
170
+ "no-unneeded-ternary": "error",
171
+ "no-unused-expressions": "error",
172
+ "no-use-before-define": "error",
173
+ "no-useless-call": "error",
174
+ "no-useless-computed-key": "error",
175
+ "no-useless-concat": "error",
176
+ "no-useless-constructor": "error",
177
+ "no-useless-escape": "error",
178
+ "no-useless-rename": "error",
179
+ "no-var": "error",
180
+ "no-void": "error",
181
+ "no-warning-comments": "error",
182
+ "no-whitespace-before-property": "error",
183
+ "no-with": "error",
184
+ "object-curly-newline": "off",
185
+ "object-curly-spacing": "off",
186
+ "object-property-newline": [
187
+ "error",
188
+ {
189
+ "allowMultiplePropertiesPerLine": true
190
+ }
191
+ ],
192
+ "object-shorthand": "off",
193
+ "one-var": "off",
194
+ "one-var-declaration-per-line": "error",
195
+ "operator-assignment": "error",
196
+ "operator-linebreak": "error",
197
+ "padded-blocks": "off",
198
+ "prefer-arrow-callback": "off",
199
+ "prefer-const": "off",
200
+ "prefer-numeric-literals": "error",
201
+ "prefer-rest-params": "error",
202
+ "prefer-spread": "error",
203
+ "prefer-template": "error",
204
+ "quote-props": "off",
205
+ "quotes": ["error", "double", { "avoidEscape": true }],
206
+ "require-jsdoc": "error",
207
+ "rest-spread-spacing": "error",
208
+ "semi": "off",
209
+ "semi-spacing": "error",
210
+ "sort-imports": "off",
211
+ "sort-keys": "off",
212
+ "space-before-blocks": "error",
213
+ "space-before-function-paren": "off",
214
+ "space-in-parens": [
215
+ "error",
216
+ "never"
217
+ ],
218
+ "space-infix-ops": "error",
219
+ "space-unary-ops": "error",
220
+ "spaced-comment": [
221
+ "error",
222
+ "always"
223
+ ],
224
+ "strict": "error",
225
+ "symbol-description": "error",
226
+ "template-curly-spacing": "error",
227
+ "unicode-bom": [
228
+ "error",
229
+ "never"
230
+ ],
231
+ "vars-on-top": "error",
232
+ "wrap-iife": "error",
233
+ "wrap-regex": "error",
234
+ "yield-star-spacing": "error",
235
+ "yoda": "error",
236
+ "import/no-named-as-default": "off",
237
+ "import/no-extraneous-dependencies": "off"
238
+ }
239
+ }
@@ -0,0 +1,74 @@
1
+ # For most projects, this workflow file will not need changing; you simply need
2
+ # to commit it to your repository.
3
+ #
4
+ # You may wish to alter this file to override the set of languages analyzed,
5
+ # or to provide custom queries or build logic.
6
+ #
7
+ # ******** NOTE ********
8
+ # We have attempted to detect the languages in your repository. Please check
9
+ # the `language` matrix defined below to confirm you have the correct set of
10
+ # supported CodeQL languages.
11
+ #
12
+ name: "CodeQL"
13
+
14
+ on:
15
+ push:
16
+ branches: [ "main" ]
17
+ pull_request:
18
+ # The branches below must be a subset of the branches above
19
+ branches: [ "main" ]
20
+ schedule:
21
+ - cron: '15 22 * * 1'
22
+
23
+ jobs:
24
+ analyze:
25
+ name: Analyze
26
+ runs-on: ubuntu-latest
27
+ permissions:
28
+ actions: read
29
+ contents: read
30
+ security-events: write
31
+
32
+ strategy:
33
+ fail-fast: false
34
+ matrix:
35
+ language: [ 'javascript', 'ruby' ]
36
+ # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
37
+ # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
38
+
39
+ steps:
40
+ - name: Checkout repository
41
+ uses: actions/checkout@v3
42
+
43
+ # Initializes the CodeQL tools for scanning.
44
+ - name: Initialize CodeQL
45
+ uses: github/codeql-action/init@v2
46
+ with:
47
+ languages: ${{ matrix.language }}
48
+ # If you wish to specify custom queries, you can do so here or in a config file.
49
+ # By default, queries listed here will override any specified in a config file.
50
+ # Prefix the list here with "+" to use these queries and those in the config file.
51
+
52
+ # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
53
+ # queries: security-extended,security-and-quality
54
+
55
+
56
+ # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
57
+ # If this step fails, then you should remove it and run the build manually (see below)
58
+ - name: Autobuild
59
+ uses: github/codeql-action/autobuild@v2
60
+
61
+ # ℹ️ Command-line programs to run using the OS shell.
62
+ # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
63
+
64
+ # If the Autobuild fails above, remove it and uncomment the following three lines.
65
+ # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
66
+
67
+ # - run: |
68
+ # echo "Run, Build Application using script"
69
+ # ./location_of_script_within_repo/buildscript.sh
70
+
71
+ - name: Perform CodeQL Analysis
72
+ uses: github/codeql-action/analyze@v2
73
+ with:
74
+ category: "/language:${{matrix.language}}"
@@ -0,0 +1,45 @@
1
+ name: "[CI] Lint"
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+
9
+ env:
10
+ CI: "true"
11
+ RUBY_VERSION: 2.7.7
12
+ NODE_VERSION: 16.9.1
13
+
14
+ jobs:
15
+ lint-report:
16
+ runs-on: ubuntu-20.04
17
+
18
+ steps:
19
+ - uses: actions/checkout@v2
20
+ with:
21
+ fetch-depth: 1
22
+
23
+ - uses: actions/setup-node@master
24
+ with:
25
+ node-version: ${{ env.NODE_VERSION }}
26
+
27
+ - run: npm ci
28
+ name: Install JS deps
29
+
30
+ - run: npm run lint
31
+ name: Lint JS files
32
+
33
+ - run: npm run stylelint
34
+ name: Lint SCSS files
35
+
36
+ - uses: ruby/setup-ruby@v1
37
+ with:
38
+ ruby-version: ${{ env.RUBY_VERSION }}
39
+ bundler-cache: true
40
+
41
+ - run: bundle exec rubocop -P
42
+ name: Lint Ruby files
43
+
44
+ - run: bundle exec erblint app/**/*.erb
45
+ name: Lint ERB files
@@ -0,0 +1,125 @@
1
+ name: "[CI] Test (integration)"
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+
9
+ env:
10
+ CI: "true"
11
+ RUBY_VERSION: 2.7.7
12
+ NODE_VERSION: 16.9.1
13
+ RAILS_ENV: test
14
+ DATABASE_USERNAME: postgres
15
+ DATABASE_PASSWORD: postgres
16
+ DATABASE_HOST: localhost
17
+
18
+ jobs:
19
+ build:
20
+ name: Build & Precompile
21
+ runs-on: ubuntu-20.04
22
+
23
+ services:
24
+ postgres:
25
+ image: postgres:11
26
+ ports: ["5432:5432"]
27
+ options: >-
28
+ --health-cmd pg_isready
29
+ --health-interval 10s
30
+ --health-timeout 5s
31
+ --health-retries 5
32
+ env:
33
+ POSTGRES_PASSWORD: postgres
34
+
35
+ steps:
36
+
37
+ - uses: actions/checkout@v3
38
+ with:
39
+ fetch-depth: 1
40
+
41
+ - uses: ruby/setup-ruby@v1
42
+ with:
43
+ ruby-version: ${{ env.RUBY_VERSION }}
44
+ bundler-cache: true
45
+
46
+ - uses: actions/setup-node@v3
47
+ with:
48
+ node-version: ${{ env.NODE_VERSION }}
49
+ cache: 'npm'
50
+ cache-dependency-path: package-lock.json
51
+
52
+ - name: Node packages
53
+ run: npm ci
54
+
55
+ - name: Setup Database
56
+ run: bundle exec rake test_app
57
+
58
+ - name: Precompile test app assets
59
+ run: bundle exec rake assets:precompile
60
+ working-directory: ./spec/decidim_dummy_app
61
+
62
+ - run: tar -zcf /tmp/testapp-env.tar.gz ./spec/decidim_dummy_app
63
+
64
+ - uses: actions/upload-artifact@v3
65
+ with:
66
+ name: workspace
67
+ path: /tmp/testapp-env.tar.gz
68
+
69
+ test:
70
+ name: Integration Tests
71
+ runs-on: ubuntu-20.04
72
+ needs: build
73
+ strategy:
74
+ matrix:
75
+ include:
76
+ - name: "Admin"
77
+ rspec: admin
78
+ - name: "Public"
79
+ rspec: "*_spec.rb"
80
+ fail-fast: false
81
+
82
+ services:
83
+ postgres:
84
+ image: postgres:11
85
+ ports: ["5432:5432"]
86
+ options: >-
87
+ --health-cmd pg_isready
88
+ --health-interval 10s
89
+ --health-timeout 5s
90
+ --health-retries 5
91
+ env:
92
+ POSTGRES_PASSWORD: postgres
93
+
94
+ steps:
95
+ - uses: actions/checkout@v3
96
+ with:
97
+ fetch-depth: 1
98
+
99
+ - uses: ruby/setup-ruby@v1
100
+ with:
101
+ ruby-version: ${{ env.RUBY_VERSION }}
102
+ bundler-cache: true
103
+
104
+ - uses: actions/download-artifact@v3
105
+ with:
106
+ name: workspace
107
+ path: /tmp
108
+
109
+ - run: ls
110
+ - run: tar -zxf /tmp/testapp-env.tar.gz
111
+ - run: ls
112
+ - run: bundle exec rails db:create db:schema:load
113
+ working-directory: ./spec/decidim_dummy_app
114
+
115
+ - name: Run RSpec
116
+ run: bundle exec rspec spec/system/${{ matrix.rspec }}
117
+
118
+ - name: Upload coverage reports to Codecov
119
+ uses: codecov/codecov-action@v3
120
+
121
+ - uses: actions/upload-artifact@v3
122
+ if: always()
123
+ with:
124
+ name: screenshots-${{ matrix.name }}
125
+ path: ./spec/decidim_dummy_app/tmp/screenshots
@@ -0,0 +1,51 @@
1
+ name: "[CI] Test (unit)"
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+
9
+ env:
10
+ CI: "true"
11
+ RUBY_VERSION: 2.7.7
12
+ NODE_VERSION: 16.9.1
13
+
14
+ jobs:
15
+ test-unit:
16
+ runs-on: ubuntu-20.04
17
+
18
+ services:
19
+ postgres:
20
+ image: postgres:11
21
+ ports: ["5432:5432"]
22
+ options: >-
23
+ --health-cmd pg_isready
24
+ --health-interval 10s
25
+ --health-timeout 5s
26
+ --health-retries 5
27
+ env:
28
+ POSTGRES_PASSWORD: postgres
29
+ env:
30
+ DATABASE_USERNAME: postgres
31
+ DATABASE_PASSWORD: postgres
32
+ DATABASE_HOST: localhost
33
+
34
+ steps:
35
+ - uses: actions/checkout@v2
36
+ with:
37
+ fetch-depth: 1
38
+
39
+ - uses: ruby/setup-ruby@v1
40
+ with:
41
+ ruby-version: ${{ env.RUBY_VERSION }}
42
+ bundler-cache: true
43
+
44
+ - name: Setup Database
45
+ run: bundle exec rake test_app
46
+
47
+ - name: Run RSpec
48
+ run: bundle exec rspec --exclude-pattern 'spec/system/**/*_spec.rb'
49
+
50
+ - name: Upload coverage reports to Codecov
51
+ uses: codecov/codecov-action@v3
data/.gitignore ADDED
@@ -0,0 +1,27 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+
10
+ # rspec failure tracking
11
+ .rspec_status
12
+
13
+ # rspec failure tracking
14
+ .rspec-failures
15
+
16
+ # default test application
17
+ spec/decidim_dummy_app
18
+
19
+ # default development application
20
+ development_app
21
+
22
+ .rbenv-vars
23
+ .vscode
24
+ .byebug_history
25
+ *.gem
26
+ node_modules/
27
+ npm_debug.log
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/.rubocop.yml ADDED
@@ -0,0 +1,3 @@
1
+ inherit_from:
2
+ - .rubocop_ruby.yml
3
+ - .rubocop_rails.yml