def page_add(): if request.method == 'GET': pages = Backend('page').dropdown(show_empty_option=True) fields = extend_service.get_fields_by_type('page') return render_template('admin/page/add.html', statuses=PAGE_STATUSES, pages=pages, fields=fields) f = request.form parent = f.get('parent') name = f.get('name') title = f.get('title') name = name or title slug = f.get('slug') content = f.get('content') status = f.get('status') pid = f.get('pid', type=int) show_in_menu = f.get('show_in_menu', type=int) show_in_menu = 1 if show_in_menu else 0 redirect_ = f.get('redirect') validator = Validator() validator.add('duplicate', lambda key: page_service.is_exist_slug(key) == False) (validator.check(title, 'min', text('page.title_missing'), 3).check(slug, 'min', text('page.slug_missing'), 3).check(slug, 'duplicate', text('page.slug_duplicate')).check( slug, 'regex', text('page.slug_invalid'), r'^[0-9_A-Za-z-]+$') #.check(redirect, 'url', text('page.redirect_missing')) ) if validator.errors: flash(validator.errors, 'error') pages = Backend('page').dropdown(show_empty_option=True) fields = extend_service.get_fields_by_type('page') return render_template('admin/page/add.html', statuses=PAGE_STATUSES, pages=pages, fields=fields) page = page_service.add_page(parent, name, title, slug, content, status, redirect_, show_in_menu) extend_service.prcoess_field(page, 'page') return redirect(url_for('admin.page_page'))
def page_add(): if request.method == 'GET': pages = Backend('page').dropdown(show_empty_option=True) fields = extend_service.get_fields_by_type('page') return render_template('admin/page/add.html', statuses=PAGE_STATUSES, pages=pages, fields=fields) f = request.form parent = f.get('parent') name = f.get('name') title = f.get('title') name = name or title slug = f.get('slug') content = f.get('content') status = f.get('status') pid = f.get('pid', type=int) show_in_menu = f.get('show_in_menu', type=int) show_in_menu = 1 if show_in_menu else 0 redirect_ = f.get('redirect') validator = Validator() validator.add( 'duplicate', lambda key: page_service.is_exist_slug(key) == False) (validator .check(title, 'min', text('page.title_missing'), 3) .check(slug, 'min', text('page.slug_missing'), 3) .check(slug, 'duplicate', text('page.slug_duplicate')) .check(slug, 'regex', text('page.slug_invalid'), r'^[0-9_A-Za-z-]+$') #.check(redirect, 'url', text('page.redirect_missing')) ) if validator.errors: flash(validator.errors, 'error') pages = Backend('page').dropdown(show_empty_option=True) fields = extend_service.get_fields_by_type('page') return render_template('admin/page/add.html', statuses=PAGE_STATUSES, pages=pages, fields=fields) page = page_service.add_page( parent, name, title, slug, content, status, redirect_, show_in_menu) extend_service.prcoess_field(page, 'page') return redirect(url_for('admin.page_page'))
def field_add(): if request.method == 'GET': return render_template('admin//extend/field/add.html') reqp = request.form _type = reqp.get('type') field = reqp.get('field') key = reqp.get('key') label = reqp.get('label') key = key or label validator = Validator() validator.add( 'valid_key', lambda key: extend_service.count(key, _type) == 0) (validator .check(key, 'min', text('extend.key_missing'), 1) .check(key, 'valid_key', text('extend.key_exists')) .check(label, 'min', text('extend.label_missing'), 1) ) if validator.errors: flash(validator.errors, 'error') return render_template('admin/extend/field/add.html') if field == 'image': attributes = { 'type': reqp.get('attributes[type]'), 'size': { 'height': reqp.get('attributes[size][height]', type=int), 'width': reqp.get('attributes[size][width]', type=int), } } elif field == 'file': attributes = { 'type': reqp.get('attributes[type]'), } else: attributes = {} extend_service.create_extend(_type, key, label, field, attributes) return redirect(url_for('admin.field_page'))