def timer_add(tguser: TgUser):
     card_id = tguser.callback_query_data_get(1)
     time_to_add = int(tguser.callback_query_data_get(2))
     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')
     else:
         timer.created_at -= timedelta(minutes=time_to_add)
         timer.save()
     tguser.edit_message_reply_markup(keyboard=keyboards.Card(tguser, card_id, timer))
示例#2
0
 def back(tguser: TgUser):
     obj_type = tguser.callback_query_data_get(1)
     obj_id = tguser.callback_query_data_get(2)
     assert isinstance(tguser.client, TrelloClient)
     if obj_type == 'card':
         card = tguser.client.get_card(obj_id)
         assert isinstance(card, trolly.Card)
         card_info = card.get_card_information()
         return PrivateHandler.board_list(tguser, card_info['idList'])
     if obj_type == 'list':
         board_list = tguser.client.get_list(obj_id)
         assert isinstance(board_list, trolly.List)
         board = board_list.get_board()
         return PrivateHandler.board(tguser, board.id)
     PrivateHandler.boards(tguser)
示例#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 board_list(tguser: TgUser, list_id=None):
     if list_id is None:
         list_id = tguser.callback_query_data_get(1)
     assert isinstance(tguser.client, TrelloClient)
     board_list = tguser.client.get_list(list_id)
     assert isinstance(board_list, trolly.List)
     cards = board_list.get_cards()
     timer_card_ids = tguser.timer_set.values_list('card_id', flat=True)
     tguser.render_to_string('bot/private/choose_card.html', keyboard=keyboards.Cards(tguser, list_id, cards, timer_card_ids), edit=True)
示例#5
0
 def board(tguser: TgUser, board_id=None):
     if board_id is None:
         board_id = tguser.callback_query_data_get(1)
     assert isinstance(tguser.client, TrelloClient)
     board = tguser.client.get_board(board_id)
     assert isinstance(board, trolly.Board)
     lists = board.get_lists()
     timer_list_ids = tguser.timer_set.values_list('list_id', flat=True)
     tguser.render_to_string('bot/private/choose_list.html', keyboard=keyboards.Lists(tguser, lists, timer_list_ids), edit=True)
示例#6
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()
示例#7
0
 def timer_reset(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')
     timer.delete()
     tguser.answer_callback_query('Timer was reset!')
     tguser.edit_message_reply_markup(keyboard=keyboards.Card(tguser, card_id, None))
示例#8
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))
示例#9
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))