def build_expiration_report(current_user): user = crud.get_user_by_id(current_user) inventory = crud.get_first_inventory_for_user(user) expiring_items = crud.get_items_expiring(inventory, 30) expiring_items.sort(key=lambda item: item.expiration_date) html_list = [] row_number = 0 for item in expiring_items: if row_number % 2 == 0: html_list.append(f'''<tr style="background-color: #dddddd;"> <td>{item.name}</td> <td>{item.quantity}</td> <td>{item.expiration_date.strftime('%d %b %Y')}</td> <td>{item.date_added.strftime('%d %b %Y')}</td> </tr>''') row_number += 1 else: html_list.append(f'''<tr> <td>{item.name}</td> <td>{item.quantity}</td> <td>{item.expiration_date.strftime('%d %b %Y')}</td> <td>{item.date_added.strftime('%d %b %Y')}</td> </tr>''') row_number += 1 separator = '' html_string = separator.join(html_list) return html_string
def get_item_ids(): user_item_dict = {} item_dict = {} user = crud.get_user_by_id(session['current_user']) inventory = crud.get_first_inventory_for_user(user) for item in inventory.items: item_dict[item.name] = item.item_id user_item_dict['user_id'] = user.user_id user_item_dict['items'] = item_dict print(f'{user_item_dict}') return jsonify(user_item_dict)
def expiration_report(user_id): """View user expiration report.""" #send_scheduled_email(user_id) if session.get('logged_in') == True and int(user_id) == session.get('current_user'): user = crud.get_user_by_id(user_id) inventory = crud.get_first_inventory_for_user(user) expiring_items = crud.get_items_expiring(inventory, 30) expiring_items.sort(key=lambda item: item.expiration_date) return render_template('expiration-report.html', user=user, expiring_items=expiring_items) else: return redirect('/')
def user_inventory(user_id): """View user inventory.""" if session.get('logged_in') == True and int(user_id) == session.get('current_user'): user = crud.get_user_by_id(user_id) inventory = crud.get_first_inventory_for_user(user) items = inventory.items items.sort(key=lambda item: item.name) current_date = datetime.datetime.now().date() expiry_delta_30 = current_date + datetime.timedelta(30) return render_template('user-inventory.html', user=user, items=items, expiry_delta_30=expiry_delta_30) else: return redirect('/')
def add_item(user_id): if session.get('logged_in') == True and int(user_id) == session.get('current_user'): if request.method == 'POST': user = crud.get_user_by_id(user_id) inventory = crud.get_first_inventory_for_user(user) name = request.form.get('name') quantity = request.form.get('quantity') expiration_date = request.form.get('expiration-date') item = crud.create_item(inventory.inventory_id, name, quantity) if expiration_date: crud.set_expiration_date(item, expiration_date) return redirect(f'/user/{user_id}/inventory') return render_template('add-item.html', user_id=user_id) else: return redirect('/')
def send_email(): user = crud.get_user_by_id(session['current_user']) inventory = crud.get_first_inventory_for_user(user) expiring_items = crud.get_items_expiring(inventory, 30) html_list = [] for item in expiring_items: html_list.append(f'''<tr> <td>{item.name}</td> <td>{item.quantity}</td> <td>{item.expiration_date.strftime('%d %b %Y')}</td> <td>{item.date_added.strftime('%d %b %Y')}</td> </tr>''') separator = '' htmlString = separator.join(html_list) mail_helper.send_email(htmlString) return 'Email test'