PacktLib: Redmine Plugin Extension and Development

Redmine Plugin Extension and Development


About the Author

About the Reviewers


Introduction to Redmine Plugins

An introduction to our sample plugin

Generating a new plugin

Diving into the initialization file


Extending Redmine Using Hooks

Understanding hooks

View hooks

Controller hooks

Model hooks

Helper hooks

A sample view hook implementation


Permissions and Security

Summarizing Redmine's permission system

Declaring custom permissions

Ensuring access restrictions in models, views, and controllers

Understanding custom content access control


Attaching Files to Models

Model preparation

Enabling attachments in our views

Controller modifications to accommodate attachments

Listing and managing attachments

Managing attachment permissions


Making Models Searchable

Registering our plugin

Preparing our models to be searched

Configuring search options

Filtering search results using custom permissions

Including article content in the search


Interacting with the Activity Stream

Overview of the activity stream

Preparing our model

Registering our model

Configuring an activity provider

Customizing activity entries


Managing Plugin Settings

An overview of Redmine's global plugin settings

Enabling settings management

Configuration management

Exposing plugin methods to the settings partial

Accessing our settings


Testing Your Plugin

Testing infrastructure layout

Basics of test fixtures

Running tests

Writing functional tests

Writing integration tests

Writing unit tests

Preparing a test database

Continuous integration with Travis


Releasing Your Plugin

Releasing Your Plugin

Releasing Your Plugin

Releasing Your Plugin

Releasing Your Plugin

Releasing Your Plugin