decidim-admin 0.3.2 → 0.4.0
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.
Potentially problematic release.
This version of decidim-admin might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/app/assets/stylesheets/decidim/admin/extra/_label-required.scss +3 -0
- data/app/assets/stylesheets/decidim/admin/extra/_title_bar.scss +57 -1
- data/app/commands/decidim/admin/create_participatory_process_admin.rb +28 -7
- data/app/commands/decidim/admin/create_participatory_process_step.rb +2 -1
- data/app/commands/decidim/admin/destroy_participatory_process_step.rb +5 -2
- data/app/commands/decidim/admin/update_feature.rb +1 -0
- data/app/commands/decidim/admin/update_organization.rb +10 -5
- data/app/commands/decidim/admin/update_participatory_process.rb +4 -2
- data/app/controllers/decidim/admin/application_controller.rb +2 -0
- data/app/controllers/decidim/admin/concerns/has_attachments.rb +10 -1
- data/app/controllers/decidim/admin/concerns/participatory_process_admin.rb +0 -5
- data/app/controllers/decidim/admin/features/base_controller.rb +0 -1
- data/app/controllers/decidim/admin/moderations_controller.rb +7 -4
- data/app/controllers/decidim/admin/organization_controller.rb +9 -3
- data/app/controllers/decidim/admin/participatory_process_user_roles_controller.rb +17 -0
- data/app/controllers/decidim/admin/participatory_processes_controller.rb +11 -3
- data/app/forms/decidim/admin/feature_form.rb +6 -0
- data/app/forms/decidim/admin/organization_form.rb +5 -0
- data/app/forms/decidim/admin/participatory_process_copy_form.rb +2 -3
- data/app/forms/decidim/admin/participatory_process_form.rb +2 -0
- data/app/forms/decidim/admin/static_page_form.rb +6 -0
- data/app/helpers/decidim/admin/menu_helper.rb +1 -1
- data/app/jobs/decidim/admin/newsletter_job.rb +9 -5
- data/app/views/decidim/admin/attachments/_form.html.erb +1 -12
- data/app/views/decidim/admin/features/_feature.html.erb +2 -2
- data/app/views/decidim/admin/features/_form.html.erb +18 -0
- data/app/views/decidim/admin/moderations/_report.html.erb +2 -2
- data/app/views/decidim/admin/organization/_form.html.erb +5 -35
- data/app/views/decidim/admin/participatory_process_groups/_form.html.erb +1 -1
- data/app/views/decidim/admin/participatory_process_user_roles/index.html.erb +16 -0
- data/app/views/decidim/admin/participatory_processes/_form.html.erb +2 -14
- data/app/views/layouts/decidim/admin/_title_bar.html.erb +26 -19
- data/app/views/layouts/decidim/admin/participatory_process.html.erb +2 -2
- data/config/i18n-tasks.yml +2 -0
- data/config/locales/ca.yml +9 -5
- data/config/locales/en.yml +9 -5
- data/config/locales/es.yml +11 -5
- data/config/locales/eu.yml +0 -5
- data/config/locales/fr.yml +18 -23
- data/config/locales/it.yml +0 -5
- data/config/routes.rb +5 -3
- data/lib/decidim/admin/test/manage_attachments_examples.rb +1 -2
- metadata +7 -7
- data/app/assets/stylesheets/decidim/admin/extra/_language-chooser.scss +0 -4
@@ -10,12 +10,11 @@ module Decidim
|
|
10
10
|
|
11
11
|
translatable_attribute :title, String
|
12
12
|
|
13
|
+
mimic :participatory_process
|
14
|
+
|
13
15
|
attribute :slug, String
|
14
16
|
attribute :copy_steps, Boolean
|
15
17
|
attribute :copy_categories, Boolean
|
16
|
-
attribute :copy_process_users, Boolean
|
17
|
-
attribute :copy_moderations, Boolean
|
18
|
-
attribute :copy_pages, Boolean
|
19
18
|
attribute :copy_features, Boolean
|
20
19
|
|
21
20
|
validates :slug, presence: true
|
@@ -27,7 +27,9 @@ module Decidim
|
|
27
27
|
attribute :promoted, Boolean
|
28
28
|
attribute :scope_id, Integer
|
29
29
|
attribute :hero_image
|
30
|
+
attribute :remove_hero_image
|
30
31
|
attribute :banner_image
|
32
|
+
attribute :remove_banner_image
|
31
33
|
attribute :participatory_process_group_id, Integer
|
32
34
|
|
33
35
|
validates :slug, presence: true
|
@@ -14,10 +14,16 @@ module Decidim
|
|
14
14
|
|
15
15
|
validates :slug, presence: true
|
16
16
|
validates :title, :content, translatable_presence: true
|
17
|
+
validates :slug, format: { with: /\A[a-z0-9-]+/ }
|
18
|
+
|
17
19
|
validate :slug, :slug_uniqueness
|
18
20
|
|
19
21
|
alias organization current_organization
|
20
22
|
|
23
|
+
def slug
|
24
|
+
super.to_s.downcase
|
25
|
+
end
|
26
|
+
|
21
27
|
private
|
22
28
|
|
23
29
|
def slug_uniqueness
|
@@ -8,10 +8,12 @@ module Decidim
|
|
8
8
|
queue_as :newsletter
|
9
9
|
|
10
10
|
def perform(newsletter)
|
11
|
-
newsletter
|
12
|
-
raise "Newsletter already sent" if newsletter.sent?
|
11
|
+
@newsletter = newsletter
|
13
12
|
|
14
|
-
|
13
|
+
@newsletter.with_lock do
|
14
|
+
raise "Newsletter already sent" if @newsletter.sent?
|
15
|
+
|
16
|
+
@newsletter.update_attributes!(
|
15
17
|
sent_at: Time.current,
|
16
18
|
total_recipients: recipients.count,
|
17
19
|
total_deliveries: 0
|
@@ -19,14 +21,16 @@ module Decidim
|
|
19
21
|
end
|
20
22
|
|
21
23
|
recipients.find_each do |user|
|
22
|
-
NewsletterDeliveryJob.perform_later(user, newsletter)
|
24
|
+
NewsletterDeliveryJob.perform_later(user, @newsletter)
|
23
25
|
end
|
24
26
|
end
|
25
27
|
|
26
28
|
private
|
27
29
|
|
28
30
|
def recipients
|
29
|
-
@recipients ||= User.where(newsletter_notifications: true
|
31
|
+
@recipients ||= User.where(newsletter_notifications: true, organization: @newsletter.organization)
|
32
|
+
.where.not(email: nil, confirmed_at: nil)
|
33
|
+
.not_deleted
|
30
34
|
end
|
31
35
|
end
|
32
36
|
end
|
@@ -15,18 +15,7 @@
|
|
15
15
|
</div>
|
16
16
|
|
17
17
|
<div class="row column">
|
18
|
-
<%= form.
|
18
|
+
<%= form.upload :file, optional: false %>
|
19
19
|
</div>
|
20
|
-
|
21
|
-
<% if @attachment && @attachment.file.present? %>
|
22
|
-
<div class="row column">
|
23
|
-
<label><%= t('.current_file') %></label>
|
24
|
-
<% if @attachment.photo? %>
|
25
|
-
<%= image_tag form.object.file.url(:thumbnail) %>
|
26
|
-
<% end %>
|
27
|
-
<label><%= t('.url') %></label>
|
28
|
-
<%= link_to @attachment.file.url, @attachment.file.url, target: "_blank" %>
|
29
|
-
</div>
|
30
|
-
<% end %>
|
31
20
|
</div>
|
32
21
|
</div>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<tr class="feature-<%= feature.id %>">
|
2
2
|
<td>
|
3
|
-
<%= link_to
|
3
|
+
<%= link_to feature_path(feature), target: "_blank" do %>
|
4
4
|
<%= translated_attribute feature.name %>
|
5
5
|
<% end %>
|
6
6
|
</td>
|
@@ -9,7 +9,7 @@
|
|
9
9
|
</td>
|
10
10
|
<td class="table-list__actions">
|
11
11
|
<% if feature.manifest.admin_engine %>
|
12
|
-
<%= icon_link_to "pencil", manage_feature_path(
|
12
|
+
<%= icon_link_to "pencil", manage_feature_path(feature), t("actions.manage", scope: "decidim.admin"), class: "action-icon--manage" %>
|
13
13
|
<% end %>
|
14
14
|
|
15
15
|
<% if can?(:update, feature) %>
|
@@ -55,6 +55,24 @@
|
|
55
55
|
</div>
|
56
56
|
</div>
|
57
57
|
</fieldset>
|
58
|
+
<% elsif form.object.default_step_settings? %>
|
59
|
+
<fieldset class="default-step-settings">
|
60
|
+
<div class="card">
|
61
|
+
<div class="card-divider">
|
62
|
+
<legend><%= t ".default_step_settings" %></legend>
|
63
|
+
</div>
|
64
|
+
<div class="card-section">
|
65
|
+
<%= form.fields_for :default_step_settings, form.object.default_step_settings do |settings_fields| %>
|
66
|
+
<%= render partial: "decidim/admin/features/settings_fields",
|
67
|
+
locals: {
|
68
|
+
form: settings_fields,
|
69
|
+
feature: @feature,
|
70
|
+
settings_name: "step"
|
71
|
+
} %>
|
72
|
+
<% end %>
|
73
|
+
</div>
|
74
|
+
</div>
|
75
|
+
</fieldset>
|
58
76
|
<% end %>
|
59
77
|
</div>
|
60
78
|
</div>
|
@@ -1,11 +1,11 @@
|
|
1
1
|
<% if report.details.blank? %>
|
2
|
-
<%= report.reason %>
|
2
|
+
<%= t(".reasons.#{report.reason}") %>
|
3
3
|
<% else %>
|
4
4
|
<span
|
5
5
|
data-tooltip
|
6
6
|
aria-haspopup="true"
|
7
7
|
class="has-tip"
|
8
8
|
title="<%= report.details %>">
|
9
|
-
<%= report.reason %>
|
9
|
+
<%= t(".reasons.#{report.reason}") %>
|
10
10
|
</span>
|
11
11
|
<% end %>
|
@@ -42,55 +42,25 @@
|
|
42
42
|
|
43
43
|
<div class="row">
|
44
44
|
<div class="columns xlarge-4">
|
45
|
-
<%= form.
|
46
|
-
<% if current_organization.homepage_image.present? %>
|
47
|
-
<label><%= t('.current_image') %></label>
|
48
|
-
<%= image_tag current_organization.homepage_image.big.url %>
|
49
|
-
<label><%= t('.url') %></label>
|
50
|
-
<%= link_to current_organization.homepage_image.file.filename, current_organization.homepage_image.url, target: "_blank" %>
|
51
|
-
<% end %>
|
45
|
+
<%= form.upload :homepage_image %>
|
52
46
|
</div>
|
53
47
|
|
54
48
|
<div class="columns xlarge-4">
|
55
|
-
<%= form.
|
56
|
-
<% if current_organization.logo.present? %>
|
57
|
-
<label><%= t('.current_image') %></label>
|
58
|
-
<%= image_tag current_organization.logo.medium.url %>
|
59
|
-
<label><%= t('.url') %></label>
|
60
|
-
<%= link_to current_organization.logo.file.filename, current_organization.logo.url, target: "_blank" %>
|
61
|
-
<% end %>
|
49
|
+
<%= form.upload :logo %>
|
62
50
|
</div>
|
63
51
|
|
64
52
|
<div class="columns xlarge-4">
|
65
|
-
<%= form.
|
66
|
-
<% if current_organization.favicon.present? %>
|
67
|
-
<label><%= t('.current_image') %></label>
|
68
|
-
<%= image_tag current_organization.favicon.big.url %>
|
69
|
-
<label><%= t('.url') %></label>
|
70
|
-
<%= link_to current_organization.favicon.file.filename, current_organization.favicon.url, target: "_blank" %>
|
71
|
-
<% end %>
|
53
|
+
<%= form.upload :favicon %>
|
72
54
|
</div>
|
73
55
|
</div>
|
74
56
|
|
75
57
|
<div class="row">
|
76
58
|
<div class="columns xlarge-6">
|
77
|
-
<%= form.
|
78
|
-
<% if current_organization.official_img_header.present? %>
|
79
|
-
<label><%= t('.current_image') %></label>
|
80
|
-
<%= image_tag current_organization.official_img_header.url %>
|
81
|
-
<label><%= t('.url') %></label>
|
82
|
-
<%= link_to current_organization.official_img_header.file.filename, current_organization.official_img_header.url, target: "_blank" %>
|
83
|
-
<% end %>
|
59
|
+
<%= form.upload :official_img_header %>
|
84
60
|
</div>
|
85
61
|
|
86
62
|
<div class="columns xlarge-6">
|
87
|
-
<%= form.
|
88
|
-
<% if current_organization.official_img_footer.present? %>
|
89
|
-
<label><%= t('.current_image') %></label>
|
90
|
-
<%= image_tag current_organization.official_img_footer.url %>
|
91
|
-
<label><%= t('.url') %></label>
|
92
|
-
<%= link_to current_organization.official_img_footer.file.filename, current_organization.official_img_footer.url, target: "_blank" %>
|
93
|
-
<% end %>
|
63
|
+
<%= form.upload :official_img_footer %>
|
94
64
|
</div>
|
95
65
|
</div>
|
96
66
|
|
@@ -15,6 +15,8 @@
|
|
15
15
|
<tr>
|
16
16
|
<th><%= t("models.participatory_process_user_role.fields.name", scope: "decidim.admin") %></th>
|
17
17
|
<th><%= t("models.participatory_process_user_role.fields.email", scope: "decidim.admin") %></th>
|
18
|
+
<th><%= t("models.user.fields.invitation_sent_at", scope: "decidim.admin") %></th>
|
19
|
+
<th><%= t("models.user.fields.invitation_accepted_at", scope: "decidim.admin") %></th>
|
18
20
|
<th><%= t("models.participatory_process_user_role.fields.role", scope: "decidim.admin") %></th>
|
19
21
|
<th class="actions"></th>
|
20
22
|
</tr>
|
@@ -28,10 +30,24 @@
|
|
28
30
|
<td>
|
29
31
|
<%= role.user.email %><br />
|
30
32
|
</td>
|
33
|
+
<td>
|
34
|
+
<% if role.user.invitation_sent_at %>
|
35
|
+
<%= l role.user.invitation_sent_at, format: :short %>
|
36
|
+
<% end %>
|
37
|
+
</td>
|
38
|
+
<td>
|
39
|
+
<% if role.user.invitation_accepted_at %>
|
40
|
+
<%= l role.user.invitation_accepted_at, format: :short %>
|
41
|
+
<% end %>
|
42
|
+
</td>
|
31
43
|
<td>
|
32
44
|
<%= t("#{role.role}", scope: "decidim.admin.models.participatory_process_user_role.roles") %><br />
|
33
45
|
</td>
|
34
46
|
<td class="table-list__actions">
|
47
|
+
<% if can?(:invite, role) && role.user.invited_to_sign_up? %>
|
48
|
+
<%= icon_link_to "reload", resend_invitation_participatory_process_user_role_path(participatory_process, role), t("actions.resend_invitation", scope: "decidim.admin"), class: "resend-invitation", method: :post %>
|
49
|
+
<% end %>
|
50
|
+
|
35
51
|
<% if can? :update, role %>
|
36
52
|
<%= icon_link_to "pencil", edit_participatory_process_user_role_path(participatory_process, role), t("actions.edit", scope: "decidim.admin"), class: "action-icon--edit" %>
|
37
53
|
<% end %>
|
@@ -36,23 +36,11 @@
|
|
36
36
|
|
37
37
|
<div class="row">
|
38
38
|
<div class="columns xlarge-6">
|
39
|
-
<%= form.
|
40
|
-
<% if @participatory_process && @participatory_process.hero_image.present? %>
|
41
|
-
<label><%= t('.current_image') %></label>
|
42
|
-
<%= image_tag @participatory_process.hero_image.url %>
|
43
|
-
<label><%= t('.url') %></label>
|
44
|
-
<%= link_to @participatory_process.hero_image.url, @participatory_process.hero_image.url, target: "_blank" %>
|
45
|
-
<% end %>
|
39
|
+
<%= form.upload :hero_image %>
|
46
40
|
</div>
|
47
41
|
|
48
42
|
<div class="columns xlarge-6">
|
49
|
-
<%= form.
|
50
|
-
<% if @participatory_process && @participatory_process.banner_image.present? %>
|
51
|
-
<label><%= t('.current_image') %></label>
|
52
|
-
<%= image_tag @participatory_process.banner_image.url %>
|
53
|
-
<label><%= t('.url') %></label>
|
54
|
-
<%= link_to @participatory_process.banner_image.url, @participatory_process.banner_image.url, target: "_blank" %>
|
55
|
-
<% end %>
|
43
|
+
<%= form.upload :banner_image %>
|
56
44
|
</div>
|
57
45
|
</div>
|
58
46
|
|
@@ -1,30 +1,37 @@
|
|
1
1
|
<div class="title-bar">
|
2
2
|
<a href="#menu" class="menu-trigger"><%= icon "menu" %></a>
|
3
|
-
<%= link_to root_path, class: "logo" do %>
|
3
|
+
<%= link_to decidim.root_path, class: "logo", target: "_blank" do %>
|
4
4
|
<% if current_organization.logo.present? %>
|
5
5
|
<%= image_tag current_organization.logo.url, alt: title %>
|
6
6
|
<% else %>
|
7
7
|
<%= title %>
|
8
8
|
<% end %>
|
9
9
|
<% end %>
|
10
|
-
<div class=
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
<
|
17
|
-
|
10
|
+
<div class='tool-bar'>
|
11
|
+
<% if available_locales.length > 1 %>
|
12
|
+
<div class="topbar__dropmenu language-choose">
|
13
|
+
<ul class="dropdown menu" data-dropdown-menu>
|
14
|
+
<li class="is-dropdown-submenu-parent">
|
15
|
+
<%= link_to t("name", scope: "locale") %>
|
16
|
+
<ul class="menu is-dropdown-submenu">
|
17
|
+
<% (available_locales - [I18n.locale.to_s]).each do |locale| %>
|
18
|
+
<li><%= link_to locale_name(locale), decidim.locale_path(locale: locale), method: :post%></li>
|
19
|
+
<% end %>
|
20
|
+
</ul>
|
21
|
+
</li>
|
18
22
|
</ul>
|
19
|
-
</
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
<
|
25
|
-
<
|
26
|
-
|
27
|
-
|
28
|
-
|
23
|
+
</div>
|
24
|
+
<% end %>
|
25
|
+
|
26
|
+
<div class="user-login">
|
27
|
+
<ul class="dropdown menu" data-dropdown-menu>
|
28
|
+
<li class="is-dropdown-submenu-parent">
|
29
|
+
<a href="#"><%= current_user.email %></a>
|
30
|
+
<ul class="menu is-dropdown-submenu">
|
31
|
+
<li><%= link_to('Logout', decidim.destroy_user_session_path, method: :delete) %></li>
|
32
|
+
</ul>
|
33
|
+
</li>
|
34
|
+
</ul>
|
35
|
+
</div>
|
29
36
|
</div>
|
30
37
|
</div>
|
@@ -17,8 +17,8 @@
|
|
17
17
|
<ul>
|
18
18
|
<% participatory_process.features.each do |feature| %>
|
19
19
|
<% if feature.manifest.admin_engine %>
|
20
|
-
<li <% if is_active_link?(
|
21
|
-
<%= link_to
|
20
|
+
<li <% if is_active_link?(manage_feature_path(feature)) %> class="is-active" <% end %>>
|
21
|
+
<%= link_to manage_feature_path(feature) do %>
|
22
22
|
<%= translated_attribute feature.name %>
|
23
23
|
<% if feature.primary_stat.present? %>
|
24
24
|
<span class="component-counter <%= "component-counter--off" if feature.primary_stat.zero? %>"><%= feature.primary_stat %></span>
|
data/config/i18n-tasks.yml
CHANGED
@@ -88,6 +88,7 @@ ignore_missing:
|
|
88
88
|
# - '{devise,simple_form}.*'
|
89
89
|
- decidim.participatory_processes.scopes.global
|
90
90
|
- locale.name
|
91
|
+
- forms.required
|
91
92
|
|
92
93
|
## Consider these keys used:
|
93
94
|
ignore_unused:
|
@@ -98,6 +99,7 @@ ignore_unused:
|
|
98
99
|
- actions.confirm_destroy
|
99
100
|
- time.formats.*
|
100
101
|
- date.formats.*
|
102
|
+
- forms.*
|
101
103
|
|
102
104
|
# - '{devise,kaminari,will_paginate}.*'
|
103
105
|
# - 'simple_form.{yes,no}'
|
data/config/locales/ca.yml
CHANGED
@@ -32,6 +32,9 @@ ca:
|
|
32
32
|
welcome_text: Text de benvinguda
|
33
33
|
participatory_process:
|
34
34
|
banner_image: Imatge de bandera
|
35
|
+
copy_categories: Copiar categories
|
36
|
+
copy_features: Copiar funcionalitats
|
37
|
+
copy_steps: Copiar fases
|
35
38
|
description: Descripció
|
36
39
|
developer_group: Grup promotor
|
37
40
|
domain: Àrees municipals
|
@@ -136,9 +139,6 @@ ca:
|
|
136
139
|
edit:
|
137
140
|
title: Edita arxiu adjunt
|
138
141
|
update: Actualitzar
|
139
|
-
form:
|
140
|
-
current_file: Fitxer actual
|
141
|
-
url: URL
|
142
142
|
new:
|
143
143
|
create: Crea arxiu adjunt
|
144
144
|
title: Nou arxiu adjunt
|
@@ -201,6 +201,7 @@ ca:
|
|
201
201
|
title: Editar funcionalitat
|
202
202
|
update: Actualitza
|
203
203
|
form:
|
204
|
+
default_step_settings: Configuració per defecte
|
204
205
|
global_settings: Configuració global
|
205
206
|
step_settings: Configuració de fase
|
206
207
|
index:
|
@@ -309,6 +310,11 @@ ca:
|
|
309
310
|
moderations:
|
310
311
|
index:
|
311
312
|
title: Moderacions
|
313
|
+
report:
|
314
|
+
reasons:
|
315
|
+
does_not_belong: No pertany
|
316
|
+
offensive: Ofensiu
|
317
|
+
spam: Contingut brossa
|
312
318
|
newsletters:
|
313
319
|
create:
|
314
320
|
error: S'ha produït un error en crear aquest butlletí.
|
@@ -427,9 +433,7 @@ ca:
|
|
427
433
|
edit:
|
428
434
|
update: Actualitzar
|
429
435
|
form:
|
430
|
-
current_image: imatge actual
|
431
436
|
title: Informació general
|
432
|
-
url: URL
|
433
437
|
index:
|
434
438
|
not_published: No publicat
|
435
439
|
published: Publicat
|
data/config/locales/en.yml
CHANGED
@@ -33,6 +33,9 @@ en:
|
|
33
33
|
welcome_text: Welcome text
|
34
34
|
participatory_process:
|
35
35
|
banner_image: Banner image
|
36
|
+
copy_categories: Copy categories
|
37
|
+
copy_features: Copy features
|
38
|
+
copy_steps: Copy steps
|
36
39
|
description: Description
|
37
40
|
developer_group: Developer group
|
38
41
|
domain: Domain
|
@@ -137,9 +140,6 @@ en:
|
|
137
140
|
edit:
|
138
141
|
title: Edit attachment
|
139
142
|
update: Update
|
140
|
-
form:
|
141
|
-
current_file: Current file
|
142
|
-
url: Url
|
143
143
|
new:
|
144
144
|
create: Create attachment
|
145
145
|
title: New attachment
|
@@ -202,6 +202,7 @@ en:
|
|
202
202
|
title: Edit feature
|
203
203
|
update: Update
|
204
204
|
form:
|
205
|
+
default_step_settings: Default step settings
|
205
206
|
global_settings: Global settings
|
206
207
|
step_settings: Step settings
|
207
208
|
index:
|
@@ -310,6 +311,11 @@ en:
|
|
310
311
|
moderations:
|
311
312
|
index:
|
312
313
|
title: Moderations
|
314
|
+
report:
|
315
|
+
reasons:
|
316
|
+
does_not_belong: Does not belong
|
317
|
+
offensive: Offensive
|
318
|
+
spam: Spam
|
313
319
|
newsletters:
|
314
320
|
create:
|
315
321
|
error: There's been an error creating this newsletter.
|
@@ -428,9 +434,7 @@ en:
|
|
428
434
|
edit:
|
429
435
|
update: Update
|
430
436
|
form:
|
431
|
-
current_image: Current image
|
432
437
|
title: General Information
|
433
|
-
url: Url
|
434
438
|
index:
|
435
439
|
not_published: Not published
|
436
440
|
published: Published
|