2014-07-17 02:10:44 -04:00
|
|
|
|
|
|
|
BadgeGrouping.seed do |g|
|
2014-07-18 01:46:36 -04:00
|
|
|
g.id = BadgeGrouping::GettingStarted
|
2014-07-17 02:10:44 -04:00
|
|
|
g.name = "Getting Started"
|
2014-07-26 21:33:33 -04:00
|
|
|
g.default_position = 10
|
2014-07-17 02:10:44 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
BadgeGrouping.seed do |g|
|
2014-07-18 01:46:36 -04:00
|
|
|
g.id = BadgeGrouping::Community
|
2014-07-17 02:10:44 -04:00
|
|
|
g.name = "Community"
|
2014-07-26 21:33:33 -04:00
|
|
|
g.default_position = 11
|
2014-07-17 02:10:44 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
BadgeGrouping.seed do |g|
|
2014-07-18 01:46:36 -04:00
|
|
|
g.id = BadgeGrouping::Posting
|
2014-07-17 02:10:44 -04:00
|
|
|
g.name = "Posting"
|
2014-07-26 21:33:33 -04:00
|
|
|
g.default_position = 12
|
2014-07-17 02:10:44 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
BadgeGrouping.seed do |g|
|
2014-07-18 01:46:36 -04:00
|
|
|
g.id = BadgeGrouping::TrustLevel
|
2014-07-17 02:10:44 -04:00
|
|
|
g.name = "Trust Level"
|
2014-07-26 21:33:33 -04:00
|
|
|
g.default_position = 13
|
2014-07-17 02:10:44 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
BadgeGrouping.seed do |g|
|
2014-07-18 01:46:36 -04:00
|
|
|
g.id = BadgeGrouping::Other
|
2014-07-17 02:10:44 -04:00
|
|
|
g.name = "Other"
|
2014-07-26 21:33:33 -04:00
|
|
|
g.default_position = 14
|
2014-07-17 02:10:44 -04:00
|
|
|
end
|
|
|
|
|
2014-07-18 01:46:36 -04:00
|
|
|
# BUGFIX
|
2014-07-26 21:30:55 -04:00
|
|
|
Badge.exec_sql "UPDATE badges
|
2014-07-18 01:55:42 -04:00
|
|
|
SET badge_grouping_id = -1
|
2014-07-18 01:46:36 -04:00
|
|
|
WHERE NOT EXISTS (
|
|
|
|
SELECT 1 FROM badge_groupings g
|
|
|
|
WHERE g.id = badge_grouping_id
|
2014-07-26 21:30:55 -04:00
|
|
|
) OR (id < 100 AND badge_grouping_id = #{BadgeGrouping::Other} )"
|
2014-07-18 01:46:36 -04:00
|
|
|
|
2014-06-17 02:29:49 -04:00
|
|
|
# Trust level system badges.
|
2014-05-04 14:15:38 -04:00
|
|
|
trust_level_badges = [
|
2014-07-07 03:55:25 -04:00
|
|
|
{id: 1, name: "Basic User", type: BadgeType::Bronze},
|
|
|
|
{id: 2, name: "Regular User", type: BadgeType::Bronze},
|
|
|
|
{id: 3, name: "Leader", type: BadgeType::Silver},
|
|
|
|
{id: 4, name: "Elder", type: BadgeType::Gold}
|
2014-05-04 14:15:38 -04:00
|
|
|
]
|
|
|
|
|
|
|
|
trust_level_badges.each do |spec|
|
|
|
|
Badge.seed do |b|
|
|
|
|
b.id = spec[:id]
|
2014-07-16 22:25:16 -04:00
|
|
|
b.default_name = spec[:name]
|
2014-05-04 14:15:38 -04:00
|
|
|
b.badge_type_id = spec[:type]
|
2014-07-03 03:29:44 -04:00
|
|
|
b.query = Badge::Queries.trust_level(spec[:id])
|
2014-07-18 01:46:36 -04:00
|
|
|
b.default_badge_grouping_id = BadgeGrouping::TrustLevel
|
2014-07-21 22:46:31 -04:00
|
|
|
b.trigger = Badge::Trigger::TrustLevelChange
|
2014-07-08 22:17:39 -04:00
|
|
|
|
|
|
|
# allow title for leader and elder
|
2014-07-29 18:46:46 -04:00
|
|
|
b.default_allow_title = spec[:id] > 2
|
2014-08-05 20:51:39 -04:00
|
|
|
b.system = true
|
2014-05-04 14:15:38 -04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2014-07-15 01:16:41 -04:00
|
|
|
Badge.seed do |b|
|
|
|
|
b.id = Badge::Reader
|
2014-07-16 22:25:16 -04:00
|
|
|
b.default_name = "Reader"
|
2014-07-15 01:16:41 -04:00
|
|
|
b.badge_type_id = BadgeType::Bronze
|
|
|
|
b.multiple_grant = false
|
|
|
|
b.target_posts = false
|
2014-07-22 21:42:24 -04:00
|
|
|
b.show_posts = false
|
2014-07-15 01:16:41 -04:00
|
|
|
b.query = Badge::Queries::Reader
|
2014-07-18 01:46:36 -04:00
|
|
|
b.default_badge_grouping_id = BadgeGrouping::GettingStarted
|
2014-07-15 01:16:41 -04:00
|
|
|
b.auto_revoke = false
|
2014-08-05 20:51:39 -04:00
|
|
|
b.system = true
|
2014-07-15 01:16:41 -04:00
|
|
|
end
|
|
|
|
|
2014-07-11 03:32:29 -04:00
|
|
|
Badge.seed do |b|
|
2014-07-16 02:26:22 -04:00
|
|
|
b.id = Badge::ReadGuidelines
|
2014-07-16 22:25:16 -04:00
|
|
|
b.default_name = "Read Guidelines"
|
2014-07-11 03:32:29 -04:00
|
|
|
b.badge_type_id = BadgeType::Bronze
|
|
|
|
b.multiple_grant = false
|
|
|
|
b.target_posts = false
|
2014-07-22 21:42:24 -04:00
|
|
|
b.show_posts = false
|
2014-07-16 02:26:22 -04:00
|
|
|
b.query = Badge::Queries::ReadGuidelines
|
2014-07-18 01:46:36 -04:00
|
|
|
b.default_badge_grouping_id = BadgeGrouping::GettingStarted
|
2014-07-22 21:42:24 -04:00
|
|
|
b.trigger = Badge::Trigger::UserChange
|
2014-08-05 20:51:39 -04:00
|
|
|
b.system = true
|
2014-07-11 03:32:29 -04:00
|
|
|
end
|
|
|
|
|
2014-07-09 21:18:02 -04:00
|
|
|
Badge.seed do |b|
|
|
|
|
b.id = Badge::FirstLink
|
2014-07-16 22:25:16 -04:00
|
|
|
b.default_name = "First Link"
|
2014-07-09 21:18:02 -04:00
|
|
|
b.badge_type_id = BadgeType::Bronze
|
|
|
|
b.multiple_grant = false
|
|
|
|
b.target_posts = true
|
2014-07-22 21:42:24 -04:00
|
|
|
b.show_posts = true
|
2014-07-09 21:18:02 -04:00
|
|
|
b.query = Badge::Queries::FirstLink
|
2014-07-18 01:46:36 -04:00
|
|
|
b.default_badge_grouping_id = BadgeGrouping::GettingStarted
|
2014-07-21 22:46:31 -04:00
|
|
|
b.trigger = Badge::Trigger::PostRevision
|
2014-08-05 20:51:39 -04:00
|
|
|
b.system = true
|
2014-07-09 21:18:02 -04:00
|
|
|
end
|
|
|
|
|
2014-07-11 00:17:01 -04:00
|
|
|
Badge.seed do |b|
|
|
|
|
b.id = Badge::FirstQuote
|
2014-07-16 22:25:16 -04:00
|
|
|
b.default_name = "First Quote"
|
2014-07-11 00:17:01 -04:00
|
|
|
b.badge_type_id = BadgeType::Bronze
|
|
|
|
b.multiple_grant = false
|
|
|
|
b.target_posts = true
|
2014-07-22 21:42:24 -04:00
|
|
|
b.show_posts = true
|
2014-07-11 00:17:01 -04:00
|
|
|
b.query = Badge::Queries::FirstQuote
|
2014-07-18 01:46:36 -04:00
|
|
|
b.default_badge_grouping_id = BadgeGrouping::GettingStarted
|
2014-07-21 22:46:31 -04:00
|
|
|
b.trigger = Badge::Trigger::PostRevision
|
2014-08-05 20:51:39 -04:00
|
|
|
b.system = true
|
2014-07-11 00:17:01 -04:00
|
|
|
end
|
|
|
|
|
2014-07-08 00:26:53 -04:00
|
|
|
Badge.seed do |b|
|
2014-07-08 22:17:39 -04:00
|
|
|
b.id = Badge::FirstLike
|
2014-07-16 22:25:16 -04:00
|
|
|
b.default_name = "First Like"
|
2014-07-08 22:17:39 -04:00
|
|
|
b.badge_type_id = BadgeType::Bronze
|
|
|
|
b.multiple_grant = false
|
|
|
|
b.target_posts = true
|
2014-07-22 21:42:24 -04:00
|
|
|
b.show_posts = true
|
2014-07-08 22:17:39 -04:00
|
|
|
b.query = Badge::Queries::FirstLike
|
2014-07-18 01:46:36 -04:00
|
|
|
b.default_badge_grouping_id = BadgeGrouping::GettingStarted
|
2014-07-21 22:46:31 -04:00
|
|
|
b.trigger = Badge::Trigger::PostAction
|
2014-08-05 20:51:39 -04:00
|
|
|
b.system = true
|
2014-07-08 22:17:39 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
Badge.seed do |b|
|
|
|
|
b.id = Badge::FirstFlag
|
2014-07-16 22:25:16 -04:00
|
|
|
b.default_name = "First Flag"
|
2014-07-08 22:17:39 -04:00
|
|
|
b.badge_type_id = BadgeType::Bronze
|
|
|
|
b.multiple_grant = false
|
2014-07-22 21:42:24 -04:00
|
|
|
b.target_posts = true
|
|
|
|
b.show_posts = false
|
2014-07-08 22:17:39 -04:00
|
|
|
b.query = Badge::Queries::FirstFlag
|
2014-07-18 01:46:36 -04:00
|
|
|
b.default_badge_grouping_id = BadgeGrouping::Community
|
2014-07-21 22:46:31 -04:00
|
|
|
b.trigger = Badge::Trigger::PostAction
|
2014-08-09 18:40:25 -04:00
|
|
|
b.auto_revoke = false
|
2014-08-05 20:51:39 -04:00
|
|
|
b.system = true
|
2014-07-08 22:17:39 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
Badge.seed do |b|
|
|
|
|
b.id = Badge::FirstShare
|
2014-07-16 22:25:16 -04:00
|
|
|
b.default_name = "First Share"
|
2014-07-08 00:26:53 -04:00
|
|
|
b.badge_type_id = BadgeType::Bronze
|
|
|
|
b.multiple_grant = false
|
|
|
|
b.target_posts = true
|
2014-07-22 21:42:24 -04:00
|
|
|
b.show_posts = true
|
2014-07-08 22:17:39 -04:00
|
|
|
b.query = Badge::Queries::FirstShare
|
2014-07-18 01:46:36 -04:00
|
|
|
b.default_badge_grouping_id = BadgeGrouping::GettingStarted
|
2014-07-31 22:48:11 -04:00
|
|
|
# don't trigger for now, its too expensive
|
|
|
|
b.trigger = Badge::Trigger::None
|
2014-08-05 20:51:39 -04:00
|
|
|
b.system = true
|
2014-07-08 00:26:53 -04:00
|
|
|
end
|
|
|
|
|
2014-07-03 03:29:44 -04:00
|
|
|
Badge.seed do |b|
|
|
|
|
b.id = Badge::Welcome
|
2014-07-16 22:25:16 -04:00
|
|
|
b.default_name = "Welcome"
|
2014-07-07 03:55:25 -04:00
|
|
|
b.badge_type_id = BadgeType::Bronze
|
2014-07-03 03:29:44 -04:00
|
|
|
b.multiple_grant = false
|
|
|
|
b.target_posts = true
|
2014-07-22 21:42:24 -04:00
|
|
|
b.show_posts = true
|
2014-07-03 03:29:44 -04:00
|
|
|
b.query = Badge::Queries::Welcome
|
2014-07-18 01:46:36 -04:00
|
|
|
b.default_badge_grouping_id = BadgeGrouping::Community
|
2014-07-21 22:46:31 -04:00
|
|
|
b.trigger = Badge::Trigger::PostAction
|
2014-08-05 20:51:39 -04:00
|
|
|
b.system = true
|
2014-07-03 03:29:44 -04:00
|
|
|
end
|
2014-05-15 20:34:06 -04:00
|
|
|
|
2014-07-03 03:29:44 -04:00
|
|
|
Badge.seed do |b|
|
|
|
|
b.id = Badge::Autobiographer
|
2014-07-16 22:25:16 -04:00
|
|
|
b.default_name = "Autobiographer"
|
2014-07-07 03:55:25 -04:00
|
|
|
b.badge_type_id = BadgeType::Bronze
|
2014-07-03 03:29:44 -04:00
|
|
|
b.multiple_grant = false
|
|
|
|
b.query = Badge::Queries::Autobiographer
|
2014-07-18 01:46:36 -04:00
|
|
|
b.default_badge_grouping_id = BadgeGrouping::GettingStarted
|
2014-07-21 22:46:31 -04:00
|
|
|
b.trigger = Badge::Trigger::UserChange
|
2014-08-05 20:51:39 -04:00
|
|
|
b.system = true
|
2014-05-04 14:15:38 -04:00
|
|
|
end
|
2014-07-03 03:29:44 -04:00
|
|
|
|
2014-07-07 03:55:25 -04:00
|
|
|
Badge.seed do |b|
|
|
|
|
b.id = Badge::Editor
|
2014-07-16 22:25:16 -04:00
|
|
|
b.default_name = "Editor"
|
2014-07-07 03:55:25 -04:00
|
|
|
b.badge_type_id = BadgeType::Bronze
|
|
|
|
b.multiple_grant = false
|
|
|
|
b.query = Badge::Queries::Editor
|
2014-07-18 01:46:36 -04:00
|
|
|
b.default_badge_grouping_id = BadgeGrouping::Community
|
2014-07-21 22:46:31 -04:00
|
|
|
b.trigger = Badge::Trigger::PostRevision
|
2014-08-05 20:51:39 -04:00
|
|
|
b.system = true
|
2014-07-07 03:55:25 -04:00
|
|
|
end
|
|
|
|
|
2014-06-17 02:29:49 -04:00
|
|
|
#
|
|
|
|
# Like system badges.
|
|
|
|
like_badges = [
|
2014-07-07 03:55:25 -04:00
|
|
|
{id: 6, name: "Nice Post", type: BadgeType::Bronze, multiple: true},
|
|
|
|
{id: 7, name: "Good Post", type: BadgeType::Silver, multiple: true},
|
|
|
|
{id: 8, name: "Great Post", type: BadgeType::Gold, multiple: true}
|
2014-06-17 02:29:49 -04:00
|
|
|
]
|
|
|
|
|
|
|
|
like_badges.each do |spec|
|
|
|
|
Badge.seed do |b|
|
|
|
|
b.id = spec[:id]
|
2014-07-16 22:25:16 -04:00
|
|
|
b.default_name = spec[:name]
|
2014-06-17 02:29:49 -04:00
|
|
|
b.badge_type_id = spec[:type]
|
|
|
|
b.multiple_grant = spec[:multiple]
|
2014-07-03 03:29:44 -04:00
|
|
|
b.target_posts = true
|
2014-07-22 21:42:24 -04:00
|
|
|
b.show_posts = true
|
2014-07-03 03:29:44 -04:00
|
|
|
b.query = Badge::Queries.like_badge(Badge.like_badge_counts[spec[:id]])
|
2014-07-18 01:46:36 -04:00
|
|
|
b.default_badge_grouping_id = BadgeGrouping::Posting
|
2014-07-21 22:46:31 -04:00
|
|
|
b.trigger = Badge::Trigger::PostAction
|
2014-08-05 20:51:39 -04:00
|
|
|
b.system = true
|
2014-06-17 02:29:49 -04:00
|
|
|
end
|
|
|
|
end
|
2014-08-05 20:51:39 -04:00
|
|
|
|
|
|
|
Badge.where("NOT system AND id < 100").each do |badge|
|
|
|
|
new_id = [Badge.maximum(:id) + 1, 100].max
|
|
|
|
old_id = badge.id
|
|
|
|
badge.update_columns(id: new_id)
|
|
|
|
UserBadge.where(badge_id: old_id).update_all(badge_id: new_id)
|
|
|
|
end
|