Skip to content

rubyforgood/discourse-ticketing

 
 

Repository files navigation

Tickets! In Discourse!

Development

The development instance of Discourse will need the tags and tag groups this plugin expects. Drop the content below in your development Discourse Rails root at db/seeds.rb, then run rake db:seed to ensure tagging in enabled and that the expected tags exist with the correct permissions.

SiteSetting.set(:tagging_enabled, true)
SiteSetting.set(:tag_style, "box")
SiteSetting.set(:tags_listed_by_group, true)

def tag_factory(tags=[])
  tags.map do |tag_name|
    Tag.find_or_create_by(name: tag_name)
  end
end

staff_tags = tag_factory %w(kb ticket)

priority_tags = tag_factory %w(priority-high
                   priority-immediate
                   priority-low
                   priority-normal
                   priority-urgent
                  )

reason_tags = tag_factory %w(reason-appealforhelp
                 reason-bademail
                 reason-cancelaccount
                 reason-confirmemail
                 reason-coreapp
                 reason-exchange
                 reason-forumpost
                 reason-forumtopic
                 reason-memberprofile
                 reason-networkinvite
                 reason-nps
                 reason-onboarding
                 reason-orgprofile
                 reason-partnership
                 reason-resource
                 reason-skypecall
                 reason-topicmerge
                 reason-username
                 reason-webinar
                )

status_tags = tag_factory %w(status-backburner
                             status-new
                             status-resolved
                             status-triaging
                             status-underway
                             status-waiting
                            )

ticket_tag = Tag.find_by(name: "ticket")
staff = Group::AUTO_GROUPS[:staff]
full_permission = TagGroupPermission.permission_types[:full]

staff_tag_group = TagGroup.find_or_create_by(name: "Staff")
staff_tag_group.tags = staff_tags
staff_tag_group.permissions = [[staff, full_permission]]
staff_tag_group.save!

priority_tag_group = TagGroup.find_or_create_by(name: "Ticket Priority")
priority_tag_group.parent_tag = ticket_tag
priority_tag_group.tags = priority_tags
priority_tag_group.permissions = [[staff, full_permission]]
priority_tag_group.one_per_topic = true
priority_tag_group.save!

reason_tag_group = TagGroup.find_or_create_by(name: "Ticket Reason")
reason_tag_group.parent_tag = ticket_tag
reason_tag_group.tags = reason_tags
reason_tag_group.permissions = [[staff, full_permission]]
reason_tag_group.save!

status_tag_group = TagGroup.find_or_create_by(name: "Ticket Status")
status_tag_group.parent_tag = ticket_tag
status_tag_group.tags = status_tags
status_tag_group.permissions = [[staff, full_permission]]
status_tag_group.one_per_topic = true
status_tag_group.save!

About

Ticketing system for Discourse

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Ruby 68.8%
  • HTML 15.0%
  • JavaScript 13.6%
  • CSS 2.6%