Browse Source

Add vote import from Trello

Nico 5 năm trước cách đây
mục cha
commit
e661d03e8d
1 tập tin đã thay đổi với 25 bổ sung2 xóa
  1. 25 2
      models/trelloCreator.js

+ 25 - 2
models/trelloCreator.js

@@ -1,4 +1,4 @@
-const DateString = Match.Where(function(dateAsString) {
+const DateString = Match.Where(function (dateAsString) {
   check(dateAsString, String);
   return moment(dateAsString, moment.ISO_8601).isValid();
 });
@@ -285,6 +285,29 @@ export class TrelloCreator {
           cardToCreate.members = wekanMembers;
         }
       }
+      // add vote
+      if (card.idMembersVoted) {
+        // Trello only know's positive votes
+        const positiveVotes = [];
+        card.idMembersVoted.forEach(trelloId => {
+          if (this.members[trelloId]) {
+            const wekanId = this.members[trelloId];
+            // we may map multiple Trello members to the same wekan user
+            // in which case we risk adding the same user multiple times
+            if (!positiveVotes.find(wId => wId === wekanId)) {
+              positiveVotes.push(wekanId);
+            }
+          }
+          return true;
+        })
+        if (positiveVotes.length > 0) {
+          cardToCreate.vote = {
+            question: cardToCreate.title,
+            positive: positiveVotes,
+          }
+        }
+      }
+
       // insert card
       const cardId = Cards.direct.insert(cardToCreate);
       // keep track of Trello id => Wekan id
@@ -345,7 +368,7 @@ export class TrelloCreator {
           // so we make it server only, and let UI catch up once it is done, forget about latency comp.
           const self = this;
           if (Meteor.isServer) {
-            file.attachData(att.url, function(error) {
+            file.attachData(att.url, function (error) {
               file.boardId = boardId;
               file.cardId = cardId;
               file.userId = self._user(att.idMemberCreator);