decidim-assemblies 0.29.3 → 0.30.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/assemblies/assembly_metadata_g_cell.rb +1 -14
  3. data/app/cells/decidim/assemblies/content_blocks/extra_data_cell.rb +2 -12
  4. data/app/cells/decidim/assemblies/content_blocks/highlighted_assemblies_settings_form/show.erb +1 -1
  5. data/app/commands/decidim/assemblies/admin/copy_assembly.rb +2 -14
  6. data/app/commands/decidim/assemblies/admin/create_assembly.rb +2 -2
  7. data/app/commands/decidim/assemblies/admin/import_assembly.rb +0 -2
  8. data/app/commands/decidim/assemblies/admin/update_assembly.rb +2 -2
  9. data/app/controllers/concerns/decidim/assemblies/admin/filterable.rb +2 -11
  10. data/app/controllers/decidim/assemblies/admin/assemblies_controller.rb +19 -4
  11. data/app/controllers/decidim/assemblies/admin/assembly_copies_controller.rb +1 -1
  12. data/app/controllers/decidim/assemblies/admin/assembly_share_tokens_controller.rb +18 -0
  13. data/app/controllers/decidim/assemblies/admin/component_share_tokens_controller.rb +18 -0
  14. data/app/controllers/decidim/assemblies/assemblies_controller.rb +1 -3
  15. data/app/controllers/decidim/assemblies/{assembly_members_controller.rb → participatory_space_private_users_controller.rb} +3 -11
  16. data/app/forms/decidim/assemblies/admin/assembly_copy_form.rb +0 -1
  17. data/app/forms/decidim/assemblies/admin/assembly_form.rb +5 -40
  18. data/app/forms/decidim/assemblies/admin/assembly_import_form.rb +0 -1
  19. data/app/helpers/decidim/assemblies/admin/assemblies_helper.rb +26 -4
  20. data/app/helpers/decidim/assemblies/assemblies_helper.rb +4 -4
  21. data/app/helpers/decidim/assemblies/filter_assemblies_helper.rb +11 -15
  22. data/app/models/decidim/assembly.rb +21 -11
  23. data/app/packs/entrypoints/decidim_assemblies_admin.js +0 -1
  24. data/app/packs/entrypoints/decidim_assemblies_admin_list.js +1 -0
  25. data/app/packs/src/decidim/assemblies/admin/assemblies_list.js +72 -0
  26. data/app/permissions/decidim/assemblies/permissions.rb +9 -28
  27. data/app/presenters/decidim/assemblies/admin_log/assembly_presenter.rb +1 -1
  28. data/app/presenters/decidim/assemblies/assembly_presenter.rb +0 -6
  29. data/app/queries/decidim/assemblies/metrics/assemblies_metric_manage.rb +2 -2
  30. data/app/serializers/decidim/assemblies/assembly_importer.rb +0 -35
  31. data/app/serializers/decidim/assemblies/assembly_serializer.rb +11 -135
  32. data/app/serializers/decidim/assemblies/open_data_assembly_serializer.rb +59 -0
  33. data/app/views/decidim/assemblies/admin/assemblies/_assemblies_thead.html.erb +19 -0
  34. data/app/views/decidim/assemblies/admin/assemblies/_assembly_row.html.erb +101 -0
  35. data/app/views/decidim/assemblies/admin/assemblies/_form.html.erb +29 -41
  36. data/app/views/decidim/assemblies/admin/assemblies/index.html.erb +18 -92
  37. data/app/views/decidim/assemblies/admin/assemblies/index.js.erb +10 -0
  38. data/app/views/decidim/assemblies/admin/assemblies/manage_trash.html.erb +20 -0
  39. data/app/views/decidim/assemblies/admin/assembly_copies/_form.html.erb +0 -4
  40. data/app/views/decidim/assemblies/admin/assembly_imports/_form.html.erb +0 -3
  41. data/app/views/decidim/assemblies/assemblies/index.html.erb +3 -1
  42. data/app/views/decidim/assemblies/assemblies/show.html.erb +5 -6
  43. data/app/views/decidim/assemblies/{assembly_members → participatory_space_private_users}/index.html.erb +6 -5
  44. data/config/assets.rb +2 -1
  45. data/config/locales/ar.yml +0 -72
  46. data/config/locales/bg.yml +0 -74
  47. data/config/locales/bs-BA.yml +0 -15
  48. data/config/locales/ca.yml +70 -74
  49. data/config/locales/cs.yml +70 -74
  50. data/config/locales/de.yml +70 -74
  51. data/config/locales/el.yml +0 -72
  52. data/config/locales/en.yml +71 -75
  53. data/config/locales/es-MX.yml +70 -74
  54. data/config/locales/es-PY.yml +70 -74
  55. data/config/locales/es.yml +70 -74
  56. data/config/locales/eu.yml +74 -78
  57. data/config/locales/fi-plain.yml +71 -75
  58. data/config/locales/fi.yml +71 -75
  59. data/config/locales/fr-CA.yml +22 -74
  60. data/config/locales/fr.yml +22 -74
  61. data/config/locales/ga-IE.yml +0 -25
  62. data/config/locales/gl.yml +1 -73
  63. data/config/locales/he-IL.yml +8 -60
  64. data/config/locales/hu.yml +0 -74
  65. data/config/locales/id-ID.yml +0 -63
  66. data/config/locales/is-IS.yml +0 -48
  67. data/config/locales/it.yml +1 -144
  68. data/config/locales/ja.yml +70 -74
  69. data/config/locales/kaa.yml +0 -9
  70. data/config/locales/ko.yml +0 -6
  71. data/config/locales/lb.yml +0 -70
  72. data/config/locales/lt.yml +0 -72
  73. data/config/locales/lv.yml +0 -74
  74. data/config/locales/nl.yml +0 -72
  75. data/config/locales/no.yml +0 -72
  76. data/config/locales/pl.yml +0 -75
  77. data/config/locales/pt-BR.yml +0 -74
  78. data/config/locales/pt.yml +0 -152
  79. data/config/locales/ro-RO.yml +14 -85
  80. data/config/locales/ru.yml +0 -60
  81. data/config/locales/sk.yml +0 -46
  82. data/config/locales/sl.yml +0 -54
  83. data/config/locales/sq-AL.yml +0 -77
  84. data/config/locales/sr-CS.yml +0 -15
  85. data/config/locales/sv.yml +71 -75
  86. data/config/locales/tr-TR.yml +0 -75
  87. data/config/locales/uk.yml +0 -60
  88. data/config/locales/zh-CN.yml +0 -74
  89. data/config/locales/zh-TW.yml +0 -72
  90. data/db/migrate/20190215093700_reset_negative_children_count_counters.rb +2 -2
  91. data/db/migrate/20210310120444_add_followable_counter_cache_to_assemblies.rb +1 -1
  92. data/db/migrate/20240822161222_add_deleted_at_to_decidim_assemblies.rb +8 -0
  93. data/db/migrate/20241016101151_migrate_assembly_members_to_private_users.rb +53 -0
  94. data/db/migrate/20241108141651_remove_column_show_statistics_from_assemblies.rb +7 -0
  95. data/decidim-assemblies.gemspec +1 -1
  96. data/lib/decidim/api/assemblies_type_type.rb +2 -2
  97. data/lib/decidim/api/assembly_type.rb +32 -34
  98. data/lib/decidim/assemblies/admin_engine.rb +77 -54
  99. data/lib/decidim/assemblies/api.rb +0 -1
  100. data/lib/decidim/assemblies/content_blocks/registry_manager.rb +11 -0
  101. data/lib/decidim/assemblies/engine.rb +9 -3
  102. data/lib/decidim/assemblies/menu.rb +9 -22
  103. data/lib/decidim/assemblies/participatory_space.rb +7 -3
  104. data/lib/decidim/assemblies/seeds.rb +9 -33
  105. data/lib/decidim/assemblies/test/factories.rb +15 -36
  106. data/lib/decidim/assemblies/version.rb +1 -1
  107. metadata +28 -49
  108. data/app/cells/decidim/assemblies/assembly_member/data.erb +0 -19
  109. data/app/cells/decidim/assemblies/assembly_member/name_and_position.erb +0 -11
  110. data/app/cells/decidim/assemblies/assembly_member/show.erb +0 -9
  111. data/app/cells/decidim/assemblies/assembly_member_cell.rb +0 -21
  112. data/app/commands/decidim/assemblies/admin/create_assembly_member.rb +0 -55
  113. data/app/commands/decidim/assemblies/admin/destroy_assembly_member.rb +0 -24
  114. data/app/commands/decidim/assemblies/admin/update_assembly_member.rb +0 -29
  115. data/app/controllers/concerns/decidim/assemblies/admin/assembly_members/filterable.rb +0 -39
  116. data/app/controllers/decidim/assemblies/admin/assemblies_types_controller.rb +0 -107
  117. data/app/controllers/decidim/assemblies/admin/assembly_members_controller.rb +0 -83
  118. data/app/controllers/decidim/assemblies/admin/categories_controller.rb +0 -13
  119. data/app/events/decidim/assemblies/create_assembly_member_event.rb +0 -17
  120. data/app/forms/decidim/assemblies/admin/assembly_member_form.rb +0 -64
  121. data/app/helpers/decidim/assemblies/admin/assembly_members_helper.rb +0 -11
  122. data/app/models/decidim/assembly_member.rb +0 -34
  123. data/app/packs/src/decidim/assemblies/admin/assembly_members.js +0 -47
  124. data/app/packs/src/decidim/assemblies/orgchart.js +0 -0
  125. data/app/presenters/decidim/admin/assembly_member_presenter.rb +0 -24
  126. data/app/presenters/decidim/assemblies/admin_log/assembly_member_presenter.rb +0 -51
  127. data/app/presenters/decidim/assemblies/admin_log/value_types/member_position_presenter.rb +0 -22
  128. data/app/presenters/decidim/assembly_member_presenter.rb +0 -68
  129. data/app/views/decidim/assemblies/admin/assemblies_types/_form.html.erb +0 -9
  130. data/app/views/decidim/assemblies/admin/assemblies_types/edit.html.erb +0 -13
  131. data/app/views/decidim/assemblies/admin/assemblies_types/index.html.erb +0 -44
  132. data/app/views/decidim/assemblies/admin/assemblies_types/new.html.erb +0 -18
  133. data/app/views/decidim/assemblies/admin/assembly_members/_form.html.erb +0 -62
  134. data/app/views/decidim/assemblies/admin/assembly_members/edit.html.erb +0 -18
  135. data/app/views/decidim/assemblies/admin/assembly_members/index.html.erb +0 -55
  136. data/app/views/decidim/assemblies/admin/assembly_members/new.html.erb +0 -18
  137. data/app/views/decidim/assembly_members/_assembly_member.html.erb +0 -1
  138. data/app/views/layouts/decidim/admin/assemblies_types.html.erb +0 -17
  139. data/config/locales/ca-IT.yml +0 -460
  140. data/lib/decidim/api/assembly_member_type.rb +0 -27
@@ -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,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Assemblies
5
- module Admin
6
- module AssemblyMembersHelper
7
- include Decidim::PaginateHelper
8
- end
9
- end
10
- end
11
- 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,9 +0,0 @@
1
- <div class="form__wrapper">
2
- <div class="card pt-4">
3
- <div class="card-section">
4
- <div class="row column">
5
- <%= form.translated :text_field, :title, autofocus: true, aria: { label: :title } %>
6
- </div>
7
- </div>
8
- </div>
9
- </div>
@@ -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>
@@ -1,62 +0,0 @@
1
- <div class="form__wrapper">
2
- <div class="card pt-4">
3
- <div class="card-section">
4
- <div class="user-fields">
5
- <div class="row column">
6
- <%= form.select :existing_user, [[t(".non_user"), false], [t(".existing_user"), true]], label: t(".user_type") %>
7
- </div>
8
-
9
- <div class="row column user-fields--full-name">
10
- <%= form.text_field :full_name, autofocus: true %>
11
- </div>
12
-
13
- <div class="row column user-fields--non-user-avatar">
14
- <%= form.upload :non_user_avatar, help_i18n_messages: %w(non_user_avatar_help image_guide), help_i18n_scope: "decidim.assemblies.admin.assembly_members.form", button_class: "button button__sm button__transparent-secondary" %>
15
- </div>
16
-
17
- <div class="row column user-fields--user-picker">
18
- <% prompt_options = { url: decidim_admin.user_entities_organization_url, placeholder: t(".select_user") } %>
19
- <%= form.autocomplete_select(:user_id, form.object.user.presence, { multiple: false }, prompt_options) do |user|
20
- { value: user.id, label: "#{user.name} (@#{user.nickname})" }
21
- end %>
22
- </div>
23
- </div>
24
-
25
- <div class="position-fields">
26
- <div class="row column">
27
- <%= form.select :position, @form.positions_for_select, { include_blank: t(".select_a_position") }, { multiple: false } %>
28
- </div>
29
-
30
- <div class="row column position-fields--position-other">
31
- <%= form.text_field :position_other %>
32
- </div>
33
- </div>
34
-
35
- <div class="row column">
36
- <%= form.number_field :weight %>
37
- </div>
38
-
39
- <div class="row column">
40
- <%= form.date_field :designation_date %>
41
- </div>
42
-
43
- <div class="row column">
44
- <%= form.date_field :ceased_date %>
45
- </div>
46
-
47
- <div class="row column">
48
- <%= form.text_field :gender %>
49
- </div>
50
-
51
- <div class="row column">
52
- <%= form.date_field :birthday %>
53
- </div>
54
-
55
- <div class="row column">
56
- <%= form.text_field :birthplace %>
57
- </div>
58
- </div>
59
- </div>
60
-
61
- <%= append_javascript_pack_tag "decidim_assemblies_admin" %>
62
- </div>
@@ -1,18 +0,0 @@
1
- <% add_decidim_page_title(t("assembly_members.edit.title", scope: "decidim.admin")) %>
2
- <div class="item_show__header">
3
- <h1 class="item_show__header-title">
4
- <%= t("assembly_members.edit.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, url: assembly_member_path(@assembly_member.assembly, @assembly_member), html: { class: "form form-defaults edit_assembly_member" }) 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("assembly_members.edit.update", scope: "decidim.admin"), class: "button button__sm button__secondary" %>
14
- </div>
15
- </div>
16
- <% end %>
17
- </div>
18
- </div>
@@ -1,55 +0,0 @@
1
- <% add_decidim_page_title(t("assembly_members_title", scope: "decidim.admin.assembly_members.index")) %>
2
- <div class="item_show__header">
3
- <h1 class="item_show__header-title">
4
- <%= t("assembly_members_title", scope: "decidim.admin.assembly_members.index") %>
5
- <% if allowed_to? :create, :assembly_member %>
6
- <%= link_to t("actions.new_assembly_member", scope: "decidim.admin"), new_assembly_member_path(current_assembly), class: "button button__sm button__secondary new" %>
7
- <% end %>
8
- </h1>
9
- </div>
10
-
11
- <div class="card" id="assembly_members">
12
- <%= admin_filter_selector %>
13
- <div class="table-scroll">
14
- <table class="table-list">
15
- <thead>
16
- <tr>
17
- <th><%= t("models.assembly_member.fields.full_name", scope: "decidim.admin") %></th>
18
- <th><%= t("models.assembly_member.fields.position", scope: "decidim.admin") %></th>
19
- <th><%= t("models.assembly_member.fields.designation_date", scope: "decidim.admin") %></th>
20
- <th><%= t("models.assembly_member.fields.ceased_date", scope: "decidim.admin") %></th>
21
- <th></th>
22
- </tr>
23
- </thead>
24
- <tbody>
25
- <% @assembly_members.each do |member| %>
26
- <% member_presenter = Decidim::Admin::AssemblyMemberPresenter.new(member) %>
27
- <tr>
28
- <td>
29
- <%= member_presenter.name %>
30
- </td>
31
- <td>
32
- <%= member_presenter.position %>
33
- </td>
34
- <td>
35
- <%= l member.designation_date, format: :decidim_short %>
36
- </td>
37
- <td>
38
- <%= member.ceased_date ? l(member.ceased_date, format: :decidim_short) : nil %>
39
- </td>
40
- <td class="table-list__actions">
41
- <% if allowed_to? :update, :assembly_member, member: member %>
42
- <%= icon_link_to "pencil-line", edit_assembly_member_path(current_assembly, member), t("actions.edit", scope: "decidim.admin"), class: "action-icon--edit" %>
43
- <% end %>
44
-
45
- <% if allowed_to? :destroy, :assembly_member, member: member %>
46
- <%= icon_link_to "delete-bin-line", assembly_member_path(current_assembly, member), t("actions.destroy", scope: "decidim.admin"), class: "action-icon--remove", method: :delete, data: { confirm: t("actions.confirm_destroy", scope: "decidim.admin") } %>
47
- <% end %>
48
- </td>
49
- </tr>
50
- <% end %>
51
- </tbody>
52
- </table>
53
- </div>
54
- <%= decidim_paginate @assembly_members %>
55
- </div>