def index(): db = DBSession(engine) topics = db.getMulti('Topic') for topic in topics: topic['likes'] = 0 votes = db.getMulti('Vote', {'topic': topic['id']}) for vote in votes: topic['likes'] += vote['like'] return render_template('index.html', topics=topics)
def modify_user(user_id): db = DBSession(engine) user = db.get('User', {'id': user_id}) if request.method == 'PUT': pass elif request.method == 'DELETE': if isadmin(): pass return render_template('user_editor.html', user=user)
def login(): next_url = request.args.get('next') or request.form.get('next') if request.method == 'POST' and request.form.get('userid') and request.form.get('password'): userid = request.form.get('userid') password = request.form.get('password') db = DBSession(engine) user_details = db.get('User', {'userid': userid}) logger.debug('attempting log in for user : %s' % (userid)) if user_details: if password == user_details['password']: logger.debug('login successful for user %s' % (userid)) session['logged_in'] = True session['user'] = user_details session.permanent = False # use Cookie to store session. (or not!?) flash('You are now logged in.', 'success') return redirect(next_url or url_for('index')) else: logger.debug('unsuccessful login attempt for user %s' % (userid)) flash('Incorrect password.', 'danger') else: flash('Incorrect UserId or Password.', 'danger') return render_template('login.html', next_url=next_url)
def like(topic_id): db = DBSession(engine) vote = db.getMulti('Vote', {'topic': topic_id, 'voter': session.get('user')['id']}) if len(vote): vote = vote[0] else: vote = {'topic': topic_id, 'voter': session.get('user')['id']} if vote.get('like', 0) == 1: vote['like'] = 0 else: vote['like'] = 1 db.create_or_update('Vote', vote) db.save() return redirect(url_for('index'))
def newTopic(): if request.method == 'POST': if request.form.get('topic'): db = DBSession(engine) fields = { 'topic': request.form.get('topic'), 'description': request.form.get('description'), 'createdby': session.get('user')['id'] } db.create_or_update('Topic', fields) db.save() return redirect(url_for('index')) return render_template('topic_editor.html')
from BaseModel import BaseModel from sqlalchemy import Column from sqlalchemy.types import CHAR, Integer, String, DATE, SMALLINT class User(BaseModel): __tablename__ = 'x_admin_user' id = Column(Integer, primary_key=True) username = Column(String(128)) def to_dict(self): return { c.name: getattr(self, c.name, None) for c in self.__table__.columns } if __name__ == '__main__': from DBSession import DBSession db_session = DBSession() users = db_session.query(User).all() for user in users: try: print(user.to_dict()) except: raise
def list_users(): if isadmin(): db = DBSession(engine) users = db.getMulti('User') return render_template('users.html', users=users) return redirect(url_for('index'))