decidim-reporting_proposals 0.4.2 → 0.5.1

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 (65) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/lint.yml +2 -2
  3. data/.github/workflows/test_integration.yml +2 -2
  4. data/.github/workflows/test_unit.yml +2 -2
  5. data/.rubocop-disabled.yml +11 -0
  6. data/.rubocop.yml +1 -0
  7. data/.rubocop_rails.yml +3 -0
  8. data/.rubocop_ruby.yml +24 -10
  9. data/.ruby-version +1 -1
  10. data/.simplecov +2 -2
  11. data/Gemfile.lock +286 -264
  12. data/README.md +2 -2
  13. data/Rakefile +2 -0
  14. data/app/commands/concerns/decidim/reporting_proposals/gallery_methods_override.rb +18 -0
  15. data/app/commands/decidim/reporting_proposals/admin/update_proposal_note.rb +1 -1
  16. data/app/commands/decidim/reporting_proposals/create_reporting_proposal.rb +2 -0
  17. data/app/commands/decidim/templates/admin/copy_proposal_answer_template.rb +1 -1
  18. data/app/commands/decidim/templates/admin/create_proposal_answer_template.rb +1 -1
  19. data/app/commands/decidim/templates/admin/update_proposal_answer_template.rb +1 -1
  20. data/app/controllers/concerns/decidim/reporting_proposals/admin/needs_header_snippets.rb +5 -7
  21. data/app/controllers/concerns/decidim/reporting_proposals/needs_proposal_extra_validations_snippets.rb +1 -1
  22. data/app/controllers/concerns/decidim/reporting_proposals/proposals_controller_override.rb +5 -5
  23. data/app/controllers/decidim/templates/admin/proposal_answer_templates_controller.rb +8 -6
  24. data/app/forms/concerns/decidim/reporting_proposals/form_builder_override.rb +9 -8
  25. data/app/forms/concerns/decidim/reporting_proposals/map_builder_override.rb +6 -4
  26. data/app/helpers/concerns/decidim/reporting_proposals/proposal_wizard_helper_override.rb +4 -4
  27. data/app/overrides/decidim/proposals/admin/proposal_answers/_form/add_template_chooser.html.erb.deface +1 -1
  28. data/app/overrides/decidim/proposals/admin/proposals/_proposal-tr/add_valuators_name.html.erb.deface +3 -3
  29. data/app/overrides/decidim/proposals/admin/proposals/show/add_photo_management.html.erb.deface +1 -1
  30. data/app/overrides/decidim/proposals/admin/proposals/show/add_send_email_btn.html.erb.deface +1 -1
  31. data/app/overrides/decidim/proposals/admin/proposals/show/add_valuators_form.html.erb.deface +1 -1
  32. data/app/overrides/decidim/proposals/admin/proposals/show/remove_photos.html.erb.deface +0 -1
  33. data/app/overrides/decidim/proposals/proposals/_edit_form_fields/replace_add_photos.html.erb.deface +37 -0
  34. data/app/overrides/decidim/proposals/proposals/_proposal_similar/add_distance_badge.html.erb.deface +1 -1
  35. data/app/overrides/decidim/proposals/proposals/_wizard_header/replace_title.html.erb.deface +9 -9
  36. data/app/overrides/decidim/proposals/proposals/edit/add_css.html.erb.deface +5 -0
  37. data/app/overrides/decidim/proposals/proposals/edit/replace_javascript.html.erb.deface +0 -1
  38. data/app/overrides/decidim/proposals/proposals/edit_draft/add_css.html.erb.deface +5 -0
  39. data/app/overrides/decidim/proposals/proposals/new/add_css.html.erb.deface +5 -0
  40. data/app/overrides/decidim/proposals/proposals/new/replace_javascript.html.erb.deface +0 -1
  41. data/app/overrides/decidim/reported_mailer/report/add_link_to_admin.html.erb.deface +1 -1
  42. data/app/overrides/layouts/decidim/_process_header_steps/always_show_new_proposals.html.erb.deface +1 -1
  43. data/app/packs/stylesheets/decidim/reporting_proposals/geocoding_addons.scss +8 -8
  44. data/app/packs/stylesheets/decidim/reporting_proposals/list_component_admin.scss +5 -5
  45. data/app/packs/stylesheets/decidim/reporting_proposals/manage_component_admin.scss +10 -10
  46. data/app/packs/stylesheets/decidim/reporting_proposals/proposals/add_proposal.scss +3 -3
  47. data/app/packs/stylesheets/decidim/reporting_proposals/user_camera_inputs.scss +5 -5
  48. data/app/permissions/decidim/templates/admin/extra_permissions.rb +37 -0
  49. data/app/queries/decidim/reporting_proposals/nearby_proposals.rb +1 -1
  50. data/app/validators/concerns/decidim/reporting_proposals/component_validator_override.rb +2 -2
  51. data/app/views/decidim/proposals/proposals/index.js.erb +1 -1
  52. data/app/views/decidim/reporting_proposals/proposals/_reporting_proposal_fields.html.erb +9 -21
  53. data/babel.config.json +25 -0
  54. data/config/locales/ca.yml +2 -0
  55. data/config/locales/de.yml +2 -0
  56. data/config/locales/en.yml +2 -0
  57. data/config/locales/es.yml +2 -0
  58. data/db/migrate/20230404103706_add_target_and_field_values_to_decidim_templates_templates.rb +2 -6
  59. data/decidim-reporting_proposals.gemspec +2 -1
  60. data/lib/decidim/reporting_proposals/component.rb +0 -9
  61. data/lib/decidim/reporting_proposals/engine.rb +27 -3
  62. data/lib/decidim/reporting_proposals/version.rb +3 -3
  63. data/package-lock.json +161 -142
  64. data/package.json +4 -163
  65. metadata +58 -49
data/README.md CHANGED
@@ -25,12 +25,12 @@ Or, if you want to stay up to date with the latest changes use this line instead
25
25
  gem 'decidim-reporting_proposals', git: "https://github.com/openpoke/decidim-module-reporting_proposals"
26
26
  ```
27
27
 
28
- And then execute:
28
+ And then execute (do also this on upgrades):
29
29
 
30
30
  ```
31
31
  bundle
32
- And then execute:
33
32
  bundle exec rails decidim_reporting_proposals:install:migrations
33
+ bin/rails db:migrate
34
34
  ```
35
35
 
36
36
  > **IMPORTANT:**
data/Rakefile CHANGED
@@ -3,6 +3,8 @@
3
3
  require "decidim/dev/common_rake"
4
4
 
5
5
  def install_module(path)
6
+ # maintain until https://github.com/decidim/decidim/commit/51b81b37004708ab72e70993fef4634eef18ee6c is in the decidim version used
7
+ FileUtils.cp("babel.config.json", "#{path}/babel.config.json")
6
8
  Dir.chdir(path) do
7
9
  system("bundle exec rake decidim_reporting_proposals:install:migrations")
8
10
  system("bundle exec rake db:migrate")
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module ReportingProposals
5
+ module GalleryMethodsOverride
6
+ extend ActiveSupport::Concern
7
+
8
+ # this method cannot process direct uploads in gallery_methods.rb so we override it here with the fix
9
+ included do
10
+ def photos_content_type(photo)
11
+ return blob(photos_signed_id(photo)).content_type if photo.is_a?(Hash)
12
+
13
+ photo.content_type
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -4,7 +4,7 @@ module Decidim
4
4
  module ReportingProposals
5
5
  module Admin
6
6
  # A command with all the business logic when a user updates a proposal note.
7
- class UpdateProposalNote < Rectify::Command
7
+ class UpdateProposalNote < Decidim::Command
8
8
  # Public: Initializes the command.
9
9
  #
10
10
  # form - A form object with the params.
@@ -35,6 +35,8 @@ module Decidim
35
35
  broadcast(:ok, proposal)
36
36
  end
37
37
 
38
+ private
39
+
38
40
  def create_reporting_proposal
39
41
  PaperTrail.request(enabled: false) do
40
42
  @proposal = Decidim.traceability.perform_action!(
@@ -4,7 +4,7 @@ module Decidim
4
4
  module Templates
5
5
  # A command with all the business logic when duplicating a proposal's answer template
6
6
  module Admin
7
- class CopyProposalAnswerTemplate < Rectify::Command
7
+ class CopyProposalAnswerTemplate < Decidim::Command
8
8
  def initialize(template)
9
9
  @template = template
10
10
  end
@@ -3,7 +3,7 @@
3
3
  module Decidim
4
4
  module Templates
5
5
  module Admin
6
- class CreateProposalAnswerTemplate < Rectify::Command
6
+ class CreateProposalAnswerTemplate < Decidim::Command
7
7
  # Initializes the command.
8
8
  #
9
9
  # form - The source for this ProposalAnswerTemplate.
@@ -3,7 +3,7 @@
3
3
  module Decidim
4
4
  module Templates
5
5
  module Admin
6
- class UpdateProposalAnswerTemplate < Rectify::Command
6
+ class UpdateProposalAnswerTemplate < Decidim::Command
7
7
  # Initializes the command.
8
8
  #
9
9
  # template - The Template to update.
@@ -36,13 +36,11 @@ module Decidim
36
36
  end
37
37
 
38
38
  def current_component
39
- @current_component ||= begin
40
- if defined?(query_scope) && query_scope.respond_to?(:find)
41
- query_scope.find_by(id: params[:id])
42
- elsif params.has_key?(:component_id)
43
- Decidim::Component.find_by(id: params[:component_id])
44
- end
45
- end
39
+ @current_component ||= if defined?(query_scope) && query_scope.respond_to?(:find)
40
+ query_scope.find_by(id: params[:id])
41
+ elsif params.has_key?(:component_id)
42
+ Decidim::Component.find_by(id: params[:component_id])
43
+ end
46
44
  end
47
45
  end
48
46
  end
@@ -16,7 +16,7 @@ module Decidim
16
16
  unless @snippets.any?(:reporting_proposals_js_validations)
17
17
  @snippets.add(:reporting_proposals_js_validations, ActionController::Base.helpers.javascript_pack_tag("decidim_reporting_proposals_js_validations"))
18
18
  @snippets.add(:reporting_proposals_js_validations, rules_tag)
19
- @snippets.add(:head, @snippets.for(:reporting_proposals_js_validations))
19
+ @snippets.add(:foot, @snippets.for(:reporting_proposals_js_validations))
20
20
  end
21
21
  @snippets
22
22
  end
@@ -12,7 +12,7 @@ module Decidim
12
12
 
13
13
  def new
14
14
  enforce_permission_to :create, :proposal
15
- @step = :step_1
15
+ @step = Proposals::ProposalsController::STEP1
16
16
  if proposal_draft.present?
17
17
  redirect_to edit_draft_proposal_path(proposal_draft, component_id: proposal_draft.component.id, question_slug: proposal_draft.component.participatory_space.slug)
18
18
  else
@@ -22,7 +22,7 @@ module Decidim
22
22
 
23
23
  def create
24
24
  enforce_permission_to :create, :proposal
25
- @step = :step_1
25
+ @step = Proposals::ProposalsController::STEP1
26
26
  @form = form(new_proposal_form).from_params(proposal_creation_params)
27
27
 
28
28
  create_proposal_command.call(@form, current_user) do
@@ -42,7 +42,7 @@ module Decidim
42
42
  # change comparison class if geocoding comparison is enabled
43
43
  def compare
44
44
  enforce_permission_to :edit, :proposal, proposal: @proposal
45
- @step = :step_2
45
+ @step = Proposals::ProposalsController::STEP2
46
46
  klass = if geocoding_comparison?
47
47
  Decidim::ReportingProposals::NearbyProposals
48
48
  else
@@ -61,7 +61,7 @@ module Decidim
61
61
  # disable this step for reporting proposals
62
62
  def complete
63
63
  enforce_permission_to :edit, :proposal, proposal: @proposal
64
- @step = :step_3
64
+ @step = Proposals::ProposalsController::STEP3
65
65
 
66
66
  @form = form_proposal_model
67
67
 
@@ -71,7 +71,7 @@ module Decidim
71
71
  end
72
72
 
73
73
  def edit_draft
74
- @step = reporting_proposal? ? :step_1 : :step_3
74
+ @step = reporting_proposal? ? Proposals::ProposalsController::STEP1 : Proposals::ProposalsController::STEP3
75
75
  enforce_permission_to :edit, :proposal, proposal: @proposal
76
76
  end
77
77
 
@@ -7,6 +7,10 @@ module Decidim
7
7
  include Decidim::TranslatableAttributes
8
8
  include Decidim::Paginable
9
9
 
10
+ def permission_class_chain
11
+ [::Decidim::Templates::Admin::ExtraPermissions] + super
12
+ end
13
+
10
14
  helper_method :availability_option_as_text, :availability_options_for_select
11
15
 
12
16
  rescue_from ActiveRecord::RecordNotFound do |exception|
@@ -57,7 +61,7 @@ module Decidim
57
61
  end
58
62
 
59
63
  def fetch
60
- enforce_permission_to :read, :template, template: template
64
+ enforce_permission_to :read, :template, template: template, proposal: proposal
61
65
 
62
66
  response_object = {
63
67
  state: template.field_values["internal_state"],
@@ -123,15 +127,13 @@ module Decidim
123
127
  private
124
128
 
125
129
  def populate_template_interpolations(proposal)
126
- template.description.map do |row|
127
- language = row.first
128
- value = row.last
130
+ template.description do |language, value|
129
131
  value.gsub!("%{organization}", proposal.organization.name)
130
132
  value.gsub!("%{name}", proposal.creator_author.name)
131
133
  value.gsub!("%{admin}", current_user.name)
132
134
 
133
135
  [language, value]
134
- end.to_h
136
+ end
135
137
  end
136
138
 
137
139
  def proposal
@@ -156,7 +158,7 @@ module Decidim
156
158
  @avaliablity_options["components-#{component.id}"] = formated_name(component)
157
159
  end
158
160
  global_scope = { "organizations-#{current_organization.id}" => t("global_scope", scope: "decidim.templates.admin.proposal_answer_templates.index") }
159
- @avaliablity_options = global_scope.merge(Hash[@avaliablity_options.sort_by { |_, val| val }])
161
+ @avaliablity_options = global_scope.merge(@avaliablity_options.sort_by { |_, val| val }.to_h)
160
162
  end
161
163
 
162
164
  def formated_name(component)
@@ -10,21 +10,22 @@ module Decidim
10
10
  delegate :asset_pack_path, to: :@template
11
11
 
12
12
  included do
13
- def file_field(object_name, method, options = {})
14
- return super(object_name, method, options) unless use_camera_button?(object_name)
13
+ def file_field(object_name, options = {})
14
+ return super(object_name, options) unless use_camera_button?(object_name)
15
15
 
16
- unless @template.snippets.any?(:reporting_proposals_camera_addons)
17
- @template.snippets.add(:reporting_proposals_camera_addons, @template.javascript_pack_tag("decidim_reporting_proposals_camera"))
18
- @template.snippets.add(:reporting_proposals_camera_addons, @template.stylesheet_pack_tag("decidim_reporting_proposals_camera"))
16
+ unless @template.snippets.any?(:reporting_proposals_camera_scripts) || @template.snippets.any?(:reporting_proposals_camera_styles)
17
+ @template.snippets.add(:reporting_proposals_camera_scripts, @template.javascript_pack_tag("decidim_reporting_proposals_camera"))
18
+ @template.snippets.add(:reporting_proposals_camera_styles, @template.stylesheet_pack_tag("decidim_reporting_proposals_camera"))
19
19
 
20
20
  # This will display the snippets in the <head> part of the page.
21
- @template.snippets.add(:head, @template.snippets.for(:reporting_proposals_camera_addons))
21
+ @template.snippets.add(:head, @template.snippets.for(:reporting_proposals_camera_styles))
22
+ @template.snippets.add(:foot, @template.snippets.for(:reporting_proposals_camera_scripts))
22
23
  end
23
24
 
24
25
  content_tag(:div, class: "input-group") do
25
- super(object_name, method, options) +
26
+ super(object_name, options) +
26
27
  content_tag(:div, class: "input-group-button") do
27
- content_tag(:button, class: "button secondary user-device-camera", type: "button", data: { input: "#{object_name}_#{method}" }) do
28
+ content_tag(:button, class: "button secondary user-device-camera", type: "button", data: { input: object_name }) do
28
29
  icon("camera-slr", role: "img", "aria-hidden": true) + " #{I18n.t("use_my_camera", scope: "decidim.reporting_proposals.forms")}"
29
30
  end
30
31
  end
@@ -15,12 +15,14 @@ module Decidim
15
15
  def geocoding_field(object_name, method, options = {})
16
16
  return original_geocoding_field(object_name, method, options) unless show_my_location_button?
17
17
 
18
- unless template.snippets.any?(:reporting_proposals_geocoding_addons)
19
- template.snippets.add(:reporting_proposals_geocoding_addons, template.javascript_pack_tag("decidim_reporting_proposals_geocoding"))
20
- template.snippets.add(:reporting_proposals_geocoding_addons, template.stylesheet_pack_tag("decidim_reporting_proposals_geocoding"))
18
+ unless template.snippets.any?(:reporting_proposals_geocoding_scripts) || template.snippets.any?(:reporting_proposals_geocoding_styles)
19
+ template.snippets.add(:reporting_proposals_geocoding_scripts, template.javascript_pack_tag("decidim_reporting_proposals_geocoding"))
20
+ template.snippets.add(:reporting_proposals_geocoding_styles, template.stylesheet_pack_tag("decidim_reporting_proposals_geocoding"))
21
21
 
22
22
  # This will display the snippets in the <head> part of the page.
23
- template.snippets.add(:head, template.snippets.for(:reporting_proposals_geocoding_addons))
23
+ template.snippets.add(:head, template.snippets.for(:reporting_proposals_geocoding_styles))
24
+ # This will display the snippets in the bottom part of the page.
25
+ template.snippets.add(:foot, template.snippets.for(:reporting_proposals_geocoding_scripts))
24
26
  end
25
27
 
26
28
  options[:autocomplete] ||= "off"
@@ -9,11 +9,11 @@ module Decidim
9
9
  included do
10
10
  def proposal_wizard_stepper(current_step)
11
11
  steps = %(
12
- #{proposal_wizard_stepper_step(:step_1, current_step)}
13
- #{proposal_wizard_stepper_step(:step_2, current_step)}
12
+ #{proposal_wizard_stepper_step(Proposals::ProposalsController::STEP1, current_step)}
13
+ #{proposal_wizard_stepper_step(Proposals::ProposalsController::STEP2, current_step)}
14
14
  )
15
- steps = %(#{steps} #{proposal_wizard_stepper_step(:step_3, current_step)}) unless reporting_proposals_component?
16
- steps = %(#{steps} #{proposal_wizard_stepper_step(:step_4, current_step)})
15
+ steps = %(#{steps} #{proposal_wizard_stepper_step(Proposals::ProposalsController::STEP3, current_step)}) unless reporting_proposals_component?
16
+ steps = %(#{steps} #{proposal_wizard_stepper_step(Proposals::ProposalsController::STEP4, current_step)})
17
17
 
18
18
  content_tag :ol, class: "wizard__steps" do
19
19
  steps.html_safe
@@ -2,4 +2,4 @@
2
2
 
3
3
  <% if defined?(Decidim::Templates) %>
4
4
  <%= render "decidim/templates/admin/proposal_answer_templates/template_chooser", form: f %>
5
- <% end %>
5
+ <% end %>
@@ -4,6 +4,6 @@
4
4
  <% if count.zero? %>
5
5
  0
6
6
  <% else %>
7
- <%= proposal.valuation_assignments.first&.valuator_role&.user&.name %>
8
- <%= "(+#{(count - 1)})" if count > 1 %>
9
- <% end %>
7
+ <%= proposal.valuation_assignments.first&.valuator_role&.user&.name %>
8
+ <%= "(+#{(count - 1)})" if count > 1 %>
9
+ <% end %>
@@ -1,3 +1,3 @@
1
- <!-- insert_after ".card[1]" -->
1
+ <!-- insert_after "erb[silent]:contains('if proposal.valuators.any?')" -->
2
2
 
3
3
  <%= render partial: "decidim/reporting_proposals/admin/proposals/photos" %>
@@ -1,3 +1,3 @@
1
1
  <!-- insert_after "erb[loud]:contains('current_or_new_conversation_path_with(presented_author)')" -->
2
2
 
3
- <%= render partial: "decidim/proposals/admin/proposals/send_email_button", locals: { presented_author: presented_author }%>
3
+ <%= render partial: "decidim/proposals/admin/proposals/send_email_button", locals: { presented_author: presented_author } %>
@@ -15,5 +15,5 @@
15
15
  id: "js-submit-assign-proposal-to-valuator",
16
16
  class: "button small button--simple float-left") %>
17
17
  <% end %>
18
- </div>
18
+ </div>
19
19
  <% end %>
@@ -1,4 +1,3 @@
1
1
  <!-- replace "erb[silent]:contains('if proposal.photos.any?')" -->
2
2
 
3
3
  <% if nil %>
4
-
@@ -0,0 +1,37 @@
1
+ <!-- replace '.gallery__container.photos_container' -->
2
+
3
+ <% if Decidim::ReportingProposals.use_camera_button.include?(current_component.manifest_name.to_sym) %>
4
+ <fieldset class="gallery__container photos_container">
5
+ <% if @form.photos.any? %>
6
+ <% @form.photos.each do |photo| %>
7
+ <div class="callout gallery__item" id="attachment_<%= photo.id %>" data-closable>
8
+ <%= image_tag photo.thumbnail_url, class: "thumbnail", alt: photo.file.filename %>
9
+ <%= form.hidden_field :photos, multiple: true, value: photo.id, id: "photo-#{photo.id}" %>
10
+ <button class="close-button"
11
+ aria-label="<%= t("delete_image", scope: "decidim.reporting_proposals.proposals.edit") %>"
12
+ title="<%= t("delete_image", scope: "decidim.reporting_proposals.proposals.edit") %>"
13
+ type="button"
14
+ data-close>
15
+ <span aria-hidden="true">&times;</span>
16
+ </button>
17
+ </div>
18
+ <% end %>
19
+ <% end %>
20
+ <div class="field row column">
21
+ <%= form.file_field :add_photos, multiple: false, label: t("image", scope: "decidim.reporting_proposals.proposals.form") %>
22
+ </div>
23
+ </fieldset>
24
+ <% else %>
25
+ <fieldset class="gallery__container photos_container">
26
+ <legend><%= t("gallery_legend", scope: "decidim.proposals.proposals.edit") %></legend>
27
+ <div class="row column">
28
+ <%= form.attachment :photos,
29
+ multiple: false,
30
+ label: t("decidim.proposals.proposals.edit.add_image"),
31
+ button_label: t("decidim.proposals.proposals.edit.add_image"),
32
+ button_edit_label: t("decidim.proposals.proposals.edit.edit_image"),
33
+ help_i18n_scope: "decidim.forms.file_help.image",
34
+ extension_allowlist: Decidim::OrganizationSettings.for(current_organization).upload_allowed_file_extensions_image %>
35
+ </div>
36
+ </fieldset>
37
+ <% end %>
@@ -1,5 +1,5 @@
1
1
  <!-- insert_before ".card__header" -->
2
2
 
3
3
  <% if geocoding_comparison? %>
4
- <span class="label secondary float-right"><%= icon("location") %> <%= t("away", scope: "decidim.reporting_proposals.proposals.compare.geocoding", meters: distance(1000 * @proposal.distance_from([proposal.latitude, proposal.longitude], :km))) %></span>
4
+ <span class="label secondary float-right"><%= icon("location") %> <%= t("away", scope: "decidim.reporting_proposals.proposals.compare.geocoding", meters: distance(1000 * @proposal.distance_from([proposal.latitude, proposal.longitude], :km))) %></span>
5
5
  <% end %>
@@ -1,14 +1,14 @@
1
1
  <!-- replace ".section-heading" -->
2
2
 
3
3
  <% if geocoding_comparison? && action_name == "compare" %>
4
- <h2 class="section-heading">
5
- <%= t("title", scope: "decidim.reporting_proposals.proposals.compare.geocoding") %>
6
- <%= "(#{@similar_proposals.count})" if @similar_proposals.present? %>
7
- </h2>
8
- <p><%= t("description", scope: "decidim.reporting_proposals.proposals.compare.geocoding", meters: distance) %></p>
4
+ <h2 class="section-heading">
5
+ <%= t("title", scope: "decidim.reporting_proposals.proposals.compare.geocoding") %>
6
+ <%= "(#{@similar_proposals.count})" if @similar_proposals.present? %>
7
+ </h2>
8
+ <p><%= t("description", scope: "decidim.reporting_proposals.proposals.compare.geocoding", meters: distance) %></p>
9
9
  <% else %>
10
- <h2 class="section-heading">
11
- <%= proposal_wizard_step_title action_name %>
12
- <%= "(#{@similar_proposals.count})" if @similar_proposals.present? %>
13
- </h2>
10
+ <h2 class="section-heading">
11
+ <%= proposal_wizard_step_title action_name %>
12
+ <%= "(#{@similar_proposals.count})" if @similar_proposals.present? %>
13
+ </h2>
14
14
  <% end %>
@@ -0,0 +1,5 @@
1
+ <!-- insert_before "erb[silent]:contains(':js_content')" -->
2
+
3
+ <% if reporting_proposal? %>
4
+ <%= stylesheet_pack_tag "decidim_reporting_proposals" %>
5
+ <% end %>
@@ -2,7 +2,6 @@
2
2
 
3
3
  <% if reporting_proposal? %>
4
4
  <%= javascript_pack_tag "decidim_reporting_proposals" %>
5
- <%= stylesheet_pack_tag "decidim_reporting_proposals" %>
6
5
  <% else %>
7
6
  <%= javascript_pack_tag "decidim_proposals" %>
8
7
  <% end %>
@@ -0,0 +1,5 @@
1
+ <!-- insert_before "erb[silent]:contains(':js_content')" -->
2
+
3
+ <% if reporting_proposal? %>
4
+ <%= stylesheet_pack_tag "decidim_reporting_proposals" %>
5
+ <% end %>
@@ -0,0 +1,5 @@
1
+ <!-- insert_before "erb[silent]:contains(':js_content')" -->
2
+
3
+ <% if reporting_proposal? %>
4
+ <%= stylesheet_pack_tag "decidim_reporting_proposals" %>
5
+ <% end %>
@@ -2,7 +2,6 @@
2
2
 
3
3
  <% if reporting_proposal? %>
4
4
  <%= javascript_pack_tag "decidim_reporting_proposals" %>
5
- <%= stylesheet_pack_tag "decidim_reporting_proposals" %>
6
5
  <% else %>
7
6
  <%= javascript_pack_tag "decidim_proposals" %>
8
7
  <% end %>
@@ -2,4 +2,4 @@
2
2
 
3
3
  <% if resource_admin_url.present? %>
4
4
  <p><%= link_to t("admin_resource", scope: "decidim.reported_mailer.report"), resource_admin_url, target: "_blank" %></p>
5
- <% end %>
5
+ <% end %>
@@ -1,3 +1,3 @@
1
1
  <!-- replace "erb[loud]:contains('button small button--sc show-for-medium')" -->
2
2
 
3
- <%= link_to(cta_text, step_cta_url(participatory_process), class: "button small button--sc") %>
3
+ <%= link_to(cta_text, step_cta_url(participatory_process), class: "button small button--sc") %>
@@ -1,20 +1,20 @@
1
- .input-group.has-tribute {
1
+ .input-group.has-tribute{
2
2
  position: relative;
3
3
 
4
- .tribute-container {
4
+ .tribute-container{
5
5
  margin-top: 2.3rem;
6
6
  }
7
7
  }
8
8
 
9
- .user-device-location {
10
- button {
9
+ .user-device-location{
10
+ button{
11
11
  max-height: 3rem;
12
12
 
13
- &.loading-spinner {
13
+ &.loading-spinner{
14
14
  position: relative;
15
15
  margin: 0 !important;
16
16
 
17
- &::before {
17
+ &::before{
18
18
  position: absolute;
19
19
  top: 6px;
20
20
  left: 12px;
@@ -22,12 +22,12 @@
22
22
  }
23
23
  }
24
24
 
25
- @media only screen and (max-width: 596px) {
25
+ @media only screen and (max-width: 596px){
26
26
  display: block !important;
27
27
  margin-top: 1rem;
28
28
  margin-bottom: -.5rem;
29
29
 
30
- button {
30
+ button{
31
31
  border-radius: 4px !important;
32
32
  }
33
33
  }
@@ -1,26 +1,26 @@
1
- .table__title-block {
1
+ .table__title-block{
2
2
  display: flex;
3
3
  align-items: flex-start;
4
4
  }
5
5
 
6
- .table__title-icon {
6
+ .table__title-icon{
7
7
  width: 20px;
8
8
  padding: 3px;
9
9
  margin-right: 5px;
10
10
  float: left;
11
11
  }
12
12
 
13
- .table__list-title {
13
+ .table__list-title{
14
14
  display: flex;
15
15
  flex-direction: column;
16
16
  align-items: start;
17
17
  }
18
18
 
19
- .table__list-title a {
19
+ .table__list-title a{
20
20
  text-align: start;
21
21
  }
22
22
 
23
- .help-text-overdue {
23
+ .help-text-overdue{
24
24
  font-style: italic;
25
25
  font-size: .8125rem;
26
26
  text-align: start;
@@ -1,11 +1,11 @@
1
1
  .global-settings,
2
- .step-settings {
3
- .readonly_container {
2
+ .step-settings{
3
+ .readonly_container{
4
4
  display: none;
5
5
  }
6
6
  }
7
7
 
8
- .proposal-photo.gallery__item {
8
+ .proposal-photo.gallery__item{
9
9
  position: relative;
10
10
  margin: 0 0 1rem;
11
11
  border: 1px solid rgba(0, 0, 0, .2);
@@ -14,11 +14,11 @@
14
14
  color: #202734;
15
15
  }
16
16
 
17
- .proposal-photo .thumbnail {
17
+ .proposal-photo .thumbnail{
18
18
  margin-bottom: 0;
19
19
  }
20
20
 
21
- .delete-proposal__button {
21
+ .delete-proposal__button{
22
22
  position: absolute;
23
23
  right: 0;
24
24
  top: 7px;
@@ -33,28 +33,28 @@
33
33
  //Variables
34
34
 
35
35
  /* Card address */
36
- .address {
36
+ .address{
37
37
  display: flex;
38
38
  padding: 1rem;
39
39
  }
40
40
 
41
- .address--alone {
41
+ .address--alone{
42
42
  flex-grow: 1;
43
43
  }
44
44
 
45
- .address__info {
45
+ .address__info{
46
46
  display: flex;
47
47
  flex-grow: 1;
48
48
  }
49
49
 
50
- .address__icon {
50
+ .address__icon{
51
51
  float: left;
52
52
  display: flex;
53
53
  align-self: center;
54
54
  fill: var(--primary);
55
55
  }
56
56
 
57
- .address__details {
57
+ .address__details{
58
58
  float: left;
59
59
  max-width: 100%; //IE10 bug fix
60
60
  padding-left: .5em;
@@ -1,9 +1,9 @@
1
- .has_no_address {
1
+ .has_no_address{
2
2
  text-align: right;
3
3
  }
4
4
 
5
- .editor {
6
- .form-error {
5
+ .editor{
6
+ .form-error{
7
7
  margin: -1rem 0 1rem;
8
8
  font-size: .75rem;
9
9
  font-weight: 600;
@@ -1,19 +1,19 @@
1
- button.user-device-camera {
1
+ button.user-device-camera{
2
2
  border-radius: 4px !important;
3
3
  max-height: 3rem;
4
4
  }
5
5
 
6
- .has_no_image {
6
+ .has_no_image{
7
7
  margin-top: -1rem;
8
8
  text-align: right;
9
9
  }
10
10
 
11
- @media only screen and (max-width: 596px) {
12
- .gallery__container .input-group .input-group-button {
11
+ @media only screen and (max-width: 596px){
12
+ .gallery__container .input-group .input-group-button{
13
13
  display: block;
14
14
  }
15
15
 
16
- .has_no_image {
16
+ .has_no_image{
17
17
  margin-top: -.5rem;
18
18
  }
19
19
  }