Commit Graph

5729 Commits

Author SHA1 Message Date
Javi Martín
ca4a0bd4b2 Use "login details" instead of "credentials"
As suggested by Pomerange, "credentials" also refers to academic
qualifications, and so might be confusing.
2022-06-01 14:27:33 +02:00
Javi Martín
541c434e7d Fix show/hide recommendations text
As suggested by Pomerange; "proposals" sounded strange as an adjective.
2022-06-01 14:27:33 +02:00
Javi Martín
647a7dc435 Fix text to subscribe to a newsletter
In English, circumstancial complements usually go after the direct
complement.
2022-06-01 14:27:33 +02:00
Javi Martín
d776923ffe Use "withdraw" instead of "retire"
We used "retire" because we translated it literally from the Spanish
verb "retirar" which can mean both "retire" and "withdraw".

Note we're still using "retire" in database fields and method names;
changing that might make it harder to upgrade from a previous version of
CONSUL.
2022-06-01 14:27:33 +02:00
Javi Martín
dac6c714cf Use "help with" instead of "help about"
As suggested by Pomerange; the "help about" construction indeed sounds a
bit strange.
2022-06-01 14:27:33 +02:00
Finn Heemeyer
c984e666ff Add new GraphQL types, schema (with fields) & base mutation
The current consul GraphQL API has two problems.

1) It uses some unnecessary complicated magic to automatically create
   the GraphQL types and querys using an `api.yml` file. This approach
   is over-engineered, complex and has no benefits. It's just harder to
   understand the code for people which are not familiar with the
   project (like me, lol).

2) It uses a deprecated DSL [1] that is soon going to be removed from
   `graphql-ruby` completely. We are already seeing deprecation warning
   because of this (see References).

There was one problem. I wanted to create the API so that it is fully
backwards compatible with the old one, BUT the old one uses field names
which are directly derived from the ruby code, which results in
snake_case field names - not the GraphQL way. When I'm using the
graphql-ruby Class-based syntax, it automatically creates the fields in
camelCase, which breaks backwards-compatibility.

So I've added deprecated snake_case field names to keep it
backwards-compatible.

[1] https://graphql-ruby.org/schema/class_based_api.html
2022-06-01 11:41:09 +02:00
Sebastia
5c6ab81c38 Merge pull request #4820 from consul/legislation_processes_alert
Remove unnecessary alert on legislation processes
2022-06-01 11:03:02 +02:00
Sebastia
a1186ffe56 Merge pull request #4827 from consul/machine_learning_settings
Include machine learning settings type
2022-06-01 11:02:24 +02:00
Senén Rodero
99762c57b6 Merge pull request #4821 from consul/census_terms_page
Add census terms page by default
2022-06-01 10:45:07 +02:00
Iraline
0195eac3fa change the code to use what Devise does by default and update the tests 2022-05-09 18:14:12 -03:00
decabeza
682781cd3d Include machine learning settings type
On the Configuration settings page three settings appeared without
description:

* Comments Summary: No description.
* Related Content: No description.
* Tags: No description.

These settings are related with the AI / Machine learning feature. They
only should appear on AI / Machine learning setting page when the
feature is enabled.
2022-05-05 18:30:33 +02:00
Javi Martín
80bb2f2d97 Remove unneeded login in settings specs
It looks like these lines were added on a branch which didn't include
commit 3da4ee00b but were merged after that commit was merged.

In any case, since we're already using the `:admin` tag in the whole
file, these lines aren't necessary.
2022-05-05 18:11:44 +02:00
Senén Rodero
ba5893e755 Merge pull request #4809 from consul/remove_roles
Remove roles when block or delete users
2022-05-05 12:20:26 +02:00
Senén Rodero Rodríguez
c6190d0199 Remove roles when block or delete users
After a user assigned as a budget admin deletes their account or gets blocked by
a moderator, the application throws an exception while loading the admin
investment index page.

As an erased user is not really deleted and neither its associated roles, the
application was failing when trying to sort and administration without a
username. In this case, the application was throwing an `ArgumentError:
comparison of NilClass with String failed` exception.

As a blocked user is not deleted or its roles, the application failed when trying
to access the user name through the delegation in the Administrator. In this
case, the application was throwing a `NoMethodError: undefined method `name' for
nil:NilClass` exception.
2022-05-04 16:37:35 +02:00
decabeza
f6da129857 Add census terms page by default 2022-05-04 16:22:46 +02:00
decabeza
00f0c4410d Remove unnecessary alert on legislation processes 2022-05-04 12:51:21 +02:00
Javi Martín
bfe6c1862d Fix link and text selection in budget header
While reviewing commit 7702b551e, I forgot to test whether selecting
text in the budget header or clicking its link worked properly.

The negative index (-5) meant it was impossible to select its text or
click on its link.

The good news is the pseudoelement with a negative index (-1) is
considered a child of the .budget-header element, so having a negative
index will cause the pseudoelement to be render behind the content of
the .budget-header element but in front of the background of the
.budget-header element.

This is exactly what we want.

Originally, we didn't have a z-index in the .budget-header element,
meaning the pseudoelement was rendered behind the background of the
.budget-header element, meaning both backgrounds were visible. This was
OK when the background was a plain color, but it wasn't when the
background was an image.

To stress the fact that the budget header is only affected when we use
an image, I'm also moving the code inside the `.with-background-image`
selector, although it would be interesting to check whether it's a good
idea to add `z-index: 0` to the `full-width-background` mixin.
2022-05-03 21:00:08 +02:00
Javi Martín
01634e862d Merge pull request #4810 from consul/budgets_map
Show budgets map only if feature is enabled
2022-05-03 19:27:08 +02:00
Senén Rodero Rodríguez
d797ec3ca0 Fix crash deleting admin with assigned budgets
Add missing relation between administrator and budget_administrators, otherwise
we'd get the following exception when deleting and administrator with assigned budgets:

PG::ForeignKeyViolation:
ERROR:  update or delete on table "administrators" violates foreign key constraint "fk_rails_ee7dc33688" on table "budget_administrators"
DETAIL:  Key (id)=(3) is still referenced from table "budget_administrators".
2022-05-03 18:39:42 +02:00
decabeza
d517403234 Show budgets map only if feature is enabled 2022-05-03 12:56:12 +02:00
Javi Martín
e8b33ae25b Remove obsolete expectations in budget index test
We forgot to do so in commit 04605d5d5. Before that commit, we were
testing the links weren't displayed in the "informing" phase as opposed
to the "finished" phase. After that commit, they weren't displayed
anywhere since a <select> field was shown instead.

Since then, we've replaced the <select> field with the links generated
by the `Budgets::Investments::FiltersComponent`. We've already got tests
for these links.
2022-05-02 20:25:29 +02:00
Javi Martín
69ae2d31ee Extract component to render the budget map
We're going to make a change, and it's easier if we've already got a
component with tests so we don't have to write system tests to check
whether the map is rendered.
2022-05-02 20:25:25 +02:00
Javi Martín
c25ab8e4a6 Remove unused vote extensions methods
These methods aren't used since commit b98244afd.
2022-05-02 17:16:31 +02:00
Iraline
ac16bd9395 Merge branch 'fix_confirmation_token_2746' of https://github.com/iraline/consul into fix_confirmation_token_2746 2022-04-27 12:06:09 -03:00
Iraline
985ab4faad Tests to validate the flow of token already used 2022-04-27 12:04:16 -03:00
Sebastia
7d1c67261c Merge pull request #4228 from consul/already_confirmed_user_emails
Send informative email for already confirmed users
2022-04-20 09:54:37 +02:00
Julian Herrero
ad018c6f39 Send informative email for already confirmed users
Currently the application does not send any email to confirm the
account for already confirmed users. But we show a notice message
that may look like you will recive one:

"If your email address exists in our database, you will receive
 an email with instructions for how to confirm your email address
 in a few minutes."

In this commit we keep the original message, but send an email to
the user informing them that their account is now registered.

This way no one can know if someone else's account is confirmed and
we don't have to worry about GDPR either.

Co-Authored-By: taitus <sebastia.roig@gmail.com>
2022-04-19 17:03:02 +02:00
taitus
d0571a4a73 Improve confirmation instructions texts
The texts for the confirmation instructions referred to "reset the password".
We have updated the texts to refer to confirmation instructions.
2022-04-19 16:53:30 +02:00
Sebastia
810a516078 Merge pull request #4806 from consul/budget_phases_hint
Add and improve hint information related to phases duration
2022-04-12 15:50:20 +02:00
taitus
703e28e6cd Add information to the phase table to clarify its functionality.
Add a help text on admin budget show page and improve text from Admin::Budgets::HelpComponent in order to
clarify its functionality when we are using the wizard.
2022-04-12 15:22:29 +02:00
taitus
bdf4d6a79c Do not use the wizard component when edit phases
Currently we were using the wizard component to edit a
phase when we were no longer in the wizard.

This was a bit strange, as it took us out of the context
and showed us information such as the
CreationTimelineComponent or the HelpComponent
that is meant for when navigating the Wizard.
2022-04-12 14:41:48 +02:00
taitus
2464b517c1 Add hint information related to phase dates 2022-04-12 14:41:48 +02:00
Javi Martín
2684fc70d3 Show either investments header or results summary
We were showing the header when there were no search terms but there
were advanced search filters, unlike what we do for debates and
proposals. Besides, we were already hiding the header when there were
search terms, so it makes sense to hide it when using the advanced
search too.

We're using the `@search_terms` and `@advanced_search_terms` instance
variables in order to be consistent with what we do in the debates and
proposals sections.
2022-04-12 14:24:24 +02:00
Javi Martín
015613a140 Fix HTML injection in search results summary
In commit f374478dd, we enabled the possibility to use HTML in the
search results translations in order to add a <strong> tag to these
results. However, that meant we were also allowing HTML tags inside the
search term itself, and so it was possible to inject HTML on the page.

Stripping the HTML tags solves the issue.

Note the issue wasn't a high severity issue because tags such as
`<script>` weren't allowed since we were using the `sanitize` helper.
2022-04-12 14:23:35 +02:00
taitus
dbc51bcdcd Improve hint information related to duration phases
Specify that this field is for information purposes only and
does not automatically update phase status.

We also improve enable help text.
2022-04-12 13:23:59 +02:00
Javi Martín
8aff5e95d6 Fix term in investments advanced search results
When using the advanced search in the debates and proposals sections, we
were not displaying the search term in the search results summary.
However, we were displaying it when using the advanced search in the
investments section.

Now we're doing the same thing everywhere.
2022-04-10 13:48:27 +02:00
Javi Martín
b68aa67b1d Remove unnecessary "pending" comment
The test is already working with poll question answers (which are the
only ones using `has_many_images`) as well.
2022-04-07 15:34:10 +02:00
Javi Martín
e637bce3d8 Fix error messages for question answer images
Since we were creating a new answer in the form, we weren't getting the
errors associated to the answer the administrator was trying to create,
and so we were skipping the test.

Using the answer which contains the information about validation errors
fixes the issue and so we don't have to skip the tests.
2022-04-07 15:34:10 +02:00
Javi Martín
fb99d8cb33 Remove obsolete "pending" test
I'd say this feature is actually tested in the "proposal polls specific
validations"; the empty test was probably added by accident in commit
4b8cc85c4.
2022-04-07 15:34:10 +02:00
Javi Martín
c0f71c4c8d Complete proposal notification test
We were finishing the test with the first "visit", so it was doing
nothing (other than potentially generating concurrency issues with other
tests).
2022-04-07 15:34:10 +02:00
Javi Martín
e49c32638d Use if instead of skip to skip tests
This way the tests won't appear as "pending" when running the test
suite, and so we get rid of a lot of noise in the test results. There
doesn't seem to be a way to call `skip` without the test being marked as
"pending".

Note that in the globalizable tests we need to build a factory before
deciding whether an atribute is required or not (particularly for the
milestone factory, since milestone attributes are required depending on
the presence of other attributes). This isn't possible before we're
inside the test, so we can't add an `if:` condition to the test. So
we're adding the condition inside the test instead. A minor
inconvenience of this method is the test still runs even when the
condition is `false`.
2022-04-07 15:34:10 +02:00
Javi Martín
2927174e06 Remove unnecessary locales check in specs
We define the available locales in the test environment, so Spanish is
always available in this environment even if it isn't available in the
production environment.
2022-04-07 15:34:10 +02:00
Javi Martín
702fc84391 Remove pending reportable tests
These tests are obsolete since commit 5ed308c6f.
2022-04-07 15:34:10 +02:00
Javi Martín
c5791278b2 Implement pending card image expectations 2022-04-07 15:34:10 +02:00
Javi Martín
4a8a4eacdd Remove pending tag cloud test for debates
This feature was only enabled for proposals five years ago, and it
hasn't changed since then. The pending test only gets in the way.

Implement. Or implement not. There is no pending.
2022-04-07 15:34:10 +02:00
Javi Martín
6c322e20f4 Implement tests to disable homepage settings
They were marked as pending.

Note Capybara doesn't support finding a button by its `aria-labelledby`
attribute, so we're using the ugly `click_button "Yes"`, like we did in
commit fabe97e50.
2022-04-07 15:34:10 +02:00
Javi Martín
695d5d8765 Enable passing legislation comment test
It was disabled in commit 792b15b22 for unknown reasons.
2022-04-07 15:34:10 +02:00
Javi Martín
6ddb22c1ea Enable test checking alert to finish valuation
It looks like it was disabled because it was failing sometimes for some
reason. I haven't found the reason, though; we're changing the test a
little bit to make it easier to read. Enabling it will let us find out
whether it still fails.
2022-04-07 15:34:09 +02:00
Javi Martín
fa15ac0c3b Implement pending email digest test 2022-04-07 15:34:09 +02:00
Javi Martín
d5867db2cf Remove unnecessary condition to skip tag list test
This file only has tests related to tags; if the model doesn't have
tags, we simply wouldn't include `it_behaves_as` in their tests instead
of including it and then skipping it.
2022-04-07 15:34:09 +02:00