def action(self):
     self.notify_checklist_incomplete = 'Ran'
     logging.debug(self.last_actor)
     hook = Webhook.get(model_id=self.card_data['idBoard'])
     card = TrelloCard.get(idCard=self.card_data['id'])
     logging.debug(hook.user)
     unarchived = unarchive_card(self.card_data['id'], hook.user)
     if unarchived == True:
         if len(self.card_data['idMembers']) == 0:
             trello_user = TrelloUserInfo.get(trello_id=card.idMemberCreator)
             send_email('*****@*****.**', """
                 Hello, A card has been archived that has an incomplete checklist. It has
                 been unarchived. Please take a moment to look into this matter. %s Thanks!
                 The Nebri Support Team This email should have been sent to %s.
             """ % (self.card_data['shortUrl'], trello_user.username), "An Incomplete Card has been Archived")
         else:
             for member in self.card_data['idMembers']:
                 trello_user = TrelloUserInfo.get(trello_id=member)
                 send_email('*****@*****.**', """
                 Hello, A card has been archived that has an incomplete checklist. It has
                 been unarchived. Please take a moment to look into this matter. %s Thanks!
                 The Nebri Support Team This email should have been sent to %s.
                 """ % (self.card_data['shortUrl'], trello_user.username), "An Incomplete Card has been Archived")
     else:
         send_email('*****@*****.**', """
         An error occurred... %s
         """ % unarchived, "An Error Occurred during Archiving")
Example #2
0
def member_json_to_model(member):
    try:
        member_obj = TrelloUserInfo.get(trello_id=member.get('id'))
    except Process.DoesNotExist:
        logging.debug('create new.....')
        member_obj = TrelloUserInfo(trello_id=member.get('id'))
    except Exception as e:
        logging.debug(str(e))
        if len(TrelloUserInfo.filter(trello_id=member.get('id'))) > 1:
            member_obj = TrelloUserInfo.filter(trello_id=member.get('id'))[-1]
            for tuser in TrelloUserInfo.filter(trello_id=member.get('id')):
                tuser.delete()

    member_obj.trello_username = member.get('username')
    member_obj.trello_fullname = member.get('fullName')
    member_obj.save()

    return member_obj
    def action(self):
        logging.info('Starting Action')
        self.trello_overdue_cards_notify = 'RAN: ' + str(datetime.now())

        overdue_cards = self.get_or_check_cards(check_only=False)
        self.due_cards_len = len(overdue_cards)

        logging.info('getting client')
        client = get_client(self.default_user)
        logging.info('Client found')
        logging.info('client type: {}'.format(type(client)))
        notify_users = defaultdict(list)
        logging.info('starting loop of overdue_cards')
        for card in overdue_cards:
            if card.idMemberCreator is None or card.idMemberCreator is False:
                logging.info('getting card creator: {}'.format(card.idCard))
                # get card creator if not set in model
                creator = get_card_creator(card.idCard, client)
                logging.info('Creator is: {}'.format(creator))
                if creator is None:
                    continue
                card.idMemberCreator = creator
                card.save()
            notify_users[card.idMemberCreator].append(card.shortUrl)

        for user in notify_users:
            try:
                trello_user = TrelloUserInfo.get(trello_id=user)
                if trello_user.email == '':
                    to = self.default_user
                else:
                    to = trello_user.email
                send_email(to, '{id}  the following cards are '
                                              'overdue:\n{tlist}'.format(
                    id=trello_user.trello_fullname,
                    tlist='\n'.join(notify_users.get(user))
                ))
            except Exception as e:
                # if the user is not found, then let the last actor know
                logging.error(str(e))
                send_email(self.default_user, 'could not find user: {}'.format(user))

        # Assuming no issues, disable cards
        for card in overdue_cards:
            card.overdue_notice_sent = True
            card.save()

        logging.info('Script Finished...')
    def action(self):
        self.handle_unapproved_archived = 'Ran'
        hook = Webhook.get(model_id=self.card_data['idBoard'])
        try:
            card = TrelloCard.get(idCard=self.card_data['id'], user=self.default_user)
        except Process.DoesNotExist:
            return

        unarchived = unarchive_card(self.card_data['id'], hook.user)
        if unarchived == True:
            trello_user = TrelloUserInfo.get(trello_id=card.idMemberCreator)
            send_email('*****@*****.**', """
            Hello, A card has been archived which was not approved by a board admin. It has
            been unarchived. Please take a moment to look into this matter. %s Thanks!
            The Nebri Support Team  Team This email should have been sent to %s.
            """ % (self.card_data['shortUrl'], trello_user.username), "An Unapproved Card has been Archived")
        else:
            send_email('*****@*****.**', """
            An error occurred... %s
            """ % unarchived, "An Error Occurred during Archiving")
    def action(self):
        self.trello_checklist_due_soon = 'RAN: ' + str(datetime.now())
        logging.info('running action: ' + str(datetime.now()))

        soondue_cards = self.get_cards(check_only=False)
        logging.info('soon due cards: {}'.format(len(soondue_cards)))
        for card in soondue_cards:
            logging.info('card members: {}'.format(card.idMembers))
            member_list = []
            for memberid in card.idMembers:
                try:
                    trello_member = TrelloUserInfo.get(trello_id=memberid)
                    logging.info('trello_member: {}'.format(trello_member))
                except Exception as e:
                        logging.error(str(e))
                        send_email(self.default_user,
                                  '''could not find user: ''' + memberid)
                if trello_member == '' or trello_member is None:
                    logging.info('user not found: {}'.format(memberid))
                    if memberid not in user_not_found:
                        user_not_found.append(memberid)
                        send_email(self.default_user,
                                   '''could not find user: ''' + memberid)
                        continue
                    if trello_member.email is None or trello_member.email == '':
                        user_not_found.append(memberid)
                        send_email(self.default_user,
                                   '''could not find user: ''' + memberid)
                        continue
                member_list.append(trello_member.email)
            logging.info('member list: {}'.format(member_list))
            if member_list:
                send_email(
                    self.default_user,
                    '''You need to finish this card ''' + card.shortUrl,
                    'Unfinished checklist (PID:{})'.format(self.PROCESS_ID)
                )

        logging.info('Action Finished...')