def main(): DataManager.sharedManager().set_config('config-prod.json') list_attachments=models.Attachment.get_all() writer=csv.writer(os.sys.stdout) for attachment in list_attachments: category = "" try: #print attachment.id.get(), attachment.category.get().name.get() category = attachment.category.name except: pass writer.writerow([category.encode('UTF-8', 'replace'), attachment.name.encode('UTF-8', 'replace'), "/ca/comentaris/attachment/"+attachment.id, attachment.description.encode('UTF-8', 'replace')])
def setUp(self): self.percentiles = [] this = self self.get_filtered_times_value = (0,0) self.get_filtered_times_last_session = None self.mock_get_filtered_times = main.get_filtered_times def mock_retrieve_all(model): return this.percentiles def mock_get_filtered_times(session): self.get_filtered_times_last_session = session return self.get_filtered_times_value main.get_filtered_times = mock_get_filtered_times DataManager.sharedManager().retrieve_all = mock_retrieve_all self.mock_older = models.Older() self.mock_older.group = models.Group() mock_course = models.Course() mock_course.id = 2 self.mock_older.group.course = mock_course self.model_session1 = models.ModelSession() self.model_session1.type_percentile = 1 self.model_session2 = models.ModelSession() self.model_session2.type_percentile = 4
def get_percentile(older, session): """ Get the percentile for an older :param older: :param session: :return: """ completed = session.completed_time trimester = get_trimester(completed) course = older.get_course(session.completed_time) if course is not None: def filter_callback(e): #print "c: {0} vs {1} trimester: {2} vs {3}".format(e.course, get_course(session.completed_time).id, e.semester, trimester) return e.course == course.id and int(e.semester) == trimester list_percentiles = filter( filter_callback, DataManager.sharedManager().retrieve_all('percentile')) type_percentile = session.model_based.type_percentile for percentile in list_percentiles: if percentile.type == type_percentile: _, times = get_filtered_times(session) return percentile.get_value(times) return None else: raise models.CourseNotFoundException()
def create(code, level, label_ca, label_es): warning_list = DataManager.sharedManager().retrieve_all('warning') for w in warning_list: if w.code == code: if w.name is None: w.name = {} w.level = level w.name['ca'] = label_ca w.name['es'] = label_es w.save() return w = models.Warnings() w.code = code w.level = level w.name = {'ca': label_ca} w.save()
def test_get_course_birthday(self): mock_course = models.Course() mock_course.age = 10 mock_course2 = models.Course() mock_course2.age = 11 def mock_retrieve_all(model): return [mock_course, mock_course2] manager = DataManager.sharedManager() manager.retrieve_all = mock_retrieve_all subject = models.Older() subject.birthday = dateutil.parser.parse('2008-08-09T15:06:00Z') subject.group=models.Group() date = dateutil.parser.parse('2018-08-09') self.assertEqual(subject.get_course(date), mock_course) self.assertEqual(subject.get_course(), None)
def get_course(self, date=datetime.today()): """ :param date: :return: A course instance """ if self.birthday is not None: age = date.year - self.birthday.year if date.month < 8: age -= 1 for course in DataManager.sharedManager().retrieve_all('course'): if int(course.age) == age: return course return self.group.course else: # Thats not good, we don't use the date. return self.group.course
create("MOT-1.2",2,u"Portem uns dies amb motivació inicial baixa",u"Llevamos unos días con motivación inicial baja") create("MOT-1.3",2,u"La motivació inicial ha baixat en aquesta sessió",u"La motivación inicial ha bajado en esta sesión") create("MOT-1.4",2,u"La motivació inicial ha baixat en les dues últimes sessions",u"La motivación inicial ha bajado en las dos últimas sesiones") create("MOT-2.1",1,u"Ha baixat lleugerament la motivació inicial",u"La motivación inicial ha bajado ligeramente") create("MOT-3.1",2,u"Les sessions el desmotiven",u"Las sesiones lo desmotivan") create("MOT-3.2",2,u"La motivació ha baixat molt durant la sessió",u"La motvación ha bajado mucho durante esta sesión") create("MOT-3.3",1,u"S’ha desmotivat durant la sessió",u"Se ha desmotivado durante esta sesión") create("CL-1.1",2,u"És possible que s’estigui corregint a l’Older",u"Es posible que se esté corrigiendo al Older") create("CL-1.2",2,u"Detectem molts clics anòmals",u"Detectamos muchos clics anónimos") create("CL-1.3",1,u"Detectem clics anòmals",u"Detectamos clics anómalos") create("CL-2.1",1,u"La dificultat percebuda no s’ajusta amb la velocitat. Potser estem clicant malament",u"La dificultad percebida no se ajusta con la velocidad. Quizás están clicando mal") create("H-1.1",1,u"Pobrets, deixeu-los dormir!!!",u"¡Pobres, dejadlos dormir!") create("S-1.1",0,u"No s'ha fet la sessió.",u"No se ha hecho la sesión") create("P-1.1",4,u"Error de la pauta.",u"Error de la pauta") create("P-1.2",4,u"No hi ha més salts de block",u"No hay más saltos de block") create("P-1.3",4,u"No hi ha cap sessió feta",u"No hay ninguna sessión hecha") create("P-1.4",4,u"Número màxim de sessions pendents",u"Número máximo de sessiones pendientes") create("P-1.5",4,u"Sessions sense data de publicació",u"Sessiones sin fecha de publicación") create("P-1.6",4,u"No s'ha trobat el curs",u"No se ha encontrado el curso") create("SB-1.1",1,u"Salt de bloc amb normalitat",u"Salto de bloque normal") create("SB-1.2",1,u"Salt de bloc augmenant la dificultat",u"Salto de bloque aumentado la dificultad") create("SB-1.3",1,u"Salt de bloc disminuïnt un nivell la dificultat",u"Salto de bloque disminuyendo la dificultad un nivel") create("SB-1.4",2,u"Salt de bloc disminuïnt dos nivells la dificultat",u"Salto de bloque disminuyendo la dificultad dos niveles") create("SB-2.1",2,u"Entrem en un nivell per Olders amb dificultats",u"Entramos en un nivell para Olders con dificultades") create("SB-2.2",3,u"Entrem en un nivell per Olders amb moltes dificultats",u"Entramos en un nivell para Olders con muchas dificultades") if __name__ == '__main__': #DataManager.sharedManager().set_config('config-beta.json') DataManager.sharedManager().get_all("warning") insert()
def tearDown(self): DataManager.sharedManager().retrieve_all = self.retrieve_all
def setUp(self): manager = DataManager.sharedManager() manager._cache = {} self.retrieve_all = manager.retrieve_all
__author__ = 'dracks' import models from Api.Manager import DataManager import argparse def main(): list_history = models.PatternHistory.get(query='older=19080') for history in list_history: print history.pattern.name, history.day, history.block.name, history.level, \ map(lambda e: e.code, history.warnings), \ map(lambda s: s.name, history.sessions) if __name__ == "__main__": DataManager.sharedManager().set_config('config-beta.json') main()
def debug_main(day=date.today()): program.load_cache() program.main(day) if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument('-d', default=None, help="debug a configuration", metavar=("id_config",)) parser.add_argument('-m', default=None, help="Run main configuration for a day", metavar=("day",)) parser.add_argument('-c', default=None, help="Use file configuration", metavar=("config.json",)) parser.add_argument('-s', default=False, action='store_true', help='Save the changes to the server, by default don\'t save it') args = parser.parse_args() if args.d and args.m: parser.error("Argument -m and -d are mutual exclusives") if args.c: DataManager.sharedManager().set_config(args.c) if not args.s: Model.save = mock_save if args.d: debug(args.d) elif args.m: debug_main(date_parser.parse(args.m)) else: parser.error("You should select -m or -d options to run")