decidim-templates 0.23.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of decidim-templates might be problematic. Click here for more details.

Files changed (93) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE-AGPLv3.txt +661 -0
  3. data/README.md +31 -0
  4. data/Rakefile +9 -0
  5. data/app/assets/config/decidim_templates_manifest.css +3 -0
  6. data/app/assets/config/decidim_templates_manifest.js +0 -0
  7. data/app/assets/images/decidim/templates/icon.svg +1 -0
  8. data/app/assets/stylesheets/decidim/templates/templates.scss +14 -0
  9. data/app/commands/decidim/templates/admin/apply_questionnaire_template.rb +74 -0
  10. data/app/commands/decidim/templates/admin/copy_questionnaire_template.rb +79 -0
  11. data/app/commands/decidim/templates/admin/create_questionnaire_template.rb +34 -0
  12. data/app/commands/decidim/templates/admin/destroy_template.rb +41 -0
  13. data/app/commands/decidim/templates/admin/update_template.rb +35 -0
  14. data/app/controllers/decidim/templates/admin/application_controller.rb +34 -0
  15. data/app/controllers/decidim/templates/admin/concerns/templatable.rb +46 -0
  16. data/app/controllers/decidim/templates/admin/questionnaire_templates/questionnaires_controller.rb +38 -0
  17. data/app/controllers/decidim/templates/admin/questionnaire_templates_controller.rb +156 -0
  18. data/app/controllers/decidim/templates/application_controller.rb +13 -0
  19. data/app/forms/decidim/templates/admin/template_form.rb +17 -0
  20. data/app/helpers/decidim/templates/admin/templates_helper.rb +32 -0
  21. data/app/helpers/decidim/templates/application_helper.rb +10 -0
  22. data/app/models/concerns/decidim/templates/templatable.rb +24 -0
  23. data/app/models/decidim/templates/application_record.rb +10 -0
  24. data/app/models/decidim/templates/template.rb +33 -0
  25. data/app/permissions/decidim/templates/admin/permissions.rb +26 -0
  26. data/app/views/decidim/templates/admin/questionnaire_templates/_choose.html.erb +35 -0
  27. data/app/views/decidim/templates/admin/questionnaire_templates/_form.html.erb +16 -0
  28. data/app/views/decidim/templates/admin/questionnaire_templates/_preview.html.erb +73 -0
  29. data/app/views/decidim/templates/admin/questionnaire_templates/edit.html.erb +20 -0
  30. data/app/views/decidim/templates/admin/questionnaire_templates/index.html.erb +52 -0
  31. data/app/views/decidim/templates/admin/questionnaire_templates/new.html.erb +7 -0
  32. data/app/views/decidim/templates/admin/questionnaire_templates/preview.js.erb +11 -0
  33. data/app/views/layouts/decidim/admin/templates.html.erb +21 -0
  34. data/config/locales/am-ET.yml +1 -0
  35. data/config/locales/ar.yml +1 -0
  36. data/config/locales/bg.yml +1 -0
  37. data/config/locales/ca.yml +60 -0
  38. data/config/locales/cs.yml +60 -0
  39. data/config/locales/da.yml +1 -0
  40. data/config/locales/de.yml +54 -0
  41. data/config/locales/el.yml +1 -0
  42. data/config/locales/en.yml +61 -0
  43. data/config/locales/eo.yml +1 -0
  44. data/config/locales/es-MX.yml +60 -0
  45. data/config/locales/es-PY.yml +60 -0
  46. data/config/locales/es.yml +60 -0
  47. data/config/locales/et.yml +1 -0
  48. data/config/locales/eu.yml +1 -0
  49. data/config/locales/fi-plain.yml +60 -0
  50. data/config/locales/fi.yml +60 -0
  51. data/config/locales/fr-CA.yml +60 -0
  52. data/config/locales/fr.yml +60 -0
  53. data/config/locales/ga-IE.yml +1 -0
  54. data/config/locales/gl.yml +1 -0
  55. data/config/locales/hr.yml +1 -0
  56. data/config/locales/hu.yml +1 -0
  57. data/config/locales/id-ID.yml +1 -0
  58. data/config/locales/is-IS.yml +1 -0
  59. data/config/locales/it.yml +60 -0
  60. data/config/locales/ja.yml +60 -0
  61. data/config/locales/ko-KR.yml +1 -0
  62. data/config/locales/ko.yml +1 -0
  63. data/config/locales/lt.yml +1 -0
  64. data/config/locales/lv.yml +1 -0
  65. data/config/locales/mt.yml +1 -0
  66. data/config/locales/nl.yml +60 -0
  67. data/config/locales/no.yml +5 -0
  68. data/config/locales/om-ET.yml +1 -0
  69. data/config/locales/pl.yml +1 -0
  70. data/config/locales/pt-BR.yml +1 -0
  71. data/config/locales/pt.yml +1 -0
  72. data/config/locales/ro-RO.yml +1 -0
  73. data/config/locales/ru.yml +1 -0
  74. data/config/locales/sk.yml +1 -0
  75. data/config/locales/sl.yml +1 -0
  76. data/config/locales/so-SO.yml +1 -0
  77. data/config/locales/sr-CS.yml +1 -0
  78. data/config/locales/sv.yml +1 -0
  79. data/config/locales/ti-ER.yml +1 -0
  80. data/config/locales/tr-TR.yml +1 -0
  81. data/config/locales/uk.yml +1 -0
  82. data/config/locales/vi-VN.yml +1 -0
  83. data/config/locales/vi.yml +1 -0
  84. data/config/locales/zh-CN.yml +60 -0
  85. data/config/locales/zh-TW.yml +1 -0
  86. data/lib/decidim/templates.rb +12 -0
  87. data/lib/decidim/templates/admin.rb +10 -0
  88. data/lib/decidim/templates/admin_engine.rb +54 -0
  89. data/lib/decidim/templates/engine.rb +23 -0
  90. data/lib/decidim/templates/test/factories.rb +27 -0
  91. data/lib/decidim/templates/test/shared_examples/uses_questionnaire_templates.rb +108 -0
  92. data/lib/decidim/templates/version.rb +10 -0
  93. metadata +191 -0
@@ -0,0 +1,20 @@
1
+ <%= decidim_form_for(@form, url: questionnaire_template_path, html: { class: "form edit_questionnaire_template" }) do |f| %>
2
+ <%= render partial: "form", object: f %>
3
+ <% end %>
4
+
5
+ <div class="card">
6
+ <div class="card-divider">
7
+ <h2 class="card-title"><%= t(".questionnaire") %></h2>
8
+ <%= link_to t(".edit"), edit_questionnaire_path(template), class: "button tiny button--title" %>
9
+ </div>
10
+
11
+ <div class="card-section questionnaire-template-preview">
12
+ <div class="row column">
13
+ <% if template.templatable.questions.any? %>
14
+ <%= render partial: "preview", locals: { questionnaire: template.templatable } %>
15
+ <% else %>
16
+ <%= t(".empty") %>
17
+ <% end %>
18
+ </div>
19
+ </div>
20
+ </div>
@@ -0,0 +1,52 @@
1
+ <div class="card">
2
+ <div class="card-divider">
3
+ <h2 class="card-title">
4
+ <%= t ".title" %>
5
+ <% if allowed_to?(:create, :template) %>
6
+ <%= link_to t("actions.new", scope: "decidim.admin", name: t("template.name", scope: "decidim.models").downcase), ["new", "questionnaire_template"], class: "button tiny button--title new" %>
7
+ <% end %>
8
+ </h2>
9
+ </div>
10
+ <div class="card-section">
11
+ <% if @templates.any? %>
12
+ <div class="table-scroll">
13
+ <table class="table-list questionnaire-templates">
14
+ <thead>
15
+ <tr>
16
+ <th><%= t("template.name", scope: "decidim.models") %></th>
17
+ <th><%= t("questionnaire_template.fields.title", scope: "decidim.models") %></th>
18
+ <th><%= t("questionnaire_template.fields.questions", scope: "decidim.models") %></th>
19
+ <th><%= t("template.fields.created_at", scope: "decidim.models") %></th>
20
+ <th></th>
21
+ </tr>
22
+ </thead>
23
+ <tbody>
24
+ <% @templates.each do |template| %>
25
+ <tr data-questionnaire_template-id="<%= template.id %>">
26
+ <td><%= link_to translated_attribute(template.name), edit_questionnaire_template_path(template) %></td>
27
+ <td><%= link_to translated_attribute(template.templatable.title), edit_questionnaire_path(template) %></td>
28
+ <td><%= template.templatable.questions.count.to_i %></td>
29
+ <td><%= l template.created_at, format: :long %></td>
30
+ <td class="table-list__actions">
31
+ <% if allowed_to?(:update, :template, questionnaire_template: template) %>
32
+ <%= icon_link_to "pencil", edit_questionnaire_template_path(template), t("actions.edit", scope: "decidim.admin"), class: "edit" %>
33
+ <% end %>
34
+
35
+ <% if allowed_to?(:copy, :template, questionnaire_template: template) %>
36
+ <%= icon_link_to "clipboard", copy_questionnaire_template_path(template), t("actions.duplicate", scope: "decidim.admin"), method: :post %>
37
+ <% end %>
38
+
39
+ <% if allowed_to?(:destroy, :template, questionnaire_template: template) %>
40
+ <%= icon_link_to "circle-x", questionnaire_template_path(template), t("actions.destroy", scope: "decidim.admin"), method: :delete, data: { confirm: t(".confirm_delete") }, class: "action-icon--remove" %>
41
+ <% end %>
42
+ </td>
43
+ </tr>
44
+ <% end %>
45
+ </tbody>
46
+ </table>
47
+ </div>
48
+ <% else %>
49
+ <%= t("templates.empty", scope: "decidim.admin") %>
50
+ <% end %>
51
+ </div>
52
+ </div>
@@ -0,0 +1,7 @@
1
+ <% content_for :title do %>
2
+ <%= t("templates", scope: "decidim.admin.titles") %>
3
+ <% end %>
4
+
5
+ <%= decidim_form_for(@form, url: questionnaire_templates_path, html: { class: "form new_questionnaire_template" }) do |f| %>
6
+ <%= render partial: "form", object: f %>
7
+ <% end %>
@@ -0,0 +1,11 @@
1
+ /* eslint-disable no-var, prefer-template */
2
+ (function () {
3
+ var $preview = $(".choose-template-preview");
4
+ var $templateName = $(".template-name");
5
+ var $templateDescription = $(".template-description");
6
+
7
+ $templateName.html("<%= translated_attribute @template.name %>");
8
+ $templateDescription.html("<%= translated_attribute @template.description %>");
9
+
10
+ $preview.html("<%= j(render partial: "preview", locals: { questionnaire: @questionnaire }) %>");
11
+ }());
@@ -0,0 +1,21 @@
1
+ <% content_for :secondary_nav do %>
2
+ <div class="secondary-nav secondary-nav--subnav">
3
+ <ul>
4
+ <% template_types.each_pair do |name, url| %>
5
+ <li <% if is_active_link?(url) %> class="is-active" <% end %>>
6
+ <%= aria_selected_link_to name, url %>
7
+ </li>
8
+ <% end %>
9
+ </ul>
10
+ </div>
11
+ <% end %>
12
+
13
+ <%= render "layouts/decidim/admin/application" do %>
14
+ <div class="process-title">
15
+ <div class="process-title-content">
16
+ <%= link_to t("decidim.admin.titles.templates"), decidim_admin_templates.root_url %>
17
+ </div>
18
+ </div>
19
+
20
+ <%= yield %>
21
+ <% end %>
@@ -0,0 +1 @@
1
+ am:
@@ -0,0 +1 @@
1
+ ar:
@@ -0,0 +1 @@
1
+ bg:
@@ -0,0 +1,60 @@
1
+ ca:
2
+ decidim:
3
+ admin:
4
+ menu:
5
+ templates: Plantilles
6
+ templates:
7
+ apply:
8
+ error: S'ha produït un error en actualitzar aquesta plantilla.
9
+ success: La plantilla s'ha aplicat correctament
10
+ copy:
11
+ error: S'ha produït un error en copiar aquesta plantilla.
12
+ success: La plantilla s'ha copiat correctament
13
+ create:
14
+ error: S'ha produït un error en crear aquesta plantilla.
15
+ success: La plantilla s'ha creat correctament
16
+ destroy:
17
+ success: La plantilla s'ha eliminat correctament
18
+ empty: Encara no hi ha plantilles.
19
+ update:
20
+ error: S'ha produït un error en actualitzar aquesta plantilla.
21
+ success: La plantilla s'ha actualitzat correctament
22
+ titles:
23
+ template_types:
24
+ questionnaires: Plantilles de qüestionari
25
+ templates: Plantilles
26
+ models:
27
+ questionnaire_template:
28
+ fields:
29
+ questions: Nombre de preguntes
30
+ title: Títol del qüestionari
31
+ template:
32
+ fields:
33
+ created_at: Creat el
34
+ name: Plantilla
35
+ templates:
36
+ admin:
37
+ questionnaire_templates:
38
+ choose:
39
+ create_from_template: Crear des d'una plantilla
40
+ description: Estàs a punt de crear un nou qüestionari. Pots triar una plantilla predefinida i modificar-la després.
41
+ label: Escollir una plantilla
42
+ placeholder: Escollir una plantilla
43
+ skip_template: Ometre
44
+ edit:
45
+ edit: Editar
46
+ empty: Encara no hi ha preguntes
47
+ questionnaire: Qüestionari
48
+ form:
49
+ save: Desar
50
+ template_title: Informació de la plantilla
51
+ title: Qüestionari
52
+ index:
53
+ confirm_delete: Segur que vols eliminar aquesta plantilla?
54
+ title: Plantilles de qüestionari
55
+ preview:
56
+ current_step: Pas %{step}
57
+ of_total_steps: de %{total_steps}
58
+ tos_agreement: En participar acceptes els Termes i condicions d'ús
59
+ template_types:
60
+ questionnaires: Qüestionari
@@ -0,0 +1,60 @@
1
+ cs:
2
+ decidim:
3
+ admin:
4
+ menu:
5
+ templates: Šablony
6
+ templates:
7
+ apply:
8
+ error: Při použití této šablony došlo k chybě.
9
+ success: Šablona byla úspěšně použita
10
+ copy:
11
+ error: Při kopírování této šablony došlo k chybě.
12
+ success: Šablona byla úspěšně zkopírována
13
+ create:
14
+ error: Při vytváření této šablony došlo k chybě.
15
+ success: Šablona byla úspěšně vytvořena
16
+ destroy:
17
+ success: Šablona byla úspěšně odstraněna
18
+ empty: Zatím nejsou žádné šablony.
19
+ update:
20
+ error: Při aktualizaci této šablony došlo k chybě.
21
+ success: Šablona byla úspěšně aktualizována
22
+ titles:
23
+ template_types:
24
+ questionnaires: Šablony dotazníků
25
+ templates: Šablony
26
+ models:
27
+ questionnaire_template:
28
+ fields:
29
+ questions: Počet otázek
30
+ title: Nadpis dotazníku
31
+ template:
32
+ fields:
33
+ created_at: Vytvořeno v
34
+ name: Šablona
35
+ templates:
36
+ admin:
37
+ questionnaire_templates:
38
+ choose:
39
+ create_from_template: Vytvořit ze šablony
40
+ description: Chystáte se vytvořit nový dotazník. Můžete si vybrat předem definovanou šablonu a poté ji upravit.
41
+ label: Vyberte šablonu
42
+ placeholder: Vyberte šablonu
43
+ skip_template: Přeskočit
44
+ edit:
45
+ edit: Upravit
46
+ empty: Zatím nejsou žádné otázky
47
+ questionnaire: Dotazník
48
+ form:
49
+ save: Uložit
50
+ template_title: Informace o šabloně
51
+ title: Dotazník
52
+ index:
53
+ confirm_delete: Jste si jisti, že chcete odstranit tuto šablonu?
54
+ title: Šablony dotazníků
55
+ preview:
56
+ current_step: Krok %{step}
57
+ of_total_steps: z %{total_steps}
58
+ tos_agreement: Zúčastněním souhlasíte s podmínkami služby
59
+ template_types:
60
+ questionnaires: Dotazníky
@@ -0,0 +1 @@
1
+ da:
@@ -0,0 +1,54 @@
1
+ de:
2
+ decidim:
3
+ admin:
4
+ menu:
5
+ templates: Vorlagen
6
+ templates:
7
+ apply:
8
+ error: Es gab ein Problem beim Anwenden dieser Vorlage.
9
+ success: Vorlage erfolgreich angewendet
10
+ copy:
11
+ error: Beim Kopieren dieser Vorlage ist ein Problem aufgetreten.
12
+ success: Vorlage erfolgreich kopiert
13
+ create:
14
+ error: Es gab ein Problem beim Erstellen dieser Vorlage.
15
+ success: Vorlage erfolgreich erstellt
16
+ destroy:
17
+ success: Vorlage erfolgreich gelöscht
18
+ empty: Es gibt noch keine Vorlagen.
19
+ update:
20
+ error: Bei der Aktualisierung dieser Vorlage ist ein Problem aufgetreten.
21
+ success: Vorlage erfolgreich aktualisiert
22
+ titles:
23
+ template_types:
24
+ questionnaires: Fragebogenvorlagen
25
+ templates: Vorlagen
26
+ models:
27
+ questionnaire_template:
28
+ fields:
29
+ questions: Anzahl der Fragen
30
+ title: Fragebogenname
31
+ template:
32
+ fields:
33
+ created_at: Erstellt am
34
+ name: Vorlage
35
+ templates:
36
+ admin:
37
+ questionnaire_templates:
38
+ choose:
39
+ create_from_template: Aus Vorlage erstellen
40
+ description: Sie sind im Begriff, einen neuen Fragebogen zu erstellen. Sie können eine vordefinierte Vorlage auswählen und sie anschließend ändern.
41
+ label: Vorlage auswählen
42
+ placeholder: Vorlage auswählen
43
+ skip_template: Überspringen
44
+ edit:
45
+ edit: Bearbeiten
46
+ empty: Es gibt noch keine Fragen
47
+ questionnaire: Fragebogen
48
+ form:
49
+ save: Speichern
50
+ template_title: Vorlageninformation
51
+ title: Fragebogen
52
+ index:
53
+ confirm_delete: Möchten Sie diese Vorlage wirklich löschen?
54
+ title: Fragebogenvorlagen
@@ -0,0 +1 @@
1
+ el:
@@ -0,0 +1,61 @@
1
+ ---
2
+ en:
3
+ decidim:
4
+ admin:
5
+ menu:
6
+ templates: Templates
7
+ templates:
8
+ apply:
9
+ error: There was a problem applying this template.
10
+ success: Template applied successfully
11
+ copy:
12
+ error: There was a problem copying this template.
13
+ success: Template copied successfully
14
+ create:
15
+ error: There was a problem creating this template.
16
+ success: Template created successfully
17
+ destroy:
18
+ success: Template deleted successfully
19
+ empty: There are no templates yet.
20
+ update:
21
+ error: There was a problem upadting this template.
22
+ success: Template updated successfully
23
+ titles:
24
+ template_types:
25
+ questionnaires: Questionnaire templates
26
+ templates: Templates
27
+ models:
28
+ questionnaire_template:
29
+ fields:
30
+ questions: Number of questions
31
+ title: Questionnaire Title
32
+ template:
33
+ fields:
34
+ created_at: Created at
35
+ name: Template
36
+ templates:
37
+ admin:
38
+ questionnaire_templates:
39
+ choose:
40
+ create_from_template: Create from template
41
+ description: You are about to create a new questionnaire. You may choose a predefined template and modify it afterwards.
42
+ label: Choose template
43
+ placeholder: Choose template
44
+ skip_template: Skip
45
+ edit:
46
+ edit: Edit
47
+ empty: There are no questions yet
48
+ questionnaire: Questionnaire
49
+ form:
50
+ save: Save
51
+ template_title: Template information
52
+ title: Questionnaire
53
+ index:
54
+ confirm_delete: Are you sure you want to delete this template?
55
+ title: Questionnaire templates
56
+ preview:
57
+ current_step: Step %{step}
58
+ of_total_steps: of %{total_steps}
59
+ tos_agreement: By participating you accept its Terms of Service
60
+ template_types:
61
+ questionnaires: Questionnaires
@@ -0,0 +1 @@
1
+ eo:
@@ -0,0 +1,60 @@
1
+ es-MX:
2
+ decidim:
3
+ admin:
4
+ menu:
5
+ templates: Plantillas
6
+ templates:
7
+ apply:
8
+ error: Se ha producido un error al aplicar esta plantilla.
9
+ success: Plantilla aplicada correctamente
10
+ copy:
11
+ error: Se ha producido un error al copiar esta plantilla.
12
+ success: Plantilla copiada correctamente
13
+ create:
14
+ error: Se ha producido un error al crear esta plantilla.
15
+ success: Plantilla creada correctamente
16
+ destroy:
17
+ success: Plantilla eliminada correctamente
18
+ empty: Todavía no hay plantillas.
19
+ update:
20
+ error: Se ha producido un error al actualizar esta plantilla.
21
+ success: Plantilla actualizada correctamente
22
+ titles:
23
+ template_types:
24
+ questionnaires: Plantillas de cuestionario
25
+ templates: Plantillas
26
+ models:
27
+ questionnaire_template:
28
+ fields:
29
+ questions: Número de preguntas
30
+ title: Título del cuestionario
31
+ template:
32
+ fields:
33
+ created_at: Creado el
34
+ name: Plantilla
35
+ templates:
36
+ admin:
37
+ questionnaire_templates:
38
+ choose:
39
+ create_from_template: Crear desde plantilla
40
+ description: Estás a punto de crear un nuevo cuestionario. Puedes elegir una plantilla predefinida y modificarla después.
41
+ label: Elegir una plantilla
42
+ placeholder: Elegir una plantilla
43
+ skip_template: Omitir
44
+ edit:
45
+ edit: Editar
46
+ empty: Aún no hay preguntas
47
+ questionnaire: Cuestionario
48
+ form:
49
+ save: Guardar
50
+ template_title: Información de la plantilla
51
+ title: Cuestionario
52
+ index:
53
+ confirm_delete: '¿Seguro que quieres eliminar esta plantilla?'
54
+ title: Plantillas de cuestionario
55
+ preview:
56
+ current_step: Paso %{step}
57
+ of_total_steps: de %{total_steps}
58
+ tos_agreement: Al participar aceptas los Términos y condiciones de uso
59
+ template_types:
60
+ questionnaires: Cuestionarios
@@ -0,0 +1,60 @@
1
+ es-PY:
2
+ decidim:
3
+ admin:
4
+ menu:
5
+ templates: Plantillas
6
+ templates:
7
+ apply:
8
+ error: Se ha producido un error al aplicar esta plantilla.
9
+ success: Plantilla aplicada correctamente
10
+ copy:
11
+ error: Se ha producido un error al copiar esta plantilla.
12
+ success: Plantilla copiada correctamente
13
+ create:
14
+ error: Se ha producido un error al crear esta plantilla.
15
+ success: Plantilla creada correctamente
16
+ destroy:
17
+ success: Plantilla eliminada correctamente
18
+ empty: Todavía no hay plantillas.
19
+ update:
20
+ error: Se ha producido un error al actualizar esta plantilla.
21
+ success: Plantilla actualizada correctamente
22
+ titles:
23
+ template_types:
24
+ questionnaires: Plantillas de cuestionario
25
+ templates: Plantillas
26
+ models:
27
+ questionnaire_template:
28
+ fields:
29
+ questions: Número de preguntas
30
+ title: Título del cuestionario
31
+ template:
32
+ fields:
33
+ created_at: Creado el
34
+ name: Plantilla
35
+ templates:
36
+ admin:
37
+ questionnaire_templates:
38
+ choose:
39
+ create_from_template: Crear desde plantilla
40
+ description: Estás a punto de crear un nuevo cuestionario. Puedes elegir una plantilla predefinida y modificarla después.
41
+ label: Elegir una plantilla
42
+ placeholder: Elegir una plantilla
43
+ skip_template: Omitir
44
+ edit:
45
+ edit: Editar
46
+ empty: Aún no hay preguntas
47
+ questionnaire: Cuestionario
48
+ form:
49
+ save: Guardar
50
+ template_title: Información de la plantilla
51
+ title: Cuestionario
52
+ index:
53
+ confirm_delete: '¿Seguro que quieres eliminar esta plantilla?'
54
+ title: Plantillas de cuestionario
55
+ preview:
56
+ current_step: Paso %{step}
57
+ of_total_steps: de %{total_steps}
58
+ tos_agreement: Al participar aceptas los Términos y condiciones de uso
59
+ template_types:
60
+ questionnaires: Cuestionarios