decidim-reporting_proposals 0.4.2 → 0.5.0
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/.github/workflows/lint.yml +2 -2
- data/.github/workflows/test_integration.yml +2 -2
- data/.github/workflows/test_unit.yml +2 -2
- data/.rubocop-disabled.yml +11 -0
- data/.rubocop.yml +1 -0
- data/.rubocop_rails.yml +3 -0
- data/.rubocop_ruby.yml +24 -10
- data/.ruby-version +1 -1
- data/.simplecov +2 -2
- data/Gemfile.lock +257 -235
- data/README.md +2 -2
- data/Rakefile +2 -0
- data/app/commands/concerns/decidim/reporting_proposals/gallery_methods_override.rb +18 -0
- data/app/commands/decidim/reporting_proposals/admin/update_proposal_note.rb +1 -1
- data/app/commands/decidim/reporting_proposals/create_reporting_proposal.rb +2 -0
- data/app/commands/decidim/templates/admin/copy_proposal_answer_template.rb +1 -1
- data/app/commands/decidim/templates/admin/create_proposal_answer_template.rb +1 -1
- data/app/commands/decidim/templates/admin/update_proposal_answer_template.rb +1 -1
- data/app/controllers/concerns/decidim/reporting_proposals/admin/needs_header_snippets.rb +5 -7
- data/app/controllers/concerns/decidim/reporting_proposals/needs_proposal_extra_validations_snippets.rb +1 -1
- data/app/controllers/concerns/decidim/reporting_proposals/proposals_controller_override.rb +5 -5
- data/app/controllers/decidim/templates/admin/proposal_answer_templates_controller.rb +3 -5
- data/app/forms/concerns/decidim/reporting_proposals/form_builder_override.rb +9 -8
- data/app/forms/concerns/decidim/reporting_proposals/map_builder_override.rb +6 -4
- data/app/helpers/concerns/decidim/reporting_proposals/proposal_wizard_helper_override.rb +4 -4
- data/app/overrides/decidim/proposals/admin/proposal_answers/_form/add_template_chooser.html.erb.deface +1 -1
- data/app/overrides/decidim/proposals/admin/proposals/_proposal-tr/add_valuators_name.html.erb.deface +3 -3
- data/app/overrides/decidim/proposals/admin/proposals/show/add_send_email_btn.html.erb.deface +1 -1
- data/app/overrides/decidim/proposals/admin/proposals/show/add_valuators_form.html.erb.deface +1 -1
- data/app/overrides/decidim/proposals/admin/proposals/show/remove_photos.html.erb.deface +0 -1
- data/app/overrides/decidim/proposals/proposals/_edit_form_fields/replace_add_photos.html.erb.deface +37 -0
- data/app/overrides/decidim/proposals/proposals/_proposal_similar/add_distance_badge.html.erb.deface +1 -1
- data/app/overrides/decidim/proposals/proposals/_wizard_header/replace_title.html.erb.deface +9 -9
- data/app/overrides/decidim/proposals/proposals/edit/add_css.html.erb.deface +5 -0
- data/app/overrides/decidim/proposals/proposals/edit/replace_javascript.html.erb.deface +0 -1
- data/app/overrides/decidim/proposals/proposals/edit_draft/add_css.html.erb.deface +5 -0
- data/app/overrides/decidim/proposals/proposals/new/add_css.html.erb.deface +5 -0
- data/app/overrides/decidim/proposals/proposals/new/replace_javascript.html.erb.deface +0 -1
- data/app/overrides/decidim/reported_mailer/report/add_link_to_admin.html.erb.deface +1 -1
- data/app/overrides/layouts/decidim/_process_header_steps/always_show_new_proposals.html.erb.deface +1 -1
- data/app/packs/stylesheets/decidim/reporting_proposals/geocoding_addons.scss +8 -8
- data/app/packs/stylesheets/decidim/reporting_proposals/list_component_admin.scss +5 -5
- data/app/packs/stylesheets/decidim/reporting_proposals/manage_component_admin.scss +10 -10
- data/app/packs/stylesheets/decidim/reporting_proposals/proposals/add_proposal.scss +3 -3
- data/app/packs/stylesheets/decidim/reporting_proposals/user_camera_inputs.scss +5 -5
- data/app/queries/decidim/reporting_proposals/nearby_proposals.rb +1 -1
- data/app/validators/concerns/decidim/reporting_proposals/component_validator_override.rb +2 -2
- data/app/views/decidim/proposals/proposals/index.js.erb +1 -1
- data/app/views/decidim/reporting_proposals/proposals/_reporting_proposal_fields.html.erb +9 -21
- data/babel.config.json +25 -0
- data/config/locales/en.yml +2 -0
- data/db/migrate/20230404103706_add_target_and_field_values_to_decidim_templates_templates.rb +2 -6
- data/decidim-reporting_proposals.gemspec +2 -1
- data/lib/decidim/reporting_proposals/component.rb +0 -9
- data/lib/decidim/reporting_proposals/engine.rb +27 -3
- data/lib/decidim/reporting_proposals/version.rb +3 -3
- data/package-lock.json +161 -142
- data/package.json +4 -163
- metadata +56 -48
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 <
|
7
|
+
class UpdateProposalNote < Decidim::Command
|
8
8
|
# Public: Initializes the command.
|
9
9
|
#
|
10
10
|
# form - A form object with the params.
|
@@ -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 <
|
7
|
+
class CopyProposalAnswerTemplate < Decidim::Command
|
8
8
|
def initialize(template)
|
9
9
|
@template = template
|
10
10
|
end
|
@@ -36,13 +36,11 @@ module Decidim
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def current_component
|
39
|
-
@current_component ||=
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
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(:
|
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 =
|
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 =
|
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 =
|
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 =
|
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? ?
|
74
|
+
@step = reporting_proposal? ? Proposals::ProposalsController::STEP1 : Proposals::ProposalsController::STEP3
|
75
75
|
enforce_permission_to :edit, :proposal, proposal: @proposal
|
76
76
|
end
|
77
77
|
|
@@ -123,15 +123,13 @@ module Decidim
|
|
123
123
|
private
|
124
124
|
|
125
125
|
def populate_template_interpolations(proposal)
|
126
|
-
template.description
|
127
|
-
language = row.first
|
128
|
-
value = row.last
|
126
|
+
template.description do |language, value|
|
129
127
|
value.gsub!("%{organization}", proposal.organization.name)
|
130
128
|
value.gsub!("%{name}", proposal.creator_author.name)
|
131
129
|
value.gsub!("%{admin}", current_user.name)
|
132
130
|
|
133
131
|
[language, value]
|
134
|
-
end
|
132
|
+
end
|
135
133
|
end
|
136
134
|
|
137
135
|
def proposal
|
@@ -156,7 +154,7 @@ module Decidim
|
|
156
154
|
@avaliablity_options["components-#{component.id}"] = formated_name(component)
|
157
155
|
end
|
158
156
|
global_scope = { "organizations-#{current_organization.id}" => t("global_scope", scope: "decidim.templates.admin.proposal_answer_templates.index") }
|
159
|
-
@avaliablity_options = global_scope.merge(
|
157
|
+
@avaliablity_options = global_scope.merge(@avaliablity_options.sort_by { |_, val| val }.to_h)
|
160
158
|
end
|
161
159
|
|
162
160
|
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,
|
14
|
-
return super(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?(:
|
17
|
-
@template.snippets.add(:
|
18
|
-
@template.snippets.add(:
|
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(:
|
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,
|
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:
|
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?(:
|
19
|
-
template.snippets.add(:
|
20
|
-
template.snippets.add(:
|
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(:
|
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(
|
13
|
-
#{proposal_wizard_stepper_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(
|
16
|
-
steps = %(#{steps} #{proposal_wizard_stepper_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
|
data/app/overrides/decidim/proposals/admin/proposals/_proposal-tr/add_valuators_name.html.erb.deface
CHANGED
@@ -4,6 +4,6 @@
|
|
4
4
|
<% if count.zero? %>
|
5
5
|
0
|
6
6
|
<% else %>
|
7
|
-
|
8
|
-
|
9
|
-
<% end %>
|
7
|
+
<%= proposal.valuation_assignments.first&.valuator_role&.user&.name %>
|
8
|
+
<%= "(+#{(count - 1)})" if count > 1 %>
|
9
|
+
<% end %>
|
data/app/overrides/decidim/proposals/admin/proposals/show/add_send_email_btn.html.erb.deface
CHANGED
@@ -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 } %>
|
data/app/overrides/decidim/proposals/proposals/_edit_form_fields/replace_add_photos.html.erb.deface
ADDED
@@ -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">×</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 %>
|
data/app/overrides/decidim/proposals/proposals/_proposal_similar/add_distance_badge.html.erb.deface
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
<!-- insert_before ".card__header" -->
|
2
2
|
|
3
3
|
<% if geocoding_comparison? %>
|
4
|
-
|
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
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
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
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
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 %>
|
data/app/overrides/layouts/decidim/_process_header_steps/always_show_new_proposals.html.erb.deface
CHANGED
@@ -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,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
|
}
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Decidim
|
4
4
|
module ReportingProposals
|
5
5
|
# Class used to retrieve similar proposals.
|
6
|
-
class NearbyProposals <
|
6
|
+
class NearbyProposals < Decidim::Query
|
7
7
|
# Syntactic sugar to initialize the class and return the queried objects.
|
8
8
|
#
|
9
9
|
# components - Decidim::CurrentComponent
|
@@ -11,13 +11,13 @@ module Decidim
|
|
11
11
|
# over all the validators.
|
12
12
|
def validate_each(record, attribute, component)
|
13
13
|
unless component
|
14
|
-
record.errors
|
14
|
+
record.errors.add(attribute, :blank)
|
15
15
|
return
|
16
16
|
end
|
17
17
|
manifests = [options[:manifest].to_s]
|
18
18
|
manifests << "reporting_proposals" if manifests.first == "proposals"
|
19
19
|
|
20
|
-
record.errors
|
20
|
+
record.errors.add(attribute, :invalid) unless component.manifest_name.to_s.in?(manifests)
|
21
21
|
end
|
22
22
|
end
|
23
23
|
end
|