Commit Graph

17301 Commits

Author SHA1 Message Date
Senén Rodero Rodríguez
ba6b2f4940 Refactor specs
Improve readability, simplify, reorganize and cover missing cases.
2019-10-21 14:30:03 +02:00
Senén Rodero Rodríguez
a733bc7b2e Avoid calls to remote census api (legacy) when endpoint is not defined
Also keep the same behavior for test and development environments.
2019-10-21 14:30:03 +02:00
Javier Martín
2f9995f566 Merge pull request #3766 from consul/relative_urls
Use relative URLs where possible
2019-10-20 18:33:13 +02:00
Javier Martín
143c9c5e27 Merge pull request #3783 from consul/budget-heading-groups-timestamps
Add timestamps to budget headings and groups
2019-10-20 18:22:59 +02:00
Javier Martín
c1d6cd4e4b Merge pull request #2151 from consul/feature-flag-api
Feature flag api
2019-10-20 18:21:28 +02:00
Javier Martín
a9110d23e0 Merge pull request #2214 from consul/related-content-tests
Add tests for related content score
2019-10-20 18:15:45 +02:00
Shaun Schwartz
04b1bc9fca Add timestamps to Budget::Heading & Budget::Group 2019-10-20 17:36:36 +02:00
Javi Martín
27468b0b7b Use relative URLs where possible
In general, we always use relative URLs (using `_path`), but sometimes
we were accidentally using absolute URLs (using `_url`). It's been
reported i might cause some isuses if accepting both HTTP and HTTPS
connections, although we've never seen the case.

In any case, this change makes the code more consistent and makes the
generated HTML cleaner.
2019-10-20 17:26:14 +02:00
Javi Martín
11e52dbe98 Remove kaminari_path
The main reason to use it was the `rel` attribute for previous/next
pages not being indexed correctly by certain search engines when using a
relative URL. However, AFAIK that only applied to `<link>` tags, not to
`<a>` tags, and only if a `<base>` tag was defined.

In any case, it looks like the same search engines don't use the `rel`
attribute for previous/next to index pages anymore.
2019-10-20 17:26:14 +02:00
Javi Martín
15c49e0c10 Remove obsolete URL helpers
We now use `polymorphic_hierarchy_path` instead.
2019-10-20 17:23:59 +02:00
María Checa
c8966b99b0 Added relation score specs 2019-10-20 15:03:05 +02:00
Juanjo Bazán
0063e7b4d8 Add feature flag for the GraphQL API 2019-10-20 14:52:07 +02:00
Javier Martín
11f1beed62 Merge pull request #3776 from consul/valuator_edit_investment
Don't let valuators update investments
2019-10-18 21:32:55 +02:00
Javi Martín
f5b60e03e1 Don't let valuators update investments
There were some confusing definitions regarding the valuation of budget
investments.

In the controller, `CommentableActions` was included, which includes the
update action.

In the abilities, a valuator was given permission to update an
investment.

However, the action to update an investment didn't work because there is
no route defined to do so.

The ability was defined so valuators could access the "edit" action,
which will not call the "update" action but the "valuate" action. Since
internally "edit" and "update" use the same permission, it worked.

But then we added permission for regular users to update budget
investments, and these permissions were allowing valuators to update
another user's investment.

After this change, everything seems to work properly since we check
authorization in the controller itself instead of using abilities.
2019-10-18 16:24:27 +02:00
denialtorres
bb627a7117 Edit Budget Investment only in accepting phase (#3716)
This way users who made a typo can fix it before the investment is reviewed.
2019-10-18 13:59:14 +02:00
Javier Martín
970c3238fb Merge pull request #3627 from consul/upgrade_to_ruby2.4
Upgrade ruby to 2.4.6
2019-10-13 01:00:00 +02:00
Javi Martín
a8331c956f Upgrade to Ruby 2.4.6
Many gems have dropped support for Ruby 2.3, including Rails 6.

We've already tested the upgrade on production environments; no issues
so far.
2019-10-13 00:31:13 +02:00
Javi Martín
41d252bf10 Simplify syntax to execute RMV
We use `:rvm` just as we use `:rake` in other places.
2019-10-13 00:31:13 +02:00
Javi Martín
48dd4be851 Use .ruby-version to detect our Ruby version
Travis and Rubocop and rmv1-capistrano3 automatically detect the version
based on the `.ruby-version` file.
2019-10-13 00:31:13 +02:00
Javi Martín
19f8e3ac8e Enable tasks to install Ruby and bundler
We're going to upgrade our ruby version, and we need these tasks.

Note we now get a warning caused by `rvm1:install:ruby` invoking
`deploy:updating`. It doesn't seem to be an issue because we don't add
any hooks to `deploy:updating`, and neither do the rest of the gems we
use.
2019-10-13 00:28:33 +02:00
Javier Martín
b30aaed13e Merge pull request #3694 from consul/puma
Use puma instead of unicorn
2019-10-12 17:47:00 +02:00
Javi Martín
f26f8b3c3e Add support for legacy unicorn installations
Old CONSUL nginx configurations will probably have a reference to a
unicorn socket. Making that file a symbolic link to a puma socket makes
it possible for the application to keep working without updating the
nginx configuration file.
2019-10-12 17:01:15 +02:00
Javi Martín
3b79a1a3db Add compatibility between puma and RMV1
Puma was adding commands to `rvm_map_bins`, which meant RMV1 wasn't
using the default value of `rvm1_map_bins`.

Changing the order we use to require `rmv1/capistrano3` and
`capistrano/puma` did not fix the issue.
2019-10-12 16:51:28 +02:00
Javi Martín
b36e659f4e Use puma instead of unicorn
Puma is the server we use in the development environment, so this way we
don't need to maintain two servers. Furthermore, puma seems to offer a
few advantages over unicorn (like multithreading) and no disadvantages.
2019-10-12 16:50:49 +02:00
Javi Martín
94a7e13dce Update capistrano's restart unicorn task
Our current unicorn task wasn't working in some cases. We also had a
version in the `capistrano` branch, which was the one we recommended.
However, that version assumed RVM, a certain ruby version and a certain
deploy folder were used. This version uses `bundle exec` and variables
like `release_path`, so it does not depend on any specific
configuration.

Even if we're replacing unicorn with puma, I wanted to make this change
in case we need it as a reference in the future.
2019-10-10 21:01:42 +02:00
Javier Martín
dd8bc5cea7 Merge pull request #3760 from consul/fix_milestone_published
Fix milestone publication date comparison
2019-10-10 20:58:22 +02:00
Javier Martín
dd6e603d9e Merge pull request #3754 from consul/flaky_results_spec
Fix flaky officing results spec
2019-10-10 20:56:51 +02:00
Javier Martín
3f7c50f081 Merge pull request #3757 from consul/fix_answers_given_order
Fix duplicate given order creating answers
2019-10-10 20:56:27 +02:00
Javi Martín
6a6a8bf365 Fix milestone publication date comparison
We're storing the publication date as datetime in the database, and we
were comparing it to a date, meaning today's milestones were not being
found.
2019-10-10 02:35:20 +02:00
Javi Martín
0f2a96979e Don't use UTC as application zone in time zone tests
It was a bit confusing, since Travis uses UTC as the system zone, while
most application zones are not UTC.
2019-10-10 02:35:20 +02:00
Javi Martín
211398bd9d Use a more expressive name for time zone tests
"With different time zone" didn't clarify which time zone was different
nor what it was different to.
2019-10-10 02:34:51 +02:00
Javi Martín
56e62a41b6 Fix duplicate given order creating answers
It's possible to have a given order greater than the number of answers;
we don't have any validation rules for that. So the check for the number
of answers isn't enough.

Checking the maximum given order in the answers is safer. Another option
would be to reorder the answers every time we add a new one, but I'm not
sure whether that's the expected behaviour.

Note even after this change the action is not thread-safe, as it is
possible to create two questions with the same given order with two
simultaneous requests.
2019-10-10 00:36:57 +02:00
Javier Martín
706a16d1fa Merge pull request #3756 from consul/fix_duplicate_usernames_in_dev_seeds
Fix duplicate usernames in dev seeds task
2019-10-10 00:24:00 +02:00
Javier Martín
575b4bf978 Merge pull request #3755 from consul/fix_typos
Fix typos in translatable spec
2019-10-09 23:35:23 +02:00
Javi Martín
18d386c1ad Fix duplicate usernames in dev seeds task
Sometimes Faker::Name.name generated the same name for two different
users, causing the task to crash in development or a test to fail while
testing.
2019-10-09 22:59:15 +02:00
Javi Martín
2f569002cf Fix typos in translatable spec
We want to create a new investment for a budget, and not for another
investment.
2019-10-09 22:22:44 +02:00
Javi Martín
ef2b2317e5 Fix flaky officing results spec
The page could have "7777" as a content for the poll's name, since that
name is generated using a random hexadecimal number.

Restricting the search to the area of the page where the "7777" used to
be solves the problem.
2019-10-09 21:57:20 +02:00
Javier Martín
dadc3d174c Merge pull request #3748 from consul/locales_html
Sanitize translations instead of using `_html`
2019-10-09 20:44:01 +02:00
Javi Martín
9a299aeeb5 Fix checkbox label containing links
The link tags were being stripped out by `content_tag`.
2019-10-09 19:46:47 +02:00
Javi Martín
6b1864fbcd Sanitize translations instead of using _html
Using the `_html` suffix in an i18n key is the same as using `html_safe`
on it, which means that translation could potentially be used for XSS
attacks.
2019-10-09 19:46:47 +02:00
Javi Martín
b66859945e Remove _html suffix from already sanitized texts
Using the `_html` suffix automatically marks texts as HTML safe, so
doing so on sanitized texts is redundant.

Note flash texts are not sanitized the moment they are generated, but
are sanitized when displayed in the view.
2019-10-09 19:46:47 +02:00
Javi Martín
7782ed73b6 Remove unneeded _html suffix
Although this translation has HTML, we aren't marking them as HTML safe
since we're using `I18n.t` instead of Rails' helper `t` method. So using
the `_html` suffix is counterintuitive in this case.
2019-10-09 19:46:47 +02:00
Javier Martín
acce50ada2 Merge pull request #3690 from consul/dependabot/bundler/devise-4.7.1
[Security] Bump devise from 4.6.2 to 4.7.1
2019-10-09 19:37:01 +02:00
dependabot-preview[bot]
22e91271e5 [Security] Bump devise from 4.6.2 to 4.7.1
Bumps [devise](https://github.com/plataformatec/devise) from 4.6.2 to 4.7.1. **This update includes a security fix.**
- [Release notes](https://github.com/plataformatec/devise/releases)
- [Changelog](https://github.com/plataformatec/devise/blob/master/CHANGELOG.md)
- [Commits](https://github.com/plataformatec/devise/compare/v4.6.2...v4.7.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-09 16:43:34 +00:00
Javier Martín
39dd4c628f Merge pull request #3751 from consul/prepare_1.1_tasks
Remove tasks executed in version 1.0.0
2019-10-08 21:21:36 +02:00
Javi Martín
0a2efb1d80 Use application logger in set_original_heading_id
The pull request adding the original heading was done before we started
using `ApplicationLogger` in rake tasks.
2019-10-08 20:39:26 +02:00
Javi Martín
4fad6f16f6 Make set_original_heading_id task idempotent
This way there'll be no side effects if accidentally executed on data
already having the `original_heading_id`.
2019-10-08 20:30:02 +02:00
Javi Martín
acbad38749 Update execute_release_tasks task
It now contains tasks we've added after version 1.0.0
2019-10-08 20:20:41 +02:00
Javi Martín
7bb39c8e4e Execute add_new_settings on every release
Although it's already executed when deploying with capistrano, heroku
installations don't use capistrano for deployment, so we're also
executing it when upgrading.

This isn't a one-time task, so it makes sense to have it executed on
every release.
2019-10-08 20:19:48 +02:00
Javi Martín
8fb44961e9 Remove tasks to rename/remove deprecated settings
I was thinking of leaving these tasks empty, so in the future we could
use them again if we rename or remove more settings. But since we
haven't renamed nor removed any settings for more than seven months, and
we've only used these tasks once, I'm simply removing the tasks. It's
easy to add them back if we ever need them.
2019-10-08 20:19:48 +02:00