Chris@0: class Project < ActiveRecord::Base Chris@0: generator_for :name, :method => :next_name Chris@0: generator_for :identifier, :method => :next_identifier_from_object_daddy Chris@0: generator_for :enabled_modules, :method => :all_modules Chris@0: generator_for :trackers, :method => :next_tracker Chris@0: Chris@0: def self.next_name Chris@0: @last_name ||= 'Project 0' Chris@0: @last_name.succ! Chris@0: @last_name Chris@0: end Chris@0: Chris@0: # Project#next_identifier is defined on Redmine Chris@0: def self.next_identifier_from_object_daddy Chris@0: @last_identifier ||= 'project-0000' Chris@0: @last_identifier.succ! Chris@0: @last_identifier Chris@0: end Chris@0: Chris@0: def self.all_modules chris@37: [].tap do |modules| Chris@0: Redmine::AccessControl.available_project_modules.each do |name| Chris@0: modules << EnabledModule.new(:name => name.to_s) Chris@0: end Chris@0: end Chris@0: end Chris@0: Chris@0: def self.next_tracker Chris@0: [Tracker.generate!] Chris@0: end Chris@0: end