mirror of
https://github.com/Growstuff/growstuff.git
synced 2026-07-30 09:17:44 -04:00
* Bump actions/cache from 5 to 6 Bumps [actions/cache](https://github.com/actions/cache) from 5 to 6. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/cache dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> * Bump axe-core-rspec from 4.11.3 to 4.12.0 Bumps [axe-core-rspec](https://github.com/dequelabs/axe-core-gems) from 4.11.3 to 4.12.0. - [Release notes](https://github.com/dequelabs/axe-core-gems/releases) - [Changelog](https://github.com/dequelabs/axe-core-gems/blob/develop/CHANGELOG.md) - [Commits](https://github.com/dequelabs/axe-core-gems/compare/v4.11.3...v4.12.0) --- updated-dependencies: - dependency-name: axe-core-rspec dependency-version: 4.12.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * Merge pull request #4683 from Growstuff/refactor-harvests-remove-elasticsearch-14630838429921835504 Refactor harvests to remove Elasticsearch * Refactor Seeds to remove Elasticsearch dependency (#4684) * Refactor Seeds to remove Elasticsearch dependency This commit refactors the `SeedsController` and `Seed` model to remove dependency on Elasticsearch and Searchkick. Key changes: - Removed `SearchSeeds` concern from the `Seed` model. - Reimplemented `Seed.homepage_records` using ActiveRecord. - Refactored `SeedsController#index` to use ActiveRecord for filtering, eager loading, and pagination. - Deleted `app/models/concerns/search_seeds.rb`. - Updated relevant specs to remove Searchkick-specific tags and setup. Co-authored-by: CloCkWeRX <365751+CloCkWeRX@users.noreply.github.com> * Remove Seed.reindex * Remove trait * Fix tests --------- Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> * Refactor Plantings to remove Elasticsearch dependency (#4686) * Refactor Plantings to remove Elasticsearch dependency This commit refactors the Plantings controller, model, and views to use ActiveRecord instead of Searchkick/Elasticsearch. Key changes: - Refactored `PlantingsController#index` to use an ActiveRecord-based `plantings` method. - Moved `homepage_records` logic from `SearchPlantings` concern to the `Planting` model using ActiveRecord scopes. - Removed `SearchPlantings` concern and deleted the file. - Updated `home/_plantings.html.haml` and `plantings/index.rss.haml` to use dot notation for `Planting` object attributes. - Updated specs to remove Searchkick-related setup and assertions. Co-authored-by: CloCkWeRX <365751+CloCkWeRX@users.noreply.github.com> * Fix Planting.reindex * Fix test * Mark test pending --------- Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> * Fix plantings ICS feed regression and enable request spec (#4687) * Fix plantings ICS feed regression and enable request spec - Update `app/views/plantings/index.ics.erb` to use ActiveRecord method calls instead of hash bracket access. - Enable `spec/requests/plantings_spec.rb` and update it to account for mirrored harvest events. - Add `config/initializers/faraday_patch.rb` to fix Searchkick/Faraday 2.x compatibility issues. Co-authored-by: CloCkWeRX <365751+CloCkWeRX@users.noreply.github.com> * Delete config/initializers/faraday_patch.rb * Apply suggestion from @CloCkWeRX * Apply suggestions from code review Co-authored-by: Daniel O'Connor <daniel.oconnor@gmail.com> * Apply suggestion from @CloCkWeRX --------- Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> * Block Semrush crawler in Rack Attack initializer Added a blocklist entry for the Semrush crawler to prevent abusive requests. * Bump sitemap_generator from 6.3.0 to 7.0.2 Bumps [sitemap_generator](https://github.com/kjvarga/sitemap_generator) from 6.3.0 to 7.0.2. - [Changelog](https://github.com/kjvarga/sitemap_generator/blob/master/CHANGES.md) - [Commits](https://github.com/kjvarga/sitemap_generator/compare/v6.3.0...v7.0.2) --- updated-dependencies: - dependency-name: sitemap_generator dependency-version: 7.0.2 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> * Bump carrierwave from 3.0.7 to 3.1.3 Bumps [carrierwave](https://github.com/carrierwaveuploader/carrierwave) from 3.0.7 to 3.1.3. - [Release notes](https://github.com/carrierwaveuploader/carrierwave/releases) - [Changelog](https://github.com/carrierwaveuploader/carrierwave/blob/master/CHANGELOG.md) - [Commits](https://github.com/carrierwaveuploader/carrierwave/compare/v3.0.7...v3.1.3) --- updated-dependencies: - dependency-name: carrierwave dependency-version: 3.1.3 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * Bump rubocop from 1.88.0 to 1.88.1 (#4691) Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.88.0 to 1.88.1. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.88.0...v1.88.1) --- updated-dependencies: - dependency-name: rubocop dependency-version: 1.88.1 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump sitemap_generator from 7.0.2 to 7.0.3 (#4692) Bumps [sitemap_generator](https://github.com/kjvarga/sitemap_generator) from 7.0.2 to 7.0.3. - [Changelog](https://github.com/kjvarga/sitemap_generator/blob/master/CHANGES.md) - [Commits](https://github.com/kjvarga/sitemap_generator/compare/v7.0.2...v7.0.3) --- updated-dependencies: - dependency-name: sitemap_generator dependency-version: 7.0.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump sitemap_generator from 7.0.3 to 7.1.0 Bumps [sitemap_generator](https://github.com/kjvarga/sitemap_generator) from 7.0.3 to 7.1.0. - [Changelog](https://github.com/kjvarga/sitemap_generator/blob/master/CHANGES.md) - [Commits](https://github.com/kjvarga/sitemap_generator/compare/v7.0.3...v7.1.0) --- updated-dependencies: - dependency-name: sitemap_generator dependency-version: 7.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * Bump haml_lint from 0.74.0 to 0.75.0 (#4694) Bumps [haml_lint](https://github.com/sds/haml-lint) from 0.74.0 to 0.75.0. - [Release notes](https://github.com/sds/haml-lint/releases) - [Changelog](https://github.com/sds/haml-lint/blob/main/CHANGELOG.md) - [Commits](https://github.com/sds/haml-lint/compare/v0.74.0...v0.75.0) --- updated-dependencies: - dependency-name: haml_lint dependency-version: 0.75.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump rubocop from 1.88.1 to 1.88.2 Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.88.1 to 1.88.2. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.88.1...v1.88.2) --- updated-dependencies: - dependency-name: rubocop dependency-version: 1.88.2 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Cesy <cesy.avon@gmail.com> Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
114 lines
3.0 KiB
Ruby
114 lines
3.0 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class MembersController < ApplicationController
|
|
load_and_authorize_resource except: %i(finish_signup unsubscribe view_follows view_followers show)
|
|
skip_authorize_resource only: %i(nearby unsubscribe finish_signup)
|
|
respond_to :html, :json, :rss
|
|
|
|
def index
|
|
@sort = params[:sort]
|
|
@members = members
|
|
respond_to do |format|
|
|
format.html # index.html.haml
|
|
format.json { render json: @members.to_json(only: member_json_fields) }
|
|
end
|
|
end
|
|
|
|
def show
|
|
@member = Member.confirmed.kept.find_by!(slug: params[:slug])
|
|
@flickr_auth = @member.auth('flickr')
|
|
@posts = @member.posts
|
|
|
|
@activity = TimelineService.member_query(@member).limit(30)
|
|
|
|
@late = []
|
|
@super_late = []
|
|
@harvesting = []
|
|
@others = []
|
|
|
|
@member.plantings.active.annual.each do |planting|
|
|
if planting.finish_is_predicatable?
|
|
if planting.super_late?
|
|
@super_late << planting
|
|
elsif planting.late?
|
|
@late << planting
|
|
elsif planting.harvest_time?
|
|
@harvesting << planting
|
|
else
|
|
@others << planting
|
|
end
|
|
end
|
|
end
|
|
|
|
@harvests = Harvest.where(owner_id: @member.id)
|
|
.recent
|
|
.limit(16)
|
|
|
|
respond_to do |format|
|
|
format.html # show.html.haml
|
|
format.json { render json: @member.to_json(only: member_json_fields) }
|
|
format.rss do
|
|
render(
|
|
layout: false,
|
|
locals: { member: @member }
|
|
)
|
|
end
|
|
end
|
|
end
|
|
|
|
def unsubscribe
|
|
verifier = ActiveSupport::MessageVerifier.new(ENV.fetch('RAILS_SECRET_TOKEN', nil))
|
|
decrypted_message = verifier.verify(params[:message])
|
|
|
|
@member = Member.find(decrypted_message[:member_id])
|
|
@type = decrypted_message[:type]
|
|
@member.update(@type => false)
|
|
|
|
flash.now[:notice] = I18n.t('members.unsubscribed', email_type: EMAIL_TYPE_STRING[@type])
|
|
rescue ActiveSupport::MessageVerifier::InvalidSignature
|
|
flash.now[:alert] = I18n.t('members.unsubscribe.error')
|
|
end
|
|
|
|
def finish_signup
|
|
@member = current_member
|
|
return unless request.patch? && params[:member]
|
|
|
|
if @member.update(member_params)
|
|
@member.skip_reconfirmation!
|
|
bypass_sign_in(@member)
|
|
redirect_to root_path, notice: I18n.t('members.welcome')
|
|
else
|
|
flash[:alert] = I18n.t('members.signup.error')
|
|
@show_errors = true
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
EMAIL_TYPE_STRING = {
|
|
send_notification_email: "direct message notifications",
|
|
send_planting_reminder: "planting reminders",
|
|
send_harvest_reminder: "harvest reminders"
|
|
}.freeze
|
|
|
|
def member_params
|
|
params.require(:member).permit(:login_name, :tos_agreement, :email, :newsletter, :send_harvest_reminder)
|
|
end
|
|
|
|
def member_json_fields
|
|
%i(
|
|
id login_name
|
|
slug bio created_at
|
|
location latitude longitude
|
|
)
|
|
end
|
|
|
|
def members
|
|
if @sort == 'recently_joined'
|
|
Member.recently_joined
|
|
else
|
|
Member.order(:login_name)
|
|
end.kept.confirmed.paginate(page: params[:page])
|
|
end
|
|
end
|