Commit Graph

335 Commits

Author SHA1 Message Date
Bertocq
6b41b6487b Add UserSegments#user_segment_emails helper method
Why:

Both Newsletters and Email Downloads need the same logic: To extract the
emails from all the users in the segment that have newsletter flag
active, removing all empty email values.

How:

1- UserSegments#user_segment_emails holds that repeated logic and is used
on both Newsletter & EmailDownload.

2- Rename Newsletter#list_of_recipients to list_of_recipient_emails as
it is more descriptive. There is no need to pass entire Users around,
only the emails are needed at Mailer#newsletter method.

3- Cleanup Newsletter#list_of_recipient_emails model spec scenario
2018-03-01 20:59:20 +01:00
María Checa
678ea0bef2 Added unfeasible investments with valuation not finished to UserSegments#feasible_and_undecided_investment_authors 2018-02-28 16:54:28 +01:00
Bertocq
61f015e2c2 Add administrators UserSegment
We need a user segment to have only administrators as recipients of both
newsletters and notifications
2018-02-21 23:34:20 +01:00
Bertocq
fb2c92228a Refactor UserSegment class
Simple refactor to avoid creating unnecessary variables and make it easier
to read.
2018-02-21 11:47:30 +01:00
Bertocq
bdbb32e824 Move newsletter User scope outside UserSegments
Why:

UserSegments are not only used for Newsletters or Email downloads, but
also for internal Global Notifications. We don't want to have that scope
hardcoded inside UserSegments as users that have opted-out from the
newsletter should still be recipients of global notifications.

How:

Removing the scope from the UserSegments `all_users` method that acts as
base for all the other segments. Including that `newsletter` scope only
on the places that is relevant:
* When listing recipients for a newsletter
* When downloading a listing emails that can be newsletter recipients

Also updated relevant tests
2018-02-21 11:45:38 +01:00
María Checa
6c36e17ce2 Added SEGMENTS variable to UserSegments class 2018-02-20 22:33:01 +01:00
María Checa
cb15a2e25b Added EmailsDownload controller and routes
Removed original method to return emails file from Newsletters controller and NewsletterZip class, included `rubyzip` gem that's no longer necessary.
2018-02-20 22:33:01 +01:00
María Checa
07f2419f8f Added newsletter model and UserSegments class 2018-02-13 11:39:10 +01:00
BertoCQ
38b66e8c6c Merge pull request #2295 from wairbut-m2c/aperez-mappable-objects
Improvements for Mappable objects
2018-02-02 19:26:47 +01:00
BertoCQ
05a6406189 Merge branch 'master' into remove_investments_internal_comments 2018-01-31 13:47:15 +01:00
Bertocq
dff966d9b3 Show valuation comment thread @ Valuation show/edit
Why:

Budget Investment's valuators should be able to see internal valuation
comments thread at both show and edit views.

How:

At Valuation::BudgetInvestmentsController:
* Include CommentableActions to gain access to the entire feature, with
required resource_model & resource_name methods.
* Add the only possible order (oldest to newest)
* Load comments on both show & edit actions, passing `valuations` flag
to the CommentTree in order to only list those.

At CommentTree:
* Use `valuations` flag as instance variable to decide wich
comment threat to load: valuations (if relation exists) or comments.
2018-01-31 01:53:33 +01:00
Bertocq
09aa5a17cf Add rake task to migrate investment's internal comments to thread 2018-01-31 01:11:15 +01:00
Angel Perez
665a5b57ab Empty instances of MapLocation won't result in a new DB record (#2220) 2018-01-26 09:26:48 -04:00
Bertocq
9e4559e374 Revert random district code on census api mock response 2018-01-23 18:38:07 +01:00
Bertocq
c30c47cbb5 Improve default city map with 4 districts, and more real fake geozones 2018-01-23 15:59:24 +01:00
Bertocq
7db0d832d9 Fix typo at budgets:phases:generate_missing rake task 2018-01-17 13:02:14 +01:00
Bertocq
02d596c872 Add a rake task to generate missing Budget::Phase's and migrate descricptions 2018-01-16 15:20:52 +01:00
Raimond Garcia
50884f7f24 Merge branch 'master' into aperez-capistrano-maintenance-task 2018-01-09 16:17:21 +01:00
rgarcia
2b9b78e38e Add rake task to reset the cached votes counter 2017-12-26 12:40:26 +01:00
Bertocq
b02e2729e7 Rubocop style autocorrections 2017-12-16 17:59:16 +01:00
rgarcia
a6a71c996a adds rake task to initialise all polls' timestamps 2017-12-13 19:39:54 +01:00
Angel Perez
c643656067 Add Capistrano task to automate maintenance mode 2017-11-17 13:11:17 -04:00
María Checa
20fd8c0515 Officing tests improvements 2017-10-17 20:41:48 +02:00
Bertocq
c2d154b1ac Comply with Style/PredicateName rule for ? method names 2017-09-20 16:12:28 +02:00
taitus
9b6b57a24c Remove all white spaces 2017-09-06 14:12:32 +02:00
taitus
56eb30cc87 Add associate community rake task. 2017-09-05 12:55:12 +02:00
Bertocq
7d406cae76 Rubocop autocorrections 2017-07-25 13:01:03 +02:00
María Checa
d576fd5951 Merge branch 'master' into 1725-census_local_copy_user_verification 2017-07-14 15:50:26 +02:00
María Checa
13409c2e35 Performance minor changes in CensusCaller and LocalCensus 2017-07-14 15:35:50 +02:00
Bertocq
69f4e1c683 Fix all rubocop Metrics/LineLength issues (140+) 2017-07-10 13:22:49 +02:00
María Checa
089c690b49 Created new entry point CensusCaller
Here's a better alternative than the first one. Added a new abstraction level from which are performed both types of census calls, while the logic of those is managed in their own library.
2017-07-10 12:22:30 +02:00
Bertocq
0740c3bc26 Add rake task to help migrate existing locale files to new structure 2017-07-05 13:30:05 +02:00
BertoCQ
e990568895 Merge pull request #1721 from consul/feature/add_slugs_to_budget_related
Add slugs to budget related
2017-07-05 13:16:24 +02:00
Bertocq
4068e50b33 Create rake task to generate slug for objects that use Sluggable concern
Why:

* Once slug presence validation and usage is merged on to a code base, existing objects without it will become invalid and unusable

How:

* Running `bundle exec slugs:gnerate` will look for all models that include the concern, and generate a slug for each object
2017-07-05 12:33:17 +02:00
Bertocq
2888c20489 Fix all Style/RedundantSelf rubocop issues 2017-07-05 11:55:52 +02:00
Bertocq
904e3fdcfa Fix all Style/HashSyntax rubocop issues and remove from rubocop_todo list 2017-06-28 14:12:51 +02:00
Bertocq
2fa92937d2 Fix all Style/BracesAroundHashParameters rubocop issues and remove them from rubocop_todo list 2017-06-28 14:12:51 +02:00
Bertocq
1c8e039862 Fix all Layout/SpaceInsideParens rubocop issues and remove files from rubocop_todo list 2017-06-26 18:06:01 +02:00
Bertocq
c4d90691b1 Fix all Layout/SpaceInLambdaLiteral rubocop issues and remove files from rubocop_todo list 2017-06-26 18:05:14 +02:00
Bertocq
f6fe9cc7d2 Fix all Layout/SpaceAroundOperators rubocop issues and remove file list from rubocop_todo list 2017-06-26 18:04:20 +02:00
Bertocq
d7b8777395 Fix all Layout/SpaceAroundEqualsInParameterDefault rubocop issues from rubocop_todo list 2017-06-26 18:03:40 +02:00
Bertocq
d759aca522 Fix all Rails/TimeZone rubocop issues and remove files from rubocop_todo list 2017-06-25 15:46:46 +02:00
Bertocq
c88d822330 Fix Lint/UnderscorePrefixedVariableName issue and remove it from rubocop_todo file 2017-06-19 10:45:18 +02:00
Bertocq
db97314f7b Fix Lint/NestedMethodDefinition rubocop issue and remove it from rubocop_todo list 2017-06-19 10:45:18 +02:00
kikito
1701111bf5 Merge branch 'api-dev-PRs' of https://github.com/amiedes/consul into amiedes-api-dev-PRs-2 2017-06-13 12:07:28 +02:00
Bertocq
b79df113cd Switch all Time.curren.to_date for Date.current, same result but better syntax 2017-06-11 10:41:09 +02:00
Bertocq
e14a5b2eaf Avoid using Date.today, better to use Date.current that takes timezone into account 2017-06-11 10:41:06 +02:00
Bertocq
02524b164a Rubocop autocorrections (indentations, revers unless to if, extra spaces) 2017-06-08 12:14:35 +02:00
Bertocq
20d57d4d46 Create rake task to migrate Setting key from per_page_code to per_page_code_head 2017-06-07 20:56:49 +02:00
rgarcia
792b15b224 Merges annotations 2017-06-07 14:58:34 +02:00