diff --git a/app/models/tag.rb b/app/models/tag.rb index b3b52854418b78e7cc876500a3d1e88e61857f03..830f39817f260eea7ad81e73f496ee6247b693e8 100644 --- a/app/models/tag.rb +++ b/app/models/tag.rb @@ -2,11 +2,15 @@ class Tag < ApplicationRecord include CommunityRelated scope :category_order, lambda { |required_ids, topic_ids| - order(Arel.sql("id IN #{sanitize_sql_in(required_ids)} DESC"), - Arel.sql("id IN #{sanitize_sql_in(topic_ids)} DESC"), + order(Arel.sql("tags.id IN #{sanitize_sql_in(required_ids)} DESC"), + Arel.sql("tags.id IN #{sanitize_sql_in(topic_ids)} DESC"), name: :asc) } + scope :category_sort_by, lambda { |required_ids, topic_ids| + sort_by { |t| [required_ids.include?(t.id) ? 0 : 1, topic_ids.include?(t.id) ? 0 : 1, t.id] } + } + has_and_belongs_to_many :posts belongs_to :tag_set diff --git a/app/views/categories/_form.html.erb b/app/views/categories/_form.html.erb index 7a5465b726ad69ebd892af6d0737bb5da38695f6..72a582b49ea00656c899aafbcf983a815430c243 100644 --- a/app/views/categories/_form.html.erb +++ b/app/views/categories/_form.html.erb @@ -49,7 +49,7 @@ Users under this trust level cannot see that this category exists. Leave blank to leave the category public. This can be different (higher or lower) than the minimum posting trust level. </span> - <%= f.number_field :min_trust_level, class: 'form-element', min: 0, max: 10, step: 1 %> + <%= f.number_field :min_view_trust_level, class: 'form-element', min: 0, max: 10, step: 1 %> </div> <div class="form-group"> diff --git a/app/views/categories/index.html.erb b/app/views/categories/index.html.erb index 2b985899657d7548c3c373dafc22ef7eba8cc723..7db6fb6e912e6af8555c310af8159abe051c944d 100644 --- a/app/views/categories/index.html.erb +++ b/app/views/categories/index.html.erb @@ -1,6 +1,7 @@ <h1>Categories</h1> <% @categories.each do |cat| %> + <% next unless (current_user&.trust_level || 0) >= (cat.min_view_trust_level || -1) %> <div class="widget"> <div class="widget--body"> <h3><%= cat.name %></h3> diff --git a/app/views/errors/internal_server_error.html.erb b/app/views/errors/internal_server_error.html.erb index b3979ae0b8b4c83ae1c41e4c0a6cdb8c14907be5..7d8696b50c1a012d32f1ce3e8849c3e170e8142f 100644 --- a/app/views/errors/internal_server_error.html.erb +++ b/app/views/errors/internal_server_error.html.erb @@ -35,5 +35,5 @@ <pre class="error-trace raw-markdown"><%= @exception.backtrace.select { |l| l.include? Rails.root.to_s }.join("\n") %></pre> - <%= console %> + <% console %> <% end %> diff --git a/app/views/posts/_expanded.html.erb b/app/views/posts/_expanded.html.erb index a2b45b8092f74a88507ba14246cd547d76f00547..08e20ebe443f4835ab7a9d38fe2616ac3ea97ac6 100644 --- a/app/views/posts/_expanded.html.erb +++ b/app/views/posts/_expanded.html.erb @@ -100,7 +100,7 @@ <% tag_set = post.tag_set %> <% required_ids = post.category&.required_tag_ids %> <% topic_ids = post.category&.topic_tag_ids %> - <% post.tags.category_order(required_ids, topic_ids).each do |tag| %> + <% post.tags.category_sort_by(required_ids, topic_ids).each do |tag| %> <% next if tag.nil? %> <% required = required_ids&.include? tag.id %> <% topic = topic_ids&.include? tag.id %> diff --git a/app/views/posts/_list.html.erb b/app/views/posts/_list.html.erb index 5703b4e84e486b74448fecae7667d7701ab71633..2d205ea84b1ca1a960aa3cfc40a144c0c6d84772 100644 --- a/app/views/posts/_list.html.erb +++ b/app/views/posts/_list.html.erb @@ -29,7 +29,7 @@ <% tag_set = post.tag_set %> <% required_ids = post.category&.required_tag_ids %> <% topic_ids = post.category&.topic_tag_ids %> - <% post.tags.category_order(required_ids, topic_ids).each do |tag| %> + <% post.tags.category_sort_by(required_ids, topic_ids).each do |tag| %> <% required = required_ids&.include? tag.id %> <% topic = topic_ids&.include? tag.id %> <%= link_to tag.name, questions_tagged_path(tag_set: tag_set.id, tag: tag.name), diff --git a/config/environments/development.rb b/config/environments/development.rb index 08b8d8251179a3e13da255c94dd93d797054beed..82f96a5a46823eb4095b1c93465797e084a86cf4 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -40,10 +40,6 @@ Rails.application.configure do # Raises error for missing translations # config.action_view.raise_on_missing_translations = true - # Configure web console - config.web_console.whitelisted_ips = "82.69.87.121" - config.web_console.whiny_requests = false - config.action_mailer.delivery_method = :ses config.action_mailer.default_url_options = { host: 'writing.codidact.com', port: 80 }