decidim-core 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/stylesheets/decidim/extras/_callout.scss +5 -0
- data/app/assets/stylesheets/decidim/extras/_collection-sort-controls.scss +5 -0
- data/app/assets/stylesheets/decidim/extras/_results-per-page.scss +66 -0
- data/app/assets/stylesheets/decidim/extras/_status-labels.scss +3 -0
- data/app/commands/decidim/invite_user.rb +4 -4
- data/app/commands/decidim/{remove_user_role.rb → remove_admin.rb} +5 -7
- data/app/controllers/concerns/decidim/needs_authorization.rb +2 -1
- data/app/controllers/concerns/decidim/paginable.rb +24 -0
- data/app/controllers/decidim/devise/sessions_controller.rb +1 -1
- data/app/forms/decidim/{invite_admin_form.rb → invite_user_form.rb} +4 -4
- data/app/models/decidim/abilities/{everyone.rb → everyone_ability.rb} +1 -1
- data/app/models/decidim/organization.rb +1 -1
- data/app/models/decidim/participatory_process_user_role.rb +13 -0
- data/app/models/decidim/user.rb +1 -17
- data/app/queries/decidim/participatory_processes_with_user_role.rb +46 -0
- data/app/views/decidim/shared/_orders.html.erb +1 -1
- data/app/views/decidim/shared/_results_per_page.html.erb +18 -0
- data/config/locales/ca.yml +4 -2
- data/config/locales/en.yml +2 -0
- data/config/locales/es.yml +2 -0
- data/config/locales/it.yml +32 -46
- data/db/migrate/20170713131206_add_admin_to_users.rb +8 -0
- data/db/migrate/20170713131308_migrate_user_roles_to_participatory_process_roles.rb +17 -0
- data/db/seeds.rb +19 -15
- data/lib/decidim/abilities.rb +11 -0
- data/lib/decidim/abilities/admin_ability.rb +28 -0
- data/lib/decidim/abilities/participatory_process_admin_ability.rb +24 -0
- data/lib/decidim/abilities/participatory_process_collaborator_ability.rb +24 -0
- data/lib/decidim/abilities/participatory_process_moderator_ability.rb +15 -0
- data/lib/decidim/abilities/participatory_process_role_ability.rb +59 -0
- data/lib/decidim/core.rb +2 -1
- data/lib/decidim/core/engine.rb +5 -1
- data/lib/decidim/core/test.rb +1 -0
- data/lib/decidim/core/test/factories.rb +20 -9
- data/lib/decidim/core/test/shared_examples/has_reference.rb +0 -4
- data/lib/decidim/core/test/shared_examples/paginated_resource_examples.rb +26 -0
- data/lib/decidim/core/version.rb +1 -1
- data/vendor/assets/javascripts/quill.min.js +2 -8
- data/vendor/assets/javascripts/quill.min.js.map +1 -1
- data/vendor/assets/stylesheets/quill.bubble.css +29 -5
- data/vendor/assets/stylesheets/quill.core.css +11 -5
- data/vendor/assets/stylesheets/quill.snow.css +29 -5
- metadata +32 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7aef118b45544583ccef9e497e131abd9ebf17d3
|
4
|
+
data.tar.gz: 709860181e8c9d539a57b926e227a0f0724f0ef7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ccd59cd78c452237c4c5108ff4244dcc083a9fb0e819ed11862bc99f7d1da495ec348df9210d8f25537504cb3bc9d2ce3121a09081f018dc44730457ac327b08
|
7
|
+
data.tar.gz: 3bfaa063bd3e73479f5acbdd7abc44538a0b318a84aed2282dd3ce2baa490e08e218c4413ff16d96c49911e0fec960a07cbecfe65e89113ce467dff24b48f690
|
@@ -0,0 +1,66 @@
|
|
1
|
+
//Variables
|
2
|
+
$order-border: $border;
|
3
|
+
|
4
|
+
/*Results per page styles*/
|
5
|
+
.results-per-page{
|
6
|
+
margin-bottom: 1rem;
|
7
|
+
display: flex;
|
8
|
+
align-items: baseline;
|
9
|
+
flex-wrap: wrap;
|
10
|
+
}
|
11
|
+
|
12
|
+
.results-per-page__dropdown{
|
13
|
+
display: flex;
|
14
|
+
flex-wrap: wrap;
|
15
|
+
.menu{
|
16
|
+
.is-dropdown-submenu-parent > a{
|
17
|
+
padding: 0;
|
18
|
+
margin-left: .5rem;
|
19
|
+
margin-top: .25rem;
|
20
|
+
}
|
21
|
+
}
|
22
|
+
}
|
23
|
+
|
24
|
+
.results-per-page__dropdown--right{
|
25
|
+
margin-left: auto;
|
26
|
+
}
|
27
|
+
|
28
|
+
.results-per-page__action{
|
29
|
+
margin-left: auto;
|
30
|
+
justify-content: flex-end;
|
31
|
+
.button{
|
32
|
+
margin-bottom: 0;
|
33
|
+
}
|
34
|
+
}
|
35
|
+
|
36
|
+
/*.results-per-page__text{
|
37
|
+
@include breakpoint(medium down){
|
38
|
+
font-size: 18px;
|
39
|
+
}
|
40
|
+
}*/
|
41
|
+
|
42
|
+
.results-per-page__tabs{
|
43
|
+
display: inline-block;
|
44
|
+
}
|
45
|
+
|
46
|
+
.results-per-page__tab{
|
47
|
+
color: $muted;
|
48
|
+
&:after{
|
49
|
+
content: "";
|
50
|
+
display: inline-block;
|
51
|
+
height: .75em;
|
52
|
+
border-left: $border;
|
53
|
+
margin: 0 .2em 0 .5em;
|
54
|
+
vertical-align: middle;
|
55
|
+
}
|
56
|
+
&.is-active{
|
57
|
+
color: $anchor-color;
|
58
|
+
}
|
59
|
+
&:first-of-type{
|
60
|
+
padding-left: 0;
|
61
|
+
}
|
62
|
+
&:last-of-type:after{
|
63
|
+
border-left: none;
|
64
|
+
}
|
65
|
+
}
|
66
|
+
|
@@ -14,7 +14,7 @@ module Decidim
|
|
14
14
|
return broadcast(:invalid) if form.invalid?
|
15
15
|
|
16
16
|
if user.present?
|
17
|
-
|
17
|
+
update_user
|
18
18
|
else
|
19
19
|
invite_user
|
20
20
|
end
|
@@ -30,8 +30,8 @@ module Decidim
|
|
30
30
|
@user ||= Decidim::User.where(organization: form.organization).where(email: form.email.downcase).first
|
31
31
|
end
|
32
32
|
|
33
|
-
def
|
34
|
-
user.
|
33
|
+
def update_user
|
34
|
+
user.admin = form.admin
|
35
35
|
user.save!
|
36
36
|
end
|
37
37
|
|
@@ -40,7 +40,7 @@ module Decidim
|
|
40
40
|
name: form.name,
|
41
41
|
email: form.email.downcase,
|
42
42
|
organization: form.organization,
|
43
|
-
|
43
|
+
admin: form.admin,
|
44
44
|
comments_notifications: true,
|
45
45
|
replies_notifications: true
|
46
46
|
)
|
@@ -1,27 +1,25 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Decidim
|
4
|
-
# A command to remove
|
5
|
-
class
|
4
|
+
# A command to remove the admin privilege to an user.
|
5
|
+
class RemoveAdmin < Rectify::Command
|
6
6
|
# Public: Initializes the command.
|
7
7
|
#
|
8
8
|
# form - A form object with the params.
|
9
|
-
def initialize(user
|
9
|
+
def initialize(user)
|
10
10
|
@user = user
|
11
|
-
@role = role
|
12
11
|
end
|
13
12
|
|
14
13
|
def call
|
15
14
|
return broadcast(:invalid) unless user
|
16
15
|
|
17
|
-
user.
|
18
|
-
user.save!
|
16
|
+
user.update_attributes!(admin: false)
|
19
17
|
|
20
18
|
broadcast(:ok)
|
21
19
|
end
|
22
20
|
|
23
21
|
private
|
24
22
|
|
25
|
-
attr_reader :user
|
23
|
+
attr_reader :user
|
26
24
|
end
|
27
25
|
end
|
@@ -30,7 +30,8 @@ module Decidim
|
|
30
30
|
current_settings: try(:current_settings),
|
31
31
|
feature_settings: try(:feature_settings),
|
32
32
|
current_organization: try(:current_organization),
|
33
|
-
current_feature: try(:current_feature)
|
33
|
+
current_feature: try(:current_feature),
|
34
|
+
current_participatory_process: try(:current_participatory_process)
|
34
35
|
}
|
35
36
|
end
|
36
37
|
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "active_support/concern"
|
4
|
+
|
5
|
+
module Decidim
|
6
|
+
# Common logic to paginate resources
|
7
|
+
module Paginable
|
8
|
+
extend ActiveSupport::Concern
|
9
|
+
|
10
|
+
OPTIONS = [20, 50, 100].freeze
|
11
|
+
|
12
|
+
included do
|
13
|
+
helper_method :per_page
|
14
|
+
|
15
|
+
def paginate(resources)
|
16
|
+
resources.page(params[:page]).per(per_page)
|
17
|
+
end
|
18
|
+
|
19
|
+
def per_page
|
20
|
+
params[:per_page] || OPTIONS.first
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -1,19 +1,19 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Decidim
|
4
|
-
# A form object used to invite
|
4
|
+
# A form object used to invite users to an organization.
|
5
5
|
#
|
6
|
-
class
|
6
|
+
class InviteUserForm < Form
|
7
7
|
mimic :user
|
8
8
|
|
9
9
|
attribute :email, String
|
10
10
|
attribute :name, String
|
11
11
|
attribute :invitation_instructions, String
|
12
|
-
attribute :roles, Array[String]
|
13
12
|
attribute :organization, Decidim::Organization
|
14
13
|
attribute :invited_by, Decidim::User
|
14
|
+
attribute :admin, Boolean
|
15
15
|
|
16
|
-
validates :email, :name, :organization, :invitation_instructions,
|
16
|
+
validates :email, :name, :organization, :invitation_instructions, presence: true
|
17
17
|
validate :admin_uniqueness
|
18
18
|
|
19
19
|
def email
|
@@ -11,7 +11,7 @@ module Decidim
|
|
11
11
|
has_many :participatory_processes, foreign_key: "decidim_organization_id", class_name: "Decidim::ParticipatoryProcess", inverse_of: :organization
|
12
12
|
has_many :static_pages, foreign_key: "decidim_organization_id", class_name: "Decidim::StaticPage", inverse_of: :organization
|
13
13
|
has_many :scopes, -> { order(name: :asc) }, foreign_key: "decidim_organization_id", class_name: "Decidim::Scope", inverse_of: :organization
|
14
|
-
has_many :admins, -> { where(
|
14
|
+
has_many :admins, -> { where(admin: true) }, foreign_key: "decidim_organization_id", class_name: "Decidim::User"
|
15
15
|
has_many :users, foreign_key: "decidim_organization_id", class_name: "Decidim::User"
|
16
16
|
|
17
17
|
validates :name, :host, uniqueness: true
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
# Defines a relation between a user and a participatory process, and what
|
5
|
+
# kind of relation does the user has.
|
6
|
+
class ParticipatoryProcessUserRole < ApplicationRecord
|
7
|
+
belongs_to :user, foreign_key: "decidim_user_id", class_name: "Decidim::User", optional: true
|
8
|
+
belongs_to :participatory_process, foreign_key: "decidim_participatory_process_id", class_name: "Decidim::ParticipatoryProcess", optional: true
|
9
|
+
|
10
|
+
ROLES = %w(admin collaborator moderator).freeze
|
11
|
+
validates :role, inclusion: { in: ROLES }, uniqueness: { scope: [:user, :participatory_process] }
|
12
|
+
end
|
13
|
+
end
|
data/app/models/decidim/user.rb
CHANGED
@@ -18,14 +18,11 @@ module Decidim
|
|
18
18
|
has_many :memberships, class_name: "Decidim::UserGroupMembership", foreign_key: :decidim_user_id
|
19
19
|
has_many :user_groups, through: :memberships, class_name: "Decidim::UserGroup", foreign_key: :decidim_user_group_id
|
20
20
|
|
21
|
-
ROLES = %w(admin moderator collaborator official).freeze
|
22
|
-
|
23
21
|
validates :name, presence: true, unless: -> { deleted? }
|
24
22
|
validates :locale, inclusion: { in: I18n.available_locales.map(&:to_s) }, allow_blank: true
|
25
23
|
validates :tos_agreement, acceptance: true, allow_nil: false, on: :create
|
26
24
|
validates :avatar, file_size: { less_than_or_equal_to: MAXIMUM_AVATAR_FILE_SIZE }
|
27
25
|
validates :email, uniqueness: { scope: :organization }, unless: -> { deleted? }
|
28
|
-
validate :all_roles_are_valid
|
29
26
|
mount_uploader :avatar, Decidim::AvatarUploader
|
30
27
|
|
31
28
|
scope :not_deleted, -> { where(deleted_at: nil) }
|
@@ -43,16 +40,7 @@ module Decidim
|
|
43
40
|
@ability ||= Ability.new(self)
|
44
41
|
end
|
45
42
|
|
46
|
-
#
|
47
|
-
#
|
48
|
-
# role - a String or a Symbol that represents the role that is being
|
49
|
-
# checked
|
50
|
-
#
|
51
|
-
# Returns a boolean.
|
52
|
-
def role?(role)
|
53
|
-
roles.include?(role.to_s)
|
54
|
-
end
|
55
|
-
|
43
|
+
# Public: returns the user's name or the default one
|
56
44
|
def name
|
57
45
|
super || I18n.t("decidim.anonymous_user")
|
58
46
|
end
|
@@ -86,10 +74,6 @@ module Decidim
|
|
86
74
|
|
87
75
|
private
|
88
76
|
|
89
|
-
def all_roles_are_valid
|
90
|
-
errors.add(:roles, :invalid) unless roles.all? { |role| ROLES.include?(role) }
|
91
|
-
end
|
92
|
-
|
93
77
|
# Changes default Devise behaviour to use ActiveJob to send async emails.
|
94
78
|
def send_devise_notification(notification, *args)
|
95
79
|
devise_mailer.send(notification, self, *args).deliver_later
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
# A class used to find the ParticipatoryProcesses that the given user has
|
5
|
+
# the specific role privilege.
|
6
|
+
class ParticipatoryProcessesWithUserRole < Rectify::Query
|
7
|
+
# Syntactic sugar to initialize the class and return the queried objects.
|
8
|
+
#
|
9
|
+
# user - a User that needs to find which processes can manage
|
10
|
+
# role - (optional) a Symbol to specify the role privilege
|
11
|
+
def self.for(user, role = :any)
|
12
|
+
new(user, role).query
|
13
|
+
end
|
14
|
+
|
15
|
+
# Initializes the class.
|
16
|
+
#
|
17
|
+
# user - a User that needs to find which processes can manage
|
18
|
+
# role - (optional) a Symbol to specify the role privilege
|
19
|
+
def initialize(user, role = :any)
|
20
|
+
@user = user
|
21
|
+
@role = role
|
22
|
+
end
|
23
|
+
|
24
|
+
# Finds the ParticipatoryProcesses that the given user has role privileges.
|
25
|
+
# If the special role ':any' is provided it returns all processes where
|
26
|
+
# the user has some kind of role privilege.
|
27
|
+
#
|
28
|
+
# Returns an ActiveRecord::Relation.
|
29
|
+
def query
|
30
|
+
# Admin users have all role privileges for all organization processes
|
31
|
+
return user.organization.participatory_processes if user.admin?
|
32
|
+
|
33
|
+
ParticipatoryProcess.where(id: process_ids)
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
attr_reader :user, :role
|
39
|
+
|
40
|
+
def process_ids
|
41
|
+
user_roles = ParticipatoryProcessUserRole.where(user: user) if role == :any
|
42
|
+
user_roles = ParticipatoryProcessUserRole.where(user: user, role: role) if role != :any
|
43
|
+
user_roles.pluck(:decidim_participatory_process_id)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<div class="results-per-page">
|
2
|
+
<div class="results-per-page__dropdown">
|
3
|
+
<span class="results-per-page__text"><%= t(".label") %></span>
|
4
|
+
<ul class="dropdown menu" data-dropdown-menu>
|
5
|
+
<li class="is-dropdown-submenu-parent">
|
6
|
+
<a><%= per_page %></a>
|
7
|
+
|
8
|
+
<ul class="menu">
|
9
|
+
<% Decidim::Paginable::OPTIONS.each do |per_page_option| %>
|
10
|
+
<li>
|
11
|
+
<%= link_to per_page_option, url_for(params.to_unsafe_h.merge(page: nil, per_page: per_page_option)), data: { per_page_option: per_page_option } %>
|
12
|
+
</li>
|
13
|
+
<% end %>
|
14
|
+
</ul>
|
15
|
+
</li>
|
16
|
+
</ul>
|
17
|
+
</div>
|
18
|
+
</div>
|
data/config/locales/ca.yml
CHANGED
@@ -39,7 +39,7 @@ ca:
|
|
39
39
|
confirm:
|
40
40
|
close: Tanca la finestra
|
41
41
|
ok: Sí, vull eliminar el meu compte
|
42
|
-
question:
|
42
|
+
question: Segur que vols eliminar el teu compte?
|
43
43
|
title: Eliminar el meu compte
|
44
44
|
explanation: Si us plau, omple la raó per la qual vols eliminar el teu compte (opcional).
|
45
45
|
destroy:
|
@@ -254,6 +254,8 @@ ca:
|
|
254
254
|
sign_up: Donar-se d'alta
|
255
255
|
reference:
|
256
256
|
reference: 'Referència: %{reference}'
|
257
|
+
results_per_page:
|
258
|
+
label: 'Resultats per pàgina:'
|
257
259
|
share_modal:
|
258
260
|
close_window: Tanca la finestra
|
259
261
|
share: Compartir
|
@@ -370,7 +372,7 @@ ca:
|
|
370
372
|
proposals_explanation: Espai obert de propostes dels ciutadans sobre quin tipus de ciutat volem viure.
|
371
373
|
footer_sub_hero:
|
372
374
|
footer_sub_hero_body: Construïm una societat més oberta, transparent i col·laborativa.<br />Uneix-te, participa i decideix.
|
373
|
-
footer_sub_hero_headline:
|
375
|
+
footer_sub_hero_headline: Benvinguda i benvingut a la plataforma participativa %{organization}.
|
374
376
|
register: Registra't
|
375
377
|
hero:
|
376
378
|
participate: Participa
|
data/config/locales/en.yml
CHANGED
data/config/locales/es.yml
CHANGED
data/config/locales/it.yml
CHANGED
@@ -2,38 +2,34 @@ it:
|
|
2
2
|
activemodel:
|
3
3
|
attributes:
|
4
4
|
report:
|
5
|
-
details:
|
5
|
+
details: Ulteriori commenti
|
6
6
|
user:
|
7
7
|
email: La tua email
|
8
8
|
name: Il tuo nome
|
9
9
|
password: Nuova password
|
10
|
-
password_confirmation: Conferma la nuova password
|
11
|
-
user_group_document_number:
|
10
|
+
password_confirmation: Conferma la tua nuova password
|
11
|
+
user_group_document_number: Codice fiscale dell'organizzazione
|
12
12
|
user_group_name: Nome dell'organizzazione
|
13
|
-
user_group_phone:
|
13
|
+
user_group_phone: Telefono dell'organizzazione
|
14
14
|
activerecord:
|
15
15
|
attributes:
|
16
16
|
decidim/user:
|
17
17
|
current_password: Password attuale
|
18
18
|
name: Nome Utente
|
19
|
-
password_confirmation: Conferma
|
20
|
-
remember_me: Ricordami (rimani collegato)
|
21
|
-
user_group_document_number:
|
19
|
+
password_confirmation: Conferma password
|
20
|
+
remember_me: Ricordami su questo computer (rimani collegato)
|
21
|
+
user_group_document_number: Codice fiscale dell'organizzazione
|
22
22
|
user_group_name: Nome dell'organizzazione
|
23
|
-
user_group_phone: Numero di telefono dell'organizzazione
|
24
23
|
booleans:
|
25
24
|
'true': 'Si'
|
26
|
-
carrierwave:
|
27
|
-
errors:
|
28
|
-
image_too_big: La dimensione dell'immagine è troppo grande
|
29
25
|
decidim:
|
30
26
|
account:
|
31
27
|
show:
|
32
|
-
change_password:
|
33
|
-
update_account: Aggiorna
|
28
|
+
change_password: Cambia password
|
29
|
+
update_account: Aggiorna Account
|
34
30
|
update:
|
35
31
|
error: Si è verificato un errore durante l'aggiornamento del tuo account.
|
36
|
-
success:
|
32
|
+
success: Il tuo account è stato aggiornato correttamente.
|
37
33
|
application:
|
38
34
|
documents:
|
39
35
|
related_documents: Documenti correlati
|
@@ -42,20 +38,20 @@ it:
|
|
42
38
|
authorization_handlers:
|
43
39
|
decidim/dummy_authorization_handler:
|
44
40
|
fields:
|
45
|
-
document_number:
|
41
|
+
document_number: Numero di documento
|
46
42
|
postal_code: C.A.P.
|
47
43
|
name: Esempio di autorizzazione
|
48
44
|
errors:
|
49
|
-
duplicate_authorization: Esiste già un utente
|
45
|
+
duplicate_authorization: Esiste già un utente registrato con gli stessi dati.
|
50
46
|
authorizations:
|
51
47
|
create:
|
52
|
-
error:
|
53
|
-
success:
|
54
|
-
current_participatory_processes:
|
48
|
+
error: Si è verificato un errore nella creazione dell'autorizzazione.
|
49
|
+
success: Sei stato autorizzato con successo.
|
50
|
+
current_participatory_processes: dai un'occhiata ai processi attuali
|
55
51
|
first_login:
|
56
52
|
actions:
|
57
|
-
decidim/dummy_authorization_handler: Verifica rispetto all'autorizzazione
|
58
|
-
title: Verifica
|
53
|
+
decidim/dummy_authorization_handler: Verifica rispetto all'autorizzazione esempio
|
54
|
+
title: Verifica la tua identità
|
59
55
|
verify_with_these_options: 'Opzioni per la verifica dell''autorizzazione:'
|
60
56
|
new:
|
61
57
|
authorize: Invia
|
@@ -63,59 +59,49 @@ it:
|
|
63
59
|
skip_verification: Se preferisci puoi saltare questa verifica per il momento e %{link}
|
64
60
|
core:
|
65
61
|
actions:
|
66
|
-
unauthorized: Non
|
62
|
+
unauthorized: Non sei autorizzato a eseguire questa azione
|
67
63
|
devise:
|
68
64
|
omniauth_registrations:
|
69
|
-
create:
|
70
|
-
email_already_exists: Questo indirizzo email è già utilizzato per un altro account
|
71
65
|
new:
|
72
66
|
complete_profile: Completa il profilo
|
73
|
-
sign_up: Per
|
74
|
-
subtitle: Per
|
75
|
-
username_help: Nome "pubblico" che comparirà per i tuoi post. Usa un nome di fantasia se vuoi garantirti un certo grado di anonimato.
|
67
|
+
sign_up: Per favore, completa il tuo profilo
|
68
|
+
subtitle: Per favore, compila il seguente modulo per completare la registrazione
|
76
69
|
registrations:
|
77
70
|
new:
|
78
71
|
already_have_an_account?: Hai già un account?
|
79
|
-
newsletter_notifications: Ricevi informazioni
|
72
|
+
newsletter_notifications: Ricevi informazioni sulle attività rilevanti
|
80
73
|
sign_up: Registrazione
|
81
74
|
sign_up_as:
|
82
75
|
legend: Registrati come
|
83
76
|
user: Individuo
|
84
|
-
|
85
|
-
subtitle: Registrati per partecipare alle discussioni e per votare le proposte.
|
77
|
+
subtitle: Registrati per partecipare alle discussioni e sostenere le proposte.
|
86
78
|
terms: Termini e condizioni di utilizzo del servizio
|
87
79
|
tos_agreement: Effettuando la registrazione automaticamente accetti le seguenti condizioni %{link}.
|
88
|
-
username_help: Nome "pubblico" che comparirà per i tuoi post. Usa un nome di fantasia se vuoi garantirti un certo grado di anonimato.
|
89
80
|
sessions:
|
90
81
|
new:
|
91
|
-
are_you_new?:
|
82
|
+
are_you_new?: Sei nuovo nella piattaforma?
|
92
83
|
register: Crea un account
|
93
|
-
shared:
|
94
|
-
omniauth_buttons:
|
95
|
-
or: oppure
|
96
84
|
export_mailer:
|
97
85
|
export:
|
98
|
-
ready:
|
99
|
-
subject: Ecco i dati che hai chiesto di esportare per "%{name}"
|
86
|
+
ready: In allegato una versione zippata (Zip) dei dati esportati.
|
100
87
|
features:
|
101
88
|
dummy:
|
102
|
-
name: Funzionalità
|
89
|
+
name: Funzionalità di prova
|
103
90
|
settings:
|
104
91
|
global:
|
105
92
|
comments_enabled: Commenti abilitati
|
106
|
-
dummy_global_attribute_1: Attributo
|
107
|
-
dummy_global_attribute_2: Attributo
|
93
|
+
dummy_global_attribute_1: Attributo di prova 1
|
94
|
+
dummy_global_attribute_2: Attributo di prova 2
|
108
95
|
step:
|
109
96
|
comments_blocked: Commenti bloccati
|
110
|
-
dummy_step_attribute_1: Attributo 1 della fase
|
111
|
-
dummy_step_attribute_2: Attributo 2 della fase
|
97
|
+
dummy_step_attribute_1: Attributo 1 della fase di prova
|
98
|
+
dummy_step_attribute_2: Attributo 2 della fase di prova
|
112
99
|
filters:
|
113
100
|
linked_classes:
|
114
101
|
all: Tutto
|
115
102
|
meeting: Incontri
|
116
103
|
project: Progetti
|
117
104
|
proposal: Proposte
|
118
|
-
result: Votazioni
|
119
105
|
forms:
|
120
106
|
errors:
|
121
107
|
error: Si è verificato un errore in questo campo.
|
@@ -124,16 +110,15 @@ it:
|
|
124
110
|
processes: Processi
|
125
111
|
newsletter_mailer:
|
126
112
|
newsletter:
|
127
|
-
note: Hai ricevuto questa email perché ti sei iscritto alla newsletter su %{organization_name}. Puoi modificare le impostazioni
|
113
|
+
note: Hai ricevuto questa email perché ti sei iscritto alla newsletter su %{organization_name}. Puoi modificare le impostazioni sulla tua <a href="%{link}">pagina di notifiche</a>.
|
128
114
|
notifications_settings:
|
129
115
|
show:
|
130
116
|
comments_notifications: Desidero ricevere un'email di notifica quando qualcuno mi scrive un commento.
|
131
117
|
newsletter_notifications: Desidero ricevere informazioni sulle attività rilevanti.
|
132
|
-
replies_notifications: Desidero ricevere
|
118
|
+
replies_notifications: Desidero ricevere un'email di notifica quando qualcuno risponde i miei commenti.
|
133
119
|
update_notifications_settings: Salva le modifiche
|
134
120
|
update:
|
135
121
|
error: Si è verificato un errore durante l'aggiornamento delle impostazioni di notifica.
|
136
|
-
success: OK, le impostazioni per le notifiche sono state modificate.
|
137
122
|
own_user_groups:
|
138
123
|
index:
|
139
124
|
verified: Verificato
|
@@ -165,6 +150,7 @@ it:
|
|
165
150
|
reported_mailer:
|
166
151
|
hide:
|
167
152
|
hello: Ciao %{name},
|
153
|
+
report_html: <p>Il seguente <a href="%{url}">contenuto</a> è stato nascosto automaticamente.</p>
|
168
154
|
subject: Una risorsa è stata cancellata automaticamente
|
169
155
|
report:
|
170
156
|
hello: Ciao %{name},
|