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")
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...')