コード例 #1
0
class Event(Base):
    __tablename__ = 'event'
    id = Column(Integer, primary_key=True)
    title = Column(String(100))
    description = Column(String(1000))
    access_info = Column(String(1000))
    status = Column(Integer)
    edit_datetime = Column(DateTime, default=clock.now())

    status_map = {
        0: 'не опубликовано',
        1: 'открыта регистрация',
        9: 'регистрация закрыта',
        10: 'архивировано',
    }

    def __init__(self,
                 title='',
                 description='',
                 access_info='',
                 status=0,
                 edit_datetime=clock.now()):
        self.title = title
        self.description = description
        self.access_info = access_info
        self.status = status
        self.edit_datetime = edit_datetime

    def __repr__(self):
        return "Event(id={}, title={}, description={}, access_info={}, status={}, " \
               "edit_datetime={})" \
            .format(self.id, self.title, self.description, self.access_info, self. status,
                    self.edit_datetime)
コード例 #2
0
class User(Base):
    __tablename__ = 'user'
    id = Column(Integer, primary_key=True)
    uid = Column(Integer)
    username = Column(String(255))
    full_name = Column(String(255))
    active = Column(Boolean, default=True)
    receive_notifications = Column(Boolean, default=True)
    edit_datetime = Column(DateTime, default=clock.now())

    def __init__(self,
                 uid,
                 username='',
                 full_name='',
                 active=True,
                 receive_notifications=True,
                 edit_datetime=clock.now()):
        self.uid = uid
        self.username = username
        self.full_name = full_name
        self.active = active
        self.receive_notifications = receive_notifications
        self.edit_datetime = edit_datetime

    def __repr__(self):
        return "User(id={}, uid={}, username={}, " \
               "full_name={}, active={}, receive_notifications={}, edit_datetime={})" \
            .format(self.id, self.uid, self.username,
                    self.full_name, self.active, self.receive_notifications, self.edit_datetime)
コード例 #3
0
 def __init__(self,
              title='',
              description='',
              access_info='',
              status=0,
              edit_datetime=clock.now()):
     self.title = title
     self.description = description
     self.access_info = access_info
     self.status = status
     self.edit_datetime = edit_datetime
コード例 #4
0
 def __init__(self,
              uid,
              username='',
              full_name='',
              active=True,
              receive_notifications=True,
              edit_datetime=clock.now()):
     self.uid = uid
     self.username = username
     self.full_name = full_name
     self.active = active
     self.receive_notifications = receive_notifications
     self.edit_datetime = edit_datetime
コード例 #5
0
 def __init__(self,
              user_id,
              event_id,
              complete=False,
              admin_check=False,
              file_type='',
              file_id='',
              edit_datetime=clock.now()):
     self.user_id = user_id
     self.event_id = event_id
     self.complete = complete
     self.admin_check = admin_check
     self.file_type = file_type
     self.file_id = file_id
     self.edit_datetime = edit_datetime
コード例 #6
0
class Enrollment(Base):
    __tablename__ = 'enrollment'
    id = Column(Integer, primary_key=True)
    complete = Column(Boolean(), default=False)
    admin_check = Column(Boolean(), default=False)
    file_type = Column(String(10))
    file_id = Column(String(1000))
    edit_datetime = Column(DateTime, default=clock.now())

    user_id = Column(Integer, ForeignKey('user.id'))
    event_id = Column(Integer, ForeignKey('event.id'))

    user = relationship('User',
                        backref='user_enrollments',
                        foreign_keys=[user_id])
    event = relationship('Event',
                         backref='event_enrollments',
                         foreign_keys=[event_id])

    def __init__(self,
                 user_id,
                 event_id,
                 complete=False,
                 admin_check=False,
                 file_type='',
                 file_id='',
                 edit_datetime=clock.now()):
        self.user_id = user_id
        self.event_id = event_id
        self.complete = complete
        self.admin_check = admin_check
        self.file_type = file_type
        self.file_id = file_id
        self.edit_datetime = edit_datetime

    def __repr__(self):
        return "Enrollment(id={}, user_id={}, event_id={}, complete={}, " \
               "admin_check={}, file_type={}, file_id={}, edit_datetime={})" \
            .format(self.id, self.user_id, self.event_id, self.complete,
                    self.admin_check, self.file_type, self.file_id, self.edit_datetime)
コード例 #7
0
ファイル: dialogue.py プロジェクト: edementyev/regbot
async def invoice(message: types.Message):
    uid = message.from_user.id
    state = dp.current_state(user=uid)
    state_data = await state.get_data() or {}

    if message.document is not None:
        invoice_type = 'document'
        file_id = message.document.file_id
    else:
        invoice_type = 'photo'
        file_id = message.photo[-1].file_id

    with session_scope() as session:
        enroll_q = session.query(Enrollment, Event) \
            .join(User) \
            .join(Event) \
            .filter(User.uid == uid) \
            .filter(Event.id == state_data['event_id'])

        enroll, event = enroll_q.all()[0]
        enroll.file_type = invoice_type
        enroll.file_id = file_id
        enroll.complete = True
        enroll.edit_datetime = clock.now()
        logging.info(f'enrollment updated! got invoice: {enroll}')
        access_info = event.access_info

    state = dp.current_state(user=uid)
    await state.set_state(None)
    await state.set_data({})

    events_keyboard = await show_event_list_task(uid, markup_only=True)
    await message.reply(MESSAGES['registration_complete'] + text(access_info),
                        parse_mode=ParseMode.MARKDOWN,
                        reply=False,
                        reply_markup=events_keyboard)