Пример #1
0
def index():
    page_title = 'Не бита, не крашена!'
    fform = FilterForm()
    form = LoginForm()
    logoutform = LogoutForm()
    brands = Auto_brand.query.order_by(Auto_brand.id).all()
    count = {}
    for br in brands:
        auto = Auto.query.filter_by(brand_id=br.id).all()
        count[br.name] = len(auto)
    page = request.args.get('page', 1, type=int)
    full_auto_list = Auto.query.order_by(Auto.id).all()
    auto_list = Auto.query.order_by(Auto.id).paginate(
        page, current_app.config['AUTO_PER_PAGE'], False)
    next_url = url_for('market.index', page=auto_list.next_num) \
        if auto_list.has_next else None
    prev_url = url_for('market.index', page=auto_list.prev_num) \
        if auto_list.has_prev else None
    return render_template('market/index.html',
                           page_title=page_title,
                           form=form,
                           logoutform=logoutform,
                           auto_list=auto_list.items,
                           next_url=next_url,
                           prev_url=prev_url,
                           brands=brands,
                           full_auto_list=full_auto_list,
                           count=count,
                           fform=fform)
Пример #2
0
def filter_model(brand, model):
    page_title = 'Не бита, не крашена!'
    form = LoginForm()
    logoutform = LogoutForm()
    brands = Auto_brand.query.filter_by(id=brand).all()
    page = request.args.get('page', 1, type=int)
    auto_list = Auto.query.filter_by(model_id=model).paginate(
        page, current_app.config['AUTO_PER_PAGE'], False)
    next_url = url_for('market.index', page=auto_list.next_num) \
        if auto_list.has_next else None
    prev_url = url_for('market.index', page=auto_list.prev_num) \
        if auto_list.has_prev else None
    models = Auto_models.query.filter_by(brand_id=brand).all()
    count = {}
    for model in models:
        auto = Auto.query.filter_by(model_id=model.id).all()
        count[model.name] = len(auto)
    return render_template('market/filter_by_brand.html',
                           page_title=page_title,
                           form=form,
                           logoutform=logoutform,
                           auto_list=auto_list.items,
                           next_url=next_url,
                           prev_url=prev_url,
                           brands=brands,
                           models=models,
                           count=count)
Пример #3
0
def edit_auto(id):
    page_title = 'Редактирование объявления'
    editform = EditForm()
    form = LoginForm()
    regform = RegistrationForm()
    logoutform = LogoutForm()
    auto = Auto.query.filter_by(id=id).first()
    if editform.validate_on_submit():
        auto.price = editform.price.data
        auto.description = editform.description.data
        auto.mileage = editform.mileage.data
        uploaded_files = request.files.getlist('url_picture')
        for file in uploaded_files:
            file.save(
                os.path.join(f'{current_app.static_folder}/uploaded',
                             file.filename))
            new_auto_i = Images(auto_id=auto.id, url_picture=file.filename)
            db.session.add(new_auto_i)
        db.session.commit()
        flash(f"Объявление {auto.name} успешно отредактировано!")
        return redirect(url_for('market.auto_account', id=id))
    return render_template('market/edit.html',
                           page_title=page_title,
                           logoutform=logoutform,
                           editform=editform,
                           form=form,
                           regform=regform,
                           auto=auto)
Пример #4
0
def registration():
    if current_user.is_authenticated:
        return redirect(url_for('market.index'))
    page_title = 'Регистрация на сайте - Не бита, не крашена!'
    form = LoginForm()
    regform = RegistrationForm()
    logoutform = LogoutForm()

    return render_template('user/registration.html',
                           page_title=page_title,
                           form=form,
                           regform=regform,
                           logoutform=logoutform)
Пример #5
0
def user_account(id):
    title = 'Профиль'
    form = LoginForm()
    regform = RegistrationForm()
    logoutform = LogoutForm()
    msgform = MessageForm()
    user = User.query.filter_by(id=id).first()
    return render_template('user/account.html',
                           user=user,
                           page_title=title,
                           form=form,
                           regform=regform,
                           logoutform=logoutform,
                           msgform=msgform)
Пример #6
0
def auto_account(id):
    auto = Auto.query.filter_by(id=id).first()
    form = LoginForm()
    regform = RegistrationForm()
    logoutform = LogoutForm()
    delform = DeleteForm()
    msgform = MessageForm()
    if auto.active is True:
        params = Params.query.join(Auto).filter_by(id=id).first()
        all_params = {
            'Владельцев по ПТС': params.holders,
            'Поколение': params.generation,
            'Состояние': params.condition,
            'Руль': params.steering_wheel,
            'Привод': params.wheeldrive,
            'Цвет': params.color,
            'Объём двигателя': params.engine_capacity,
            'Модель': params.model,
            'Пробег': params.mileage,
            'Марка': params.brand,
            'Год выпуска': params.year,
            'Тип кузова': params.body_type,
            'Тип двигателя': params.type_engine,
            'Коробка передач': params.gear,
            'Мощность двигателя': params.power,
            'Количество дверей': params.doors,
            'VIN или номер кузова': params.vin,
            'Место осмотра': params.location,
            'Комплектация': params.equipment,
            'Модификация': params.modification
        }
        title = f'Продажа {auto.name} на сайте "Не бита, не крашена!"'
        user = User.query.filter_by(id=auto.user_id).first()
        return render_template('market/auto.html',
                               auto=auto,
                               page_title=title,
                               form=form,
                               regform=regform,
                               logoutform=logoutform,
                               params=params,
                               all_params=all_params,
                               user=user,
                               delform=delform,
                               msgform=msgform)
    return render_template('market/deleted.html',
                           page_title='Объявление снято с продажи или удалено',
                           form=form,
                           logoutform=logoutform,
                           delform=delform,
                           regform=regform)
Пример #7
0
def admin_index():
    title = 'Панель управления'
    form = RegistrationForm()
    logoutform = LogoutForm()
    auto_list = Auto.query.all()
    auto_active = Auto.query.filter_by(active=True).all()
    auto_all = len(auto_list)
    auto_true = len(auto_active)
    auto_false = auto_all - auto_true
    user_list = User.query.order_by(User.id).all()
    return render_template("admin/index.html",
                           page_title=title,
                           form=form,
                           logoutform=logoutform,
                           auto_all=auto_all,
                           auto_true=auto_true,
                           auto_false=auto_false,
                           user_list=user_list)
Пример #8
0
def sent_messages():
    form = RegistrationForm()
    logoutform = LogoutForm()
    current_user.last_message_read_time = datetime.datetime.utcnow()
    db.session.commit()
    page = request.args.get('page', 1, type=int)
    sent_msg = Message.query.filter(
        Message.sender_id == current_user.id).order_by(
        Message.timestamp.desc()).paginate(
            page, current_app.config['MESSAGES_PER_PAGE'], False)
    
    next_url = url_for('message.sent_messages', page=sent_msg.next_num) \
        if sent_msg.has_next else None
    prev_url = url_for('message.sent_messages', page=sent_msg.prev_num) \
        if sent_msg.has_prev else None
    return render_template('message/sent_messages.html',
                           next_url=next_url, prev_url=prev_url, form=form,
                           logoutform=logoutform, sent_msg=sent_msg.items)
Пример #9
0
def add_auto():
    page_title = 'Разместить объявление на сайте - Не бита, не крашена!'
    form = LoginForm()
    regform = RegistrationForm()
    addform = AddForm()
    logoutform = LogoutForm()
    addform.brand.choices = [(brand.id, brand.name)
                             for brand in Auto_brand.query.all()]

    addform.model.choices = [(model.id, model.name)
                             for model in Auto_models.query.filter_by(
                                 brand_id=addform.brand.choices[0][0]).all()]

    return render_template('market/add.html',
                           page_title=page_title,
                           form=form,
                           regform=regform,
                           logoutform=logoutform,
                           addform=addform)