docbrown/app/models
rhymes 83852038e4
[Search 2.0] Reading list (#13052)
* Step one in populating the reading list with PG

This first attempt tries to recycle the `Search::ArticleSerializer` which is only
used in input in ES, but we're using it in output in PG.
For this reason it's currently 15.55x times slower

* Serialize only what is requested by the frontend

`Search::ArticleSerializer` which is only used in ES in the indexing step aims
to add as much info as possible for broader purposes, in this case
(with serialization in output) we should aim to save only what's requested from
the frontend.

* Optimize selection of articles columns

* Select only needed columns for users

* Compute total of reading list items

* Attach the basic filtering based on PG on the search controller

* Restructure in methods

* Add tags support

* Use LIKE on articles.cached_tag_list

* Fix tags as nil

* Fix default pagination

* Add optional FTS for reading list

* Reworded the tags comment explaining why

* Add index to reactions.status

* Fix total counter in Preact readingList component

* Fix total count in reading list backend search

* Add GIN index to articles.cached_tag_list

* Add service tests

* Add search request specs

* Added missing early return

* Update spec/requests/search_spec.rb

Co-authored-by: Julianna Tetreault <32834804+juliannatetreault@users.noreply.github.com>

* Extract MAX_PER_PAGE constant and add comments

Co-authored-by: Julianna Tetreault <32834804+juliannatetreault@users.noreply.github.com>
2021-03-24 15:40:00 +01:00
..
ahoy [deploy] Rubocop: fix Rails/HasManyOrHasOneDependent for Ahoy::Visit and Badge (#9565) 2020-07-31 11:43:50 -04:00
articles Rubocop: Move from OpenStruct to Struct in Organization (#9431) 2020-07-30 21:04:05 +07:00
concerns Correctly set constant in including modules (#11331) 2020-11-10 08:47:30 +07:00
liquid_tags [deploy] Add role and docs for user subscription liquid tag (#9170) 2020-07-08 14:07:53 -04:00
users Prevent suspended users from self-deleting and returning (#12503) 2021-02-11 09:28:59 +07:00
webhook Add missing presence validators to models (#10495) 2020-10-01 16:15:32 +02:00
admin_menu.rb RFC#50-P4: Feature Flagged Routes and Interaction Design (#12967) 2021-03-23 11:12:54 +02:00
announcement.rb Add Polymorphism to Broadcasts (Part 1) (#9231) [deploy] 2020-07-13 09:36:19 -06:00
api_secret.rb Limit the Number of API Keys a User Can Have (#7870) 2020-05-15 11:33:02 +02:00
application_record.rb Filter only ordinary tables in estimated count (#8913) 2020-06-25 14:04:13 -04:00
article.rb [Search 2.0] Reading list (#13052) 2021-03-24 15:40:00 +01:00
audit_log.rb Add missing presence validators to models (#10495) 2020-10-01 16:15:32 +02:00
badge.rb Refactor cache purging (#12811) 2021-03-02 10:09:05 -05:00
badge_achievement.rb Resourcify Badge Achievements (#12832) 2021-02-27 09:53:46 -05:00
banished_user.rb Introduce BanishedUser table (#5589) [deploy] 2020-01-21 17:15:58 -05:00
broadcast.rb Fix Rails/HasManyOrHasOneDependent for Broadcast and Collection (#9662) 2020-08-07 14:27:24 -04:00
buffer_update.rb [deploy] Add missing FKs to BadgeAchievements BanishedUsers BufferUpdates (#10366) 2020-09-29 21:43:14 +02:00
campaign.rb Add campaign call to action to SiteConfig (#10997) 2020-10-21 21:27:53 -04:00
chat_channel.rb 🚀 Ability to allow tag moderators to create chat channels (#9741) 2020-12-08 13:10:36 +07:00
chat_channel_membership.rb [deploy] Reintroduce sticky_nav changes (ab81f36 & 7f92855) (#10263) 2020-09-09 15:33:13 -04:00
collection.rb Fix Rails/HasManyOrHasOneDependent for Broadcast and Collection (#9662) 2020-08-07 14:27:24 -04:00
comment.rb Bump MAX_USER_MENTION_LIVE_AT in comment model (#12972) 2021-03-11 09:42:32 -08:00
config.rb Add single resource admin concept (#5069) [deploy] 2019-12-11 13:17:55 -05:00
credit.rb Replace activerecord-import with Rails 6 insert_all and upsert_all (#8407) 2020-06-12 11:16:06 +02:00
custom_profile_field.rb Add custom profile fields (#10202) 2020-09-09 14:37:15 +00:00
data_update_script.rb Navigation Items and Role access for Data Update Scripts (#12292) 2021-02-09 17:41:14 +02:00
device.rb Add mobile push notifications to Forem (#12419) 2021-03-12 14:08:18 -06:00
display_ad.rb Move CodeBlockParse and MarkdownParser to service (#12112) 2021-01-07 10:13:01 -05:00
display_ad_event.rb Remove unused columns from display_ad_events (#6806) [deploy] 2020-03-25 17:47:05 -04:00
email_authorization.rb Add missing presence validators to models (#10495) 2020-10-01 16:15:32 +02:00
email_message.rb [deploy] Add missing foreign keys to ahoy_messages and articles (#10321) 2020-09-16 19:47:03 +02:00
event.rb Rename MarkdownParser to MarkdownProcessor::Parser (#12248) 2021-01-13 10:39:13 -05:00
feedback_message.rb Remove unused method (#11226) 2020-11-02 10:45:02 -05:00
follow.rb rubocop -a (#11674) 2020-11-30 14:50:13 +01:00
forem_instance.rb Optimization: Set ForemInstance.deployed_at Locally to Better Mirror Production (#12500) 2021-02-01 07:43:23 -06:00
github_issue.rb Replace need for GitHub ENV vars on bootup (#10372) 2020-09-18 11:21:31 -04:00
github_repo.rb Refactor cache purging (#12811) 2021-03-02 10:09:05 -05:00
html_variant.rb Fix html variant image prefix logic (#11917) 2020-12-15 14:44:11 -05:00
html_variant_success.rb [deploy] Add relations and foreign keys between HtmlVariant related models (#9846) 2020-08-18 11:33:38 -04:00
html_variant_trial.rb [deploy] Add relations and foreign keys between HtmlVariant related models (#9846) 2020-08-18 11:33:38 -04:00
identity.rb secure Identity#email in case of missing auth_data_dump hash (#11936) (#12322) 2021-01-18 19:27:07 -05:00
invitation.rb [deploy] Invite users to join and create password (#9294) 2020-07-15 11:37:19 -04:00
listing.rb Remove buffer gem and related code: step 1 (#12993) 2021-03-24 09:58:38 +07:00
listing_category.rb [deploy] Manage listing categories in dashboard (#10506) 2020-10-02 11:05:09 -04:00
mention.rb [deploy] Add missing unique indexes - part 2 (#8002) 2020-05-21 14:15:49 -05:00
message.rb Remove experimental /call functionality from Connect ✂️✂️✂️ (#12979) 2021-03-17 17:06:15 +01:00
mod.rb Add single resource admin concept (#5069) [deploy] 2019-12-11 13:17:55 -05:00
moderator_action.rb [deploy] Moderator and admin actions log (#6797) 2020-03-26 16:59:24 -05:00
navigation_link.rb Update NavigationLink handling (#12316) 2021-01-20 13:57:59 -05:00
note.rb [deploy] Add missing dependent clauses to User and cleanup relations (#10011) 2020-08-28 20:19:24 +02:00
notification.rb Routine rubocop fixes (#10237) 2020-09-08 12:06:47 -04:00
notification_subscription.rb Add missing presence validators to models (#10495) 2020-10-01 16:15:32 +02:00
organization.rb Delete all notifications instead of destroying (#12577) 2021-02-04 14:41:17 -05:00
organization_membership.rb Refactoring ChatChannel - distributing into services (#9253) 2020-08-07 10:41:34 +02:00
overview.rb Add admin overview page (#12726) 2021-03-01 18:59:05 -06:00
page.rb Rename MarkdownParser to MarkdownProcessor::Parser (#12248) 2021-01-13 10:39:13 -05:00
page_view.rb Declare winner in feed_top_articles_query test (#12308) 2021-02-04 13:02:00 -05:00
permission.rb Add single resource admin concept (#5069) [deploy] 2019-12-11 13:17:55 -05:00
podcast.rb Podcast ownership join table (MLH Fellowship #81) (#11410) 2020-11-19 12:41:17 +01:00
podcast_episode.rb Ben/new branch noindex spam comments (#12210) 2021-01-11 16:17:52 -05:00
podcast_episode_appearance.rb Add podcast_appearances joined table (forem#82) (#11354) 2020-11-30 17:12:52 +01:00
podcast_ownership.rb Podcast ownership join table (MLH Fellowship #81) (#11410) 2020-11-19 12:41:17 +01:00
poll.rb Rename MarkdownParser to MarkdownProcessor::Parser (#12248) 2021-01-13 10:39:13 -05:00
poll_option.rb Rename MarkdownParser to MarkdownProcessor::Parser (#12248) 2021-01-13 10:39:13 -05:00
poll_skip.rb Improve speed of model tests by around 50/60 seconds (#5016) 2019-12-09 16:33:48 -05:00
poll_vote.rb Rubocop: enable and fix new Rails cops (#9537) 2020-07-29 11:14:19 +02:00
privileged_reaction.rb [deploy] New Feature: Mod Actions Panel (#7777) 2020-06-08 13:24:18 -04:00
profile.rb Fix edge cases in profile field UI migration (#12665) 2021-02-11 17:18:46 -05:00
profile_field.rb Prepare for profile column drop (#11246) 2020-11-09 10:17:39 +07:00
profile_field_group.rb [deploy] /profile/settings page rendering (Ridhwana/Michael) (#10733) 2020-10-20 09:18:13 -04:00
profile_pin.rb Fix Typos (#3510) 2019-07-22 12:56:48 -04:00
rating_vote.rb [deploy] Add missing foreign keys to models related to users (#10018) 2020-08-31 15:39:57 +02:00
reaction.rb Test variants for which posts are fetched on initial "hot articles" home feed query. (#11982) 2021-01-05 12:29:46 -05:00
response_template.rb Add unique indexes - part 4 (#8059) 2020-05-27 09:29:20 +02:00
role.rb List single_resource_admin resources in the UI (#11049) 2020-11-04 11:03:45 -06:00
secret.rb [deploy] Feature: Setup Admin Area to Update Vault Secrets (#8935) 2020-06-29 15:08:09 -05:00
site_config.rb Make definition of new user configurable (#12999) 2021-03-23 14:13:06 +07:00
sponsorship.rb Add missing presence validators to models (#10495) 2020-10-01 16:15:32 +02:00
tag.rb [Search 2.0] Reading list (#13052) 2021-03-24 15:40:00 +01:00
tag_adjustment.rb [deploy] Rubocop: fix violations of Layout/LineLength (#9197) 2020-07-08 08:36:36 -05:00
timeframe.rb Remove timeframer from app/labor (#11782) 2020-12-08 12:52:33 +07:00
tool.rb Add single resource admin concept (#5069) [deploy] 2019-12-11 13:17:55 -05:00
tweet.rb Refactor RssReader and Feeds::Import common parts: take 1 (#11412) 2020-11-18 14:17:53 +01:00
user.rb Remove buffer gem and related code: step 1 (#12993) 2021-03-24 09:58:38 +07:00
user_block.rb Fix and refactor hide user content (#12307) 2021-01-18 11:08:23 -05:00
user_subscription.rb Rename MarkdownParser to MarkdownProcessor::Parser (#12248) 2021-01-13 10:39:13 -05:00
webhook_endpoint.rb Add single resource admin concept (#5069) [deploy] 2019-12-11 13:17:55 -05:00
welcome.rb Add single resource admin concept (#5069) [deploy] 2019-12-11 13:17:55 -05:00
welcome_notification.rb Add Polymorphism to Broadcasts (Part 1) (#9231) [deploy] 2020-07-13 09:36:19 -06:00