Ejemplo n.º 1
0
def edit_item(item_id):
    if 'editing_item' in session:
        del session['editing_item']
    item = Item.query.filter_by(id=item_id).first_or_404()
    categories = Category.query.all()
    form = EditItemForm()
    form.categories.choices = [(category.id, category.name)
                               for category in categories]
    session['editing_item'] = url_for('main.edit_item', item_id=item_id)
    if form.validate_on_submit():  # Updating
        item.title = form.title.data
        item.description = form.description.data
        item.price = form.price.data
        item.category_id = form.categories.data
        if item.photo_id:
            delete_photo(item.photo_id)
            item.photo_id = None
        if form.image.data:
            item.photo_id = upload_photo(form.image.data)
        db.session.commit()
        flash('Your changes have been saved.')
        return redirect(url_for('main.edit_item', item_id=item.id))
    elif request.method == 'GET':  # Rendering
        form.title.data = item.title
        form.description.data = item.description
        form.price.data = item.price
        form.categories.data = item.category_id
    return render_template('edit_item.html',
                           title='Edit Item',
                           form=form,
                           item=item)
Ejemplo n.º 2
0
 def from_dict(self, data):
     for field in ['name', 'description']:
         if field in data:
             setattr(self, field, data[field])
         if 'photo_data' in data:
             image = base64.b64decode(data['photo_data'])
             self.photo_id = upload_photo(image)
Ejemplo n.º 3
0
def add_category():
    form = EditCategoryForm()
    if form.validate_on_submit():
        category = Category(name=form.name.data,
                            description=form.description.data,
                            photo_id=upload_photo(form.image.data)
                            if form.image.data else None)
        db.session.add(category)
        db.session.commit()
        flash('Category have been created.')
        if 'editing_categories' in session:
            return redirect(session['editing_categories'])
    return render_template('add_category.html',
                           title='Add category',
                           form=form)
Ejemplo n.º 4
0
def add_item():
    form = EditItemForm()
    if form.validate_on_submit():
        item = Item(title=form.title.data,
                    description=form.description.data,
                    price=form.price.data,
                    category_id=form.category_id.data,
                    photo_id=upload_photo(form.image.data)
                    if form.image.data else None)
        db.session.add(item)
        db.session.commit()
        flash('Item have been created.')
        if 'editing_category' in session:
            return redirect(session['editing_category'])
    return render_template('add_item.html', title='Add item', form=form)
Ejemplo n.º 5
0
def edit_category(category_id):
    if 'editing_category' in session:
        del session['editing_category']
    category = Category.query.filter_by(id=category_id).first_or_404()
    form = EditCategoryForm()
    page = request.args.get('page', 1, type=int)
    items = category.get_items().paginate(page,
                                          current_app.config['ITEMS_PER_PAGE'],
                                          True)
    next_url = url_for('edit_category', category_id=category_id, page=items.next_num) \
        if items.has_next else None
    prev_url = url_for('edit_category', category_id=category_id, page=items.prev_num) \
        if items.has_prev else None
    session['editing_category'] = url_for('main.edit_category',
                                          category_id=category_id)
    if form.validate_on_submit():  # Updating
        category.name = form.name.data
        category.description = form.description.data
        if category.photo_id:
            delete_photo(category.photo_id)
            category.photo_id = None
        if form.image.data:
            category.photo_id = upload_photo(form.image.data)
        db.session.commit()
        flash('Your changes have been saved.')
        return redirect(url_for('main.edit_category', category_id=category.id))
    elif request.method == 'GET':  # Rendering
        form.name.data = category.name
        form.description.data = category.description
    return render_template('edit_category.html',
                           title='Edit Category',
                           form=form,
                           category=category,
                           items=items.items,
                           next_url=next_url,
                           prev_url=prev_url)