def message_aggregation_offerer(): return [ { "$match": {"offerer": current_user()} }, { "$unwind": "$messages" }, { "$match": {"messages.unread": True, "messages.owner": {"$ne": current_user()} }}, {"$group": { "_id": "$offer", "total": { "$sum": 1 } } } ]
def get_many_candidatures(params, filter): if 'offer' in params: filter['offer'] = params['offer'] if 'my' in params: filter['candidate'] = current_user() #else: raise return {'messages': 0}, filter
def sample_get_file_url(filename): user = api.current_user() if user: oid = api.oid_by_name(user, filename) if oid: return api.url_for(user, oid) return ''
def sample_save_from_filesystem(filename): user = api.current_user() if user: try: fileHandle = api.File(filename) oid = api.save_file(user, fileHandle) return api.url_for(user, oid) except IOError: pass return ''
def message_aggregation_candidates(candidatures): candidatures = candidatures.split(',') candidatures = [ObjectId(x) for x in candidatures] return [ { "$match": {"_id": {"$in": candidatures} } }, { "$unwind": "$messages" }, { "$match": {"messages.unread": True, "messages.owner": {"$ne": current_user()} }}, {"$group": { "_id": "$_id", "total": { "$sum": 1 } } } ]
def helper(root_doc, new_doc=None): if root_doc[prop] == current_user(): return True else: return False
def is_owner(doc): return current_user() in doc['__owners']
def already_subscribed(offer): return [ { "$match": {"offer": {"$in": offer.split(',')}, "status": "open", "candidate": current_user()}}, {"$group": { "_id": "$offer", "total": { "$sum": 1 } } } ]