decidim-admin 0.0.3 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/decidim/admin/sort_steps.js.es6 +3 -3
  3. data/app/assets/stylesheets/decidim/admin/_email_preview.scss +5 -0
  4. data/app/assets/stylesheets/decidim/admin/application.scss +1 -0
  5. data/app/commands/decidim/admin/create_newsletter.rb +30 -0
  6. data/app/commands/decidim/admin/create_participatory_process_admin.rb +3 -0
  7. data/app/commands/decidim/admin/deliver_newsletter.rb +29 -0
  8. data/app/commands/decidim/admin/destroy_participatory_process_step.rb +9 -0
  9. data/app/commands/decidim/admin/update_feature_permissions.rb +46 -0
  10. data/app/commands/decidim/admin/update_newsletter.rb +33 -0
  11. data/app/commands/decidim/admin/update_organization.rb +17 -2
  12. data/app/commands/decidim/admin/update_participatory_process.rb +4 -2
  13. data/app/constraints/decidim/admin/organization_dashboard_constraint.rb +1 -1
  14. data/app/controllers/decidim/admin/application_controller.rb +3 -0
  15. data/app/controllers/decidim/admin/feature_permissions_controller.rb +59 -0
  16. data/app/controllers/decidim/admin/features_controller.rb +20 -0
  17. data/app/controllers/decidim/admin/newsletters_controller.rb +115 -0
  18. data/app/controllers/decidim/admin/participatory_processes_controller.rb +4 -4
  19. data/app/controllers/decidim/admin/users_controller.rb +3 -1
  20. data/app/forms/decidim/admin/newsletter_form.rb +15 -0
  21. data/app/forms/decidim/admin/organization_form.rb +10 -0
  22. data/app/forms/decidim/admin/participatory_process_form.rb +8 -5
  23. data/app/forms/decidim/admin/permission_form.rb +31 -0
  24. data/app/forms/decidim/admin/permissions_form.rb +16 -0
  25. data/app/helpers/decidim/admin/application_helper.rb +1 -0
  26. data/app/jobs/decidim/admin/newsletter_delivery_job.rb +18 -0
  27. data/app/jobs/decidim/admin/newsletter_job.rb +32 -0
  28. data/app/models/decidim/admin/abilities/admin_user.rb +4 -0
  29. data/app/models/decidim/admin/abilities/base.rb +4 -0
  30. data/app/models/decidim/admin/abilities/collaborator_user.rb +19 -0
  31. data/app/models/decidim/admin/abilities/participatory_process_admin.rb +1 -1
  32. data/app/models/decidim/admin/participatory_process_user_role.rb +1 -1
  33. data/app/queries/decidim/admin/manageable_participatory_processes_for_user.rb +1 -1
  34. data/app/views/decidim/admin/attachments/edit.html.erb +1 -1
  35. data/app/views/decidim/admin/attachments/new.html.erb +1 -1
  36. data/app/views/decidim/admin/categories/edit.html.erb +1 -1
  37. data/app/views/decidim/admin/categories/new.html.erb +1 -1
  38. data/app/views/decidim/admin/dashboard/show.html.erb +1 -1
  39. data/app/views/decidim/admin/feature_permissions/edit.html.erb +27 -0
  40. data/app/views/decidim/admin/features/_feature.html.erb +10 -0
  41. data/app/views/decidim/admin/features/edit.html.erb +1 -1
  42. data/app/views/decidim/admin/features/new.html.erb +1 -1
  43. data/app/views/decidim/admin/newsletters/_form.html.erb +5 -0
  44. data/app/views/decidim/admin/newsletters/edit.html.erb +11 -0
  45. data/app/views/decidim/admin/newsletters/index.html.erb +47 -0
  46. data/app/views/decidim/admin/newsletters/new.html.erb +11 -0
  47. data/app/views/decidim/admin/newsletters/show.html.erb +14 -0
  48. data/app/views/decidim/admin/organization/_form.html.erb +34 -0
  49. data/app/views/decidim/admin/organization/edit.html.erb +2 -2
  50. data/app/views/decidim/admin/participatory_process_steps/_form.html.erb +1 -1
  51. data/app/views/decidim/admin/participatory_process_steps/edit.html.erb +1 -1
  52. data/app/views/decidim/admin/participatory_process_steps/new.html.erb +1 -1
  53. data/app/views/decidim/admin/participatory_process_user_roles/index.html.erb +1 -1
  54. data/app/views/decidim/admin/participatory_processes/_form.html.erb +18 -5
  55. data/app/views/decidim/admin/participatory_processes/edit.html.erb +1 -1
  56. data/app/views/decidim/admin/participatory_processes/index.html.erb +1 -1
  57. data/app/views/decidim/admin/participatory_processes/new.html.erb +2 -2
  58. data/app/views/decidim/admin/participatory_processes/show.html.erb +5 -2
  59. data/app/views/decidim/admin/scopes/edit.html.erb +2 -2
  60. data/app/views/decidim/admin/scopes/index.html.erb +1 -1
  61. data/app/views/decidim/admin/scopes/new.html.erb +2 -2
  62. data/app/views/decidim/admin/static_pages/_form.html.erb +1 -1
  63. data/app/views/decidim/admin/static_pages/edit.html.erb +2 -2
  64. data/app/views/decidim/admin/static_pages/index.html.erb +1 -1
  65. data/app/views/decidim/admin/static_pages/new.html.erb +2 -2
  66. data/app/views/decidim/admin/static_pages/show.html.erb +1 -1
  67. data/app/views/decidim/admin/user_groups/index.html.erb +1 -1
  68. data/app/views/decidim/admin/users/index.html.erb +1 -1
  69. data/app/views/decidim/admin/users/new.html.erb +2 -2
  70. data/app/views/layouts/decidim/admin/_sidebar.html.erb +1 -0
  71. data/app/views/layouts/decidim/admin/participatory_process.html.erb +1 -1
  72. data/config/i18n-tasks.yml +4 -3
  73. data/config/locales/ca.yml +60 -1
  74. data/config/locales/en.yml +59 -0
  75. data/config/locales/es.yml +59 -0
  76. data/config/locales/eu.yml +5 -0
  77. data/config/routes.rb +15 -1
  78. data/db/seeds.rb +3 -1
  79. data/lib/decidim/admin/engine.rb +1 -0
  80. data/lib/decidim/admin/features/base_controller.rb +5 -1
  81. metadata +26 -20
@@ -0,0 +1,47 @@
1
+ <div id="newsletters">
2
+ <% provide :title do %>
3
+ <h2><%= t ".title" %></h2>
4
+ <% end %>
5
+
6
+ <div class="actions title">
7
+ <%= link_to t("actions.new", scope: "decidim.admin", name: t("models.newsletter.name", scope: "decidim.admin").downcase), ['new', 'newsletter'], class: 'new' %>
8
+ </div>
9
+
10
+
11
+ <table class="stack newsletters">
12
+ <thead>
13
+ <tr>
14
+ <th><%= t("models.newsletter.fields.subject", scope: "decidim.admin") %></th>
15
+ <th><%= t("models.newsletter.fields.created_at", scope: "decidim.admin") %></th>
16
+ <th><%= t("models.newsletter.fields.sent_at", scope: "decidim.admin") %></th>
17
+ <th><%= t("models.newsletter.fields.progress", scope: "decidim.admin") %></th>
18
+ <th class="actions"><%= t("actions.title", scope: "decidim.admin") %></th>
19
+ </tr>
20
+ </thead>
21
+ <tbody>
22
+ <% @newsletters.each do |newsletter| %>
23
+ <tr data-newsletter-id="<%= newsletter.id %>">
24
+ <td><%= translated_attribute newsletter.subject %></td>
25
+ <td><%= l newsletter.created_at, format: :long if newsletter.created_at %></td>
26
+ <td><%= l newsletter.sent_at, format: :long if newsletter.sent_at %></td>
27
+ <td>
28
+ <% if newsletter.sent? %>
29
+ <%= "#{newsletter.total_deliveries} / #{newsletter.total_recipients}" %>
30
+ <% end %>
31
+ </td>
32
+ <td class="actions">
33
+ <%= link_to t("actions.preview", scope: "decidim.admin"), decidim_admin.newsletter_path(newsletter) %>
34
+
35
+ <% if can?(:update, newsletter) && !newsletter.sent? %>
36
+ <%= link_to t("actions.edit", scope: "decidim.admin"), decidim_admin.edit_newsletter_path(newsletter) %>
37
+ <% end %>
38
+
39
+ <% if can?(:destroy, newsletter) && !newsletter.sent? %>
40
+ <%= link_to t("actions.destroy", scope: "decidim.admin"), decidim_admin.newsletter_path(newsletter), method: :delete, class: "button", data: { confirm: t(".confirm_delete") } %>
41
+ <% end %>
42
+ </td>
43
+ </tr>
44
+ <% end %>
45
+ </tbody>
46
+ </table>
47
+ </div>
@@ -0,0 +1,11 @@
1
+ <% provide :title do %>
2
+ <h2><%= t ".title" %></h2>
3
+ <% end %>
4
+
5
+ <%= decidim_form_for(@form) do |f| %>
6
+ <%= render partial: 'form', object: f %>
7
+
8
+ <div class="actions">
9
+ <%= f.submit t(".save") %>
10
+ </div>
11
+ <% end %>
@@ -0,0 +1,14 @@
1
+ <h3><%= t ".preview" %></h3>
2
+
3
+ <dl>
4
+ <dt><%= t ".subject" %></dt>
5
+ <dd><%= @email.subject %></dd>
6
+ </dl>
7
+
8
+ <iframe src="<%= preview_newsletter_path(@newsletter) %>" class="email-preview">
9
+ </iframe>
10
+
11
+ <div class="actions">
12
+ <%= link_to t("actions.edit", scope: "decidim.admin"), ['edit', @newsletter] %>
13
+ <%= link_to t(".deliver"), deliver_newsletter_path(@newsletter), method: :post, class: "button", data: { confirm: t(".confirm_deliver") } %>
14
+ </div>
@@ -6,6 +6,22 @@
6
6
  <%= form.text_field :twitter_handler %>
7
7
  </div>
8
8
 
9
+ <div class="field">
10
+ <%= form.text_field :facebook_handler %>
11
+ </div>
12
+
13
+ <div class="field">
14
+ <%= form.text_field :instagram_handler %>
15
+ </div>
16
+
17
+ <div class="field">
18
+ <%= form.text_field :youtube_handler %>
19
+ </div>
20
+
21
+ <div class="field">
22
+ <%= form.text_field :github_handler %>
23
+ </div>
24
+
9
25
  <div class="field">
10
26
  <%= form.translated :editor, :description %>
11
27
  </div>
@@ -30,6 +46,24 @@
30
46
  <%= form.file_field :favicon %>
31
47
  </div>
32
48
 
49
+ <div class="field">
50
+ <%= form.text_field :official_url %>
51
+ </div>
52
+
53
+ <div class="field">
54
+ <%= form.file_field :official_img_header %>
55
+ <% if current_organization.official_img_header? %>
56
+ <%= image_tag current_organization.official_img_header.url.to_s %>
57
+ <% end %>
58
+ </div>
59
+
60
+ <div class="field">
61
+ <%= form.file_field :official_img_footer %>
62
+ <% if current_organization.official_img_footer? %>
63
+ <%= image_tag current_organization.official_img_footer.url.to_s %>
64
+ <% end %>
65
+ </div>
66
+
33
67
  <div class="field">
34
68
  <%= form.check_box :show_statistics %>
35
69
  </div>
@@ -1,8 +1,8 @@
1
- <% content_for :title do %>
1
+ <% provide :title do %>
2
2
  <h2><%= t ".title" %></h2>
3
3
  <% end %>
4
4
 
5
- <%= form_for(@form, url: organization_path) do |f| %>
5
+ <%= decidim_form_for(@form, url: organization_path) do |f| %>
6
6
  <%= render partial: 'form', object: f %>
7
7
 
8
8
  <div class="actions">
@@ -7,7 +7,7 @@
7
7
  </div>
8
8
 
9
9
  <div class="field">
10
- <%= form.translated :editor, :description, toolbar: :full, lines: 20 %>
10
+ <%= form.translated :editor, :description, toolbar: :full, lines: 25 %>
11
11
  </div>
12
12
 
13
13
  <div class="field">
@@ -1,6 +1,6 @@
1
1
  <h3><%= t ".title" %></h3>
2
2
 
3
- <%= form_for(@form, url: participatory_process_step_path(@participatory_process_step.participatory_process, @participatory_process_step)) do |f| %>
3
+ <%= decidim_form_for(@form, url: participatory_process_step_path(@participatory_process_step.participatory_process, @participatory_process_step)) do |f| %>
4
4
  <%= render partial: 'form', object: f %>
5
5
 
6
6
  <div class="actions">
@@ -1,6 +1,6 @@
1
1
  <h3><%= t ".title" %></h3>
2
2
 
3
- <%= form_for(@form) do |f| %>
3
+ <%= decidim_form_for(@form) do |f| %>
4
4
  <%= render partial: 'form', object: f %>
5
5
 
6
6
  <div class="actions">
@@ -1,7 +1,7 @@
1
1
  <section id="process_admins">
2
2
  <h3><%= t(".process_admins_title", scope: "decidim.admin") %></h3>
3
3
 
4
- <%= form_for :participatory_process_user_role, url: participatory_process_user_roles_path(participatory_process) do |f| %>
4
+ <%= decidim_form_for :participatory_process_user_role, url: participatory_process_user_roles_path(participatory_process) do |f| %>
5
5
  <table class="stack">
6
6
  <thead>
7
7
  <tr>
@@ -19,7 +19,7 @@
19
19
  </div>
20
20
 
21
21
  <div class="field">
22
- <%= form.translated :editor, :description, toolbar: :full, lines: 20 %>
22
+ <%= form.translated :editor, :description, toolbar: :full, lines: 25 %>
23
23
  </div>
24
24
 
25
25
  <div class="field">
@@ -35,7 +35,7 @@
35
35
  </div>
36
36
 
37
37
  <div class="field">
38
- <%= form.translated :text_field, :domain %>
38
+ <%= form.date_field :end_date %>
39
39
  </div>
40
40
 
41
41
  <div class="field">
@@ -43,9 +43,22 @@
43
43
  </div>
44
44
 
45
45
  <div class="field">
46
- <%= form.text_field :developer_group %>
46
+ <%= form.translated :text_field, :developer_group %>
47
47
  </div>
48
48
 
49
49
  <div class="field">
50
- <%= form.date_field :end_date %>
51
- </div>
50
+ <%= form.translated :text_field, :local_area %>
51
+ </div>
52
+
53
+ <div class="field">
54
+ <%= form.translated :text_field, :target %>
55
+ </div>
56
+
57
+ <div class="field">
58
+ <%= form.translated :text_field, :participatory_scope %>
59
+ </div>
60
+
61
+ <div class="field">
62
+ <%= form.translated :text_field, :participatory_structure %>
63
+ </div>
64
+
@@ -12,7 +12,7 @@
12
12
  <% end %>
13
13
  </div>
14
14
 
15
- <%= form_for(@form) do |f| %>
15
+ <%= decidim_form_for(@form) do |f| %>
16
16
  <%= render partial: 'form', object: f %>
17
17
 
18
18
  <div class="actions">
@@ -1,4 +1,4 @@
1
- <% content_for :title do %>
1
+ <% provide :title do %>
2
2
  <h2><%= t "decidim.admin.titles.participatory_processes" %></h2>
3
3
  <% end %>
4
4
 
@@ -1,8 +1,8 @@
1
- <% content_for :title do %>
1
+ <% provide :title do %>
2
2
  <h2><%= t ".title" %></h2>
3
3
  <% end %>
4
4
 
5
- <%= form_for(@form) do |f| %>
5
+ <%= decidim_form_for(@form) do |f| %>
6
6
  <%= render partial: 'form', object: f %>
7
7
 
8
8
  <div class="actions">
@@ -7,8 +7,11 @@
7
7
  :short_description,
8
8
  :description,
9
9
  :scope,
10
- :domain,
11
- :developer_group
10
+ :developer_group,
11
+ :local_area,
12
+ :target,
13
+ :participatory_scope,
14
+ :participatory_structure
12
15
  %>
13
16
 
14
17
  <dt><%= display_label(participatory_process, :end_date) %></dt>
@@ -1,8 +1,8 @@
1
- <% content_for :title do %>
1
+ <% provide :title do %>
2
2
  <h2><%= t ".title" %></h2>
3
3
  <% end %>
4
4
 
5
- <%= form_for(@form) do |f| %>
5
+ <%= decidim_form_for(@form) do |f| %>
6
6
  <%= render partial: 'form', object: f %>
7
7
 
8
8
  <div class="actions">
@@ -1,4 +1,4 @@
1
- <% content_for :title do %>
1
+ <% provide :title do %>
2
2
  <h2><%= t "decidim.admin.titles.scopes" %></h2>
3
3
  <% end %>
4
4
 
@@ -1,8 +1,8 @@
1
- <% content_for :title do %>
1
+ <% provide :title do %>
2
2
  <h2><%= t ".title" %></h2>
3
3
  <% end %>
4
4
 
5
- <%= form_for(@form) do |f| %>
5
+ <%= decidim_form_for(@form) do |f| %>
6
6
  <%= render partial: 'form', object: f %>
7
7
 
8
8
  <div class="actions">
@@ -9,5 +9,5 @@
9
9
  <% end %>
10
10
 
11
11
  <div class="field">
12
- <%= form.translated :editor, :content %>
12
+ <%= form.translated :editor, :content, toolbar: :full, lines: 25 %>
13
13
  </div>
@@ -1,8 +1,8 @@
1
- <% content_for :title do %>
1
+ <% provide :title do %>
2
2
  <h2><%= t ".title" %></h2>
3
3
  <% end %>
4
4
 
5
- <%= form_for(@form) do |f| %>
5
+ <%= decidim_form_for(@form) do |f| %>
6
6
  <%= render partial: 'form', object: f %>
7
7
 
8
8
  <div class="actions">
@@ -1,4 +1,4 @@
1
- <% content_for :title do %>
1
+ <% provide :title do %>
2
2
  <h2><%= t "decidim.admin.titles.static_pages" %></h2>
3
3
  <% end %>
4
4
 
@@ -1,8 +1,8 @@
1
- <% content_for :title do %>
1
+ <% provide :title do %>
2
2
  <h2><%= t ".title" %></h2>
3
3
  <% end %>
4
4
 
5
- <%= form_for(@form) do |f| %>
5
+ <%= decidim_form_for(@form) do |f| %>
6
6
  <%= render partial: 'form', object: f %>
7
7
 
8
8
  <div class="actions">
@@ -1,4 +1,4 @@
1
- <% content_for :title do %>
1
+ <% provide :title do %>
2
2
  <h2><%= link_to translated_attribute(@page.title), @page %></h2>
3
3
  <% end %>
4
4
 
@@ -1,4 +1,4 @@
1
- <% content_for :title do %>
1
+ <% provide :title do %>
2
2
  <h2><%= t "decidim.admin.titles.user_groups" %></h2>
3
3
  <% end %>
4
4
 
@@ -1,4 +1,4 @@
1
- <% content_for :title do %>
1
+ <% provide :title do %>
2
2
  <h2><%= t "decidim.admin.titles.users" %></h2>
3
3
  <% end %>
4
4
 
@@ -1,8 +1,8 @@
1
- <% content_for :title do %>
1
+ <% provide :title do %>
2
2
  <h2><%= t ".title" %></h2>
3
3
  <% end %>
4
4
 
5
- <%= form_for(@form) do |f| %>
5
+ <%= decidim_form_for(@form) do |f| %>
6
6
  <%= render partial: 'form', object: f %>
7
7
 
8
8
  <div class="actions">
@@ -13,6 +13,7 @@
13
13
  <%= active_link_to t("menu.scopes", scope: "decidim.admin"), decidim_admin.scopes_path, active: :inclusive if can? :read, Decidim::Scope %>
14
14
  <%= active_link_to t("menu.users", scope: "decidim.admin"), decidim_admin.users_path, active: :inclusive if can? :read, :admin_users %>
15
15
  <%= active_link_to t("menu.user_groups", scope: "decidim.admin"), decidim_admin.user_groups_path, active: :inclusive if can? :index, Decidim::UserGroup %>
16
+ <%= active_link_to t("menu.newsletters", scope: "decidim.admin"), decidim_admin.newsletters_path, active: :inclusive if can? :index, Decidim::Newsletter %>
16
17
  <%= active_link_to t("menu.settings", scope: "decidim.admin"), decidim_admin.edit_organization_path, active: :inclusive if can? :read, current_organization %>
17
18
  </nav>
18
19
 
@@ -1,4 +1,4 @@
1
- <% content_for :title do %>
1
+ <% provide :title do %>
2
2
  <h2><%= link_to translated_attribute(participatory_process.title), decidim_admin.participatory_process_path(participatory_process) %></h2>
3
3
  <h3 class="subheader"><%= translated_attribute(participatory_process.subtitle) %></h3>
4
4
  <% end %>
@@ -89,9 +89,10 @@ search:
89
89
 
90
90
  ## Consider these keys used:
91
91
  ignore_unused:
92
- - activerecord.attributes.*
93
- - activemodel.attributes.*
94
- - decidim.admin.participatory_process_steps.default_title
92
+ - activerecord.attributes.*
93
+ - activemodel.attributes.*
94
+ - decidim.admin.participatory_process_steps.default_title
95
+ - activemodel.errors.messages.*
95
96
  # - '{devise,kaminari,will_paginate}.*'
96
97
  # - 'simple_form.{yes,no}'
97
98
  # - 'simple_form.{placeholders,hints,labels}.*'
@@ -12,6 +12,9 @@ ca:
12
12
  feature:
13
13
  name: Nom
14
14
  weight: Pes
15
+ newsletter:
16
+ body: Cos
17
+ subject: Assumpte
15
18
  organization:
16
19
  default_locale: Idioma per defecte
17
20
  description: Descripció
@@ -24,9 +27,13 @@ ca:
24
27
  participatory_process:
25
28
  banner_image: Imatge de bandera
26
29
  description: Descripció
30
+ developer_group: Grup promotor
31
+ domain: Àrees municipals
32
+ end_date: Data de finalització
27
33
  hashtag: Etiqueta
28
34
  hero_image: Imatge de portada
29
35
  promoted: Promogut
36
+ scope: Àmbit
30
37
  short_description: Descripció breu
31
38
  slug: Nom curt d'URL
32
39
  subtitle: Subtítol
@@ -47,6 +54,9 @@ ca:
47
54
  organization: Organització
48
55
  slug: Nom curt d'URL
49
56
  title: Títol
57
+ errors:
58
+ messages:
59
+ invalid_json: JSON no vàlid
50
60
  activerecord:
51
61
  attributes:
52
62
  decidim/participatory_process:
@@ -62,6 +72,7 @@ ca:
62
72
  edit: Editar
63
73
  manage: Gestionar
64
74
  new: Nou %{name}
75
+ permissions: Permisos
65
76
  preview: Previsualitzar
66
77
  publish: Publicar
67
78
  resend_invitation: Tornar a enviar invitació
@@ -114,13 +125,20 @@ ca:
114
125
  participatory_process_user_roles:
115
126
  index:
116
127
  process_admins_title: Administradors del procés participatiu
128
+ feature_permissions:
129
+ edit:
130
+ everyone: Tothom
131
+ submit: Desar permisos
132
+ title: Permisos d'edició
133
+ update:
134
+ success: Permisos actualitzats correctament.
117
135
  features:
118
136
  create:
119
137
  error: S'ha produït un error en afegir aquesta funcionalitat.
120
138
  success: Funcionalitat creada correctament.
121
139
  destroy:
122
140
  error: S'ha produït un error destruir aquesta funcionalitat.
123
- success: Característica eliminada correctament.
141
+ success: Funcionalitat eliminada correctament.
124
142
  edit:
125
143
  title: Editar funcionalitat
126
144
  update: Actualitza
@@ -136,12 +154,17 @@ ca:
136
154
  new:
137
155
  add: Afegir funcionalitat
138
156
  title: 'Afegir funcionalitat: %{name}'
157
+ publish:
158
+ success: La funcionalitat s'ha publicat correctament.
139
159
  title: Funcionalitats
160
+ unpublish:
161
+ success: La funcionalitat ha estat despublicada exitosament.
140
162
  update:
141
163
  error: S'ha produït un error en actualitzar aquesta funcionalitat.
142
164
  success: La funcionalitat s'ha actualitzat correctament.
143
165
  menu:
144
166
  dashboard: Tauler de control
167
+ newsletters: Butlletins
145
168
  participatory_processes: Processos participatius
146
169
  participatory_processes_submenu:
147
170
  attachments: Adjunts
@@ -166,6 +189,13 @@ ca:
166
189
  fields:
167
190
  name: Nom
168
191
  name: Categoria
192
+ newsletter:
193
+ fields:
194
+ created_at: Data de creació
195
+ progress: Progrés
196
+ sent_at: Enviat el
197
+ subject: Assumpte
198
+ name: Butlletí
169
199
  participatory_process:
170
200
  fields:
171
201
  created_at: Data de creació
@@ -209,6 +239,35 @@ ca:
209
239
  name: Nom
210
240
  phone: Telèfon
211
241
  users_count: Número d'usuaris
242
+ newsletters:
243
+ create:
244
+ error: S'ha produït un error en crear aquest butlletí.
245
+ success: Butlletí creat amb èxit. Si us plau, revisa'l abans d'enviar.
246
+ deliver:
247
+ error: Hi ha hagut un error d'enviament d'aquest butlletí.
248
+ success: Butlletí enviat amb èxit.
249
+ destroy:
250
+ error_already_sent: 'No es pot destruir butlletí de notícies: Ja s''ha enviat.'
251
+ success: Butlletí destruït amb èxit.
252
+ edit:
253
+ save_and_preview: Desar i vista prèvia
254
+ title: Editar butlletí
255
+ form:
256
+ interpolations_hint: 'Consell: Podeu utilitzar "%{name}" en qualsevol part del cos o assumpte i serà reemplaçat pel nom del destinatari.'
257
+ index:
258
+ confirm_delete: Esteu segur que voleu suprimir aquest butlletí?
259
+ title: Butlletins
260
+ new:
261
+ save: Desar
262
+ title: Nou butlletí
263
+ show:
264
+ confirm_deliver: Estàs segur de que vols enviar aquest butlletí? Aquesta acció no es pot desfer.
265
+ deliver: Enviar butlletí
266
+ preview: Previsualitzar
267
+ subject: Assumpte
268
+ update:
269
+ error: S'ha produït un error en actualitzar aquest butlletí.
270
+ success: Butlletí actualitzat correctament. Si us plau, revisa'l abans d'enviar-lo.
212
271
  organization:
213
272
  edit:
214
273
  title: Edita organització