GithubHelp home page GithubHelp logo

zh / redmine_importer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from leovitch/redmine_importer

48.0 21.0 57.0 201 KB

Redmine importer that works with trunk.

Home Page: https://github.com/leovitch/redmine_importer/wiki

Ruby 76.79% HTML 22.68% CSS 0.52%

redmine_importer's Introduction

Redmine Issue Importer

User documentation for this plugin is at github.com/leovitch/redmine_importer/wiki.

This plugin is functional now, including in multiprocess environments. The plugin has been tested on Redmine 1.1, 1.2.0, 2.2-stable, 2.3.2 (report by Jérôme BATAILLE) and 2.6.0.stable. The database is used for intermediate storage.

To install:

  • Prerequisites: Unless you are using ruby-1.9, you’ll need the fastercsv gem (gem install fastercsv as root). Versions 1.4 through 1.5.3 are tested.

  • Download the plugin to your ‘plugins/’ directory. Be sure to maintain the correct folder name, ‘redmine_importer’.

  • Run rake redmine:plugins:migrate RAILS_ENV=production

  • Restart your redmine as appropriate (e.g., ruby script/rails server -e production)

  • Go to the Admin/Projects/../Modules

  • Enable “Importer”

en, de, zh, pl, pt-BR, ru and ja localizations included. The other localizations are up to date, but the zh is a little bit behind. If anyone could update it, it would be appreciated.

User documentation at github.com/leovitch/redmine_importer/wiki.

redmine_importer's People

Contributors

albert361 avatar biinari avatar cforce avatar chocoby avatar darioo avatar douhashi avatar fahadsadah avatar glad2121 avatar leovitch avatar mikoto20000 avatar tatsus avatar tuler avatar utopism avatar victorhaggqvist avatar zh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

redmine_importer's Issues

too many error messages leads to ActionDispatch::Cookies::CookieOverflow

I think this is happening:
Every flash_message (when a user is not found or something) is added by Redmine to a _redmine_session cookie. When this cookie grows too large, the CookieOverflow Exception is raised.

Possible solution:
Don't show the errors as flash messages, but in summary report template.

Please tell me the license

Please tell me the license of this plug-in.

If there is no license, please tell me the following information:

  1. Is this plug-in free?
  2. Can I use this plug-in for commercial?

Internal Error

I have installed your plugin and I am getting an Internal Error when I attempt to upload your sample file "All Standard Fields". I have followed the steps as shown on: https://github.com/leovitch/redmine_importer/wiki/Samplefiles

I am using Redmine 3.0.3, Ruby 2.0.0, Rails 4.2, Windows 7

This is the error I see in my production file:

Started POST "/importer/match" for ::1 at 2015-06-16 09:23:58 -0400
Processing by ImporterController#match as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"uUHfot2aNJuyGtp25wtTPqucRES0/pCz4y1vnDSzrFu3eT0ByTRZ7nbnbVx0afri7spdJyq9LnpLg+qq2+sqsw==", "project_id"=>"5", "file"=>#<ActionDispatch::Http::UploadedFile:0x99e3028 @tempfile=#Tempfile:C:/Users/J40419/AppData/Local/Temp/RackMultipart20150616-2588-1in9yzs.csv, @original_filename="AllStandardFields.csv", @content_type="application/vnd.ms-excel", @headers="Content-Disposition: form-data; name="file"; filename="AllStandardFields.csv"\r\nContent-Type: application/vnd.ms-excel\r\n">, "encoding"=>"U", "splitter"=>",", "wrapper"=>""", "commit"=>"Upload File"}
Current user: admin (id=1)
Completed 500 Internal Server Error in 87ms (ActiveRecord: 6.0ms)

NoMethodError (undefined method find_or_create_by_user_id' for #<Class:0x93e2a28>): activerecord (4.2.1) lib/active_record/dynamic_matchers.rb:26:inmethod_missing'
plugins/redmine_importer/app/controllers/importer_controller.rb:33:in match' actionpack (4.2.1) lib/action_controller/metal/implicit_render.rb:4:insend_action'
actionpack (4.2.1) lib/abstract_controller/base.rb:198:in process_action' actionpack (4.2.1) lib/action_controller/metal/rendering.rb:10:inprocess_action'
actionpack (4.2.1) lib/abstract_controller/callbacks.rb:20:in block in process_action' activesupport (4.2.1) lib/active_support/callbacks.rb:117:incall'
activesupport (4.2.1) lib/active_support/callbacks.rb:117:in call' activesupport (4.2.1) lib/active_support/callbacks.rb:555:inblock (2 levels) in compile'
activesupport (4.2.1) lib/active_support/callbacks.rb:505:in call' activesupport (4.2.1) lib/active_support/callbacks.rb:505:incall'
activesupport (4.2.1) lib/active_support/callbacks.rb:92:in _run_callbacks' activesupport (4.2.1) lib/active_support/callbacks.rb:776:in_run_process_action_callbacks'
activesupport (4.2.1) lib/active_support/callbacks.rb:81:in run_callbacks' actionpack (4.2.1) lib/abstract_controller/callbacks.rb:19:inprocess_action'
actionpack (4.2.1) lib/action_controller/metal/rescue.rb:29:in process_action' actionpack (4.2.1) lib/action_controller/metal/instrumentation.rb:32:inblock in process_action'
activesupport (4.2.1) lib/active_support/notifications.rb:164:in block in instrument' activesupport (4.2.1) lib/active_support/notifications/instrumenter.rb:20:ininstrument'
activesupport (4.2.1) lib/active_support/notifications.rb:164:in instrument' actionpack (4.2.1) lib/action_controller/metal/instrumentation.rb:30:inprocess_action'
actionpack (4.2.1) lib/action_controller/metal/params_wrapper.rb:250:in process_action' activerecord (4.2.1) lib/active_record/railties/controller_runtime.rb:18:inprocess_action'
actionpack (4.2.1) lib/abstract_controller/base.rb:137:in process' actionview (4.2.1) lib/action_view/rendering.rb:30:inprocess'
actionpack (4.2.1) lib/action_controller/metal.rb:196:in dispatch' actionpack (4.2.1) lib/action_controller/metal/rack_delegation.rb:13:indispatch'
actionpack (4.2.1) lib/action_controller/metal.rb:237:in block in action' actionpack (4.2.1) lib/action_dispatch/routing/route_set.rb:74:incall'
actionpack (4.2.1) lib/action_dispatch/routing/route_set.rb:74:in dispatch' actionpack (4.2.1) lib/action_dispatch/routing/route_set.rb:43:inserve'
actionpack (4.2.1) lib/action_dispatch/journey/router.rb:43:in block in serve' actionpack (4.2.1) lib/action_dispatch/journey/router.rb:30:ineach'
actionpack (4.2.1) lib/action_dispatch/journey/router.rb:30:in serve' actionpack (4.2.1) lib/action_dispatch/routing/route_set.rb:819:incall'
rack-openid (1.4.2) lib/rack/openid.rb:98:in call' request_store (1.0.5) lib/request_store/middleware.rb:9:incall'
rack (1.6.1) lib/rack/etag.rb:24:in call' rack (1.6.1) lib/rack/conditionalget.rb:38:incall'
rack (1.6.1) lib/rack/head.rb:13:in call' actionpack-xml_parser (1.0.2) lib/action_dispatch/xml_params_parser.rb:16:incall'
actionpack (4.2.1) lib/action_dispatch/middleware/params_parser.rb:27:in call' actionpack (4.2.1) lib/action_dispatch/middleware/flash.rb:260:incall'
rack (1.6.1) lib/rack/session/abstract/id.rb:225:in context' rack (1.6.1) lib/rack/session/abstract/id.rb:220:incall'
actionpack (4.2.1) lib/action_dispatch/middleware/cookies.rb:560:in call' activerecord (4.2.1) lib/active_record/query_cache.rb:36:incall'
activerecord (4.2.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:649:in call' actionpack (4.2.1) lib/action_dispatch/middleware/callbacks.rb:29:inblock in call'
activesupport (4.2.1) lib/active_support/callbacks.rb:88:in call' activesupport (4.2.1) lib/active_support/callbacks.rb:88:in_run_callbacks'
activesupport (4.2.1) lib/active_support/callbacks.rb:776:in _run_call_callbacks' activesupport (4.2.1) lib/active_support/callbacks.rb:81:inrun_callbacks'
actionpack (4.2.1) lib/action_dispatch/middleware/callbacks.rb:27:in call' actionpack (4.2.1) lib/action_dispatch/middleware/remote_ip.rb:78:incall'
actionpack (4.2.1) lib/action_dispatch/middleware/debug_exceptions.rb:17:in call' actionpack (4.2.1) lib/action_dispatch/middleware/show_exceptions.rb:30:incall'
railties (4.2.1) lib/rails/rack/logger.rb:38:in call_app' railties (4.2.1) lib/rails/rack/logger.rb:20:inblock in call'
activesupport (4.2.1) lib/active_support/tagged_logging.rb:68:in block in tagged' activesupport (4.2.1) lib/active_support/tagged_logging.rb:26:intagged'
activesupport (4.2.1) lib/active_support/tagged_logging.rb:68:in tagged' railties (4.2.1) lib/rails/rack/logger.rb:20:incall'
actionpack (4.2.1) lib/action_dispatch/middleware/request_id.rb:21:in call' rack (1.6.1) lib/rack/methodoverride.rb:22:incall'
rack (1.6.1) lib/rack/runtime.rb:18:in call' activesupport (4.2.1) lib/active_support/cache/strategy/local_cache_middleware.rb:28:incall'
actionpack (4.2.1) lib/action_dispatch/middleware/static.rb:113:in call' rack (1.6.1) lib/rack/sendfile.rb:113:incall'
railties (4.2.1) lib/rails/engine.rb:518:in call' railties (4.2.1) lib/rails/application.rb:164:incall'
rack (1.6.1) lib/rack/lock.rb:17:in call' rack (1.6.1) lib/rack/content_length.rb:15:incall'
rack (1.6.1) lib/rack/handler/webrick.rb:89:in service' C:/Ruby200/lib/ruby/2.0.0/webrick/httpserver.rb:138:inservice'
C:/Ruby200/lib/ruby/2.0.0/webrick/httpserver.rb:94:in run' C:/Ruby200/lib/ruby/2.0.0/webrick/server.rb:295:inblock in start_thread'

I would greatly appreciate any help you can give me!

Error after import, on result page

After import, error raise on the result page (import seems runned correctly):

Started POST "/redmine/importer/result" for 80.13.99.120 at 2014-09-15 10:13:54 +0200
Processing by ImporterController#result as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"xxxxxxxxxxxxxx", "project_id"=>"17", "import_timestamp"=>"2014-09-15 08:12:02", "fields_map"=>{"#"=>"id", "Projet"=>"", "Tracker"=>"tracker", "T\xC3\xA2che parente"=>"parent_issue", "Statut"=>"status", "Priorit\xC3\xA9"=>"priority", "Sujet"=>"subject", "Auteur"=>"author", "Assign\xC3\xA9 \xC3\xA0"=>"assigned_to", "Mis-\xC3\xA0-jour"=>"", "Cat\xC3\xA9gorie"=>"category", "Version cible"=>"fixed_version", "D\xC3\xA9but"=>"start_date", "Ech\xC3\xA9ance"=>"due_date", "Temps estim\xC3\xA9"=>"estimated_hours", "Temps pass\xC3\xA9"=>"", "% r\xC3\xA9alis\xC3\xA9"=>"done_ratio", "Cr\xC3\xA9\xC3\xA9"=>"", "Ferm\xC3\xA9"=>"", "Demandes li\xC3\xA9es"=>"", "Priv\xC3\xA9e"=>"", "Description"=>"description"}, "default_tracker"=>"4", "unique_field"=>"#", "add_categories"=>"true", "add_versions"=>"true", "use_anonymous"=>"true", "commit"=>"Soumettre"}
  Current user: bastien (id=3)
Completed 500 Internal Server Error in 2501.3ms

NoMethodError (undefined method `id' for nil:NilClass):
  plugins/redmine_importer/app/controllers/importer_controller.rb:414:in `block in result'
  /usr/lib/ruby/1.9.1/csv.rb:1792:in `each'
  plugins/redmine_importer/app/controllers/importer_controller.rb:284:in `result'
  actionpack (3.2.19) lib/action_controller/metal/implicit_render.rb:4:in `send_action'
  actionpack (3.2.19) lib/abstract_controller/base.rb:167:in `process_action'
  actionpack (3.2.19) lib/action_controller/metal/rendering.rb:10:in `process_action'
  actionpack (3.2.19) lib/abstract_controller/callbacks.rb:18:in `block in process_action'
  activesupport (3.2.19) lib/active_support/callbacks.rb:480:in `_run__4575701472791106986__process_action__1316357926376829710__callbacks'
  activesupport (3.2.19) lib/active_support/callbacks.rb:405:in `__run_callback'
  activesupport (3.2.19) lib/active_support/callbacks.rb:385:in `_run_process_action_callbacks'
  activesupport (3.2.19) lib/active_support/callbacks.rb:81:in `run_callbacks'
  actionpack (3.2.19) lib/abstract_controller/callbacks.rb:17:in `process_action'
  actionpack (3.2.19) lib/action_controller/metal/rescue.rb:29:in `process_action'
  actionpack (3.2.19) lib/action_controller/metal/instrumentation.rb:30:in `block in process_action'
  activesupport (3.2.19) lib/active_support/notifications.rb:123:in `block in instrument'
  activesupport (3.2.19) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
  activesupport (3.2.19) lib/active_support/notifications.rb:123:in `instrument'
  actionpack (3.2.19) lib/action_controller/metal/instrumentation.rb:29:in `process_action'
  actionpack (3.2.19) lib/action_controller/metal/params_wrapper.rb:207:in `process_action'
  activerecord (3.2.19) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
  actionpack (3.2.19) lib/abstract_controller/base.rb:121:in `process'
  actionpack (3.2.19) lib/abstract_controller/rendering.rb:45:in `process'
  actionpack (3.2.19) lib/action_controller/metal.rb:203:in `dispatch'
  actionpack (3.2.19) lib/action_controller/metal/rack_delegation.rb:14:in `dispatch'
  actionpack (3.2.19) lib/action_controller/metal.rb:246:in `block in action'
  actionpack (3.2.19) lib/action_dispatch/routing/route_set.rb:73:in `call'
  actionpack (3.2.19) lib/action_dispatch/routing/route_set.rb:73:in `dispatch'
  actionpack (3.2.19) lib/action_dispatch/routing/route_set.rb:36:in `call'
  journey (1.0.4) lib/journey/router.rb:68:in `block in call'
  journey (1.0.4) lib/journey/router.rb:56:in `each'
  journey (1.0.4) lib/journey/router.rb:56:in `call'
  actionpack (3.2.19) lib/action_dispatch/routing/route_set.rb:608:in `call'
  rack-openid (1.4.2) lib/rack/openid.rb:98:in `call'
  actionpack (3.2.19) lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'
  rack (1.4.5) lib/rack/etag.rb:23:in `call'
  rack (1.4.5) lib/rack/conditionalget.rb:35:in `call'
  actionpack (3.2.19) lib/action_dispatch/middleware/head.rb:14:in `call'
  actionpack (3.2.19) lib/action_dispatch/middleware/params_parser.rb:21:in `call'
  actionpack (3.2.19) lib/action_dispatch/middleware/flash.rb:242:in `call'
  rack (1.4.5) lib/rack/session/abstract/id.rb:210:in `context'
  rack (1.4.5) lib/rack/session/abstract/id.rb:205:in `call'
  actionpack (3.2.19) lib/action_dispatch/middleware/cookies.rb:341:in `call'
  activerecord (3.2.19) lib/active_record/query_cache.rb:64:in `call'
  activerecord (3.2.19) lib/active_record/connection_adapters/abstract/connection_pool.rb:479:in `call'
  actionpack (3.2.19) lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'
  activesupport (3.2.19) lib/active_support/callbacks.rb:405:in `_run__1154407218322093401__call__3091196600888613365__callbacks'
  activesupport (3.2.19) lib/active_support/callbacks.rb:405:in `__run_callback'
  activesupport (3.2.19) lib/active_support/callbacks.rb:385:in `_run_call_callbacks'
  activesupport (3.2.19) lib/active_support/callbacks.rb:81:in `run_callbacks'
  actionpack (3.2.19) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
  actionpack (3.2.19) lib/action_dispatch/middleware/remote_ip.rb:31:in `call'
  actionpack (3.2.19) lib/action_dispatch/middleware/debug_exceptions.rb:16:in `call'
  actionpack (3.2.19) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
  railties (3.2.19) lib/rails/rack/logger.rb:32:in `call_app'
  railties (3.2.19) lib/rails/rack/logger.rb:16:in `block in call'
  activesupport (3.2.19) lib/active_support/tagged_logging.rb:22:in `tagged'
  railties (3.2.19) lib/rails/rack/logger.rb:16:in `call'
  actionpack (3.2.19) lib/action_dispatch/middleware/request_id.rb:22:in `call'
  rack (1.4.5) lib/rack/methodoverride.rb:21:in `call'
  rack (1.4.5) lib/rack/runtime.rb:17:in `call'
  activesupport (3.2.19) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
  rack (1.4.5) lib/rack/lock.rb:15:in `call'
  actionpack (3.2.19) lib/action_dispatch/middleware/static.rb:63:in `call'
  rack-cache (1.2) lib/rack/cache/context.rb:136:in `forward'
  rack-cache (1.2) lib/rack/cache/context.rb:143:in `pass'
  rack-cache (1.2) lib/rack/cache/context.rb:155:in `invalidate'
  rack-cache (1.2) lib/rack/cache/context.rb:71:in `call!'
  rack-cache (1.2) lib/rack/cache/context.rb:51:in `call'
  railties (3.2.19) lib/rails/engine.rb:484:in `call'
  railties (3.2.19) lib/rails/application.rb:231:in `call'
  railties (3.2.19) lib/rails/railtie/configurable.rb:30:in `method_missing'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/rack/request_handler.rb:96:in `process_request'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/abstract_request_handler.rb:516:in `accept_and_process_next_request'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/abstract_request_handler.rb:274:in `main_loop'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/classic_rails/application_spawner.rb:321:in `start_request_handler'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/classic_rails/application_spawner.rb:275:in `block in handle_spawn_application'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/utils.rb:479:in `safe_fork'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/classic_rails/application_spawner.rb:270:in `handle_spawn_application'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/abstract_server.rb:180:in `start'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/classic_rails/application_spawner.rb:149:in `start'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/spawn_manager.rb:219:in `block (2 levels) in spawn_rails_application'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/abstract_server_collection.rb:132:in `lookup_or_add'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/spawn_manager.rb:214:in `block in spawn_rails_application'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/abstract_server_collection.rb:82:in `block in synchronize'
  <internal:prelude>:10:in `synchronize'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/spawn_manager.rb:213:in `spawn_rails_application'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/spawn_manager.rb:132:in `spawn_application'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/spawn_manager.rb:275:in `handle_spawn_application'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
  /usr/share/phusion-passenger/helper-scripts/passenger-spawn-server:99:in `<main>'

Error updating parent issue only, without importing childs

Environment:

  • Redmine version 2.3.3.stable
  • Ruby version 1.9.3-p194 (2012-04-20) [x86_64-linux]
  • Rails version 3.2.13
  • Environment production
  • Database adapter Mysql2
    Redmine plugins:
  • redmine_better_gantt_chart 0.9.0
  • redmine_gsc_plantillas 0.1.0
  • redmine_importer 1.2.2
  • redmine_issue_templates 0.0.8
  • redmine_wiki_extensions 0.6.5
  • redmine_wiki_lists 0.0.4
  • sidebar_hide 0.0.5
  • traceability_matrix 0.2.3
  • wiki_issue_fields 0.4.3

Context :

  • I am trying to import a list of issues in order to update them.
  • This issues already exist in database, and some of them have children
  • The tracker type of parent issues is different of the tracker type of children issues (lets say parents issues are "feature" and children are "defect")
    • I am only importing (thus updating) the parents. Not the childern

Behavior :

  • Issues that have no children are properly imported, and updated.
  • When the first issue that have a children is meet, it causes a failure that stops the importing process.

Result and Logs :

  • The result web page shows an "Internal Error" message
  • The log file shows :

Completed 500 Internal Server Error in 568ms

NoMethodError (undefined method >' for nil:NilClass): app/models/issue.rb:159:increate_or_update'

  • With my debbuging environment, I found that the failure appear in file importer_controller.rb
    ligne 489 "unless issue.save"

Question is :

  • is it a mis-use or mis-understanding of myself ?
  • does your plugin need an update ?

Error updating existing issues, Redmine 3.1 (solved)

I was not able to update existing issue during import.

In the file production.log in the folder \redmine\log, I noticed the error :

NoMethodError (undefined method `project_id' for #<Issue::ActiveRecord_Relation:0x0000000f0c64a8>):
  lib/redmine/sudo_mode.rb:63:in `sudo_mode'

After investigation and debugging session, I have located the problem in the file importer_controller.rb, line 141

140   if unique_attr == "id"
141       issues = [Issue.where(:id => attr_value)]
142   else

The type of the array "issues" is Issue::ActiveRecord_Relation, instead of Issue, which I whould expect. That is the reason why, afterward, I get the error undefined method `project_id'.

Solution :
I have modified the source code as follow.

140   if unique_attr == "id"
141       issues = Issue.where(:id => attr_value).to_a
142   else

It is working normally now.

Redmine 3.2 bug

Dear Sir,

Hope you are doing well.

I have tried your plugin and it is working great for importing new issues.

But when trying to use the Update Issue feature and hit the submit button; i get this page is not working "HTTP ERROR 500"
1

Kindly your support.

Thanks.

more user fiendly error handling

Please make the error handlung more user friendly.
If "no" file for uploaded is selcted, either when cliking on the import button shall show an user undertstandable error message like "you habe to select a spread sheet in csv format for import first" or even the button shall be disabled as long there is no file selected.

Furthermore the plugin shall check for format of the file uploaded, and show an user undertstandable error message if the format is wrong instead of a general rails apllication error.

Importer Broken

Redmine version --- 2.3.3.stable
After submitting a test csv:

Started GET "/redmine/importer/index?project_id=test" for x.x.x.x at Thu Mar 13 16:49:07 -0400 2014
Processing by ImporterController#index as HTML
Parameters: {"project_id"=>"test"}
Current user: jmarlin (id=3)
Rendered plugins/redmine_importer/app/views/importer/index.html.erb within layouts/base (24.8ms)
Completed 200 OK in 566ms (Views: 377.0ms | ActiveRecord: 17.3ms)
Started POST "/redmine/importer/match" for 10.5.1.132 at Thu Mar 13 16:49:16 -0400 2014
Processing by ImporterController#match as HTML
Parameters: {"project_id"=>"55", "encoding"=>"U", "authenticity_token"=>"", "splitter"=>",", "wrapper"=>""", "file"=>#<ActionDispatch::Http::UploadedFile:0x7f6879358750 @tempfile=#File:/tmp/RackMultipart20140313-21323-1wrazyh-0, @headers="Content-Disposition: form-data; name="file"; filename="test.csv"\r\nContent-Type: text/csv\r\n", @content_type="text/csv", @original_filename="test.csv">, "utf8"=>"\342\234\223", "commit"=>"Upload File"}
Current user: jmarlin (id=3)
Completed 500 Internal Server Error in 159ms

ArgumentError (wrong number of arguments (2 for 0)):
plugins/redmine_importer/app/controllers/importer_controller.rb:51:in initialize' plugins/redmine_importer/app/controllers/importer_controller.rb:51:innew'
plugins/redmine_importer/app/controllers/importer_controller.rb:51:in match' actionpack (3.2.13) lib/action_controller/metal/implicit_render.rb:4:insend_action'
actionpack (3.2.13) lib/action_controller/metal/implicit_render.rb:4:in send_action' actionpack (3.2.13) lib/abstract_controller/base.rb:167:inprocess_action'
actionpack (3.2.13) lib/action_controller/metal/rendering.rb:10:in process_action' actionpack (3.2.13) lib/abstract_controller/callbacks.rb:18:inprocess_action'
activesupport (3.2.13) lib/active_support/callbacks.rb:469:in _run__1642363306__process_action__1937525029__callbacks' activesupport (3.2.13) lib/active_support/callbacks.rb:405:insend'
activesupport (3.2.13) lib/active_support/callbacks.rb:405:in __run_callback' activesupport (3.2.13) lib/active_support/callbacks.rb:385:in_run_process_action_callbacks'
activesupport (3.2.13) lib/active_support/callbacks.rb:81:in send' activesupport (3.2.13) lib/active_support/callbacks.rb:81:inrun_callbacks'
actionpack (3.2.13) lib/abstract_controller/callbacks.rb:17:in process_action' actionpack (3.2.13) lib/action_controller/metal/rescue.rb:29:inprocess_action'
actionpack (3.2.13) lib/action_controller/metal/instrumentation.rb:30:in process_action' activesupport (3.2.13) lib/active_support/notifications.rb:123:ininstrument'
activesupport (3.2.13) lib/active_support/notifications/instrumenter.rb:20:in instrument' activesupport (3.2.13) lib/active_support/notifications.rb:123:ininstrument'
actionpack (3.2.13) lib/action_controller/metal/instrumentation.rb:29:in process_action' actionpack (3.2.13) lib/action_controller/metal/params_wrapper.rb:207:inprocess_action'
activerecord (3.2.13) lib/active_record/railties/controller_runtime.rb:18:in process_action' actionpack (3.2.13) lib/abstract_controller/base.rb:121:inprocess'
actionpack (3.2.13) lib/abstract_controller/rendering.rb:45:in process' actionpack (3.2.13) lib/action_controller/metal.rb:203:indispatch'
actionpack (3.2.13) lib/action_controller/metal/rack_delegation.rb:14:in dispatch' actionpack (3.2.13) lib/action_controller/metal.rb:246 actionpack (3.2.13) lib/action_dispatch/routing/route_set.rb:73:incall'
actionpack (3.2.13) lib/action_dispatch/routing/route_set.rb:73:in dispatch' actionpack (3.2.13) lib/action_dispatch/routing/route_set.rb:36:incall'
journey (1.0.4) lib/journey/router.rb:68:in call' journey (1.0.4) lib/journey/router.rb:56:ineach'
journey (1.0.4) lib/journey/router.rb:56:in call' actionpack (3.2.13) lib/action_dispatch/routing/route_set.rb:612:incall'
rack-openid (1.3.1) lib/rack/openid.rb:98:in call' actionpack (3.2.13) lib/action_dispatch/middleware/best_standards_support.rb:17:incall'
rack (1.4.5) lib/rack/etag.rb:23:in call' rack (1.4.5) lib/rack/conditionalget.rb:35:incall'
actionpack (3.2.13) lib/action_dispatch/middleware/head.rb:14:in call' actionpack (3.2.13) lib/action_dispatch/middleware/params_parser.rb:21:incall'
actionpack (3.2.13) lib/action_dispatch/middleware/flash.rb:242:in call' rack (1.4.5) lib/rack/session/abstract/id.rb:210:incontext'
rack (1.4.5) lib/rack/session/abstract/id.rb:205:in call' actionpack (3.2.13) lib/action_dispatch/middleware/cookies.rb:341:incall'
activerecord (3.2.13) lib/active_record/query_cache.rb:64:in call' activerecord (3.2.13) lib/active_record/connection_adapters/abstract/connection_pool.rb:479:incall'
actionpack (3.2.13) lib/action_dispatch/middleware/callbacks.rb:28:in call' activesupport (3.2.13) lib/active_support/callbacks.rb:405:in_run__230975519__call__4__callbacks'
activesupport (3.2.13) lib/active_support/callbacks.rb:405:in send' activesupport (3.2.13) lib/active_support/callbacks.rb:405:in__run_callback'
activesupport (3.2.13) lib/active_support/callbacks.rb:385:in _run_call_callbacks' activesupport (3.2.13) lib/active_support/callbacks.rb:81:insend'
activesupport (3.2.13) lib/active_support/callbacks.rb:81:in run_callbacks' actionpack (3.2.13) lib/action_dispatch/middleware/callbacks.rb:27:incall'
actionpack (3.2.13) lib/action_dispatch/middleware/remote_ip.rb:31:in call' actionpack (3.2.13) lib/action_dispatch/middleware/debug_exceptions.rb:16:incall'
actionpack (3.2.13) lib/action_dispatch/middleware/show_exceptions.rb:56:in call' railties (3.2.13) lib/rails/rack/logger.rb:32:incall_app'
railties (3.2.13) lib/rails/rack/logger.rb:16:in call' activesupport (3.2.13) lib/active_support/tagged_logging.rb:22:intagged'
railties (3.2.13) lib/rails/rack/logger.rb:16:in call' actionpack (3.2.13) lib/action_dispatch/middleware/request_id.rb:22:incall'
rack (1.4.5) lib/rack/methodoverride.rb:21:in call' rack (1.4.5) lib/rack/runtime.rb:17:incall'
activesupport (3.2.13) lib/active_support/cache/strategy/local_cache.rb:72:in call' rack (1.4.5) lib/rack/lock.rb:15:incall'
actionpack (3.2.13) lib/action_dispatch/middleware/static.rb:63:in call' rack-cache (1.2) lib/rack/cache/context.rb:136:inforward'
rack-cache (1.2) lib/rack/cache/context.rb:143:in pass' rack-cache (1.2) lib/rack/cache/context.rb:155:ininvalidate'
rack-cache (1.2) lib/rack/cache/context.rb:71:in call!' rack-cache (1.2) lib/rack/cache/context.rb:51:incall'
railties (3.2.13) lib/rails/engine.rb:479:in call' railties (3.2.13) lib/rails/application.rb:223:incall'
railties (3.2.13) lib/rails/railtie/configurable.rb:30:in send' railties (3.2.13) lib/rails/railtie/configurable.rb:30:inmethod_missing'
/usr/lib/ruby/1.8/phusion_passenger/rack/request_handler.rb:97:in process_request' /usr/lib/ruby/1.8/phusion_passenger/abstract_request_handler.rb:520:inaccept_and_process_next_request'
/usr/lib/ruby/1.8/phusion_passenger/abstract_request_handler.rb:274:in main_loop' /usr/lib/ruby/1.8/phusion_passenger/classic_rails/application_spawner.rb:321:instart_request_handler'
/usr/lib/ruby/1.8/phusion_passenger/classic_rails/application_spawner.rb:275:in send' /usr/lib/ruby/1.8/phusion_passenger/classic_rails/application_spawner.rb:275:inhandle_spawn_application'
/usr/lib/ruby/1.8/phusion_passenger/utils.rb:470:in safe_fork' /usr/lib/ruby/1.8/phusion_passenger/classic_rails/application_spawner.rb:270:inhandle_spawn_application'
/usr/lib/ruby/1.8/phusion_passenger/abstract_server.rb:357:in __send__' /usr/lib/ruby/1.8/phusion_passenger/abstract_server.rb:357:in server_main_loop'
/usr/lib/ruby/1.8/phusion_passenger/abstract_server.rb:206:instart_synchronously' /usr/lib/ruby/1.8/phusion_passenger/abstract_server.rb:180:in start'
/usr/lib/ruby/1.8/phusion_passenger/classic_rails/application_spawner.rb:149:instart' /usr/lib/ruby/1.8/phusion_passenger/spawn_manager.rb:219:in spawn_rails_application'
/usr/lib/ruby/1.8/phusion_passenger/abstract_server_collection.rb:132:inlookup_or_add' /usr/lib/ruby/1.8/phusion_passenger/spawn_manager.rb:214:in spawn_rails_application'
/usr/lib/ruby/1.8/phusion_passenger/abstract_server_collection.rb:82:insynchronize' /usr/lib/ruby/1.8/phusion_passenger/abstract_server_collection.rb:79:in synchronize'
/usr/lib/ruby/1.8/phusion_passenger/spawn_manager.rb:213:inspawn_rails_application' /usr/lib/ruby/1.8/phusion_passenger/spawn_manager.rb:132:in spawn_application'
/usr/lib/ruby/1.8/phusion_passenger/spawn_manager.rb:275:inhandle_spawn_application' /usr/lib/ruby/1.8/phusion_passenger/abstract_server.rb:357:in send'
/usr/lib/ruby/1.8/phusion_passenger/abstract_server.rb:357:inserver_main_loop' /usr/lib/ruby/1.8/phusion_passenger/abstract_server.rb:206:in start_synchronously'
/usr/share/phusion-passenger/helper-scripts/passenger-spawn-server:99

Error on importing wrong date format

Mapping csv fields with date formats incompatible to the Redmine date format cause a 500 Internal Server Error. production.log shows the following:

ArgumentError (invalid date):
  plugins/redmine_importer/app/controllers/importer_controller.rb:403:in `parse'
  plugins/redmine_importer/app/controllers/importer_controller.rb:403:in `block in result'
  /usr/lib/ruby/1.9.1/csv.rb:1792:in `each'
  plugins/redmine_importer/app/controllers/importer_controller.rb:284:in `result'
  actionpack (3.2.21) lib/action_controller/metal/implicit_render.rb:4:in `send_action'
  actionpack (3.2.21) lib/abstract_controller/base.rb:167:in `process_action'
  actionpack (3.2.21) lib/action_controller/metal/rendering.rb:10:in `process_action'
  actionpack (3.2.21) lib/abstract_controller/callbacks.rb:18:in `block in process_action'
  activesupport (3.2.21) lib/active_support/callbacks.rb:491:in `_run__470077945381553923__process_action__1222523605469458489__callbacks'
  activesupport (3.2.21) lib/active_support/callbacks.rb:405:in `__run_callback'
  activesupport (3.2.21) lib/active_support/callbacks.rb:385:in `_run_process_action_callbacks'
  activesupport (3.2.21) lib/active_support/callbacks.rb:81:in `run_callbacks'
  actionpack (3.2.21) lib/abstract_controller/callbacks.rb:17:in `process_action'
  actionpack (3.2.21) lib/action_controller/metal/rescue.rb:29:in `process_action'
  actionpack (3.2.21) lib/action_controller/metal/instrumentation.rb:30:in `block in process_action'
  activesupport (3.2.21) lib/active_support/notifications.rb:123:in `block in instrument'
  activesupport (3.2.21) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
  activesupport (3.2.21) lib/active_support/notifications.rb:123:in `instrument'
  actionpack (3.2.21) lib/action_controller/metal/instrumentation.rb:29:in `process_action'
  actionpack (3.2.21) lib/action_controller/metal/params_wrapper.rb:207:in `process_action'
  activerecord (3.2.21) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
  actionpack (3.2.21) lib/abstract_controller/base.rb:121:in `process'
  actionpack (3.2.21) lib/abstract_controller/rendering.rb:45:in `process'
  actionpack (3.2.21) lib/action_controller/metal.rb:203:in `dispatch'
  actionpack (3.2.21) lib/action_controller/metal/rack_delegation.rb:14:in `dispatch'
  actionpack (3.2.21) lib/action_controller/metal.rb:246:in `block in action'
  actionpack (3.2.21) lib/action_dispatch/routing/route_set.rb:73:in `call'
  actionpack (3.2.21) lib/action_dispatch/routing/route_set.rb:73:in `dispatch'
  actionpack (3.2.21) lib/action_dispatch/routing/route_set.rb:36:in `call'
  journey (1.0.4) lib/journey/router.rb:68:in `block in call'
  journey (1.0.4) lib/journey/router.rb:56:in `each'
  journey (1.0.4) lib/journey/router.rb:56:in `call'
  actionpack (3.2.21) lib/action_dispatch/routing/route_set.rb:608:in `call'
  rack-openid (1.4.2) lib/rack/openid.rb:98:in `call'
  request_store (1.0.5) lib/request_store/middleware.rb:9:in `call'
  actionpack (3.2.21) lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'
  rack (1.4.5) lib/rack/etag.rb:23:in `call'
  rack (1.4.5) lib/rack/conditionalget.rb:35:in `call'
  actionpack (3.2.21) lib/action_dispatch/middleware/head.rb:14:in `call'
  actionpack (3.2.21) lib/action_dispatch/middleware/params_parser.rb:21:in `call'
  plugins/redmine_dmsf/lib/redmine_dmsf/webdav/no_parse.rb:33:in `call'
  actionpack (3.2.21) lib/action_dispatch/middleware/flash.rb:242:in `call'
  rack (1.4.5) lib/rack/session/abstract/id.rb:210:in `context'
  rack (1.4.5) lib/rack/session/abstract/id.rb:205:in `call'
  actionpack (3.2.21) lib/action_dispatch/middleware/cookies.rb:341:in `call'
  activerecord (3.2.21) lib/active_record/query_cache.rb:64:in `call'
  activerecord (3.2.21) lib/active_record/connection_adapters/abstract/connection_pool.rb:479:in `call'
  actionpack (3.2.21) lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'
  activesupport (3.2.21) lib/active_support/callbacks.rb:405:in `_run__462949556419080921__call__4397491775095193132__callbacks'
  activesupport (3.2.21) lib/active_support/callbacks.rb:405:in `__run_callback'
  activesupport (3.2.21) lib/active_support/callbacks.rb:385:in `_run_call_callbacks'
  activesupport (3.2.21) lib/active_support/callbacks.rb:81:in `run_callbacks'
  actionpack (3.2.21) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
  actionpack (3.2.21) lib/action_dispatch/middleware/remote_ip.rb:31:in `call'
  actionpack (3.2.21) lib/action_dispatch/middleware/debug_exceptions.rb:16:in `call'
  actionpack (3.2.21) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
  railties (3.2.21) lib/rails/rack/logger.rb:32:in `call_app'
  railties (3.2.21) lib/rails/rack/logger.rb:16:in `block in call'
  activesupport (3.2.21) lib/active_support/tagged_logging.rb:22:in `tagged'
  railties (3.2.21) lib/rails/rack/logger.rb:16:in `call'
  actionpack (3.2.21) lib/action_dispatch/middleware/request_id.rb:22:in `call'
  rack (1.4.5) lib/rack/methodoverride.rb:21:in `call'
  rack (1.4.5) lib/rack/runtime.rb:17:in `call'
  activesupport (3.2.21) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
  rack (1.4.5) lib/rack/lock.rb:15:in `call'
  actionpack (3.2.21) lib/action_dispatch/middleware/static.rb:83:in `call'
  rack-cache (1.2) lib/rack/cache/context.rb:136:in `forward'
  rack-cache (1.2) lib/rack/cache/context.rb:143:in `pass'
  rack-cache (1.2) lib/rack/cache/context.rb:155:in `invalidate'
  rack-cache (1.2) lib/rack/cache/context.rb:71:in `call!'
  rack-cache (1.2) lib/rack/cache/context.rb:51:in `call'
  railties (3.2.21) lib/rails/engine.rb:484:in `call'
  railties (3.2.21) lib/rails/application.rb:231:in `call'
  railties (3.2.21) lib/rails/railtie/configurable.rb:30:in `method_missing'
  /var/lib/gems/1.9.1/gems/passenger-4.0.20/lib/phusion_passenger/rack/thread_handler_extension.rb:77:in `process_request'
  /var/lib/gems/1.9.1/gems/passenger-4.0.20/lib/phusion_passenger/request_handler/thread_handler.rb:140:in `accept_and_process_next_request'
  /var/lib/gems/1.9.1/gems/passenger-4.0.20/lib/phusion_passenger/request_handler/thread_handler.rb:108:in `main_loop'
  /var/lib/gems/1.9.1/gems/passenger-4.0.20/lib/phusion_passenger/request_handler.rb:441:in `block (3 levels) in start_threads'

The date format used was the following: 07/23/2014 5:10 PM

Update and new records problem

I am unable to both update old issues and add new ones from one textfile containing both existing issues and new ones. Looks like I have to identify the the new issues and import them from a file without existing issues.

My issues in Redmine have a user-defined field to hold a unique issuID from an external system. I want to update old issues in Redmine and add any new ones from the external dataset. Apparently this is not possible.

I match the "Select unique-valued column" with the column for the corresponding user-defined field.

If I check "Update existing issues" I get a warning for the new record (Warning: Could not update issue 1 below, no match for the value OJ015781 were found), and the new issue is not added. The existing issues are updated.
I would expect this behavior if I check "Ignore non-existant issues", but this also happens when this is unchecked. Only the warning is ignored.

If I dont check "Update existing issues" all records are imported as new issues, leading to duplicated issues in redmine for the existing "unique" external issuID.

Is this a bug, a missing feature or am I missing something?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.