示例#1
0
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)
示例#2
0
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)
示例#3
0
文件: user.py 项目: CodeBall/Eorzea
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)
示例#4
0
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)
示例#5
0
文件: auth.py 项目: CodeBall/Eorzea
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)
示例#6
0
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)
示例#7
0
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)
示例#8
0
文件: auth.py 项目: CodeBall/Eorzea
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)
示例#9
0
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
示例#10
0
 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
示例#11
0
 def __init__(self):
     super(ItemForm, self).__init__()
     self.category.choices = CategoryService.get_category_choices()