mirror of
https://github.com/discourse/discourse.git
synced 2025-06-24 17:35:36 +08:00
FEATURE: First Link badge
This commit is contained in:
@ -18,6 +18,15 @@ trust_level_badges.each do |spec|
|
||||
end
|
||||
end
|
||||
|
||||
Badge.seed do |b|
|
||||
b.id = Badge::FirstLink
|
||||
b.name = "First Link"
|
||||
b.badge_type_id = BadgeType::Bronze
|
||||
b.multiple_grant = false
|
||||
b.target_posts = true
|
||||
b.query = Badge::Queries::FirstLink
|
||||
end
|
||||
|
||||
Badge.seed do |b|
|
||||
b.id = Badge::FirstLike
|
||||
b.name = "First Like"
|
||||
|
20
db/migrate/20140710005023_add_badge_posts_and_topics_view.rb
Normal file
20
db/migrate/20140710005023_add_badge_posts_and_topics_view.rb
Normal file
@ -0,0 +1,20 @@
|
||||
class AddBadgePostsAndTopicsView < ActiveRecord::Migration
|
||||
def up
|
||||
add_column :categories, :allow_badges, :boolean, default: true, null: false
|
||||
|
||||
execute "CREATE VIEW badge_posts AS
|
||||
SELECT p.*
|
||||
FROM posts p
|
||||
JOIN topics t ON t.id = p.topic_id
|
||||
JOIN categories c ON c.id = t.category_id
|
||||
WHERE c.allow_badges AND
|
||||
p.deleted_at IS NULL AND
|
||||
t.deleted_at IS NULL AND
|
||||
t.visible"
|
||||
end
|
||||
|
||||
def down
|
||||
execute "DROP VIEW badge_posts"
|
||||
remove_column :categories, :allow_badges
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user