export function* getUsersActions({fromDate, toDate}) {
    let comments = yield CommentsHandler.getComments(fromDate, toDate)
    let votes = yield VotesHandler.getVotes(fromDate, toDate)

    let commentsResponse = {
        loginnedCommentsCount: 0,
        anonymousCommentsCount: 0,
        loginned: [],
        anonymous: []
    }

    let groupedComments = _.groupBy(comments, (comment) => {
        return comment.createdBy.id
    })

    populateCommentsResponse(groupedComments, commentsResponse)

    let votesResponse = {
        loginned: [],
        anonymous: [],
        fake: [],
        loginnedVotesCount: 0,
        anonymousVotesCount: 0,
        fakeVotesCount: 0
    }

    var groupedVotes = _.groupBy(votes, function(vote){
        return vote.user.id;
    });
    populateVotesResponse(groupedVotes, votesResponse)

    return {
        votes: votesResponse,
        comments: commentsResponse
    }
}
Ejemplo n.º 2
0
function buildChungLoaiOptions(chungloais) {
    "use strict";
    try {
        let result = _.groupBy(chungloais, (chungloai) => {
            return chungloai.nhom.ten;
        });
        // Chuyển key Thiết bị nâng từ [Object] thành ['String'] chỉ chứa tên các chủng lại 'Cẩu bờ', 'Cẩu khung',...
        return _.mapObject(result, function(val, key) {
            return _.pluck(_.sortBy(val, 'order'),'ten');
        });
    } catch (error) {
        console.log('Có lỗi khi xử lý thông tin về Phân Loại > Chủng Loại (Dữ liệu từ CSDL không đồng bộ). Kiểm tra lại CSDL. Chi tiết:', error.message);
    }
    return [];
}
Ejemplo n.º 3
0
					model.result.getAll({}, function(err, results) {
						if (err || !results) {
							return reply().code(500);
						}
						var resultsByTask = _.groupBy(results, 'task');
						tasks = tasks.map(function(task) {
							if (resultsByTask[task.id] && resultsByTask[task.id].length) {
								task.last_result = resultsByTask[task.id][0];
							} else {
								task.last_result = null;
							}
							return task;
						});
						reply(tasks).code(200);
					});
Ejemplo n.º 4
0
        Project.find({client: {$in: clients}}).lean().exec(function(err, projects){
            if (err){ return next(err); }

            var clientmap = _.groupBy(clients, function(client){
                return client.organization;
            });

            var projectmap = _.groupBy(projects, function(project){
                return project.client;
            });

            var organizations = req.user.organizations;

            _.each(organizations, function(o){
                o.clients = _.values(clientmap[o._id]);

                _.each(o.clients, function(c){
                    c.projects = _.values(projectmap[c._id]);
                });
            });

            console.log(JSON.stringify(organizations, null, 2));
            res.render('organizations', {organizations: organizations});
        });
Ejemplo n.º 5
0
router.get('/', function (req, res)
{
  var data = addPhaseKey(req.app.locals.data);
  data = _.groupBy(data, 'theme');
  var new_data = indexify(data);
  var phases = _.countBy(req.app.locals.data, getPhase);
  res.render('index', {
    "data":new_data,
    "counts":phases,
    "view":"theme",
    "theme_order":theme_order,
    "phase_order":phase_order
    }
  );
});
Ejemplo n.º 6
0
function getAllBeers(checkins) {

    return _.map(_.groupBy(checkins, function (d) {
            return d.beer.bid;
        }), function (d) {
            var b = d[0];
            return {
                bid: b.beer.bid,
                count: d.length,
                label: b.beer.beer_label,
                name: b.beer.beer_name,
                score: getScoreAvg(d)
            };
        });
}
  DashboardCardBackgroundStore.leastUsedDefaults = function(){
    var usedDefaults = this.getUsedDefaults();

    var usedColorsByFrequency = _.groupBy(usedDefaults, function(x) {
      return _.filter(usedDefaults, function(y) { return x === y }).length
    })

    var mostCommonColors = _.uniq(usedColorsByFrequency[
      _.chain(usedColorsByFrequency).keys().max().value()
    ])

    return _.difference(DEFAULT_COLOR_OPTIONS, mostCommonColors).length === 0 ?
      mostCommonColors :
      _.difference(DEFAULT_COLOR_OPTIONS, mostCommonColors)
  }
 _.map(levelLocationMap, function (current) {
     var verticalMap = _.groupBy(current.values, 'PROJECT_BG');
     _.each(verticalMap, function (object) {
         levelLocationVerticalMap.push({
             date: new Date(Date.parse(object[0].Week)),
             week: object[0].Week,
             level: object[0].LVL,
             location: object[0].BASE_LOCATION,
             vertical: object[0].PROJECT_BG,
             values: _.countBy(object, function (object) {
                 return object['BILLABLE'] == 'Billable' ? 'Billable' : 'NonBillable'
             })
         });
     });
 });
Ejemplo n.º 9
0
 model.result.getAll({}, function (err, results) {
     if (err || !results) {
         return req.reply().code(500);
     }
     
     var resultsByReport= _.groupBy(results, 'report');
     reports = reports.map(function (report) {
         if (resultsByReport[report.id] && resultsByReport[report.id].length) {
             report.last_result = resultsByReport[report.id][0];
         } else {
             report.last_result = null;
         }
         return report;
     });
     req.reply(reports).code(200);
 });
Ejemplo n.º 10
0
  db.posts.archive(function(err, posts) {
    if(err) { return next(err); }

    years = _.groupBy(posts, function(post) {
      return post.created_at.getFullYear();
    });

    res.format({
      'text/html': function() {
        res.render('posts/archive', {years: years});
      },
      'application/json': function() {
        res.json(years);
      }
    });
  });
Ejemplo n.º 11
0
    Types.allEvents(function (err, evts) {
	if (err) {
	    next(err);
	} else {
	    var events = _.groupBy(evts, function(evt) { return evt.future; });
	    
	    var futureEvents = (events.true  ? events.true  : []);
	    var missedEvents = (events.false ? events.false : []);

	    res.render('events', {
		title        : "Etkinlikler",
		futureEvents : (futureEvents.length ? futureEvents : []),
		missedEvents : (missedEvents.length ? missedEvents : [])
	    });
	}
    });
Ejemplo n.º 12
0
			formatLessons: function(lessons){
				var result,
					self = this;
				
				result = _.groupBy(lessons , function(lesson) {
					return lesson.subject.name;
				});

				result =  _.each(result, function(_lessons) {
					for (var i = 0 ; i < _lessons.length; i++){
						_lessons[i] = self.formatLesson(_lessons[i])
					}
				});
				return result;
				
			},
Ejemplo n.º 13
0
Archivo: ga.js Proyecto: ocowchun/ga
function mutation(chromosomePool) {
	var mutationRate = 0.1;
	var mutationPool, otherChromosomeCollection;
	var newChromosomeCollection;
	var group = _.groupBy(chromosomePool, function(num) {
		return Math.random() < mutationRate ? "mutation" : "others";
	});
	mutationPool = group["mutation"];
	newChromosomeCollection = group["others"];

	_.each(mutationPool, function(c) {
		newChromosomeCollection.push(c.mutation());
	});

	return newChromosomeCollection;
}
Ejemplo n.º 14
0
  function group_arr(arr, group_by_list) {
    var grouped = _.groupBy(arr, function group(row) {
      // We build a group key, which is an object where the keys
      // are the columns to be grouped on, and point to the values
      // of those columns in the group.
      var group_key = {};
      _.each(group_by_list, function(group_by) {
        group_key[group_by] = row[group_by];
      });

      // We then stringify the object so we can use it as a key in an object.
      // This is a hack to enable an easy group-key-to-rows map.
      return JSON.stringify(group_key);
    });
    return grouped;
  }
Ejemplo n.º 15
0
            postProvider.retrieve(from, to, function (err, posts) {

                if (!err && posts && posts.length) {
                    var grouped = _.groupBy(posts, function (post) {
                        return post.type;
                    });
                    _.each(types, function (key) {
                        grouped[key] = _.sortBy(grouped[key], 'date');
                    });

                    respond({rows:grouped, types:types});
                }
                else {
                    respond({rows:[], types:types});
                }
            });
    _.each(groupedData, function(current) {
        var vertical = {};
        vertical.week = current.week;

        var verticalGrouped = _.groupBy(current.values, 'PROJECT_BG');
        var verticalMap = _.map(verticalGrouped, function(object) {
            return {
                vertical: object[0].PROJECT_BG,
                values: _.countBy(object, function(objectMap) {
                        return objectMap['BILLABLE'] == 'Billable' ? 'Billable' : 'NonBillable';
                    })
            }
        });
        vertical.data = verticalMap;
        verticalTrendMap.push(vertical);
    });
Ejemplo n.º 17
0
		formatResultsForGraph = function(theseResults) {
			var mappedresults = 
					_.map(theseResults, function(v, i) {
						return _.reduce(v, function(acc, next) {
							acc[next.name] = next.count;
							return acc;
						}, {index: i});
					}),
				flattened = _.flatten(theseResults),
				observableNames = _.keys(_.groupBy(flattened, 'name'));
					
			return { 
				data: mappedresults,
				labels: _.map(observableNames, function(x) { return { valueField: x, name: x }; }) 
			};
		},
Ejemplo n.º 18
0
Archivo: data.js Proyecto: 34/fighter
module.exports = (function() {
    var group = _.groupBy(data, function(i) {
        return i.pid;
    });

    var res = {};
    for(var i in group) {
        var val = group[i];
        res[i] = {
            id: i,
            province: val[0].province,
            cities: val
        };
    }
    return res;
})();
Ejemplo n.º 19
0
/**
 * Helpers
 */


/**
 * Checks whether the item to calculate is valid.
 */
function isValid(toCalculate) {
	if (!_.isArray(toCalculate)) return false;

	// Verify correct sequence
	var grouped = _.groupBy(toCalculate, function(item, index) { return index % 2 === 0 ? 'number' : 'operator' });

	if(!_.isNumber(_.first(toCalculate))) return false;
	if(!_.isNumber(_.last(toCalculate))) return false;

	if (!(_.every(grouped.number, _.isNumber) &&
		_.every(grouped.operator, isValidOperator))) {
		return false;
	}

	return true;
}
Ejemplo n.º 20
0
_.each( companies, function( company ) {
  company.items = _.groupBy( company.items, function( item ) {
    return item.name;
  } );

  company.desc = [];
  _.each( company.items, function( item ) {
    var firstElem = _.first( item );
    company.desc.push( { name : firstElem.name, price : firstElem.price, num : item.length } );
    var name = _.keys( item )[0];
    var values = item[name];
    //console.log( name );
  } )

  delete company.items;
} )
Ejemplo n.º 21
0
            }, {raw: true}).spread(function () {
              var dataGroupedByDevice = _.groupBy(arguments, function (row) {
                    return row.DeviceId
                  }), 
                  timeval = 'daily',
                  sqlData = [];

              _.map(dataGroupedByDevice, function (raw, deviceId) {
                raw.sort(function (a, b) {
                  if (a.id < b.id)
                    return -1;
                  else if (a.id > b.id)
                    return 1;
                  else 
                    return 0;
                })

                var data = self.aggregateActivityByTimestamp(self.aggregateByActivity(raw), timeval),
                    computeData = self.computeGroups(data, timeval);
                    computeData.activity = self.getActivity(raw, timeval);
                
                sqlData.push({
                  timeval : computeData.distance.data,
                  activity : computeData.activity,
                  summary : computeData.summary,
                  DeviceId : deviceId
                })
              })
              Db.EventWeekly.bulkCreate(sqlData).then(function () {
                var a = Moment();
                // TODO : locale pour avoir lundi == 0
                if (a.weekday() == 0) 
                  self.archiveMonthly().then(function (data) {
                    if (a.date() == 1)
                      self.archiveYearly().then(function (data) {
                        fulfill(data)
                      })
                    else
                      fulfill(data)
                  })
                else
                  fulfill(sqlData)
              }).catch(function (e) {
                console.log(e, e.stack);
                reject(e.stack)
              })
            }).catch(function (e) {
Ejemplo n.º 22
0
    redisClient.get('slides', function(err, data){
 
      var formattedSlidesList = _.map(JSON.parse(data), function(slide){
        return {
          header: slide.header,
          body: slide.body,
          index: slide.index,
          subIndex: slide.subIndex,

          tagJapanese: _.contains(slide.tags, 'japanese'),
          tagEnglish: _.contains(slide.tags, 'english'),
          tagFrench: _.contains(slide.tags, 'french'),
          tagNovice: _.contains(slide.tags, 'novice'),
          tagExpert: _.contains(slide.tags, 'expert'),

          slideStandard: slide.template ==='standard',                   
          slideTitle: slide.template ==='title'            
        };
      });

      if (!acceptLanguage.match(/ja/)) {
        formattedSlidesList = _.filter(formattedSlidesList, function(slide){
        return !slide.tagJapanese;
       });
      }

      if (!acceptLanguage.match(/en/)) {
        formattedSlidesList = _.filter(formattedSlidesList, function(slide){
        return !slide.tagEnglish;
       });
      }

      if (acceptLanguage.match(/fr/)) {
        formattedSlidesList = _.filter(formattedSlidesList, function(slide){
        return !slide.tagFrench;
       });
      }

      console.log(formattedSlidesList);
      var groupedSlidesList = _.map(_.values(_.groupBy(formattedSlidesList, function(slide){
        return slide.index;
      })), function(slides){
        return {'slides': slides}
      });

      res.render('plusview', {slidesGroup: groupedSlidesList});
    });   
  BikeDataService.getAllComponents(url, function(results) {
    results.forEach(function (result) {
      if (result.purchase_date) {
        date_array = result.purchase_date.split("/");
        result.sort_date = Number(date_array[2] + pad(date_array[0]));
      } else {
        result.sort_date = "";
      }
    });

    // sort by date - ascending
    results = _.sortBy(results, function (r){
      return r.sort_date;
    });


    // get rid of results without a purchase_date and sort_date
    results = _.reject(results, function (r) {
      return r.sort_date === "";
    });

    var highDate = results[results.length - 1].sort_date;
    var lowDate = results[0].sort_date;
    console.log(lowDate);

    // group from collection into set by sort_date
    results = _.groupBy(results, function (r) {
      return r.sort_date;
    });

    var spending = [];
    for(var lowDate; lowDate <= highDate; lowDate++ ) {
      spending.push({
        "date": new String(lowDate),
        "total_spend": BikeDataService.sumField(results[lowDate], 'cost'),
        "components": results[lowDate]
      });
      strLowDate = new String(lowDate);
      console.log(strLowDate.substr(strLowDate.length - 2, strLowDate.length - 1));
      if (strLowDate.substr(strLowDate.length - 2, strLowDate.length - 1) === "12") {
        lowDate = lowDate + 88;
        // console.log(lowDate);
      }
    }

    return callback(spending);
  });
Ejemplo n.º 24
0
devicesManager.prototype.updateArchDevice = function(archDevice, ws){
	if(!this.archDevices[archDevice.guid]){
		console.error("Unknown architecture device" + archDevice.guid);
		if(ws)
			ws.send(JSON.stringify({error: "Unknown architecture device" + archDevice.guid}));
		return;
	}

	archDevice = cleanupArchElement(archDevice);
	var devicesByArch = _.groupBy(this.devices, "archDeviceGuid");
	var devices = devicesByArch[archDevice.guid];
	_.each(devices, function(device){
		device.resetDeviceArch(archDevice);
	},this);
	this.archDevices[archDevice.guid] = archDevice;
	this.broadcast({messageType: "architectureDeviceUpdated", archDevice: archDevice});
};
Ejemplo n.º 25
0
            }, function(err, results){

                var recordings = _.groupBy(results, function(recording){
                    if(recording.getError()) return 'error';
                    else return 'ok';
                });

                findMarks(recordings.ok, function(err, marks) {
                    finish_upload(db, {recordings: recordings, marks: marks}, function(err2, upload_errors){
                    if (deleteOnSuccess) deleteFiles(recordings, upload_errors, callback);
                        else callback();
                    });
                });



            });
Ejemplo n.º 26
0
Co(function*() {
    var apps = yield App.find({platform: PLATFORMS.Android}).populate("developer createdBy").exec()
    console.log(apps.length)
    var developers = _.groupBy(apps, function(app){
        return String(app.developer._id)
    })

    let i = 0;
    Object.keys(developers).map((devId) => {
        i++;
        let developerApps = developers[devId]
        let developer = developerApps[0].developer
        sendEmailToDev(developer, developerApps)
    })

    console.log("Sent " + i)
});
Ejemplo n.º 27
0
    productModel.findAll(uid,function(err,result){
        if(!err && result.length > 0){
            result = _.groupBy(result,function(obj){
                var firstLetter =  _.first(obj.PROLETTERS);
                console.log(firstLetter);
                obj.PROSTANDARD = obj.PROSTANDARD.split(",");
                return firstLetter;
            });

            var newRes = [];
            for(var obj in result){
                newRes.push({"firstLetter":obj, "array" : result[obj]});
            }
            result = {result : newRes};
        }
        callBack(err,result);
    });
Ejemplo n.º 28
0
function toJSON(cards, ops) {
  var data = sortCards(cards, ops);
  var groups = _.groupBy(data, 'parentId');

  // transform sorted array to content/children structure
  function sortGroup(siblings) {
    return siblings.map(function(card) {
      var item = { content: card.content };
      if (groups[card._id]) {
        item.children = sortGroup(groups[card._id]);
      }
      return item;
    });
  }

  return data.length ? sortGroup(groups[data[0].parentId]) : [];
}
Ejemplo n.º 29
0
            postProvider.retrieve(moment().sod(), moment().eod(), function (err, posts) {

                if (!err && posts && posts.length) {
                    var grouped = _.groupBy(posts, function (post) {
                            return post.type;
                        }),
                        groups = _.map(_(grouped).keys(), function (key) {
                            var posts = _.sortBy(grouped[key], 'date');
                            return {name:key, posts:posts};
                        });

                    res.render("posts.jade", {groups:_.sortBy(groups, "name"), types:types});
                }
                else {
                    res.render("posts.jade", {groups:[], types:types});
                }
            });
Ejemplo n.º 30
0
function step(){
	count++;
	console.log(currentParticipant);
	if(count === 1000){
		console.log('Done!');
		console.log(_.map(_.groupBy(participants, function(p){
			return p.a+';'+p.b+';'+p.c;
		}),function(ps){
			return _.countBy(ps, 't');
		}));
		console.log(_.countBy(participants, 't'));
	}else{
		currentParticipant = genParticipant();
		participants.push(currentParticipant);
		computeRandomizationGroup(model, step, KEYS, ALLOCATION_RATIOS, TARGET);
	}
}