示例#1
0
文件: models.py 项目: MoniaJ/aioquiz
class ExerciseStatus(Table):
    _name = 'exercise_status'
    _schema = [
        Column('exercise', ForeignKey('exercise')),
        Column('users', ForeignKey('users')),
        Column('status', String(20)),
    ]
示例#2
0
文件: models.py 项目: MoniaJ/aioquiz
class LessonStatus(Table):
    _name = 'lesson_status'
    _schema = [
        Column('lesson', ForeignKey('lesson')),
        Column('users', ForeignKey('users')),
        Column('status', String(20)),
    ]
示例#3
0
文件: models.py 项目: naimadM/aioquiz
class QuizQuestions(Table):
    _name = 'quiz_questions'
    _schema = [
        Column('quiz', ForeignKey('quiz')),
        Column('question', ForeignKey('question')),
        Column('question_order', Integer(), default=0),
    ]
示例#4
0
文件: models.py 项目: naimadM/aioquiz
class LiveQuizAnsware(Table):
    _name = 'live_quiz_answare'
    _schema = [
        Column('live_quiz', ForeignKey('live_quiz')),
        Column('question', ForeignKey('question')),
        Column('answare', CodeString(5000)),
    ]
示例#5
0
文件: models.py 项目: naimadM/aioquiz
class Absence(Table):
    _name = 'absence'
    _schema = [
        Column('lesson', ForeignKey('lesson')),
        Column('users', ForeignKey('users')),
        Column('absent', Boolean(), default=True),
    ]
示例#6
0
def migrate_1to2(engine):
    '''
    Add updated and updated_by columns to keep track of which users
    are updating inventory
    '''
    updated = Column('updated', Integer)
    updated_by = Column('updated_by', String)

    try:
        add_column(engine, 'user', updated)
    except Exception:
        pass
    try:
        add_column(engine, 'user', updated_by)
    except Exception:
        pass
    try:
        add_column(engine, 'group', updated)
    except Exception:
        pass
    try:
        add_column(engine, 'group', updated_by)
    except Exception:
        pass
    try:
        add_column(engine, 'facility', updated)
    except Exception:
        pass
    try:
        add_column(engine, 'facility', updated_by)
    except Exception:
        pass

    return engine
示例#7
0
文件: models.py 项目: naimadM/aioquiz
class LessonFeedback(Table):
    _name = 'lesson_feedback'
    _schema = [
        Column('users', ForeignKey('users')),
        Column('lesson', ForeignKey('lesson')),
        Column('feedback', String(5000)),
    ]
示例#8
0
文件: models.py 项目: naimadM/aioquiz
class QuestionAnsware(Table):
    _name = 'question_answare'
    _schema = [
        Column('users', ForeignKey('users')),
        Column('question', ForeignKey('question')),
        Column('answare', CodeString(5000)),
    ]
    _unique = ['users', 'question']
示例#9
0
文件: event.py 项目: zkocur/aioquiz
class EventSponsor(Table):
    _name = 'event_sponsor'
    _schema = [
        Column('order_number', Integer()),
        Column('event', ForeignKey('event')),
        Column('sponsor', ForeignKey('sponsor')),
        Column('rank', String(255)),
    ]
示例#10
0
文件: models.py 项目: MoniaJ/aioquiz
class Feedback(Table):
    _name = 'seat'
    _schema = [
        Column('id', Integer, primary_key=True),
        Column('row', String(255)),
        Column('number', String(10000)),
        Column('users', ForeignKey('users')),
    ]
示例#11
0
文件: models.py 项目: MoniaJ/aioquiz
class ExerciseAnsware(Table):
    _name = 'lesson_status'
    _schema = [
        Column('exercise', ForeignKey('exercise')),
        Column('users', ForeignKey('users')),
        Column('answare', CodeString(5000)),
        Column('status', String(20)),
    ]
示例#12
0
文件: models.py 项目: naimadM/aioquiz
class UserReview(Table):
    _name = 'user_review'
    _schema = [
        Column('users', ForeignKey('users')),
        Column('reviewer', ForeignKey('users')),
        Column('score', Integer()),
    ]
    _unique = ['users', 'reviewer']
示例#13
0
文件: models.py 项目: naimadM/aioquiz
class LiveQuizQuestion(Table):
    _name = 'live_quiz_questions'
    _schema = [
        Column('live_quiz', ForeignKey('live_quiz')),
        Column('question', ForeignKey('question')),
        Column('question_order', Integer(), default=0),
    ]
    _unique = ['live_quiz', 'question_order']
示例#14
0
文件: models.py 项目: naimadM/aioquiz
class ExerciseAnsware(Table):
    _name = 'exercise_answare'
    _schema = [
        Column('exercise', ForeignKey('exercise')),
        Column('users', ForeignKey('users')),
        Column('answare', CodeString(5000)),
        Column('first_answare', CodeString(5000), default=""),
        Column('status', String(20)),
    ]
示例#15
0
文件: models.py 项目: naimadM/aioquiz
class Seat(Table):
    _name = 'seat'
    _schema = [
        Column('id', Integer, primary_key=True),
        Column('row', String(255)),
        Column('number', Integer()),
        Column('users', ForeignKey('users'), unique=True),
        Column('i_need_help', Boolean(), default=False),
    ]
示例#16
0
文件: event.py 项目: zkocur/aioquiz
class EventMeetings(Table):
    _name = 'event_meetings'
    _schema = [
        Column('order_number', Integer()),
        Column('event', ForeignKey('event')),
        Column('lesson', ForeignKey('lesson')),
        Column('date', DateTime(), default=datetime.utcnow),
        Column('lesson_active', Boolean(), default=False),
    ]
示例#17
0
class Feedback(Table):
    _name = 'feedback'
    _schema = [
        Column('lesson_review', String(10000)),
        Column('teacher_review', String(10000)),
        Column('material', Integer()),
        Column('teacher', ForeignKey('users')),
        Column('users', ForeignKey('users')),
    ]
示例#18
0
class LessonFeedbackAnswer(Table):
    _name = 'lesson_feedback_answer'
    _schema = [
        Column('id', Integer, primary_key=True),
        Column('author', ForeignKey('users')),
        Column('answers', CodeString(10000)),
        Column('question', ForeignKey('lesson_feedback_question')),
        Column('lesson', ForeignKey('lesson'))
    ]
示例#19
0
文件: models.py 项目: MoniaJ/aioquiz
class AbsenceMeta(Table):
    _name = 'absence_meta'
    _schema = [
        Column('id', Integer, primary_key=True),
        Column('row', String(255)),
        Column('code', String(10)),
        Column('active', Boolean(), default=True),
        Column('users', ForeignKey('users')),
    ]
示例#20
0
    def new_db_from_pandas(self,
                           frame,
                           table=None,
                           data=None,
                           load=True,
                           **kwargs):
        """Create a new db partition from a pandas data frame.

        If the table does not exist, it will be created

        """
        import pandas as pd
        import numpy as np
        from orm import Column
        from dbexceptions import ConfigurationError

        # Create the table from the information in the data frame.
        with self.bundle.session:
            sch = self.bundle.schema
            t = sch.add_table(table)

            if frame.index.name:
                id_name = frame.index.name
            else:
                id_name = 'id'

            sch.add_column(t,
                           id_name,
                           datatype=Column.convert_numpy_type(
                               frame.index.dtype),
                           is_primary_key=True)

            for name, type_ in zip([row for row in frame.columns], [
                    row
                    for row in frame.convert_objects(convert_numeric=True,
                                                     convert_dates=True).dtypes
            ]):
                sch.add_column(t,
                               name,
                               datatype=Column.convert_numpy_type(type_))
                sch.write_schema()

        p = self.new_partition(table=table, data=data, **kwargs)

        if load:
            pk_name = frame.index.name
            with p.inserter(table) as ins:
                for i, row in frame.iterrows():
                    d = dict(row)
                    d[pk_name] = i

                    ins.insert(d)

        return p
示例#21
0
文件: models.py 项目: naimadM/aioquiz
class Config(Table):
    _name = 'config'
    _schema = [
        Column('id', Integer, primary_key=True),
        Column('reg_active', Boolean(), default=True),
        Column('room_raws', Integer(), default=10),
        Column('room_columns', Integer(), default=10),
    ]

    @classmethod
    async def get_registration(cls):
        config = await cls.get_by_id(1)
        return config.reg_active
示例#22
0
文件: models.py 项目: naimadM/aioquiz
class Lesson(Table):
    _name = 'lesson'
    _schema = [
        Column('id', Integer, primary_key=True),
        Column('lesson_no', Integer()),
        Column('title', String(255)),
        Column('description', String(10000)),
        Column('author', ForeignKey('users'), default=DEFAULT_USER),
        Column('file', String(255), required=False),
        Column('time_created', DateTime(), default=datetime.utcnow),
        Column('active', Boolean(), default=False),
        Column('quiz', ForeignKey('quiz'), required=False),
        Column('live_quiz', ForeignKey('live_quiz'), required=False),
    ]
示例#23
0
文件: event.py 项目: zkocur/aioquiz
class Sponsor(Table):
    _name = 'sponsor'
    _schema = [
        Column('id', Integer(), primary_key=True),
        Column('name', String(255)),
        Column('description', String(5000)),
        Column('logo', String(255), required=False, default=''),
        Column('webpage', String(255), required=False, default=''),
        Column('linkedin', String(255), required=False),
        Column('twitter', String(255), required=False),
        Column('facebook', String(255), required=False),
        Column('city', String(255), required=False),
        Column('country', String(255), required=False),
    ]
示例#24
0
文件: event.py 项目: zkocur/aioquiz
class EventUsers(Table):
    _name = 'event_users'
    _soft_restricted_keys = ['score', 'notes']
    _schema = [
        Column('event', ForeignKey('event')),
        Column('users', ForeignKey('users')),
        Column('confirmation', String(10), default='noans'),
        Column('accepted', Boolean(), default=False),
        Column('bring_power_cord', Boolean(), default=False),
        Column('attend_weekly', Boolean(), default=False),
        Column('notes', String(5000), default=''),
        Column('score', Float(), default=0, required=False),
        Column('i_helped', Boolean(), default=False),
        Column('helped', String(5000), required=False),
    ]
示例#25
0
文件: models.py 项目: naimadM/aioquiz
class Feedback(Table):
    _name = 'feedback'
    _schema = [
        Column('lesson_review', String(10000)),
        Column('teacher_review', String(10000)),
        Column('material', Integer()),
        Column('teacher', ForeignKey('users')),
        Column('users', ForeignKey('users')),
        # O tym czy dobrze było zorganizowane
        # Czy polecilbys nasze warsztaty znajomym
        # Czy moglibyśmy lepiej się reklamować
        # Czy jakieś zagadnienia były za mało poruszone Albo za dużo
        # Czego brakowało
        # https://docs.google.com/forms/d/e/1FAIpQLSctlgSwoKQoB_3Hc5bfu3RYLbz0TNKQmg23jnc8MJ3wwRJn7g/viewform
    ]
示例#26
0
class LessonFeedbackQuestion(Table):
    _name = 'lesson_feedback_question'
    _schema = [
        Column('id', Integer, primary_key=True),
        Column('author', ForeignKey('users'), default=DEFAULT_USER),
        Column('type', String(50)),
        Column('description', String(5000)),
        Column('answers', CodeString(10000))
    ]

    @classmethod
    async def get_by_lesson_id(cls, lid):
        return await cls.get_by_join("lesson_feedback_meta",
                                     lesson=lid,
                                     id=StringLiteral("question"))
示例#27
0
    def new_db_from_pandas(self,frame,table=None,data=None,load=True, **kwargs):
        """Create a new db partition from a pandas data frame.

        If the table does not exist, it will be created

        """

        from orm import Column
        # from dbexceptions import ConfigurationError

        # Create the table from the information in the data frame.
        with self.bundle.session:
            sch = self.bundle.schema
            t = sch.add_table(table)

            if frame.index.name:
                id_name = frame.index.name
            else:
                id_name = 'id'

            sch.add_column(t,id_name,
                datatype=Column.convert_numpy_type(frame.index.dtype),is_primary_key=True)

            for name, type_ in zip([row for row in frame.columns],
                                   [row for row in frame.convert_objects(convert_numeric=True,
                                                                         convert_dates=True).dtypes]):
                sch.add_column(
                    t,
                    name,
                    datatype=Column.convert_numpy_type(type_))
                sch.write_schema()

        p = self.new_partition(table=table, data=data, **kwargs)

        if load:
            pk_name = frame.index.name
            with p.inserter(table) as ins:
                for i, row in frame.iterrows():
                    d = dict(row)
                    d[pk_name] = i

                    ins.insert(d)

        return p
示例#28
0
文件: models.py 项目: MoniaJ/aioquiz
class Quiz(Table):
    _name = 'quiz'
    _schema = [
        Column('id', Integer, primary_key=True),
        Column('title', String(255)),
        Column('description', String(10000)),
        Column('users', ForeignKey('users'), default=1),
        Column('time_created', DateTime(), default=datetime.utcnow),
    ]

    async def get_question(self, question_order=0):
        if question_order + 1 >= await self.get_question_amount():
            return {'last': True, 'msg': 'That was last question in the quiz.'}
        qq = await QuizQuestions.get_first_by_many_field_value(
            quiz=self.id, question_order=question_order)
        return await Question.get_by_id(qq.question)

    async def get_question_amount(self):
        return len(await QuizQuestions.get_by_field_value('quiz', self.id))
示例#29
0
文件: models.py 项目: naimadM/aioquiz
class Question(Table):
    _name = 'question'
    _schema = [
        Column('id', Integer, primary_key=True),
        Column('question', String(1000)),
        Column('answares', CodeString(2000), default=''),
        Column('possible_answare', String(1000), default=''),
        Column('qtype', String(50), default='plain'),
        Column('img', String(255), required=False, default=''),
        Column('users', ForeignKey('users'), default=DEFAULT_USER),
        Column('time_created', DateTime(), default=datetime.utcnow),
    ]
示例#30
0
文件: models.py 项目: naimadM/aioquiz
class AbsenceMeta(Table):
    _name = 'absence_meta'
    _schema = [
        Column('id', Integer, primary_key=True),
        Column('lesson', ForeignKey('lesson')),
        Column('code', String(10)),
        Column('active', Boolean(), default=True),
        Column('users', ForeignKey('users')),
        Column('time_created', DateTime(), default=datetime.utcnow),
        Column('time_ended', DateTime()),
    ]
示例#31
0
文件: models.py 项目: MoniaJ/aioquiz
class Exercise(Table):
    _name = 'exercise'
    _schema = [
        Column('id', Integer, primary_key=True),
        Column('title', String(255)),
        Column('task', CodeString(10000)),
        Column('possible_answare', CodeString(1000), required=False),
        Column('author', ForeignKey('users'), default=1),
        Column('time_created', DateTime(), default=datetime.utcnow),
        Column('lesson', ForeignKey('lesson')),
    ]