decidim-assemblies 0.29.2 → 0.30.0.rc2
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/cells/decidim/assemblies/assembly_metadata_g_cell.rb +1 -14
- data/app/cells/decidim/assemblies/content_blocks/extra_data_cell.rb +2 -12
- data/app/cells/decidim/assemblies/content_blocks/highlighted_assemblies_settings_form/show.erb +1 -1
- data/app/commands/decidim/assemblies/admin/copy_assembly.rb +2 -14
- data/app/commands/decidim/assemblies/admin/create_assembly.rb +2 -2
- data/app/commands/decidim/assemblies/admin/import_assembly.rb +0 -2
- data/app/commands/decidim/assemblies/admin/update_assembly.rb +2 -2
- data/app/controllers/concerns/decidim/assemblies/admin/filterable.rb +2 -11
- data/app/controllers/decidim/assemblies/admin/assemblies_controller.rb +19 -4
- data/app/controllers/decidim/assemblies/admin/assembly_copies_controller.rb +1 -1
- data/app/controllers/decidim/assemblies/admin/assembly_share_tokens_controller.rb +18 -0
- data/app/controllers/decidim/assemblies/admin/component_share_tokens_controller.rb +18 -0
- data/app/controllers/decidim/assemblies/assemblies_controller.rb +1 -3
- data/app/controllers/decidim/assemblies/{assembly_members_controller.rb → participatory_space_private_users_controller.rb} +3 -11
- data/app/forms/decidim/assemblies/admin/assembly_copy_form.rb +0 -1
- data/app/forms/decidim/assemblies/admin/assembly_form.rb +5 -40
- data/app/forms/decidim/assemblies/admin/assembly_import_form.rb +0 -1
- data/app/helpers/decidim/assemblies/admin/assemblies_helper.rb +26 -4
- data/app/helpers/decidim/assemblies/assemblies_helper.rb +4 -4
- data/app/helpers/decidim/assemblies/filter_assemblies_helper.rb +11 -15
- data/app/models/decidim/assembly.rb +21 -11
- data/app/packs/entrypoints/decidim_assemblies_admin.js +0 -1
- data/app/packs/entrypoints/decidim_assemblies_admin_list.js +1 -0
- data/app/packs/src/decidim/assemblies/admin/assemblies_list.js +72 -0
- data/app/permissions/decidim/assemblies/permissions.rb +9 -20
- data/app/presenters/decidim/assemblies/admin_log/assembly_presenter.rb +1 -1
- data/app/presenters/decidim/assemblies/assembly_presenter.rb +0 -6
- data/app/queries/decidim/assemblies/metrics/assemblies_metric_manage.rb +2 -2
- data/app/serializers/decidim/assemblies/assembly_importer.rb +0 -35
- data/app/serializers/decidim/assemblies/assembly_serializer.rb +11 -135
- data/app/serializers/decidim/assemblies/open_data_assembly_serializer.rb +59 -0
- data/app/views/decidim/assemblies/admin/assemblies/_assemblies_thead.html.erb +19 -0
- data/app/views/decidim/assemblies/admin/assemblies/_assembly_row.html.erb +101 -0
- data/app/views/decidim/assemblies/admin/assemblies/_form.html.erb +29 -41
- data/app/views/decidim/assemblies/admin/assemblies/index.html.erb +18 -92
- data/app/views/decidim/assemblies/admin/assemblies/index.js.erb +10 -0
- data/app/views/decidim/assemblies/admin/assemblies/manage_trash.html.erb +20 -0
- data/app/views/decidim/assemblies/admin/assembly_copies/_form.html.erb +0 -4
- data/app/views/decidim/assemblies/admin/assembly_imports/_form.html.erb +0 -3
- data/app/views/decidim/assemblies/assemblies/index.html.erb +3 -1
- data/app/views/decidim/assemblies/assemblies/show.html.erb +5 -6
- data/app/views/decidim/assemblies/{assembly_members → participatory_space_private_users}/index.html.erb +6 -5
- data/config/assets.rb +2 -1
- data/config/locales/ar.yml +0 -72
- data/config/locales/bg.yml +0 -74
- data/config/locales/bs-BA.yml +0 -15
- data/config/locales/ca.yml +70 -74
- data/config/locales/cs.yml +70 -74
- data/config/locales/de.yml +70 -74
- data/config/locales/el.yml +0 -72
- data/config/locales/en.yml +71 -75
- data/config/locales/es-MX.yml +70 -74
- data/config/locales/es-PY.yml +70 -74
- data/config/locales/es.yml +70 -74
- data/config/locales/eu.yml +71 -75
- data/config/locales/fi-plain.yml +71 -75
- data/config/locales/fi.yml +71 -75
- data/config/locales/fr-CA.yml +22 -74
- data/config/locales/fr.yml +22 -74
- data/config/locales/ga-IE.yml +0 -25
- data/config/locales/gl.yml +0 -72
- data/config/locales/he-IL.yml +8 -57
- data/config/locales/hu.yml +0 -74
- data/config/locales/id-ID.yml +0 -63
- data/config/locales/is-IS.yml +0 -45
- data/config/locales/it.yml +0 -73
- data/config/locales/ja.yml +70 -74
- data/config/locales/kaa.yml +0 -9
- data/config/locales/ko.yml +0 -6
- data/config/locales/lb.yml +0 -70
- data/config/locales/lt.yml +0 -72
- data/config/locales/lv.yml +0 -74
- data/config/locales/nl.yml +0 -72
- data/config/locales/no.yml +0 -72
- data/config/locales/pl.yml +0 -75
- data/config/locales/pt-BR.yml +0 -74
- data/config/locales/pt.yml +0 -72
- data/config/locales/ro-RO.yml +14 -85
- data/config/locales/ru.yml +0 -57
- data/config/locales/sk.yml +0 -46
- data/config/locales/sl.yml +0 -54
- data/config/locales/sq-AL.yml +0 -74
- data/config/locales/sr-CS.yml +0 -15
- data/config/locales/sv.yml +71 -75
- data/config/locales/tr-TR.yml +0 -75
- data/config/locales/uk.yml +0 -57
- data/config/locales/zh-CN.yml +0 -74
- data/config/locales/zh-TW.yml +0 -72
- data/db/migrate/20190215093700_reset_negative_children_count_counters.rb +2 -2
- data/db/migrate/20210310120444_add_followable_counter_cache_to_assemblies.rb +1 -1
- data/db/migrate/20240822161222_add_deleted_at_to_decidim_assemblies.rb +8 -0
- data/db/migrate/20241016101151_migrate_assembly_members_to_private_users.rb +53 -0
- data/db/migrate/20241108141651_remove_column_show_statistics_from_assemblies.rb +7 -0
- data/decidim-assemblies.gemspec +1 -1
- data/lib/decidim/api/assemblies_type_type.rb +2 -2
- data/lib/decidim/api/assembly_type.rb +32 -34
- data/lib/decidim/assemblies/admin_engine.rb +77 -54
- data/lib/decidim/assemblies/api.rb +0 -1
- data/lib/decidim/assemblies/content_blocks/registry_manager.rb +11 -0
- data/lib/decidim/assemblies/engine.rb +9 -3
- data/lib/decidim/assemblies/menu.rb +9 -22
- data/lib/decidim/assemblies/participatory_space.rb +7 -3
- data/lib/decidim/assemblies/seeds.rb +9 -33
- data/lib/decidim/assemblies/test/factories.rb +15 -36
- data/lib/decidim/assemblies/version.rb +1 -1
- metadata +28 -48
- data/app/cells/decidim/assemblies/assembly_member/data.erb +0 -19
- data/app/cells/decidim/assemblies/assembly_member/name_and_position.erb +0 -11
- data/app/cells/decidim/assemblies/assembly_member/show.erb +0 -9
- data/app/cells/decidim/assemblies/assembly_member_cell.rb +0 -21
- data/app/commands/decidim/assemblies/admin/create_assembly_member.rb +0 -55
- data/app/commands/decidim/assemblies/admin/destroy_assembly_member.rb +0 -24
- data/app/commands/decidim/assemblies/admin/update_assembly_member.rb +0 -29
- data/app/controllers/concerns/decidim/assemblies/admin/assembly_members/filterable.rb +0 -39
- data/app/controllers/decidim/assemblies/admin/assemblies_types_controller.rb +0 -107
- data/app/controllers/decidim/assemblies/admin/assembly_members_controller.rb +0 -83
- data/app/controllers/decidim/assemblies/admin/categories_controller.rb +0 -13
- data/app/events/decidim/assemblies/create_assembly_member_event.rb +0 -17
- data/app/forms/decidim/assemblies/admin/assembly_member_form.rb +0 -64
- data/app/helpers/decidim/assemblies/admin/assembly_members_helper.rb +0 -11
- data/app/models/decidim/assembly_member.rb +0 -34
- data/app/packs/src/decidim/assemblies/admin/assembly_members.js +0 -47
- data/app/packs/src/decidim/assemblies/orgchart.js +0 -0
- data/app/presenters/decidim/admin/assembly_member_presenter.rb +0 -24
- data/app/presenters/decidim/assemblies/admin_log/assembly_member_presenter.rb +0 -51
- data/app/presenters/decidim/assemblies/admin_log/value_types/member_position_presenter.rb +0 -22
- data/app/presenters/decidim/assembly_member_presenter.rb +0 -68
- data/app/views/decidim/assemblies/admin/assemblies_types/_form.html.erb +0 -9
- data/app/views/decidim/assemblies/admin/assemblies_types/edit.html.erb +0 -13
- data/app/views/decidim/assemblies/admin/assemblies_types/index.html.erb +0 -44
- data/app/views/decidim/assemblies/admin/assemblies_types/new.html.erb +0 -18
- data/app/views/decidim/assemblies/admin/assembly_members/_form.html.erb +0 -62
- data/app/views/decidim/assemblies/admin/assembly_members/edit.html.erb +0 -18
- data/app/views/decidim/assemblies/admin/assembly_members/index.html.erb +0 -55
- data/app/views/decidim/assemblies/admin/assembly_members/new.html.erb +0 -18
- data/app/views/decidim/assembly_members/_assembly_member.html.erb +0 -1
- data/app/views/layouts/decidim/admin/assemblies_types.html.erb +0 -17
- data/lib/decidim/api/assembly_member_type.rb +0 -27
@@ -1,107 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module Assemblies
|
5
|
-
module Admin
|
6
|
-
# Controller used to manage the available assemblies types for the current
|
7
|
-
# organization.
|
8
|
-
# As this substitutes former i18n simple hash we need to keep these i18n keys for migrations
|
9
|
-
# and rollbacks. So let i18n-tasks know about:
|
10
|
-
# i18n-tasks-use t('decidim.assemblies.assembly_types.government')
|
11
|
-
# i18n-tasks-use t('decidim.assemblies.assembly_types.commission')
|
12
|
-
# i18n-tasks-use t('decidim.assemblies.assembly_types.consultative_advisory')
|
13
|
-
# i18n-tasks-use t('decidim.assemblies.assembly_types.executive')
|
14
|
-
# i18n-tasks-use t('decidim.assemblies.assembly_types.others')
|
15
|
-
# i18n-tasks-use t('decidim.assemblies.assembly_types.participatory')
|
16
|
-
# i18n-tasks-use t('decidim.assemblies.assembly_types.working_group')
|
17
|
-
# This comment (and the i18n keys) may be removed in future versions
|
18
|
-
class AssembliesTypesController < Decidim::Assemblies::Admin::ApplicationController
|
19
|
-
helper_method :available_assemblies_types, :current_assembly_type
|
20
|
-
layout "decidim/admin/assemblies_types"
|
21
|
-
|
22
|
-
# GET /admin/assemblies_types
|
23
|
-
def index
|
24
|
-
enforce_permission_to :index, :assembly_type
|
25
|
-
end
|
26
|
-
|
27
|
-
# GET /admin/assemblies_types/new
|
28
|
-
def new
|
29
|
-
enforce_permission_to :create, :assembly_type
|
30
|
-
@form = assembly_type_form.instance
|
31
|
-
end
|
32
|
-
|
33
|
-
# POST /admin/assemblies_types
|
34
|
-
def create
|
35
|
-
enforce_permission_to :create, :assembly_type
|
36
|
-
@form = assembly_type_form.from_params(params)
|
37
|
-
|
38
|
-
CreateAssembliesType.call(@form) do
|
39
|
-
on(:ok) do |_assembly_type|
|
40
|
-
flash[:notice] = I18n.t("assemblies_types.create.success", scope: "decidim.admin")
|
41
|
-
redirect_to assemblies_types_path
|
42
|
-
end
|
43
|
-
|
44
|
-
on(:invalid) do
|
45
|
-
flash.now[:alert] = I18n.t("assemblies_types.create.error", scope: "decidim.admin")
|
46
|
-
render :new
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
# GET /admin/assemblies_types/:id/edit
|
52
|
-
def edit
|
53
|
-
enforce_permission_to :edit, :assembly_type, assembly_type: current_assembly_type
|
54
|
-
@form = assembly_type_form
|
55
|
-
.from_model(current_assembly_type,
|
56
|
-
assembly_type: current_assembly_type)
|
57
|
-
end
|
58
|
-
|
59
|
-
# PUT /admin/assemblies_types/:id
|
60
|
-
def update
|
61
|
-
enforce_permission_to :update, :assembly_type, assembly_type: current_assembly_type
|
62
|
-
|
63
|
-
@form = assembly_type_form
|
64
|
-
.from_params(params, assembly_type: current_assembly_type)
|
65
|
-
|
66
|
-
UpdateAssembliesType.call(@form, current_assembly_type) do
|
67
|
-
on(:ok) do
|
68
|
-
flash[:notice] = I18n.t("assemblies_types.update.success", scope: "decidim.admin")
|
69
|
-
redirect_to assemblies_types_path
|
70
|
-
end
|
71
|
-
|
72
|
-
on(:invalid) do
|
73
|
-
flash.now[:alert] = I18n.t("assemblies_types.update.error", scope: "decidim.admin")
|
74
|
-
render :edit
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
# DELETE /admin/assemblies_types/:id
|
80
|
-
def destroy
|
81
|
-
enforce_permission_to :destroy, :assembly_type, assembly_type: current_assembly_type
|
82
|
-
|
83
|
-
Decidim::Commands::DestroyResource.call(current_assembly_type, current_user) do
|
84
|
-
on(:ok) do
|
85
|
-
flash[:notice] = I18n.t("assemblies_types.destroy.success", scope: "decidim.admin")
|
86
|
-
redirect_to assemblies_types_path
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
private
|
92
|
-
|
93
|
-
def available_assemblies_types
|
94
|
-
@available_assemblies_types ||= AssembliesType.where(organization: current_organization)
|
95
|
-
end
|
96
|
-
|
97
|
-
def current_assembly_type
|
98
|
-
@current_assembly_type ||= available_assemblies_types.find(params[:id])
|
99
|
-
end
|
100
|
-
|
101
|
-
def assembly_type_form
|
102
|
-
form(Decidim::Assemblies::Admin::AssembliesTypeForm)
|
103
|
-
end
|
104
|
-
end
|
105
|
-
end
|
106
|
-
end
|
107
|
-
end
|
@@ -1,83 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module Assemblies
|
5
|
-
module Admin
|
6
|
-
# Controller that allows managing assembly members.
|
7
|
-
#
|
8
|
-
class AssemblyMembersController < Decidim::Assemblies::Admin::ApplicationController
|
9
|
-
include Concerns::AssemblyAdmin
|
10
|
-
include Decidim::Assemblies::Admin::AssemblyMembers::Filterable
|
11
|
-
|
12
|
-
def index
|
13
|
-
enforce_permission_to :index, :assembly_member
|
14
|
-
@assembly_members = filtered_collection
|
15
|
-
end
|
16
|
-
|
17
|
-
def new
|
18
|
-
enforce_permission_to :create, :assembly_member
|
19
|
-
@form = form(AssemblyMemberForm).instance
|
20
|
-
end
|
21
|
-
|
22
|
-
def create
|
23
|
-
enforce_permission_to :create, :assembly_member
|
24
|
-
@form = form(AssemblyMemberForm).from_params(params)
|
25
|
-
|
26
|
-
CreateAssemblyMember.call(@form) do
|
27
|
-
on(:ok) do
|
28
|
-
flash[:notice] = I18n.t("assembly_members.create.success", scope: "decidim.admin")
|
29
|
-
redirect_to assembly_members_path(current_assembly)
|
30
|
-
end
|
31
|
-
|
32
|
-
on(:invalid) do
|
33
|
-
flash[:alert] = I18n.t("assembly_members.create.error", scope: "decidim.admin")
|
34
|
-
render :new
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
def edit
|
40
|
-
@assembly_member = collection.find(params[:id])
|
41
|
-
enforce_permission_to :update, :assembly_member, member: @assembly_member
|
42
|
-
@form = form(AssemblyMemberForm).from_model(@assembly_member)
|
43
|
-
end
|
44
|
-
|
45
|
-
def update
|
46
|
-
@assembly_member = collection.find(params[:id])
|
47
|
-
enforce_permission_to :update, :assembly_member, member: @assembly_member
|
48
|
-
@form = form(AssemblyMemberForm).from_params(params)
|
49
|
-
|
50
|
-
UpdateAssemblyMember.call(@form, @assembly_member) do
|
51
|
-
on(:ok) do
|
52
|
-
flash[:notice] = I18n.t("assembly_members.update.success", scope: "decidim.admin")
|
53
|
-
redirect_to assembly_members_path(current_assembly)
|
54
|
-
end
|
55
|
-
|
56
|
-
on(:invalid) do
|
57
|
-
flash.now[:alert] = I18n.t("assembly_members.update.error", scope: "decidim.admin")
|
58
|
-
render :edit
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
def destroy
|
64
|
-
@assembly_member = collection.find(params[:id])
|
65
|
-
enforce_permission_to :destroy, :assembly_member, member: @assembly_member
|
66
|
-
|
67
|
-
DestroyAssemblyMember.call(@assembly_member, current_user) do
|
68
|
-
on(:ok) do
|
69
|
-
flash[:notice] = I18n.t("assembly_members.destroy.success", scope: "decidim.admin")
|
70
|
-
redirect_to assembly_members_path(current_assembly)
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
private
|
76
|
-
|
77
|
-
def collection
|
78
|
-
@collection ||= current_assembly.members
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module Assemblies
|
5
|
-
module Admin
|
6
|
-
# Controller that allows managing categories for assemblies.
|
7
|
-
#
|
8
|
-
class CategoriesController < Decidim::Admin::CategoriesController
|
9
|
-
include Concerns::AssemblyAdmin
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module Assemblies
|
5
|
-
class CreateAssemblyMemberEvent < Decidim::Events::SimpleEvent
|
6
|
-
i18n_attributes :resource_name
|
7
|
-
|
8
|
-
def resource_name
|
9
|
-
@resource_name ||= decidim_sanitize_translated(assembly.title)
|
10
|
-
end
|
11
|
-
|
12
|
-
def assembly
|
13
|
-
@assembly ||= resource
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,64 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module Assemblies
|
5
|
-
module Admin
|
6
|
-
# A form object used to create assembly members from the admin dashboard.
|
7
|
-
#
|
8
|
-
class AssemblyMemberForm < Form
|
9
|
-
mimic :assembly_member
|
10
|
-
|
11
|
-
attribute :weight, Integer, default: 0
|
12
|
-
attribute :full_name, String
|
13
|
-
attribute :non_user_avatar
|
14
|
-
attribute :remove_non_user_avatar, Boolean, default: false
|
15
|
-
attribute :gender, String
|
16
|
-
attribute :birthday, Decidim::Attributes::LocalizedDate
|
17
|
-
attribute :birthplace, String
|
18
|
-
attribute :ceased_date, Decidim::Attributes::LocalizedDate
|
19
|
-
attribute :designation_date, Decidim::Attributes::LocalizedDate
|
20
|
-
attribute :position, String
|
21
|
-
attribute :position_other, String
|
22
|
-
attribute :user_id, Integer
|
23
|
-
attribute :existing_user, Boolean, default: false
|
24
|
-
|
25
|
-
validates :designation_date, presence: true
|
26
|
-
validates :full_name, presence: true, unless: proc { |object| object.existing_user }
|
27
|
-
validates :non_user_avatar, passthru: {
|
28
|
-
to: Decidim::AssemblyMember,
|
29
|
-
with: {
|
30
|
-
# The member gets its organization context through the assembly
|
31
|
-
# object which is why we need to create a dummy assembly in order
|
32
|
-
# to pass the correct organization context to the file upload
|
33
|
-
# validators.
|
34
|
-
assembly: lambda do |form|
|
35
|
-
Decidim::Assembly.new(organization: form.current_organization)
|
36
|
-
end
|
37
|
-
}
|
38
|
-
}
|
39
|
-
validates :position, presence: true, inclusion: { in: Decidim::AssemblyMember::POSITIONS }
|
40
|
-
validates :position_other, presence: true, if: ->(form) { form.position == "other" }
|
41
|
-
validates :ceased_date, date: { after: :designation_date, allow_blank: true }
|
42
|
-
validates :user, presence: true, if: proc { |object| object.existing_user }
|
43
|
-
|
44
|
-
def map_model(model)
|
45
|
-
self.user_id = model.decidim_user_id
|
46
|
-
self.existing_user = user_id.present?
|
47
|
-
end
|
48
|
-
|
49
|
-
def user
|
50
|
-
@user ||= current_organization.user_entities.find_by(id: user_id)
|
51
|
-
end
|
52
|
-
|
53
|
-
def positions_for_select
|
54
|
-
Decidim::AssemblyMember::POSITIONS.map do |position|
|
55
|
-
[
|
56
|
-
I18n.t(position, scope: "decidim.admin.models.assembly_member.positions"),
|
57
|
-
position
|
58
|
-
]
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
# It represents a member of the assembly (president, secretary, ...)
|
5
|
-
# Can be linked to an existent user in the platform
|
6
|
-
class AssemblyMember < ApplicationRecord
|
7
|
-
include Decidim::Traceable
|
8
|
-
include Decidim::Loggable
|
9
|
-
include Decidim::HasUploadValidations
|
10
|
-
|
11
|
-
POSITIONS = %w(president vice_president secretary other).freeze
|
12
|
-
|
13
|
-
belongs_to :user, foreign_key: "decidim_user_id", class_name: "Decidim::UserBaseEntity", optional: true
|
14
|
-
belongs_to :assembly, foreign_key: "decidim_assembly_id", class_name: "Decidim::Assembly"
|
15
|
-
alias participatory_space assembly
|
16
|
-
|
17
|
-
has_one_attached :non_user_avatar
|
18
|
-
validates_avatar :non_user_avatar, uploader: Decidim::AvatarUploader
|
19
|
-
|
20
|
-
delegate :organization, to: :assembly
|
21
|
-
|
22
|
-
default_scope { order(weight: :asc, created_at: :asc) }
|
23
|
-
|
24
|
-
scope :not_ceased, -> { where("ceased_date >= ? OR ceased_date IS NULL", Time.zone.today) }
|
25
|
-
|
26
|
-
def self.log_presenter_class_for(_log)
|
27
|
-
Decidim::Assemblies::AdminLog::AssemblyMemberPresenter
|
28
|
-
end
|
29
|
-
|
30
|
-
def remove_non_user_avatar
|
31
|
-
false
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,47 +0,0 @@
|
|
1
|
-
import createFieldDependentInputs from "src/decidim/admin/field_dependent_inputs.component"
|
2
|
-
|
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--non-user-avatar",
|
20
|
-
dependentInputSelector: "input",
|
21
|
-
enablingCondition: ($field) => {
|
22
|
-
return $field.val() === "false"
|
23
|
-
}
|
24
|
-
});
|
25
|
-
|
26
|
-
createFieldDependentInputs({
|
27
|
-
controllerField: $assemblyMemberType,
|
28
|
-
wrapperSelector: ".user-fields",
|
29
|
-
dependentFieldsSelector: ".user-fields--user-picker",
|
30
|
-
dependentInputSelector: "input",
|
31
|
-
enablingCondition: ($field) => {
|
32
|
-
return $field.val() === "true"
|
33
|
-
}
|
34
|
-
});
|
35
|
-
|
36
|
-
const $assemblyMemberPosition = $("#assembly_member_position");
|
37
|
-
|
38
|
-
createFieldDependentInputs({
|
39
|
-
controllerField: $assemblyMemberPosition,
|
40
|
-
wrapperSelector: ".position-fields",
|
41
|
-
dependentFieldsSelector: ".position-fields--position-other",
|
42
|
-
dependentInputSelector: "input",
|
43
|
-
enablingCondition: ($field) => {
|
44
|
-
return $field.val() === "other"
|
45
|
-
}
|
46
|
-
});
|
47
|
-
})
|
File without changes
|
@@ -1,24 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module Admin
|
5
|
-
#
|
6
|
-
# Decorator for assembly members
|
7
|
-
#
|
8
|
-
class AssemblyMemberPresenter < SimpleDelegator
|
9
|
-
def name
|
10
|
-
if user
|
11
|
-
"#{user.name} (#{Decidim::UserPresenter.new(user).nickname})"
|
12
|
-
else
|
13
|
-
full_name
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def position
|
18
|
-
return position_other if __getobj__.position == "other"
|
19
|
-
|
20
|
-
I18n.t(__getobj__.position, scope: "decidim.admin.models.assembly_member.positions", default: "")
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,51 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module Assemblies
|
5
|
-
module AdminLog
|
6
|
-
# This class holds the logic to present a `Decidim::AssemblyMember`
|
7
|
-
# for the `AdminLog` log.
|
8
|
-
#
|
9
|
-
# Usage should be automatic and you should not need to call this class
|
10
|
-
# directly, but here is an example:
|
11
|
-
#
|
12
|
-
# action_log = Decidim::ActionLog.last
|
13
|
-
# view_helpers # => this comes from the views
|
14
|
-
# AssemblyMemberPresenter.new(action_log, view_helpers).present
|
15
|
-
class AssemblyMemberPresenter < Decidim::Log::BasePresenter
|
16
|
-
private
|
17
|
-
|
18
|
-
def diff_fields_mapping
|
19
|
-
{
|
20
|
-
full_name: :string,
|
21
|
-
gender: :string,
|
22
|
-
birthday: :date,
|
23
|
-
birthplace: :string,
|
24
|
-
designation_date: :date,
|
25
|
-
position: "Decidim::Assemblies::AdminLog::ValueTypes::MemberPositionPresenter",
|
26
|
-
position_other: :string,
|
27
|
-
weight: :integer,
|
28
|
-
ceased_date: :date
|
29
|
-
}
|
30
|
-
end
|
31
|
-
|
32
|
-
def i18n_labels_scope
|
33
|
-
"activemodel.attributes.assembly_member"
|
34
|
-
end
|
35
|
-
|
36
|
-
def action_string
|
37
|
-
case action
|
38
|
-
when "create", "delete", "update"
|
39
|
-
"decidim.admin_log.assembly_member.#{action}"
|
40
|
-
else
|
41
|
-
super
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
def diff_actions
|
46
|
-
super + %w(delete)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module Assemblies
|
5
|
-
module AdminLog
|
6
|
-
module ValueTypes
|
7
|
-
# This class presents the given value as an assembly member position.
|
8
|
-
# Check the `DefaultPresenter` for more info on how value presenters work.
|
9
|
-
class MemberPositionPresenter < Decidim::Log::ValueTypes::DefaultPresenter
|
10
|
-
# Public: Presents the value as an assembly member position.
|
11
|
-
#
|
12
|
-
# Returns an HTML-safe String.
|
13
|
-
def present
|
14
|
-
return if value.blank?
|
15
|
-
|
16
|
-
h.t(value, scope: "decidim.admin.models.assembly_member.positions", default: value)
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
@@ -1,68 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
#
|
5
|
-
# Decorator for assembly members
|
6
|
-
#
|
7
|
-
class AssemblyMemberPresenter < SimpleDelegator
|
8
|
-
def age
|
9
|
-
(Time.current.strftime("%Y%m%d").to_i - birthday.strftime("%Y%m%d").to_i) / 10_000 if birthday
|
10
|
-
end
|
11
|
-
|
12
|
-
delegate :profile_url, to: :user, allow_nil: true
|
13
|
-
|
14
|
-
def name
|
15
|
-
user ? user.name : full_name
|
16
|
-
end
|
17
|
-
|
18
|
-
def nickname
|
19
|
-
user.nickname if user
|
20
|
-
end
|
21
|
-
|
22
|
-
def personal_information
|
23
|
-
[
|
24
|
-
gender.presence,
|
25
|
-
age,
|
26
|
-
birthplace.presence
|
27
|
-
].compact.join(" / ")
|
28
|
-
end
|
29
|
-
|
30
|
-
def position
|
31
|
-
return position_other if __getobj__.position == "other"
|
32
|
-
|
33
|
-
I18n.t(__getobj__.position, scope: "decidim.admin.models.assembly_member.positions", default: "")
|
34
|
-
end
|
35
|
-
|
36
|
-
def avatar_url(variant = nil)
|
37
|
-
return user.avatar_url(variant) if user.present?
|
38
|
-
|
39
|
-
non_user_avatar_path(variant)
|
40
|
-
end
|
41
|
-
|
42
|
-
def non_user_avatar_path(variant = nil)
|
43
|
-
return non_user_avatar.default_url(variant) unless non_user_avatar.attached?
|
44
|
-
|
45
|
-
non_user_avatar.path(variant:)
|
46
|
-
end
|
47
|
-
|
48
|
-
def non_user_avatar
|
49
|
-
attached_uploader(:non_user_avatar)
|
50
|
-
end
|
51
|
-
|
52
|
-
def has_tooltip?
|
53
|
-
false
|
54
|
-
end
|
55
|
-
|
56
|
-
def deleted?
|
57
|
-
false
|
58
|
-
end
|
59
|
-
|
60
|
-
private
|
61
|
-
|
62
|
-
def user
|
63
|
-
@user ||= if (user = __getobj__.user.presence)
|
64
|
-
Decidim::UserPresenter.new(user)
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
<% add_decidim_page_title(t("decidim.assemblies.admin.assemblies_types.form.title")) %>
|
2
|
-
<div class="item__edit item__edit-1col">
|
3
|
-
<div class="item__edit-form">
|
4
|
-
<%= decidim_form_for(@form, html: { class: "form-defaults form edit_assembly_type" }) do |f| %>
|
5
|
-
<%= render partial: "form", object: f %>
|
6
|
-
<div class="item__edit-sticky">
|
7
|
-
<div class="item__edit-sticky-container">
|
8
|
-
<%= f.submit t("assemblies.edit.update", scope: "decidim.admin"), class: "button button__sm button__secondary" %>
|
9
|
-
</div>
|
10
|
-
</div>
|
11
|
-
<% end %>
|
12
|
-
</div>
|
13
|
-
</div>
|
@@ -1,44 +0,0 @@
|
|
1
|
-
<% add_decidim_page_title(t("decidim.admin.titles.assemblies_types")) %>
|
2
|
-
|
3
|
-
<div class="card" id="assembly-types">
|
4
|
-
<div class="item_show__header">
|
5
|
-
<h1 class="item_show__header-title">
|
6
|
-
<%= t "decidim.admin.titles.assemblies_types" %>
|
7
|
-
<%= link_to t("actions.new_assembly_type", scope: "decidim.admin"),
|
8
|
-
[:new, :assemblies_type],
|
9
|
-
class: "button button__sm button__secondary" if allowed_to? :create, :assembly_type %>
|
10
|
-
</h1>
|
11
|
-
</div>
|
12
|
-
<div class="table-scroll">
|
13
|
-
<table class="table-list">
|
14
|
-
<thead>
|
15
|
-
<tr>
|
16
|
-
<th><%= t("models.assemblies_types.fields.title", scope: "decidim.admin") %></th>
|
17
|
-
<th><%= t("models.assemblies_types.fields.created_at", scope: "decidim.admin") %></th>
|
18
|
-
<th></th>
|
19
|
-
</tr>
|
20
|
-
</thead>
|
21
|
-
<tbody>
|
22
|
-
<% available_assemblies_types.each do |assembly_type| %>
|
23
|
-
<tr>
|
24
|
-
<td>
|
25
|
-
<% if allowed_to? :update, :assembly_type, assembly_type: assembly_type %>
|
26
|
-
<%= link_to translated_attribute(assembly_type.title), edit_assemblies_type_path(assembly_type) %>
|
27
|
-
<% else %>
|
28
|
-
<%= translated_attribute assembly_type.title %></td>
|
29
|
-
<% end %>
|
30
|
-
<td><%= l assembly_type.created_at, format: :short %></td>
|
31
|
-
<td class="table-list__actions">
|
32
|
-
<% if allowed_to? :update, :assembly_type, assembly_type: assembly_type %>
|
33
|
-
<%= icon_link_to "pencil-line", edit_assemblies_type_path(assembly_type), t("actions.edit", scope: "decidim.admin"), class: "action-icon--new" %>
|
34
|
-
<% end %>
|
35
|
-
<% if allowed_to? :destroy, :assembly_type, assembly_type: assembly_type %>
|
36
|
-
<%= icon_link_to "delete-bin-line", assemblies_type_path(assembly_type), t("actions.destroy", scope: "decidim.admin"), class: "action-icon--remove", method: :delete, data: { confirm: t("actions.confirm_destroy", scope: "decidim.admin") } %>
|
37
|
-
<% end %>
|
38
|
-
</td>
|
39
|
-
</tr>
|
40
|
-
<% end %>
|
41
|
-
</tbody>
|
42
|
-
</table>
|
43
|
-
</div>
|
44
|
-
</div>
|
@@ -1,18 +0,0 @@
|
|
1
|
-
<% add_decidim_page_title(t("assemblies_types.new.title", scope: "decidim.admin")) %>
|
2
|
-
<div class="item_show__header">
|
3
|
-
<h1 class="item_show__header-title">
|
4
|
-
<%= t("assemblies_types.new.title", scope: "decidim.admin") %>
|
5
|
-
</h1>
|
6
|
-
</div>
|
7
|
-
<div class="item__edit item__edit-1col">
|
8
|
-
<div class="item__edit-form">
|
9
|
-
<%= decidim_form_for(@form, html: { class: "form-defaults form new_assembly_type" }) do |f| %>
|
10
|
-
<%= render partial: "form", object: f %>
|
11
|
-
<div class="item__edit-sticky">
|
12
|
-
<div class="item__edit-sticky-container">
|
13
|
-
<%= f.submit t("assemblies_types.new.create", scope: "decidim.admin"), class: "button button__sm button__secondary" %>
|
14
|
-
</div>
|
15
|
-
</div>
|
16
|
-
<% end %>
|
17
|
-
</div>
|
18
|
-
</div>
|