decidim-decidim_awesome 0.8.3 → 0.9.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +52 -0
- data/README.md +55 -45
- data/Rakefile +1 -1
- data/app/commands/decidim/decidim_awesome/admin/create_constraint.rb +1 -1
- data/app/commands/decidim/decidim_awesome/admin/create_custom_redirect.rb +1 -1
- data/app/commands/decidim/decidim_awesome/admin/create_menu_hack.rb +1 -1
- data/app/commands/decidim/decidim_awesome/admin/create_proposal_custom_field.rb +1 -1
- data/app/commands/decidim/decidim_awesome/admin/create_scoped_admin.rb +1 -1
- data/app/commands/decidim/decidim_awesome/admin/create_scoped_style.rb +1 -1
- data/app/commands/decidim/decidim_awesome/admin/destroy_constraint.rb +1 -1
- data/app/commands/decidim/decidim_awesome/admin/destroy_custom_redirect.rb +1 -1
- data/app/commands/decidim/decidim_awesome/admin/destroy_menu_hack.rb +1 -1
- data/app/commands/decidim/decidim_awesome/admin/destroy_proposal_custom_field.rb +1 -1
- data/app/commands/decidim/decidim_awesome/admin/destroy_scoped_admin.rb +1 -1
- data/app/commands/decidim/decidim_awesome/admin/destroy_scoped_style.rb +1 -1
- data/app/commands/decidim/decidim_awesome/admin/rename_scope_label.rb +1 -1
- data/app/commands/decidim/decidim_awesome/admin/update_config.rb +2 -3
- data/app/commands/decidim/decidim_awesome/admin/update_constraint.rb +2 -2
- data/app/commands/decidim/decidim_awesome/admin/update_custom_redirect.rb +1 -1
- data/app/commands/decidim/decidim_awesome/admin/update_menu_hack.rb +1 -1
- data/app/commands/decidim/decidim_awesome/command.rb +14 -0
- data/app/commands/decidim/decidim_awesome/create_editor_image.rb +1 -1
- data/app/controllers/concerns/decidim/decidim_awesome/admin_accountability/admin/filterable.rb +67 -0
- data/app/controllers/concerns/decidim/decidim_awesome/admin_accountability/admin/filterable_helper.rb +37 -0
- data/app/controllers/decidim/decidim_awesome/admin/admin_accountability_controller.rb +72 -0
- data/app/controllers/decidim/decidim_awesome/admin/checks_controller.rb +6 -3
- data/app/controllers/decidim/decidim_awesome/admin/config_controller.rb +2 -0
- data/app/controllers/decidim/decidim_awesome/admin/custom_redirects_controller.rb +2 -0
- data/app/controllers/decidim/decidim_awesome/admin/menu_hacks_controller.rb +2 -0
- data/app/controllers/decidim/decidim_awesome/editor_images_controller.rb +0 -2
- data/app/forms/decidim/decidim_awesome/admin/config_form.rb +14 -0
- data/app/forms/decidim/decidim_awesome/admin/menu_form.rb +1 -1
- data/app/forms/decidim/decidim_awesome/proposals/proposal_wizard_create_step_form_override.rb +26 -8
- data/app/helpers/decidim/decidim_awesome/admin/config_constraints_helpers.rb +12 -8
- data/app/helpers/decidim/decidim_awesome/map_helper.rb +14 -11
- data/app/jobs/decidim/decidim_awesome/export_admin_actions_job.rb +28 -0
- data/app/middleware/decidim/decidim_awesome/current_config.rb +4 -0
- data/app/models/decidim/decidim_awesome/awesome_config.rb +0 -1
- data/app/models/decidim/decidim_awesome/config_constraint.rb +0 -2
- data/app/models/decidim/decidim_awesome/editor_image.rb +0 -3
- data/app/models/decidim/decidim_awesome/paper_trail_version.rb +113 -0
- data/app/packs/entrypoints/decidim_admin_decidim_awesome.js +3 -2
- data/app/packs/images/decidim/decidim_awesome/pokecode-logo.png +0 -0
- data/app/packs/src/decidim/decidim_awesome/admin/auto_edit.js +7 -7
- data/app/packs/src/decidim/decidim_awesome/admin/check_redirections.js +2 -2
- data/app/packs/src/decidim/decidim_awesome/admin/constraints.js +5 -5
- data/app/packs/src/decidim/decidim_awesome/admin/custom_fields_builder.js +11 -10
- data/app/packs/src/decidim/decidim_awesome/admin/form_exit_warn.js +1 -0
- data/app/packs/src/decidim/decidim_awesome/admin/user_picker.js +1 -0
- data/app/packs/src/decidim/decidim_awesome/awesome_map/api/fetcher.js +13 -13
- data/app/packs/src/decidim/decidim_awesome/awesome_map/awesome_map.js +14 -12
- data/app/packs/src/decidim/decidim_awesome/awesome_map/controllers/controller.js +36 -15
- data/app/packs/src/decidim/decidim_awesome/awesome_map/controllers/proposals_controller.js +3 -3
- data/app/packs/src/decidim/decidim_awesome/awesome_map/controls_ui.js +25 -26
- data/app/packs/src/decidim/decidim_awesome/awesome_map/load_map.js +1 -0
- data/app/packs/src/decidim/decidim_awesome/editors/editor.js +33 -12
- data/app/packs/src/decidim/decidim_awesome/forms/autosave.js +8 -12
- data/app/packs/src/decidim/decidim_awesome/forms/custom_fields_renderer.js +36 -27
- data/app/packs/src/decidim/decidim_awesome/forms/rich_text_plugin.js +6 -4
- data/app/packs/src/decidim/decidim_awesome/proposals/custom_fields.js +7 -7
- data/app/packs/src/decidim/decidim_awesome/proposals/images.js +2 -2
- data/app/packs/stylesheets/decidim/decidim_awesome/awesome_admin.scss +8 -5
- data/app/permissions/decidim/decidim_awesome/admin/permissions.rb +15 -1
- data/app/permissions/decidim/decidim_awesome/permissions.rb +4 -6
- data/app/presenters/decidim/decidim_awesome/paper_trail_base_presenter.rb +28 -0
- data/app/presenters/decidim/decidim_awesome/participatory_space_role_presenter.rb +45 -0
- data/app/presenters/decidim/decidim_awesome/role_base_presenter.rb +102 -0
- data/app/presenters/decidim/decidim_awesome/user_entity_presenter.rb +50 -0
- data/app/serializers/decidim/decidim_awesome/paper_trail_version_serializer.rb +37 -0
- data/app/validators/concerns/decidim/decidim_awesome/etiquette_validator_override.rb +41 -0
- data/app/views/decidim/decidim_awesome/admin/admin_accountability/index.html.erb +64 -0
- data/app/views/decidim/decidim_awesome/admin/checks/_assets_tester.html.erb +2 -0
- data/app/views/decidim/decidim_awesome/admin/config/_form_proposals.html.erb +82 -2
- data/app/views/decidim/decidim_awesome/admin/shared/_filters_with_date.html.erb +56 -0
- data/app/views/decidim/proposals/admin/proposals/_form.html.erb +1 -1
- data/app/views/layouts/decidim/admin/decidim_awesome.html.erb +1 -1
- data/app/views/{v0.25 → v0.27}/layouts/decidim/_head.html.erb +12 -4
- data/config/i18n-tasks.yml +4 -0
- data/config/locales/ca.yml +73 -2
- data/config/locales/cs.yml +66 -2
- data/config/locales/de.yml +72 -1
- data/config/locales/en.yml +93 -1
- data/config/locales/es.yml +72 -2
- data/config/locales/fr.yml +73 -2
- data/config/locales/it.yml +1 -2
- data/config/locales/ja.yml +75 -4
- data/config/locales/nl.yml +0 -1
- data/config/locales/pt-BR.yml +1 -2
- data/db/seeds.rb +1 -1
- data/lib/decidim/decidim_awesome/admin_engine.rb +15 -1
- data/lib/decidim/decidim_awesome/awesome.rb +55 -1
- data/lib/decidim/decidim_awesome/checksums.yml +22 -6
- data/lib/decidim/decidim_awesome/config.rb +14 -14
- data/lib/decidim/decidim_awesome/context_analyzers/request_analyzer.rb +1 -1
- data/lib/decidim/decidim_awesome/engine.rb +36 -9
- data/lib/decidim/decidim_awesome/iframe_component/component.rb +2 -1
- data/lib/decidim/decidim_awesome/menu_hacker.rb +7 -1
- data/lib/decidim/decidim_awesome/system_checker.rb +2 -0
- data/lib/decidim/decidim_awesome/test/factories.rb +7 -0
- data/lib/decidim/decidim_awesome/test/initializer.rb +10 -2
- data/lib/decidim/decidim_awesome/test/shared_examples/action_log_presenter_examples.rb +61 -0
- data/lib/decidim/decidim_awesome/test/shared_examples/scoped_admins_examples.rb +7 -4
- data/lib/decidim/decidim_awesome/test/shared_examples/summary_examples.rb +2 -2
- data/lib/decidim/decidim_awesome/version.rb +2 -2
- data/lib/tasks/decidim_awesome_active_storage_migrations_tasks.rake +1 -3
- data/package.json +21 -163
- metadata +38 -42
- data/app/packs/images/decidim/decidim_awesome/platoniq-logo.png +0 -0
- data/app/packs/src/vendor/image-resize.min.js +0 -1
- data/app/packs/src/vendor/image-upload.min.js +0 -6
- data/app/packs/src/vendor/leaflet.featuregroup.subgroup.js +0 -184
- data/app/views/decidim/proposals/collaborative_drafts/_edit_form_fields.html.erb +0 -83
- data/app/views/decidim/proposals/collaborative_drafts/show.html.erb +0 -1
- data/app/views/v0.25/decidim/proposals/collaborative_drafts/_show.html.erb +0 -128
- data/app/views/v0.26/decidim/proposals/collaborative_drafts/_show.html.erb +0 -128
- /data/app/views/{v0.25 → v0.27}/layouts/decidim/admin/_header.html.erb +0 -0
data/config/locales/fr.yml
CHANGED
@@ -21,6 +21,14 @@ fr:
|
|
21
21
|
scoped_admins: Groupe d'administrateurs restreints %{id}
|
22
22
|
scoped_styles: Style personnalisés %{id}
|
23
23
|
use_markdown_editor: Utiliser un éditeur Markdown au lieu de l'éditeur HTML
|
24
|
+
validate_body_max_caps_percent: Pourcentage maximum autorisé de lettres majuscules pour le corps
|
25
|
+
validate_body_max_marks_together: Nombre maximum de caractères spéciaux autorisés dans le corps
|
26
|
+
validate_body_min_length: Nombre de caractères minimum pour le corps
|
27
|
+
validate_body_start_with_caps: Forcer le corps à commencer par une lettre majuscule
|
28
|
+
validate_title_max_caps_percent: Pourcentage maximum autorisé de lettres majuscules pour le titre
|
29
|
+
validate_title_max_marks_together: Nombre maximum de caractères spéciaux consécutifs dans le titre
|
30
|
+
validate_title_min_length: Nombre de caractères minimum pour le titre
|
31
|
+
validate_title_start_with_caps: Forcer le titre à commencer par une lettre majuscule
|
24
32
|
constraint:
|
25
33
|
component_id: ou spécifiquement dans
|
26
34
|
component_manifest: Uniquement dans les composants de type
|
@@ -42,7 +50,23 @@ fr:
|
|
42
50
|
proposal_custom_fields: Champs personnalisés
|
43
51
|
decidim:
|
44
52
|
admin:
|
53
|
+
filters:
|
54
|
+
admin_accountability:
|
55
|
+
admin_role_type:
|
56
|
+
label: Type de rôle
|
57
|
+
participatory_space_type_eq:
|
58
|
+
label: Type d'espace participatif
|
59
|
+
role:
|
60
|
+
label: Rôle
|
61
|
+
role_type_eq:
|
62
|
+
label: Type de rôle
|
63
|
+
label:
|
64
|
+
search_field_end_date: 'Jusqu''à:'
|
65
|
+
search_field_start_date: 'De:'
|
66
|
+
search_placeholder:
|
67
|
+
user_name_or_user_email_cont: Recherche par nom d'utilisateur ou email
|
45
68
|
menu:
|
69
|
+
admin_accountability: Suivi administrateur
|
46
70
|
decidim_awesome: Decidim awesome
|
47
71
|
components:
|
48
72
|
awesome_iframe:
|
@@ -83,6 +107,41 @@ fr:
|
|
83
107
|
show_withdrawn: Afficher les propositions retirées
|
84
108
|
decidim_awesome:
|
85
109
|
admin:
|
110
|
+
admin_accountability:
|
111
|
+
admin_roles:
|
112
|
+
admin: Super administrateur
|
113
|
+
user_manager: Gestionnaire d'utilisateurs
|
114
|
+
created_at: Rôle créé le
|
115
|
+
currently_active: Actuellement actif
|
116
|
+
deleted_user: Utilisateur supprimé
|
117
|
+
email: Email
|
118
|
+
exports:
|
119
|
+
button: Exporter cette recherche
|
120
|
+
export_as: Exporter en tant que %{export_format}
|
121
|
+
export_format:
|
122
|
+
csv: CSV
|
123
|
+
json: JSON
|
124
|
+
xlsx: XLSX
|
125
|
+
notice: La tâche d'exportation a été mise en file d'attente. Vous recevrez un email quand elle sera réalisée.
|
126
|
+
index:
|
127
|
+
description: Vous trouverez ici la liste de tous les utilisateurs ayant un rôle dans l'administration d'un espace participatif. Les administrateurs "normaux" ne sont pas listés.
|
128
|
+
global_description: Vous trouverez ici la liste de tous les utilisateurs ayant un rôle global dans l'administration de cette organisation. Les administrateurs d'espaces participatifs ne sont pas listés.
|
129
|
+
see_global: Lister les administrateurs globaux
|
130
|
+
see_spaces: Lister les administrateurs d'espace participatif
|
131
|
+
title: Suivi administrateur
|
132
|
+
last_login: Date de la dernière connexion
|
133
|
+
missing_info: "(informations manquantes)"
|
134
|
+
missing_user: Utilisateur introuvable dans la base de données
|
135
|
+
name: Nom
|
136
|
+
never_logged: Ne s'est jamais connecté
|
137
|
+
participatory_space: Espace participatif
|
138
|
+
removal_date: Rôle retiré le
|
139
|
+
role: Rôle
|
140
|
+
roles:
|
141
|
+
admin: Administrateur
|
142
|
+
collaborator: Collaborateur
|
143
|
+
moderator: Modérateur
|
144
|
+
valuator: Evaluateur
|
86
145
|
checks:
|
87
146
|
index:
|
88
147
|
admin_head_tags: '"Awesome tags" (balises) inclus dans l''en-tête de l''application d''administration'
|
@@ -151,6 +210,15 @@ fr:
|
|
151
210
|
scoped_styles: Créer un CSS personnalisé qui s'applique uniquement à certaines parties du site web public (front-end) (utilisez l'éditeur de restrictions pour cela)
|
152
211
|
scoped_styles_variables: 'Vous pouvez utiliser les variables CSS suivantes pour les couleurs personnalisées de l''organisation :'
|
153
212
|
use_markdown_editor: Cela remplacera l'éditeur Quill WYSIWYG par un éditeur Markdown. Le texte sera affiché en HTML dans les pages publiques (le texte dans la base de données sera sauvegardé en tant que texte markdown)
|
213
|
+
validate_body_max_caps_percent: Zéro n'autorisera aucune lettre majuscule, 100 forcera à tout écrire en majuscule
|
214
|
+
validate_body_max_marks_together: 'Limiter le nombre de points d''interrogation et d''exclamation qui peuvent être écrits ensemble. Par exemple : si c''est 2, alors ''!!!'' ne sera pas autorisé dans le texte'
|
215
|
+
validate_body_min_length: Ce nombre peut être zéro, ce qui rendra ce champ non obligatoire
|
216
|
+
validate_title_max_caps_percent: Zéro n'autorisera aucune lettre majuscule, 100 forcera à tout écrire en majuscule
|
217
|
+
validate_title_max_marks_together: 'Limiter le nombre de points d''interrogation et d''exclamation qui peuvent être écrits ensemble. Par exemple : si c''est 2, alors ''!!!'' ne sera pas autorisé dans le texte'
|
218
|
+
validate_title_min_length: Le titre est toujours obligatoire et ce nombre ne peut être égal à zéro
|
219
|
+
validators:
|
220
|
+
body: Validations d'entrée de l'utilisateur pour le champ "body"
|
221
|
+
title: Validations d'entrée de l'utilisateur pour le champ "body"
|
154
222
|
form_proposal_custom_fields:
|
155
223
|
new: Ajouter une nouvelle boîte de champs personnalisés
|
156
224
|
remove: Supprimer cette boîte de champs personnalisés
|
@@ -260,6 +328,7 @@ fr:
|
|
260
328
|
hidden: Toujours caché
|
261
329
|
logged: Uniquement visible pour utilisateurs identifiés
|
262
330
|
non_logged: Visible uniquement pour les utilisateurs non connectés
|
331
|
+
verified_user: Visible uniquement pour les utilisateurs ayant une autorisation valide
|
263
332
|
index:
|
264
333
|
confirm_destroy: Êtes-vous sûr de vouloir supprimer cette personnalisation ?
|
265
334
|
edit: Modifier
|
@@ -302,7 +371,7 @@ fr:
|
|
302
371
|
text_settings: Paramètres de texte
|
303
372
|
title: Titre
|
304
373
|
truncate: Caractères maximum pour les descriptions des popups
|
305
|
-
credits: Décidim Awesome %{version} · Fait avec ♥ par
|
374
|
+
credits: Décidim Awesome %{version} · Fait avec ♥ par %{company}
|
306
375
|
custom_fields:
|
307
376
|
errors:
|
308
377
|
invalid_fields: Le contenu n'a pas pu être analysé mais a été assigné au champ '%{field}'
|
@@ -313,7 +382,7 @@ fr:
|
|
313
382
|
success: Image ajoutée avec succès
|
314
383
|
map_component:
|
315
384
|
map:
|
316
|
-
api_not_ready: |
|
385
|
+
api_not_ready: |
|
317
386
|
<b>Attention :</b> Cette installation de Decidim a l'API configurée à une complexité maximale de <b>%{current_complexity}</b>.
|
318
387
|
Ce composant ne fonctionnera probablement pas avec cette configuration. Nous vous recommandons de configurer dans un initialiseur
|
319
388
|
(par exemple à la fin de <code>config/initializers/decidim.rb</code>) les lignes suivantes :<br>
|
@@ -328,6 +397,8 @@ fr:
|
|
328
397
|
show:
|
329
398
|
view_meeting: Voir la rencontre
|
330
399
|
view_proposal: Voir la proposition
|
400
|
+
validators:
|
401
|
+
too_much_caps: Utilise trop de majuscule (plus de %{percent} du texte)
|
331
402
|
layouts:
|
332
403
|
decidim:
|
333
404
|
admin:
|
data/config/locales/it.yml
CHANGED
@@ -302,7 +302,6 @@ it:
|
|
302
302
|
text_settings: Impostazioni Testo
|
303
303
|
title: Titolo
|
304
304
|
truncate: Numero massimo di caratteri per le descrizioni nei popup
|
305
|
-
credits: Decidim Awesome %{version} · Fatto con ♥ da Platoniq
|
306
305
|
custom_fields:
|
307
306
|
errors:
|
308
307
|
invalid_fields: Il contenuto non può essere analizzato ma è stato assegnato al campo '%{field}'
|
@@ -313,7 +312,7 @@ it:
|
|
313
312
|
success: Immagine caricata correttamente
|
314
313
|
map_component:
|
315
314
|
map:
|
316
|
-
api_not_ready: |
|
315
|
+
api_not_ready: |
|
317
316
|
<b>Attenzione:</b> Questa installazione di Decidim ha configurato l'API ad una complessità massima di <b>%{current_complexity}</b>.
|
318
317
|
Questo componente probabilmente non funzionerà con questa configurazione, Si consiglia di impostare in un initializer
|
319
318
|
(per esempio alla fine del <code>config/initializers/decidim.rb</code>) con il seguente contenuti:<br>
|
data/config/locales/ja.yml
CHANGED
@@ -21,10 +21,18 @@ ja:
|
|
21
21
|
scoped_admins: 'スコープ付き管理者グループ #%{id}'
|
22
22
|
scoped_styles: 'カスタムスタイル #%{id}'
|
23
23
|
use_markdown_editor: HTMLエディターの代わりにMarkdownエディターを使用する
|
24
|
+
validate_body_max_caps_percent: 本文内での大文字の最大許容割合
|
25
|
+
validate_body_max_marks_together: 本文で許容される最多連続記号文字数
|
26
|
+
validate_body_min_length: 本文に必要な最小文字数
|
27
|
+
validate_body_start_with_caps: 本文を大文字で始めることを強制する
|
28
|
+
validate_title_max_caps_percent: タイトル内での大文字の最大許容割合
|
29
|
+
validate_title_max_marks_together: タイトルで許容される最多連続記号文字数
|
30
|
+
validate_title_min_length: タイトルに必要な最小文字数
|
31
|
+
validate_title_start_with_caps: タイトルを大文字で始めることを強制する
|
24
32
|
constraint:
|
25
33
|
component_id: 以下のみに適用
|
26
34
|
component_manifest: このタイプのコンポーネントのみ有効
|
27
|
-
participatory_space_manifest:
|
35
|
+
participatory_space_manifest: 以下のタイプの参加型スペースに適用
|
28
36
|
participatory_space_slug: あるいは、以下の参加スペースに適用
|
29
37
|
custom_redirect:
|
30
38
|
active: 有効
|
@@ -42,7 +50,23 @@ ja:
|
|
42
50
|
proposal_custom_fields: カスタム項目
|
43
51
|
decidim:
|
44
52
|
admin:
|
53
|
+
filters:
|
54
|
+
admin_accountability:
|
55
|
+
admin_role_type:
|
56
|
+
label: ロールの種別
|
57
|
+
participatory_space_type_eq:
|
58
|
+
label: 参加型スペース種別
|
59
|
+
role:
|
60
|
+
label: ロール
|
61
|
+
role_type_eq:
|
62
|
+
label: ロールの種別
|
63
|
+
label:
|
64
|
+
search_field_end_date: '終了日:'
|
65
|
+
search_field_start_date: '開始日:'
|
66
|
+
search_placeholder:
|
67
|
+
user_name_or_user_email_cont: ユーザー名、メールアドレスで検索する
|
45
68
|
menu:
|
69
|
+
admin_accountability: 管理者のアカウンタビリティ
|
46
70
|
decidim_awesome: Decidim awesome
|
47
71
|
components:
|
48
72
|
awesome_iframe:
|
@@ -83,6 +107,41 @@ ja:
|
|
83
107
|
show_withdrawn: 撤回された提案を表示
|
84
108
|
decidim_awesome:
|
85
109
|
admin:
|
110
|
+
admin_accountability:
|
111
|
+
admin_roles:
|
112
|
+
admin: スーパー管理者
|
113
|
+
user_manager: ユーザーマネージャー
|
114
|
+
created_at: ロールの作成日時
|
115
|
+
currently_active: 現在アクティブ
|
116
|
+
deleted_user: 削除されたユーザー
|
117
|
+
email: メールアドレス
|
118
|
+
exports:
|
119
|
+
button: この検索結果をエクスポート
|
120
|
+
export_as: '%{export_format} としてエクスポート'
|
121
|
+
export_format:
|
122
|
+
csv: CSV
|
123
|
+
json: JSON
|
124
|
+
xlsx: XLSX
|
125
|
+
notice: エクスポート処理がキューに追加されました。準備ができたらメールが届きます。
|
126
|
+
index:
|
127
|
+
description: ここには、参加型スペースの管理に何らかの役割を持っていたすべてのユーザーが表示されます。一般の管理者は表示されません。
|
128
|
+
global_description: ここには、この組織を管理するためにグローバルな役割を持っているすべてのユーザーが表示されます。参加型スペースの管理者は表示されません。
|
129
|
+
see_global: グローバル管理者一覧
|
130
|
+
see_spaces: 参加型スペース管理者一覧
|
131
|
+
title: 管理者のアカウンタビリティ
|
132
|
+
last_login: 最終ログイン日
|
133
|
+
missing_info: "(不足情報)"
|
134
|
+
missing_user: データベースにいないユーザー
|
135
|
+
name: 名前
|
136
|
+
never_logged: 未ログイン
|
137
|
+
participatory_space: 参加型スペース
|
138
|
+
removal_date: ロールの削除日時
|
139
|
+
role: ロール
|
140
|
+
roles:
|
141
|
+
admin: 管理者
|
142
|
+
collaborator: コラボレーター
|
143
|
+
moderator: モデレーター
|
144
|
+
valuator: 評価者
|
86
145
|
checks:
|
87
146
|
index:
|
88
147
|
admin_head_tags: 管理者向けアプリケーションヘッダーに含まれる Awesome tags
|
@@ -151,6 +210,15 @@ ja:
|
|
151
210
|
scoped_styles: 公開ウェブの特定の部分にのみ適用されるカスタムCSSを作成します (制限されたエディタを使用してください)
|
152
211
|
scoped_styles_variables: '組織の色のカスタマイズには、以下のCSS変数が使用できます。'
|
153
212
|
use_markdown_editor: これはQuill WYSIWYGエディターを置き換えて、代わりにMarkdownエディターを使えるようにします。テキストはDB内ではHTML形式に変換・保存されます。
|
213
|
+
validate_body_max_caps_percent: ゼロの場合大文字を許可しません。100の場合すべてを大文字で書くことを強制します。
|
214
|
+
validate_body_max_marks_together: '並べて入力できる「?」と「!」の数を制限します。 すなわち、それが2の場合、「!!!」はテキストに記入できません'
|
215
|
+
validate_body_min_length: この数字はゼロにできます。その場合、このフィールドを必須ではなくする効果があります。
|
216
|
+
validate_title_max_caps_percent: ゼロの場合大文字を許可しません。100の場合すべてを大文字で書くことを強制します。
|
217
|
+
validate_title_max_marks_together: '並べて入力できる「?」と「!」の数を制限します。 すなわち、それが2の場合、「!!!」はテキストに記入できません'
|
218
|
+
validate_title_min_length: タイトルは常に必須です。この数字はゼロにはできません
|
219
|
+
validators:
|
220
|
+
body: '「body」フィールドのユーザー入力検証'
|
221
|
+
title: '「タイトル」フィールドのユーザー入力検証'
|
154
222
|
form_proposal_custom_fields:
|
155
223
|
new: 新しい「カスタム項目」ボックスを追加
|
156
224
|
remove: '「カスタム項目」ボックスを削除'
|
@@ -169,7 +237,7 @@ ja:
|
|
169
237
|
show:
|
170
238
|
title: '%{setting} の詳細設定'
|
171
239
|
update: 設定を更新する
|
172
|
-
system:
|
240
|
+
system: 参加型スペース以外のすべて
|
173
241
|
update:
|
174
242
|
error: 設定更新エラー %{error}
|
175
243
|
success: 設定は正常に更新されました
|
@@ -261,6 +329,7 @@ ja:
|
|
261
329
|
hidden: 常に非表示
|
262
330
|
logged: ログインしたユーザーにのみ表示
|
263
331
|
non_logged: ログインしていないユーザーにのみ表示
|
332
|
+
verified_user: 権限のあるユーザーのみ表示
|
264
333
|
index:
|
265
334
|
confirm_destroy: この設定を削除しますか?
|
266
335
|
edit: 編集
|
@@ -303,7 +372,7 @@ ja:
|
|
303
372
|
text_settings: テキストの設定
|
304
373
|
title: タイトル
|
305
374
|
truncate: ポップアップの説明のための最大文字数
|
306
|
-
credits: Decidim Awesome %{version} ·
|
375
|
+
credits: Decidim Awesome %{version} · Maintained with ♥ by %{company}
|
307
376
|
custom_fields:
|
308
377
|
errors:
|
309
378
|
invalid_fields: コンテンツは解析できませんでしたが、フィールド '%{field}' に割り当てられました
|
@@ -314,7 +383,7 @@ ja:
|
|
314
383
|
success: 画像は正常にアップロードされました
|
315
384
|
map_component:
|
316
385
|
map:
|
317
|
-
api_not_ready: |
|
386
|
+
api_not_ready: |
|
318
387
|
<b>警告:</b> この Decidim のインストールでは、APIの最大複雑度が <b>%{current_complexity}</b> に設定されています。このコンポーネントは、この設定では動作しないかもしれません。初期化の設定を (例えば<code>config/initializers/decidim.rb</code>の末尾で) 以下のようにすることを推奨します:<br>
|
319
388
|
<br>
|
320
389
|
<pre># Api configuration
|
@@ -327,6 +396,8 @@ ja:
|
|
327
396
|
show:
|
328
397
|
view_meeting: ミーティングを表示
|
329
398
|
view_proposal: 提案を表示
|
399
|
+
validators:
|
400
|
+
too_much_caps: 大文字が多すぎます(テキストの %{percent}%以上)
|
330
401
|
layouts:
|
331
402
|
decidim:
|
332
403
|
admin:
|
data/config/locales/nl.yml
CHANGED
@@ -211,7 +211,6 @@ nl:
|
|
211
211
|
show_rejected: Toon afgewezen voorstellen
|
212
212
|
show_withdrawn: Toon ingetrokken voorstellen
|
213
213
|
truncate: Maximaal aantal tekens voor popup beschrijvingen
|
214
|
-
credits: Decidim Awesome %{version} · Gemaakt met ♥ door Platoniq
|
215
214
|
editor_images:
|
216
215
|
create:
|
217
216
|
error: Fout bij uploaden afbeelding!
|
data/config/locales/pt-BR.yml
CHANGED
@@ -302,7 +302,6 @@ pt-BR:
|
|
302
302
|
text_settings: Configurações de texto
|
303
303
|
title: Título
|
304
304
|
truncate: Máximo de caracteres para descrições em popup
|
305
|
-
credits: Decidim Incrível %{version} · Feito com ♥ por Platoniq
|
306
305
|
custom_fields:
|
307
306
|
errors:
|
308
307
|
invalid_fields: O conteúdo não pode ser analisado, mas foi atribuído ao campo '%{field}'
|
@@ -313,7 +312,7 @@ pt-BR:
|
|
313
312
|
success: Imagem enviada com sucesso
|
314
313
|
map_component:
|
315
314
|
map:
|
316
|
-
api_not_ready: |
|
315
|
+
api_not_ready: |
|
317
316
|
<b>Aviso:</b> Esta instalação Decidim tem a API configurada para uma complexidade máxima de <b>%{current_complexity}</b>.
|
318
317
|
Este componente provavelmente não funcionará sob esta configuração. Recomendamos que você configure em um inicializador
|
319
318
|
(por exemplo, no final do <code>config/initializers/decidim. b</code>) as seguintes linhas:<br>
|
data/db/seeds.rb
CHANGED
@@ -22,6 +22,8 @@ module Decidim
|
|
22
22
|
resources :scoped_styles, param: :var, only: [:create, :destroy]
|
23
23
|
resources :proposal_custom_fields, param: :var, only: [:create, :destroy]
|
24
24
|
resources :scoped_admins, param: :var, only: [:create, :destroy]
|
25
|
+
get :admin_accountability, to: "admin_accountability#index", as: "admin_accountability"
|
26
|
+
post :export_admin_accountability, to: "admin_accountability#export", as: "export_admin_accountability"
|
25
27
|
get :users, to: "config#users"
|
26
28
|
post :rename_scope_label, to: "config#rename_scope_label"
|
27
29
|
get :checks, to: "checks#index"
|
@@ -38,7 +40,7 @@ module Decidim
|
|
38
40
|
initializer "decidim_awesome.admin_menu" do
|
39
41
|
Decidim.menu :admin_menu do |menu|
|
40
42
|
menu.add_item :awesome_menu,
|
41
|
-
I18n.t("menu.decidim_awesome", scope: "decidim.admin"
|
43
|
+
I18n.t("menu.decidim_awesome", scope: "decidim.admin"),
|
42
44
|
decidim_admin_decidim_awesome.config_path(:editors),
|
43
45
|
icon_name: "fire",
|
44
46
|
position: 7.5,
|
@@ -47,6 +49,18 @@ module Decidim
|
|
47
49
|
end
|
48
50
|
end
|
49
51
|
|
52
|
+
initializer "decidim_awesome.admin_menu" do
|
53
|
+
Decidim.menu :admin_user_menu do |menu|
|
54
|
+
if DecidimAwesome.enabled? :admin_accountability
|
55
|
+
menu.add_item :admin_accountability,
|
56
|
+
I18n.t("menu.admin_accountability", scope: "decidim.admin"),
|
57
|
+
decidim_admin_decidim_awesome.admin_accountability_path,
|
58
|
+
active: is_active_link?(decidim_admin_decidim_awesome.admin_accountability_path, :inclusive),
|
59
|
+
position: 7
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
50
64
|
def load_seed
|
51
65
|
nil
|
52
66
|
end
|
@@ -61,6 +61,41 @@ module Decidim
|
|
61
61
|
false
|
62
62
|
end
|
63
63
|
|
64
|
+
# Configuration options to handle different validations in proposals
|
65
|
+
# (maybe in the future will apply to other places)
|
66
|
+
# Set it to :disabled if you don't want to use this feature
|
67
|
+
config_accessor :validate_title_min_length do
|
68
|
+
15
|
69
|
+
end
|
70
|
+
|
71
|
+
config_accessor :validate_title_max_caps_percent do
|
72
|
+
25
|
73
|
+
end
|
74
|
+
|
75
|
+
config_accessor :validate_title_max_marks_together do
|
76
|
+
1
|
77
|
+
end
|
78
|
+
|
79
|
+
config_accessor :validate_title_start_with_caps do
|
80
|
+
true
|
81
|
+
end
|
82
|
+
|
83
|
+
config_accessor :validate_body_min_length do
|
84
|
+
15
|
85
|
+
end
|
86
|
+
|
87
|
+
config_accessor :validate_body_max_caps_percent do
|
88
|
+
25
|
89
|
+
end
|
90
|
+
|
91
|
+
config_accessor :validate_body_max_marks_together do
|
92
|
+
1
|
93
|
+
end
|
94
|
+
|
95
|
+
config_accessor :validate_body_start_with_caps do
|
96
|
+
true
|
97
|
+
end
|
98
|
+
|
64
99
|
config_accessor :intergram_for_public do
|
65
100
|
false
|
66
101
|
end
|
@@ -186,6 +221,21 @@ module Decidim
|
|
186
221
|
}
|
187
222
|
end
|
188
223
|
|
224
|
+
# If true, enables a new section in "Participants" where to audit all the admin roles that have been enabled/disabled historically in Decidim
|
225
|
+
# Set to :disabled to completly remove this feature
|
226
|
+
config_accessor :admin_accountability do
|
227
|
+
[:participatory_space_roles, :admin_roles]
|
228
|
+
end
|
229
|
+
|
230
|
+
# Roles for which it is necessary to show admin_accountability
|
231
|
+
config_accessor :participatory_space_roles do
|
232
|
+
[
|
233
|
+
"Decidim::AssemblyUserRole",
|
234
|
+
"Decidim::ParticipatoryProcessUserRole",
|
235
|
+
"Decidim::ConferenceUserRole"
|
236
|
+
]
|
237
|
+
end
|
238
|
+
|
189
239
|
#
|
190
240
|
# HELPERS
|
191
241
|
#
|
@@ -194,7 +244,7 @@ module Decidim
|
|
194
244
|
def self.enabled?(config_vars)
|
195
245
|
config_vars = [config_vars] unless config_vars.respond_to?(:detect)
|
196
246
|
|
197
|
-
config_vars.
|
247
|
+
config_vars.any? do |item|
|
198
248
|
next unless config.has_key?(item.to_sym)
|
199
249
|
|
200
250
|
config.send(item) != :disabled
|
@@ -210,5 +260,9 @@ module Decidim
|
|
210
260
|
def self.register_component(manifest, &block)
|
211
261
|
registered_components << [manifest, block]
|
212
262
|
end
|
263
|
+
|
264
|
+
def self.legacy_version?
|
265
|
+
Decidim.version[0..3] == "0.26"
|
266
|
+
end
|
213
267
|
end
|
214
268
|
end
|
@@ -2,29 +2,45 @@ decidim-admin:
|
|
2
2
|
/app/views/layouts/decidim/admin/_header.html.erb:
|
3
3
|
decidim-0.25: 1aff077428830b12306d6c42e6b37216
|
4
4
|
decidim-core:
|
5
|
+
/app/validators/etiquette_validator.rb:
|
6
|
+
decidim-0.25: f7a4a652005385a994208f1ab41c4f08
|
7
|
+
decidim-0.26.4: f1f0fdf15be88f695c8359afab80f73f
|
5
8
|
/app/views/layouts/decidim/_head.html.erb:
|
6
|
-
decidim-0.25: eb490aa482477ff70f541d20cddec773
|
7
9
|
decidim-0.26: 0927fc81123addec70853c2e7986c538
|
10
|
+
decidim-0.27: c82ac6defe55b6d4f6a54544dbf2ac58
|
8
11
|
/app/packs/src/decidim/editor.js:
|
9
12
|
decidim-0.25: 742698903a30034094c01aecaca6de84
|
10
13
|
decidim-0.26: 651830d87aeeeff39316a787fc70d461
|
14
|
+
decidim-0.26.4: eac4ea47c09762aa2e56300bf7e98f31
|
15
|
+
decidim-0.27.3: a9585960d5979aa3adbf5561010513fe
|
11
16
|
/app/presenters/decidim/menu_presenter.rb:
|
12
17
|
decidim-0.25: f3b05daf279f909f8b3b628658dd5810
|
13
18
|
/app/presenters/decidim/menu_item_presenter.rb:
|
14
19
|
decidim-0.25: 860ffb160ec5f8552cc2855a6a47851b
|
20
|
+
decidim-0.26.4: d6d0129d81845c61884bcfd07885e911
|
21
|
+
decidim-0.27: c82bc2ea3c8f792472670d5996613ecf
|
15
22
|
/app/helpers/decidim/amendments_helper.rb:
|
16
23
|
decidim-0.25: 63532a04fcf07cf92b789833a9421416
|
17
24
|
decidim-0.26: 636943ccb2e994fe0124dc87e72e49e9
|
18
25
|
decidim-proposals:
|
19
26
|
/app/forms/decidim/proposals/proposal_wizard_create_step_form.rb:
|
20
27
|
decidim-0.24: db69edd0ba8ffa3965a5c44a6bfaba8d
|
28
|
+
decidim-0.27: b495d37088ecebcbe4ac9563bb3498d5
|
21
29
|
/app/helpers/decidim/proposals/application_helper.rb:
|
22
|
-
decidim-0.24: c5f99f5fa7de9a6e45776983330e9d73
|
23
30
|
decidim-0.26: 216c974bc425393c18b01bfc4eed4f0b
|
24
|
-
|
25
|
-
decidim-0.
|
31
|
+
decidim-0.26.4: 2e673d2aabe66a80a971d7ff80ebdbb8
|
32
|
+
decidim-0.26.7: ddd9a1f88609c8c7b60c07882d026441
|
33
|
+
decidim-0.27: c0ebeac39ebe4926bf0e5fc585a384d7
|
34
|
+
decidim-0.27.1: a4f902d1c4829a7f7f62299686f8604e
|
35
|
+
decidim-0.27.3: a9c9ed5eedaf7bf80afaf9ff5a89c254
|
26
36
|
/app/views/decidim/proposals/collaborative_drafts/_edit_form_fields.html.erb:
|
27
|
-
|
28
|
-
decidim-0.26:
|
37
|
+
# this file is not overriden anymore but it needs to be the last version
|
38
|
+
decidim-0.26: 519a0d34a9ffbd8b9c26d9b68ff4e2a3
|
39
|
+
decidim-0.27.3: 949b2163c547742549531320bf5e0de1
|
40
|
+
/app/views/decidim/proposals/collaborative_drafts/show.html.erb:
|
41
|
+
# this file is not overriden anymore but it needs to be the last version
|
42
|
+
decidim-0.26: 519a0d34a9ffbd8b9c26d9b68ff4e2a3
|
43
|
+
decidim-0.27.3: b1ec22d35263a2ac96fe4604c0ceb752
|
29
44
|
/app/views/decidim/proposals/admin/proposals/_form.html.erb:
|
30
45
|
decidim-0.25: 90a04984d4269398b7cd21aa33763a1f
|
46
|
+
decidim-0.27: f60168e432e1d419e5aec5d3d1e53f0e
|
@@ -53,18 +53,18 @@ module Decidim
|
|
53
53
|
|
54
54
|
# config processed for the organization config, without context
|
55
55
|
def organization_config
|
56
|
-
@organization_config ||= unfiltered_config.
|
56
|
+
@organization_config ||= unfiltered_config.to_h do |key, value|
|
57
57
|
value = defaults[key] unless enabled_for_organization? key
|
58
58
|
[key, value]
|
59
|
-
end
|
59
|
+
end
|
60
60
|
end
|
61
61
|
|
62
62
|
# config normalized according default values, without context, without organization config
|
63
63
|
def unfiltered_config
|
64
|
-
valid = @vars.
|
64
|
+
valid = @vars.to_h { |v| [v.var.to_sym, v.value] }
|
65
65
|
|
66
|
-
map_defaults do |key|
|
67
|
-
valid[key]
|
66
|
+
map_defaults do |key, val|
|
67
|
+
valid.has_key?(key) ? valid[key] : val
|
68
68
|
end
|
69
69
|
end
|
70
70
|
|
@@ -135,31 +135,31 @@ module Decidim
|
|
135
135
|
plural_key = singular_key.pluralize.to_sym
|
136
136
|
return {} unless config[plural_key]
|
137
137
|
|
138
|
-
@sub_configs[singular_key] = config[plural_key].
|
138
|
+
@sub_configs[singular_key] = config[plural_key].to_h do |key, _value|
|
139
139
|
[key, AwesomeConfig.find_by(var: "#{singular_key}_#{key}", organization: @organization)]
|
140
|
-
end
|
140
|
+
end
|
141
141
|
end
|
142
142
|
|
143
143
|
private
|
144
144
|
|
145
145
|
def map_defaults
|
146
|
-
defaults.
|
146
|
+
defaults.to_h do |key, val|
|
147
147
|
value = false
|
148
148
|
unless val == :disabled
|
149
|
-
value = yield(key
|
150
|
-
value = val.merge(value.transform_keys(&:to_sym)) if val.is_a? Hash
|
149
|
+
value = yield(key, val)
|
150
|
+
value = val.merge(value.transform_keys(&:to_sym)) if val.is_a?(Hash) && value.is_a?(Hash)
|
151
151
|
end
|
152
152
|
[key, value]
|
153
|
-
end
|
153
|
+
end
|
154
154
|
end
|
155
155
|
|
156
156
|
def calculate_config
|
157
157
|
# filter vars compliant with current context
|
158
158
|
valid = @vars.filter { |item| enabled_for_organization?(item.var) && valid_in_context?(item.all_constraints) }
|
159
|
-
.
|
159
|
+
.to_h { |v| [v.var.to_sym, v.value] }
|
160
160
|
|
161
|
-
map_defaults do |key|
|
162
|
-
valid[key]
|
161
|
+
map_defaults do |key, val|
|
162
|
+
valid.has_key?(key) ? valid[key] : val
|
163
163
|
end
|
164
164
|
end
|
165
165
|
|
@@ -16,7 +16,7 @@ module Decidim
|
|
16
16
|
def participatory_spaces_routes
|
17
17
|
spaces = Decidim.participatory_space_manifests \
|
18
18
|
.filter { |space| !DecidimAwesome.config.participatory_spaces_routes_context.has_key?(space.name) } \
|
19
|
-
.
|
19
|
+
.to_h { |space| [space.name.to_s, space.name.to_s] }
|
20
20
|
DecidimAwesome.config.participatory_spaces_routes_context.each do |manifest, routes|
|
21
21
|
routes.each do |route|
|
22
22
|
spaces[route.to_s] = manifest.to_s
|
@@ -27,25 +27,52 @@ module Decidim
|
|
27
27
|
# Include additional helpers globally
|
28
28
|
ActionView::Base.include(Decidim::DecidimAwesome::AwesomeHelpers)
|
29
29
|
|
30
|
-
#
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
30
|
+
# Override EtiquetteValidator
|
31
|
+
EtiquetteValidator.include(Decidim::DecidimAwesome::EtiquetteValidatorOverride) if DecidimAwesome.enabled?([:validate_title_max_caps_percent,
|
32
|
+
:validate_title_max_marks_together,
|
33
|
+
:validate_title_start_with_caps,
|
34
|
+
:validate_body_max_caps_percent,
|
35
|
+
:validate_body_max_marks_together,
|
36
|
+
:validate_body_start_with_caps])
|
35
37
|
|
36
38
|
# Custom fields need to deal with several places
|
37
|
-
if DecidimAwesome.enabled?(:proposal_custom_fields
|
38
|
-
|
39
|
+
if DecidimAwesome.enabled?([:proposal_custom_fields,
|
40
|
+
:validate_title_min_length,
|
41
|
+
:validate_title_max_caps_percent,
|
42
|
+
:validate_title_max_marks_together,
|
43
|
+
:validate_title_start_with_caps,
|
44
|
+
:validate_body_min_length,
|
45
|
+
:validate_body_max_caps_percent,
|
46
|
+
:validate_body_max_marks_together,
|
47
|
+
:validate_body_start_with_caps])
|
39
48
|
Decidim::Proposals::ProposalWizardCreateStepForm.include(Decidim::DecidimAwesome::Proposals::ProposalWizardCreateStepFormOverride)
|
40
|
-
Decidim::AmendmentsHelper.include(Decidim::DecidimAwesome::AmendmentsHelperOverride)
|
41
49
|
end
|
42
50
|
|
51
|
+
# override user's admin property
|
52
|
+
Decidim::User.include(Decidim::DecidimAwesome::UserOverride) if DecidimAwesome.enabled?(:scoped_admins)
|
53
|
+
|
43
54
|
Decidim::MenuPresenter.include(Decidim::DecidimAwesome::MenuPresenterOverride)
|
44
55
|
Decidim::MenuItemPresenter.include(Decidim::DecidimAwesome::MenuItemPresenterOverride)
|
45
56
|
|
46
57
|
# Late registering of components to take into account initializer values
|
47
58
|
DecidimAwesome.registered_components.each do |manifest, block|
|
48
|
-
|
59
|
+
next if DecidimAwesome.disabled_components.include?(manifest)
|
60
|
+
next if Decidim.find_component_manifest(manifest)
|
61
|
+
|
62
|
+
Decidim.register_component(manifest, &block)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
initializer "decidim_decidim_awesome.overrides", after: "decidim.action_controller" do
|
67
|
+
config.to_prepare do
|
68
|
+
# redirect unauthorized scoped admins to allowed places or custom redirects if configured
|
69
|
+
Decidim::ErrorsController.include(Decidim::DecidimAwesome::NotFoundRedirect) if DecidimAwesome.enabled?([:scoped_admins, :custom_redirects])
|
70
|
+
|
71
|
+
# Custom fields need to deal with several places
|
72
|
+
if DecidimAwesome.enabled?(:proposal_custom_fields)
|
73
|
+
Decidim::Proposals::ApplicationHelper.include(Decidim::DecidimAwesome::Proposals::ApplicationHelperOverride)
|
74
|
+
Decidim::AmendmentsHelper.include(Decidim::DecidimAwesome::AmendmentsHelperOverride)
|
75
|
+
end
|
49
76
|
end
|
50
77
|
end
|
51
78
|
|
@@ -43,7 +43,8 @@ Decidim::DecidimAwesome.register_component(:awesome_iframe) do |component|
|
|
43
43
|
published_at: Time.current,
|
44
44
|
participatory_space: participatory_space,
|
45
45
|
settings: {
|
46
|
-
announcement: { en: Faker::Lorem.paragraphs(number: 2).join("\n") }
|
46
|
+
announcement: { en: Faker::Lorem.paragraphs(number: 2).join("\n") },
|
47
|
+
iframe: '<iframe src="https://picsum.photos/800/600" width="100%" height="700" frameborder="0"></iframe>'
|
47
48
|
}
|
48
49
|
}
|
49
50
|
|