@briri briri released this May 23, 2018 · 627 commits to master since this release

Assets 2


  • Fixed issues with when and where templates are versioned
  • Fixed numerous usability issues on the Templates and Template editing pages
  • Added a Global Notification system (courtesy of the DMP OPIDoR team)
  • Upgraded to the latest versions of Ruby and Rails

This upgrade will require you to:

  • Install Ruby 2.4.4
  • Run rake upgrade:remove_duplicated_template_versions to remove any duplicated versions created by the old codebase
  • Run rake db:migrate to update your templates table, drop an unused table, and add the tables needed for the notification system
  • Run bundle install
  • Run npm install (from the lib/assets/ directory)
  • Run npm run bundle [-- -p (if in production)] (from the lib/assets/ directory)


  • Global Notification system

    • Super admins can now define system messages that are displayed to users when they log into the site
    • Messages can be defined as dismissable, and have a begin and end date
    • Example uses: System maintenance announcements, Funder template changes, etc.
    • New DB tables added to support the notifications: notifications and notification_ackowledgements
  • Upgrade to Ruby 2.4.4 and Rails 4.2.10

    • Upgrade Ruby 2.2.2 -> 2.4.4
    • Upgrade Rails 4.2.7 -> 4.2.10
    • Updated Gemfile to remove version specifications for most gems
    • Updated Gemfile to remove unused gems (rollify, yard, red-carpet, swagger-docs, friendly_id, yaml_db, minitest-rails-capybara, administrate)
    • Dropped unused friendly_id_slugs table that was used by one of those gems
    • Updated all NPM JS dependencies
    • Updated various tests and files to correct deprecation warning messages
  • Template pages refactor

    • Complete refactor of all Template/Phase/Section/Question/Annotation files models, controllers, views, JS
    • Renamed columns in the templates table (migrated->archived, dmptemplate_id->family_id)
    • Removed dirty flag from templates table
    • Extracted and rewrote all of the scopes from models/template.rb to models/scopes/template_scope.rb
    • Moved all template/phase/section/question/question_option controllers to the org_admin namespace and updated routes accordingly
    • Added a new controllers/concerns/versionable.rb concern to aid controllers with determining what changes create a new template version
    • All versioning and customization logic moved from controllers to the models
    • Updated Template edit page so that sections and questions load on demand via AJAX rather than on inital page load
    • Refactored all related JS
    • Added unit and functional tests for all refactored objects
    • Updated test_helper.rb to act as a factory for creating test objects