decidim-challenges 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE-AGPLv3.txt +661 -0
- data/README.md +49 -0
- data/Rakefile +9 -0
- data/app/cells/decidim/challenges/challenge_cell.rb +21 -0
- data/app/cells/decidim/challenges/challenge_g/show.erb +47 -0
- data/app/cells/decidim/challenges/challenge_g_cell.rb +69 -0
- data/app/cells/decidim/problems/problem_cell.rb +21 -0
- data/app/cells/decidim/problems/problem_g/show.erb +35 -0
- data/app/cells/decidim/problems/problem_g_cell.rb +61 -0
- data/app/cells/decidim/solutions/solution_cell.rb +21 -0
- data/app/cells/decidim/solutions/solution_g/show.erb +30 -0
- data/app/cells/decidim/solutions/solution_g_cell.rb +84 -0
- data/app/commands/decidim/challenges/admin/create_challenge.rb +67 -0
- data/app/commands/decidim/challenges/admin/destroy_challenge.rb +49 -0
- data/app/commands/decidim/challenges/admin/export_challenge_surveys.rb +45 -0
- data/app/commands/decidim/challenges/admin/publish_challenge.rb +40 -0
- data/app/commands/decidim/challenges/admin/unpublish_challenge.rb +40 -0
- data/app/commands/decidim/challenges/admin/update_challenge.rb +72 -0
- data/app/commands/decidim/challenges/admin/update_surveys.rb +43 -0
- data/app/commands/decidim/challenges/survey_challenge.rb +67 -0
- data/app/commands/decidim/command_utils.rb +20 -0
- data/app/commands/decidim/problems/admin/create_problem.rb +66 -0
- data/app/commands/decidim/problems/admin/destroy_problem.rb +49 -0
- data/app/commands/decidim/problems/admin/publish_problem.rb +40 -0
- data/app/commands/decidim/problems/admin/unpublish_problem.rb +40 -0
- data/app/commands/decidim/problems/admin/update_problem.rb +69 -0
- data/app/commands/decidim/solutions/admin/create_solution.rb +65 -0
- data/app/commands/decidim/solutions/admin/destroy_solution.rb +43 -0
- data/app/commands/decidim/solutions/admin/publish_solution.rb +40 -0
- data/app/commands/decidim/solutions/admin/unpublish_solution.rb +40 -0
- data/app/commands/decidim/solutions/admin/update_solution.rb +67 -0
- data/app/commands/decidim/solutions/create_solution.rb +67 -0
- data/app/controllers/concerns/decidim/challenges/admin/filterable.rb +27 -0
- data/app/controllers/concerns/decidim/challenges/orderable_challenges.rb +37 -0
- data/app/controllers/concerns/decidim/problems/admin/filterable.rb +27 -0
- data/app/controllers/concerns/decidim/problems/orderable_problems.rb +37 -0
- data/app/controllers/concerns/decidim/solutions/admin/filterable.rb +27 -0
- data/app/controllers/concerns/decidim/solutions/orderable_solutions.rb +37 -0
- data/app/controllers/concerns/decidim/with_default_filters.rb +23 -0
- data/app/controllers/concerns/decidim/with_sdgs.rb +19 -0
- data/app/controllers/decidim/challenges/admin/application_controller.rb +15 -0
- data/app/controllers/decidim/challenges/admin/challenge_publications_controller.rb +53 -0
- data/app/controllers/decidim/challenges/admin/challenges_controller.rb +108 -0
- data/app/controllers/decidim/challenges/admin/survey_form_controller.rb +43 -0
- data/app/controllers/decidim/challenges/admin/surveys_controller.rb +104 -0
- data/app/controllers/decidim/challenges/application_controller.rb +13 -0
- data/app/controllers/decidim/challenges/challenges_controller.rb +70 -0
- data/app/controllers/decidim/challenges/surveys_controller.rb +61 -0
- data/app/controllers/decidim/problems/admin/application_controller.rb +15 -0
- data/app/controllers/decidim/problems/admin/problem_publications_controller.rb +53 -0
- data/app/controllers/decidim/problems/admin/problems_controller.rb +102 -0
- data/app/controllers/decidim/problems/application_controller.rb +13 -0
- data/app/controllers/decidim/problems/problems_controller.rb +62 -0
- data/app/controllers/decidim/sdgs/admin/application_controller.rb +15 -0
- data/app/controllers/decidim/sdgs/admin/sdgs_controller.rb +18 -0
- data/app/controllers/decidim/sdgs/application_controller.rb +13 -0
- data/app/controllers/decidim/sdgs/sdgs_controller.rb +24 -0
- data/app/controllers/decidim/solutions/admin/application_controller.rb +15 -0
- data/app/controllers/decidim/solutions/admin/solution_publications_controller.rb +53 -0
- data/app/controllers/decidim/solutions/admin/solutions_controller.rb +106 -0
- data/app/controllers/decidim/solutions/application_controller.rb +13 -0
- data/app/controllers/decidim/solutions/solutions_controller.rb +115 -0
- data/app/forms/decidim/challenges/admin/challenge_surveys_form.rb +35 -0
- data/app/forms/decidim/challenges/admin/challenges_form.rb +78 -0
- data/app/forms/decidim/problems/admin/problems_form.rb +90 -0
- data/app/forms/decidim/solutions/admin/solutions_form.rb +71 -0
- data/app/forms/decidim/solutions/solutions_form.rb +50 -0
- data/app/helpers/decidim/challenges/application_helper.rb +25 -0
- data/app/helpers/decidim/challenges/challenge_cells_helper.rb +57 -0
- data/app/helpers/decidim/challenges/challenges_helper.rb +39 -0
- data/app/helpers/decidim/problems/application_helper.rb +10 -0
- data/app/helpers/decidim/problems/problem_cells_helper.rb +23 -0
- data/app/helpers/decidim/problems/problems_helper.rb +24 -0
- data/app/helpers/decidim/sdgs/sdgs_helper.rb +28 -0
- data/app/helpers/decidim/show_filters_helper.rb +13 -0
- data/app/helpers/decidim/solutions/application_helper.rb +27 -0
- data/app/helpers/decidim/solutions/solution_cells_helper.rb +56 -0
- data/app/helpers/decidim/solutions/solutions_helper.rb +21 -0
- data/app/models/decidim/application_record.rb +8 -0
- data/app/models/decidim/challenges/challenge.rb +82 -0
- data/app/models/decidim/challenges/survey.rb +19 -0
- data/app/models/decidim/problems/problem.rb +118 -0
- data/app/models/decidim/sdgs/sdg.rb +47 -0
- data/app/models/decidim/solutions/application_record.rb +10 -0
- data/app/models/decidim/solutions/solution.rb +69 -0
- data/app/packs/entrypoints/decidim_challenges.js +4 -0
- data/app/packs/entrypoints/decidim_challenges.scss +1 -0
- data/app/packs/entrypoints/decidim_problems.js +1 -0
- data/app/packs/entrypoints/decidim_problems.scss +1 -0
- data/app/packs/entrypoints/decidim_sdgs.js +6 -0
- data/app/packs/entrypoints/decidim_sdgs.scss +3 -0
- data/app/packs/entrypoints/decidim_shared.js +1 -0
- data/app/packs/entrypoints/decidim_shared.scss +1 -0
- data/app/packs/entrypoints/decidim_solutions.js +4 -0
- data/app/packs/entrypoints/decidim_solutions.scss +1 -0
- data/app/packs/fonts/Oswald-Medium.ttf +0 -0
- data/app/packs/images/decidim/challenges/decidim_challenges_icon.svg +1 -0
- data/app/packs/images/decidim/sdgs/ods-01.svg +11 -0
- data/app/packs/images/decidim/sdgs/ods-02.svg +11 -0
- data/app/packs/images/decidim/sdgs/ods-03.svg +11 -0
- data/app/packs/images/decidim/sdgs/ods-04.svg +12 -0
- data/app/packs/images/decidim/sdgs/ods-05.svg +12 -0
- data/app/packs/images/decidim/sdgs/ods-06.svg +20 -0
- data/app/packs/images/decidim/sdgs/ods-07.svg +18 -0
- data/app/packs/images/decidim/sdgs/ods-08.svg +13 -0
- data/app/packs/images/decidim/sdgs/ods-09.svg +25 -0
- data/app/packs/images/decidim/sdgs/ods-10.svg +13 -0
- data/app/packs/images/decidim/sdgs/ods-11.svg +41 -0
- data/app/packs/images/decidim/sdgs/ods-12.svg +11 -0
- data/app/packs/images/decidim/sdgs/ods-13.svg +57 -0
- data/app/packs/images/decidim/sdgs/ods-14.svg +14 -0
- data/app/packs/images/decidim/sdgs/ods-15.svg +11 -0
- data/app/packs/images/decidim/sdgs/ods-16.svg +14 -0
- data/app/packs/images/decidim/sdgs/ods-17.svg +39 -0
- data/app/packs/images/decidim/sdgs/sdg-wheel.png +0 -0
- data/app/packs/images/decidim/sdgs/un_emblem_square.png +0 -0
- data/app/packs/src/decidim/challenges/add_challenge.js +3 -0
- data/app/packs/src/decidim/challenges/admin/challenges_form.js +3 -0
- data/app/packs/src/decidim/sdgs/filter.js +75 -0
- data/app/packs/stylesheets/decidim/challenges/challenges.scss +3 -0
- data/app/packs/stylesheets/decidim/problems/problems.scss +3 -0
- data/app/packs/stylesheets/decidim/sdgs/ods.scss +185 -0
- data/app/packs/stylesheets/decidim/sdgs/sdgs_filter/button.scss +27 -0
- data/app/packs/stylesheets/decidim/sdgs/sdgs_filter/modal.scss +60 -0
- data/app/packs/stylesheets/decidim/shared/_cards.scss +52 -0
- data/app/packs/stylesheets/decidim/shared/base.scss +9 -0
- data/app/packs/stylesheets/decidim/solutions/solutions.scss +3 -0
- data/app/permissions/decidim/challenges/admin/permissions.rb +88 -0
- data/app/permissions/decidim/challenges/permissions.rb +27 -0
- data/app/permissions/decidim/problems/admin/permissions.rb +52 -0
- data/app/permissions/decidim/problems/permissions.rb +16 -0
- data/app/permissions/decidim/solutions/admin/permissions.rb +58 -0
- data/app/permissions/decidim/solutions/permissions.rb +17 -0
- data/app/presenters/decidim/challenges/challenge_presenter.rb +134 -0
- data/app/presenters/decidim/problems/problem_presenter.rb +108 -0
- data/app/presenters/decidim/solutions/solution_presenter.rb +198 -0
- data/app/serializers/decidim/challenges/data_serializer.rb +46 -0
- data/app/serializers/decidim/challenges/survey_serializer.rb +37 -0
- data/app/types/decidim/challenges/challenge_type.rb +28 -0
- data/app/types/decidim/challenges/challenges_type.rb +32 -0
- data/app/types/decidim/problems/problem_type.rb +29 -0
- data/app/types/decidim/problems/problems_type.rb +32 -0
- data/app/types/decidim/solutions/solution_type.rb +25 -0
- data/app/types/decidim/solutions/solutions_type.rb +32 -0
- data/app/views/decidim/challenges/admin/challenges/_form.html.erb +78 -0
- data/app/views/decidim/challenges/admin/challenges/edit.html.erb +24 -0
- data/app/views/decidim/challenges/admin/challenges/index.html.erb +88 -0
- data/app/views/decidim/challenges/admin/challenges/new.html.erb +18 -0
- data/app/views/decidim/challenges/admin/surveys/_form.html.erb +9 -0
- data/app/views/decidim/challenges/admin/surveys/edit.html.erb +39 -0
- data/app/views/decidim/challenges/admin/surveys/index.html.erb +49 -0
- data/app/views/decidim/challenges/admin/surveys/show.html.erb +43 -0
- data/app/views/decidim/challenges/challenges/_challenge.html.erb +1 -0
- data/app/views/decidim/challenges/challenges/_challenges.html.erb +11 -0
- data/app/views/decidim/challenges/challenges/_related_problems.html.erb +14 -0
- data/app/views/decidim/challenges/challenges/_sidebar_data.html.erb +60 -0
- data/app/views/decidim/challenges/challenges/index.html.erb +29 -0
- data/app/views/decidim/challenges/challenges/index.js.erb +5 -0
- data/app/views/decidim/challenges/challenges/show.html.erb +41 -0
- data/app/views/decidim/problems/admin/problems/_form.html.erb +79 -0
- data/app/views/decidim/problems/admin/problems/edit.html.erb +24 -0
- data/app/views/decidim/problems/admin/problems/index.html.erb +93 -0
- data/app/views/decidim/problems/admin/problems/new.html.erb +18 -0
- data/app/views/decidim/problems/problems/_problem.html.erb +1 -0
- data/app/views/decidim/problems/problems/_problems.html.erb +11 -0
- data/app/views/decidim/problems/problems/_sidebar_data.html.erb +70 -0
- data/app/views/decidim/problems/problems/index.html.erb +28 -0
- data/app/views/decidim/problems/problems/index.js.erb +5 -0
- data/app/views/decidim/problems/problems/show.html.erb +38 -0
- data/app/views/decidim/sdgs/sdgs/_objectives.html.erb +320 -0
- data/app/views/decidim/sdgs/sdgs/_ods.html.erb +132 -0
- data/app/views/decidim/sdgs/sdgs/index.html.erb +64 -0
- data/app/views/decidim/sdgs/sdgs_filter/_filter_selector.html.erb +7 -0
- data/app/views/decidim/sdgs/sdgs_filter/_modal.html.erb +35 -0
- data/app/views/decidim/shared/_related_solutions.html.erb +14 -0
- data/app/views/decidim/solutions/admin/solutions/_documents.html.erb +13 -0
- data/app/views/decidim/solutions/admin/solutions/_form.html.erb +70 -0
- data/app/views/decidim/solutions/admin/solutions/_photos.html.erb +13 -0
- data/app/views/decidim/solutions/admin/solutions/edit.html.erb +24 -0
- data/app/views/decidim/solutions/admin/solutions/index.html.erb +97 -0
- data/app/views/decidim/solutions/admin/solutions/new.html.erb +18 -0
- data/app/views/decidim/solutions/admin/solutions/show.html.erb +114 -0
- data/app/views/decidim/solutions/solutions/_form.html.erb +22 -0
- data/app/views/decidim/solutions/solutions/_sidebar_data.html.erb +114 -0
- data/app/views/decidim/solutions/solutions/_solution.html.erb +1 -0
- data/app/views/decidim/solutions/solutions/_solutions.html.erb +13 -0
- data/app/views/decidim/solutions/solutions/index.html.erb +37 -0
- data/app/views/decidim/solutions/solutions/index.js.erb +5 -0
- data/app/views/decidim/solutions/solutions/new.html.erb +20 -0
- data/app/views/decidim/solutions/solutions/show.html.erb +72 -0
- data/config/assets.rb +27 -0
- data/config/i18n-tasks.yml +10 -0
- data/config/locales/ca.yml +1244 -0
- data/config/locales/cs.yml +668 -0
- data/config/locales/en.yml +1245 -0
- data/config/locales/es.yml +1250 -0
- data/config/locales/oc.yml +1229 -0
- data/db/migrate/20201014125000_create_decidim_challenges_challenges.rb +23 -0
- data/db/migrate/20201103155100_create_decidim_problems_problems.rb +25 -0
- data/db/migrate/20201116111200_create_decidim_solutions_solutions.rb +21 -0
- data/db/migrate/20210413083244_create_decidim_challenges_surveys.rb +14 -0
- data/db/migrate/20210413083507_add_survey_attributes_to_challenges.rb +7 -0
- data/db/migrate/20210413083604_add_questionnaire_to_existing_challenges.rb +15 -0
- data/db/migrate/20210413112229_add_challenge_reference_to_solutions.rb +7 -0
- data/db/migrate/20210427091033_remove_require_null_in_problems_for_solutions.rb +7 -0
- data/db/migrate/20220407110503_add_card_image_to_challenges.rb +7 -0
- data/db/migrate/20240919094714_add_public_fields_to_solutions.rb +10 -0
- data/lib/decidim/challenges/admin.rb +10 -0
- data/lib/decidim/challenges/admin_engine.rb +37 -0
- data/lib/decidim/challenges/component.rb +65 -0
- data/lib/decidim/challenges/engine.rb +39 -0
- data/lib/decidim/challenges/test/factories.rb +59 -0
- data/lib/decidim/challenges/version.rb +14 -0
- data/lib/decidim/challenges.rb +13 -0
- data/lib/decidim/problems/admin.rb +10 -0
- data/lib/decidim/problems/admin_engine.rb +25 -0
- data/lib/decidim/problems/component.rb +51 -0
- data/lib/decidim/problems/engine.rb +31 -0
- data/lib/decidim/problems/test/factories.rb +39 -0
- data/lib/decidim/sdgs/admin.rb +10 -0
- data/lib/decidim/sdgs/admin_engine.rb +28 -0
- data/lib/decidim/sdgs/component.rb +44 -0
- data/lib/decidim/sdgs/engine.rb +23 -0
- data/lib/decidim/sdgs/test/factories.rb +13 -0
- data/lib/decidim/solutions/admin.rb +10 -0
- data/lib/decidim/solutions/admin_engine.rb +25 -0
- data/lib/decidim/solutions/component.rb +52 -0
- data/lib/decidim/solutions/engine.rb +31 -0
- data/lib/decidim/solutions/test/factories.rb +28 -0
- metadata +316 -0
@@ -0,0 +1,185 @@
|
|
1
|
+
@import "stylesheets/decidim/sdgs/sdgs_filter/button.scss";
|
2
|
+
@import "stylesheets/decidim/sdgs/sdgs_filter/modal.scss";
|
3
|
+
|
4
|
+
@font-face {
|
5
|
+
font-family: Oswald-Medium;
|
6
|
+
src: url('../fonts/Oswald-Medium.ttf')
|
7
|
+
}
|
8
|
+
|
9
|
+
.sdgs-title {
|
10
|
+
display: flex;
|
11
|
+
justify-content: space-between;
|
12
|
+
|
13
|
+
.text {
|
14
|
+
width: 64%;
|
15
|
+
}
|
16
|
+
}
|
17
|
+
|
18
|
+
#ods-logo-container {
|
19
|
+
width: 250px;
|
20
|
+
height: 250px;
|
21
|
+
padding-top: 25px;
|
22
|
+
background-color: #dedede;
|
23
|
+
margin: auto;
|
24
|
+
|
25
|
+
img {
|
26
|
+
display: block;
|
27
|
+
margin: auto auto 10px;
|
28
|
+
width: 155px;
|
29
|
+
}
|
30
|
+
|
31
|
+
#title {
|
32
|
+
text-align: center;
|
33
|
+
font-weight: bold;
|
34
|
+
font-size: 15pt;
|
35
|
+
line-height: 15px;
|
36
|
+
margin: 0;
|
37
|
+
}
|
38
|
+
|
39
|
+
#subtitle {
|
40
|
+
text-align: center;
|
41
|
+
font-size: 9.5pt;
|
42
|
+
}
|
43
|
+
}
|
44
|
+
|
45
|
+
#ods-container {
|
46
|
+
display: grid;
|
47
|
+
grid-template-columns: repeat(6, 1fr);
|
48
|
+
gap: 16px;
|
49
|
+
}
|
50
|
+
|
51
|
+
.ods {
|
52
|
+
width: 100%;
|
53
|
+
position: relative;
|
54
|
+
margin-bottom: 25px;
|
55
|
+
cursor: pointer;
|
56
|
+
|
57
|
+
&:hover {
|
58
|
+
-webkit-box-shadow: 0px 0px 15px 2px rgba(0, 0, 0, 0.75);
|
59
|
+
-moz-box-shadow: 0px 0px 15px 2px rgba(0, 0, 0, 0.75);
|
60
|
+
box-shadow: 0px 0px 15px 2px rgba(0, 0, 0, 0.75);
|
61
|
+
transition: all 0.5s ease;
|
62
|
+
}
|
63
|
+
|
64
|
+
&.final {
|
65
|
+
padding: 10px;
|
66
|
+
height: 175px;
|
67
|
+
border: 1px solid #c6c6c6;
|
68
|
+
}
|
69
|
+
|
70
|
+
.text-container {
|
71
|
+
position: absolute;
|
72
|
+
top: 4.2px;
|
73
|
+
left: 76px;
|
74
|
+
width: 120px;
|
75
|
+
|
76
|
+
&.stretch {
|
77
|
+
left: 55px;
|
78
|
+
width: 105px;
|
79
|
+
}
|
80
|
+
}
|
81
|
+
|
82
|
+
p {
|
83
|
+
margin: 0;
|
84
|
+
font-family: Oswald-Medium, 'Open Sans Semibold', sans-serif;
|
85
|
+
color: white;
|
86
|
+
font-size: 9pt;
|
87
|
+
text-size-adjust: 100%;
|
88
|
+
}
|
89
|
+
|
90
|
+
object {
|
91
|
+
width: 100%;
|
92
|
+
}
|
93
|
+
}
|
94
|
+
|
95
|
+
#objective-container {
|
96
|
+
.hide {
|
97
|
+
display: none;
|
98
|
+
}
|
99
|
+
}
|
100
|
+
|
101
|
+
.card__highlight {
|
102
|
+
.text-container {
|
103
|
+
position: absolute;
|
104
|
+
top: 0;
|
105
|
+
left: 23px;
|
106
|
+
width: 120px;
|
107
|
+
}
|
108
|
+
}
|
109
|
+
|
110
|
+
.objectives_container {
|
111
|
+
background-color: #c22244;
|
112
|
+
padding-left: 30px;
|
113
|
+
padding-top: 15px;
|
114
|
+
padding-bottom: 15px;
|
115
|
+
font-size: larger;
|
116
|
+
|
117
|
+
p {
|
118
|
+
color: white;
|
119
|
+
margin-bottom: 0;
|
120
|
+
}
|
121
|
+
|
122
|
+
.objectives_subtitle{
|
123
|
+
font-weight: bold;
|
124
|
+
}
|
125
|
+
|
126
|
+
}
|
127
|
+
|
128
|
+
.objectives_text{
|
129
|
+
padding-left: 30px;
|
130
|
+
padding-right: 30px;
|
131
|
+
|
132
|
+
p {
|
133
|
+
margin-top: 10px;
|
134
|
+
margin-bottom: 0
|
135
|
+
}
|
136
|
+
|
137
|
+
}
|
138
|
+
|
139
|
+
@media (max-width: 1215px) {
|
140
|
+
.ods p {
|
141
|
+
font-size: 8pt;
|
142
|
+
}
|
143
|
+
}
|
144
|
+
|
145
|
+
@media (max-width: 1115px) {
|
146
|
+
.ods p {
|
147
|
+
font-size: 7pt;
|
148
|
+
}
|
149
|
+
}
|
150
|
+
|
151
|
+
@media (max-width: 1023px) {
|
152
|
+
.ods p {
|
153
|
+
font-size: 9pt;
|
154
|
+
}
|
155
|
+
}
|
156
|
+
|
157
|
+
@media (max-width: 740px) {
|
158
|
+
.ods p {
|
159
|
+
font-size: 8pt;
|
160
|
+
}
|
161
|
+
}
|
162
|
+
|
163
|
+
@media (max-width: 690px) {
|
164
|
+
.ods p {
|
165
|
+
font-size: 7pt;
|
166
|
+
}
|
167
|
+
}
|
168
|
+
|
169
|
+
@media (max-width: 639px) {
|
170
|
+
.ods p {
|
171
|
+
font-size: 9pt;
|
172
|
+
}
|
173
|
+
}
|
174
|
+
|
175
|
+
@media (max-width: 520px) {
|
176
|
+
.ods p {
|
177
|
+
font-size: 8pt;
|
178
|
+
}
|
179
|
+
}
|
180
|
+
|
181
|
+
@media (max-width: 490px) {
|
182
|
+
.ods p {
|
183
|
+
font-size: 7pt;
|
184
|
+
}
|
185
|
+
}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
div.filters__section.sdgs-filter {
|
2
|
+
button {
|
3
|
+
height: 2.5rem;
|
4
|
+
background: white;
|
5
|
+
cursor: pointer;
|
6
|
+
display: block;
|
7
|
+
width: 100%;
|
8
|
+
padding: .4rem .7rem;
|
9
|
+
outline: 0;
|
10
|
+
border: 1px solid #e8e8e8;
|
11
|
+
border-radius: 4px;
|
12
|
+
box-shadow: inset 0 1px 2px rgba(26, 24, 29, 0.1);
|
13
|
+
-webkit-box-shadow: inset 0 1px 2px rgba(26, 24, 29, 0.1);
|
14
|
+
color: #1a181d;
|
15
|
+
}
|
16
|
+
button::after {
|
17
|
+
display: block;
|
18
|
+
width: 0;
|
19
|
+
height: 0;
|
20
|
+
border: inset 5px;
|
21
|
+
content: '';
|
22
|
+
border-right-width: 0;
|
23
|
+
border-color: transparent transparent transparent #1a181d;
|
24
|
+
float: right;
|
25
|
+
margin-top: 0.25rem;
|
26
|
+
}
|
27
|
+
}
|
@@ -0,0 +1,60 @@
|
|
1
|
+
#sdgs-modal {
|
2
|
+
display: none;
|
3
|
+
position: fixed;
|
4
|
+
z-index: 99;
|
5
|
+
left: 0;
|
6
|
+
top: 0;
|
7
|
+
width: 100%;
|
8
|
+
height: 100%;
|
9
|
+
overflow: auto;
|
10
|
+
background-color: rgb(0,0,0);
|
11
|
+
background-color: rgba(0,0,0,0.4);
|
12
|
+
|
13
|
+
.reveal__header {
|
14
|
+
background-color: #fefefe;
|
15
|
+
display: flex;
|
16
|
+
justify-content: space-between;
|
17
|
+
padding-bottom: 8px;
|
18
|
+
|
19
|
+
.close-button {
|
20
|
+
font-size: 24px;
|
21
|
+
line-height: 30px;
|
22
|
+
}
|
23
|
+
}
|
24
|
+
|
25
|
+
.modal-content {
|
26
|
+
background-color: #fefefe;
|
27
|
+
margin: 2% auto;
|
28
|
+
padding: 20px;
|
29
|
+
width: 43%;
|
30
|
+
}
|
31
|
+
|
32
|
+
#sdg-container {
|
33
|
+
background-color: #fefefe;
|
34
|
+
display: grid;
|
35
|
+
grid-template-columns: repeat(5, 1fr);
|
36
|
+
gap: 16px;
|
37
|
+
|
38
|
+
.sdg-cell {
|
39
|
+
cursor: pointer;
|
40
|
+
text-align: center;
|
41
|
+
border: 3px solid white;
|
42
|
+
|
43
|
+
img {
|
44
|
+
width: 100%;
|
45
|
+
}
|
46
|
+
|
47
|
+
div.text{
|
48
|
+
width: 100%;
|
49
|
+
height: 5em;
|
50
|
+
background-color: lightgrey;
|
51
|
+
font-size: 12px;
|
52
|
+
}
|
53
|
+
}
|
54
|
+
}
|
55
|
+
|
56
|
+
.buttons {
|
57
|
+
display: flex;
|
58
|
+
justify-content: center;
|
59
|
+
}
|
60
|
+
}
|
@@ -0,0 +1,52 @@
|
|
1
|
+
.card__list {
|
2
|
+
.card__list-content {
|
3
|
+
width: 100%;
|
4
|
+
}
|
5
|
+
|
6
|
+
.card__list-image {
|
7
|
+
margin-right: 14px;
|
8
|
+
}
|
9
|
+
|
10
|
+
.card__list-text {
|
11
|
+
display: flex;
|
12
|
+
gap: 20px;
|
13
|
+
|
14
|
+
p {
|
15
|
+
width: 650px;
|
16
|
+
min-width: 650px;
|
17
|
+
}
|
18
|
+
|
19
|
+
.card__sdg {
|
20
|
+
margin-right: 20px;
|
21
|
+
}
|
22
|
+
|
23
|
+
.card_text--sdg--image {
|
24
|
+
width: 48px;
|
25
|
+
|
26
|
+
img {
|
27
|
+
vertical-align: bottom;
|
28
|
+
}
|
29
|
+
}
|
30
|
+
|
31
|
+
.card_text--sdg--text {
|
32
|
+
font-size: 12px;
|
33
|
+
}
|
34
|
+
}
|
35
|
+
|
36
|
+
.card__list-metadata {
|
37
|
+
.label.proposal {
|
38
|
+
background-color: rgb(254, 174, 2);
|
39
|
+
color: rgb(86, 59, 1);
|
40
|
+
}
|
41
|
+
|
42
|
+
.label.executing {
|
43
|
+
background-color: rgb(0, 163, 144);
|
44
|
+
color: rgb(0, 49, 43);
|
45
|
+
}
|
46
|
+
|
47
|
+
.label.finished {
|
48
|
+
background-color: rgb(0, 188, 255);
|
49
|
+
color: rgb(0, 49, 43);
|
50
|
+
}
|
51
|
+
}
|
52
|
+
}
|
@@ -0,0 +1,88 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Challenges
|
5
|
+
module Admin
|
6
|
+
class Permissions < Decidim::DefaultPermissions
|
7
|
+
def permissions
|
8
|
+
# The public part needs to be implemented yet
|
9
|
+
return permission_action if permission_action.scope != :admin
|
10
|
+
|
11
|
+
allow! if permission_action.subject == :challenges && read_permission_action?
|
12
|
+
|
13
|
+
allow! if permission_action.subject == :challenge && create_permission_action?
|
14
|
+
|
15
|
+
allow! if permission_action.subject == :challenge && edit_permission_action?
|
16
|
+
|
17
|
+
allow! if permission_action.subject == :challenge && destroy_permission_action?
|
18
|
+
|
19
|
+
allow! if permission_action.subject == :challenge && publish_permission_action?
|
20
|
+
|
21
|
+
allow! if permission_action.subject == :challenge && export_permission_action?
|
22
|
+
|
23
|
+
allow! if permission_action.subject == :questionnaire && update_permission_action?
|
24
|
+
|
25
|
+
allow! if permission_action.subject == :questionnaire_answers && index_permission_action?
|
26
|
+
|
27
|
+
allow! if permission_action.subject == :questionnaire_answers && show_permission_action?
|
28
|
+
|
29
|
+
allow! if permission_action.subject == :questionnaire && export_answers_permission_action?
|
30
|
+
|
31
|
+
allow! if permission_action.subject == :questionnaire_answers && export_response_permission_action?
|
32
|
+
|
33
|
+
permission_action
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def read_permission_action?
|
39
|
+
permission_action.action == :read
|
40
|
+
end
|
41
|
+
|
42
|
+
def create_permission_action?
|
43
|
+
permission_action.action == :create
|
44
|
+
end
|
45
|
+
|
46
|
+
def edit_permission_action?
|
47
|
+
permission_action.action == :edit
|
48
|
+
end
|
49
|
+
|
50
|
+
def update_permission_action?
|
51
|
+
permission_action.action == :update
|
52
|
+
end
|
53
|
+
|
54
|
+
def destroy_permission_action?
|
55
|
+
permission_action.action == :destroy
|
56
|
+
end
|
57
|
+
|
58
|
+
def publish_permission_action?
|
59
|
+
permission_action.action == :publish
|
60
|
+
end
|
61
|
+
|
62
|
+
def export_permission_action?
|
63
|
+
permission_action.action == :export_surveys
|
64
|
+
end
|
65
|
+
|
66
|
+
def export_response_permission_action?
|
67
|
+
permission_action.action == :export_response
|
68
|
+
end
|
69
|
+
|
70
|
+
def export_answers_permission_action?
|
71
|
+
permission_action.action == :export_answers
|
72
|
+
end
|
73
|
+
|
74
|
+
def index_permission_action?
|
75
|
+
permission_action.action == :index
|
76
|
+
end
|
77
|
+
|
78
|
+
def show_permission_action?
|
79
|
+
permission_action.action == :show
|
80
|
+
end
|
81
|
+
|
82
|
+
def challenge
|
83
|
+
@challenge ||= context.fetch(:challenge, nil)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Challenges
|
5
|
+
class Permissions < Decidim::DefaultPermissions
|
6
|
+
def permissions
|
7
|
+
return permission_action unless user
|
8
|
+
# Delegate the admin permission checks to the admin permissions class
|
9
|
+
return Decidim::Challenges::Admin::Permissions.new(user, permission_action, context).permissions if permission_action.scope == :admin
|
10
|
+
|
11
|
+
allow! if permission_action.subject == :challenge && answer_permission_action?
|
12
|
+
|
13
|
+
permission_action
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def answer_permission_action?
|
19
|
+
permission_action.action == :answer
|
20
|
+
end
|
21
|
+
|
22
|
+
def challenge
|
23
|
+
@challenge ||= context.fetch(:challenge, nil)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Problems
|
5
|
+
module Admin
|
6
|
+
class Permissions < Decidim::DefaultPermissions
|
7
|
+
def permissions
|
8
|
+
# The public part needs to be implemented yet
|
9
|
+
return permission_action if permission_action.scope != :admin
|
10
|
+
|
11
|
+
allow! if permission_action.subject == :problems && read_permission_action?
|
12
|
+
|
13
|
+
allow! if permission_action.subject == :problem && create_permission_action?
|
14
|
+
|
15
|
+
allow! if permission_action.subject == :problem && edit_permission_action?
|
16
|
+
|
17
|
+
allow! if permission_action.subject == :problem && destroy_permission_action?
|
18
|
+
|
19
|
+
allow! if permission_action.subject == :problem && publish_permission_action?
|
20
|
+
|
21
|
+
permission_action
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def read_permission_action?
|
27
|
+
permission_action.action == :read
|
28
|
+
end
|
29
|
+
|
30
|
+
def create_permission_action?
|
31
|
+
permission_action.action == :create
|
32
|
+
end
|
33
|
+
|
34
|
+
def edit_permission_action?
|
35
|
+
permission_action.action == :edit
|
36
|
+
end
|
37
|
+
|
38
|
+
def destroy_permission_action?
|
39
|
+
permission_action.action == :destroy
|
40
|
+
end
|
41
|
+
|
42
|
+
def publish_permission_action?
|
43
|
+
permission_action.action == :publish
|
44
|
+
end
|
45
|
+
|
46
|
+
def problem
|
47
|
+
@problem ||= context.fetch(:problem, nil)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Problems
|
5
|
+
class Permissions < Decidim::DefaultPermissions
|
6
|
+
def permissions
|
7
|
+
return permission_action unless user
|
8
|
+
# Delegate the admin permission checks to the admin permissions class
|
9
|
+
return Decidim::Problems::Admin::Permissions.new(user, permission_action, context).permissions if permission_action.scope == :admin
|
10
|
+
|
11
|
+
# nothing to check in the front
|
12
|
+
permission_action
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Solutions
|
5
|
+
module Admin
|
6
|
+
class Permissions < Decidim::DefaultPermissions
|
7
|
+
def permissions
|
8
|
+
# The public part needs to be implemented yet
|
9
|
+
return permission_action if permission_action.scope != :admin
|
10
|
+
|
11
|
+
allow! if permission_action.subject == :solutions && read_permission_action?
|
12
|
+
|
13
|
+
allow! if permission_action.subject == :solution && create_permission_action?
|
14
|
+
|
15
|
+
allow! if permission_action.subject == :solution && edit_permission_action?
|
16
|
+
|
17
|
+
allow! if permission_action.subject == :solution && destroy_permission_action?
|
18
|
+
|
19
|
+
allow! if permission_action.subject == :solution && publish_permission_action?
|
20
|
+
|
21
|
+
allow! if permission_action.subject == :solution && show_permission_action?
|
22
|
+
|
23
|
+
permission_action
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def read_permission_action?
|
29
|
+
permission_action.action == :read
|
30
|
+
end
|
31
|
+
|
32
|
+
def create_permission_action?
|
33
|
+
permission_action.action == :create
|
34
|
+
end
|
35
|
+
|
36
|
+
def edit_permission_action?
|
37
|
+
permission_action.action == :edit
|
38
|
+
end
|
39
|
+
|
40
|
+
def destroy_permission_action?
|
41
|
+
permission_action.action == :destroy
|
42
|
+
end
|
43
|
+
|
44
|
+
def publish_permission_action?
|
45
|
+
permission_action.action == :publish
|
46
|
+
end
|
47
|
+
|
48
|
+
def show_permission_action?
|
49
|
+
permission_action.action == :show
|
50
|
+
end
|
51
|
+
|
52
|
+
def solution
|
53
|
+
@solution ||= context.fetch(:solution, nil)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Solutions
|
5
|
+
class Permissions < Decidim::DefaultPermissions
|
6
|
+
def permissions
|
7
|
+
return permission_action unless user
|
8
|
+
# Delegate the admin permission checks to the admin permissions class
|
9
|
+
return Decidim::Solutions::Admin::Permissions.new(user, permission_action, context).permissions if permission_action.scope == :admin
|
10
|
+
|
11
|
+
toggle_allow(authorized?(:create) && component_settings&.creation_enabled?) if permission_action.action == :create
|
12
|
+
|
13
|
+
permission_action
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|