예제 #1
0
def user_remove_committee_alert(committee_id):
    if current_user.is_authenticated() and request.method == 'POST':
        current_user.committee_alerts.remove(Committee.query.get(committee_id))
        db.session.commit()
        ga_event('user', 'remove-alert', 'cte-alert-box')
        flash("We won't send you email alerts for this committee.", 'warning')

    return redirect(request.headers.get('referer', '/'))
예제 #2
0
def user_committee_alert(committee_id):
    if current_user.is_authenticated() and request.method == 'POST':
        current_user.committee_alerts.append(Committee.query.get(committee_id))
        db.session.commit()
        ga_event('user', 'add-alert', 'cte-alert-box')
        flash("We'll send you email alerts for updates on this committee.", 'success')

    return redirect(request.values.get('next', '/'))
예제 #3
0
def user_remove_committee_alert(committee_id):
    if current_user.is_authenticated() and request.method == 'POST':
        current_user.committee_alerts.remove(Committee.query.get(committee_id))
        db.session.commit()
        ga_event('user', 'remove-alert', 'cte-alert-box')
        flash("We won't send you email alerts for this committee.", 'warning')

    return redirect(request.headers.get('referer', '/'))
예제 #4
0
def user_add_committee_alert(committee_id):
    if current_user.is_authenticated() and request.method == 'POST':
        current_user.committee_alerts.append(Committee.query.get(committee_id))
        db.session.commit()
        ga_event('user', 'add-alert', 'cte-alert-box')
        flash("We'll send you email alerts for updates on this committee.",
              'success')

    return redirect(request.headers.get('referer', '/'))
예제 #5
0
def follow_committee(committee_id):
    committee = Committee.query.get(committee_id)

    if committee not in current_user.following:
        current_user.follow_committee(committee)

    if committee not in current_user.committee_alerts:
        current_user.committee_alerts.append(committee)

    db.session.commit()

    ga_event('user', 'follow-committee', 'cte-follow-committee')
예제 #6
0
def follow_committee(committee_id):
    committee = Committee.query.get(committee_id)

    if committee not in current_user.following:
        current_user.follow_committee(committee)

    if committee not in current_user.committee_alerts:
        current_user.committee_alerts.append(committee)

    db.session.commit()

    ga_event('user', 'follow-committee', 'cte-follow-committee')
예제 #7
0
def email_alerts():
    """
    Allow a user to manage their notification alerts.
    """
    next_url = request.values.get('next', '')

    if current_user.is_authenticated() and request.method == 'POST':
        ids = request.form.getlist('committees')
        current_user.committee_alerts = Committee.query.filter(
            Committee.id.in_(ids)).all()
        current_user.subscribe_daily_schedule = bool(
            request.form.get('subscribe_daily_schedule'))

        db.session.commit()

        # register a google analytics event
        ga_event('user', 'change-alerts')

        if next_url:
            return redirect(next_url)

        return ''

    committees = load_from_api('v2/committees',
                               return_everything=True,
                               params={'monitored': True})['results']
    if current_user.is_authenticated():
        subscriptions = set(c.id for c in current_user.committee_alerts)
    else:
        subscriptions = set()

    provincial_committees = OrderedDict()
    for committee in committees:
        house = committee['house']
        house_name = house['name']
        if house['sphere'] == 'provincial':
            if house_name not in provincial_committees:
                provincial_committees[house_name] = []
            provincial_committees[house_name].append(committee)

    saved_searches = defaultdict(list)
    if current_user.is_authenticated():
        for ss in current_user.saved_searches:
            saved_searches[ss.search].append(ss)

    return render_template('user_management/email_alerts.html',
                           committees=committees,
                           after_signup=bool(next_url),
                           subscriptions=subscriptions,
                           next_url=next_url,
                           saved_searches=saved_searches,
                           provincial_committees=provincial_committees)
예제 #8
0
def email_alerts():
    """
    Allow a user to manage their notification alerts.
    """
    next_url = request.values.get('next', '')

    if current_user.is_authenticated() and request.method == 'POST':
        ids = request.form.getlist('committees')
        current_user.committee_alerts = Committee.query.filter(Committee.id.in_(ids)).all()
        current_user.subscribe_daily_schedule = bool(request.form.get('subscribe_daily_schedule'))

        db.session.commit()

        # register a google analytics event
        ga_event('user', 'change-alerts')

        if next_url:
            return redirect(next_url)

        return ''

    committees = load_from_api(
        'v2/committees', return_everything=True, params={'monitored':
                                                         True})['results']
    if current_user.is_authenticated():
        subscriptions = set(c.id for c in current_user.committee_alerts)
    else:
        subscriptions = set()

    provincial_committees = OrderedDict()
    for committee in committees:
        house = committee['house']
        house_name = house['name']
        if house['sphere'] == 'provincial':
            if house_name not in provincial_committees:
                provincial_committees[house_name] = []
            provincial_committees[house_name].append(committee)

    saved_searches = defaultdict(list)
    if current_user.is_authenticated():
        for ss in current_user.saved_searches:
            saved_searches[ss.search].append(ss)

    return render_template(
        'user_management/email_alerts.html',
        committees=committees,
        after_signup=bool(next_url),
        subscriptions=subscriptions,
        next_url=next_url,
        saved_searches=saved_searches,
        provincial_committees=provincial_committees
    )
예제 #9
0
def user_unfollow_committee(committee_id):
    if current_user.is_authenticated() and request.method == 'POST':
        committee = Committee.query.get(committee_id)

        if committee in current_user.following:
            current_user.unfollow_committee(committee)

        if committee in current_user.committee_alerts:
            current_user.committee_alerts.remove(committee)

        db.session.commit()
        ga_event('user', 'unfollow-committee', 'cte-follow-committee')

    return redirect(request.headers.get('referer', '/'))
예제 #10
0
def user_unfollow_committee(committee_id):
    if current_user.is_authenticated() and request.method == 'POST':
        committee = Committee.query.get(committee_id)

        if committee in current_user.following:
            current_user.unfollow_committee(committee)

        if committee in current_user.committee_alerts:
            current_user.committee_alerts.remove(committee)

        db.session.commit()
        ga_event('user', 'unfollow-committee', 'cte-follow-committee')

    return redirect(request.headers.get('referer', '/'))