Patch #27659
redmine_plugin_model_generator improvements(fixes and timestamps)
Status: | Closed | Start date: | ||
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | % Done: | 0% | ||
Category: | Plugin API | |||
Target version: | 4.1.0 |
Description
- parent option not working
- migration option not working
- Timestamp for migrations
It would be really nice to add this to the migration generator for plugins.
Related issues
Associated revisions
redmine_plugin_model_generator improvements (#27659).
Patch by Javier Menéndez Rizo.
History
#1
Updated by Toshi MARUYAMA about 3 years ago
- Related to Defect #11024: redmine_plugin_model generator does not create the migration added
#2
Updated by Toshi MARUYAMA about 3 years ago
Javier Menéndez Rizo wrote:
Problems fixed:
- parent option not working
- migration option not working
Please explain more details.
AFAIK Redmine plugin is based old Rails engines, but current Redmine does not implement full feature of Rails engines.
#3
Updated by Javier Menéndez Rizo about 3 years ago
- parent option: before the patch the parent option do nothing because in the model.rb template is not defined
Before patch model.rb template only inherits from ActiveRecord::Base
class <%= @model_class %> < ActiveRecord::Base
After patch model.rb template uses the method parent_class_name to calculate the parent and put it on the template
class <%= @model_class %> < <%= parent_class_name.classify %>
- migration option: before the patch the generator alway generates the migration file, even if you pass --no-migration
After patch redmine_plugin_model_generator.rb i put a guard clause for generate the migration or not
return unless options[:migration] migration_filename = "%.14d_#{@migration_filename}.rb" % migration_number template "migration.rb", "#{plugin_path}/db/migrate/#{migration_filename}"
#4
Updated by Javier Menéndez Rizo about 3 years ago
New feature:
Timestamps in the name of the generated migration file, right now redmine plugins generates the migrations in this form:
001_create_polls.rb
After patch
20171127212003_create_polls.rb
#5
Updated by Toshi MARUYAMA about 3 years ago
OK, I see.
On trunk r17132:
$ rails generate redmine_plugin_model --help Usage: rails generate redmine_plugin_model NAME MODEL [field[:type][:index] field[:type][:index]] [options] Options: [--skip-namespace], [--no-skip-namespace] # Skip namespace (affects only isolated applications) [--migration], [--no-migration] # Indicates when to generate migration [--timestamps], [--no-timestamps] # Indicates when to generate timestamps [--parent=PARENT] # The parent class for the generated model [--indexes], [--no-indexes] # Add indexes for references and belongs_to columns # Default: true Runtime options: -f, [--force] # Overwrite files that already exist -p, [--pretend], [--no-pretend] # Run but do not make any changes -q, [--quiet], [--no-quiet] # Suppress status output -s, [--skip], [--no-skip] # Skip files that already exist Description: Generates a plugin model. Examples: bundle exec rails generate redmine_plugin_model meetings pool
#6
Updated by Toshi MARUYAMA almost 3 years ago
- Target version set to 4.1.0
#7
Updated by Jean-Philippe Lang over 1 year ago
- Category set to Plugin API
- Status changed from New to Closed
- Assignee set to Jean-Philippe Lang
Committed, thanks.