def get_filter_values(table, column): if table == 'groups': values = MongoDBConnection.get_groups_collection().distinct(column) elif table == 'students': values = MongoDBConnection.get_students_collection().distinct(column) elif table == 'test': values = MongoDBConnection.get_tests_collection().distinct(column) elif table == 'saved_state': values = MongoDBConnection.get_saved_state_collection().distinct( column) elif table == 'games': values = MongoDBConnection.get_games_collection().distinct(column) elif table == 'chapters': values = MongoDBConnection.get_chapters_collection().distinct(column) elif table == 'events': values = MongoDBConnection.get_events_collection().distinct(column) elif table == 'decisions': values = MongoDBConnection.get_decisions_collection().distinct(column) try: values = list(map(int, values)) return [min(values), max(values)] except: return values
def get_decisions(student_ids: List[str], event_ids: List[str]) -> pymongo.cursor.Cursor: db = MongoDBConnection.get_decisions_collection() decisions = db.find({ 'studentCode': { '$in': student_ids }, 'eventCode': { '$in': event_ids } }) return decisions
def get_game_students(game_code: str, version: str) -> List[str]: db = MongoDBConnection.get_events_collection() events = [ r['eventCode'] for r in db.find({ 'gameCode': game_code, 'version': version }, {'eventCode': 1}) ] db = MongoDBConnection.get_decisions_collection() return db.find({ 'eventCode': { '$in': events } }, { 'studentCode': 1 }).distinct('studentCode')
def post_decision(student_code: str, event_code: str, decision: Decision): ids = MongoDBConnection.get_decisions_collection().find().distinct('decisionCode') finalDecision = {} for dec in decision._decision: finalDecision[dec._key] = dec._value _existing = MongoDBConnection.get_decisions_collection().find_one({'eventCode':event_code, 'studentCode':student_code}) if _existing is not None: MongoDBConnection.get_decisions_collection().update_one({'eventCode':event_code, 'studentCode':student_code},{'$set': {'fields':finalDecision}}) else: MongoDBConnection.get_decisions_collection().insert_one({'eventCode':event_code, 'studentCode':student_code,'fields':finalDecision})