Example #1
0
def statusize():
    """Posts a status from the web."""
    email = session.get('email')
    if not email:
        return forbidden('You must be logged in to statusize!')

    user = User.query.filter(User.email == email).first()

    if not user:
        return forbidden('You must have a user account to statusize!')

    message = request.form.get('message', '')

    if not message:
        return page_not_found('You cannot statusize nothing!')

    status = Status(user_id=user.id, content=message, content_html=message)

    project = request.form.get('project', '')
    if project:
        project = Project.query.filter_by(id=project).first()
        if project:
            status.project_id = project.id

    # TODO: reply handling

    db.session.add(status)
    db.session.commit()

    # Try to go back from where we came.
    redirect_url = request.form.get('redirect_to',
        request.headers.get('referer',
            url_for('status.index')))
    return redirect(redirect_url)
Example #2
0
def statusize():
    """Posts a status from the web."""
    db = get_session(current_app)

    user_id = session.get('user_id')
    if not user_id:
        return forbidden('You must be logged in to statusize!')

    user = db.query(User).get(user_id)

    message = request.form.get('message', '')

    if not message:
        return page_not_found('You cannot statusize nothing!')

    status = Status(user_id=user.id, content=message, content_html=message)

    project = request.form.get('project', '')
    if project:
        project = db.query(Project).filter_by(id=project).first()
        if project:
            status.project_id = project.id

    # TODO: reply handling

    db.add(status)
    db.commit()

    # Try to go back from where we came.
    referer = request.headers.get('referer', url_for('status.index'))
    redirect_url = request.form.get('redirect_to', referer)
    return redirect(redirect_url)
Example #3
0
def statusize():
    """Posts a status from the web."""
    db = get_session(current_app)

    user_id = session.get('user_id')
    if not user_id:
        return forbidden('You must be logged in to statusize!')

    user = db.query(User).get(user_id)

    message = request.form.get('message', '')

    if not message:
        return page_not_found('You cannot statusize nothing!')

    status = Status(user_id=user.id, content=message, content_html=message)

    project = request.form.get('project', '')
    if project:
        project = db.query(Project).filter_by(id=project).first()
        if project:
            status.project_id = project.id

    # TODO: reply handling

    db.add(status)
    db.commit()

    # Try to go back from where we came.
    referer = request.headers.get('referer', url_for('status.index'))
    redirect_url = request.form.get('redirect_to', referer)
    return redirect(redirect_url)
Example #4
0
def user(slug):
    """The user page. Shows a user's statuses."""
    user = User.query.filter_by(slug=slug).first()
    if not user:
        return page_not_found('User not found.')
    return render_template(
        'user.html',
        user=user,
        statuses=user.recent_statuses(
            request.args.get('page', 1),
            startdate(request),
            enddate(request)))
Example #5
0
def team_feed(slug):
    """The team status feed. Shows all updates from a team in Atom format."""
    db = get_session(current_app)

    team = db.query(Team).filter_by(slug=slug).first()
    if not team:
        return page_not_found('Team not found.')

    statuses = team.statuses().filter_by(reply_to=None)\
        .order_by(desc(Status.created))

    return render_feed('Updates from %s' % team.name, statuses)
Example #6
0
def user_feed(slug):
    """A user's Atom feed. Output every status from this user."""
    db = get_session(current_app)

    user = db.query(User).filter_by(slug=slug).first()
    if not user:
        return page_not_found('User not found.')

    statuses = user.statuses.filter_by(reply_to=None)\
        .order_by(desc(Status.created))

    return render_feed('Updates by %s' % user.username, statuses)
Example #7
0
def project_feed(slug):
    """Project Atom feed. Shows all statuses for a project."""
    db = get_session(current_app)

    project = db.query(Project).filter_by(slug=slug).first()
    if not project:
        return page_not_found('Project not found.')

    statuses = project.statuses.filter_by(reply_to=None)\
        .order_by(desc(Status.created))

    return render_feed('Updates for %s' % project.name, statuses)
Example #8
0
def team_feed(slug):
    """The team status feed. Shows all updates from a team in Atom format."""
    db = get_session(current_app)

    team = db.query(Team).filter_by(slug=slug).first()
    if not team:
        return page_not_found('Team not found.')

    statuses = team.statuses().filter_by(reply_to=None)\
        .order_by(desc(Status.created))

    return render_feed('Updates from %s' % team.name, statuses)
Example #9
0
def user(slug):
    """The user page. Shows a user's statuses."""
    db = get_session(current_app)

    user = db.query(User).filter_by(slug=slug).first()
    if not user:
        return page_not_found('User not found.')
    return render_template('status/user.html',
                           user=user,
                           statuses=user.recent_statuses(
                               request.args.get('page', 1), startdate(request),
                               enddate(request)))
Example #10
0
def project_feed(slug):
    """Project Atom feed. Shows all statuses for a project."""
    db = get_session(current_app)

    project = db.query(Project).filter_by(slug=slug).first()
    if not project:
        return page_not_found('Project not found.')

    statuses = project.statuses.filter_by(reply_to=None)\
        .order_by(desc(Status.created))

    return render_feed('Updates for %s' % project.name, statuses)
Example #11
0
def user_feed(slug):
    """A user's Atom feed. Output every status from this user."""
    db = get_session(current_app)

    user = db.query(User).filter_by(slug=slug).first()
    if not user:
        return page_not_found('User not found.')

    statuses = user.statuses.filter_by(reply_to=None)\
        .order_by(desc(Status.created))

    return render_feed('Updates by %s' % user.username, statuses)
Example #12
0
def team(slug):
    """The team page. Shows statuses for all users in the team."""
    db = get_session(current_app)

    team = db.query(Team).filter_by(slug=slug).first()
    if not team:
        return page_not_found('Team not found.')

    return render_template('status/team.html',
                           team=team,
                           users=team.users,
                           teams=db.query(Team).order_by(Team.name).all(),
                           statuses=team.recent_statuses(
                               request.args.get('page', 1), startdate(request),
                               enddate(request)))
Example #13
0
def team(slug):
    """The team page. Shows a statuses for all users in the team."""
    team = Team.query.filter_by(slug=slug).first()
    if not team:
        return page_not_found('Team not found.')

    return render_template(
        'team.html',
        team=team,
        users=team.users,
        teams=Team.query.order_by(Team.name).all(),
        statuses=team.recent_statuses(
            request.args.get('page', 1),
            startdate(request),
            enddate(request)))
Example #14
0
def status(id):
    """The status page. Shows a single status."""
    db = get_session(current_app)

    statuses = db.query(Status).filter_by(id=id)

    if not statuses.count():
        return page_not_found('Status not found.')

    status = statuses[0]

    return render_template('status/status.html',
                           user=status.user,
                           statuses=paginate(statuses),
                           replies=status.replies(request.args.get('page', 1)))
Example #15
0
def project(slug):
    """The project page. Shows a project's statuses."""
    project = Project.query.filter_by(slug=slug).first()
    if not project:
        return page_not_found('Project not found.')

    return render_template(
        'project.html',
        project=project,
        projects=Project.query.order_by(Project.name).filter(
            Project.statuses.any()),
        statuses=project.recent_statuses(
            request.args.get('page', 1),
            startdate(request),
            enddate(request)))
Example #16
0
def project(slug):
    """The project page. Shows a project's statuses."""
    db = get_session(current_app)

    project = db.query(Project).filter_by(slug=slug).first()
    if not project:
        return page_not_found('Project not found.')

    return render_template('status/project.html',
                           project=project,
                           projects=db.query(Project).order_by(
                               Project.name).filter(Project.statuses.any()),
                           statuses=project.recent_statuses(
                               request.args.get('page', 1), startdate(request),
                               enddate(request)))
Example #17
0
def status(id):
    """The status page. Shows a single status."""
    statuses = Status.query.filter_by(id=id)

    if not statuses.count():
        return page_not_found('Status not found.')

    status = statuses[0]

    return render_template(
        'status.html',
        user=status.user,
        statuses=paginate(statuses),
        replies=status.replies(request.args.get('page', 1))
    )