Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Redmine Plugin Extension and Development

You're reading from   Redmine Plugin Extension and Development If you'd like to customize Redmine to meet your own precise project management needs, this is the ideal guide to understanding and realizing the full potential of plugins. Full of real-world examples and clear instructions.

Arrow left icon
Product type Paperback
Published in Mar 2014
Publisher
ISBN-13 9781783288748
Length 114 pages
Edition Edition
Languages
Tools
Arrow right icon
Author (1):
Arrow left icon
Alex Bevilacqua Alex Bevilacqua
Author Profile Icon Alex Bevilacqua
Alex Bevilacqua
Arrow right icon
View More author details
Toc

Table of Contents (16) Chapters Close

Redmine Plugin Extension and Development
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
1. Introduction to Redmine Plugins FREE CHAPTER 2. Extending Redmine Using Hooks 3. Permissions and Security 4. Attaching Files to Models 5. Making Models Searchable 6. Interacting with the Activity Stream 7. Managing Plugin Settings 8. Testing Your Plugin Releasing Your Plugin Index

Model preparation


Redmine has implemented a number of internal plugins, which are located under /path/to/redmine/lib/plugins.

These plugins follow the traditional Rails naming idiom of acts_as_* (for more information on this topic, visit http://guides.rubyonrails.org/plugins.html#add-an-acts-as-method-to-active-record), which implies that we'll be including a class level method, which is named the same as the plugin.

The class we'll be extending is the model that our knowledgebase plugin uses to manage articles.

class KbArticle < ActiveRecord::Base
  validates :title, :presence => true
  validates :category_id, :presence => true

  belongs_to :project
  belongs_to :category, :class_name => "KbCategory"
  belongs_to :author,   :class_name => 'User',:foreign_key => 'author_id'

  # class method from Redmine::Acts::Attachable::ClassMethods
  acts_as_attachable

  # class definition continues ...  
End

By including acts_as_attachable in our class, a has-many association is established...

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime
Banner background image