Skip to content

Commit

Permalink
Use "Improvement Task" as new nomenclature (#7679)
Browse files Browse the repository at this point in the history
* naive s/card/task

* naive directory rename

* naive new files

* fix constants

* fix constants and remnant fetchCards

* fix tests

* more migrations

* s/distask/discard

* s/task/card when talking about states

* Fix references to state cards.

* more fixes

* s/discarded/isObsolete
  • Loading branch information
brianrodri committed Sep 27, 2019
1 parent c315fe2 commit 77343ff
Show file tree
Hide file tree
Showing 29 changed files with 488 additions and 488 deletions.
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Validating CODEOWNERS rules …
Expand Up @@ -231,7 +231,7 @@
/core/templates/dev/head/domain/statistics/ @brianrodri
/core/templates/dev/head/pages/exploration-editor-page/improvements-tab/ @brianrodri
/core/templates/dev/head/pages/exploration-editor-page/statistics-tab/ @brianrodri
/core/templates/dev/head/services/ImprovementCardService*.ts @brianrodri
/core/templates/dev/head/services/ImprovementTaskService*.ts @brianrodri
/core/templates/dev/head/services/ImprovementsService*.ts @brianrodri
/core/templates/dev/head/services/MessengerService.ts @brianrodri
/core/templates/dev/head/services/Playthrough*.ts @brianrodri
Expand Down
14 changes: 7 additions & 7 deletions core/templates/dev/head/css/oppia.css
Expand Up @@ -2986,7 +2986,7 @@ md-card.preview-conversation-skin-supplemental-card {
padding: 0;
}

.oppia-improvement-card {
.oppia-improvement-task {
background-color: #fff;
margin-bottom: 30px;
margin-left: auto;
Expand All @@ -2995,7 +2995,7 @@ md-card.preview-conversation-skin-supplemental-card {
padding: 32px 32px 24px 32px;
}

.oppia-improvement-closed-card {
.oppia-improvement-closed-task {
background-color: #dadada;
margin-bottom: 30px;
margin-left: auto;
Expand All @@ -3004,29 +3004,29 @@ md-card.preview-conversation-skin-supplemental-card {
padding: 32px 32px 24px 32px;
}

.oppia-improvement-card-header {
.oppia-improvement-task-header {
padding: 0 0 24px 0;
display: flex;
}

.oppia-improvement-closed-card-header {
.oppia-improvement-closed-task-header {
padding: 0;
display: flex;
}

.oppia-improvement-card-header-title {
.oppia-improvement-task-header-title {
flex-grow: 1;
padding: 0;
padding-right: 32px;
margin: 0;
}

.oppia-improvement-card-header-status-pill {
.oppia-improvement-task-header-status-pill {
flex-grow: 0;
text-align: right;
}

.oppia-improvement-card-footer {
.oppia-improvement-task-footer {
padding: 24px 0 0 0;
text-align: right;
}
Expand Down
Expand Up @@ -13,7 +13,7 @@
// limitations under the License.

/**
* @fileoverview Factory for creating Answer details Cards in the Improvements
* @fileoverview Factory for creating Answer details Tasks in the Improvements
* Tab.
*/

Expand All @@ -26,15 +26,15 @@ require('pages/exploration-editor-page/services/' +

require('domain/statistics/statistics-domain.constants.ajs.ts');

angular.module('oppia').factory('AnswerDetailsImprovementCardObjectFactory', [
angular.module('oppia').factory('AnswerDetailsImprovementTaskObjectFactory', [
'ImprovementActionButtonObjectFactory', 'ImprovementModalService',
'LearnerAnswerDetailsDataService', 'ANSWER_DETAILS_IMPROVEMENT_CARD_TYPE',
'LearnerAnswerDetailsDataService', 'ANSWER_DETAILS_IMPROVEMENT_TASK_TYPE',
'STATUS_NOT_ACTIONABLE', 'STATUS_OPEN',
function(
ImprovementActionButtonObjectFactory, ImprovementModalService,
LearnerAnswerDetailsDataService, ANSWER_DETAILS_IMPROVEMENT_CARD_TYPE,
LearnerAnswerDetailsDataService, ANSWER_DETAILS_IMPROVEMENT_TASK_TYPE,
STATUS_NOT_ACTIONABLE, STATUS_OPEN) {
var AnswerDetailsImprovementCard = function(learnerAnswerDetails) {
var AnswerDetailsImprovementTask = function(learnerAnswerDetails) {
this._learnerAnswerDetails = learnerAnswerDetails;
this._actionButtons = [
ImprovementActionButtonObjectFactory.createNew(
Expand All @@ -45,37 +45,37 @@ angular.module('oppia').factory('AnswerDetailsImprovementCardObjectFactory', [
};


AnswerDetailsImprovementCard.prototype.getStatus = function() {
AnswerDetailsImprovementTask.prototype.getStatus = function() {
return this._learnerAnswerDetails.learnerAnswerInfoData.length !== 0 ?
STATUS_OPEN : STATUS_NOT_ACTIONABLE;
};

AnswerDetailsImprovementCard.prototype.getDirectiveData = function() {
AnswerDetailsImprovementTask.prototype.getDirectiveData = function() {
return this._learnerAnswerDetails;
};

AnswerDetailsImprovementCard.prototype.getDirectiveType = function() {
return ANSWER_DETAILS_IMPROVEMENT_CARD_TYPE;
AnswerDetailsImprovementTask.prototype.getDirectiveType = function() {
return ANSWER_DETAILS_IMPROVEMENT_TASK_TYPE;
};

AnswerDetailsImprovementCard.prototype.getActionButtons = function() {
AnswerDetailsImprovementTask.prototype.getActionButtons = function() {
return this._actionButtons;
};

AnswerDetailsImprovementCard.prototype.getTitle = function() {
AnswerDetailsImprovementTask.prototype.getTitle = function() {
return 'Answer details for the card "' +
this._learnerAnswerDetails.stateName + '"';
};

AnswerDetailsImprovementCard.prototype.isObsolete = function() {
AnswerDetailsImprovementTask.prototype.isObsolete = function() {
return this._learnerAnswerDetails.learnerAnswerInfoData.length === 0;
};

return {
createNew: function(learnerAnswerDetails) {
return new AnswerDetailsImprovementCard(learnerAnswerDetails);
return new AnswerDetailsImprovementTask(learnerAnswerDetails);
},
fetchCards: function() {
fetchTasks: function() {
var createNew = this.createNew;
return (
LearnerAnswerDetailsDataService.fetchLearnerAnswerInfoData().then(
Expand Down
Expand Up @@ -13,11 +13,11 @@
// limitations under the License.

/**
* @fileoverview Unit tests for the FeedbackImprovementCardObjectFactory.
* @fileoverview Unit tests for the FeedbackImprovementTaskObjectFactory.
*/

// TODO(#7222): Remove the following block of unnnecessary imports once
// FeedbackImprovementCardObjectFactory.ts is upgraded to Angular 8.
// FeedbackImprovementTaskObjectFactory.ts is upgraded to Angular 8.
import { AngularNameService } from
'pages/exploration-editor-page/services/angular-name.service';
import { AnswerClassificationResultObjectFactory } from
Expand Down Expand Up @@ -73,16 +73,16 @@ import { WrittenTranslationsObjectFactory } from
'domain/exploration/WrittenTranslationsObjectFactory';
// ^^^ This block is to be removed.

require('domain/statistics/AnswerDetailsImprovementCardObjectFactory.ts');
require('domain/statistics/AnswerDetailsImprovementTaskObjectFactory.ts');

describe('AnswerDetailsImprovementCardObjectFactory', function() {
describe('AnswerDetailsImprovementTaskObjectFactory', function() {
var $q = null;
var $rootScope = null;
var $uibModal = null;
var AnswerDetailsImprovementCardObjectFactory = null;
var AnswerDetailsImprovementTaskObjectFactory = null;
var ImprovementModalService = null;
var LearnerAnswerDetailsDataService = null;
var ANSWER_DETAILS_IMPROVEMENT_CARD_TYPE = null;
var ANSWER_DETAILS_IMPROVEMENT_TASK_TYPE = null;
var STATUS_NOT_ACTIONABLE = null;
var STATUS_OPEN = null;

Expand Down Expand Up @@ -147,49 +147,49 @@ describe('AnswerDetailsImprovementCardObjectFactory', function() {
}));
beforeEach(angular.mock.inject(function(
_$q_, _$rootScope_, _$uibModal_,
_AnswerDetailsImprovementCardObjectFactory_, _ImprovementModalService_,
_AnswerDetailsImprovementTaskObjectFactory_, _ImprovementModalService_,
_LearnerAnswerDetailsDataService_,
_ANSWER_DETAILS_IMPROVEMENT_CARD_TYPE_,
_ANSWER_DETAILS_IMPROVEMENT_TASK_TYPE_,
_STATUS_NOT_ACTIONABLE_, _STATUS_OPEN_) {
$q = _$q_;
$rootScope = _$rootScope_;
$uibModal = _$uibModal_;
AnswerDetailsImprovementCardObjectFactory =
_AnswerDetailsImprovementCardObjectFactory_;
AnswerDetailsImprovementTaskObjectFactory =
_AnswerDetailsImprovementTaskObjectFactory_;
ImprovementModalService = _ImprovementModalService_;
LearnerAnswerDetailsDataService = _LearnerAnswerDetailsDataService_;
ANSWER_DETAILS_IMPROVEMENT_CARD_TYPE =
_ANSWER_DETAILS_IMPROVEMENT_CARD_TYPE_;
ANSWER_DETAILS_IMPROVEMENT_TASK_TYPE =
_ANSWER_DETAILS_IMPROVEMENT_TASK_TYPE_;
STATUS_NOT_ACTIONABLE = _STATUS_NOT_ACTIONABLE_;
STATUS_OPEN = _STATUS_OPEN_;
}));

describe('.createNew', function() {
it('retrieves data from passed thread', function() {
var mockLearnerAnswerDetails = {learnerAnswerInfoData: 'sample'};
var card = AnswerDetailsImprovementCardObjectFactory.createNew(
var task = AnswerDetailsImprovementTaskObjectFactory.createNew(
mockLearnerAnswerDetails);

expect(card.getDirectiveData()).toBe(mockLearnerAnswerDetails);
expect(card.getDirectiveType()).toEqual(
ANSWER_DETAILS_IMPROVEMENT_CARD_TYPE);
expect(task.getDirectiveData()).toBe(mockLearnerAnswerDetails);
expect(task.getDirectiveType()).toEqual(
ANSWER_DETAILS_IMPROVEMENT_TASK_TYPE);
});
});

describe('.fetchCards', function() {
describe('.fetchTasks', function() {
it('fetches threads from the backend', function(done) {
spyOn(
LearnerAnswerDetailsDataService,
'fetchLearnerAnswerInfoData').and.callFake($q.resolve);
spyOn(LearnerAnswerDetailsDataService, 'getData').and.returnValue(
[{learnerAnswerInfoData: 'abc1'}, {learnerAnswerInfoData: 'def2'}]);

AnswerDetailsImprovementCardObjectFactory.fetchCards().then(
function(cards) {
AnswerDetailsImprovementTaskObjectFactory.fetchTasks().then(
function(tasks) {
expect(
cards[0].getDirectiveData().learnerAnswerInfoData).toEqual('abc1');
tasks[0].getDirectiveData().learnerAnswerInfoData).toEqual('abc1');
expect(
cards[1].getDirectiveData().learnerAnswerInfoData).toEqual('def2');
tasks[1].getDirectiveData().learnerAnswerInfoData).toEqual('def2');
}).then(done, done.fail);

// $q Promises need to be forcibly resolved through a JavaScript digest,
Expand All @@ -198,7 +198,7 @@ describe('AnswerDetailsImprovementCardObjectFactory', function() {
});
});

describe('AnswerDetailsImprovementCard', function() {
describe('AnswerDetailsImprovementTask', function() {
beforeEach(function() {
this.mockLearnerAnswerDetails = {
expId: 12,
Expand All @@ -210,63 +210,63 @@ describe('AnswerDetailsImprovementCardObjectFactory', function() {
created_on: 1441870501230.642,
}]
};
this.card =
AnswerDetailsImprovementCardObjectFactory.createNew(
this.task =
AnswerDetailsImprovementTaskObjectFactory.createNew(
this.mockLearnerAnswerDetails);
});

describe('.getStatus', function() {
it('returns open as status', function() {
expect(this.card.getStatus()).toEqual(STATUS_OPEN);
expect(this.task.getStatus()).toEqual(STATUS_OPEN);
});

it('returns not actionable as status', function() {
this.mockLearnerAnswerDetails.learnerAnswerInfoData = [];
expect(this.card.getStatus()).toEqual(STATUS_NOT_ACTIONABLE);
expect(this.task.getStatus()).toEqual(STATUS_NOT_ACTIONABLE);
});
});

describe('.getTitle', function() {
it('returns answer details as title', function() {
expect(this.card.getTitle()).toEqual(
expect(this.task.getTitle()).toEqual(
'Answer details for the card "fakeStateName"');
});
});

describe('.isObsolete', function() {
it('returns is obsolete as false', function() {
expect(this.card.isObsolete()).toEqual(false);
expect(this.task.isObsolete()).toEqual(false);
});

it('returns is obsolete as true', function() {
this.mockLearnerAnswerDetails.learnerAnswerInfoData = [];
expect(this.card.isObsolete()).toEqual(true);
expect(this.task.isObsolete()).toEqual(true);
});
});

describe('.getDirectiveType', function() {
it('returns answer details as directive type', function() {
expect(this.card.getDirectiveType())
.toEqual(ANSWER_DETAILS_IMPROVEMENT_CARD_TYPE);
expect(this.task.getDirectiveType())
.toEqual(ANSWER_DETAILS_IMPROVEMENT_TASK_TYPE);
});
});

describe('.getDirectiveData', function() {
it('returns the learner answer details', function() {
expect(this.card.getDirectiveData()).toBe(
expect(this.task.getDirectiveData()).toBe(
this.mockLearnerAnswerDetails);
});
});

describe('.getActionButtons', function() {
it('contains one button', function() {
expect(this.card.getActionButtons().length).toEqual(1);
expect(this.task.getActionButtons().length).toEqual(1);
});
});

describe('first button', function() {
beforeEach(function() {
this.button = this.card.getActionButtons()[0];
this.button = this.task.getActionButtons()[0];
});

it('opens a learner answer details modal', function() {
Expand Down

0 comments on commit 77343ff

Please sign in to comment.