예제 #1
0
 def timer(tguser: TgUser):
     card_id = tguser.callback_query_data_get(1)
     assert isinstance(tguser.client, TrelloClient)
     card = tguser.client.get_card(card_id)
     assert isinstance(card, trolly.Card)
     timer = tguser.timer_set.filter(card_id=card_id).first()
     if not timer:
         tguser.answer_callback_query('Timer was not started', show_alert=True)
         raise bot_utils.StateErrorHandler('timer_not_started')
     tguser.edit_message_reply_markup(keyboard=keyboards.Card(tguser, card_id, timer))
예제 #2
0
 def timer_plus(tguser: TgUser):
     card_id = tguser.callback_query_data_get(1)
     minutes = tguser.callback_query_data_get(2, as_int=True)
     assert isinstance(tguser.client, TrelloClient)
     card = tguser.client.get_card(card_id)
     assert isinstance(card, trolly.Card)
     timer = tguser.timer_set.filter(card_id=card_id).first()
     if not timer:
         tguser.answer_callback_query('Timer was not started', show_alert=True)
         raise bot_utils.StateErrorHandler('timer_not_started')
     assert isinstance(timer, Timer)
     timer.created_at = timer.created_at - timedelta(minutes=minutes)
     timer.save()
     tguser.answer_callback_query('Timer was increased on %s minutes' % minutes)
     tguser.edit_message_reply_markup(keyboard=keyboards.Card(tguser, card_id, timer))
예제 #3
0
    def timer_add(tguser: TgUser):
        seconds = int(tguser.callback_query_data_get(1))
        card_id = tguser.callback_query_data_get(2)

        timer = tguser.timer_set.filter(card_id=card_id).first()
        if not timer:
            tguser.answer_callback_query('Timer was not started', show_alert=True)
            raise bot_utils.StateErrorHandler('timer_not_started')

        to_add = timedelta(seconds=seconds)

        timer.created_at = timer.created_at - to_add
        timer.save()

        tguser.answer_callback_query('Added %s' % to_add)
        tguser.edit_message_reply_markup(keyboard=keyboards.Card(tguser, card_id, timer))
예제 #4
0
 def card(tguser: TgUser):
     card_id = tguser.callback_query_data_get(1)
     assert isinstance(tguser.client, TrelloClient)
     card = tguser.client.get_card(card_id)
     assert isinstance(card, trolly.Card)
     card_info = card.get_card_information()
     timer = tguser.timer_set.filter(card_id=card_id).first()
     message = tguser.render_to_string('bot/private/show_card.html',
                                       context=dict(card=card_info),
                                       keyboard=keyboards.Card(
                                           tguser, card_id, timer),
                                       edit=True)
     if timer:
         assert isinstance(message, Message)
         timer.message_id = message.message_id
         timer.save()
예제 #5
0
 def timer_stop(tguser: TgUser):
     card_id = tguser.callback_query_data_get(1)
     assert isinstance(tguser.client, TrelloClient)
     card = tguser.client.get_card(card_id)
     assert isinstance(card, trolly.Card)
     timer = tguser.timer_set.filter(card_id=card_id).first()
     if not timer:
         tguser.answer_callback_query('Timer was not started', show_alert=True)
         raise bot_utils.StateErrorHandler('timer_not_started')
     assert isinstance(timer, Timer)
     dur = timezone.now() - timer.created_at
     d = '%.2f' % (dur.seconds / 3600)
     card.add_comments('plus! %s/%s' % (d, d))
     timer.delete()
     logged = mytime(dur, True)
     tguser.answer_callback_query('Logged %s' % logged)
     tguser.edit_message_reply_markup(keyboard=keyboards.Card(tguser, card_id, None))
예제 #6
0
 def timer_start(tguser: TgUser):
     card_id = tguser.callback_query_data_get(1)
     assert isinstance(tguser.client, TrelloClient)
     card = tguser.client.get_card(card_id)
     assert isinstance(card, trolly.Card)
     timer = tguser.timer_set.filter(card_id=card_id).first()
     if timer:
         tguser.answer_callback_query('Timer was already started', show_alert=True)
         raise bot_utils.StateErrorHandler('timer_already_started')
     if tguser.timer_set.exists():
         tguser.answer_callback_query('You cannot start more than one timer simultaneously', show_alert=True)
         raise bot_utils.StateErrorHandler('multiple_timers')
     card_info = card.get_card_information()
     timer = tguser.timer_set.create(
         board_id=card_info['idBoard'],
         list_id=card_info['idList'],
         card_id=card_id,
         message_id=tguser.callback_query.message.message_id,
     )
     tguser.edit_message_reply_markup(keyboard=keyboards.Card(tguser, card_id, timer))