Exemple #1
0
class LessonStatus(Table):
    _name = 'lesson_status'
    _schema = [
        Column('lesson', ForeignKey('lesson')),
        Column('users', ForeignKey('users')),
        Column('status', String(20)),
    ]
Exemple #2
0
class LiveQuizAnsware(Table):
    _name = 'live_quiz_answare'
    _schema = [
        Column('live_quiz', ForeignKey('live_quiz')),
        Column('question', ForeignKey('question')),
        Column('answare', CodeString(5000)),
    ]
Exemple #3
0
class ExerciseStatus(Table):
    _name = 'exercise_status'
    _schema = [
        Column('exercise', ForeignKey('exercise')),
        Column('users', ForeignKey('users')),
        Column('status', String(20)),
    ]
Exemple #4
0
class Absence(Table):
    _name = 'absence'
    _schema = [
        Column('lesson', ForeignKey('lesson')),
        Column('users', ForeignKey('users')),
        Column('absent', Boolean(), default=True),
    ]
Exemple #5
0
class LessonFeedback(Table):
    _name = 'lesson_feedback'
    _schema = [
        Column('users', ForeignKey('users')),
        Column('lesson', ForeignKey('lesson')),
        Column('feedback', String(5000)),
    ]
Exemple #6
0
class QuizQuestions(Table):
    _name = 'quiz_questions'
    _schema = [
        Column('quiz', ForeignKey('quiz')),
        Column('question', ForeignKey('question')),
        Column('question_order', Integer(), default=0),
    ]
Exemple #7
0
class ExerciseAnsware(Table):
    _name = 'lesson_status'
    _schema = [
        Column('exercise', ForeignKey('exercise')),
        Column('users', ForeignKey('users')),
        Column('answare', CodeString(5000)),
        Column('status', String(20)),
    ]
Exemple #8
0
class EventSponsor(Table):
    _name = 'event_sponsor'
    _schema = [
        Column('order_number', Integer()),
        Column('event', ForeignKey('event')),
        Column('sponsor', ForeignKey('sponsor')),
        Column('rank', String(255)),
    ]
Exemple #9
0
class UserReview(Table):
    _name = 'user_review'
    _schema = [
        Column('users', ForeignKey('users')),
        Column('reviewer', ForeignKey('users')),
        Column('score', Integer()),
    ]
    _unique = ['users', 'reviewer']
Exemple #10
0
class QuestionAnsware(Table):
    _name = 'question_answare'
    _schema = [
        Column('users', ForeignKey('users')),
        Column('question', ForeignKey('question')),
        Column('answare', CodeString(5000)),
    ]
    _unique = ['users', 'question']
Exemple #11
0
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']
Exemple #12
0
 def _schema(cls):
     return [
         Column('users', ForeignKey('users')),
         Column(cls._fk_col, ForeignKey(cls._fk_col)),
         Column('progress', Integer(), default=0),
         Column('score', Integer(), default=-1),
         Column('comment', CodeString(1000), required=False, default=''),
         Column('status', String(50), default='NotStarted'),
     ]
Exemple #13
0
 def _schema(cls):
     return [
         Column('users', ForeignKey('users')),
         Column(cls._fk_col, ForeignKey(cls._fk_col)),
         Column('question', ForeignKey('question')),
         Column('answer', CodeString(5000)),
         Column('comment', CodeString(1000), required=False, default=''),
         Column('score', Integer(), default=-1),
     ]
Exemple #14
0
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),
    ]
Exemple #15
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')),
    ]
Exemple #16
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'))
    ]
Exemple #17
0
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)),
    ]
Exemple #18
0
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')),
    ]
Exemple #19
0
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()),
    ]
Exemple #20
0
class Lesson(Table):
    _name = 'lesson'
    _schema = [
        Column('id', Integer, primary_key=True),
        Column('title', String(255)),
        Column('description', String(10000)),
        Column('author', ForeignKey('users'), default=1),
        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),
    ]
Exemple #21
0
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),
    ]
Exemple #22
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')),
        # 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
    ]
Exemple #23
0
class Task(Model):
    """Representation of a Task, this is a Database Object."""

    __tablename__ = "task"
    __database__ = Database.database
    __metadata__ = Database.metadata

    id = BigInteger(primary_key=True, index=True)
    player = ForeignKey(Player)
    completed = Boolean(default=False)
    _task_type = Integer()
    completion_date = DateTime()

    @property
    def task_type(self) -> TaskType:
        """Get the type of the task."""
        return TaskType(self._task_type)

    @task_type.setter
    def task_type(self, value: TaskType) -> None:
        self._task_type = value.value

    @property
    async def embed(self) -> Embed:
        """Get the embed representing the task."""
        return Embed(title=self.task_type.name,
                     description=f"Completes at {self.completion_date}",
                     colour=self.task_type.colour)
Exemple #24
0
class Feedback(Table):
    _name = 'seat'
    _schema = [
        Column('id', Integer, primary_key=True),
        Column('row', String(255)),
        Column('number', String(10000)),
        Column('users', ForeignKey('users')),
    ]
Exemple #25
0
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),
    ]
Exemple #26
0
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')),
    ]
Exemple #27
0
class Item(Model):
    """Representation of an Item, this is a Database Object."""

    __tablename__ = "item"
    __database__ = Database.database
    __metadata__ = Database.metadata
    __table_args__ = (UniqueConstraint('owner', 'item_id'),)

    id: int = Integer(primary_key=True, index=True)
    item_id: str = String(max_length=4)
    name: str = String(max_length=50)
    owner: Player = ForeignKey(Player)
    value: int = Integer()
    _rarity: int = Integer()
    _item_type: int = Integer()

    @property
    def embed_field(self) -> dict[str, str]:
        """Get a embed field that represents the Item"""
        return {
            "name": f"`{self.item_id}` | {self.rarity.emoji} {self.name}",
            "value": f"Value: {self.value} - Type: {self.item_type.name}"
        }

    @property
    async def embed(self) -> Embed:
        """Get a Embed that represents the Item"""
        embed = Embed(title=f"{self.rarity.emoji} {self.name}", colour=self.rarity.colour)
        embed.add_field(name="Item ID", value=f"`{self.item_id}`")
        embed.add_field(name="Value", value=str(self.value))

        bot = ArenaBot.instance
        owner = bot.get_user(self.owner.id)
        if owner is None:
            owner = await bot.fetch_user(self.owner.id)

        embed.set_author(name=owner.display_name, icon_url=owner.avatar_url)
        return embed

    @property
    def rarity(self) -> Rarity:
        """Get the rarity of the item."""
        return Rarity(self._rarity)

    @rarity.setter
    def rarity(self, value: Rarity) -> None:
        self._rarity = value.value

    @property
    def item_type(self) -> ItemType:
        """Get the type of the item."""
        return ItemType(self._item_type)

    @item_type.setter
    def item_type(self, value: ItemType) -> None:
        self._item_type = value.value
Exemple #28
0
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),
    ]
Exemple #29
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"))
Exemple #30
0
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))