Simplify an internal data model used in the importer

We used to save the whole user document in a internal data structure while we
only needed the userId.
This commit is contained in:
Maxime Quandalle 2016-01-31 15:13:03 +01:00
parent a13fad749e
commit b5ebbd2bf9
2 changed files with 14 additions and 15 deletions

View file

@ -23,14 +23,14 @@ template(name="importMapMembers")
p {{_ 'import-members-map'}} p {{_ 'import-members-map'}}
.mapping-list .mapping-list
each members each members
a.mapping-item.js-select-member(class="{{#if wekan}}filled{{/if}}") a.mapping-item.js-select-member(class="{{#if wekanId}}filled{{/if}}")
.profile-source .profile-source
.full-name= fullName .full-name= fullName
.username .username
| ({{username}}) | ({{username}})
.wekan .wekan
if wekan if wekanId
+userAvatar(userId=wekan._id) +userAvatar(userId=wekanId)
else else
a.member.add-member a.member.add-member
i.fa.fa-plus i.fa.fa-plus

View file

@ -44,8 +44,8 @@ BlazeComponent.extendComponent({
if (membersMapping) { if (membersMapping) {
const mappingById = {}; const mappingById = {};
membersMapping.forEach((member) => { membersMapping.forEach((member) => {
if (member.wekan) { if (member.wekanId) {
mappingById[member.id] = member.wekan._id; mappingById[member.id] = member.wekanId;
} }
}); });
additionalData.membersMapping = mappingById; additionalData.membersMapping = mappingById;
@ -71,7 +71,7 @@ BlazeComponent.extendComponent({
membersToMap.forEach((importedMember) => { membersToMap.forEach((importedMember) => {
const wekanUser = Users.findOne({ username: importedMember.username }); const wekanUser = Users.findOne({ username: importedMember.username });
if (wekanUser) { if (wekanUser) {
importedMember.wekan = wekanUser; importedMember.wekanId = wekanUser._id;
} }
}); });
// store members data and mapping in Session // store members data and mapping in Session
@ -102,10 +102,9 @@ BlazeComponent.extendComponent({
BlazeComponent.extendComponent({ BlazeComponent.extendComponent({
onCreated() { onCreated() {
this.autorun(() => { this.autorun(() => {
this.parentComponent().membersToMap.get().forEach(({ wekan }) => { this.parentComponent().membersToMap.get().forEach(({ wekanId }) => {
if (wekan !== undefined) { if (wekanId) {
const userId = wekan._id; this.subscribe('user-miniprofile', wekanId);
this.subscribe('user-miniprofile', userId);
} }
}); });
}); });
@ -168,7 +167,7 @@ BlazeComponent.extendComponent({
getMember(memberId = null) { getMember(memberId = null) {
const allMembers = this.members(); const allMembers = this.members();
let finder = null; let finder = null;
if(memberId) { if (memberId) {
finder = (user) => user.id === memberId; finder = (user) => user.id === memberId;
} else { } else {
finder = (user) => user.selected; finder = (user) => user.selected;
@ -176,12 +175,12 @@ BlazeComponent.extendComponent({
return allMembers.find(finder); return allMembers.find(finder);
}, },
mapSelectedMember(wekan) { mapSelectedMember(wekanId) {
return this._setPropertyForMember('wekan', wekan, null); return this._setPropertyForMember('wekanId', wekanId, null);
}, },
unmapMember(memberId){ unmapMember(memberId){
return this._setPropertyForMember('wekan', null, memberId); return this._setPropertyForMember('wekanId', null, memberId);
}, },
onSubmit(evt) { onSubmit(evt) {
@ -214,7 +213,7 @@ BlazeComponent.extendComponent({
}, },
onSelectUser(){ onSelectUser(){
Popup.getOpenerComponent().mapSelectedMember(this.currentData()); Popup.getOpenerComponent().mapSelectedMember(this.currentData()._id);
Popup.back(); Popup.back();
}, },