Files
grecia/app/controllers/concerns/commentable_actions.rb
dependabot[bot] f4203909db Bump rubocop from 1.56.4 to 1.61.0
This version fixes false negatives for Lint/SymbolConversion when using
string interpolation, for Style/RedundantArgument when using the safe
navigation operator, for Style/RedundantParentheses when logical
operators are involved and for Style/RedundantReturn with lambda ending
with return. We're applying the new rules.

Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.56.4 to 1.61.0.
- [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.56.4...v1.61.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-02 16:31:10 +02:00

106 lines
2.6 KiB
Ruby

module CommentableActions
extend ActiveSupport::Concern
include Polymorphic
include Search
include RemotelyTranslatable
def index
@resources = resource_model.all
@resources = if @current_order == "recommendations" && current_user.present?
@resources.recommendations(current_user)
else
@resources.for_render
end
@resources = @resources.search(@search_terms) if @search_terms.present?
@resources = @resources.filter_by(@advanced_search_terms)
@resources = @resources.page(params[:page]).send("sort_by_#{@current_order}")
index_customization
@tag_cloud = tag_cloud
set_resources_instance
@remote_translations = detect_remote_translations(@resources, featured_proposals)
end
def show
@commentable = resource
@comment_tree = CommentTree.new(@commentable, params[:page], @current_order)
set_comment_flags(@comment_tree.comments)
set_resource_instance
@remote_translations = detect_remote_translations([@resource], @comment_tree.comments)
end
def new
@resource = resource_model.new
set_geozone
set_resource_instance
end
def suggest
@limit = 5
@resources = @search_terms.present? ? resource_relation.search(@search_terms) : nil
end
def create
@resource = resource_model.new(strong_params)
@resource.author = current_user
if @resource.save
track_event
redirect_path = url_for(controller: controller_name, action: :show, id: @resource.id)
redirect_to redirect_path, notice: t("flash.actions.create.#{resource_name.underscore}")
else
load_geozones
set_resource_instance
render :new
end
end
def edit
end
def update
if resource.update(strong_params)
redirect_to resource, notice: t("flash.actions.update.#{resource_name.underscore}")
else
load_geozones
set_resource_instance
render :edit
end
end
private
def track_event
ahoy.track :"#{resource_name}_created", "#{resource_name}_id": resource.id
end
def tag_cloud
TagCloud.new(resource_model, params[:search])
end
def load_geozones
@geozones = Geozone.order(name: :asc)
end
def set_geozone
geozone_id = params[resource_name.to_sym].try(:[], :geozone_id)
@resource.geozone = Geozone.find(geozone_id) if geozone_id.present?
end
def load_categories
@categories = Tag.category.order(:name)
end
def index_customization
nil
end
def featured_proposals
@featured_proposals ||= []
end
end