decidim-action_delegator 0.6.0 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +97 -36
- data/app/commands/{decidim → concerns/decidim}/action_delegator/consultations/vote_question_override.rb +9 -1
- data/app/commands/decidim/action_delegator/admin/create_delegation.rb +5 -1
- data/app/commands/decidim/action_delegator/admin/create_participant.rb +41 -0
- data/app/commands/decidim/action_delegator/admin/create_ponderation.rb +38 -0
- data/app/commands/decidim/action_delegator/admin/create_setting.rb +49 -0
- data/app/commands/decidim/action_delegator/admin/fix_resource_permissions.rb +46 -0
- data/app/commands/decidim/action_delegator/admin/update_participant.rb +42 -0
- data/app/commands/decidim/action_delegator/admin/update_ponderation.rb +41 -0
- data/app/commands/decidim/action_delegator/admin/update_setting.rb +66 -0
- data/app/controllers/concerns/decidim/action_delegator/consultations/consultations_controller_override.rb +16 -0
- data/app/controllers/{decidim → concerns/decidim}/action_delegator/consultations/question_multiple_votes_controller_override.rb +2 -1
- data/app/controllers/{decidim → concerns/decidim}/action_delegator/consultations/question_votes_controller_override.rb +2 -0
- data/app/controllers/concerns/decidim/action_delegator/consultations/questions_controller_override.rb +16 -0
- data/app/controllers/concerns/decidim/action_delegator/needs_consultation_styles.rb +24 -0
- data/app/controllers/decidim/action_delegator/admin/consultations_controller.rb +22 -8
- data/app/controllers/decidim/action_delegator/admin/delegations_controller.rb +9 -9
- data/app/controllers/decidim/action_delegator/admin/invite_participants_controller.rb +84 -0
- data/app/controllers/decidim/action_delegator/admin/manage_delegations_controller.rb +48 -0
- data/app/controllers/decidim/action_delegator/admin/manage_participants_controller.rb +59 -0
- data/app/controllers/decidim/action_delegator/admin/participants_controller.rb +102 -0
- data/app/controllers/decidim/action_delegator/admin/permissions_controller.rb +40 -0
- data/app/controllers/decidim/action_delegator/admin/ponderations_controller.rb +101 -0
- data/app/controllers/decidim/action_delegator/admin/settings_controller.rb +51 -12
- data/app/controllers/decidim/action_delegator/verifications/delegations_verifier/authorizations_controller.rb +108 -0
- data/app/forms/decidim/action_delegator/admin/delegation_form.rb +23 -4
- data/app/forms/decidim/action_delegator/admin/invitation_participant_form.rb +10 -0
- data/app/forms/decidim/action_delegator/admin/participant_form.rb +44 -0
- data/app/forms/decidim/action_delegator/admin/ponderation_form.rb +28 -0
- data/app/forms/decidim/action_delegator/admin/setting_form.rb +28 -0
- data/app/forms/decidim/action_delegator/verifications/delegations_verifier_form.rb +131 -0
- data/app/helpers/decidim/action_delegator/admin/delegation_helper.rb +40 -3
- data/app/helpers/decidim/action_delegator/delegation_helper.rb +13 -0
- data/app/jobs/decidim/action_delegator/admin/import_csv_job.rb +27 -0
- data/app/jobs/decidim/action_delegator/admin/invite_participants_job.rb +39 -0
- data/app/jobs/decidim/action_delegator/sync_participants_job.rb +27 -0
- data/app/mailers/decidim/action_delegator/import_mailer.rb +31 -0
- data/app/models/decidim/action_delegator/delegation.rb +11 -0
- data/app/models/decidim/action_delegator/participant.rb +106 -0
- data/app/models/decidim/action_delegator/ponderation.rb +28 -0
- data/app/models/decidim/action_delegator/setting.rb +50 -1
- data/app/overrides/decidim/consultations/consultations/_question/add_delegation_link.html.erb.deface +3 -0
- data/app/overrides/decidim/consultations/consultations/_regular_questions/remove_highlighted_scopes.html.erb.deface +4 -0
- data/app/overrides/decidim/consultations/question_multiple_votes/_form/add_delegation_notice.html.erb.deface +8 -0
- data/app/overrides/decidim/consultations/questions/_vote_button/add_delegations_link.html.erb.deface +3 -0
- data/app/overrides/decidim/consultations/questions/_vote_button/add_modal.html.erb.deface +3 -0
- data/app/overrides/decidim/consultations/questions/_vote_button/replace_delegation_to_multivote_link.html.erb.deface +8 -0
- data/app/overrides/decidim/consultations/questions/_vote_modal/add_delegation_callout.html.erb.deface +3 -0
- data/app/overrides/decidim/consultations/questions/_vote_modal_confirm/add_delegation_callout.html.erb.deface +3 -0
- data/app/overrides/decidim/consultations/questions/_vote_modal_confirm/add_hidden_field.html.erb.deface +3 -0
- data/app/overrides/layouts/decidim/admin/remove_deprecation.rb +10 -0
- data/app/packs/entrypoints/decidim_action_delegator_questions.js +2 -0
- data/app/packs/src/decidim/action_delegator/questions.js +27 -0
- data/app/packs/stylesheets/decidim/action_delegator/questions.scss +4 -3
- data/app/permissions/concerns/decidim/action_delegator/consultations/permissions_override.rb +35 -0
- data/app/permissions/decidim/action_delegator/permissions.rb +6 -2
- data/app/queries/decidim/action_delegator/delegated_votes_versions.rb +5 -11
- data/app/queries/decidim/action_delegator/organization_settings.rb +6 -0
- data/app/queries/decidim/action_delegator/responses_by_membership.rb +3 -20
- data/app/queries/decidim/action_delegator/sum_of_membership_weight.rb +1 -5
- data/app/queries/decidim/action_delegator/sum_of_weights.rb +1 -1
- data/app/queries/decidim/action_delegator/type_and_weight.rb +1 -1
- data/app/queries/decidim/action_delegator/voted_with_ponderations.rb +30 -0
- data/app/services/decidim/action_delegator/csv_importer.rb +86 -0
- data/app/services/decidim/action_delegator/delegations_csv_importer.rb +54 -0
- data/app/services/decidim/action_delegator/participants_csv_importer.rb +131 -0
- data/app/views/decidim/action_delegator/admin/consultations/results.html.erb +3 -3
- data/app/views/decidim/action_delegator/admin/{results/sum_of_weights/index.html.erb → consultations/weighted_results.html.erb} +3 -3
- data/app/views/decidim/action_delegator/admin/delegations/index.html.erb +8 -3
- data/app/views/decidim/action_delegator/admin/delegations/new.html.erb +15 -12
- data/app/views/decidim/action_delegator/admin/manage_delegations/new.html.erb +25 -0
- data/app/views/decidim/action_delegator/admin/manage_participants/new.html.erb +33 -0
- data/app/views/decidim/action_delegator/admin/participants/_form.html.erb +9 -0
- data/app/views/decidim/action_delegator/admin/participants/_missing_registered_check.html.erb +17 -0
- data/app/views/decidim/action_delegator/admin/participants/edit.html.erb +21 -0
- data/app/views/decidim/action_delegator/admin/participants/index.html.erb +72 -0
- data/app/views/decidim/action_delegator/admin/participants/new.html.erb +21 -0
- data/app/views/decidim/action_delegator/admin/ponderations/_form.html.erb +8 -0
- data/app/views/decidim/action_delegator/admin/ponderations/edit.html.erb +21 -0
- data/app/views/decidim/action_delegator/admin/ponderations/index.html.erb +40 -0
- data/app/views/decidim/action_delegator/admin/ponderations/new.html.erb +21 -0
- data/app/views/decidim/action_delegator/admin/settings/_check_verifier.html.erb +5 -0
- data/app/views/decidim/action_delegator/admin/settings/_form.html.erb +16 -0
- data/app/views/decidim/action_delegator/admin/settings/_participants_email_check.html.erb +7 -0
- data/app/views/decidim/action_delegator/admin/settings/_participants_sync_check.html.erb +11 -0
- data/app/views/decidim/action_delegator/admin/settings/_setting_checks.html.erb +81 -0
- data/app/views/decidim/action_delegator/admin/settings/edit.html.erb +18 -0
- data/app/views/decidim/action_delegator/admin/settings/index.html.erb +25 -5
- data/app/views/decidim/action_delegator/admin/settings/new.html.erb +14 -26
- data/app/views/decidim/action_delegator/consultations/_link_to_question.html.erb +11 -0
- data/app/views/decidim/action_delegator/consultations/questions/_delegations_modal.html.erb +36 -0
- data/app/views/decidim/action_delegator/consultations/questions/_link_to_delegations.html.erb +11 -0
- data/app/views/decidim/action_delegator/consultations/questions/_vote_delegated_active.html.erb +32 -0
- data/app/views/decidim/action_delegator/consultations/questions/_vote_delegated_finished.html.erb +9 -0
- data/app/views/decidim/action_delegator/consultations/questions/_vote_delegated_upcoming.html.erb +8 -0
- data/app/views/decidim/action_delegator/import_mailer/import.html.erb +11 -0
- data/app/views/decidim/{verifications/sms/authorizations/new.html.erb → action_delegator/verifications/delegations_verifier/authorizations/edit.html.erb} +12 -7
- data/app/views/decidim/action_delegator/verifications/delegations_verifier/authorizations/new.html.erb +49 -0
- data/config/assets.rb +1 -3
- data/config/i18n-tasks.yml +8 -0
- data/config/locales/ca.yml +287 -23
- data/config/locales/cs.yml +286 -18
- data/config/locales/en.yml +331 -24
- data/config/locales/es.yml +288 -24
- data/db/migrate/20230323101247_create_decidim_action_delegator_ponderations.rb +12 -0
- data/db/migrate/20230323210000_create_decidim_action_delegator_participants.rb +13 -0
- data/db/migrate/20230323223752_add_decidim_action_delegator_verification_method.rb +7 -0
- data/db/migrate/20230412105710_add_decidim_action_delegator_participants_user_id.rb +7 -0
- data/lib/decidim/action_delegator/admin_engine.rb +68 -6
- data/lib/decidim/action_delegator/engine.rb +25 -15
- data/lib/decidim/action_delegator/test/factories.rb +22 -7
- data/lib/decidim/action_delegator/verifications/delegations_authorizer.rb +85 -0
- data/lib/decidim/action_delegator/verifications/delegations_verifier/engine.rb +25 -0
- data/lib/decidim/action_delegator/verifications/delegations_verifier.rb +12 -0
- data/lib/decidim/action_delegator/version.rb +3 -3
- data/lib/decidim/action_delegator.rb +41 -0
- data/lib/tasks/import_direct_verification.rake +30 -0
- data/package.json +57 -0
- metadata +115 -50
- data/app/controllers/decidim/action_delegator/admin/results/sum_of_weights_controller.rb +0 -37
- data/app/controllers/decidim/action_delegator/verifications/sms/authorizations_controller_override.rb +0 -38
- data/app/packs/entrypoints/decidim_action_delegator_admin_action_delegator_js.js +0 -1
- data/app/packs/entrypoints/decidim_action_delegator_questions_js.js +0 -1
- data/app/packs/src/decidim/action_delegator/admin/action_delegator.js.es6 +0 -3
- data/app/packs/src/decidim/action_delegator/questions.js.es6 +0 -26
- data/app/permissions/decidim/action_delegator/consultations_permissions_extension.rb +0 -27
- data/app/presenters/decidim/action_delegator/admin/consultation_presenter.rb +0 -15
- data/app/presenters/decidim/action_delegator/admin/setting_presenter.rb +0 -13
- data/app/queries/decidim/action_delegator/decrypted_authorizations.rb +0 -112
- data/app/queries/decidim/action_delegator/json_build_object_query.rb +0 -45
- data/app/queries/decidim/action_delegator/voted_with_direct_verification.rb +0 -53
- data/app/views/decidim/action_delegator/_delegations_modal.html.erb +0 -93
- data/app/views/decidim/action_delegator/_link_to_delegations.html.erb +0 -5
- data/app/views/decidim/action_delegator/_link_to_question.html.erb +0 -5
- data/app/views/decidim/consultations/consultations/_question.html.erb +0 -41
- data/app/views/decidim/consultations/consultations/show.html.erb +0 -14
- data/app/views/decidim/consultations/question_multiple_votes/_form.html.erb +0 -25
- data/app/views/decidim/consultations/questions/_vote_button.html.erb +0 -106
- data/app/views/decidim/consultations/questions/_vote_modal.html.erb +0 -30
- data/app/views/decidim/consultations/questions/_vote_modal_confirm.html.erb +0 -38
- data/app/views/layouts/decidim/action_delegator/admin/_users_sidebar.html.erb +0 -56
- data/app/views/layouts/decidim/action_delegator/admin/delegations.html.erb +0 -13
- data/app/views/layouts/decidim/admin/consultation.html.erb +0 -56
- data/app/views/layouts/decidim/admin/question.html.erb +0 -98
- data/app/views/layouts/decidim/admin/users.html.erb +0 -7
- data/config/initializers/doorkeeper.rb +0 -492
- data/lib/json_key.rb +0 -10
- /data/app/commands/{decidim → concerns/decidim}/action_delegator/consultations/multiple_vote_question_override.rb +0 -0
- /data/app/controllers/decidim/action_delegator/admin/exports/{sum_of_weights_controller.rb → _sum_of_weights_controller.rb} +0 -0
- /data/app/forms/{decidim → concerns/decidim}/action_delegator/consultations/vote_form_override.rb +0 -0
- /data/app/models/{decidim → concerns/decidim}/action_delegator/consultations/vote_override.rb +0 -0
- /data/app/views/decidim/action_delegator/{_callout.html.erb → consultations/questions/_callout.html.erb} +0 -0
data/config/locales/es.yml
CHANGED
@@ -1,79 +1,306 @@
|
|
1
|
+
---
|
1
2
|
es:
|
3
|
+
activemodel:
|
4
|
+
attributes:
|
5
|
+
delegations_verifier:
|
6
|
+
email: Correo electrónico
|
7
|
+
phone: Número de teléfono móvil
|
8
|
+
participant:
|
9
|
+
decidim_action_delegator_ponderation_id: Ponderación
|
10
|
+
email: Correo electrónico
|
11
|
+
phone: Teléfono
|
12
|
+
ponderation:
|
13
|
+
name: Tipo de miembro
|
14
|
+
name_help: Tipo de miembro
|
15
|
+
setting:
|
16
|
+
decidim_consultation_id: Consulta
|
17
|
+
max_grants: Número máximo de delegaciones de voto que una participante puede recibir
|
18
|
+
phone_freezed: Utilice el número de teléfono del censo. No permita que los participantes lo editen.
|
19
|
+
verify_with_sms: Verificar con SMS
|
20
|
+
errors:
|
21
|
+
models:
|
22
|
+
delegations_verifier:
|
23
|
+
attributes:
|
24
|
+
email:
|
25
|
+
email_not_found: Lo sentimos, este correo electrónico no está en el censo. Por favor, póngase en contacto con nosotros si cree que esto es un error.
|
26
|
+
phone:
|
27
|
+
phone_not_found: Lo sentimos, este correo electrónico no está en el censo. Por favor, póngase en contacto con nosotros si cree que esto es un error.
|
2
28
|
decidim:
|
3
29
|
action_delegator:
|
4
30
|
admin:
|
5
31
|
consultations:
|
6
32
|
results:
|
7
33
|
title: Resultados por respuesta, tipo de membresía y peso
|
34
|
+
weighted_results:
|
35
|
+
title: Resultados por respuesta sumando pesos por membresía
|
8
36
|
delegations:
|
9
37
|
create:
|
10
38
|
error: Se ha producido un error al crear la delegación
|
11
39
|
error_granter_unique: ya ha delegado su voto
|
12
40
|
error_max_grants: You reached the limit of allowed delegations
|
13
41
|
success: Delegación creada correctamente
|
42
|
+
csv_imports:
|
43
|
+
invalid: Se ha producido un error al importar las delegaciones
|
44
|
+
success: Delegaciones importadas correctamente
|
14
45
|
destroy:
|
15
46
|
error: Se ha producido un error al eliminar esta delegación
|
16
47
|
success: Delegación eliminada correctamente
|
48
|
+
grantee_missing: El receptor no está registrado en la plataforma
|
49
|
+
granter_missing: El otorgante no está registrado en la plataforma
|
17
50
|
index:
|
18
51
|
actions:
|
52
|
+
csv_import: Importar un fichero CSV
|
19
53
|
new_delegation: Nueva participante
|
20
54
|
consultation: Consulta
|
21
55
|
created_at: Creado el
|
22
56
|
delete: Eliminar
|
23
|
-
|
24
|
-
|
57
|
+
description_html: Estas son las delegaciones actuales para esta consulta
|
58
|
+
grantee: Receptora (a)
|
59
|
+
grantee_voted: '¿Se ha utilizado la delegación?'
|
60
|
+
granter: Otorgante
|
61
|
+
granter_voted: '¿Ha votado la otorgante?'
|
25
62
|
title: Participantes
|
26
63
|
new:
|
27
|
-
form:
|
28
|
-
title: Información general
|
29
64
|
grantee: Beneficiario
|
30
|
-
granter:
|
65
|
+
granter: Otorgante
|
31
66
|
save: Crear
|
32
67
|
select_member: Seleccionar miembro
|
33
68
|
title: Nueva delegación
|
69
|
+
invite_participants:
|
70
|
+
invite_all_users:
|
71
|
+
error: Hubo un error al invitar a las participantes
|
72
|
+
success: Participantes invitadas correctamente
|
73
|
+
invite_user:
|
74
|
+
error: Hubo un error al invitar al participante
|
75
|
+
success: Participante invitada correctamente
|
76
|
+
permissions:
|
77
|
+
not_allowed: No tienes permisos para realizar esta acción
|
78
|
+
resend_invitation:
|
79
|
+
error: Se ha producido un error al reenviar la invitación
|
80
|
+
success: Invitación reenviada con éxito
|
81
|
+
manage_delegations:
|
82
|
+
create:
|
83
|
+
error: Se ha producido un error en importar las participantes
|
84
|
+
success: El proceso de importación ha comenzado, por favor espere unos minutos y actualice la página para ver la lista de participantes. Los resultados de importación se enviarán por correo electrónico.
|
85
|
+
new:
|
86
|
+
import: Importar
|
87
|
+
required_fields: 'Campos requeridos: correo del otorgante, correo del receptor'
|
88
|
+
title: Importar delegaciones
|
89
|
+
title_example: 'Ejemplo:'
|
90
|
+
upload_instructions: Debe ser un archivo en formato CSV con un encabezado.
|
91
|
+
manage_participants:
|
92
|
+
create:
|
93
|
+
error: Se ha producido un error en importar las participantes
|
94
|
+
success: El proceso de importación ha comenzado, por favor espere unos minutos y actualice la página para ver la lista de participantes. Los resultados de importación se enviarán por correo electrónico.
|
95
|
+
new:
|
96
|
+
authorization_method:
|
97
|
+
both: correo electrónico y número de teléfono
|
98
|
+
email: correo electrónico
|
99
|
+
phone: número de teléfono
|
100
|
+
describe: 'Tenga en cuenta que también es posible importar pesos usando el nombre en la tabla de ponderación en lugar del número de peso, por ejemplo:'
|
101
|
+
import: Importar
|
102
|
+
required_fields: 'Campos requeridos: %{authorization_method}'
|
103
|
+
title: Importar participantes
|
104
|
+
title_example: 'Ejemplo:'
|
105
|
+
upload_instructions: Debe ser un archivo en formato CSV con un encabezado.
|
34
106
|
menu:
|
35
107
|
consultations_submenu:
|
36
108
|
by_answer: Por respuesta
|
37
109
|
by_type_and_weight: Por tipo y peso
|
38
110
|
sum_of_weights: Por suma de pesos
|
39
|
-
delegations:
|
111
|
+
delegations: Gobernanza Societaria
|
40
112
|
participants: Participantes
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
113
|
+
participants:
|
114
|
+
create:
|
115
|
+
error: Se ha producido un error en importar las participantes
|
116
|
+
success: Participantes creados con éxito
|
117
|
+
destroy:
|
118
|
+
error: Se ha producido un error al eliminar este participante
|
119
|
+
success: Participante correctamente eliminado
|
120
|
+
edit:
|
121
|
+
save: Guardar
|
122
|
+
title: Editar participante
|
123
|
+
index:
|
124
|
+
actions:
|
125
|
+
csv_import: Importar CSV
|
126
|
+
new_participant: Nueva participante
|
127
|
+
remove_census: Eliminar censo
|
128
|
+
all_users_registered_html: Todas las participantes están registradas en la plataforma
|
129
|
+
created_at: Creado el
|
130
|
+
email: Correo electrónico
|
131
|
+
last_login: Último acceso
|
132
|
+
missing_emails: El método de autorización no requiere un correo electrónico. Por esto, %{count} debe registrarse en la plataforma
|
133
|
+
missing_registered: Hay %{missing_registered} participantes que no están registradas en la plataforma
|
134
|
+
never_logged: Nunca ha iniciado sesión
|
135
|
+
participant: participante
|
136
|
+
phone: Teléfono
|
137
|
+
ponderation: Tipos de ponderación
|
138
|
+
send_invitation_link: Haga clic aquí para enviarles una invitación
|
139
|
+
title: Censo
|
140
|
+
user: Nombre
|
141
|
+
voted: '¿Ha votado?'
|
142
|
+
new:
|
143
|
+
save: Crear
|
144
|
+
title: Nueva participante
|
145
|
+
remove_census:
|
146
|
+
confirm: '¿Está seguro de que quiere eliminar el censo? Esta acción no se puede deshacer'
|
147
|
+
success: "%{participants_count} entradas fueron eliminadas de la página con éxito"
|
148
|
+
update:
|
149
|
+
error: Se ha producido un error en actualizar las participantes
|
150
|
+
success: Participantes guardados con éxito
|
151
|
+
permissions:
|
152
|
+
sync:
|
153
|
+
started: La sincronización de participantes ha comenzado. Por favor espere unos minutos y actualice esta página.
|
154
|
+
update:
|
155
|
+
error: Se ha producido un error al actualizar los permisos
|
156
|
+
success: Permisos correctamente actualizados.
|
157
|
+
ponderations:
|
158
|
+
create:
|
159
|
+
error: Se ha producido un error al crear la ponderación
|
160
|
+
success: Ponderación creada correctamente
|
161
|
+
destroy:
|
162
|
+
error: Se ha producido un error al eliminar la ponderación
|
163
|
+
success: Ponderación destruida correctamente
|
164
|
+
edit:
|
165
|
+
save: Guardar
|
166
|
+
title: Editar tipos de ponderación
|
167
|
+
form:
|
168
|
+
name_help: Tipo de asociado, p. ej., "socio", "consumidor", "patrón". Debe ser único.
|
169
|
+
name_placeholder: 'Prueba, por ejemplo: "miembro", "asociado", "partidario"...'
|
170
|
+
weight_help: Peso del voto p. ej., "1", "2", "1.5". Este número se utilizará para sopesar los votos de las participantes en este tipo de ponderación.
|
171
|
+
index:
|
172
|
+
actions:
|
173
|
+
new_ponderation: Nueva ponderación
|
174
|
+
created_at: Creado el
|
175
|
+
name: Tipo de miembro
|
176
|
+
num_users: Censo total
|
177
|
+
title: Ponderaciones
|
178
|
+
weight: Peso del voto
|
179
|
+
new:
|
180
|
+
save: Crear
|
181
|
+
title: Nuevo tipo de ponderación
|
182
|
+
update:
|
183
|
+
error: Se ha producido un error al actualizar la ponderación
|
184
|
+
success: Ponderación actualizada correctamente
|
45
185
|
settings:
|
186
|
+
authorization_method:
|
187
|
+
both: Correo electrónico y número de teléfono
|
188
|
+
email: Solo correo electrónico
|
189
|
+
phone: Solo número de teléfono móvil
|
190
|
+
authorization_method_help: |
|
191
|
+
Las opciones disponibles son:
|
192
|
+
<ul>
|
193
|
+
<li><b>Solo número de teléfono:</b> Utiliza verificación por SMS. Las participantes deben ingresar su número de teléfono que coincida con el censo.</li>
|
194
|
+
<li><b>Solo correo electrónico:</b> El correo electrónico de la participante debe coincidir con el censo.</li>
|
195
|
+
<li><b>Correo electrónico y número de teléfono:</b> Utiliza verificación por SMS. El correo electrónico de la participante debe coincidir con el censo y el número de teléfono estará predefinido.</li>
|
196
|
+
</ul>
|
197
|
+
check_verifier:
|
198
|
+
not_installed_html: Parece que el método de autorización "Verificador de Gobernanza Societaria" no está activado. No puedes autenticar el censo sin la activación. Instálelo en <a href="/system">/system</a>.
|
199
|
+
copy_setting: 'Copiar ponderaciones y censo de:'
|
46
200
|
create:
|
47
201
|
error: Se ha producido un problema al crear la configuración
|
48
202
|
success: Configuración guardada correctamente
|
49
203
|
destroy:
|
50
204
|
error: Hubo un problema al destruir esta configuración
|
51
205
|
success: Configuración eliminada correctamente
|
206
|
+
edit:
|
207
|
+
save: Guardar
|
208
|
+
title: Editar grupo de delegación
|
209
|
+
form:
|
210
|
+
max_grants: Máximas delegaciones por participante
|
52
211
|
index:
|
53
212
|
actions:
|
54
|
-
|
213
|
+
census: Edita el censo
|
214
|
+
delegations: Edita las delegaciones
|
215
|
+
new_setting: Nueva configuración
|
216
|
+
ponderate: Establecer los pesos para la ponderación de votos
|
217
|
+
authorization_method: Método de autorización
|
218
|
+
census: Censo total
|
55
219
|
consultation: Consulta
|
56
220
|
created_at: Creado el
|
57
221
|
delegations: Total de delegaciones
|
222
|
+
description_html: |
|
223
|
+
Este módulo está diseñado para organizaciones que votan a través de consultas. Las funcionalidades que tenemos disponibles son: elaboración de censo, delegaciones de participantes y ponderaciones por tipo de miembro. También podemos utilizar el verificador integrado a través de SMS, correo electrónico o ambos. Es posible utilizar este módulo sin importar un censo, puede gestionarlo para realizar delegaciones y/o ponderaciones. Si necesitas más información, ingresa a guia.cercles.coop.
|
224
|
+
<br>
|
225
|
+
Cada grupo se puede configurar con un número diferente de delegaciones máximas por usuario, diferentes concesiones de delegaciones de usuario y diferentes conjuntos de tipos de ponderación.
|
58
226
|
max_grants: Máx. delegaciones/persona
|
59
|
-
|
227
|
+
open: Abierto
|
228
|
+
ponderations: Tipos de ponderación
|
229
|
+
state: Estado
|
230
|
+
title: Gobernanza Societaria
|
60
231
|
new:
|
61
|
-
form:
|
62
|
-
title: Información general
|
63
|
-
max_grants: Maximum delegations
|
64
232
|
save: Guardar
|
65
|
-
title:
|
233
|
+
title: Nueva configuración
|
234
|
+
setting_checks:
|
235
|
+
all_users_authorized_html: Todas las participantes están verificadas por el <i>Verificador de Gobernanza Societaria</i>.
|
236
|
+
all_users_registered_html: Todos los participantes están registrados en la plataforma.
|
237
|
+
click_to_fix: Haga clic aquí para arreglar esto automáticamente
|
238
|
+
consultation_questions_all_verified_html: Todas las preguntas están restringidas por el <i>Verificador de Gobernanza Societaria</i>.
|
239
|
+
consultation_questions_missing_verifier_html: Hay %{count} preguntas que no están restringidas por el <i>Verificador de Gobernanza Societaria</i>. <b>Sin la restricción, cualquiera podrá votar las preguntas.</b> <em>Esto está bien si está utilizando otros métodos de autorización o si todas las registradas pueden votar.</em>
|
240
|
+
missing_authorizations_html: Hay %{count} participantes que no están verificadas por el <i>Verificador de Gobernanza Societaria</i>. <em>Está bien si estas participantes tienen sus votos delegados a otras o si está utilizando otros métodos de verificación (o ninguno).</em>
|
241
|
+
missing_emails: El método de autorización no requiere un correo electrónico. Por esto, %{count} debe registrarse en la plataforma
|
242
|
+
missing_registered_users_html: Hay %{count} participantes que no están registrados en la plataforma.
|
243
|
+
no_delegations_html: No hay votos delegados.
|
244
|
+
no_participants_html: '¡No hay censo! <b>Añade participantes o nadie podrá votar si el <i>Verificador de Gobernanza Societaria</i> está activo.</b> <em>Está bien si está utilizando otros métodos de autorización o si todas las registradas pueden votar.</em>'
|
245
|
+
no_ponderations_html: No hay ponderaciones de votos. <b>Todos los usuarios tendrán el mismo peso en sus votos</b>
|
246
|
+
participant: participante
|
247
|
+
user: participante
|
248
|
+
users_need_sync_html: La lista de participantes debe sincronizarse. <b>¡Los resultados de la consulta pueden ser incorrectos!</b>
|
249
|
+
state:
|
250
|
+
closed: Cerrado
|
251
|
+
ongoing: En proceso
|
252
|
+
pending: Pendiente
|
253
|
+
update:
|
254
|
+
error: Se ha producido un problema al actualizar la configuración
|
255
|
+
success: Configuración guardada correctamente
|
256
|
+
weighted_results:
|
257
|
+
title: Resultados por respuesta sumando pesos de miembros
|
66
258
|
authorizations:
|
67
259
|
new:
|
68
260
|
missing_phone_error: Falta el teléfono de miembro
|
69
261
|
phone_warning: Este número de teléfono ha sido importado por el administrador. Por favor, contacta si no es correcto.
|
70
262
|
delegations:
|
263
|
+
has_delegations: Voto delegado realizado
|
71
264
|
link: Tienes delegaciones concedidas
|
265
|
+
delegations_authorizer:
|
266
|
+
email: Estamos utilizando el correo electrónico %{email} para verificar su identidad. Si cree que esto está mal, póngase en contacto con nosotros.
|
267
|
+
no_setting: No se encontró ningún grupo de delegación para esta consulta. Póngase en contacto con el administrador para solucionarlo.
|
268
|
+
not_in_census: No estás en el censo
|
269
|
+
phone: Estamos usando el teléfono %{phone} para verificar su identidad. Si cree que esto está mal, póngase en contacto con nosotros.
|
72
270
|
delegations_modal:
|
73
271
|
callout: Recuerda, estás votando en nombre de
|
74
272
|
contextual_help: 'Se le ha concedido el voto de:'
|
75
273
|
title: 'Consulta: delegaciones concedidas'
|
274
|
+
import_mailer:
|
275
|
+
import:
|
276
|
+
errors_present: Se han producido errores durante la importación
|
277
|
+
errors_title: "<b>Se han encontrado:</b> %{errors_count} errores"
|
278
|
+
greeting: Hola %{name},
|
279
|
+
info_messages: Motivo de omisión
|
280
|
+
instructions: "<p>Se adjunta un archivo con detalles de importación, contiene filas que no fueron importadas.</p>\n<p>Si desea continuar con la importación, corrija las filas especificadas, elimine la última columna del archivo, guarde el archivo e importar de nuevo.</p>\n"
|
281
|
+
result: "<b>Importado:</b> %{rows_count} filas de %{total_rows_count}."
|
282
|
+
row_number: Numero fila
|
283
|
+
skipped_rows: "<b>Omitidas:</b> %{skipped_rows} filas."
|
284
|
+
subject: CSV importado
|
285
|
+
success: CSV importado correctamente
|
286
|
+
text_error: Error
|
287
|
+
invite_participants_mailer:
|
288
|
+
confirmation:
|
289
|
+
body: Has sido invitado a participar en la consulta. Por favor, haz clic en el enlace de abajo para confirmar tu participación.
|
290
|
+
confirm: Confirmar la participación
|
291
|
+
greeting: '¡Hola, %{recipient}!,'
|
76
292
|
name: Módulo Cooperativas - ActionDelegator para Decidim
|
293
|
+
participants_csv_importer:
|
294
|
+
import:
|
295
|
+
error: Se ha producido un error en importar las participantes
|
296
|
+
error_field: Motivo para omitir
|
297
|
+
field_name:
|
298
|
+
phone: teléfono
|
299
|
+
weight: peso
|
300
|
+
phone_exists: Ya existe un participante con esta dirección de correo electrónico
|
301
|
+
ponderation_not_found: Tipo de ponderación no encontrado
|
302
|
+
skip_import_info: El participante ya existe %{with_mismatched_fields}
|
303
|
+
with_mismatched_fields: "con campos no coincidentes: %{fields}"
|
77
304
|
sms_message: Su código de verificación es %{code}
|
78
305
|
user_delegations:
|
79
306
|
index:
|
@@ -83,28 +310,65 @@ es:
|
|
83
310
|
members:
|
84
311
|
index:
|
85
312
|
title: Gestión de miembros
|
313
|
+
verifications:
|
314
|
+
delegations_verifier:
|
315
|
+
authorizations:
|
316
|
+
edit:
|
317
|
+
confirm_destroy: '¿Seguro que quieres restablecer el código de verificación?'
|
318
|
+
destroy: Reiniciar código de verificación
|
319
|
+
resend: '¿No has recibido el código de verificación?'
|
320
|
+
send: Confirmar
|
321
|
+
title: Introduce el código de verificación que recibiste
|
322
|
+
new:
|
323
|
+
authorize: Autorizar mi cuenta
|
324
|
+
missing_phone_error: Falta el teléfono de miembro
|
325
|
+
not_in_census: Lo sentimos, pero no puede ser autorizado porque su correo electrónico no está en el censo. Póngase en contacto con el administrador si cree que se trata de un error.
|
326
|
+
participate_in: 'Esta autorización le permite participar en las siguientes consultas: %{consultations}'
|
327
|
+
phone_warning: Este número de teléfono ha sido importado por el administrador. Por favor, contacta si no es correcto.
|
328
|
+
send_code: Enviar código de verificación
|
329
|
+
title: Autorizar con el Verificador de Gobernanza Societaria
|
86
330
|
admin:
|
331
|
+
actions:
|
332
|
+
invite: Enviar invitación
|
333
|
+
invite_all: Enviar invitaciones a participantes no registradas
|
334
|
+
resend: Reenviar la invitación
|
87
335
|
consultations:
|
88
336
|
results:
|
89
337
|
default_metadata: "(datos de afiliación no disponibles)"
|
90
338
|
export: Exportar
|
91
339
|
export_filename: consultation_results
|
92
|
-
membership_type:
|
93
|
-
membership_weight:
|
94
|
-
total_delegates: "%{count}
|
340
|
+
membership_type: Tipo de miembro
|
341
|
+
membership_weight: Peso
|
342
|
+
total_delegates: "%{count} votos delegados"
|
95
343
|
authorization_handlers:
|
96
344
|
admin:
|
97
345
|
delegations_verifier:
|
98
346
|
help:
|
99
|
-
-
|
347
|
+
- Un método de verificación para el voto delegado
|
100
348
|
delegations_verifier:
|
101
|
-
explanation:
|
102
|
-
|
349
|
+
explanation: Las participantes verificadas con este método pueden delegar votos a otras participantes
|
350
|
+
fields:
|
351
|
+
phone: Número de teléfono
|
352
|
+
name: Gobernanza Societaria
|
353
|
+
resources:
|
354
|
+
question:
|
355
|
+
actions:
|
356
|
+
comment: Comentario
|
357
|
+
vote: Votar
|
358
|
+
verifications:
|
359
|
+
authorizations:
|
360
|
+
first_login:
|
361
|
+
actions:
|
362
|
+
delegations_verifier: Get verified with Corporate Governance Census
|
363
|
+
devise:
|
364
|
+
mailer:
|
365
|
+
invite_participant:
|
366
|
+
subject: Has sido invitada a participar en una consulta
|
103
367
|
layouts:
|
104
368
|
decidim:
|
105
|
-
user_profile:
|
106
|
-
vote_delegations: Vote delegations
|
107
369
|
admin:
|
108
370
|
question:
|
109
371
|
attachments: Adjuntos
|
110
372
|
categories: Categorías
|
373
|
+
user_profile:
|
374
|
+
vote_delegations: Delegación de votos
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class CreateDecidimActionDelegatorPonderations < ActiveRecord::Migration[6.0]
|
4
|
+
def change
|
5
|
+
create_table :decidim_action_delegator_ponderations do |t|
|
6
|
+
t.references :decidim_action_delegator_setting, null: false, index: { name: "index_decidim_action_delegator_ponderations_on_setting_id" }
|
7
|
+
t.string :name, null: false
|
8
|
+
t.decimal :weight, null: false, default: 1, precision: 5, scale: 2
|
9
|
+
t.timestamps
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class CreateDecidimActionDelegatorParticipants < ActiveRecord::Migration[6.0]
|
4
|
+
def change
|
5
|
+
create_table :decidim_action_delegator_participants do |t|
|
6
|
+
t.references :decidim_action_delegator_setting, null: false, index: { name: "index_decidim_action_delegator_participants_on_setting_id" }
|
7
|
+
t.references :decidim_action_delegator_ponderation, index: { name: "index_decidim_action_delegator_participants_on_ponderation_id" }
|
8
|
+
t.string :email, null: false
|
9
|
+
t.string :phone
|
10
|
+
t.timestamps
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -10,26 +10,88 @@ module Decidim
|
|
10
10
|
paths["lib/tasks"] = nil
|
11
11
|
|
12
12
|
routes do
|
13
|
-
resources :settings
|
13
|
+
resources :settings do
|
14
14
|
resources :delegations, only: [:index, :new, :create, :destroy]
|
15
|
+
resources :ponderations
|
16
|
+
resources :participants
|
17
|
+
resources :invite_participants do
|
18
|
+
post :invite_user, on: :member
|
19
|
+
post :invite_all_users, on: :collection
|
20
|
+
post :resend_invitation, on: :member
|
21
|
+
end
|
22
|
+
resources :manage_participants, only: [:new, :create, :destroy_all] do
|
23
|
+
delete :destroy_all, on: :collection
|
24
|
+
end
|
25
|
+
resources :manage_delegations, only: [:new, :create]
|
26
|
+
resources :permissions, only: [:create] do
|
27
|
+
post :sync, on: :collection
|
28
|
+
end
|
15
29
|
end
|
16
30
|
|
17
31
|
resources :consultations, param: :slug, only: [] do
|
18
32
|
get :results, on: :member
|
19
|
-
|
33
|
+
get :weighted_results, on: :member
|
34
|
+
resources :exports, only: :create, module: :consultations
|
20
35
|
|
21
36
|
namespace :exports do
|
22
37
|
resources :sum_of_weights, only: :create
|
23
38
|
end
|
24
|
-
|
25
|
-
namespace :results do
|
26
|
-
resources :sum_of_weights, only: :index
|
27
|
-
end
|
28
39
|
end
|
29
40
|
|
30
41
|
root to: "delegations#index"
|
31
42
|
end
|
32
43
|
|
44
|
+
initializer "decidim_admin_action_delegator.admin_user_menu" do
|
45
|
+
Decidim.menu :admin_user_menu do |menu|
|
46
|
+
menu.add_item :users,
|
47
|
+
I18n.t("menu.delegations", scope: "decidim.action_delegator.admin"), decidim_admin_action_delegator.settings_path,
|
48
|
+
active: is_active_link?(decidim_admin_action_delegator.settings_path),
|
49
|
+
if: allowed_to?(:index, :impersonatable_user)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
initializer "decidim_admin_action_delegator.admin_consultation_menu" do
|
54
|
+
Decidim.menu :admin_consultation_menu do |menu|
|
55
|
+
menu.remove_item :results_consultation
|
56
|
+
is_results = is_active_link?(decidim_admin_consultations.results_consultation_path(current_consultation)) ||
|
57
|
+
is_active_link?(decidim_admin_action_delegator.results_consultation_path(current_consultation)) ||
|
58
|
+
is_active_link?(decidim_admin_action_delegator.weighted_results_consultation_path(current_consultation))
|
59
|
+
params = {
|
60
|
+
position: 1.2,
|
61
|
+
active: is_results,
|
62
|
+
if: allowed_to?(:read, :question)
|
63
|
+
}
|
64
|
+
params[:submenu] = { target_menu: :admin_delegation_results_submenu } if is_results
|
65
|
+
menu.add_item :delegated_results,
|
66
|
+
I18n.t("results", scope: "decidim.admin.menu.consultations_submenu"),
|
67
|
+
decidim_admin_consultations.results_consultation_path(current_consultation),
|
68
|
+
params
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
initializer "decidim_admin_action_delegator.admin_consultation_menu" do
|
73
|
+
Decidim.menu :admin_delegation_results_submenu do |menu|
|
74
|
+
menu.add_item :by_answer,
|
75
|
+
I18n.t("by_answer", scope: "decidim.action_delegator.admin.menu.consultations_submenu"),
|
76
|
+
decidim_admin_consultations.results_consultation_path(current_consultation),
|
77
|
+
position: 1.0,
|
78
|
+
active: is_active_link?(decidim_admin_consultations.results_consultation_path(current_consultation)),
|
79
|
+
if: allowed_to?(:read, :question)
|
80
|
+
menu.add_item :by_type_and_weight,
|
81
|
+
I18n.t("by_type_and_weight", scope: "decidim.action_delegator.admin.menu.consultations_submenu"),
|
82
|
+
decidim_admin_action_delegator.results_consultation_path(current_consultation),
|
83
|
+
position: 1.1,
|
84
|
+
active: is_active_link?(decidim_admin_action_delegator.results_consultation_path(current_consultation), :exact),
|
85
|
+
if: allowed_to?(:read, :question)
|
86
|
+
menu.add_item :sum_of_weights,
|
87
|
+
I18n.t("sum_of_weights", scope: "decidim.action_delegator.admin.menu.consultations_submenu"),
|
88
|
+
decidim_admin_action_delegator.weighted_results_consultation_path(current_consultation),
|
89
|
+
position: 1.2,
|
90
|
+
active: is_active_link?(decidim_admin_action_delegator.weighted_results_consultation_path(current_consultation)),
|
91
|
+
if: allowed_to?(:read, :question)
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
33
95
|
def load_seed
|
34
96
|
nil
|
35
97
|
end
|
@@ -4,6 +4,7 @@ require "savon"
|
|
4
4
|
require "rails"
|
5
5
|
require "decidim/core"
|
6
6
|
require "decidim/consultations"
|
7
|
+
require "deface"
|
7
8
|
|
8
9
|
module Decidim
|
9
10
|
module ActionDelegator
|
@@ -24,18 +25,30 @@ module Decidim
|
|
24
25
|
# override votes questions
|
25
26
|
Decidim::Consultations::VoteQuestion.include(Decidim::ActionDelegator::Consultations::VoteQuestionOverride)
|
26
27
|
Decidim::Consultations::MultipleVoteQuestion.include(Decidim::ActionDelegator::Consultations::MultipleVoteQuestionOverride)
|
27
|
-
Decidim::Consultations::QuestionVotesController.include(Decidim::ActionDelegator::Consultations::QuestionVotesControllerOverride)
|
28
|
-
Decidim::Consultations::QuestionMultipleVotesController.include(Decidim::ActionDelegator::Consultations::QuestionMultipleVotesControllerOverride)
|
29
28
|
Decidim::Consultations::VoteForm.include(Decidim::ActionDelegator::Consultations::VoteFormOverride)
|
30
29
|
Decidim::Consultations::MultiVoteForm.include(Decidim::ActionDelegator::Consultations::VoteFormOverride)
|
31
30
|
Decidim::Consultations::Vote.include(Decidim::ActionDelegator::Consultations::VoteOverride)
|
32
|
-
Decidim::
|
31
|
+
Decidim::Consultations::Permissions.include(Decidim::ActionDelegator::Consultations::PermissionsOverride)
|
33
32
|
end
|
34
33
|
|
35
|
-
initializer "decidim_action_delegator.
|
36
|
-
|
37
|
-
|
38
|
-
|
34
|
+
initializer "decidim_action_delegator.overrides", after: "decidim.action_controller" do
|
35
|
+
config.to_prepare do
|
36
|
+
Decidim::Consultations::QuestionVotesController.include(Decidim::ActionDelegator::Consultations::QuestionVotesControllerOverride)
|
37
|
+
Decidim::Consultations::QuestionsController.include(Decidim::ActionDelegator::Consultations::QuestionsControllerOverride)
|
38
|
+
Decidim::Consultations::ConsultationsController.include(Decidim::ActionDelegator::Consultations::ConsultationsControllerOverride)
|
39
|
+
Decidim::Consultations::QuestionMultipleVotesController.include(Decidim::ActionDelegator::Consultations::QuestionMultipleVotesControllerOverride)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
initializer "decidim_action_delegator.authorizations" do
|
44
|
+
next unless Decidim::ActionDelegator.authorization_expiration_time.positive?
|
45
|
+
|
46
|
+
Decidim::Verifications.register_workflow(:delegations_verifier) do |workflow|
|
47
|
+
workflow.action_authorizer = "Decidim::ActionDelegator::Verifications::DelegationsAuthorizer"
|
48
|
+
workflow.engine = Decidim::ActionDelegator::Verifications::DelegationsVerifier::Engine
|
49
|
+
workflow.expires_in = Decidim::ActionDelegator.authorization_expiration_time
|
50
|
+
workflow.time_between_renewals = 1.minute
|
51
|
+
end
|
39
52
|
end
|
40
53
|
|
41
54
|
initializer "decidim_action_delegator.webpacker.assets_path" do |_app|
|
@@ -44,16 +57,13 @@ module Decidim
|
|
44
57
|
|
45
58
|
initializer "decidim.user_menu" do
|
46
59
|
Decidim.menu :user_menu do |menu|
|
47
|
-
menu.
|
48
|
-
|
49
|
-
|
50
|
-
|
60
|
+
menu.add_item :vote_delegations,
|
61
|
+
t("vote_delegations", scope: "layouts.decidim.user_profile"),
|
62
|
+
decidim_action_delegator.user_delegations_path,
|
63
|
+
position: 5.0,
|
64
|
+
active: :exact
|
51
65
|
end
|
52
66
|
end
|
53
|
-
|
54
|
-
initializer "decidim_action_delegator.permissions" do
|
55
|
-
Decidim::Consultations::Permissions.prepend(ConsultationsPermissionsExtension)
|
56
|
-
end
|
57
67
|
end
|
58
68
|
end
|
59
69
|
end
|
@@ -10,16 +10,31 @@ FactoryBot.define do
|
|
10
10
|
grantee { association :user, organization: setting.consultation.organization }
|
11
11
|
end
|
12
12
|
|
13
|
+
factory :ponderation, class: "Decidim::ActionDelegator::Ponderation" do
|
14
|
+
setting
|
15
|
+
name { Faker::Lorem.sentence }
|
16
|
+
weight { Faker::Number.between(from: 1, to: 10) }
|
17
|
+
end
|
18
|
+
|
19
|
+
factory :participant, class: "Decidim::ActionDelegator::Participant" do
|
20
|
+
setting
|
21
|
+
email { Faker::Internet.email }
|
22
|
+
phone { Faker::PhoneNumber.phone_number }
|
23
|
+
ponderation { setting.ponderations.first }
|
24
|
+
end
|
25
|
+
|
13
26
|
factory :setting, class: "Decidim::ActionDelegator::Setting" do
|
14
27
|
max_grants { 3 }
|
15
28
|
consultation
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
trait :
|
22
|
-
|
29
|
+
trait :with_ponderations do
|
30
|
+
after(:create) do |setting|
|
31
|
+
create_list(:ponderation, 3, setting: setting)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
trait :with_participants do
|
35
|
+
after(:create) do |setting|
|
36
|
+
create_list(:participant, 3, setting: setting)
|
37
|
+
end
|
23
38
|
end
|
24
39
|
end
|
25
40
|
end
|