decidim-assemblies 0.11.2 → 0.12.0.pre
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.
- checksums.yaml +4 -4
- data/app/assets/config/admin/decidim_assemblies_manifest.js +1 -0
- data/app/assets/javascripts/decidim/assemblies/admin/assembly_members.js.es6 +37 -0
- data/app/cells/decidim/assemblies/assembly_cell.rb +19 -0
- data/app/cells/decidim/assemblies/assembly_m/footer.erb +15 -0
- data/app/cells/decidim/assemblies/assembly_m/tags.erb +1 -0
- data/app/cells/decidim/assemblies/assembly_m_cell.rb +50 -0
- data/app/cells/decidim/assemblies/assembly_member/show.erb +53 -0
- data/app/cells/decidim/assemblies/assembly_member_cell.rb +21 -0
- data/app/commands/decidim/assemblies/admin/create_assembly_member.rb +73 -0
- data/app/commands/decidim/assemblies/admin/destroy_assembly_member.rb +56 -0
- data/app/commands/decidim/assemblies/admin/update_assembly_member.rb +69 -0
- data/app/controllers/decidim/assemblies/admin/application_controller.rb +14 -0
- data/app/controllers/decidim/assemblies/admin/assemblies_controller.rb +8 -12
- data/app/controllers/decidim/assemblies/admin/assembly_attachment_collections_controller.rb +1 -1
- data/app/controllers/decidim/assemblies/admin/assembly_attachments_controller.rb +1 -1
- data/app/controllers/decidim/assemblies/admin/assembly_copies_controller.rb +3 -3
- data/app/controllers/decidim/assemblies/admin/assembly_members_controller.rb +86 -0
- data/app/controllers/decidim/assemblies/admin/assembly_publications_controller.rb +3 -3
- data/app/controllers/decidim/assemblies/admin/assembly_user_roles_controller.rb +7 -7
- data/app/controllers/decidim/assemblies/admin/concerns/assembly_admin.rb +20 -8
- data/app/controllers/decidim/assemblies/admin/participatory_space_private_users_controller.rb +1 -1
- data/app/controllers/decidim/assemblies/application_controller.rb +32 -0
- data/app/controllers/decidim/assemblies/assemblies_controller.rb +2 -2
- data/app/controllers/decidim/assemblies/assembly_members_controller.rb +35 -0
- data/app/forms/decidim/assemblies/admin/assembly_member_form.rb +51 -0
- data/app/models/decidim/assembly.rb +12 -1
- data/app/models/decidim/assembly_member.rb +24 -0
- data/app/permissions/decidim/assemblies/permissions.rb +230 -0
- data/app/presenters/decidim/admin/assembly_member_presenter.rb +24 -0
- data/app/presenters/decidim/assemblies/admin_log/assembly_member_presenter.rb +52 -0
- data/app/presenters/decidim/assemblies/admin_log/value_types/member_position_presenter.rb +21 -0
- data/app/presenters/decidim/assembly_member_presenter.rb +46 -0
- data/app/queries/decidim/assemblies/admin/assembly_members.rb +55 -0
- data/app/views/decidim/assemblies/_assembly.html.erb +1 -22
- data/app/views/decidim/assemblies/admin/assemblies/_form.html.erb +2 -0
- data/app/views/decidim/assemblies/admin/assemblies/edit.html.erb +2 -2
- data/app/views/decidim/assemblies/admin/assemblies/index.html.erb +8 -8
- data/app/views/decidim/assemblies/admin/assembly_members/_form.html.erb +66 -0
- data/app/views/decidim/assemblies/admin/assembly_members/edit.html.erb +7 -0
- data/app/views/decidim/assemblies/admin/assembly_members/index.html.erb +91 -0
- data/app/views/decidim/assemblies/admin/assembly_members/new.html.erb +7 -0
- data/app/views/decidim/assemblies/admin/assembly_user_roles/index.html.erb +4 -4
- data/app/views/decidim/assemblies/assemblies/show.html.erb +1 -2
- data/app/views/decidim/assemblies/assembly_members/index.html.erb +10 -0
- data/app/views/decidim/assemblies/pages/user_profile/_member_of.html.erb +12 -0
- data/app/views/decidim/assembly_members/_assembly_member.html.erb +1 -0
- data/app/views/layouts/decidim/_assembly_header.html.erb +10 -1
- data/app/views/layouts/decidim/admin/assemblies.html.erb +7 -10
- data/app/views/layouts/decidim/admin/assembly.html.erb +19 -11
- data/config/locales/ca.yml +84 -0
- data/config/locales/en.yml +84 -0
- data/config/locales/es.yml +84 -0
- data/config/locales/eu.yml +84 -0
- data/config/locales/fi.yml +84 -0
- data/config/locales/fr.yml +84 -0
- data/config/locales/gl.yml +84 -0
- data/config/locales/it.yml +84 -0
- data/config/locales/nl.yml +84 -0
- data/config/locales/pl.yml +90 -0
- data/config/locales/pt-BR.yml +84 -0
- data/config/locales/pt.yml +84 -0
- data/config/locales/ru.yml +96 -11
- data/config/locales/sv.yml +84 -0
- data/config/locales/uk.yml +91 -1
- data/db/migrate/20180314143822_add_assembly_members.rb +21 -0
- data/db/migrate/20180426162405_assembly_member_belongs_to_user.rb +7 -0
- data/db/migrate/20180515073049_update_assembly_members_index.rb +8 -0
- data/lib/decidim/assemblies/admin_engine.rb +2 -12
- data/lib/decidim/assemblies/engine.rb +21 -10
- data/lib/decidim/assemblies/participatory_space.rb +58 -2
- data/lib/decidim/assemblies/test/factories.rb +35 -0
- data/lib/decidim/assemblies/version.rb +1 -1
- metadata +41 -22
- data/app/controllers/decidim/assemblies/categories_controller.rb +0 -13
- data/app/models/decidim/assemblies/abilities/admin/admin_ability.rb +0 -20
- data/app/models/decidim/assemblies/abilities/admin/assembly_admin_ability.rb +0 -58
- data/app/models/decidim/assemblies/abilities/admin/assembly_collaborator_ability.rb +0 -25
- data/app/models/decidim/assemblies/abilities/admin/assembly_moderator_ability.rb +0 -33
- data/app/models/decidim/assemblies/abilities/admin/assembly_role_ability.rb +0 -65
- data/app/models/decidim/assemblies/abilities/admin_ability.rb +0 -16
- data/app/models/decidim/assemblies/abilities/assembly_admin_ability.rb +0 -15
- data/app/models/decidim/assemblies/abilities/assembly_collaborator_ability.rb +0 -15
- data/app/models/decidim/assemblies/abilities/assembly_moderator_ability.rb +0 -15
- data/app/models/decidim/assemblies/abilities/assembly_role_ability.rb +0 -51
- data/app/models/decidim/assemblies/abilities/everyone_ability.rb +0 -17
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6791d7eb831082ab5c0b7bd445aecf6443ebf0dc01cf3155778b66448fc2f56d
|
|
4
|
+
data.tar.gz: 7fa22c9afb9bb26187c823324f82d87203c9e728a470e47790b0b09befd39597
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: af08717e850454bcf5fd18078fc2d6ddbe1e2dfc1f2d5da84e28afbbf61cc06e4e2d6aa9a37b486d510f6f6dca5f54bdadda8dba5c73dfd32035c1cf89c80bc0
|
|
7
|
+
data.tar.gz: '09861ca737a3a80d48c3a3bdb6589be3ede4cf2d88f26f3661af23c53ede41049a53ae2645ad7fc9fe71f474670710c705f4e62bd9ce39f6f54a4ef1e99f95bb'
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
((exports) => {
|
|
2
|
+
const { createFieldDependentInputs } = exports.DecidimAdmin;
|
|
3
|
+
|
|
4
|
+
const $assemblyMemberType = $("#assembly_member_existing_user");
|
|
5
|
+
|
|
6
|
+
createFieldDependentInputs({
|
|
7
|
+
controllerField: $assemblyMemberType,
|
|
8
|
+
wrapperSelector: ".user-fields",
|
|
9
|
+
dependentFieldsSelector: ".user-fields--full-name",
|
|
10
|
+
dependentInputSelector: "input",
|
|
11
|
+
enablingCondition: ($field) => {
|
|
12
|
+
return $field.val() === "false"
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
createFieldDependentInputs({
|
|
17
|
+
controllerField: $assemblyMemberType,
|
|
18
|
+
wrapperSelector: ".user-fields",
|
|
19
|
+
dependentFieldsSelector: ".user-fields--user-picker",
|
|
20
|
+
dependentInputSelector: "input",
|
|
21
|
+
enablingCondition: ($field) => {
|
|
22
|
+
return $field.val() === "true"
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
const $assemblyMemberPosition = $("#assembly_member_position");
|
|
27
|
+
|
|
28
|
+
createFieldDependentInputs({
|
|
29
|
+
controllerField: $assemblyMemberPosition,
|
|
30
|
+
wrapperSelector: ".position-fields",
|
|
31
|
+
dependentFieldsSelector: ".position-fields--position-other",
|
|
32
|
+
dependentInputSelector: "input",
|
|
33
|
+
enablingCondition: ($field) => {
|
|
34
|
+
return $field.val() === "other"
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
})(window);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Decidim
|
|
4
|
+
module Assemblies
|
|
5
|
+
# This cell renders the assembly card for an instance of an Assembly
|
|
6
|
+
# the default size is the Medium Card (:m)
|
|
7
|
+
class AssemblyCell < Decidim::ViewModel
|
|
8
|
+
def show
|
|
9
|
+
cell card_size, model
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
private
|
|
13
|
+
|
|
14
|
+
def card_size
|
|
15
|
+
"decidim/assemblies/assembly_m"
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<div class="card__footer card__footer--spaces">
|
|
2
|
+
<div class="card__support">
|
|
3
|
+
<% if has_assembly_type? %>
|
|
4
|
+
<div class="card__support__data--left">
|
|
5
|
+
<div class="text-uppercase"><%= t("assemblies.show.assembly_type", scope: "decidim") %></div>
|
|
6
|
+
<div class="text-ellipsis"><strong><%= assembly_type %></strong></div>
|
|
7
|
+
</div>
|
|
8
|
+
<% end %>
|
|
9
|
+
<%= link_to(
|
|
10
|
+
t("layouts.decidim.assemblies.assembly.take_part"),
|
|
11
|
+
resource_path,
|
|
12
|
+
class: "card__button button button--sc secondary light small"
|
|
13
|
+
) %>
|
|
14
|
+
</div>
|
|
15
|
+
</div>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<%= render_hook :upcoming_meeting_for_card %>
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Decidim
|
|
4
|
+
module Assemblies
|
|
5
|
+
# This cell renders the Medium (:m) assembyl card
|
|
6
|
+
# for an given instance of an Assembly
|
|
7
|
+
class AssemblyMCell < Decidim::CardMCell
|
|
8
|
+
include Decidim::ViewHooksHelper
|
|
9
|
+
|
|
10
|
+
# Needed for the view hooks
|
|
11
|
+
def current_participatory_space
|
|
12
|
+
model
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
private
|
|
16
|
+
|
|
17
|
+
def has_image?
|
|
18
|
+
true
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def resource_path
|
|
22
|
+
Decidim::Assemblies::Engine.routes.url_helpers.assembly_path(model)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def resource_image_path
|
|
26
|
+
model.hero_image.url
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def statuses
|
|
30
|
+
[:creation_date, :follow]
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def resource_icon
|
|
34
|
+
icon "assemblies", class: "icon--big"
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def has_assembly_type?
|
|
38
|
+
model.assembly_type.present?
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def assembly_type
|
|
42
|
+
if model.assembly_type == "others"
|
|
43
|
+
translated_attribute(model.assembly_type_other)
|
|
44
|
+
else
|
|
45
|
+
t("assembly_types.#{model.assembly_type}", scope: "decidim.assemblies").to_s
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<div class="column">
|
|
2
|
+
<article class="card card--member">
|
|
3
|
+
<div class="card__content">
|
|
4
|
+
<div class="card__header collapse">
|
|
5
|
+
<div class="author-data author-data--big">
|
|
6
|
+
<div class="author-data__main">
|
|
7
|
+
<div class="author author--flex">
|
|
8
|
+
<% if has_profile? %>
|
|
9
|
+
<%= link_to profile_url, class: "author__avatar" do %>
|
|
10
|
+
<%= image_tag model.avatar_url(:big) %>
|
|
11
|
+
<% end %>
|
|
12
|
+
<div>
|
|
13
|
+
<div class="author__name--container">
|
|
14
|
+
<%= link_to profile_url, class: "author__name" do %>
|
|
15
|
+
<%= name %>
|
|
16
|
+
<% end %>
|
|
17
|
+
</div>
|
|
18
|
+
<% if nickname.present? %>
|
|
19
|
+
<%= link_to profile_url, class: "author__nickname" do %>
|
|
20
|
+
<%= nickname %>
|
|
21
|
+
<% end %>
|
|
22
|
+
<% else %>
|
|
23
|
+
<div class="author__nickname"> </div>
|
|
24
|
+
<% end %>
|
|
25
|
+
</div>
|
|
26
|
+
<% else %>
|
|
27
|
+
<div class="author__avatar"><%= image_tag asset_path("decidim/default-avatar.svg") %></div>
|
|
28
|
+
<div>
|
|
29
|
+
<div class="author__name--container">
|
|
30
|
+
<div class="author__name">
|
|
31
|
+
<%= name %>
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
34
|
+
<div class="author__nickname"><%= nickname.presence || " " %></div>
|
|
35
|
+
</div>
|
|
36
|
+
<% end %>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
<div class="card__text card--picture-offset">
|
|
42
|
+
<div>
|
|
43
|
+
<small><strong><%= position %></strong></small>
|
|
44
|
+
</div>
|
|
45
|
+
<div class="text-small">
|
|
46
|
+
<%= t("decidim.assembly_members.assembly_member.designated_on") %>
|
|
47
|
+
<strong> <%= l designation_date, format: :decidim_short %></strong>
|
|
48
|
+
</div>
|
|
49
|
+
<div class="text-small mt-s"><%= personal_information %></div>
|
|
50
|
+
</div>
|
|
51
|
+
</div>
|
|
52
|
+
</article>
|
|
53
|
+
</div>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Decidim
|
|
4
|
+
module Assemblies
|
|
5
|
+
# This cell renders the card for an instance of an Assembly member
|
|
6
|
+
class AssemblyMemberCell < Decidim::ViewModel
|
|
7
|
+
property :designation_date
|
|
8
|
+
property :name
|
|
9
|
+
property :nickname
|
|
10
|
+
property :personal_information
|
|
11
|
+
property :position
|
|
12
|
+
property :profile_url
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
|
|
16
|
+
def has_profile?
|
|
17
|
+
model.profile_url.present?
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Decidim
|
|
4
|
+
module Assemblies
|
|
5
|
+
module Admin
|
|
6
|
+
# A command with all the business logic when creating a new assembly
|
|
7
|
+
# member in the system.
|
|
8
|
+
class CreateAssemblyMember < Rectify::Command
|
|
9
|
+
# Public: Initializes the command.
|
|
10
|
+
#
|
|
11
|
+
# form - A form object with the params.
|
|
12
|
+
# assembly - The Assembly that will hold the member
|
|
13
|
+
def initialize(form, current_user, assembly)
|
|
14
|
+
@form = form
|
|
15
|
+
@current_user = current_user
|
|
16
|
+
@assembly = assembly
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# Executes the command. Broadcasts these events:
|
|
20
|
+
#
|
|
21
|
+
# - :ok when everything is valid.
|
|
22
|
+
# - :invalid if the form wasn't valid and we couldn't proceed.
|
|
23
|
+
#
|
|
24
|
+
# Returns nothing.
|
|
25
|
+
def call
|
|
26
|
+
return broadcast(:invalid) if form.invalid?
|
|
27
|
+
|
|
28
|
+
transaction do
|
|
29
|
+
create_assembly_member!
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
broadcast(:ok)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
private
|
|
36
|
+
|
|
37
|
+
attr_reader :form, :assembly, :current_user
|
|
38
|
+
|
|
39
|
+
def create_assembly_member!
|
|
40
|
+
log_info = {
|
|
41
|
+
resource: {
|
|
42
|
+
title: form.full_name
|
|
43
|
+
},
|
|
44
|
+
participatory_space: {
|
|
45
|
+
title: assembly.title
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@assembly_member = Decidim.traceability.create!(
|
|
50
|
+
Decidim::AssemblyMember,
|
|
51
|
+
current_user,
|
|
52
|
+
form.attributes.slice(
|
|
53
|
+
:full_name,
|
|
54
|
+
:gender,
|
|
55
|
+
:birthday,
|
|
56
|
+
:birthplace,
|
|
57
|
+
:ceased_date,
|
|
58
|
+
:designation_date,
|
|
59
|
+
:designation_mode,
|
|
60
|
+
:position,
|
|
61
|
+
:position_other,
|
|
62
|
+
:weight
|
|
63
|
+
).merge(
|
|
64
|
+
assembly: assembly,
|
|
65
|
+
user: form.user
|
|
66
|
+
),
|
|
67
|
+
log_info
|
|
68
|
+
)
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Decidim
|
|
4
|
+
module Assemblies
|
|
5
|
+
module Admin
|
|
6
|
+
# A command with all the business logic when destroying an assembly
|
|
7
|
+
# member in the system.
|
|
8
|
+
class DestroyAssemblyMember < Rectify::Command
|
|
9
|
+
# Public: Initializes the command.
|
|
10
|
+
#
|
|
11
|
+
# assembly_member - the AssemblyMember to destroy
|
|
12
|
+
# current_user - the user performing this action
|
|
13
|
+
def initialize(assembly_member, current_user)
|
|
14
|
+
@assembly_member = assembly_member
|
|
15
|
+
@current_user = current_user
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Executes the command. Broadcasts these events:
|
|
19
|
+
#
|
|
20
|
+
# - :ok when everything is valid.
|
|
21
|
+
# - :invalid if the form wasn't valid and we couldn't proceed.
|
|
22
|
+
#
|
|
23
|
+
# Returns nothing.
|
|
24
|
+
def call
|
|
25
|
+
destroy_member!
|
|
26
|
+
broadcast(:ok)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
private
|
|
30
|
+
|
|
31
|
+
attr_reader :assembly_member, :current_user
|
|
32
|
+
|
|
33
|
+
def destroy_member!
|
|
34
|
+
log_info = {
|
|
35
|
+
resource: {
|
|
36
|
+
title: assembly_member.full_name
|
|
37
|
+
},
|
|
38
|
+
participatory_space: {
|
|
39
|
+
title: assembly_member.assembly.title
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
Decidim.traceability.perform_action!(
|
|
44
|
+
"delete",
|
|
45
|
+
assembly_member,
|
|
46
|
+
current_user,
|
|
47
|
+
log_info
|
|
48
|
+
) do
|
|
49
|
+
assembly_member.destroy!
|
|
50
|
+
assembly_member
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Decidim
|
|
4
|
+
module Assemblies
|
|
5
|
+
module Admin
|
|
6
|
+
# A command with all the business logic when updating an assembly
|
|
7
|
+
# member in the system.
|
|
8
|
+
class UpdateAssemblyMember < Rectify::Command
|
|
9
|
+
# Public: Initializes the command.
|
|
10
|
+
#
|
|
11
|
+
# form - A form object with the params.
|
|
12
|
+
# assembly_member - The AssemblyMember to update
|
|
13
|
+
def initialize(form, assembly_member)
|
|
14
|
+
@form = form
|
|
15
|
+
@assembly_member = assembly_member
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Executes the command. Broadcasts these events:
|
|
19
|
+
#
|
|
20
|
+
# - :ok when everything is valid.
|
|
21
|
+
# - :invalid if the form wasn't valid and we couldn't proceed.
|
|
22
|
+
#
|
|
23
|
+
# Returns nothing.
|
|
24
|
+
def call
|
|
25
|
+
return broadcast(:invalid) if form.invalid?
|
|
26
|
+
return broadcast(:invalid) unless assembly_member
|
|
27
|
+
|
|
28
|
+
update_assembly_member!
|
|
29
|
+
broadcast(:ok)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
private
|
|
33
|
+
|
|
34
|
+
attr_reader :form, :assembly_member
|
|
35
|
+
|
|
36
|
+
def update_assembly_member!
|
|
37
|
+
log_info = {
|
|
38
|
+
resource: {
|
|
39
|
+
title: assembly_member.full_name
|
|
40
|
+
},
|
|
41
|
+
participatory_space: {
|
|
42
|
+
title: assembly_member.assembly.title
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
Decidim.traceability.update!(
|
|
47
|
+
assembly_member,
|
|
48
|
+
form.current_user,
|
|
49
|
+
form.attributes.slice(
|
|
50
|
+
:full_name,
|
|
51
|
+
:gender,
|
|
52
|
+
:birthday,
|
|
53
|
+
:birthplace,
|
|
54
|
+
:ceased_date,
|
|
55
|
+
:designation_date,
|
|
56
|
+
:designation_mode,
|
|
57
|
+
:position,
|
|
58
|
+
:position_other,
|
|
59
|
+
:weight
|
|
60
|
+
).merge(
|
|
61
|
+
user: form.user
|
|
62
|
+
),
|
|
63
|
+
log_info
|
|
64
|
+
)
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
@@ -5,6 +5,20 @@ module Decidim
|
|
|
5
5
|
module Admin
|
|
6
6
|
# The main admin application controller for assemblies
|
|
7
7
|
class ApplicationController < Decidim::Admin::ApplicationController
|
|
8
|
+
private
|
|
9
|
+
|
|
10
|
+
def permissions_context
|
|
11
|
+
super.merge(
|
|
12
|
+
current_participatory_space: try(:current_participatory_space)
|
|
13
|
+
)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def permission_class_chain
|
|
17
|
+
[
|
|
18
|
+
Decidim::Assemblies::Permissions,
|
|
19
|
+
Decidim::Admin::Permissions
|
|
20
|
+
]
|
|
21
|
+
end
|
|
8
22
|
end
|
|
9
23
|
end
|
|
10
24
|
end
|