decidim-reporting_proposals 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.codeclimate.yml +32 -0
- data/.erb-lint.yml +30 -0
- data/.eslintignore +3 -0
- data/.eslintrc.json +239 -0
- data/.github/workflows/codeql-analysis.yml +74 -0
- data/.github/workflows/lint.yml +45 -0
- data/.github/workflows/test_integration.yml +125 -0
- data/.github/workflows/test_unit.yml +51 -0
- data/.gitignore +27 -0
- data/.rspec +3 -0
- data/.rubocop.yml +3 -0
- data/.rubocop_rails.yml +87 -0
- data/.rubocop_ruby.yml +1754 -0
- data/.ruby-version +1 -0
- data/.simplecov +13 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +40 -0
- data/Gemfile.lock +815 -0
- data/LICENSE-AGPLv3.txt +661 -0
- data/README.md +166 -0
- data/Rakefile +40 -0
- data/app/cells/decidim/reporting_proposals/edit_note_modal/show.erb +20 -0
- data/app/cells/decidim/reporting_proposals/edit_note_modal_cell.rb +37 -0
- data/app/commands/concerns/decidim/reporting_proposals/admin/create_category_override.rb +32 -0
- data/app/commands/concerns/decidim/reporting_proposals/admin/update_category_override.rb +32 -0
- data/app/commands/concerns/decidim/reporting_proposals/create_report_override.rb +19 -0
- data/app/commands/decidim/reporting_proposals/admin/update_proposal.rb +46 -0
- data/app/commands/decidim/reporting_proposals/admin/update_proposal_note.rb +36 -0
- data/app/commands/decidim/reporting_proposals/create_reporting_proposal.rb +68 -0
- data/app/controllers/concerns/decidim/reporting_proposals/admin/categories_controller_override.rb +16 -0
- data/app/controllers/concerns/decidim/reporting_proposals/admin/needs_header_snippets.rb +50 -0
- data/app/controllers/concerns/decidim/reporting_proposals/admin/proposal_answer_templates_controller_override.rb +18 -0
- data/app/controllers/concerns/decidim/reporting_proposals/admin/proposal_answers_controller_override.rb +35 -0
- data/app/controllers/concerns/decidim/reporting_proposals/admin/proposals_controller_override.rb +28 -0
- data/app/controllers/concerns/decidim/reporting_proposals/needs_proposal_extra_validations_snippets.rb +51 -0
- data/app/controllers/concerns/decidim/reporting_proposals/proposals_controller_override.rb +113 -0
- data/app/controllers/decidim/reporting_proposals/admin/application_controller.rb +18 -0
- data/app/controllers/decidim/reporting_proposals/admin/proposal_notes_controller.rb +38 -0
- data/app/controllers/decidim/reporting_proposals/admin/proposals_controller.rb +61 -0
- data/app/controllers/decidim/reporting_proposals/application_controller.rb +11 -0
- data/app/controllers/decidim/reporting_proposals/geolocation_controller.rb +32 -0
- data/app/forms/concerns/decidim/reporting_proposals/admin/category_form_override.rb +19 -0
- data/app/forms/concerns/decidim/reporting_proposals/form_builder_override.rb +48 -0
- data/app/forms/concerns/decidim/reporting_proposals/map_builder_override.rb +60 -0
- data/app/forms/decidim/reporting_proposals/admin/proposal_photo_form.rb +23 -0
- data/app/forms/decidim/reporting_proposals/proposal_form.rb +33 -0
- data/app/helpers/concerns/decidim/reporting_proposals/admin/proposals_helper_override.rb +63 -0
- data/app/helpers/concerns/decidim/reporting_proposals/proposal_wizard_helper_override.rb +61 -0
- data/app/jobs/decidim/reporting_proposals/assign_proposal_valuators_job.rb +51 -0
- data/app/models/concerns/decidim/reporting_proposals/category_override.rb +28 -0
- data/app/models/concerns/decidim/reporting_proposals/participatory_space_role_config/valuator_override.rb +17 -0
- data/app/models/concerns/decidim/reporting_proposals/participatory_space_user_role_override.rb +25 -0
- data/app/models/decidim/reporting_proposals/category_valuator.rb +28 -0
- data/app/overrides/decidim/admin/categories/_form/add_valuators_field.html.erb.deface +3 -0
- data/app/overrides/decidim/admin/categories/index/add_table_column_name.html.erb.deface +3 -0
- data/app/overrides/decidim/admin/categories/index/add_valuators.html.erb.deface +3 -0
- data/app/overrides/decidim/proposals/admin/proposal_notes/_proposal_notes/add_edit_link.html.erb.deface +3 -0
- data/app/overrides/decidim/proposals/admin/proposal_notes/_proposal_notes/add_links_to_note.html.erb.deface +3 -0
- data/app/overrides/decidim/proposals/admin/proposals/_proposal-tr/add_td_hide_action.html.erb.deface +3 -0
- data/app/overrides/decidim/proposals/admin/proposals/_proposal-tr/add_valuators_name.html.erb.deface +9 -0
- data/app/overrides/decidim/proposals/admin/proposals/_proposal-tr/replace_td_title.html.erb.deface +3 -0
- data/app/overrides/decidim/proposals/admin/proposals/show/add_photo_management.html.erb.deface +3 -0
- data/app/overrides/decidim/proposals/admin/proposals/show/add_send_email_btn.html.erb.deface +3 -0
- data/app/overrides/decidim/proposals/admin/proposals/show/remove_photos.html.erb.deface +4 -0
- data/app/overrides/decidim/proposals/admin/proposals/show/replace_valuators.html.erb.deface +3 -0
- data/app/overrides/decidim/proposals/proposals/_proposal_similar/add_distance_badge.html.erb.deface +5 -0
- data/app/overrides/decidim/proposals/proposals/_wizard_header/replace_title.html.erb.deface +14 -0
- data/app/overrides/decidim/proposals/proposals/edit/add_user_group.html.erb.deface +3 -0
- data/app/overrides/decidim/proposals/proposals/edit/replace_javascript.html.erb.deface +8 -0
- data/app/overrides/decidim/proposals/proposals/edit/replace_partial_edit_form_fields.html.erb.deface +3 -0
- data/app/overrides/decidim/proposals/proposals/edit_draft/add_user_group.html.erb.deface +3 -0
- data/app/overrides/decidim/proposals/proposals/edit_draft/replace_javascript.html.erb.deface +8 -0
- data/app/overrides/decidim/proposals/proposals/edit_draft/replace_partial_edit_form_fields.html.erb.deface +3 -0
- data/app/overrides/decidim/proposals/proposals/index/add_additional_button.html.erb.deface +3 -0
- data/app/overrides/decidim/proposals/proposals/new/remove_title.html.erb.deface +1 -0
- data/app/overrides/decidim/proposals/proposals/new/replace_body.html.erb.deface +3 -0
- data/app/overrides/decidim/proposals/proposals/new/replace_javascript.html.erb.deface +8 -0
- data/app/overrides/decidim/proposals/proposals/show/add_additional_button.html.erb.deface +3 -0
- data/app/overrides/layouts/decidim/_process_header_steps/always_show_new_proposals.html.erb.deface +3 -0
- data/app/packs/entrypoints/decidim_reporting_proposals.js +6 -0
- data/app/packs/entrypoints/decidim_reporting_proposals_camera.js +2 -0
- data/app/packs/entrypoints/decidim_reporting_proposals_geocoding.js +2 -0
- data/app/packs/entrypoints/decidim_reporting_proposals_js_validations.js +1 -0
- data/app/packs/entrypoints/decidim_reporting_proposals_list_component_admin.js +1 -0
- data/app/packs/entrypoints/decidim_reporting_proposals_manage_component_admin.js +1 -0
- data/app/packs/images/.keep +0 -0
- data/app/packs/src/decidim/reporting_proposals/proposal_extra_validations.js +89 -0
- data/app/packs/src/decidim/reporting_proposals/proposals/add_proposal.js +66 -0
- data/app/packs/src/decidim/reporting_proposals/reverse_geocoding.js +54 -0
- data/app/packs/src/decidim/reporting_proposals/user_camera_inputs.js +49 -0
- data/app/packs/stylesheets/decidim/reporting_proposals/geocoding_addons.scss +34 -0
- data/app/packs/stylesheets/decidim/reporting_proposals/list_component_admin.scss +27 -0
- data/app/packs/stylesheets/decidim/reporting_proposals/manage_component_admin.scss +31 -0
- data/app/packs/stylesheets/decidim/reporting_proposals/proposals/add_proposal.scss +12 -0
- data/app/packs/stylesheets/decidim/reporting_proposals/user_camera_inputs.scss +19 -0
- data/app/permissions/concerns/decidim/reporting_proposals/admin/permissions_override.rb +27 -0
- data/app/permissions/decidim/reporting_proposals/admin/permissions.rb +79 -0
- data/app/permissions/decidim/reporting_proposals/permissions.rb +17 -0
- data/app/queries/decidim/reporting_proposals/nearby_proposals.rb +57 -0
- data/app/serializers/decidim/reporting_proposals/proposal_serializer_override.rb +77 -0
- data/app/validators/concerns/decidim/reporting_proposals/component_validator_override.rb +25 -0
- data/app/views/decidim/proposals/admin/proposal_notes/_editing_note.html.erb +18 -0
- data/app/views/decidim/proposals/admin/proposal_notes/_proposal_notes_body.html.erb +6 -0
- data/app/views/decidim/proposals/admin/proposals/_send_email_button.html.erb +4 -0
- data/app/views/decidim/proposals/proposals/_additional_button.html.erb +6 -0
- data/app/views/decidim/reporting_proposals/admin/categories/_column_valuators.html.erb +1 -0
- data/app/views/decidim/reporting_proposals/admin/categories/_valuators.html.erb +1 -0
- data/app/views/decidim/reporting_proposals/admin/categories/_valuators_field.html.erb +7 -0
- data/app/views/decidim/reporting_proposals/admin/proposals/_photo_form.html.erb +24 -0
- data/app/views/decidim/reporting_proposals/admin/proposals/_photo_gallery.html.erb +21 -0
- data/app/views/decidim/reporting_proposals/admin/proposals/_photos.html.erb +14 -0
- data/app/views/decidim/reporting_proposals/admin/proposals/_proposal_td_hide.html.erb +20 -0
- data/app/views/decidim/reporting_proposals/admin/proposals/_proposal_td_title.html.erb +41 -0
- data/app/views/decidim/reporting_proposals/proposals/_additional_button_for_show.html.erb +6 -0
- data/app/views/decidim/reporting_proposals/proposals/_new_proposal_fields.html.erb +7 -0
- data/app/views/decidim/reporting_proposals/proposals/_reporting_proposal_fields.html.erb +113 -0
- data/app/views/decidim/reporting_proposals/proposals/_user_group.html.erb +5 -0
- data/bin/rails +6 -0
- data/bin/webpack-dev-server +6 -0
- data/codecov.yml +11 -0
- data/config/assets.rb +13 -0
- data/config/i18n-tasks.yml +13 -0
- data/config/locales/ca.yml +366 -0
- data/config/locales/de.yml +366 -0
- data/config/locales/en.yml +426 -0
- data/config/locales/es.yml +366 -0
- data/crowdin.yml +45 -0
- data/db/migrate/20221219151846_create_decidim_categories_valuators.rb +17 -0
- data/decidim-reporting_proposals.gemspec +34 -0
- data/lib/decidim/api/reporting_proposals_type.rb +10 -0
- data/lib/decidim/reporting_proposals/admin.rb +8 -0
- data/lib/decidim/reporting_proposals/admin_engine.rb +31 -0
- data/lib/decidim/reporting_proposals/component.rb +490 -0
- data/lib/decidim/reporting_proposals/config.rb +53 -0
- data/lib/decidim/reporting_proposals/engine.rb +96 -0
- data/lib/decidim/reporting_proposals/test/factories.rb +13 -0
- data/lib/decidim/reporting_proposals/version.rb +15 -0
- data/lib/decidim/reporting_proposals.rb +13 -0
- data/package-lock.json +7844 -0
- data/package.json +195 -0
- 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
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
data/.rubocop.yml
ADDED