def create_card(): '''Creates Card (Epic and Standard) from the card creation menu''' #TODO Make seperate functions for diffrent card types card_form = json.loads(request.form['payload']) card_form = sanitize.form_keys(card_form) card = Card.map_from_form(card_form) if card.type == CardType(0).name: #Standard #add the provided "steps" to the card to be netered into the database steps_form = card_form.get('steps') steps = create_objects_from_form_array(Step, steps_form) card.add_steps(steps) return_value = card_insert.new_card(card) elif card.type == CardType(1).name: #Epic #No special action needs to be taken, enter into database return_value = card_insert.new_epic(card) else: return_value = response.error("Card Type is Invalid") return return_value
def card_details(card_id, cursor = None): cursor.execute(""" SELECT DISTINCT card.status as card_status, card.points as card_points, user.id as user_id, user.first_name as user_first_name, user.last_name as user_last_name, card.created as card_created, card.updated as card_updated, epic.id as epic_id, epic_card.name as epic_name, epic.background_color as epic_background_color, epic.foreground_color as epic_foreground_color from card LEFT JOIN epic ON epic.id = card.epic LEFT JOIN card AS epic_card ON epic_card.epic = card.epic AND epic_card.type = 1 LEFT JOIN user ON card.poc = user.id WHERE card.id = %(card_id)s""", {'card_id': card_id}) result = cursor.fetchone() card = Card.map_from_form(result) return card
def get_card(card_index, project_id): '''Using the cards index, send back all information pertaining to the card Used primarily for the card details page''' card_refrence = Card() card_refrence.index = card_index card = card_select.card(project_id, card_refrence.proj_number()) if card.type is CardType(0).name: steps = card_select.card_steps(card.id) card.add_steps(steps) elif card.type is CardType(1).name: assigned_cards = card_select.cards_assigned_to_epic(card.epic.id) card.add_assigned_cards(assigned_cards) return response.success(card.serialize())
def update_card_details(card_id): card_form = json.loads(request.form['payload']) card_form = sanitize.form_keys(card_form) print(card_form) card = Card.map_from_form(card_form) card_update.details(card) return get_card_details(card.id, api_response = False)
def update_card_description(card_id): '''Updates the provided card's description, then returns the value from the database''' card_form = json.loads(request.form['payload']) card_form = sanitize.form_keys(card_form) card = Card.map_from_form(card_form) card_update.description(card) return get_card_description(card.id, api_response = False)
def card_description(card_id, cursor = None): cursor.execute(""" SELECT DISTINCT card_description.description as card_description FROM card_description WHERE card_description.card_id = %(card_id)s""", {'card_id': card_id}) result = cursor.fetchone() card = Card.map_from_form(result) return card
def card_name(card_id, cursor = None): cursor.execute(""" SELECT distinct card.name as card_name from card WHERE card.id = %(card_id)s""", {'card_id': card_id}) result = cursor.fetchone() card = Card.map_from_form(result) return card
def next_card_index(project_id, cursor = None): cursor.execute(""" SELECT project.designator as card_proj_designator, (max(card.proj_number) + 1) as card_proj_number FROM card JOIN project on card.project = project.id WHERE project.id = %(project_id)s;""", {'project_id': project_id}) result = cursor.fetchone() card = Card.map_from_form(result) return card.index
def card_with_user_task(user_id, project_id, cursor = None): cursor.execute(""" SELECT distinct card.id as card_id, project.designator as card_proj_designator, card.proj_number as card_proj_number, card.name as card_name, card.type as card_type, card.status as card_status, card.points as card_points, card_description.description as card_description, user.id as user_id, user.first_name as user_first_name, user.last_name as user_last_name, card.created as card_created, card.updated as card_updated, epic.id as epic_id, epic_card.name as epic_name, epic.background_color as epic_background_color, epic.foreground_color as epic_foreground_color from card JOIN card_description ON card_description.card_id = card.id JOIN project on card.project = project.id LEFT JOIN epic ON epic.id = card.epic LEFT JOIN card AS epic_card ON epic_card.epic = card.epic AND epic_card.type = 1 LEFT JOIN user ON card.poc = user.id WHERE card.project = %(project_id)s AND card.status <> 3 AND ( card.poc = %(user_id)s OR card.id IN ( SELECT distinct card_id from card_steps where assigned = %(user_id)s ));""", {'user_id': user_id, 'project_id' : project_id}) results = cursor.fetchall() cards = [] for row in results: cards.append(Card.map_from_form(row)) return cards
def backlog(project_id, cursor = None): cursor.execute(""" SELECT card.id as card_id, project.designator as card_proj_designator, card.proj_number as card_proj_number, card.name as card_name, card.type as card_type, card.status as card_status, card.points as card_points, card_description.description as card_description, user.id as user_id, user.first_name as user_first_name, user.last_name as user_last_name, card.created as card_created, card.updated as card_updated, epic.id as epic_id, epic_card.name as epic_name, epic.background_color as epic_background_color, epic.foreground_color as epic_foreground_color from card JOIN card_description ON card_description.card_id = card.id JOIN project on card.project = project.id LEFT JOIN epic ON card.epic = epic.id LEFT JOIN card AS epic_card ON epic_card.epic = card.epic AND epic_card.type = 1 LEFT JOIN user ON card.poc = user.id WHERE card.sprint IS NULL AND card.type <> 1 AND card.status <>3 AND card.project = %(project_id)s""", {'project_id': project_id}) results = cursor.fetchall() cards = [] for row in results: cards.append(Card.map_from_form(row)) return cards
def card(project_id, proj_number, cursor = None): cursor.execute(""" SELECT distinct card.id as card_id, project.designator as card_proj_designator, card.proj_number as card_proj_number, card.name as card_name, card.type as card_type, card.status as card_status, card.points as card_points, card_description.description as card_description, user.id as user_id, user.first_name as user_first_name, user.last_name as user_last_name, card.created as card_created, card.updated as card_updated, epic.id as epic_id, epic_card.name as epic_name, epic.background_color as epic_background_color, epic.foreground_color as epic_foreground_color from card JOIN card_description ON card_description.card_id = card.id JOIN project on card.project = project.id LEFT JOIN epic ON epic.id = card.epic LEFT JOIN card AS epic_card ON epic_card.epic = card.epic AND epic_card.type = 1 LEFT JOIN user ON card.poc = user.id WHERE project.id = %(project_id)s AND card.proj_number = %(num)s""", {'project_id': project_id , 'num': proj_number}) result = cursor.fetchone() card = Card.map_from_form(result) return card