From 1420a60f333182760475ae2ff4f6b94be0a8ffc8 Mon Sep 17 00:00:00 2001 From: decabeza Date: Mon, 21 Feb 2022 09:28:14 +0100 Subject: [PATCH] Fixes after update to 1.4.1 --- app/assets/stylesheets/_consul_settings.scss | 1 + app/assets/stylesheets/base.scss | 37 +++++++- .../admin/budgets/form_component.html.erb | 6 ++ .../budgets/investment_component.html.erb | 2 +- .../budgets/investment_component.rb | 2 +- .../budgets/supports_info_component.html.erb | 12 +-- app/models/image.rb | 6 +- app/views/budgets/investments/edit.html.erb | 10 ++- .../polls/_question_answer_fields.html.erb | 2 +- .../legislation/proposals/_form.html.erb | 5 +- app/views/legislation/proposals/new.html.erb | 6 +- app/views/proposals/summary.html.erb | 2 +- config/locales/nl/activerecord.yml | 11 ++- config/locales/nl/admin.yml | 84 +++++++++++++++---- config/locales/nl/budgets.yml | 20 ++++- .../budgets/supports_info_component_spec.rb | 17 +++- spec/system/budgets/budgets_spec.rb | 1 + 17 files changed, 173 insertions(+), 51 deletions(-) diff --git a/app/assets/stylesheets/_consul_settings.scss b/app/assets/stylesheets/_consul_settings.scss index 2b4ef3a4f86..c9c21243cd3 100644 --- a/app/assets/stylesheets/_consul_settings.scss +++ b/app/assets/stylesheets/_consul_settings.scss @@ -14,6 +14,7 @@ $black: #222 !default; $white: #fdfdfd !default; $body-font-family: "Source Sans Pro", "Helvetica", "Arial", sans-serif !important !default; +$body-background: #fff; $global-radius: rem-calc(3) !default; $global-width: rem-calc(1200) !default; diff --git a/app/assets/stylesheets/base.scss b/app/assets/stylesheets/base.scss index 2fb557d3e03..32ffa4b6d87 100644 --- a/app/assets/stylesheets/base.scss +++ b/app/assets/stylesheets/base.scss @@ -310,8 +310,8 @@ aside { @include breakpoint(medium) { img { - border-bottom-left-radius: rem-calc(10); - border-top-left-radius: rem-calc(10); + border-bottom-left-radius: rem-calc(12); + border-top-left-radius: rem-calc(12); max-width: none; height: 100%; } @@ -738,7 +738,6 @@ body > header, } &.header-card-full { - margin-left: calc(#{$global-width / 2} - 50vw); margin-right: calc(#{$global-width / 2} - 50vw); overflow-x: hidden; } @@ -883,7 +882,6 @@ body > header, color: $text; padding: 0; text-align: left; - text-decoration: none; } } } @@ -1048,6 +1046,7 @@ footer { } .social { + width: auto; [class^="fa"] { color: $footer; @@ -1748,6 +1747,7 @@ footer { } .legislation-process-list { + border-bottom: 0; h3 { color: $label; @@ -1887,6 +1887,18 @@ footer { position: relative; } +.draft-panels .draft-allegation .calc-comments { + + .comments-box-container { + top: rem-calc(100) !important; + } + + .comment-box .comment-input { + border-bottom: 0; + padding-bottom: 0; + } +} + .comments-box-container .comment-meta .comment-votes { position: relative; width: 100%; @@ -2550,6 +2562,13 @@ footer { } } +.proposal-dashboard .button { + + &.expanded { + word-break: break-word; + } +} + // 11. Polls // -------------------- @@ -3245,6 +3264,12 @@ footer { } } + .budget-phase { + @include breakpoint(medium) { + width: auto; + } + } + .budget-prev-phase, .budget-next-phase, .budget-prev-phase-disabled, @@ -3430,6 +3455,10 @@ footer { } } +.orbit-bullets button { + min-height: 0; +} + .sdg-related-list-selector { .help-text, diff --git a/app/components/admin/budgets/form_component.html.erb b/app/components/admin/budgets/form_component.html.erb index 5df2e0e92ec..979c414e5ff 100644 --- a/app/components/admin/budgets/form_component.html.erb +++ b/app/components/admin/budgets/form_component.html.erb @@ -39,6 +39,12 @@ +
"> +

<%= t("admin.budgets.edit.hide_money") %>

+

<%= t("admin.budgets.edit.hide_money_help_text") %>

+ <%= f.check_box :hide_money, id: "hide_money_checkbox" %> +
+ <% unless wizard? %>
<%= f.select :phase, phases_select_options %> diff --git a/app/components/budgets/investment_component.html.erb b/app/components/budgets/investment_component.html.erb index 4ca171959ff..ca551a93058 100644 --- a/app/components/budgets/investment_component.html.erb +++ b/app/components/budgets/investment_component.html.erb @@ -2,7 +2,7 @@ <% if investment.image.present? %> <%= image_tag investment.image_url(:large), alt: investment.image.title.unicode_normalize %> <% else %> - <%= image_tag "budget_investment_no_image.jpg", alt: investment.title %> + <%= image_tag(image_path_for("budget_investment_no_image.jpg"), alt: investment.title) %> <% end %> <% if investment.should_show_vote_count? || investment.should_show_price? %> diff --git a/app/components/budgets/investment_component.rb b/app/components/budgets/investment_component.rb index e52af44d962..11e258deb02 100644 --- a/app/components/budgets/investment_component.rb +++ b/app/components/budgets/investment_component.rb @@ -1,5 +1,5 @@ class Budgets::InvestmentComponent < ApplicationComponent - delegate :locale_and_user_status, :namespaced_budget_investment_path, to: :helpers + delegate :locale_and_user_status, :namespaced_budget_investment_path, :image_path_for, to: :helpers attr_reader :investment def initialize(investment) diff --git a/app/components/budgets/supports_info_component.html.erb b/app/components/budgets/supports_info_component.html.erb index 7980b7eb922..51d59fdf97e 100644 --- a/app/components/budgets/supports_info_component.html.erb +++ b/app/components/budgets/supports_info_component.html.erb @@ -18,10 +18,12 @@

<%= t("budgets.supports_info.share") %>

-

- - <%= t("budgets.supports_info.scrolling") %>
-
-

+ <% if budget.investments.any? %> +

+ + <%= t("budgets.supports_info.scrolling") %>
+
+

+ <% end %> diff --git a/app/models/image.rb b/app/models/image.rb index de1405f2bc7..b4118330558 100644 --- a/app/models/image.rb +++ b/app/models/image.rb @@ -1,11 +1,7 @@ class Image < ApplicationRecord include Attachable - has_attachment :attachment, styles: { - large: "x#{Setting["uploads.images.min_height"]}", - medium: "300x300#", - thumb: "140x245#" - }, + has_attachment :attachment, styles: { large: "x475", medium: "300x300#", thumb: "140x245#" }, url: "/system/:class/:prefix/:style/:hash.:extension", hash_data: ":class/:style", use_timestamp: false, diff --git a/app/views/budgets/investments/edit.html.erb b/app/views/budgets/investments/edit.html.erb index 6821e76973c..a183ec50b38 100644 --- a/app/views/budgets/investments/edit.html.erb +++ b/app/views/budgets/investments/edit.html.erb @@ -1,7 +1,9 @@ -
-
-

<%= t("management.budget_investments.edit") %>

+
+
+
+

<%= t("management.budget_investments.edit") %>

+
<%= render "/budgets/investments/form", form_url: budget_investment_path(@budget, @investment) %> -
+ diff --git a/app/views/dashboard/polls/_question_answer_fields.html.erb b/app/views/dashboard/polls/_question_answer_fields.html.erb index 3cf81e8eef6..ee1622b79c0 100644 --- a/app/views/dashboard/polls/_question_answer_fields.html.erb +++ b/app/views/dashboard/polls/_question_answer_fields.html.erb @@ -1,4 +1,4 @@ -
+
<%= f.hidden_field :given_order %>
diff --git a/app/views/legislation/proposals/_form.html.erb b/app/views/legislation/proposals/_form.html.erb index b81b440772f..0e0c61e8d62 100644 --- a/app/views/legislation/proposals/_form.html.erb +++ b/app/views/legislation/proposals/_form.html.erb @@ -4,13 +4,13 @@ <%= f.hidden_field(:legislation_process_id, value: params[:process_id]) %>
-
+
<%= f.text_field :title, maxlength: Legislation::Proposal.title_max_length %>
<%= f.invisible_captcha :subtitle %> -
+
<%= f.text_area :summary, rows: 4, maxlength: 200, hint: t("proposals.form.proposal_summary_note") %>
@@ -65,6 +65,7 @@
+

<%= t("shared.required_fields") %>

<%= f.submit(class: "button", value: t("proposals.#{action_name}.form.submit_button")) %>
diff --git a/app/views/legislation/proposals/new.html.erb b/app/views/legislation/proposals/new.html.erb index e0a707fefe6..068aee9d85b 100644 --- a/app/views/legislation/proposals/new.html.erb +++ b/app/views/legislation/proposals/new.html.erb @@ -3,8 +3,10 @@
<%= back_link_to %> -

<%= t("proposals.new.start_new") %>

+

<%= t("proposals.new.start_new") %>

- <%= render "legislation/proposals/form", form_url: legislation_process_proposals_path, id: @proposal.id %> +
+ <%= render "legislation/proposals/form", form_url: legislation_process_proposals_path, id: @proposal.id %> +
diff --git a/app/views/proposals/summary.html.erb b/app/views/proposals/summary.html.erb index e7a86ed6d58..7e04d0d915c 100644 --- a/app/views/proposals/summary.html.erb +++ b/app/views/proposals/summary.html.erb @@ -12,7 +12,7 @@
-
+

<%= link_to proposal.title, namespaced_proposal_path(proposal) %>

diff --git a/config/locales/nl/activerecord.yml b/config/locales/nl/activerecord.yml index 2fb1502071c..8733c7e3cca 100644 --- a/config/locales/nl/activerecord.yml +++ b/config/locales/nl/activerecord.yml @@ -138,7 +138,9 @@ nl: phase: "Fase" currency_symbol: "Valuta" budget/translation: - name: "Name" + name: "Titel" + main_link_text: "Tekst knop" + main_link_url: "Link knop" budget/investment: heading_id: "Kop" title: "Titel" @@ -203,9 +205,11 @@ nl: ends_at: "Einddatum" starts_at: "Startdatum" budget/phase/translation: - name: "Name" - description: "Beschrijving" + name: "Naam fase" + description: "Omschrijving" summary: "Samenvatting" + main_link_text: "Tekst knop" + main_link_url: "Link knop" comment: body: "Reactie" user: "Gebruiker" @@ -433,6 +437,7 @@ nl: link_text: Tekst link link_url: URL link columns: Aantal kolommen + background_image: "Stel afbeelding in als achtergrond" widget/card/translation: label: Term (optioneel) title: Titel diff --git a/config/locales/nl/admin.yml b/config/locales/nl/admin.yml index 259d237555d..b7c569ec863 100644 --- a/config/locales/nl/admin.yml +++ b/config/locales/nl/admin.yml @@ -61,44 +61,68 @@ nl: no_activity: Er is geen moderator activiteit. budgets: actions: - edit: "Edit budget" + edit: "Bewerk begroting" preview: "Preview" + preview_results: "Preview resultaten" + ballots: "Maak stemhok" + confirm: + ballots: "Weet je het zeker? Dit is alleen relevant wanneer je fysieke (papieren) stemmen gaat inzamelen, in de stemfase. Inwoners kunnen altijd online hun stem uitbrengen, ook mét de aanwezigheid van een fysiek stemhokje." + destroy: "Weet je het zeker? Je verwijdert dan de begroting en alle bijbehorende groepen en rubrieken. Deze actie kan je niet ongedaan maken." + descriptions: + ballots: "Hiermee kan je fysieke stemmen beheren. Activeer deze optie alleen als je fysieke stemhokjes gebruikt om fysieke (papieren) te verzamelen in de stemfase." + calculate_winners: "Nadat de uitslag is berekend kunnen alleen admins de uitslag zien. De uitslag is openbaar zodra de \"%{phase}\" fase actief is en de optie \"Show results\" is aangezet bij het bewerken van de beroting." + destroy: "Je verwijdert de begroting en alle bijbehorende groepen en rubrieken. Deze actie kan je niet ongedaan maken." index: - title: Participatory budgets - new_link: Create new budget + title: "Ideeën" + new_link: "Creëer nieuwe begroting" filter: Filter filters: - all: All - open: Open - finished: Finished + all: "Alle" + open: "Actief" + finished: "Afgesloten" budget_investments: Zie begrotingsvoorstellen table_budget_type: "Type" table_draft: "Concept" - table_name: Name - table_phase: Phase - admin_ballots: Stembiljetten + table_name: "Titel" + table_phase: "Fase" + admin_ballots: "Papieren stemmen" no_budgets: "Er zijn geen budgetten." create: - notice: New participatory budget created successfully! + notice: "Nieuwe burgerbegroting gemaakt!" update: - notice: Participatory budget updated successfully + notice: "Burgerbegroting is bewerkt!" + publish: + notice: "Burgerbegroting succesvol gepubliceerd!" edit: - title: Edit Participatory budget + title: "Bewerk begroting" delete: Verwijder begroting - phase: Phase + phase: "Fase" enabled: Actief actions: Activiteiten active: Actieve blank_dates: Datums zijn leeg + phases_caption: "Instellingen fases" destroy: success_notice: Begroting verwijderd unable_notice: U kunt een begroting met voorstellen niet verwijderen show: - add_heading: "Voeg kop toe" + add_group: "Groep toevoegen" + add_heading: "Rubriek toevoegen" + groups_and_headings: "Instellingen voor groepen en rubrieken" + headings_caption: "Rubieken in %{group}" winners: calculate: Bereken gewonnen bestemmingen calculated: Bestemmingen worden berekend, kan even duren. recalculate: Herbereken gewonnen investeringen + help: + budgets: "Bij een burgerbegroting kunnen inwoners direct beslissen wat er met geld van de gemeente gebeurt. De gemeente monitort en evalueert de ideeën." + groups: + multiple: "Groepen organiseren rubrieken. Nadat een groep is aangemaakt en deze verschillende rubrieken bevat, kan bepaalt worden in hoeveel rubrieken een gebruiker per groep kan stemmen." + single: "Groepen organiseren rubrieken. Dit budget heeft slechts één rubriek en hier kan dezelfde naam worden gebruikt als voor de groep. Deze naam van de rubriek verschijnt nergens op de website. Je kunt daarom gewoon doorgaan naar de volgende stap." + headings: + multiple: "Rubrieken verdelen het geld van de burgerbegroting. Hier kun je rubrieken voor de groep toevoegen en het te besteden bedrag voor elke rubriek toewijzen." + single: "Rubrieken verdelen het geld van de burgerbegroting. Dit budget heeft slechts één rubriek . Daarom is vooraf al bepaalt waar het geld in deze begroting aan wordt uitgegeven." + phases: "Een burgerbegroting bestaat uit verschillende fasen. Hieronder kun je fases aan- of uitzetten en vullen met content." budget_groups: name: "Name" headings_name: "Rubrieken" @@ -238,9 +262,35 @@ nl: search_unfeasible: Search unfeasible budgets_wizard: creation_timeline: - budget: Budget - groups: Groepen - headings: Rubrieken + budget: "Budget" + groups: "Groepen" + headings: "Rubrieken" + phases: "Fases" + budgets: + continue: "Door naar groepen" + groups: + back: "Ga terug" + continue: "Door naar rubrieken" + headings: + continue: "Door naar fases" + single: + back: "Ga terug" + heading_mode: + multiple: + description: "Hier creëer je een proces met meerdere groepen, wijken of thema's. Je hebt als het ware meerdere zakken geld. Bijvoorbeeld 25.000 voor \"Oosterparkwijk\", 30.000 voor het \"Centrum\", 28.000 voor de \"Westerparkwijk\" en de hele stad. Of voor verschillende thema's zoals sport, cultuur of gezondheid." + link: "Creeër meervoudig budget" + title: "Meervoudig budget" + single: + description: "Hier creëer je een proces met één groep, wijk of thema. Je hebt als het ware één zak geld. Bijvoorbeeld 25.000 euro voor de \"Oosterparkwijk\", of 10.000 voor cultuur." + link: "Creëer enkelvoudig budget" + title: "Enkelvoudig budget" + title: "Type burgerbegroting" + phases: + continue: "Voltooien" + multiple: + back: "Ga terug" + single: + back: "Ga terug" milestones: index: table_id: "ID" diff --git a/config/locales/nl/budgets.yml b/config/locales/nl/budgets.yml index a569ddaeb0d..c87fc19e821 100644 --- a/config/locales/nl/budgets.yml +++ b/config/locales/nl/budgets.yml @@ -49,6 +49,18 @@ nl: title: Hulp bij budget description: Met de participatieve budgetten beslissen de burgers aan welke projecten zij een deel van de begroting toekennen. milestones: Mijlpalen + supports_info: + different: "Maar... je kunt ieder idee slechts één keer steunen. En je steun is definitief." + next: "Steun de ideeën die jij graag uitgevoerd wil zien." + scrolling: "Blijf scrollen om alle ideeën te zien" + share: "Je kunt ideeën die je hebt gesteund delen op social media. Zo krijgen de ideeën meer aandacht én wellicht meer steun!" + supported: + one: "Tot nu toe heb je 1 idee gesteund." + other: "Tot nu toe heb je %{count} ideeën gesteund." + supported_not_logged_in: "Log in om projecten te steunen." + remember: "Je mag zoveel verschillende ideeën steunen als je wilt." + time: "Je kunt nog tot %{phase_end_date} ideeën steunen." + title: "Je kunt nu ideeën steunen!" investments: form: title: "Nieuw begrotingsvoorstel maken" @@ -135,11 +147,17 @@ nl: confirm_group: one: "Je kunt maar in %{count} wijk voorstellen steunen. Als je verder gaat is dat definitief. Weet je het zeker?" other: "Je kunt maar in %{count} wijk voorstellen steunen. Als je verder gaat is dat definitief. Weet je het zeker?" - support: "Support" + remove_support: "Steun verwijderen" + remove_support_label: "Steun verwijderen %{investment}" + support: "Steunen" + support_label: "Steunen %{investment}" investments_list: investment: price: "Prijs" supports: "Steunt" + read_more: "Bekijk idee" + see_all: "Bekijk alle ideeën" + title: "Ideeën" show: see_results: Bekijk resultaten results: diff --git a/spec/components/budgets/supports_info_component_spec.rb b/spec/components/budgets/supports_info_component_spec.rb index 1bf10f98618..39b00f574b0 100644 --- a/spec/components/budgets/supports_info_component_spec.rb +++ b/spec/components/budgets/supports_info_component_spec.rb @@ -4,9 +4,10 @@ let(:budget) { create(:budget, :selecting) } let(:group) { create(:budget_group, budget: budget) } let(:component) { Budgets::SupportsInfoComponent.new(budget) } + let(:heading) { create(:budget_heading, group: group) } - it "renders when the budget is selecting" do - create(:budget_heading, group: group) + it "renders when the budget is selecting with investments" do + create_list(:budget_investment, 3, :selected, heading: heading) render_inline component @@ -15,14 +16,22 @@ expect(page).to have_link "Keep scrolling to see all ideas" end - it "renders the link to see all ideas when there are multiple headings" do - create_list(:budget_heading, 2, group: group) + it "renders the link to see all ideas when there are investments" do + create_list(:budget_investment, 3, :selected, heading: heading) render_inline component expect(page).to have_link "Keep scrolling to see all ideas" end + it "does not render the link when there are no investments" do + create(:budget_heading, group: group) + + render_inline component + + expect(page).not_to have_link "Keep scrolling to see all ideas" + end + it "does not render anything when the budget is not selecting" do budget.update!(phase: (Budget::Phase::PHASE_KINDS - ["selecting"]).sample) diff --git a/spec/system/budgets/budgets_spec.rb b/spec/system/budgets/budgets_spec.rb index 4f939e0cff9..a7557e506e1 100644 --- a/spec/system/budgets/budgets_spec.rb +++ b/spec/system/budgets/budgets_spec.rb @@ -649,6 +649,7 @@ budget = create(:budget) group = create(:budget_group, budget: budget) heading = create(:budget_heading, group: group) + create(:budget_investment, heading: heading) voter = create(:user, :level_two)