예제 #1
0
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')])
예제 #2
0
    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
예제 #3
0
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()
예제 #4
0
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()
예제 #5
0
    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)
예제 #6
0
    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
예제 #7
0
    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()
예제 #8
0
 def tearDown(self):
     DataManager.sharedManager().retrieve_all = self.retrieve_all
예제 #9
0
 def setUp(self):
     manager = DataManager.sharedManager()
     manager._cache = {}
     self.retrieve_all = manager.retrieve_all
예제 #10
0
__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()
예제 #11
0
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")