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)
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)
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)
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)
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)
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)
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)
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)
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)