Esempio n. 1
0
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)
Esempio n. 2
0
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)
Esempio n. 3
0
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)
Esempio n. 4
0
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'))
Esempio n. 5
0
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')
Esempio n. 6
0
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
Esempio n. 7
0
def list_users():
    if isadmin():
        db = DBSession(engine)
        users = db.getMulti('User')
        return render_template('users.html', users=users)
    return redirect(url_for('index'))