diff --git a/.drone.yml b/.drone.yml index f27630f..b1ccbde 100644 --- a/.drone.yml +++ b/.drone.yml @@ -4,12 +4,11 @@ build: environment: SERVER_ENVIRONMENT: DOCKER commands: -# - cd website - sleep 15 - - python3 -m "scaffold" + - python3 -m "scaffold" "migrate --username=mhackspace --password=mhackspace --database=maidstone_hackspace --host=127.0.0.1" +# - python3 -m "scaffold" - pytest - compose: database: image: olymk2/mariadb @@ -25,8 +24,8 @@ compose: notify: irc: prefix: build - nick: drone - channel: #maidstone-hackspace + nick: mhackspace_drone + channel: maidstone-hackspace server: - host: chat.freenode.net - port: 6667 + host: irc.freenode.net + port: 8001 diff --git a/Dockerfile b/Dockerfile index fc3b113..9029a28 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,8 +12,8 @@ RUN apk add --update --no-cache py-psycopg2 py-lxml py-flask py-pillow py-openss RUN apk add --update --no-cache build-base make git bzr python3-dev libffi-dev openssl-dev libxml2-dev libxslt-dev jpeg-dev zlib-dev && \ pip3 install lxml && \ pip3 install --no-cache-dir lxml dateutils requests requests-oauthlib mailer gocardless paypalrestsdk pytz pytest nose2 oauthlib flask flask-login pymysql misaka slimit cssmin pillow && \ - pip3 install --upgrade git+git://github.com/olymk2/scaffold.git@master && \ - #pip3 install --upgrade --no-cache-dir bzr+lp:scaffold/trunk#egg=scaffold && \ + #pip3 install --upgrade git+git://github.com/olymk2/scaffold.git@master && \ + pip3 install --upgrade --no-cache-dir bzr+lp:scaffold/trunk#egg=scaffold && \ apk del build-base make git bzr python3-dev libffi-dev openssl-dev libxml2-dev libxslt-dev # RUN pip3 install --no-cache-dir dateutils requests requests-oauthlib gocardless paypalrestsdk pytz nose2 oauthlib flask flask-login pymysql misaka @@ -45,7 +45,7 @@ RUN apk add --update --no-cache build-base make git bzr python3-dev libffi-dev o #RUN /bin/sh -c 'cd /var/www/site; python index.py' #ENTRYPOINT /bin/sh -c 'scaffold import && python index.py' -#docker build -t mhackspace . +#docker build -t olymk2/mhackspace . #docker run -d --name=mhackspace_container --restart=always mhackspace #docker run -it -v /etc/uwsgi/apps-enabled/:/etc/uwsgi/apps-enabled/ -v sockets:/data/sockets --entrypoint sh --name mhackspace olymk2/mhackspace #docker run -it -v /etc/uwsgi/apps-enabled/:/etc/uwsgi/apps-enabled/ -v sockets:/data/sockets -v /var/www/test.maidstone-hackspace.org.uk/site:/var/www --name mhackspace olymk2/mhackspace diff --git a/README.md b/README.md index 1889d88..7f07532 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,10 @@ # maidstone-hackspace Repository for the maidstone hackspace website +Status + +[](http://dev.digitaloctave.com:10081/oly/maidstone-hackspace) + To get started checkout the project to your machine. git clone https://github.com/olymk2/maidstone-hackspace.git diff --git a/tests/__pycache__/__init__.cpython-35.pyc b/tests/__pycache__/__init__.cpython-35.pyc deleted file mode 100644 index a3802a6..0000000 Binary files a/tests/__pycache__/__init__.cpython-35.pyc and /dev/null differ diff --git a/tests/__pycache__/base.cpython-35.pyc b/tests/__pycache__/base.cpython-35.pyc deleted file mode 100644 index ea3b8c2..0000000 Binary files a/tests/__pycache__/base.cpython-35.pyc and /dev/null differ diff --git a/tests/__pycache__/test_add_badge.cpython-35-PYTEST.pyc b/tests/__pycache__/test_add_badge.cpython-35-PYTEST.pyc deleted file mode 100644 index 194621f..0000000 Binary files a/tests/__pycache__/test_add_badge.cpython-35-PYTEST.pyc and /dev/null differ diff --git a/tests/__pycache__/test_create_users.cpython-35-PYTEST.pyc b/tests/__pycache__/test_create_users.cpython-35-PYTEST.pyc deleted file mode 100644 index a3ccf5c..0000000 Binary files a/tests/__pycache__/test_create_users.cpython-35-PYTEST.pyc and /dev/null differ diff --git a/tests/__pycache__/test_data.cpython-35-PYTEST.pyc b/tests/__pycache__/test_data.cpython-35-PYTEST.pyc deleted file mode 100644 index 3588546..0000000 Binary files a/tests/__pycache__/test_data.cpython-35-PYTEST.pyc and /dev/null differ diff --git a/tests/__pycache__/test_oauth_login.cpython-35-PYTEST.pyc b/tests/__pycache__/test_oauth_login.cpython-35-PYTEST.pyc deleted file mode 100644 index 02d4476..0000000 Binary files a/tests/__pycache__/test_oauth_login.cpython-35-PYTEST.pyc and /dev/null differ diff --git a/tests/__pycache__/test_users.cpython-35-PYTEST.pyc b/tests/__pycache__/test_users.cpython-35-PYTEST.pyc deleted file mode 100644 index dcd1a38..0000000 Binary files a/tests/__pycache__/test_users.cpython-35-PYTEST.pyc and /dev/null differ diff --git a/tests/base.py b/tests/base.py index b3c1adb..bda019a 100644 --- a/tests/base.py +++ b/tests/base.py @@ -7,9 +7,9 @@ from collections import defaultdict sys.path.append(os.path.abspath('../')) -from config import settings +from website.config import settings from scaffold.core.data.database import db -from data import site_user +from website.data import site_user from tests.test_data import clean, populate diff --git a/tests/test_add_badge.pyc b/tests/test_add_badge.pyc index be19b03..9cb08df 100644 Binary files a/tests/test_add_badge.pyc and b/tests/test_add_badge.pyc differ diff --git a/tests/test_create_users.pyc b/tests/test_create_users.pyc index 3b5277b..b79e1a2 100644 Binary files a/tests/test_create_users.pyc and b/tests/test_create_users.pyc differ diff --git a/tests/test_data.py b/tests/test_data.py index b29bf2b..89c19af 100644 --- a/tests/test_data.py +++ b/tests/test_data.py @@ -18,7 +18,7 @@ data_last_names = ['fuzzie'] def clean(): - clean_file = os.path.abspath('./data/migrate/clean.sql') + clean_file = os.path.abspath('./website/data/migrate/clean.sql') with open(clean_file, 'r') as clean_fp: sql = clean_fp.read() query().execute({}, sql) diff --git a/tests/test_data.pyc b/tests/test_data.pyc index 7bba19c..dee4c29 100644 Binary files a/tests/test_data.pyc and b/tests/test_data.pyc differ diff --git a/tests/test_oauth_login.pyc b/tests/test_oauth_login.pyc index 4be1ab9..fb8bd7f 100644 Binary files a/tests/test_oauth_login.pyc and b/tests/test_oauth_login.pyc differ diff --git a/tests/test_users.pyc b/tests/test_users.pyc index f678161..e64fc21 100644 Binary files a/tests/test_users.pyc and b/tests/test_users.pyc differ diff --git a/website/config/settings.py b/website/config/settings.py index e4a72d5..5415dde 100644 --- a/website/config/settings.py +++ b/website/config/settings.py @@ -2,6 +2,7 @@ import os import socket from scaffold.core.data.database import db +from scaffold.core.data.sql import query_builder from scaffold import web from website import constants @@ -76,6 +77,8 @@ with web.template as setup: setup.persistent_header('') setup.persistent_header('') + setup.persistent_header('') + #javascript, using jquery and angular setup.persistent_header('') setup.persistent_header('') @@ -90,6 +93,7 @@ with web.template as setup: schema=schema, domain=domain, port=port) -print(database) + +query_builder.set_path(os.path.abspath('./website/data/sql/')) db.config(database) mail.sendmail.set_server(email_server) diff --git a/website/data/badges.py b/website/data/badges.py index 72ff2ab..8111734 100644 --- a/website/data/badges.py +++ b/website/data/badges.py @@ -7,7 +7,7 @@ from scaffold.core.data.update import update_data from scaffold.core.data.delete import delete_data from scaffold.core.data.sql import query_builder -query_builder.query_path = os.path.abspath('./data/sql/') +#query_builder.query_path = os.path.abspath('./data/sql/') class create_badge(insert_data): diff --git a/website/data/donate.py b/website/data/donate.py index bb4c782..4ec855f 100644 --- a/website/data/donate.py +++ b/website/data/donate.py @@ -6,7 +6,7 @@ from scaffold.core.data.insert import insert_data #~ from scaffold.core.data.delete import delete_data from scaffold.core.data.sql import query_builder -query_builder.query_path = os.path.abspath('./data/sql/') +#query_builder.query_path = os.path.abspath('./data/sql/') class get_pledge(select_data): debug = True diff --git a/website/data/equipment.py b/website/data/equipment.py index 7e550de..cfb7a5b 100644 --- a/website/data/equipment.py +++ b/website/data/equipment.py @@ -8,7 +8,7 @@ from scaffold.core.data.update import update_data #~ from scaffold.core.data.delete import delete_data from scaffold.core.data.sql import query_builder -query_builder.query_path = os.path.abspath('./data/sql/') +#query_builder.query_path = os.path.abspath('./data/sql/') class create(insert_data): table = 'requests' diff --git a/website/data/members.py b/website/data/members.py index 2c3ed46..704fb5f 100644 --- a/website/data/members.py +++ b/website/data/members.py @@ -5,7 +5,7 @@ from scaffold.core.data.update import update_data #~ from scaffold.core.data.delete import delete_data from scaffold.core.data.sql import query_builder -query_builder.query_path = os.path.abspath('./data/sql/') +#query_builder.query_path = os.path.abspath('./data/sql/') class get_members(select_data): diff --git a/website/data/profile.py b/website/data/profile.py index 8bf9801..b59ac31 100644 --- a/website/data/profile.py +++ b/website/data/profile.py @@ -6,7 +6,7 @@ from scaffold.core.data.update import update_data #~ from scaffold.core.data.delete import delete_data from scaffold.core.data.sql import query_builder -query_builder.query_path = os.path.abspath('./data/sql/') +#query_builder.query_path = os.path.abspath('./data/sql/') class fetch_users(select_data): query_file = 'get_users.sql' diff --git a/website/data/site_user.py b/website/data/site_user.py index 2b2c1df..8a720a1 100644 --- a/website/data/site_user.py +++ b/website/data/site_user.py @@ -6,7 +6,7 @@ from scaffold.core.data.update import update_data from scaffold.core.data.delete import delete_data from scaffold.core.data.sql import query_builder -query_builder.query_path = os.path.abspath('./data/sql/') +##query_builder.query_path = os.path.abspath('./data/sql/') class create_basic_user(insert_data): diff --git a/website/data/sql/badges.py b/website/data/sql/badges.py index 72ff2ab..8111734 100755 --- a/website/data/sql/badges.py +++ b/website/data/sql/badges.py @@ -7,7 +7,7 @@ from scaffold.core.data.update import update_data from scaffold.core.data.delete import delete_data from scaffold.core.data.sql import query_builder -query_builder.query_path = os.path.abspath('./data/sql/') +#query_builder.query_path = os.path.abspath('./data/sql/') class create_badge(insert_data): diff --git a/website/data/sql/donate.py b/website/data/sql/donate.py index bb4c782..4ec855f 100755 --- a/website/data/sql/donate.py +++ b/website/data/sql/donate.py @@ -6,7 +6,7 @@ from scaffold.core.data.insert import insert_data #~ from scaffold.core.data.delete import delete_data from scaffold.core.data.sql import query_builder -query_builder.query_path = os.path.abspath('./data/sql/') +#query_builder.query_path = os.path.abspath('./data/sql/') class get_pledge(select_data): debug = True diff --git a/website/data/sql/equipment.py b/website/data/sql/equipment.py index 7e550de..cfb7a5b 100755 --- a/website/data/sql/equipment.py +++ b/website/data/sql/equipment.py @@ -8,7 +8,7 @@ from scaffold.core.data.update import update_data #~ from scaffold.core.data.delete import delete_data from scaffold.core.data.sql import query_builder -query_builder.query_path = os.path.abspath('./data/sql/') +#query_builder.query_path = os.path.abspath('./data/sql/') class create(insert_data): table = 'requests' diff --git a/website/data/sql/members.py b/website/data/sql/members.py index 2c3ed46..704fb5f 100755 --- a/website/data/sql/members.py +++ b/website/data/sql/members.py @@ -5,7 +5,7 @@ from scaffold.core.data.update import update_data #~ from scaffold.core.data.delete import delete_data from scaffold.core.data.sql import query_builder -query_builder.query_path = os.path.abspath('./data/sql/') +#query_builder.query_path = os.path.abspath('./data/sql/') class get_members(select_data): diff --git a/website/data/sql/profile.py b/website/data/sql/profile.py index 8bf9801..b59ac31 100755 --- a/website/data/sql/profile.py +++ b/website/data/sql/profile.py @@ -6,7 +6,7 @@ from scaffold.core.data.update import update_data #~ from scaffold.core.data.delete import delete_data from scaffold.core.data.sql import query_builder -query_builder.query_path = os.path.abspath('./data/sql/') +#query_builder.query_path = os.path.abspath('./data/sql/') class fetch_users(select_data): query_file = 'get_users.sql' diff --git a/website/data/sql/site_user.py b/website/data/sql/site_user.py index 505dabb..c2130ae 100755 --- a/website/data/sql/site_user.py +++ b/website/data/sql/site_user.py @@ -6,7 +6,7 @@ from scaffold.core.data.update import update_data from scaffold.core.data.delete import delete_data from scaffold.core.data.sql import query_builder -query_builder.query_path = os.path.abspath('./data/sql/') +#query_builder.query_path = os.path.abspath('./data/sql/') class create_basic_user(insert_data): diff --git a/website/libs/payments.py b/website/libs/payments.py index 7585288..0d15b50 100644 --- a/website/libs/payments.py +++ b/website/libs/payments.py @@ -77,7 +77,7 @@ class payment: if self.provider == 'gocardless': return gocardless.client.new_bill_url( - amount, + float(amount), name=reference, redirect_uri=redirect_success) diff --git a/website/pages/contact.py b/website/pages/contact.py index dface25..ccd9e36 100644 --- a/website/pages/contact.py +++ b/website/pages/contact.py @@ -10,12 +10,12 @@ def contact_page(): header('Maidstone Hackspace Chat') web.contact_form.capture_settings = google_captcha - web.contact_form.create('Contact Us') + web.contact_form.create('Contact Us', ) web.contact_form.enable_capture() web.contact_form.render() - web.simple_form.create() - web.simple_form.append(input_type='text', input_name='test', label='my label') + # web.simple_form.create() + # web.simple_form.append(input_type='text', input_name='test', label='my label') web.page.create(web.title.create('Contact Form').render()) web.page.section(web.contact_form.render()) diff --git a/website/pages/core/authorize.py b/website/pages/core/authorize.py index 57cb057..93b5371 100644 --- a/website/pages/core/authorize.py +++ b/website/pages/core/authorize.py @@ -81,8 +81,6 @@ def load_user(userid): @login_manager.token_loader def load_token(token): - print('request') - print(request) token = request.headers.get('Authorization') if token is None: token = request.args.get('token') @@ -100,6 +98,8 @@ def load_token(token): return user return None + + #~ def auth_required(): #~ if not session.get('user_id'): #~ redirect(domain + '/login', 301) diff --git a/website/pages/donate.py b/website/pages/donate.py index 1423d54..972d930 100644 --- a/website/pages/donate.py +++ b/website/pages/donate.py @@ -33,12 +33,12 @@ def index(): #~ web.page.section(web.paragraph.render()) - web.form_simple.create('Donate to Maidstone Hackspace', '/donate/submit') - web.form_simple.append(input_name='provider', input_id="choose_gocardless",label='GoCardless', placeholder='gocardless', values='gocardless', input_type='radio') + web.form_simple.create(title='Donate to Maidstone Hackspace', action='/donate/submit', method='post') + web.form_simple.append(input_name='provider', input_id="choose_gocardless",label='GoCardless', placeholder='gocardless', values='gocardless', input_type='radio', selected=True) web.form_simple.append(input_name='provider', input_id="choose_paypal",label='PayPal', placeholder='', values='paypal', input_type='radio') - web.form_simple.append(input_name='provider', input_id="choose_braintree",label='Braintree', placeholder='', values='braintree', input_type='radio') + # web.form_simple.append(input_name='provider', input_id="choose_braintree",label='Braintree', placeholder='', values='braintree', input_type='radio') web.form_simple.append(input_name='reference', label='Reference', placeholder='#lair', values=['#lair','#t-shirt'], input_type='select') - web.form_simple.append(input_name='amount', label='Donation Amount', placeholder='50.00', values='50.00', input_type='text') + web.form_simple.append(input_name='amount', label='Donation Amount', placeholder='20.00', values='20.00', input_type='text') web.page.append(web.form_simple.render()) web.template.body.append(web.page.set_classes('page col s10 offset-s1').render()) @@ -108,7 +108,7 @@ def populate_by_name(): @donate_pages.route("/donate/submit", methods=['POST']) def submit_donation(): provider = payment( - provider='paypal', + provider=request.form.get('provider', ''), style='payment') # convert donation amount to 2 decimal places, paypal seems to require this else it errors diff --git a/website/static/css/default.css b/website/static/css/default.css index 6b0958d..122f1c7 100755 --- a/website/static/css/default.css +++ b/website/static/css/default.css @@ -1 +1 @@ -.dark-blue{background-color:#00232D;color:#fff}.blue{background-color:#0087A8}.content{margin:20px}html{background-color:#fff;height:100%;font-family:'Arial';font-size:18px}body{margin:0;padding:0}form button{margin:none}a{color:#fff}li p{margin:20px 0 0 30px;height:45px}fieldset{margin:20px}textarea{background-color:#fff!important}textarea.materialize-textarea{background-color:#fff;padding:10px}.select-wrapper input.select-dropdown{background-color:#fff;color:#000;padding-left:10px}input:not([type]),input[type=text],input[type=password],input[type=email],input[type=url],input[type=time],input[type=date],input[type=datetime],input[type=datetime-local],input[type=tel],input[type=number],input[type=search],textarea.materialize-textarea{background-color:#fff;padding-left:10px}label{color:#fff;padding-left:20px}label.active{-webkit-transform:translateY(-180%)!important;transform:translateY(-180%)!important;color:#fff!important}.select-wrapper+label{top:-24px;color:#fff}select{margin:0;color:#000;padding:10px}p{margin-bottom:25px;margin-right:25px;line-height:150%}h1{color:#fff}h2{color:#fff}h3{color:#fff;font-size:20px}li{padding-bottom:10px;line-height:150%}button{background-color:#fff;height:48px;width:100%;border-radius:3px;box-shadow:0 1px 2px 0 rgba(0,0,0,0.2);border:1px solid #000a0d;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;font-size:12px;font-family:arial,helvetica,sans-serif;font-weight:bold;padding:10px 10px 10px 10px;text-decoration:none;text-shadow:-1px -1px 0 rgba(0,0,0,0.3);color:#FFF;background-color:#003645;background-image:-webkit-gradient(linear,left top,left bottom,from(#003645),to(#00232D));background-image:-webkit-linear-gradient(top,#003645,#00232D);background-image:-moz-linear-gradient(top,#003645,#00232D);background-image:-ms-linear-gradient(top,#003645,#00232D);background-image:-o-linear-gradient(top,#003645,#00232D)}.left{float:left}.right{float:right}.hide{display:none}#ajaxPopup{position:absolute;width:750px;height:550px;background-color:#fff;top:68px;left:50%;margin-left:-375px;box-shadow:0 1px 2px 0 rgba(0,0,0,0.2);background-color:#93B1C6}#ajaxPopup legend{width:720px;padding:15px;color:#fff;background-color:#000;margin:0}#ajaxPopup fieldset{border:0;margin:0;padding:0}#ajaxPopup label{width:160px;color:#000;line-height:48px}#ajaxPopup p{margin:20px}#ajaxPopup input{width:50%}#ajaxPopup button{position:absolute;bottom:0}#ajaxPopup .bottom{position:absolute;bottom:0}#ajaxPopup .full_width{left:0;right:0}.margin_default{margin:10px}.header span{font-size:100px}.headerbar{background-color:#E7EAEF}.footer{width:100%:margin:auto;height:40px;background-color:#ddd;border-top:1px solid #aaa;border-bottom:1px solid #aaa}.footerbar{background-color:#E7EAEF;border-top:1px solid #D2D2D2;border-bottom:1px solid #D2D2D2;margin-top:60px}.pageFooter{clear:both}.pageHeader{padding:20px;color:#fff;font-size:24px}.pagination{height:40px;font-size:16px}.pagination li.active{background-color:#0a2024}.pagination li{float:left;list-style-type:none;margin-left:12px;background-color:#7eabb8;padding:2px;border:2px solid #000;border-radius:6px}.pagination li:hover{background-color:#0a2128}.pagination li a{text-decoration:none;color:#000}.on{background-color:#1e424c!important}.clear{clear:both}table{width:100%;background-color:#eee;font-size:11px;border-collapse:collapse;border-spacing:0;box-shadow:0 1px 3px 0 rgba(0,0,0,0.12),0px 1px 2px 0 rgba(0,0,0,0.24)}table tr{transition:all .3s ease 0s}table th{padding:16px}table td{padding:16px;border-bottom:1px solid rgba(0,0,0,0.12)}table caption{font-size:16px}tbody tr:nth-child(odd){background-color:#eee;font-size:11px}.tabrow1(background-color:#eee;) #topbar{position:relative;position:absolute;top:0;width:100%;z-index:10}.hover:hover{background-color:#9fa8da}.hover:hover{background-color:#9fa8da}.hover-expand:hover .children{display:block}.copyright{float:right;margin-top:20px;color:#fff}.tile-right{margin-top:20px;width:230px;float:right;margin-right:20px}.tile-right img{float:right}.tile-image{float:right;clear:right}#headerstrip{overflow:hidden;line-height:1px;position:absolute;left:0;right:0;height:68px;top:0;background-color:#00232D}#headerstrip .navstrip{box-shadow:none;margin:10px;height:48px;background-color:#00232D}#headerstrip .navstripleft{padding:0}#headerstrip .mini-logo-text{line-height:25px;position:absolute;left:56px;padding-top:12px;font-size:22px;color:#fff;font-weight:bold;padding-left:10px}#headerstrip .mini_logo{position:absolute;width:48px;height:48px}#headerstrip .mini-logo:hover{transition:ease-in-out;-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%;-o-transform-origin:50% 50%;transform-origin:50% 50%;height:48px;width:48px;-webkit-animation:spin 2s linear infinite;-moz-animation:spin 2s linear infinite;animation:spin 2s linear infinite}#headerstrip .middle{}#menubar{margin-top:108px}#menubar nav{height:48px;background-color:#0087A8}#menubar nav ul{width:100%;height:100%}#menubar nav li{margin:10px}@-moz-keyframes spin{100%{-moz-transform:rotate(360deg)}}@-webkit-keyframes spin{100%{-webkit-transform:rotate(360deg)}}@keyframes spin{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.menu{position:absolute;left:0;right:0;height:408px;top:68px;background-color:#00232D;z-index:-1}.menu ul{width:960px;margin:auto;height:40px;padding-left:20px;background-color:#0087A8}.menu li{width:130px;float:left;list-style-type:none;margin-top:10px;padding:00px;text-align:center}.menu li:hover{width:130px;float:left;list-style-type:none;border-bottom:4px solid #1C4085}.menu a{color:#fff;font-weight:bold;text-decoration:none}.menu li:hover{}.page{margin:auto;margin-top:28px;padding-bottom:48px;background-color:#0087A8}.page .pageSection{margin-left:20px}.page .messages{color:#fff;border:10px solid #0087A8;background-color:#00232D;font-weight:bold}.page .messages li{padding:10px}.columns{float:right;clear:right;width:460px;margin-left:20px;margin-bottom:20px}.google-groups-signup{width:300px;float:left}.google-groups-signup input{margin-top:20px;width:290px;padding-left:10px}.google-groups-signup a{color:#fff;width:282px}.banner-slide{position:absolute;width:700px;margin:20px 20px 20px 0}.banner-slide ul{position:relative;overflow:hidden;width:700px;height:300px;margin:0}.banner-slide li{position:absolute;left:0;top:0;list-style-type:none;padding:0;margin:0}.banner-slide .button{background-color:#0087A8;border-radius:50%;opacity:.4}.banner-slide .content{color:#111;position:absolute;top:250px;width:100%;background-color:#eee;opacity:.4}.banner-slide .left{text-align:left;padding:6px;font-size:48px;color:#fff;position:absolute;top:122px;left:0;width:60px;height:60px;background-color:transparent}.banner-slide .right{text-align:right;padding:6px;font-size:48px;color:#fff;position:absolute;top:122px;right:15px;width:60px;height:60px;background-color:transparent}.slide-button{background-image:url('static/images/css/sprite-navigation-white.png')}.slide{position:absolute;left:0}.slide.ng-hide-add{left:0;opacity:1}.slide.ng-hide-add-active{transition:.9s linear all;opacity:0}.slide.ng-hide-remove{left:0;opacity:0}.slide.ng-hide-remove-active{transition:.9s linear all;opacity:1}.slide.ng-leave.ng-leave-active,.slide.ng-enter{transition:.5s linear all;left:0;opacity:0}.slide.ng-leave,.slide.ng-enter.ng-enter-active{transition:.5s linear all;left:0;opacity:1}.bullet-list li{margin:0;margin-left:10px;line-height:100%}.tile{position:relative;margin:0}.tile-border{background-color:#eee;margin-right:20px;box-shadow:0 2px 5px 0 rgba(0,0,0,0.26)}.tile-img{height:200px;overflow:hidden;background-repeat:no-repeat;background-position:center;background-image:url('/static/images/background.png')}.tile header{background-color:#00232D;width:100%;bottom:20px;top:220px;overflow:auto;left:20px;right:20px;text-align:left;line-height:150%;font-size:12px}.tile h2{margin-left:25px;line-height:150%;font-size:12px;margin-right:20px}.tile p{margin-left:25px}.tile header a{color:#fff}.tile .content{overflow:hidden;bottom:20px;top:220px;overflow:auto;left:20px;right:20px;text-align:justify;line-height:20px;height:106px;font-size:12px}#footertop{background-color:#00232D;height:48px}#footerbottom{background-color:#0087A8;height:300px}#footerbottom div.container{margin:auto;background-color:#0087A8;height:250px;width:960px}.twitter-feed{width:460px;margin:20px}.social-chat{width:100%;height:480px;position:relative}.social-chat .contain{left:0;right:0;height:480px;position:absolue;margin:20px}.social-chat iframe{display:block;border:0;width:100%;height:100%}.social{z-index:1;position:absolute;right:0;top:0;margin-top:0}.social .socbtn{line-height:0;float:left;margin-left:20px;margin-top:20px}#login_box{width:500px;margin:auto;position:relative}#login_box p{color:#fff;padding:0;margin:0}#login_box label{display:block;margin:20px 0 20px}#login_box input{margin:20px 0 0;float:none;width:100%}#login_box button{margin:20px 0 0;float:left;width:100%}#login_box .providers{margin:20px 0 20px;height:48px;height:35px}#login_box .providers a{float:left;margin-right:30px}.members .stats{}.members .tile{width:220px;float:left}.members .tile-img{margin:10px;width:200px}.members .badge{width:32px;height:32px;margin:0;margin-top:5px}#member_navigation{z-index:2;position:fixed;top:68px;left:0;width:180px;height:100%}#member_navigation a{color:#fff;font-weight:bold;text-decoration:none}#member_navigation ul{padding:0;margin:0;box-shadow:0 2px 5px 0 rgba(0,0,0,0.26)}#member_navigation li{margin:0;padding:10px;background-color:#0087A8;list-style-type:none}#member_navigation li:hover{background-color:#E7EAEF}.action-bar{overflow:hidden;position:fixed;right:50px;bottom:50px;width:65px;height:70px}.action-bar:hover{height:260px}.action-bar .container{position:absolute;left:0;bottom:0;width:62px;min-width:62px;max-width:62px;padding-bottom:5px}.action-bar-small{overflow:hidden;position:absolute;right:0;top:40px;width:32px;height:32px}.action-bar .action-bar-button{margin-top:20px}.action-bar-button{display:block;padding:19px;background-color:#FF2670;border-radius:100%;box-shadow:0 2px 5px 0 rgba(0,0,0,0.26);z-index:5}.action-bar-button-small{display:block;padding:19px;background-color:#FF2670;border-radius:100%;box-shadow:0 2px 5px 0 rgba(0,0,0,0.26);z-index:5}.closePopup{position:absolute;top:12px;right:12px;background-color:#FF2670;border-radius:100%;box-shadow:0 2px 5px 0 rgba(0,0,0,0.26);z-index:5}#membercard{color:#000;background-color:#8C50A5;border-radius:14px;box-shadow:0 2px 5px 0 rgba(0,0,0,0.5);background-image:url('/static/images/membership_card_background.png');width:430px;height:240px;margin-left:20px;text-shadow:1px 1px #FFF;position:relative;float:right}#membercard .date{position:absolute;margin:25px;top:0;left:0}#membercard p{margin:0}#membercard .container{position:relative;top:50%;width:100%}#membercard .middle{color:#000;position:absolute;top:-38px;width:100%;text-align:center;font-size:28px}#membercard label{text-align:left;line-height:48px;color:#000}#membercard input{width:140px}#membercard select{width:155px}#membercard legend{margin-top:10px;margin-bottom:10px;font-weight:strong}#membercard fieldset{position:absolute;top:0;left:0;right:0;padding:0;margin:28px;border:0}.calendar{width:230px;height:300px;overflow:auto}.calendar ul{list-style:none;padding:0;margin:0}.calendar li{font-size:14px;padding:6px}.calendar li:first-child{color:#fff;background-color:#00232D}.calendar .but{width:80px;text-align:center}.but{border:1px solid #000a0d;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;font-size:12px;font-family:arial,helvetica,sans-serif;padding:10px 10px 10px 10px;text-decoration:none;display:inline-block;text-shadow:-1px -1px 0 rgba(0,0,0,0.3);font-weight:bold;color:#FFF;background-color:#003645;background-image:-webkit-gradient(linear,left top,left bottom,from(#003645),to(#00232D));background-image:-webkit-linear-gradient(top,#003645,#00232D);background-image:-moz-linear-gradient(top,#003645,#00232D);background-image:-ms-linear-gradient(top,#003645,#00232D);background-image:-o-linear-gradient(top,#003645,#00232D)} \ No newline at end of file +.dark-blue{background-color:#00232D;color:#fff}.blue{background-color:#0087A8}.content{margin:20px}html{background-color:#fff;height:100%;font-family:'Arial';font-size:18px}body{margin:0;padding:0}a{color:#fff}li p{margin:20px 0 0 30px;height:45px}fieldset{margin:20px}textarea{background-color:#fff!important}textarea.materialize-textarea{background-color:#fff;padding:10px}.select-wrapper input.select-dropdown{background-color:#fff;color:#000;padding-left:10px}input:not([type]),input[type=text],input[type=password],input[type=email],input[type=url],input[type=time],input[type=date],input[type=datetime],input[type=datetime-local],input[type=tel],input[type=number],input[type=search],textarea.materialize-textarea{background-color:#fff;padding-left:10px}label{color:#fff;padding-left:20px}label.active{-webkit-transform:translateY(-180%)!important;transform:translateY(-180%)!important;color:#fff!important}.select-wrapper+label{top:-24px;color:#fff}select{margin:0;color:#000;padding:10px}p{margin-bottom:25px;margin-right:25px;line-height:150%}h1{color:#fff}h2{color:#fff}h3{color:#fff;font-size:20px}li{padding-bottom:10px;line-height:150%}.left{float:left}.right{float:right}.hide{display:none}#ajaxPopup{position:absolute;width:750px;height:550px;background-color:#fff;top:68px;left:50%;margin-left:-375px;box-shadow:0 1px 2px 0 rgba(0,0,0,0.2);background-color:#93B1C6}#ajaxPopup legend{width:720px;padding:15px;color:#fff;background-color:#000;margin:0}#ajaxPopup fieldset{border:0;margin:0;padding:0}#ajaxPopup label{width:160px;color:#000;line-height:48px}#ajaxPopup p{margin:20px}#ajaxPopup input{width:50%}#ajaxPopup button{position:absolute;bottom:0}#ajaxPopup .bottom{position:absolute;bottom:0}#ajaxPopup .full_width{left:0;right:0}.margin_default{margin:10px}.header span{font-size:100px}.headerbar{background-color:#E7EAEF}.footer{width:100%:margin:auto;height:40px;background-color:#ddd;border-top:1px solid #aaa;border-bottom:1px solid #aaa}.footerbar{background-color:#E7EAEF;border-top:1px solid #D2D2D2;border-bottom:1px solid #D2D2D2;margin-top:60px}.pageFooter{clear:both}.pageHeader{padding:20px;color:#fff;font-size:24px}.pagination{height:40px;font-size:16px}.pagination li.active{background-color:#0a2024}.pagination li{float:left;list-style-type:none;margin-left:12px;background-color:#7eabb8;padding:2px;border:2px solid #000;border-radius:6px}.pagination li:hover{background-color:#0a2128}.pagination li a{text-decoration:none;color:#000}.on{background-color:#1e424c!important}.clear{clear:both}table{width:100%;background-color:#eee;font-size:11px;border-collapse:collapse;border-spacing:0;box-shadow:0 1px 3px 0 rgba(0,0,0,0.12),0px 1px 2px 0 rgba(0,0,0,0.24)}table tr{transition:all .3s ease 0s}table th{padding:16px}table td{padding:16px;border-bottom:1px solid rgba(0,0,0,0.12)}table caption{font-size:16px}tbody tr:nth-child(odd){background-color:#eee;font-size:11px}.tabrow1(background-color:#eee;) #topbar{position:relative;position:absolute;top:0;width:100%;z-index:10}.hover:hover{background-color:#9fa8da}.hover:hover{background-color:#9fa8da}.hover-expand:hover .children{display:block}.copyright{float:right;margin-top:20px;color:#fff}.tile-right{margin-top:20px;width:230px;float:right;margin-right:20px}.tile-right img{float:right}.tile-image{float:right;clear:right}#headerstrip{overflow:hidden;line-height:1px;position:absolute;left:0;right:0;height:68px;top:0;background-color:#00232D}#headerstrip .navstrip{box-shadow:none;margin:10px;height:48px;background-color:#00232D}#headerstrip .navstripleft{padding:0}#headerstrip .mini-logo-text{line-height:25px;position:absolute;left:56px;padding-top:12px;font-size:22px;color:#fff;font-weight:bold;padding-left:10px}#headerstrip .mini_logo{position:absolute;width:48px;height:48px}#headerstrip .mini-logo:hover{transition:ease-in-out;-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%;-o-transform-origin:50% 50%;transform-origin:50% 50%;height:48px;width:48px;-webkit-animation:spin 2s linear infinite;-moz-animation:spin 2s linear infinite;animation:spin 2s linear infinite}#headerstrip .middle{}#menubar{margin-top:108px}#menubar nav{height:48px;background-color:#0087A8}#menubar nav ul{width:100%;height:100%}#menubar nav li{margin:10px}@-moz-keyframes spin{100%{-moz-transform:rotate(360deg)}}@-webkit-keyframes spin{100%{-webkit-transform:rotate(360deg)}}@keyframes spin{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.menu{position:absolute;left:0;right:0;height:408px;top:68px;background-color:#00232D;z-index:-1}.menu ul{width:960px;margin:auto;height:40px;padding-left:20px;background-color:#0087A8}.menu li{width:130px;float:left;list-style-type:none;margin-top:10px;padding:00px;text-align:center}.menu li:hover{width:130px;float:left;list-style-type:none;border-bottom:4px solid #1C4085}.menu a{color:#fff;font-weight:bold;text-decoration:none}.menu li:hover{}.page{margin:auto;margin-top:28px;padding-bottom:48px;background-color:#0087A8}.page .pageSection{margin-left:20px}.page .messages{color:#fff;border:10px solid #0087A8;background-color:#00232D;font-weight:bold}.page .messages li{padding:10px}.columns{float:right;clear:right;width:460px;margin-left:20px;margin-bottom:20px}.google-groups-signup{width:300px;float:left}.google-groups-signup input{margin-top:20px;width:290px;padding-left:10px}.google-groups-signup a{color:#fff;width:282px}.banner-slide{position:absolute;width:700px;margin:20px 20px 20px 0}.banner-slide ul{position:relative;overflow:hidden;width:700px;height:300px;margin:0}.banner-slide li{position:absolute;left:0;top:0;list-style-type:none;padding:0;margin:0}.banner-slide .button{background-color:#0087A8;border-radius:50%;opacity:.4}.banner-slide .content{color:#111;position:absolute;top:250px;width:100%;background-color:#eee;opacity:.4}.banner-slide .left{text-align:left;padding:6px;font-size:48px;color:#fff;position:absolute;top:122px;left:0;width:60px;height:60px;background-color:transparent}.banner-slide .right{text-align:right;padding:6px;font-size:48px;color:#fff;position:absolute;top:122px;right:15px;width:60px;height:60px;background-color:transparent}.slide-button{background-image:url('static/images/css/sprite-navigation-white.png')}.slide{position:absolute;left:0}.slide.ng-hide-add{left:0;opacity:1}.slide.ng-hide-add-active{transition:.9s linear all;opacity:0}.slide.ng-hide-remove{left:0;opacity:0}.slide.ng-hide-remove-active{transition:.9s linear all;opacity:1}.slide.ng-leave.ng-leave-active,.slide.ng-enter{transition:.5s linear all;left:0;opacity:0}.slide.ng-leave,.slide.ng-enter.ng-enter-active{transition:.5s linear all;left:0;opacity:1}.bullet-list li{margin:0;margin-left:10px;line-height:100%}.tile{position:relative;margin:0}.tile-border{background-color:#eee;margin-right:20px;box-shadow:0 2px 5px 0 rgba(0,0,0,0.26)}.tile-img{height:200px;overflow:hidden;background-repeat:no-repeat;background-position:center;background-image:url('/static/images/background.png')}.tile header{background-color:#00232D;width:100%;bottom:20px;top:220px;overflow:auto;left:20px;right:20px;text-align:left;line-height:150%;font-size:12px}.tile h2{margin-left:25px;line-height:150%;font-size:12px;margin-right:20px}.tile p{margin-left:25px}.tile header a{color:#fff}.tile .content{overflow:hidden;bottom:20px;top:220px;overflow:auto;left:20px;right:20px;text-align:justify;line-height:20px;height:106px;font-size:12px}#footertop{background-color:#00232D;height:48px}#footerbottom{background-color:#0087A8;height:300px}#footerbottom div.container{margin:auto;background-color:#0087A8;height:250px;width:960px}.twitter-feed{width:460px;margin:20px}.social-chat{width:100%;height:480px;position:relative}.social-chat .contain{left:0;right:0;height:480px;position:absolue;margin:20px}.social-chat iframe{display:block;border:0;width:100%;height:100%}.social{z-index:1;position:absolute;right:0;top:0;margin-top:0}.social .socbtn{line-height:0;float:left;margin-left:20px;margin-top:20px}#login_box{width:500px;margin:auto;position:relative}#login_box p{color:#fff;padding:0;margin:0}#login_box label{display:block;margin:20px 0 20px}#login_box input{margin:20px 0 0;float:none;width:100%}#login_box button{margin:20px 0 0;float:left;width:100%}#login_box .providers{margin:20px 0 20px;height:48px;height:35px}#login_box .providers a{float:left;margin-right:30px}.members .stats{}.members .tile{width:220px;float:left}.members .tile-img{margin:10px;width:200px}.members .badge{width:32px;height:32px;margin:0;margin-top:5px}#member_navigation{z-index:2;position:fixed;top:68px;left:0;width:180px;height:100%}#member_navigation a{color:#fff;font-weight:bold;text-decoration:none}#member_navigation ul{padding:0;margin:0;box-shadow:0 2px 5px 0 rgba(0,0,0,0.26)}#member_navigation li{margin:0;padding:10px;background-color:#0087A8;list-style-type:none}#member_navigation li:hover{background-color:#E7EAEF}.action-bar{overflow:hidden;position:fixed;right:50px;bottom:50px;width:65px;height:70px}.action-bar:hover{height:260px}.action-bar .container{position:absolute;left:0;bottom:0;width:62px;min-width:62px;max-width:62px;padding-bottom:5px}.action-bar-small{overflow:hidden;position:absolute;right:0;top:40px;width:32px;height:32px}.action-bar .action-bar-button{margin-top:20px}.action-bar-button{display:block;padding:19px;background-color:#FF2670;border-radius:100%;box-shadow:0 2px 5px 0 rgba(0,0,0,0.26);z-index:5}.action-bar-button-small{display:block;padding:19px;background-color:#FF2670;border-radius:100%;box-shadow:0 2px 5px 0 rgba(0,0,0,0.26);z-index:5}.closePopup{position:absolute;top:12px;right:12px;background-color:#FF2670;border-radius:100%;box-shadow:0 2px 5px 0 rgba(0,0,0,0.26);z-index:5}#membercard{color:#000;background-color:#8C50A5;border-radius:14px;box-shadow:0 2px 5px 0 rgba(0,0,0,0.5);background-image:url('/static/images/membership_card_background.png');width:430px;height:240px;margin-left:20px;text-shadow:1px 1px #FFF;position:relative;float:right}#membercard .date{position:absolute;margin:25px;top:0;left:0}#membercard p{margin:0}#membercard .container{position:relative;top:50%;width:100%}#membercard .middle{color:#000;position:absolute;top:-38px;width:100%;text-align:center;font-size:28px}#membercard label{text-align:left;line-height:48px;color:#000}#membercard input{width:140px}#membercard select{width:155px}#membercard legend{margin-top:10px;margin-bottom:10px;font-weight:strong}#membercard fieldset{position:absolute;top:0;left:0;right:0;padding:0;margin:28px;border:0}.calendar{width:230px;height:300px;overflow:auto}.calendar ul{list-style:none;padding:0;margin:0}.calendar li{font-size:14px;padding:6px}.calendar li:first-child{color:#fff;background-color:#00232D}.calendar .but{width:80px;text-align:center}.but{border:1px solid #000a0d;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;font-size:12px;font-family:arial,helvetica,sans-serif;padding:10px 10px 10px 10px;text-decoration:none;display:inline-block;text-shadow:-1px -1px 0 rgba(0,0,0,0.3);font-weight:bold;color:#FFF;background-color:#003645;background-image:-webkit-gradient(linear,left top,left bottom,from(#003645),to(#00232D));background-image:-webkit-linear-gradient(top,#003645,#00232D);background-image:-moz-linear-gradient(top,#003645,#00232D);background-image:-ms-linear-gradient(top,#003645,#00232D);background-image:-o-linear-gradient(top,#003645,#00232D)} \ No newline at end of file diff --git a/website/static/images/banners/emf_2016_sign.jpg b/website/static/images/banners/emf_2016_sign.jpg index 7012bce..cce7b00 100644 Binary files a/website/static/images/banners/emf_2016_sign.jpg and b/website/static/images/banners/emf_2016_sign.jpg differ diff --git a/website/static/images/banners/emf_2016_sign_large.jpg b/website/static/images/banners/emf_2016_sign_large.jpg index bf03bce..a7dd5be 100644 Binary files a/website/static/images/banners/emf_2016_sign_large.jpg and b/website/static/images/banners/emf_2016_sign_large.jpg differ diff --git a/website/widgets/form_simple.py b/website/widgets/form_simple.py index 9945789..b0dbe65 100644 --- a/website/widgets/form_simple.py +++ b/website/widgets/form_simple.py @@ -4,7 +4,6 @@ from scaffold.core.widget import base_widget class control(base_widget): method = 'post' action = '/' - inputs = [] template = { 'text':'''