DMSF est un plugin permettant d'ajouter un workflow de gestion documentaire à Redmine. Il a été libéré en 2011 et publié sur Google Code. La dernière news sur le site indique que le mainteneur n'a plus le temps de s'occuper du projet et qu'il laisse tomber. Le projet est donc désormais chez GitHub. La doc d'installation est assez succincte et confuse sur ce dernier. En effet, on y lit que DMSF est compatible avec Redmine 1.[234].x mais juste en dessous Redmine 2.0x est donné comme prérequis à partir de la version 1.4.4.
Le problème est que la version 2 de redmine n'arrivera vraisemblablement sous Debian qu'après la release de Wheezy (qui d'après les oracles n'a jamais été aussi proche…), puisqu'il est dans exp. Le site ne propose aucun lien de téléchargement hormis sur Google Code qui correspond à une version 1.2.2. Ne vous laissez pas avoir (comme moi), la numérotation ne suit en rien celle de redmine et tenter d'installer le plugin sur une 1.4 à partir d'une des branches du repo Git ne mènera à rien. Il faut donc récupérer la 1.2.2 sur Google Code.
J'ai fait une install sans Xapian (la recherche fulltext), je tenterais certainement de l'ajouter plus tard. La procédure est la suivante :
- décompressez l'archive, placez son contenu dans
/usr/share/redmine/vendor/plugins; - vérifiez que www-data peut écrire dans
/usr/share/redmine/public/plugins_assets; - lancez un coup de
rake db:migrate:plugins RAILS_ENV=production. Cela devrait modifier la base pour y ajouter DMSF ; - lancez
rake redmine:dmsf_convert_documents project=identifiant-projet RAILS_ENV="production"pour chaque projet que vous souhaitez convertir ; - redémarrez redmine.
Normalement il accepte de redémarrer et quand vous cliquez sur "DMSF" dans un projet, vous devriez… Vous prendre une erreur 500. C'est du à une modification du fonctionnement des plugins en 1.4 qui doivent déclarer explicitement leurs routes (si j'ai bien compris le fonctionnement de cette usine à gaz), le patch suivant (suivi d'un restart Apache) résoud le problème :
--- ./vendor/plugins/redmine_dmsf/config/routes.rb 2011-07-04 15:36:36.000000000 +0200
+++ ./vendor/plugins/redmine_dmsf/config/routes.rb 2013-03-30 08:25:43.673406115 +0100
@@ -17,6 +17,22 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
ActionController::Routing::Routes.draw do |map|
- map.resources :dmsf
+ map.resources :dmsf, :only => [:new, :create, :show, :edit], :member => {
+ 'edit_root' => :get,
+ 'entries_operation' => :post,
+ 'entries_email' => :post,
+ 'notify_activate' => :post,
+ 'notify_deactivate' => :post,
+ 'save_root' => :post,
+ 'delete_entries' => :post,
+ 'delete' => :post,
+ 'save' => :post
+ }
map.resources :dmsf_files
+ map.connect 'dmsf/:id/dmsf_files/:action', :controller => 'dmsf_files'
+ map.connect 'dmsf/:id/dmsf_state/:action', :controller => 'dmsf_state'
+ map.connect 'dmsf/:id/dmsf_detail/:action', :controller => 'dmsf_detail'
+ map.connect 'dmsf/:id/dmsf_upload/:action', :controller => 'dmsf_upload'
+ map.connect 'dmsf/:id/dmsf_files_copy/:action', :controller => 'dmsf_files_copy'
+ map.connect 'dmsf/dmsf_folders_copy/:action', :controller => 'dmsf_folders_copy'
+ map.connect 'dmsf/:id/user_pref_save/:action', :controller => 'user_pref_save'
end
Et voilà, DMSF est installé. Si jamais il y a un problème de permissions sur /usr/share/redmine/public/plugins_assets, les ressources du plugin ne sont pas copiées (et malgré plusieurs tentatives, même après correction elles ne le sont pas), il suffit de copier à la main /usr/share/redmine/vendor/plugins/redmine_dmsf/assets vers /usr/share/redmine/public/plugins_assets/redmine_dmsf.
En espérant que ça fasse gagner du temps à des gens…