Commit 8086d001 authored by Benjamin S Waters's avatar Benjamin S Waters

merge

parents ec754c2d 6f314eab
......@@ -9,8 +9,25 @@ Werkzeug==0.9.4
argparse==1.2.1
blinker==1.3
distribute==0.6.24
flask-peewee==0.6.5
itsdangerous==0.23
Flask-SQLAlchemy==1.0
Flask-WTF==0.9.4
Jinja2==2.7.2
MarkupSafe==0.18
SQLAlchemy==0.9.3
SQLAlchemy-Utils==0.24.1
WTForms==1.0.5
WTForms-Alchemy==0.12.2
WTForms-Components==0.9.1
Werkzeug==0.9.4
argparse==1.2.1
blinker==1.3
decorator==3.4.0
distribute==0.6.24
infinity==1.3
intervals==0.2.3
itsdangerous==0.23
peewee==2.2.1
wsgiref==0.1.2
wtf-peewee==0.2.2
six==1.5.2
toolz==0.5.2
validators==0.5.0
#!flask/bin/python
from website import website
if __name__ == '__main__':
website.run(debug=True,host='0.0.0.0')
from flask import Flask
<<<<<<< HEAD
website = Flask(__name__)
=======
from flask.ext.sqlalchemy import SQLAlchemy
from flask.ext.admin import Admin
website = Flask(__name__)
website.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////database.db'
admin = Admin(website)
>>>>>>> dev
from website import routes
from flask_wtf import Form
<<<<<<< HEAD
from wtforms.validators import DataRequired
class FeatureReqestForm(Form):
=======
from wtforms.ext.sqlalchemy.orm import model_form
from wtforms.validators import DataRequired
from models import FeatureRequest
FeatureRequestForm = model_form(FeatureRequest, Form)
>>>>>>> dev
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
from website import website
from datetime import datetime
db = SQLAlchemy(website)
class FeatureRequest(db.Model):
id = db.Column(db.Integer, primary_key=True)
service_name = db.Column(db.String(80), db.ForeignKey('service.name'))
service = db.relationship('Service',
backref=db.backref('featurerequests', lazy='dynamic'))
user = db.Column(db.String(80))
entry_date = db.Column(db.DateTime)
contact_email = db.Column(db.String(120))
reason = db.Column(db.String(1028))
def __init__(self, service, user,contact_email, reason, entry_date=None):
self.service = service
self.user = user
if entry_date is None:
entry_date = datetime.utcnow()
self.entry_date = entry_date
self.contact_email = contact_email
self.reason = reason
def __repr__(self):
return '<ID %r>' % self.id
class Service(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80))
def __init__(self, name):
self.name = name
def __repr__(self):
return '<Name %r>' % self.name
......@@ -8,17 +8,30 @@ SERVICE_URL = "http://129.174.177.239/cgi-bin/pycas.py"
@website.route('/login')
def my_login():
status, id, cookie = pycas.login(CAS_SERVER, SERVICE_URL, secure=1, opt="gateway")
<<<<<<< HEAD
return redirect(url_for('home'))
=======
return redirect(url_for('routes.home'))
>>>>>>> dev
@website.route('/')
def home():
return render_template('index.html')
<<<<<<< HEAD
@website.route('/feature-request', method=['GET','POST'])
=======
@website.route('/submit', methods=['GET','POST'])
>>>>>>> dev
def process_request():
form = FeatureRequestForm()
if form.validate_on_submit():
flash('Request Successly Submitted')
<<<<<<< HEAD
return redirect(url_for('home'))
=======
return redirect(url_for('routes.home'))
>>>>>>> dev
return render_template('feature_request.html',title='Request Form', form=form)
.dropdown-arrow-inverse {
border-bottom-color: #34495e !important;
border-top-color: #34495e !important;
}
.container {
width: 970px !important;
}
.demo-headline {
padding: 73px 0 110px;
text-align: center;
}
.demo-logo {
font: 900 90px/100px "Helvetica Neue", Helvetica, Arial, sans-serif;
letter-spacing: -2px;
margin: 10px 0;
}
.demo-logo .logo {
background: url(../images/demo/logo-mask.png) center 0 no-repeat;
background-size: 236px 181px;
height: 181px;
margin: 0 auto 26px;
overflow: hidden;
text-indent: -9999em;
width: 236px;
}
.demo-logo small {
color: rgba(52, 73, 94, 0.30000000000000004);
display: block;
font-size: 22px;
font-weight: 700;
letter-spacing: 0;
padding-top: 5px;
}
.demo-row {
margin-bottom: 20px;
}
.demo-row .demo-heading-note,
.demo-row .demo-text-note {
display: block;
width: 260px;
position: absolute;
bottom: 10px;
left: 0;
font-size: 13px;
line-height: 13px;
color: #c0c1c2;
font-weight: 400;
}
.demo-row .demo-text-note {
bottom: auto;
top: 10px;
}
.demo-row.typography-row .demo-content {
float: none;
width: auto;
clear: both;
}
.demo-row.typography-row .demo-type-example {
padding-left: 25%;
margin-bottom: 40px;
position: relative;
}
.demo-section-title {
font: 900 32px/40px "Helvetica Neue", Helvetica, Arial, sans-serif;
margin: 10px 0;
}
.demo-panel-title {
padding-top: 20px;
margin: 2px 0 20px;
font: bold 23px/40px "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.demo-panel-title small {
color: #798795;
font-size: inherit;
font-weight: 400;
}
.demo-navigation {
margin-bottom: -4px;
margin-top: -10px;
}
.demo-pager {
margin-top: -20px;
}
.demo-tooltips {
height: 126px;
}
.demo-tooltips .tooltip {
left: -8px !important;
position: relative !important;
top: -8px !important;
}
.demo-headings {
margin-bottom: 12px;
}
.demo-tiles {
margin-bottom: 46px;
}
.demo-icons {
font-size: 32px;
margin-left: -20px;
padding-left: 20px;
}
.demo-icons .demo-content {
margin: 0 0 0 -35px;
}
.demo-icons .demo-content > span {
display: inline-block;
margin: 0 0 32px 35px;
width: 24px;
font-size: 24px;
}
.demo-icons-tooltip {
bottom: 0;
color: #c2c8cf;
font-size: 12px;
left: 100%;
margin-left: 0 !important;
position: absolute;
width: 80px;
}
.demo-illustrations .demo-content {
margin: 0 0 0 -40px;
padding-top: 20px;
}
.demo-illustrations .demo-content:before,
.demo-illustrations .demo-content:after {
content: " ";
/* 1 */
display: table;
/* 2 */
}
.demo-illustrations .demo-content:after {
clear: both;
}
.demo-illustrations .demo-content > div {
float: left;
width: 100px;
height: 100px;
line-height: 100px;
margin: 0 0 40px 40px;
text-align: center;
}
.demo-illustrations img {
display: inline-block;
max-height: 100px;
max-width: 100px;
vertical-align: middle;
}
.demo-samples {
margin-bottom: 46px;
}
.demo-video {
padding-top: 95px;
border-radius: 6px;
}
.demo-download-section {
float: none;
margin: 0 auto;
padding: 60px 0 90px 20px;
text-align: center;
}
.demo-download-section [class*='fui-'] {
margin: 3px 0 -3px;
}
.demo-download {
background-color: #ebedef;
height: 190px;
margin: 0 auto 32px;
padding: 40px 28px 30px 32px;
text-align: center;
width: 190px;
border-radius: 50%;
}
.demo-download img {
height: 104px;
width: 82px;
}
.demo-download-text {
font-size: 15px;
padding: 20px 0;
text-align: center;
}
.demo-text-box a:hover {
color: #1abc9c;
}
.demo-browser {
background: #2c3e50 url(../images/demo/browser.png) 0 0 no-repeat;
background-size: 659px 42px;
color: #ffffff;
margin: 0 41px 140px 0;
padding-top: 42px;
border-radius: 0 0 6px 6px;
}
.demo-browser-side {
float: left;
padding: 22px 20px;
width: 151px;
}
.demo-browser-side > h5 {
font-size: 16px;
margin-top: 4px;
margin-bottom: 3px;
text-transform: none;
font-weight: 400;
}
.demo-browser-side > h6 {
font-size: 11px;
font-weight: 300;
line-height: 18px;
margin-top: 3px;
text-transform: none;
-webkit-font-smoothing: subpixel-antialiased;
}
.demo-browser-author {
background: url(../images/demo/browser-author.jpg) center center no-repeat;
border: 3px solid #ffffff;
display: block;
height: 84px;
margin: 0 auto;
width: 84px;
border-radius: 50%;
}
.demo-browser-action {
padding: 30px 0 12px;
}
.demo-browser-action > .btn {
padding: 7px 0 8px 11px !important;
text-align: left;
border-radius: 3px;
}
.demo-browser-action > .btn:before {
color: #ffffff;
content: '\e009';
font-size: 16px;
font-family: 'Flat-UI-Icons';
font-weight: 300;
margin-right: 12px;
position: relative;
top: 1px;
-webkit-font-smoothing: antialiased;
}
.demo-browser-content {
background-color: #34495e;
overflow: hidden;
padding: 21px 0 0 20px;
border-radius: 0 0 6px;
}
.demo-browser-content > img {
border: 6px solid #ffffff;
float: left;
margin: 0 15px 20px 0;
width: 146px;
}
@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (-moz-min-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 3/2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min--moz-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 2) {
.logo {
background-image: url(../images/demo/logo-mask-2x.png);
}
.demo-browser {
background-image: url(../images/demo/browser-2x.png);
}
}
.demo-swatches-row [class*="col"] {
float: left;
min-height: 1px;
}
.demo-swatches-row .swatches-col {
width: 800px;
margin-left: -5px;
}
.demo-swatches-row .swatches-desc-col {
width: 140px;
margin-left: 20px;
}
.dropdown-arrow-inverse {
border-bottom-color: #34495e !important;
border-top-color: #34495e !important;
}
.prettyprint {
overflow: auto;
}
.prettyprint.linenums {
overflow: visible;
white-space: pre;
white-space: pre-wrap;
word-wrap: break-word;
}
.demo-headline {
color: #1abc9c;
font: 700 118px/1.1 "Helvetica Neue", Helvetica, Arial, sans-serif !important;
margin-bottom: 50px;
margin-top: 2px;
padding: 40px 0;
text-align: center;
word-wrap: break-word;
}
.demo-row {
margin: 0 auto;
padding: 0 20px 50px;
width: 940px;
}
.demo-row:before,
.demo-row:after {
content: " ";
/* 1 */
display: table;
/* 2 */
}
.demo-row:after {
clear: both;
}
.demo-row .demo-heading-note,
.demo-row .demo-text-note {
display: block;
width: 260px;
position: absolute;
bottom: 10px;
left: 0;
font-size: 13px;
line-height: 13px;
color: #c0c1c2;
font-weight: 400;
}
.demo-row .demo-text-note {
bottom: auto;
top: 10px;
}
.demo-row.menu-row {
padding: 50px 20px 10px;
}
.demo-row.typography-row .demo-content {
float: none;
margin-left: 20px;
padding-top: 0;
width: auto;
clear: both;
}
.demo-row.typography-row .demo-type-example {
padding-left: 265px;
margin-bottom: 40px;
position: relative;
}
.demo-col {
float: left;
margin: 0 20px;
width: 270px;
}
.demo-content {
float: left;
margin-left: 20px;
width: 580px;
}
.demo-content.demo-content-article {
font-size: 24px;
}
.demo-content.demo-content-article p {
margin-bottom: 20px;
}
.demo-content.demo-content-article ul {
list-style-type: none;
margin-left: 0;
}
.demo-content.demo-content-article li {
line-height: 35px;
padding: 0 0 5px;
}
.demo-content-wide {
clear: both;
margin: 0 20px;
}
.demo-content-wide:before,
.demo-content-wide:after {
content: " ";
/* 1 */
display: table;
/* 2 */
}
.demo-content-wide:after {
clear: both;
}
.demo-title {
float: left;
margin: -0.5em 20px 0;
width: 240px;
font: 700 24.5px/40px "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.demo-title h1,
.demo-title h2,
.demo-title h3,
.demo-title h4 {
margin-top: 0;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.demo-title h1,
.demo-title h2,
.demo-title h3 {
line-height: 40px !important;
}
.demo-title h3 {
font-size: 24.5px !important;
}
.demo-title small {
color: #c0c1c2;
font-size: 13px;
font-weight: 400;
}
.demo-buttons .btn,
.demo-inputs .control-group {
margin-bottom: 20px;
}
.demo-navigation .demo-title {
margin-top: 10px;
}
.demo-pager {
margin-top: -10px;
}
.demo-tooltips {
height: 100px;
}
.demo-tooltips .tooltip {
left: -8px !important;
position: relative !important;
top: -8px !important;
}
.demo-tooltips .tooltip-inner {
max-width: 100%;
width: auto;
}
.demo-popovers .popover {
display: block;
margin: 0 13px 0 -3px;
position: relative;
width: auto;
}
.demo-social-buttons .btn {
clear: left;
float: left;
margin-bottom: 17px;
}
.demo-headings {
margin-bottom: 12px;
}
.demo-tiles {
margin-bottom: 46px;
}
.demo-icons {
font-size: 32px;
margin-left: -15px;
}
.demo-icons > span {
display: inline-block;
margin: 0 0 32px 35px;
width: 32px;
}
@media (max-width: 480px) {
.demo-icons > span {
margin-left: 16px;
margin-right: 16px;
}
}
.demo-icons-tooltip {
bottom: 0;
color: #c2c8cf;
font-size: 12px;
left: 100%;
margin-left: 0 !important;
position: absolute;
width: 80px;
}
.demo-inline {
display: inline-block;
}
.demo-labels {
font-size: 25px;
}
.demo-labels .visible-lg {
display: inline !important;
}
@media (max-width: 767px) {
.demo-labels .visible-lg {
display: none !important;
}
}
.demo-illustrations {
margin-top: 40px;
}
.demo-illustrations .demo-content-wide {
margin: 0 0 0 -66px;
padding-top: 20px;
}
.demo-illustrations .demo-content-wide > div {
float: left;
width: 100px;
height: 100px;
line-height: 100px;
margin: 0 0 80px 87px;
text-align: center;
vertical-align: middle;
}
.demo-illustrations img {
display: inline-block;
max-height: 100px;
max-width: 100px;
vertical-align: middle;
}
.demo-dialog {
padding: 13px 20px 15px;
}
.demo-dialog .flat {
width: 300px;
}
.static-modal-backdrop {
background-color: #243342;
padding: 62px 14px;
margin-bottom: 50px;
width: 100%;
}
.static-modal-backdrop .modal {
bottom: auto;
display: block;
left: auto;
position: relative;
right: auto;
top: auto;
z-index: 1;
overflow: hidden;
padding-bottom: 20px;
}
.static-modal-backdrop .modal-dialog {
padding: 0;
}
.components-static-modal .modal {
bottom: auto;
display: block;
left: auto;
position: relative;
right: auto;
top: auto;
z-index: 1;
overflow: visible;
}
.components-static-modal .modal-dialog,
.components-static-modal .modal-content {
width: auto;
}
.components-static-modal .modal-dialog {
padding: 0;
}
.demo-sidebar {
font-size: 14px;
line-height: 1.214;
height: 100%;
left: 0;
margin: 0;
list-style-type: none;
overflow: auto;
position: fixed;
top: 0;
padding: 0;
width: 150px;
z-index: 10000;
background-color: #f3f4f5;
-webkit-backface-visibility: hidden;
-webkit-font-smoothing: subpixel-antialiased;
}
.demo-sidebar li:first-child a {
padding-top: 20px;