decidim-reporting_proposals 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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