def new_request(): if request.method == 'POST': email = request.form['request_email'] request_text = request.form['request_text'] if is_spam(request_text): return render_template('error.html', message = "Your request looks a lot like spam. If you believe you're seeing this message in error, let us know through the feedback tab.") # <img src = 'http://31.media.tumblr.com/tumblr_lijp30si761qc9z7yo1_500.gif'>") if email == "" and 'ignore_email' not in request.form: return render_template('missing_email.html', form = request.form, user_id = get_user_id()) if request_text == "": return render_template('error.html', message = "You cannot submit an empty request.") alias = None phone = None if 'request_alias' in request.form: alias = request.form['request_alias'] if 'request_phone' in request.form: phone = request.form['request_phone'] assigned_to_email = app.config['DEFAULT_OWNER_EMAIL'] assigned_to_reason = app.config['DEFAULT_OWNER_REASON'] department = request.form['request_department'] if department: prr_email = departments.get_prr_liaison(department) if prr_email: assigned_to_email = prr_email assigned_to_reason = "PRR Liaison for %s" %(department) else: print "%s is not a valid department" %(department) request_id, is_new = make_request(text = request_text, email = email, assigned_to_email = assigned_to_email, assigned_to_reason = assigned_to_reason, user_id = get_user_id(), alias = alias, phone = phone) if is_new: return redirect(url_for('show_request_for_x', request_id = request_id, audience = 'new')) if not request_id: return render_template('error.html', message = "Your request looks a lot like spam.") return render_template('error.html', message = "Your request is the same as /request/%s" % request_id) else: return render_template('new_request.html', user_id = get_user_id())
def new_request(passed_recaptcha = False, data = None): if data or request.method == 'POST': if not data and not passed_recaptcha: data = request.form.copy() email = data['request_email'] request_text = data['request_text'] if request_text == "": return render_template('error.html', message = "You cannot submit an empty request.") if email == "" and 'ignore_email' not in data and not passed_recaptcha: return render_template('missing_email.html', form = data, user_id = get_user_id()) if check_for_spam and is_spam(request_text) and not passed_recaptcha: return render_template('recaptcha.html', form = data, message = "Hmm, your request looks like spam. To submit your request, type the numbers or letters you see in the field below.", public_key = app.config['RECAPTCHA_PUBLIC_KEY']) alias = None phone = None if 'request_alias' in data: alias = data['request_alias'] if 'request_phone' in data: phone = data['request_phone'] request_id, is_new = make_request(text = request_text, email = email, user_id = get_user_id(), alias = alias, phone = phone, passed_recaptcha = passed_recaptcha, department = data['request_department']) if is_new: return redirect(url_for('show_request_for_x', request_id = request_id, audience = 'new')) if not request_id: return render_template('error.html', message = "Your request looks a lot like spam.") app.logger.info("\n\nDuplicate request entered: %s" % request_text) return render_template('error.html', message = "Your request is the same as /request/%s" % request_id) else: doc_types = os.path.exists(os.path.join(app.root_path, 'static/json/doctypes.json')) return render_template('new_request.html', doc_types = doc_types, user_id = get_user_id())
def new_request(passed_recaptcha = False, data = None): if data or request.method == 'POST': if not data and not passed_recaptcha: data = request.form.copy() email = data['request_email'] request_text = data['request_text'] if request_text == "": return render_template('error.html', message = "You cannot submit an empty request.") if email == "" and 'ignore_email' not in data and not passed_recaptcha: return render_template('missing_email.html', form = data) if not passed_recaptcha and (is_spam(comment = request_text, user_ip = request.remote_addr, user_agent = request.headers.get('User-Agent'))): return render_template('recaptcha_request.html', form = data, message = "Hmm, your request looks like spam. To submit your request, type the numbers or letters you see in the field below.") alias = None phone = None offline_submission_type = None date_received = None department = None if 'request_department' in data: department = data['request_department'] if 'request_alias' in data: alias = data['request_alias'] if 'request_phone' in data: phone = data['request_phone'] if 'format_received' in data: offline_submission_type = data['format_received'] if 'date_received' in data: # From the jQuery datepicker date_received = data['date_received'] if date_received != "": try: date_received = datetime.strptime(date_received, '%m/%d/%Y') except ValueError: return render_template('error.html', message = "Please use the datepicker to select a date.") if date_received.date() > date.today(): return render_template('error.html', message = "Please choose a request receipt date that is no later than today.") tz = pytz.timezone(app.config['TIMEZONE']) offset = tz.utcoffset(datetime.now()) offset = (offset.days * 86400 + offset.seconds) / 3600 date_received = date_received - timedelta(hours = offset) # This is somewhat of a hack, but we need to get this back in UTC time but still treat it as a 'naive' datetime object request_id, is_new = make_request(text = request_text, email = email, alias = alias, phone = phone, passed_spam_filter = True, department = department, offline_submission_type = offline_submission_type, date_received = date_received) if is_new: return redirect(url_for('show_request_for_x', request_id = request_id, audience = 'new')) if not request_id: return render_template('error.html', message = "Your request looks a lot like spam.") app.logger.info("\n\nDuplicate request entered: %s" % request_text) return render_template('error.html', message = "Your request is the same as /request/%s" % request_id) else: departments = None routing_available = False if 'LIAISONS_URL' in app.config: routing_available = True departments = db.session.query(models.Department).all() if current_user.is_authenticated(): return render_template('offline_request.html', routing_available = routing_available, departments = departments) else: return render_template('new_request.html', routing_available = routing_available, departments = departments)
def new_request(passed_recaptcha=False, data=None): if data or request.method == 'POST': if not data and not passed_recaptcha: data = request.form.copy() email = data['request_email'] request_text = data['request_text'] if request_text == "": return render_template( 'error.html', message="You cannot submit an empty request.") if email == "" and 'ignore_email' not in data and not passed_recaptcha: return render_template('missing_email.html', form=data, user_id=get_user_id()) if (app.config['ENVIRONMENT'] == 'PRODUCTION' ) and is_spam(request_text) and not passed_recaptcha: return render_template( 'recaptcha.html', form=data, message= "Hmm, your request looks like spam. To submit your request, type the numbers or letters you see in the field below.", public_key=app.config['RECAPTCHA_PUBLIC_KEY']) alias = None phone = None if 'request_alias' in data: alias = data['request_alias'] if 'request_phone' in data: phone = data['request_phone'] request_id, is_new = make_request(text=request_text, email=email, user_id=get_user_id(), alias=alias, phone=phone, passed_recaptcha=passed_recaptcha) if is_new: return redirect( url_for('show_request_for_x', request_id=request_id, audience='new')) if not request_id: return render_template( 'error.html', message="Your request looks a lot like spam.") return render_template( 'error.html', message="Your request is the same as /request/%s" % request_id) else: doc_types = os.path.exists( os.path.join(app.root_path, 'static/json/doctypes.json')) return render_template('new_request.html', doc_types=doc_types, user_id=get_user_id())
def new_request(passed_recaptcha = False, data = None): user_id = get_user_id() if data or request.method == 'POST': if not data and not passed_recaptcha: data = request.form.copy() email = data['request_email'] request_text = data['request_text'] if request_text == "": return render_template('error.html', message = "You cannot submit an empty request.") if email == "" and 'ignore_email' not in data and not passed_recaptcha: return render_template('missing_email.html', form = data, user_id = get_user_id()) if check_for_spam and is_spam(request_text) and not passed_recaptcha: return render_template('recaptcha.html', form = data, message = "Hmm, your request looks like spam. To submit your request, type the numbers or letters you see in the field below.", public_key = app.config['RECAPTCHA_PUBLIC_KEY']) alias = None phone = None offline_submission_type = None date_received = None if 'request_alias' in data: alias = data['request_alias'] if 'request_phone' in data: phone = data['request_phone'] if 'format_received' in data: offline_submission_type = data['format_received'] if 'date_received' in data: # From the jQuery datepicker date_received = data['date_received'] if date_received != "": try: date_received = datetime.strptime(date_received, '%m/%d/%Y') date_received = date_received + timedelta(hours = 7) # This is somewhat of a hack, but we need to get this back in UTC (+7 hours offset from Pacific Time) time but still treat it as a 'naive' datetime object except ValueError: return render_template('error.html', message = "Please use the datepicker to select a date.") app.logger.info("\n\n Date received: %s" % date_received) request_id, is_new = make_request(text = request_text, email = email, user_id = user_id, alias = alias, phone = phone, passed_recaptcha = passed_recaptcha, department = data['request_department'], offline_submission_type = offline_submission_type, date_received = date_received) if is_new: return redirect(url_for('show_request_for_x', request_id = request_id, audience = 'new')) if not request_id: return render_template('error.html', message = "Your request looks a lot like spam.") app.logger.info("\n\nDuplicate request entered: %s" % request_text) return render_template('error.html', message = "Your request is the same as /request/%s" % request_id) else: routing_available = False if 'LIAISONS_URL' in app.config: routing_available = True if user_id: return render_template('offline_request.html', routing_available = routing_available, user_id = user_id) else: return render_template('new_request.html', routing_available = routing_available, user_id = user_id)
def new_request(passed_recaptcha=False, data=None): if data or request.method == "POST": if not data and not passed_recaptcha: data = request.form.copy() email = data["request_email"] request_text = data["request_text"] if request_text == "": return render_template("error.html", message="You cannot submit an empty request.") if email == "" and "ignore_email" not in data and not passed_recaptcha: return render_template("missing_email.html", form=data, user_id=get_user_id()) if (app.config["ENVIRONMENT"] == "PRODUCTION") and is_spam(request_text) and not passed_recaptcha: return render_template( "recaptcha.html", form=data, message="Hmm, your request looks like spam. To submit your request, type the numbers or letters you see in the field below.", public_key=app.config["RECAPTCHA_PUBLIC_KEY"], ) alias = None phone = None if "request_alias" in data: alias = data["request_alias"] if "request_phone" in data: phone = data["request_phone"] request_id, is_new = make_request( text=request_text, email=email, user_id=get_user_id(), alias=alias, phone=phone, passed_recaptcha=passed_recaptcha, ) if is_new: return redirect(url_for("show_request_for_x", request_id=request_id, audience="new")) if not request_id: return render_template("error.html", message="Your request looks a lot like spam.") return render_template("error.html", message="Your request is the same as /request/%s" % request_id) else: doc_types = os.path.exists(os.path.join(app.root_path, "static/json/doctypes.json")) return render_template("new_request.html", doc_types=doc_types, user_id=get_user_id())
def new_request(passed_recaptcha = False, data = None): if request.method == 'POST' or data: if not passed_recaptcha: data = request.form.copy() email = data['request_email'] request_text = data['request_text'] if request_text == "": return render_template('error.html', message = "You cannot submit an empty request.") if email == "" and 'ignore_email' not in data and not passed_recaptcha: return render_template('missing_email.html', form = data, user_id = get_user_id()) if is_spam(request_text) and not passed_recaptcha: return render_template('recaptcha.html', form = data, message = "Hmm, your request looks like spam. To submit your request, type the numbers or letters you see in the field below.", public_key = app.config['RECAPTCHA_PUBLIC_KEY']) alias = None phone = None if 'request_alias' in data: alias = data['request_alias'] if 'request_phone' in data: phone = data['request_phone'] assigned_to_email = app.config['DEFAULT_OWNER_EMAIL'] assigned_to_reason = app.config['DEFAULT_OWNER_REASON'] department = data['request_department'] if department: prr_email = db_helpers.get_contact_by_dept(department) if prr_email: assigned_to_email = prr_email assigned_to_reason = "PRR Liaison for %s" %(department) else: print "%s is not a valid department" %(department) department = None request_id, is_new = make_request(text = request_text, email = email, assigned_to_email = assigned_to_email, assigned_to_reason = assigned_to_reason, user_id = get_user_id(), alias = alias, phone = phone, department = department, passed_recaptcha = passed_recaptcha) if is_new: return redirect(url_for('show_request_for_x', request_id = request_id, audience = 'new')) if not request_id: return render_template('error.html', message = "Your request looks a lot like spam.") return render_template('error.html', message = "Your request is the same as /request/%s" % request_id) else: doc_types = os.path.exists(os.path.join(app.root_path, 'static/json/doctypes.json')) return render_template('new_request.html', doc_types = doc_types, user_id = get_user_id())
def new_request(passed_recaptcha=False, data=None): if data or request.method == 'POST': if not data and not passed_recaptcha: data = request.form.copy() email = data['request_email'] request_text = data['request_text'] if request_text == "": return render_template( 'error.html', message="You cannot submit an empty request.") if email == "" and 'ignore_email' not in data and not passed_recaptcha: return render_template('missing_email.html', form=data) if not passed_recaptcha and (is_spam( comment=request_text, user_ip=request.remote_addr, user_agent=request.headers.get('User-Agent'))): return render_template( 'recaptcha_request.html', form=data, message= "Hmm, your request looks like spam. To submit your request, type the numbers or letters you see in the field below." ) alias = None phone = None offline_submission_type = None date_received = None department = None if 'request_department' in data: department = data['request_department'] if 'request_alias' in data: alias = data['request_alias'] if 'request_phone' in data: phone = data['request_phone'] if 'format_received' in data: offline_submission_type = data['format_received'] if 'date_received' in data: # From the jQuery datepicker date_received = data['date_received'] if date_received != "": try: date_received = datetime.strptime(date_received, '%m/%d/%Y') except ValueError: return render_template( 'error.html', message="Please use the datepicker to select a date.") if date_received.date() > date.today(): return render_template( 'error.html', message= "Please choose a request receipt date that is no later than today." ) tz = pytz.timezone(app.config['TIMEZONE']) offset = tz.utcoffset(datetime.now()) offset = (offset.days * 86400 + offset.seconds) / 3600 date_received = date_received - timedelta( hours=offset ) # This is somewhat of a hack, but we need to get this back in UTC time but still treat it as a 'naive' datetime object request_id, is_new = make_request( text=request_text, email=email, alias=alias, phone=phone, passed_spam_filter=True, department=department, offline_submission_type=offline_submission_type, date_received=date_received) if is_new: return redirect( url_for('show_request_for_x', request_id=request_id, audience='new')) if not request_id: return render_template( 'error.html', message="Your request looks a lot like spam.") app.logger.info("\n\nDuplicate request entered: %s" % request_text) return render_template( 'error.html', message="Your request is the same as /request/%s" % request_id) else: departments = None routing_available = False if 'LIAISONS_URL' in app.config: routing_available = True departments = db.session.query(models.Department).all() if current_user.is_authenticated(): return render_template('offline_request.html', routing_available=routing_available, departments=departments) else: return render_template('new_request.html', routing_available=routing_available, departments=departments)