Example #1
0
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
Example #2
0
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)
Example #3
0
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('/')
Example #4
0
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('/')
Example #5
0
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('/')
Example #6
0
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'