def new_saying(): logi('new saying') try: validate_saying() except ValueError, e: logi('new saying: validation error errors=%s', e.errors.keys()) (public, private) = sayings.find_all_group_by_publication() return render_template('admin/saying.html', public_saying=public, private_saying=private, errors=e.errors)
def forcelogin(): passwd = request.args.get('k') if do_login(passwd): logi('login successed') return redirect(url_for('general.index')) else: logi('login failed') error_message(u'ログインできません。パスワードが間違っています。') return redirect(url_for('general.login'))
def delete_schedule(id, module): if request.method == 'GET': s = scheds.from_row(scheds.find_by_id(id)) return render_template(module['delete_template'], schedule=s) else: if is_yes(): logi('delete schedule: type=%d, sid=%d', module['type'], id) scheds.delete_by_id(id) else: logi('not delete schedule: type=%d, sid=%d', module['type'], id) return redirect(url_for(module['index']))
def delete_member(id): if request.method == 'GET': user = users.find_by_id(id) return render_template('admin/delete_member.html', user=user) else: if is_yes(): logi('delete member: uid=%d', id) users.delete_by_id(id) else: logi('not delete member: uid=%d', id) return redirect(url_for('admin.member'))
def delete_notice(id): if request.method == 'GET': notice = notices.find_by_id(id) return render_template('admin/delete_notice.html', notice=notice) else: if is_yes(): logi('delete notice: id=%d', id) notices.delete_by_id(id) else: logi('not delete notice: id=%d', id) return redirect(url_for('admin.notice'))
def edit_member(id): if request.method == 'GET': user = users.find_by_id(id) return render_template('admin/edit_member.html', user=user) else: logi('edit member') try: validate_member() except ValueError, e: user = users.find_by_id(id) logi('edit member: validation error uid=%d', id) return render_template('admin/edit_member.html', user=user, errors=e.errors) u = users.make_obj(request.form, id) logi('edit member: update uid=%d', id) try: users.update(id, u.password, u.sex, u.permission) except users.NotUniquePassword: user = users.find_by_id(id) logi('not unique password') return render_template('admin/edit_member.html', user=user, errors=not_unique_password_error()) if id != g.user.id: return redirect(url_for('admin.member')) elif u.is_member_admin(): return redirect(url_for('admin.member')) elif u.is_admin(): return redirect(url_for('admin.index')) else: return redirect(url_for('general.index'))
def new_notice(): if request.method == 'GET': return render_template('admin/edit_notice.html') else: logi('new notice') try: validate_notice() except ValueError, e: logi('new notice: validation error') return render_template('admin/edit_notice.html', errors=e.errors) n = notices.make_obj(request.form) notices.insert(n['title'], n['begin_show'], n['end_show'], n['body']) return redirect(url_for('admin.notice'))
def login(): if request.method == 'GET': return render_template('login.html') btn = request.form['btn'] if btn == 'login': passwd = request.form['password'] if do_login(passwd): logi('login successed') return redirect(url_for('general.index')) else: logi('login failed') error_message(u'ログインできません。パスワードが間違っています。') return redirect(url_for('general.login')) else: abort(400)
def new_member(): if request.method == 'GET': return render_template('admin/edit_member.html') else: logi('new member') try: validate_member() except ValueError, e: logi('new member: validation error errors=%s', e.errors.keys()) return render_template('admin/edit_member.html', errors=e.errors) u = users.make_obj(request.form) logi('new member: insert name=%s', u.name) try: users.insert(u.name, u.password, u.sex, u.permission) return redirect(url_for('admin.member')) except users.NotUniquePassword: logi('not unique password') return render_template('admin/edit_member.html', errors=not_unique_password_error())
def remove_guest(guest_id): gu = entries.find_guest_by_id(guest_id) if not gu: logi('not found guest id: %d', guest_id) return abort(404) if not entries.has_permission_to_delete_guest(guest_id): logi('no permission to delete guest: %d', guest_id) return abort(403) logi('delete guest: %d', guest_id) entries.delete_guest_by_id(guest_id) info_message(message=u'%s の参加表明を取り消しました。' % gu['name'], title=u'更新ありがとうございます!') return redirect(url_for('schedule.schedule'))
def entry(sid): action = request.form['action'] comment = request.form['comment'] is_guest = request.form.get('is-guest', False) if is_guest and is_entering_action(action): guest_name = request.form['guest-name'] logi('guest entry to sid=%d, name=%s', sid, guest_name) entries.do_guest_entry(sid, guest_name, comment) else: if is_entering_action(action): logi('entry to sid=%d', sid) entries.do_entry(sid, comment, entry=True) elif is_leaving_action(action): logi('exit from sid=%d', sid) entries.do_entry(sid, comment, entry=False) return redirect(url_for('schedule.schedule'))
def new_schedule(module): if request.method == 'GET': today = datetime.today() return render_template(module['edit_template'], today=today) else: moduletype = module['type'] logi('new schedule: type=%d', moduletype) try: module['validate']() except ValueError, e: logi('new schedule: validation error type=%d, errors=%s', moduletype, e.errors.keys()) today = datetime.today() return render_template(module['edit_template'], today=today, errors=e.errors) obj = module['make_obj'](request.form) logi('new schedule: insert type=%d, when=%s, body=%s', moduletype, obj['when'], obj['body']) scheds.insert(moduletype, obj['when'], obj['body']) return redirect(url_for(module['index']))
def edit_schedule(id, module): if request.method == 'GET': s = scheds.from_row(scheds.find_by_id(id, with_entry=False)) return render_template(module['edit_template'], schedule=s) else: moduletype = module['type'] logi('edit schedule: type=%d, sid=%d', moduletype, id) try: module['validate']() except ValueError, e: logi('edit schedule: validation error type=%d, sid=%d, errors=%s', moduletype, id, e.errors.keys()) s = scheds.from_row(scheds.find_by_id(id, with_entry=False)) return render_template(module['edit_template'], schedule=s, errors=e.errors) obj = module['make_obj'](request.form) logi('edit schedule: update type=%d, sid=%d, when=%s, body=%s', moduletype, id, obj['when'], obj['body']) scheds.update(id, obj['when'], obj['body']) return redirect(url_for(module['index']))
def edit_notice(id): if request.method == 'GET': notice = notices.find_by_id(id) return render_template('admin/edit_notice.html', notice=notice) else: logi('edit notice') try: validate_notice() except ValueError, e: logi('edit notice: validation error errors=%s', e.errors.keys()) notice = notices.find_by_id(id) return render_template('admin/edit_notice.html', notice=notice, errors=e.errors) n = notices.make_obj(request.form) logi('edit notice: update id=%d, begin_show=%s, end_show=%s', id, n['begin_show'], n['end_show']) notices.update(id, n['title'], n['begin_show'], n['end_show'], n['body']) return redirect(url_for('admin.notice'))
def delete_saying(id): sayings.delete(id) logi('delete saying: id=%d', id) return redirect(url_for('admin.saying'))
def update_payments(year, user_id): new_paid_seasons = [int(x) for x in request.form.getlist('seasons')] logi('update payments: uid=%d, year=%d, seasons=%s', user_id, year, new_paid_seasons) taxes.update_payments(year, user_id, new_paid_seasons) return redirect(url_for('general.tax_list'))
def logout(): logi('logout') session.pop('user_id') return redirect(url_for('general.index'))
def post(): logi('bbs post') body = request.form['body'] bbs.post(body) return redirect(url_for('bbs.index'))
@mod.route('/saying/new', methods=['POST']) @requires_permission(users.PERM_ADMIN) def new_saying(): logi('new saying') try: validate_saying() except ValueError, e: logi('new saying: validation error errors=%s', e.errors.keys()) (public, private) = sayings.find_all_group_by_publication() return render_template('admin/saying.html', public_saying=public, private_saying=private, errors=e.errors) who = request.form['who'] body = request.form['body'] private = 'private' in request.form.getlist('private') logi('new saying: insert who=%s, body=%s, private=%s', who, body, private) sayings.insert(who, body, private) return redirect(url_for('admin.saying')) @mod.route('/saying/delete/<int:id>') @requires_permission(users.PERM_ADMIN) def delete_saying(id): sayings.delete(id) logi('delete saying: id=%d', id) return redirect(url_for('admin.saying')) ############# # UTILITIES #############
return delete_report(r) abort(400) def post_report(r): try: validate_report() except ValueError, e: return render_template('report_edit.html', errors=e.errors, report=r) title = request.form['title'] feature_image_url = request.form.get('feature_image_url', '') description = request.form['description'] body = request.form['body'] if r: logi('post report: update id=%d', r.id) r.update(title, feature_image_url, description, body) newid = r.id else: logi('post report: insert') newid = reports.insert(title, feature_image_url, description, body) return redirect(url_for('general.report', id=newid)) def delete_report(r): r.delete() info_message(message=u'活動記録を削除しました。') return redirect(url_for('general.report_list')) @mod.route('/report/preview', methods=['POST'])