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