Ejemplo n.º 1
0
def confirm_reps(token='', msg=None, umi=None, user=None):
    """
    Confirm members of congress and submit message (if message present)

    @param token: token to identify the user / message
    @type token: string
    @return:
    @rtype:
    """

    form = forms.MessageForm(request.form, append_get_params(url_for_with_prefix('app_router.' + inspect.stack()[0][3], token=token)))

    moc = umi.members_of_congress

    context = {
        'form': form,
        'message': msg,
        'user': user,
        'umi': umi,
        'legislators': moc
    }

    if msg is not None and request.method == 'POST' and form.validate():
        msg.queue_to_send([moc[i] for i in [v for v in range(0, len(moc)) if request.form.get('legislator_' + str(v))]])
        return render_template_wctx('pages/message_sent.html', context=context)
    else:
        if msg is not None:
            form.populate_data_from_message(msg)
            context['legs_buckets'] = Legislator.get_leg_buckets_from_emails(umi.members_of_congress, json.loads(msg.to_originally))
        return render_template_wctx('pages/confirm_reps.html', context=context)
Ejemplo n.º 2
0
def confirm_with_recaptcha(token='', msg=None, umi=None, user=None):
    form = forms.RecaptchaForm(request.form, app_router_path(inspect.stack()[0][3], token=token))

    context = {
        'form': form
    }

    if form.validate_on_submit():
        msg.free_link()
        process_inbound_message(user, umi, msg, send_email=True)
        context['legislators'] = umi.members_of_congress
        return render_template_wctx('pages/message_sent.html', context=context)

    return render_template_wctx('pages/confirm_with_recaptcha.html', context=context)
Ejemplo n.º 3
0
 def login(self):
     form = forms.LoginForm(request.form, url_for_with_prefix('.login'))
     if request.method == 'POST':
         admin = form.validate_credentials()
         if admin: login_user(admin)
         return redirect(url_for_with_prefix('.index'))
     return render_template_wctx('pages/admin_login.html', context={'form': form})
Ejemplo n.º 4
0
def update_user_address(token='', msg=None, umi=None, user=None):

    form = forms.RegistrationForm(request.form, app_router_path(inspect.stack()[0][3], token=token))

    context = {
        'form': form,
        'verification_token': token,
        'msg_email': user.email,
        'umi': umi,
        'msg': msg
    }

    if request.method == 'POST':
        if form.validate_and_save_to_db(user, msg=msg):
            district = umi.determine_district(force=True)
            if district is None:
                context['district_error'] = True
            else:
                if msg is None:
                    token = user.token.reset()
                    emailer.NoReply.address_changed(user).send()
                else:
                    emailer.NoReply.signup_success(user, msg).send()
                return redirect(url_for_with_prefix('app_router.confirm_reps', token=token))

    return render_template_wctx("pages/update_user_address.html", context=context)
Ejemplo n.º 5
0
def confirm_reps(token='', msg=None, umi=None, user=None):
    """
    Confirm members of congress and submit message (if message present)

    @param token: token to identify the user / message
    @type token: string
    @return:
    @rtype:
    """

    form = forms.MessageForm(request.form, append_get_params(url_for_with_prefix('app_router.' + inspect.stack()[0][3], token=token)))

    moc = umi.members_of_congress

    context = {
        'form': form,
        'msg': msg,
        'user': user,
        'umi': umi,
        'legislators': moc
    }

    if msg is not None and request.method == 'POST' and form.validate() and request.form.getlist('legislator_choices[]'):
        if not request.form.get('donotsend', False):
            legs = [moc[int(i)] for i in request.form.getlist('legislator_choices[]')]
            msg.queue_to_send(legs)
            emailer.NoReply.message_queued(user, legs, msg).send()
        return redirect(url_for_with_prefix('app_router.message_sent', token=token))
    else:
        if msg is not None:
            form.populate_data_from_message(msg)
            context['legs_buckets'] = Legislator.get_leg_buckets_from_emails(umi.members_of_congress, json.loads(msg.to_originally))
        return render_template_wctx('pages/confirm_reps.html', context=context)
Ejemplo n.º 6
0
 def _sent_formatter(view, context, model, name):
     if not model.sent:
         ctx = {'msgleg-id': str(model.id)}
         get_paramss = {'url': view.url, 'id': ctx['msgleg-id']}
         ctx['post_url'] = append_get_params(view.url + '/' + name + '/', **get_paramss)
         return Markup(render_template_wctx('admin/resend_button.html', context=ctx))
     else:
         return model.sent
Ejemplo n.º 7
0
def legislator_index(**kwargs):

    context = {
        'legislators': Legislator.query.all(),
        'states': CODE_TO_STATE
    }

    return render_template_wctx('pages/legislator_index.html', context=context)
Ejemplo n.º 8
0
def render_without_request(template_name, **template_vars):
    """
    Usage is the same as flask.render_template:

    render_without_request('my_template.html', var1='foo', var2='bar')
    """
    from phantom_mask import create_app, config_ext
    with config_ext(create_app()).app_context():
        return helpers.render_template_wctx(template_name, **template_vars)
Ejemplo n.º 9
0
def render_without_request(template_name, **template_vars):
    """
    Usage is the same as flask.render_template:

    render_without_request('my_template.html', var1='foo', var2='bar')
    """
    from phantom_mask import create_app, config_ext
    with config_ext(create_app()).app_context():
        return helpers.render_template_wctx(template_name, **template_vars)
Ejemplo n.º 10
0
def message_sent(token='', msg=None, umi=None, user=None):

    context = {
        'umi': umi,
        'legislators': umi.members_of_congress,
        'msg_legislators': msg.get_legislators(),
        'msg': msg
    }

    return render_template_wctx('pages/message_sent.html', context=context)
Ejemplo n.º 11
0
def district(state, district):
    legs = Legislator.members_for_state_and_district(state, district)

    context = {
        'legislators': legs,
        'humanized_district': Legislator.humanized_district(state, district),
        'geojson_url': Legislator.get_district_geojson_url(state, district)
    }

    return render_template_wctx('pages/congressional_district.html', context=context)
Ejemplo n.º 12
0
def reset_token():
    """
    View to allow user to reset their token if it becomes compromised, they can't find
    the link in their email, or otherwise.
    """

    form = forms.TokenResetForm(request.form, url_for_with_prefix('app_router.' + inspect.stack()[0][3]))

    context = {
        'form': form
    }

    if form.validate_on_submit():
        context['success'] = True
        user = User.query.filter_by(email=form.email.data).first()
        if user:
            user.create_tmp_token()
            emailer.NoReply.token_reset(user).send()

    return render_template_wctx('pages/reset_token.html', context=context)
Ejemplo n.º 13
0
def update_user_address(token='', msg=None, umi=None, user=None):

    form = forms.RegistrationForm(request.form, app_router_path(inspect.stack()[0][3], token=token))

    context = {
        'form': form,
        'verification_token': token,
        'msg_email': user.email
    }

    if request.method == 'POST':
        # get zip4 so user doesn't have to look it up
        form.autocomplete_address()
        form.resolve_zip4()
        if form.validate_and_save_to_db(user, msg=msg):
            district = umi.determine_district(force=True)
            if district is None: context['district_error'] = True
            else:
                if msg is None:
                    emailer.NoReply.address_changed(user).send()
                return redirect(url_for_with_prefix('app_router.confirm_reps', token=token))

    return render_template_wctx("pages/update_user_address.html", context=context)
Ejemplo n.º 14
0
 def internal_server(error):
     app.logger.error('Server Error: %s', error)
     return render_template_wctx('500.html'), 500
Ejemplo n.º 15
0
 def page_not_found(error):
     return render_template_wctx('404.html'), 404
Ejemplo n.º 16
0
def faq():
    return render_template_wctx('pages/static/faq.html', context={})