Commit Graph

1277 Commits

Author SHA1 Message Date
Javi Martín
50deb6b353 Merge pull request #4434 from jakrzus/default_pages
rake db:seed generates default custom pages for all languages
2021-04-08 22:51:22 +02:00
Jakub Krzus
7e669e8e39 refactor custom pages seed files 2021-04-08 19:15:06 +01:00
Jakub Krzus
299a05345d add conditional to accesibility.rb generator preventing exceptions when row in translation files is nul 2021-04-08 18:45:53 +01:00
Jakub Krzus
ca047b9a52 welcome_not_verified translations in seed are being generated 2021-03-22 17:52:39 +00:00
Jakub Krzus
a50b14a354 welcome_level_two_verified translations in seed are being generated 2021-03-22 17:52:22 +00:00
Jakub Krzus
465725aa90 welcome_level_three_verified translations in seed are being generated 2021-03-22 17:50:05 +00:00
Jakub Krzus
44bec30bf8 privacy translations in seed are being generated 2021-03-22 17:50:05 +00:00
Jakub Krzus
c690635b6c conditions translations in seed are being generated 2021-03-22 17:50:05 +00:00
Jakub Krzus
0c0a97a906 accessibility translations in seed are being generated 2021-03-22 17:50:05 +00:00
Jakub Krzus
2781fbac96 faq translations in seed are being generated 2021-03-22 17:49:36 +00:00
taitus
485d3f8dea Allow display the budgets created in dev seeds
Since this PR (Refactor participatory budgets in draft mode #4369) budgets
have a new field "published" to manage whether they  are displayed or not. We
update this field in dev_seeds to be able to display budgets on the public page
budgets.
2021-03-17 08:51:58 +01:00
Julian Herrero
909071c48b Allow editing the name of budget phases
Co-authored-by: decabeza <alberto@decabeza.es>
2021-03-11 19:37:58 +01:00
Julian Herrero
28caabecdf Refactor participatory budgets in draft mode
Previously the draft mode was a phase of the PB, but that had some
limitations.

Now the phase drafting disappears and therefore the PB can have the
status published or not published (in draft mode).

That will give more flexibility in order to navigate through the
different phases and see how it looks for administrators before
publishing the PB and everybody can see.

By default, the PB is always created in draft mode, so it gives you
the flexibility to adjust and modify anything before publishing it.
2021-02-23 17:05:24 +01:00
taitus
0a3de68206 Add relation between Goal and LocalTarget
This is similar to what we do with investments, which belong to a heading
but also belong to a budget. In our case, the reason is we've been asked
to add local targets which belong to a goal but are not related to any
existing target.
Even though we're not implementing that case right now, we're adding the
relation so we don't have to add data migrations in the future.
2021-01-26 19:10:12 +01:00
Javi Martín
5a42d65d5f Make it possible to add banners to the SDG section 2021-01-20 17:22:08 +01:00
Javi Martín
885a9ad765 Simplify creating web sections in seeds 2021-01-19 15:35:18 +01:00
Javi Martín
68b32f2a84 Remove duplication creating web sections in seeds 2021-01-19 15:35:18 +01:00
Senén Rodero Rodríguez
0368aa459f Add SDG::Review model
and its relation with relatables

Note about sdg_review factory: Cannot use the constantize method on
the relatable_type as long as the relatable classes will be loaded and
this will throw an exception because the database is not available at
factiry definition time.
2021-01-18 13:17:37 +01:00
Javi Martín
7aee4f6241 Add SDG phases cards management
These cards will be displayed in the SDG homepage.

Note there seems to be a strange behavior in cancancan. If we define
these rules:

can :manage, Widget::Card, page_type: "SDG::Phase"
can :manage, Widget::Card

The expected behavior is the first rule will always be ignored because
the second one overwrites it. However, when creating a new card with
`load_and_authorize_resource` will automatically add `page_type:
"SDG::Phase"`.

Similarly, if we do something like:

can :manage, Widget::Card, id: 3
can :manage, Widget::Card

Then the new card will have `3` as an ID.

Maybe upgrading cancancan solves the issue; we haven't tried it. For now
we're defining a different rule when creating widget cards.
2021-01-14 17:40:02 +01:00
Javi Martín
13f95e9419 Add SDG phase model
The purpose of this model will be to have different sections in the SDG
index.
2021-01-14 17:38:01 +01:00
Javi Martín
ee29ca43a5 Make widget cards polymorphic
So now we'll be able to add them to other sections.

We're also adding a `dependent: :destroy` relation to models having
cards since it doesn't make sense to have cards around when their page
has been destroyed.
2021-01-14 17:37:58 +01:00
Javi Martín
910acff624 Add empty SDG goal show page
Note we're using the code instead of the ID to get the goal in the URL.
IMHO this is what most people would expect; visiting a URL with a "7"
takes you to SDG number 7, and not to the one with "7" as a database ID.

In order to avoid tests (either automated tests or manual tests) passing
by coincidence due to the goal ID and the goal code being the same, I'm
shuffling the codes before entering them in the databse.

I've tried using `resolve` in the routes so the code is automatically
taken into account, but it doesn't work since `resolve` cannot be used
inside a namespace, and here we're within the `sdg` namespace.
2020-12-23 13:18:17 +01:00
Javi Martín
948a8b2904 Add search method to legislation processes
This way we'll be able to search processes in the SDG Management
section.
2020-12-21 18:04:48 +01:00
Javi Martín
852014e478 Add search method to polls
So far the method does not take questions nor answers into account.

This way we'll be able to search polls in the SDG Management section.
2020-12-21 18:04:48 +01:00
taitus
b456606dac Add sdg_manager to dev_seeds 2020-12-16 13:16:48 +01:00
taitus
cd7185f317 Create sdg manager 2020-12-16 11:43:15 +01:00
Senén Rodero Rodríguez
80cac0a7d2 Add SDG relations to development seeds 2020-12-11 16:10:37 +01:00
Senén Rodero Rodríguez
4a8db5e91a Add SDG local targets to development seeds 2020-12-11 16:10:37 +01:00
Senén Rodero Rodríguez
2ad66409e2 Add SDG LocalTarget model 2020-12-08 11:30:46 +01:00
Javi Martín
1740e0ba66 Add SDG::Relation model 2020-12-04 18:27:49 +01:00
Senén Rodero Rodríguez
00e91c40b9 Add SDG targets to seeds
Co-authored-by: Javi Martín <javim@elretirao.net>
2020-12-04 15:15:32 +01:00
Senén Rodero Rodríguez
c39c7213c7 Add SDG target model
and its relation with the SDG goal model.

Add comparable module be able to sort collections of targets
by code attribute.

Co-Authored-By: Javi Martín <35156+javierm@users.noreply.github.com>
2020-12-04 15:15:32 +01:00
taitus
64a8ceaa9b Enable sdg feature settings by default on dev_seeds 2020-12-03 18:26:00 +01:00
taitus
bf4c2680c4 Enable sdg settings by default on dev_seeds 2020-12-03 18:00:10 +01:00
Senén Rodero Rodríguez
cbe84450ac Add Goals seeds and translations
Extracted from the official United Nations Sustainable Development
Goals website [1].

[1] https://www.un.org/sustainabledevelopment/sustainable-development-goals/
2020-12-02 12:38:03 +01:00
Javi Martín
428644cd3e Add SDG goal model
Since data for this model (title and description) is not generated in
CONSUL but by the United Nations, we aren't storing it in the database
but in our YAML translation files.

The reasoning is as follows. Suppose that, a few months after CONSUL
gets SDG support, a new language is added to CONSUL.

With YAML files, getting the texts in the new language would mean
updating CONSUL to include the new language.

But if we store these texts in the database, it means we have to update
the databases of all existing CONSUL installations, either each
installation by themselves (duplicating efforts) or running a rake task
(which we would have to write each time).

So we believe using translations works better in this case.

We're still storing records in the database with the code, so they can
be easily referenced via `has_many` or `has_many :through` associations.
2020-12-02 12:13:02 +01:00
Javi Martín
66759d2dc0 Apply StringConcatenation rule in some places
This rule was added in Rubocop 0.89.0. However, there are some false
positives when we don't use interpolation but simply concatenate in
order to avoid long lines. Even if there weren't false positives, there
are places where we concatenate to emphasize the point that we're adding
a certain character to a text.

We might reconsider this rule in the future, since we generally prefer
interpolation over concatenation.
2020-10-23 12:01:39 +02:00
Javi Martín
efd8f47596 Add and apply ArrayCoercion rubocop rule
This rule was added in Rubocop 0.88.0.
2020-10-23 12:01:39 +02:00
Javi Martín
2d9f679105 Use Rails 5.2 schema format 2020-10-15 14:46:20 +02:00
taitus
f90c09bea7 Remove deprecated attributes from Proposals
Some fields from Proposals are deprecated and we no longer need them.
2020-09-08 12:13:21 +02:00
taitus
086b0366a2 Remove deprecated attributes from Debates
Some fields from Debates are deprecated and we no longer need them.
2020-09-08 12:13:13 +02:00
taitus
5eed36ca8e Remove deprecated attribute from Comments
A field from Comment is deprecated and we no longer need it.
2020-09-08 12:13:01 +02:00
taitus
e39b72d945 Remove deprecated attributes from Investments
Some fields from Investment are deprecated and we no longer need them.
2020-09-08 12:12:43 +02:00
taitus
819e2c82ce Add migration to change columns type of attachments
As suggested in the paperclip update discussed in the previous commit,
we force the type of these fields to be bigint.
2020-09-08 11:02:13 +02:00
taitus
574a5d0067 Update old migrations to maintain consistency
After merge "Bump paperclip from 5.2.1 to 6.1.0 #3905" as indicated in
the release_notes columns type for attachments are changed from integer
to bigint.
For this reason we edit old migrations so that they continue to
generate integer as before.
2020-09-08 11:00:19 +02:00
Ziyan Junaideen
1e3e8c1304 Add approval voting to budgets
Co-Authored-By: Javi Martín <javim@elretirao.net>
2020-08-06 12:38:18 +02:00
Javi Martín
17f442c723 Extract method to get a few random records
In Ruby 5.2, we get a warning when using the "RANDOM()" function:

DEPRECATION WARNING: Dangerous query method (method whose arguments are
used as raw SQL) called with non-attribute argument(s): "RANDOM()".
Non-attribute arguments will be disallowed in Rails 6.0. This method
should not be called with user-provided values, such as request
parameters or model attributes. Known-safe values can be passed by
wrapping them in Arel.sql().

This warning doesn't make much sense, though, since RANDOM() is a common
function which is not dangerous at all. However, since the warning is
annoying, we'll probably have to find a way to deal with it.

So I'm extracting all our RANDOM() usages into a method. This way we'll
only have to change one method to avoid this warning.

I've chosen `sample` because it's similar to Ruby's Array#sample, and
because `order_by_random` would be confusing if we consider we already
have a method called `sort_by_random`.
2020-07-14 12:32:14 +02:00
Javi Martín
1b34c061bb Use where.not instead of where(NOT IN)
This way we simplify the code a bit and reduce our usage of raw SQL.
2020-07-14 12:32:12 +02:00
Javi Martín
d7d421b88f Rename columns with a slash in their names
These columns were causing Rails 5.2 to throw a warning when ordering by
them, as if they weren't valid column names:

DEPRECATION WARNING: Dangerous query method (method whose arguments are
used as raw SQL) called with non-attribute argument(s):
:"budget/investments_count". Non-attribute arguments will be disallowed
in Rails 6.0. This method should not be called with user-provided
values, such as request parameters or model attributes. Known-safe
values can be passed by wrapping them in Arel.sql().

This change also makes their names consistent with the rest of our
tables and columns.
2020-07-08 18:34:58 +02:00
Javi Martín
688aa88366 Make migrations independent of globalize
There are two reasons for this change:

1. Past migrations depending on models will not work once a model is
removed, and they won't work if we remove Globalize either
2. We were getting a conflict in the schema file; when run under Rails
5.0, these migrations were generating a different schema than in Rails
5.1, due to the way the `create_translation_table!` method handles the
`id: :serial` attribute.
2020-04-24 15:43:54 +02:00