Commit Graph

843 Commits

Author SHA1 Message Date
Javi Martín
791e8b61ec Extract method to get support confirmation message 2021-06-14 12:51:41 +02:00
Javi Martín
cd8fa606c7 Use methods instead of variables in votes view
Now the view is more readable and it's possible to customize these
methods writing a custom class, without changing or copying the view.
2021-06-14 12:51:41 +02:00
Javi Martín
ad6dd54da2 Simplify rule to display support alert 2021-06-14 12:51:41 +02:00
Javi Martín
57628a78d9 Move investment votes partial to a component
This way changing it will be easier.
2021-06-14 12:51:41 +02:00
Javi Martín
d18a6f863b Merge pull request #4547 from consul/phases_image_alt
Fix accessibility issues in budgets index
2021-06-14 12:48:55 +02:00
Javi Martín
8b1e48b4ea Fix duplicate support_title I18n key
The key was declared twice and so the first one ("Support this project")
was overwritten.

We're grouping all keys related to the investment list together in order
to reduce the chances of this issue happening again (or, at least, in
this part of the code).
2021-06-12 13:20:39 +02:00
Javi Martín
edaa2d2de8 Fix missing alt attribute in phases images
An image without an alt text is invalid HTML and is confusing for screen
reader users.

This is just a quick patch which partially solves this problem. The
image doesn't necessarily need to be a decorative one, so administrators
should have the option to provide an alternative text for the images.
2021-06-12 01:23:14 +02:00
decabeza
0273156c20 Update single heading budget view
Co-Authored-By: Julian Herrero <microweb10@gmail.com>
2021-06-11 19:32:21 +02:00
decabeza
122195e33c Show a preview list of investments in the budget landing page
Note one of the tests dealing with random results is a bit flaky; since
it's a permutation selecting 7 objects out of 12, it will fail about
once every 4 million times. We think this is acceptable.

Co-Authored-By: Julian Nicolas Herrero <microweb10@gmail.com>
2021-06-11 19:32:21 +02:00
Julian Herrero
17b4fb58c9 Add type to budget index table
Co-Authored-By: decabeza <alberto@decabeza.es>
2021-06-11 00:51:52 +02:00
Julian Herrero
51bca66533 Adapt help component to multiple and single budget mode 2021-06-11 00:34:00 +02:00
Julian Herrero
4c6de86a72 Adapt phases step to single and multiple budget mode
Co-Authored-By: decabeza <alberto@decabeza.es>
2021-06-11 00:34:00 +02:00
Julian Herrero
e3510fc29d Adapt heading step to single and multiple budget mode
Co-Authored-By: decabeza <alberto@decabeza.es>
2021-06-11 00:34:00 +02:00
Julian Herrero
9fcae141a6 Adapt group step to single and multiple budget mode
Co-Authored-By: decabeza <alberto@decabeza.es>
2021-06-11 00:33:59 +02:00
Julian Herrero
0b81f7f621 Allow creating a budget in single or multiple mode
Co-Authored-By: decabeza <alberto@decabeza.es>
2021-06-11 00:28:56 +02:00
taitus
b1b2cfa8b1 Add new time format :short_datetime
Improve DurationComponent  for render time without seconds.
I believe that adding the seconds in this component is not necessary.
2021-06-10 17:14:01 +02:00
Julian Herrero
db9ac79e05 Add main link to each phase of the budget
Co-authored-by: decabeza <alberto@decabeza.es>
2021-06-09 21:51:39 +02:00
Julian Herrero
43ad69bbaf Allow attaching an image to budget phases
Co-authored-by: decabeza <alberto@decabeza.es>
2021-06-09 21:47:58 +02:00
Julian Herrero
dcad390933 Ability to attach an image to budgets
Co-authored-by: decabeza <alberto@decabeza.es>
2021-06-09 21:33:08 +02:00
decabeza
d78f2e03ad Render link to budget header
- Allow to define a link (text and url) on budget form for render on the budget
header.
- Improve styles

Co-authored-by: Senén Rodero Rodríguez <senenrodero@gmail.com>
2021-06-09 19:16:55 +02:00
decabeza
090f1bcddb Not showing the phase description in the budget header
This description of the current phase is already being displayed on the same page
in the section "Participatory budgets phases"
2021-06-09 16:03:33 +02:00
decabeza
4adb7236dc Add title to budget header 2021-06-09 16:03:33 +02:00
Javi Martín
bdd5361f6a Allow editing the budget in budget creation wizard
When users created a budget and made a typo, they could use the link to
go back to edit a budget. However, after doing so, they were out of the
budget creation process.

So we're now letting users go back to edit the budget, fix any mistakes
they might have made, and then continue to groups.
2021-06-08 18:45:55 +02:00
decabeza
f8008a4a6f Add link to remove budget on budget admin index 2021-06-08 18:45:55 +02:00
Javi Martín
f110e65f80 Allow enabling/disabling phases in budgets wizard
So now there's no need to edit each phase individually to enable/disable
them.

We aren't doing the same thing in the form to edit a budget because we
aren't sure about possible usability issues. On one hand, in some tables
we automatically update records when we mark a checkbox, so users might
expect that. On the other hand, having a checkbox in the middle of a
form which updates the database automatically is counter-intuitive,
particularly when right below that table there are other checkboxes
which don't update the database until the form is submitted.

So, either way, chances are users would think they've updated the phases
(or kept them intact) while the opposite would be true.

In the form within the wizard to create a budget that problem isn't that
important because there aren't any other fields in the form and it's
pretty intuitive that what users do will have no effect until they press
the "Finish" button.

Co-Authored-By: Julian Nicolas Herrero <microweb10@gmail.com>
2021-06-08 18:45:55 +02:00
Julian Herrero
eb77d09425 Add phases step to budget creation 2021-06-08 18:45:55 +02:00
Javi Martín
9421f1673a Extract budget phases form to a component
This way it'll be easier to use it in the budgets wizard section
as well.
2021-06-08 18:45:55 +02:00
Julian Herrero
f8d6ba12d7 Add headings step to budget creation
Co-Authored-By: decabeza <alberto@decabeza.es>
2021-06-08 18:45:53 +02:00
Javi Martín
b99ce2af45 Remove duplication in timeline component
This way adding new steps will be easier.
2021-06-08 18:45:14 +02:00
Alberto
b304c640e1 Add groups step to budget creation
Note we're keeping this section's original design (which had one button
to add a new group which after being pressed was replaced by a button to
cancel) but we aren't using Foundation's `data-toggle` because there
were a couple of usability and accessibility issues.

First, using `data-toggle` multiple times and applying it to multiple
elements led to the "cancel" button not being available after submitting
a form with errors. Fixing it made the code more complicated.

Second, the "Add new group" button always had the `aria-expanded`
attribute set to "true", so my screen reader was announcing the button
as expanded even when it wasn't. I didn't manage to fix it using
`data-toggle`.

Finally, after pressing either the "Add new group" and "Cancel" buttons,
the keyboard focus was lost since the elements disappeared.

So we're simplifying the HTML and adding some custom JavaScript to be
able to handle the focus and manually setting the `aria-expanded`
attribute.

Co-Authored-By: Javi Martín <javim@elretirao.net>
Co-Authored-By: Julian Herrero <microweb10@gmail.com>
2021-06-08 18:45:13 +02:00
Julian Herrero
b16fe80ba5 Extract groups and headings tables to components 2021-06-08 14:25:44 +02:00
Julian Herrero
2115eb5274 Allow creating budgets step by step
We introduce the first step (creating the budget).

Co-Authored-By: decabeza <alberto@decabeza.es>
2021-06-08 14:25:44 +02:00
Javi Martín
82e8de094b Extract budget form to a component
This way it will be easier to change it and reuse it.
2021-06-08 14:25:43 +02:00
Javi Martín
93a7d28a82 Fix crash with budgets with no published phases
In this case, the duration of the budget cannot be determined, and the
application was crashing when trying to do so.

Now we're just returning `nil` as duration.
2021-06-02 18:00:17 +02:00
Javi Martín
69ade5b131 Fix crash with budgets with disabled current phase
There's an edge case where the current phase of the budget was disabled.
In this case, the application was crashing.

I'm not sure what we should do regarding this case. Is it OK to allow
disabling the current phase? Is it OK to allow selecting a disabled
phase as the current phase?

Since I'm not sure about it, for now I'm leaving it the same way it was.

Co-authored-by: Julian Herrero <microweb10@gmail.com>
2021-06-02 18:00:17 +02:00
Javi Martín
5f92252054 Fix exception using locales with no help images
In commit 905ac48bb we activated exceptions when assets were not found,
in order to detect places where we were trying to load non-existent
images.

We got an exception for that reason: we were loading images based on the
current locale, but for some locales there was no images.

We're now using fallbacks and loading another image when the original
one isn't available.

Note we're copying the English images to images with a generic name for
the case where there's no fallback with an image. We're copying the
files instead of using symbolic links to make sure they can be
overwritten independently in other CONSUL installations.

Also note we're updating the HTML so the section gets the ID instead of
the header. That way the system test is simple.
2021-05-29 15:05:29 +02:00
Javi Martín
7024f1edf5 Extract class to find assets
So its methods can be used in other places.
2021-05-29 14:34:46 +02:00
Javi Martín
08318171f0 Extract component to render help section 2021-05-29 14:34:46 +02:00
Javi Martín
fc1a0f33e7 Add draft info on unpublished budgets
Before commit 28caabecd, it was clear which budgets were in draft mode
because their phase was "drafting".

Now the phase isn't "drafting" anymore, so we have to make it clear
somehow that the budget is a draft.

I'm using styles similar to the ones we added in commit 2f636eaf7 for
completed budgets but at the same time making them slightly different so
it's easy to differenciate completed and drafting budgets.
2021-04-21 17:12:12 +02:00
Javi Martín
c50e04e9cb Extact method to get the budget status HTML class 2021-04-21 17:12:12 +02:00
Javi Martín
9f671b9617 Extract method to get budget status text 2021-04-21 17:12:12 +02:00
Javi Martín
cf4e6d2c64 Improve budget phase HTML ID
Some browsers might not recognize an ID as valid when it starts with a
number.
2021-04-07 14:32:49 +02:00
Javi Martín
6ea9383743 Allow toggling elements with the keyboard
Using `<a>` tags with no `href` means these elements cannot be activated
by keyboard users, so we're replacing them with buttons.

In the future we probably want to add more consistency so all toggle
buttons use the same code. We might also add styles depending on the
`aria-expanded` property.
2021-03-31 13:38:38 +02:00
Alberto
048ca61207 Improve styles for budgets voting phase 2021-03-24 15:50:25 +01:00
Alberto
896fee6e99 Improve icon to remove investment from ballot
Note we're absolutely positioning the link instead of the icon; that way
keyboard users will be able to focus on the icon. Until now, users would
focus on an empty link.

For the same reason, we couldn't use `click_link` with Capybara, since
it would fail to click an empty link. Now we can.

Co-authored-by: Javi Martín <javim@elretirao.net>
2021-03-24 15:48:24 +01:00
Javi Martín
fb8c476fb2 Extract component for ballot investment
Using component inheritance we can remove duplication and share the same
view.
2021-03-24 15:48:24 +01:00
decabeza
f3c7b59658 Fix heading tag hierarchy on budgets index 2021-03-18 15:03:22 +01:00
Julian Herrero
7e3dd47d5a Unify budget landing pages
There was a big difference between the current budget and a specific
budget landing page. This didn't really make too much sense. Also, it
was not possible to know how a draft participatory budget will look
before it was published.

By unifying those two views now they will look quite similar and it
will be possible for administrators to preview any draft budget and to
know how the budget will look like before actually publishing it.
2021-03-18 15:03:21 +01:00
Julian Herrero
f936c992e2 Extract footer for budgets to a component 2021-03-18 14:06:46 +01:00
decabeza
bbb4e04c7c Extract budget investment's info to a component 2021-03-18 13:59:09 +01:00