Esempio n. 1
0
def edit_date_status(photographer_id):
    if photographer_id == current_user.id:
        user = User.query.filter_by(id=photographer_id).first()
        form = DateStatusForm()
        if request.method == 'POST':
            if request.form.get('action') == 'create':
                if form.validate_on_submit():
                    start_date = form.from_day.data
                    end_date = form.end_day.data
                    date_status = DateStatus()
                    date_status.start_date = start_date
                    date_status.end_date = end_date
                    date_status.user_id = photographer_id
                    date_status.status = EnumValues.find_one_by_code(DATE_STATUS_NOT_AVAILABLE)
                    save_obj_commit(date_status)
                    flash('工作日历修改成功')
                else:
                    flash('输入错误,请重新选择起始日期')
            elif request.form.get('action') == 'delete':
                id_to_del = int(request.form.get('id_to_delete'))
                delete_by_id(DateStatus, id_to_del)
                flash('工作日历中不可用时间段删除成功')
        date_statuses = user.date_statuses
        return rt('edit_date_status.html', form=form, date_statuses=date_statuses)
    else:
        flash('您没有权限编辑该用户的工作日历')
        return redirect(url_for('index'))
Esempio n. 2
0
def create_message(from_user_id, to_user_id, content):
    message = Message()
    message.from_user_id = from_user_id
    message.receive_user_id = to_user_id
    message.date = datetime.now()
    message.content = content
    status = EnumValues.find_one_by_code(const.MESSAGE_STATUS_UNREAD)
    message.status_id = status.id
    return message
Esempio n. 3
0
def process_message():
    operation = request.form.get('operation')
    message_id = int(request.form.get('message_id'))
    msg = Message.query.get(message_id)
    if operation == 'read':
        if msg.receive_user_id == current_user.id:
            status = EnumValues.find_one_by_code(MESSAGE_STATUS_READ)
            msg.status = status
            save_obj_commit(msg)
        else:
            flash("标记消息已读成功")
    return redirect(url_for('messages'))
Esempio n. 4
0
def photograph():
    categories = EnumValues.type_filter(const.PHOTO_CATEGORY_KEY).all()
    styles = EnumValues.type_filter(const.PHOTO_STYLE_KEY).all()
    category, style, include_none_date, include_none_price, min_price, max_price, min_date, max_date = \
        [None, None, None, None, None, None, None, None]
    if request.method == 'POST':
        category_id, include_none_date, include_none_price, max_date, max_price, min_date, min_price, style_id = extra_fields_from_form()
        collections, category, style = query_for_photo_collection(category_id, True, True, None, None, None, None, style_id)

        query = AppInfo.get_db().session.query(User).join(PhotoCollection, User.id == PhotoCollection.photographer_id)
        category, style = None, None
        if category_id is not None:
            query = query.filter(PhotoCollection.category_id == category_id)
            category = EnumValues.query.get(category_id)
        if style_id is not None:
            query = query.filter(PhotoCollection.style_id == style_id)
            style = EnumValues.query.get(style_id)
        if min_price is not None:
            if include_none_price:
                query = query.filter(or_(PhotoCollection.price >= min_price, PhotoCollection.price.is_(None)))
            else:
                query = query.filter(PhotoCollection.price >= min_price)
        if max_price is not None:
            if include_none_price:
                query = query.filter(or_(PhotoCollection.price <= max_price, PhotoCollection.price.is_(None)))
            else:
                query = query.filter(PhotoCollection.price <= max_price)
        if min_date is not None:
            if include_none_date:
                query = query.filter(or_(PhotoCollection.date >= min_date, PhotoCollection.date.is_(None)))
            else:
                query = query.filter(PhotoCollection.date >= min_date)
        if max_date is not None:
            if include_none_date:
                query = query.filter(or_(PhotoCollection.date <= max_date, PhotoCollection.date.is_(None)))
            else:
                query = query.filter(PhotoCollection.date <= max_date)
        collections = query.filter(PhotoCollection.photos.any()).all()

        result_list = []
        for c in collections:
            if c.photographer not in result_list:
                result_list.append(c.photographer)
    else:
        pg_type = EnumValues.find_one_by_code(const.PHOTOGRAPHER_USER_TYPE)
        result_list = User.query.filter_by(type_id=pg_type.id).all()
    return rt("photograph.html", result_list=result_list, categories=categories,
              styles=styles, category=category, style=style, route='/photograph',
              min_price=min_price, max_price=max_price, include_none_price=include_none_price,
              min_date=min_date, max_date=max_date, include_none_date=include_none_date)
Esempio n. 5
0
def message(msg_id):
    msg = Message.query.get(msg_id)
    status = EnumValues.find_one_by_code(MESSAGE_STATUS_READ)
    msg.status = status
    save_obj_commit(msg)
    return rt('message.html', message=msg)