@hirokiterashima hirokiterashima released this Oct 16, 2017 · 709 commits to master since this release

Assets 2

Major changes

  1. Authoring Tool: Improved performance and usability
  2. Connected Component: you can now import work from multiple sources. Author this using the advanced view for the component.
  3. Graph Component:
    1. Undo changes
    2. Create lines that are dashed
    3. Set x-axis to categories
    4. Show aggregate class data
  4. Classroom Monitor:
    1. Added grade-by-team view
    2. Don't show steps that don't capture any student work
    3. Max scores take into account branching
  5. Updated privacy policy and terms of use page
  6. New Animation component for rendering animations. Allows users to create 2D animations in a x-y coordinate space which can connect to a student's graph
  7. Simplify server codebase and remove unused database tables
  8. Added E2E tests for Authoring Tool and Preview Project

Minor changes

  1. Fixed problem where import step/component sometimes didn't import all the fields
  2. Authoring Tool: started collecting events
  3. Added tag authoring in advanced view for grouping similar components
  4. Admins and researchers can now sign back into their accounts after signing in as another user without having to re-enter your username/password. Student names are anonymized when you're logged in as another teacher

Updating Instructions

(for people upgrading from v5.5)

0. Make backups

Backup your database, curriculum directory, and wise.properties, in case something goes wrong, you can revert back.

1. Ensure that you are running InnoDB engine, not MyISAM.

We moved from MyISAM tables to InnoDB tables in 5.5. If you see problems as you perform queries below, it may be that your tables are still in MyISAM. To convert a specific table from MyISAM to InnoDB, run this mysql query:

alter table TABLE_NAME engine=InnoDB;

If you have many tables in MyISAM, you may want to run a single query to convert them all to InnoDB. See this page https://stackoverflow.com/questions/3856435/how-to-convert-all-tables-from-myisam-into-innodb

2. Combine Runs + Offerings tables into Runs table ([[Issue #867|https://github.com//issues/867]])

Change workgroups.offering_fk to workgroups.run_fk

alter table `workgroups` drop foreign key `FKEC8E502553AE0756`;

alter table `workgroups` 
change column `offering_fk` `run_fk` bigint(20) not null,
drop index `FKEC8E502553AE0756`,
add index `workgroupsRunIndex` (`run_fk` ASC);

alter table `workgroups` 
add constraint `workgroupsRunFK`
  foreign key (`run_fk`)
  references `runs` (`id`);

Drop foreign key from run.id = offering.id

alter table `runs` drop foreign key `FK3597481834F8D3`;

Change runs.id to be auto-increment

set foreign_key_checks=0;
alter table `runs` change column `id` `id` bigint(20) not null auto_increment;
set foreign_key_checks=1;

Drop the offerings table (optional)

drop table offerings;

3. Combine Workgroups + WISEWorkgroups tables into Workgroups table ([[Issue #868|https://github.com//issues/868]])

Add isTeacherWorkgroup column to workgroup table and update values from wiseworkgroup.isTeacherWorkgroup to workgroup.isTeacherWorkgroup

alter table workgroups add column isTeacherWorkgroup bit(1);
update workgroups w, wiseworkgroups ww set w.isTeacherWorkgroup = ww.is_teacher_workgroup where w.id=ww.id;

Add period column to workgroup table and update values from wiseworkgroup.period to workgroup.period

alter table workgroups add column period bigint(20) null;
alter table workgroups add index workgroupsPeriodIndex (period ASC);
alter table workgroups add constraint workgroupsPeriodForeignKey foreign key (period) references groups (id);
update workgroups w, wiseworkgroups ww set w.period = ww.period where w.id=ww.id;

Change the foreign keys and index from achievements.workgroup column from wiseworkgroup to workgroup

alter table achievements drop index workgroupIdIndex;
alter table achievements drop foreign key achievements_to_workgroups_fk;

alter table achievements add index achievementsWorkgroupIdIndex (workgroupId ASC);
alter table achievements add constraint achievementsWorkgroupIdFkConstraint foreign key (workgroupId)
references workgroups (id);

Change the foreign keys and index from annotations.fromWorkgroup and annotations.toWorkgroup columns from wiseworkgroup to workgroup

alter table annotations add constraint annotationsToWorkgroupIdFkConstraint foreign key (toWorkgroupId) references workgroups (id);
alter table annotations add index annotationsToWorkgroupIdIndex (toWorkgroupId ASC);
alter table annotations add constraint annotationsFromWorkgroupIdFkConstraint foreign key (fromWorkgroupId)
references workgroups (id);
alter table annotations add index annotationsFromWorkgroupIdIndex (fromWorkgroupId ASC);

Change the foreign keys and index from notification.fromWorkgroup and notification.toWorkgroup columns from wiseworkgroup to workgroup

alter table notification add constraint notificationToWorkgroupIdFkConstraint foreign key (toWorkgroupId)
references workgroups (id);
alter table notification add index notificationToWorkgroupIdIndex (toWorkgroupId ASC);
alter table notification add constraint notificationFromWorkgroupIdFkConstraint foreign key (fromWorkgroupId)
references workgroups (id);
alter table notification add index notificationFromWorkgroupIdIndex (fromWorkgroupId ASC);

Add foreign key constraints to events.workgroupId column to point to workgroup table

    alter table events
        add constraint eventsWorkgroupIdFkConstraint
        foreign key (workgroupId)
        references workgroups (id);

Add foreign key constraints to notebookItems.workgroupId column to point to workgroup table

    alter table notebookItems
        add constraint notebookItemsWorkgroupIdFkConstraint
        foreign key (workgroupId)
        references workgroups (id);

Add foreign key constraints to studentWork.workgroupId column to point to workgroup table

    alter table notebookItems
        add constraint notebookItemsWorkgroupIdFkConstraint
        foreign key (workgroupId)
        references workgroups (id);

Drop wiseworkgroups table (optional)

drop table wiseworkgroups

4. Add the runId and workgroupId columns to the Events table

ALTER TABLE `events` 
CHANGE COLUMN `runId` `runId` BIGINT(20) NULL DEFAULT NULL ,
CHANGE COLUMN `workgroupId` `workgroupId` BIGINT(20) NULL DEFAULT NULL ,
ADD COLUMN `projectId` BIGINT(20) NULL DEFAULT NULL AFTER `workgroupId`,
ADD COLUMN `userId` BIGINT(20) NULL DEFAULT NULL AFTER `projectId`;

ALTER TABLE `events` 
ADD INDEX `eventsProjectIdIndex` (`projectId` ASC),
ADD INDEX `eventsUserIdIndex` (`userId` ASC);