def item_filter_by_category(category_id): categories = CategoryService.get_categories() category = CategoryService.get_category_by_id(category_id) if not category: abort(404) items = ItemService.get_items_by_category(category_id) items = _format_items(items) return render_template('index.html', categories=categories, items=items)
def item_filter_by_collection(): categories = CategoryService.get_categories() collect_item_list = CollectionService.get_item_list_by_user_id(current_user.id) collect_item_ids = [collect_item.item_id for collect_item in collect_item_list] items = ItemService.get_items_by_user_id_list(collect_item_ids) items = _format_items(items) return render_template('index.html', categories=categories, items=items)
def profile(username): user = UserService.get_user_by_username(username) if not user: abort(404) categories = CategoryService.get_categories() user = UserService.get_user_by_id(user.id) active_items = ItemService.get_active_items(user.id) active_item_count = len(active_items) if active_items else 0 success_trade_items = ItemService.get_success_trade_items(user.id) success_trade_count = len( success_trade_items) if success_trade_items else 0 trade_item_list = TradeService.get_trades_by_user_is(user.id) trade_item_count = len(trade_item_list) if trade_item_list else 0 if current_user.id == user.id: collect_item_list = CollectionService.get_item_list_by_user_id(user.id) collect_item_count = len(collect_item_list) if collect_item_list else 0 else: collect_item_count = 0 return render_template('user/profile.html', user=user, categories=categories, active_item_count=active_item_count, success_trade_count=success_trade_count, trade_item_count=trade_item_count, collect_item_count=collect_item_count)
def item_filter_by_trade(user_id): categories = CategoryService.get_categories() user = UserService.get_user_by_id(user_id) if not user: abort(404) trade_item_list = TradeService.get_trades_by_user_is(user_id) trade_item_ids = [trade_item.item_id for trade_item in trade_item_list] items = ItemService.get_items_by_user_id_list(trade_item_ids) items = _format_items(items) return render_template('index.html', categories=categories, items=items)
def login(): categories = CategoryService.get_categories() form = LoginForm() if form.validate_on_submit(): login_user(form.user, form.remember_me.data) _next = request.args.get('next') if not is_safe_url(_next): return abort(400) return redirect(_next or url_for('index.index')) return render_template('auth/login.html', form=form, categories=categories)
def item_filter_by_active(active, user_id): categories = CategoryService.get_categories() user = UserService.get_user_by_id(user_id) if not user: abort(404) if active: items = ItemService.get_active_items(user_id) else: items = ItemService.get_success_trade_items(user_id) items = _format_items(items) return render_template('index.html', categories=categories, items=items)
def index(): categories = CategoryService.get_categories() items = ItemService.get_items(limit=10) for item in items: user = UserService.get_user_by_id(item.user_id) if user: item.user = user if item.category_id: category = CategoryService.get_category_by_id(item.category_id) if category: item.category_name = category.name trades = TradeService.get_trades_by_item_id(item.id) item.trade_count = len(trades) if trades else 0 collections = CollectionService.get_user_list_by_item_id(item.id) item.collection_count = len(collections) if collections else 0 comments = ItemCommentService.get_comments_by_item_id(item.id) item.comment_count = len(comments) if comments else 0 return render_template('index.html', categories=categories, items=items)
def register(): categories = CategoryService.get_categories() form = RegisterForm() if form.validate_on_submit(): filename = f"images/{uuid.uuid4()}.{form.avatar.data.filename.split('.')[-1]}" qiniu.upload_stream(form.avatar.data, filename) user = UserService.create_user(form.username.data, form.email.data, form.password.data, form.telephone.data, form.sex.data, filename, form.real_name.data) login_user(user) return redirect(url_for('index.index')) return render_template('auth/register.html', form=form, categories=categories)
def _format_items(items): for item in items: user = UserService.get_user_by_id(item.user_id) if user: item.user = user if item.category_id: category = CategoryService.get_category_by_id(item.category_id) if category: item.category_name = category.name trades = TradeService.get_trades_by_item_id(item.id) item.trade_count = len(trades) if trades else 0 collections = CollectionService.get_user_list_by_item_id(item.id) item.collection_count = len(collections) if collections else 0 comments = ItemCommentService.get_comments_by_item_id(item.id) item.comment_count = len(comments) if comments else 0 return items
def validate_category(self, field): category = CategoryService.get_category_by_slug(field.data) if not category: raise ValidationError('invalid category') self.category_id = category.id
def __init__(self): super(ItemForm, self).__init__() self.category.choices = CategoryService.get_category_choices()