more restructing for tests
This commit is contained in:
parent
bf23afc5ec
commit
00d72091bc
13
.drone.yml
13
.drone.yml
|
@ -4,12 +4,11 @@ build:
|
||||||
environment:
|
environment:
|
||||||
SERVER_ENVIRONMENT: DOCKER
|
SERVER_ENVIRONMENT: DOCKER
|
||||||
commands:
|
commands:
|
||||||
# - cd website
|
|
||||||
- sleep 15
|
- 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
|
- pytest
|
||||||
|
|
||||||
|
|
||||||
compose:
|
compose:
|
||||||
database:
|
database:
|
||||||
image: olymk2/mariadb
|
image: olymk2/mariadb
|
||||||
|
@ -25,8 +24,8 @@ compose:
|
||||||
notify:
|
notify:
|
||||||
irc:
|
irc:
|
||||||
prefix: build
|
prefix: build
|
||||||
nick: drone
|
nick: mhackspace_drone
|
||||||
channel: #maidstone-hackspace
|
channel: maidstone-hackspace
|
||||||
server:
|
server:
|
||||||
host: chat.freenode.net
|
host: irc.freenode.net
|
||||||
port: 6667
|
port: 8001
|
||||||
|
|
|
@ -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 && \
|
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 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 --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 git+git://github.com/olymk2/scaffold.git@master && \
|
||||||
#pip3 install --upgrade --no-cache-dir bzr+lp:scaffold/trunk#egg=scaffold && \
|
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
|
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
|
# 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'
|
#RUN /bin/sh -c 'cd /var/www/site; python index.py'
|
||||||
#ENTRYPOINT /bin/sh -c 'scaffold import && 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 -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 --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
|
#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
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
# maidstone-hackspace
|
# maidstone-hackspace
|
||||||
Repository for the maidstone hackspace website
|
Repository for the maidstone hackspace website
|
||||||
|
|
||||||
|
Status
|
||||||
|
|
||||||
|
[](http://dev.digitaloctave.com:10081/oly/maidstone-hackspace)
|
||||||
|
|
||||||
To get started checkout the project to your machine.
|
To get started checkout the project to your machine.
|
||||||
|
|
||||||
git clone https://github.com/olymk2/maidstone-hackspace.git
|
git clone https://github.com/olymk2/maidstone-hackspace.git
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -7,9 +7,9 @@ from collections import defaultdict
|
||||||
|
|
||||||
sys.path.append(os.path.abspath('../'))
|
sys.path.append(os.path.abspath('../'))
|
||||||
|
|
||||||
from config import settings
|
from website.config import settings
|
||||||
from scaffold.core.data.database import db
|
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
|
from tests.test_data import clean, populate
|
||||||
|
|
||||||
|
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -18,7 +18,7 @@ data_last_names = ['fuzzie']
|
||||||
|
|
||||||
|
|
||||||
def clean():
|
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:
|
with open(clean_file, 'r') as clean_fp:
|
||||||
sql = clean_fp.read()
|
sql = clean_fp.read()
|
||||||
query().execute({}, sql)
|
query().execute({}, sql)
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -2,6 +2,7 @@ import os
|
||||||
import socket
|
import socket
|
||||||
|
|
||||||
from scaffold.core.data.database import db
|
from scaffold.core.data.database import db
|
||||||
|
from scaffold.core.data.sql import query_builder
|
||||||
from scaffold import web
|
from scaffold import web
|
||||||
|
|
||||||
from website import constants
|
from website import constants
|
||||||
|
@ -76,6 +77,8 @@ with web.template as setup:
|
||||||
setup.persistent_header('<link rel="stylesheet" id="navigationCss" href="/static/css/sprite-action-white.css" media="" type="text/css" />')
|
setup.persistent_header('<link rel="stylesheet" id="navigationCss" href="/static/css/sprite-action-white.css" media="" type="text/css" />')
|
||||||
setup.persistent_header('<link rel="stylesheet" id="navigationCss" href="/static/css/sprite-content-white.css" media="" type="text/css" />')
|
setup.persistent_header('<link rel="stylesheet" id="navigationCss" href="/static/css/sprite-content-white.css" media="" type="text/css" />')
|
||||||
|
|
||||||
|
setup.persistent_header('<link href="http://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">')
|
||||||
|
|
||||||
#javascript, using jquery and angular
|
#javascript, using jquery and angular
|
||||||
setup.persistent_header('<script type="text/javascript" src="/static/js/jquery-2.2.3.min.js"></script>')
|
setup.persistent_header('<script type="text/javascript" src="/static/js/jquery-2.2.3.min.js"></script>')
|
||||||
setup.persistent_header('<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.js"></script>')
|
setup.persistent_header('<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.js"></script>')
|
||||||
|
@ -90,6 +93,7 @@ with web.template as setup:
|
||||||
schema=schema,
|
schema=schema,
|
||||||
domain=domain,
|
domain=domain,
|
||||||
port=port)
|
port=port)
|
||||||
print(database)
|
|
||||||
|
query_builder.set_path(os.path.abspath('./website/data/sql/'))
|
||||||
db.config(database)
|
db.config(database)
|
||||||
mail.sendmail.set_server(email_server)
|
mail.sendmail.set_server(email_server)
|
||||||
|
|
|
@ -7,7 +7,7 @@ from scaffold.core.data.update import update_data
|
||||||
from scaffold.core.data.delete import delete_data
|
from scaffold.core.data.delete import delete_data
|
||||||
from scaffold.core.data.sql import query_builder
|
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):
|
class create_badge(insert_data):
|
||||||
|
|
|
@ -6,7 +6,7 @@ from scaffold.core.data.insert import insert_data
|
||||||
#~ from scaffold.core.data.delete import delete_data
|
#~ from scaffold.core.data.delete import delete_data
|
||||||
from scaffold.core.data.sql import query_builder
|
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):
|
class get_pledge(select_data):
|
||||||
debug = True
|
debug = True
|
||||||
|
|
|
@ -8,7 +8,7 @@ from scaffold.core.data.update import update_data
|
||||||
#~ from scaffold.core.data.delete import delete_data
|
#~ from scaffold.core.data.delete import delete_data
|
||||||
from scaffold.core.data.sql import query_builder
|
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):
|
class create(insert_data):
|
||||||
table = 'requests'
|
table = 'requests'
|
||||||
|
|
|
@ -5,7 +5,7 @@ from scaffold.core.data.update import update_data
|
||||||
#~ from scaffold.core.data.delete import delete_data
|
#~ from scaffold.core.data.delete import delete_data
|
||||||
from scaffold.core.data.sql import query_builder
|
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):
|
class get_members(select_data):
|
||||||
|
|
|
@ -6,7 +6,7 @@ from scaffold.core.data.update import update_data
|
||||||
#~ from scaffold.core.data.delete import delete_data
|
#~ from scaffold.core.data.delete import delete_data
|
||||||
from scaffold.core.data.sql import query_builder
|
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):
|
class fetch_users(select_data):
|
||||||
query_file = 'get_users.sql'
|
query_file = 'get_users.sql'
|
||||||
|
|
|
@ -6,7 +6,7 @@ from scaffold.core.data.update import update_data
|
||||||
from scaffold.core.data.delete import delete_data
|
from scaffold.core.data.delete import delete_data
|
||||||
from scaffold.core.data.sql import query_builder
|
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):
|
class create_basic_user(insert_data):
|
||||||
|
|
|
@ -7,7 +7,7 @@ from scaffold.core.data.update import update_data
|
||||||
from scaffold.core.data.delete import delete_data
|
from scaffold.core.data.delete import delete_data
|
||||||
from scaffold.core.data.sql import query_builder
|
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):
|
class create_badge(insert_data):
|
||||||
|
|
|
@ -6,7 +6,7 @@ from scaffold.core.data.insert import insert_data
|
||||||
#~ from scaffold.core.data.delete import delete_data
|
#~ from scaffold.core.data.delete import delete_data
|
||||||
from scaffold.core.data.sql import query_builder
|
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):
|
class get_pledge(select_data):
|
||||||
debug = True
|
debug = True
|
||||||
|
|
|
@ -8,7 +8,7 @@ from scaffold.core.data.update import update_data
|
||||||
#~ from scaffold.core.data.delete import delete_data
|
#~ from scaffold.core.data.delete import delete_data
|
||||||
from scaffold.core.data.sql import query_builder
|
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):
|
class create(insert_data):
|
||||||
table = 'requests'
|
table = 'requests'
|
||||||
|
|
|
@ -5,7 +5,7 @@ from scaffold.core.data.update import update_data
|
||||||
#~ from scaffold.core.data.delete import delete_data
|
#~ from scaffold.core.data.delete import delete_data
|
||||||
from scaffold.core.data.sql import query_builder
|
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):
|
class get_members(select_data):
|
||||||
|
|
|
@ -6,7 +6,7 @@ from scaffold.core.data.update import update_data
|
||||||
#~ from scaffold.core.data.delete import delete_data
|
#~ from scaffold.core.data.delete import delete_data
|
||||||
from scaffold.core.data.sql import query_builder
|
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):
|
class fetch_users(select_data):
|
||||||
query_file = 'get_users.sql'
|
query_file = 'get_users.sql'
|
||||||
|
|
|
@ -6,7 +6,7 @@ from scaffold.core.data.update import update_data
|
||||||
from scaffold.core.data.delete import delete_data
|
from scaffold.core.data.delete import delete_data
|
||||||
from scaffold.core.data.sql import query_builder
|
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):
|
class create_basic_user(insert_data):
|
||||||
|
|
|
@ -77,7 +77,7 @@ class payment:
|
||||||
|
|
||||||
if self.provider == 'gocardless':
|
if self.provider == 'gocardless':
|
||||||
return gocardless.client.new_bill_url(
|
return gocardless.client.new_bill_url(
|
||||||
amount,
|
float(amount),
|
||||||
name=reference,
|
name=reference,
|
||||||
redirect_uri=redirect_success)
|
redirect_uri=redirect_success)
|
||||||
|
|
||||||
|
|
|
@ -10,12 +10,12 @@ def contact_page():
|
||||||
header('Maidstone Hackspace Chat')
|
header('Maidstone Hackspace Chat')
|
||||||
|
|
||||||
web.contact_form.capture_settings = google_captcha
|
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.enable_capture()
|
||||||
web.contact_form.render()
|
web.contact_form.render()
|
||||||
|
|
||||||
web.simple_form.create()
|
# web.simple_form.create()
|
||||||
web.simple_form.append(input_type='text', input_name='test', label='my label')
|
# web.simple_form.append(input_type='text', input_name='test', label='my label')
|
||||||
|
|
||||||
web.page.create(web.title.create('Contact Form').render())
|
web.page.create(web.title.create('Contact Form').render())
|
||||||
web.page.section(web.contact_form.render())
|
web.page.section(web.contact_form.render())
|
||||||
|
|
|
@ -81,8 +81,6 @@ def load_user(userid):
|
||||||
|
|
||||||
@login_manager.token_loader
|
@login_manager.token_loader
|
||||||
def load_token(token):
|
def load_token(token):
|
||||||
print('request')
|
|
||||||
print(request)
|
|
||||||
token = request.headers.get('Authorization')
|
token = request.headers.get('Authorization')
|
||||||
if token is None:
|
if token is None:
|
||||||
token = request.args.get('token')
|
token = request.args.get('token')
|
||||||
|
@ -100,6 +98,8 @@ def load_token(token):
|
||||||
return user
|
return user
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#~ def auth_required():
|
#~ def auth_required():
|
||||||
#~ if not session.get('user_id'):
|
#~ if not session.get('user_id'):
|
||||||
#~ redirect(domain + '/login', 301)
|
#~ redirect(domain + '/login', 301)
|
||||||
|
|
|
@ -33,12 +33,12 @@ def index():
|
||||||
#~ web.page.section(web.paragraph.render())
|
#~ web.page.section(web.paragraph.render())
|
||||||
|
|
||||||
|
|
||||||
web.form_simple.create('Donate to Maidstone Hackspace', '/donate/submit')
|
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')
|
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_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='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.page.append(web.form_simple.render())
|
||||||
|
|
||||||
web.template.body.append(web.page.set_classes('page col s10 offset-s1').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'])
|
@donate_pages.route("/donate/submit", methods=['POST'])
|
||||||
def submit_donation():
|
def submit_donation():
|
||||||
provider = payment(
|
provider = payment(
|
||||||
provider='paypal',
|
provider=request.form.get('provider', ''),
|
||||||
style='payment')
|
style='payment')
|
||||||
|
|
||||||
# convert donation amount to 2 decimal places, paypal seems to require this else it errors
|
# convert donation amount to 2 decimal places, paypal seems to require this else it errors
|
||||||
|
|
File diff suppressed because one or more lines are too long
Binary file not shown.
Before Width: | Height: | Size: 236 KiB After Width: | Height: | Size: 50 KiB |
Binary file not shown.
Before Width: | Height: | Size: 559 KiB After Width: | Height: | Size: 123 KiB |
|
@ -4,7 +4,6 @@ from scaffold.core.widget import base_widget
|
||||||
class control(base_widget):
|
class control(base_widget):
|
||||||
method = 'post'
|
method = 'post'
|
||||||
action = '/'
|
action = '/'
|
||||||
inputs = []
|
|
||||||
template = {
|
template = {
|
||||||
'text':'''
|
'text':'''
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
@ -17,7 +16,8 @@ class control(base_widget):
|
||||||
%s
|
%s
|
||||||
</p>'''}
|
</p>'''}
|
||||||
|
|
||||||
def create(self, action, method='post'):
|
def create(self, action, method='post', title=None):
|
||||||
|
self.inputs = []
|
||||||
self.action = action
|
self.action = action
|
||||||
self.method = method
|
self.method = method
|
||||||
return self
|
return self
|
||||||
|
@ -27,7 +27,7 @@ class control(base_widget):
|
||||||
if template:
|
if template:
|
||||||
control.template = template
|
control.template = template
|
||||||
|
|
||||||
def append(self, input_type, input_name, label, values="", input_id=None, classes='validate', placeholder='', disabled=''):
|
def append(self, input_type, input_name, label,values="", input_id=None, classes='validate', placeholder='', disabled='', selected=None):
|
||||||
if input_type == 'select' and values:
|
if input_type == 'select' and values:
|
||||||
if type(values) is not list or tuple:
|
if type(values) is not list or tuple:
|
||||||
form_control = """<select name="%s" id="%s">%s</select>""" % (
|
form_control = """<select name="%s" id="%s">%s</select>""" % (
|
||||||
|
@ -54,7 +54,7 @@ class control(base_widget):
|
||||||
return self
|
return self
|
||||||
|
|
||||||
form_control = """
|
form_control = """
|
||||||
<input type="%s" name="%s" id="%s" placeholder="%s" %s classes="%s" value="%s" />
|
<input type="%s" name="%s" id="%s" placeholder="%s" %s classes="%s" value="%s" %s/>
|
||||||
<label for="%s">%s</label>""" % (
|
<label for="%s">%s</label>""" % (
|
||||||
input_type,
|
input_type,
|
||||||
input_name,
|
input_name,
|
||||||
|
@ -63,6 +63,7 @@ class control(base_widget):
|
||||||
'disabled="disabled" ' if disabled else '',
|
'disabled="disabled" ' if disabled else '',
|
||||||
classes,
|
classes,
|
||||||
values,
|
values,
|
||||||
|
'checked="checked"' if selected else '',
|
||||||
input_id if input_id else '',
|
input_id if input_id else '',
|
||||||
label)
|
label)
|
||||||
self.apply_template(input_type, form_control)
|
self.apply_template(input_type, form_control)
|
||||||
|
@ -74,10 +75,15 @@ class control(base_widget):
|
||||||
|
|
||||||
def render(self):
|
def render(self):
|
||||||
super(control, self).render()
|
super(control, self).render()
|
||||||
|
|
||||||
|
# <i class="material-icons right">send</i>
|
||||||
return """
|
return """
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<form class="col s12" method="%s" action="%s">
|
<form class="col s12" method="%s" action="%s">
|
||||||
%s
|
%s
|
||||||
|
|
||||||
|
<button class="btn waves-effect waves-light" type="submit" name="action">Submit
|
||||||
|
</button>
|
||||||
</form>
|
</form>
|
||||||
</div>""" % (
|
</div>""" % (
|
||||||
self.method,
|
self.method,
|
||||||
|
|
Loading…
Reference in New Issue