Bloquer nombre de ticket par jour

Added by Laurent Miralles over 3 years ago

Bonjour,
Savez vous s'il est possible de bloquer le nombre de ticket créé par jour d'assignation?
Ex : je créais 10 tickets avec une date de début au 05/04/18, mais au 11ième que j'essaie de créer ca me bloque parce que j'ai définit la limite à 10 par jour de début.
Merci de votre aide

Replies (4)

RE: Bloquer nombre de ticket par jour - Added by Martin Denizet (redmine.org team member) over 3 years ago

Hello,
That's not possible out of the box but it seems fairly easy to implement (adding a validation in the issue model).
Cette fonctionnalité n'existe pas dans Redmine mais elle semble assez facile à implémenter (en ajoutant une valiadtion dans le model des issues).
Cheers,

RE: Bloquer nombre de ticket par jour - Added by Laurent Miralles over 3 years ago

Parfait Merci martin, pourrais tu juste m'apporter une précision sur ce que tu entends par le fait de l'implémenter dans le modèle des demandes?

RE: Bloquer nombre de ticket par jour - Added by Martin Denizet (redmine.org team member) over 3 years ago

Pseudo-code, untested:

module MyPlugin
  module IssuePatch
    def self.included(base) # :nodoc:
      base.send(:include, InstanceMethods)
      base.class_eval do
        unloadable # Send unloadable so it will not be unloaded in development
        validate issue_creation_limit
      end
    end

    module InstanceMethods
      def issue_creation_limit
         if Issue.where("created_on >= ? AND author_id = ?", Time.zone.now.beginning_of_day, User.current.id).size >= 10
           errors.add("You reached your issue quota for the day")
         end 
      end
    end
  end
end

Issue.send(:include, MyPlugin::IssuePatch)


That would limit issue creation for all users. The next step would be to have UI to configure a quota on a per role basis.
Cheers,

RE: Bloquer nombre de ticket par jour - Added by Martin Denizet (redmine.org team member) over 3 years ago

Create an empty plugin (See dedicated wiki).
Put the code from above in the plugin dir in ./lib/my_plugin/issues_path.rb.
In the plugin's init.rb, load the file:

require_dependency 'my_plugin/issues_patch'


Reload your instance and you should be done!

(1-4/4)