reworking project layout
This commit is contained in:
parent
300dfe1b92
commit
4d7b6a1fe1
|
@ -6,6 +6,8 @@ services:
|
||||||
image: olymk2/mhackspace
|
image: olymk2/mhackspace
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
network_mode: bridge
|
network_mode: bridge
|
||||||
|
ports:
|
||||||
|
- "5010:5000"
|
||||||
links:
|
links:
|
||||||
- mariadb:mariadb
|
- mariadb:mariadb
|
||||||
- mhackspace_web:nginx
|
- mhackspace_web:nginx
|
||||||
|
|
2
main.py
2
main.py
|
@ -10,4 +10,4 @@ from website import index
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
index.app.run(host='0.0.0.0', port=5001, debug=True)
|
index.web_app.run(host='0.0.0.0', port=5010, debug=True)
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import os
|
import os
|
||||||
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.core.data.sql import query_builder
|
||||||
|
@ -22,14 +21,14 @@ from_email = 'no-reply@maidstone-hackspace.org.uk'
|
||||||
flask_secret_key = '4466ae96-849f-4fbe-a469-3295bf1a13f5'
|
flask_secret_key = '4466ae96-849f-4fbe-a469-3295bf1a13f5'
|
||||||
|
|
||||||
database = {
|
database = {
|
||||||
'charset': 'utf8',
|
'charset': 'utf8',
|
||||||
'use_unicode': True,
|
'use_unicode': True,
|
||||||
'type': 'mysql',
|
'type': 'mysql',
|
||||||
'host': '127.0.0.1',
|
'host': '127.0.0.1',
|
||||||
'user': 'mhackspace',
|
'user': 'mhackspace',
|
||||||
'passwd': "mhackspace",
|
'passwd': "mhackspace",
|
||||||
'db': "maidstone_hackspace",
|
'db': "maidstone_hackspace",
|
||||||
'port': 3306}
|
'port': 3306}
|
||||||
|
|
||||||
email_server = {
|
email_server = {
|
||||||
'username': '',
|
'username': '',
|
||||||
|
@ -45,26 +44,27 @@ oauth_live = False
|
||||||
oauth_redirect_uri = app_domain + '/oauth'
|
oauth_redirect_uri = app_domain + '/oauth'
|
||||||
oauth_conf = {}
|
oauth_conf = {}
|
||||||
payment_providers = {}
|
payment_providers = {}
|
||||||
|
google_captcha = {}
|
||||||
google_calendar_id = ''
|
google_calendar_id = ''
|
||||||
google_calendar_api_key = ''
|
google_calendar_api_key = ''
|
||||||
|
|
||||||
|
print(os.path.abspath('./'))
|
||||||
if os.environ.get('SERVER_ENVIRONMENT') =='DOCKER':
|
if os.environ.get('SERVER_ENVIRONMENT') =='DOCKER':
|
||||||
if os.path.exists('config/settings_docker.py'):
|
if os.path.exists('config/settings_docker.py'):
|
||||||
print('Using settings for docker enviroment')
|
print('Using settings for docker enviroment')
|
||||||
from config.settings_docker import *
|
from website.config.settings_docker import *
|
||||||
else:
|
else:
|
||||||
if os.path.exists('config/settings_dev.py'):
|
if os.path.exists('website/config/settings_dev.py'):
|
||||||
print('Using settings for dev enviroment')
|
print('Using settings for dev enviroment')
|
||||||
from config.settings_dev import *
|
from website.config.settings_dev import *
|
||||||
|
|
||||||
if os.path.exists('config/settings_testing.py'):
|
if os.path.exists('config/settings_testing.py'):
|
||||||
print('Using settings for test enviroment')
|
print('Using settings for test enviroment')
|
||||||
from config.settings_testing import *
|
from website.config.settings_testing import *
|
||||||
|
|
||||||
if os.path.exists('config/settings_live.py'):
|
if os.path.exists('config/settings_live.py'):
|
||||||
print('Using settings for live enviroment')
|
print('Using settings for live enviroment')
|
||||||
from config.settings_live import *
|
from website.config.settings_live import *
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ class sendmail:
|
||||||
message = Message(
|
message = Message(
|
||||||
From=from_address,
|
From=from_address,
|
||||||
To=to_address,
|
To=to_address,
|
||||||
reply-to=from_address,
|
RTo=from_address,
|
||||||
charset=self.charset
|
charset=self.charset
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
from pprint import pprint
|
from pprint import pprint
|
||||||
from config import settings
|
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
import pytz
|
import pytz
|
||||||
import gocardless
|
import gocardless
|
||||||
import paypalrestsdk as paypal
|
import paypalrestsdk as paypal
|
||||||
|
|
||||||
from config.settings import app_domain
|
from website.config import settings
|
||||||
|
from website.config.settings import app_domain
|
||||||
|
|
||||||
PROVIDER_ID = {'gocardless':1, 'paypal': 2}
|
PROVIDER_ID = {'gocardless':1, 'paypal': 2}
|
||||||
PROVIDER_NAME = {1: 'gocardless', 2: 'paypal'}
|
PROVIDER_NAME = {1: 'gocardless', 2: 'paypal'}
|
||||||
|
|
|
@ -29,7 +29,7 @@ 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('<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-3.1.1.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>')
|
||||||
setup.persistent_header('<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular-animate.js"></script>')
|
setup.persistent_header('<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular-animate.js"></script>')
|
||||||
setup.persistent_header('<script type="text/javascript" src="/static/js/materialize.js"></script>')
|
setup.persistent_header('<script type="text/javascript" src="/static/js/materialize.js"></script>')
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
from pages import web
|
|
||||||
from pages import header, footer
|
|
||||||
from config.settings import google_captcha, email_server
|
|
||||||
from libs.mail import sendmail
|
|
||||||
from flask import get_flashed_messages, flash, request
|
from flask import get_flashed_messages, flash, request
|
||||||
from libs.recapture import verify_captcha
|
from website.pages import web
|
||||||
|
from website.pages import header, footer
|
||||||
|
from website.config.settings import google_captcha, email_server
|
||||||
|
from website.libs.mail import sendmail
|
||||||
|
from website.libs.recapture import verify_captcha
|
||||||
|
|
||||||
def contact_page():
|
def contact_page():
|
||||||
web.template.create('Maidstone Hackspace - Chat room')
|
web.template.create('Maidstone Hackspace - Chat room')
|
||||||
|
|
|
@ -14,10 +14,10 @@ from requests_oauthlib import OAuth2Session
|
||||||
from requests_oauthlib.compliance_fixes import facebook_compliance_fix
|
from requests_oauthlib.compliance_fixes import facebook_compliance_fix
|
||||||
|
|
||||||
from scaffold import web
|
from scaffold import web
|
||||||
from libs.mail import sendmail
|
from website.libs.mail import sendmail
|
||||||
from pages import header, footer
|
from website.pages import header, footer
|
||||||
from data import site_user
|
from website.data import site_user
|
||||||
from config.settings import *
|
from website.config.settings import *
|
||||||
from website.constants import *
|
from website.constants import *
|
||||||
|
|
||||||
# web.load_widgets('widgets')
|
# web.load_widgets('widgets')
|
||||||
|
|
|
@ -11,11 +11,11 @@ from requests_oauthlib import OAuth2Session
|
||||||
from requests_oauthlib.compliance_fixes import facebook_compliance_fix
|
from requests_oauthlib.compliance_fixes import facebook_compliance_fix
|
||||||
|
|
||||||
from scaffold import web
|
from scaffold import web
|
||||||
from libs.mail import sendmail
|
from website.libs.mail import sendmail
|
||||||
from pages import header, footer
|
from website.pages import header, footer
|
||||||
from pages.core.authorize import User
|
from website.pages.core.authorize import User
|
||||||
from data import site_user
|
from website.data import site_user
|
||||||
from config.settings import *
|
from website.config.settings import *
|
||||||
from website.constants import *
|
from website.constants import *
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,11 +4,11 @@ from flask import redirect, abort
|
||||||
|
|
||||||
from scaffold import web
|
from scaffold import web
|
||||||
from scaffold.core.validate import validate
|
from scaffold.core.validate import validate
|
||||||
from pages import header, footer
|
from website.pages import header, footer
|
||||||
from data import donate, site_user, badges, members
|
from website.data import donate, site_user, badges, members
|
||||||
|
|
||||||
from libs.payments import payment
|
from website.libs.payments import payment
|
||||||
from config.settings import *
|
from website.config.settings import *
|
||||||
|
|
||||||
donate_pages = Blueprint('donate_pages', __name__, template_folder='templates')
|
donate_pages = Blueprint('donate_pages', __name__, template_folder='templates')
|
||||||
|
|
||||||
|
|
|
@ -3,9 +3,9 @@ from flask import Blueprint
|
||||||
from flask import make_response
|
from flask import make_response
|
||||||
from flask.ext.login import current_user, login_required
|
from flask.ext.login import current_user, login_required
|
||||||
|
|
||||||
from pages import web
|
from website.pages import web
|
||||||
from pages import header, footer
|
from website.pages import header, footer
|
||||||
from data import equipment
|
from website.data import equipment
|
||||||
|
|
||||||
|
|
||||||
equipment_pages = Blueprint('equipment_pages', __name__, template_folder='templates')
|
equipment_pages = Blueprint('equipment_pages', __name__, template_folder='templates')
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
from flask import Blueprint
|
from flask import Blueprint
|
||||||
from flask.ext.login import login_required
|
from flask.ext.login import login_required
|
||||||
|
|
||||||
from pages import web
|
from website.pages import web
|
||||||
from pages import header, footer
|
from website.pages import header, footer
|
||||||
|
|
||||||
google_groups_pages = Blueprint('google_group', __name__, template_folder='templates')
|
google_groups_pages = Blueprint('google_group', __name__, template_folder='templates')
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
from flask.ext.login import login_required
|
from flask.ext.login import login_required
|
||||||
|
|
||||||
from pages import web
|
from website.pages import web
|
||||||
from pages import header, footer
|
from website.pages import header, footer
|
||||||
from data import members
|
from website.data import members
|
||||||
from data import badges
|
from website.data import badges
|
||||||
from website.constants import badge_lookup
|
from website.constants import badge_lookup
|
||||||
|
|
||||||
b = {'1':'test', '2': 'abc'}
|
b = {'1':'test', '2': 'abc'}
|
||||||
|
|
|
@ -5,17 +5,17 @@ from flask.ext.login import current_user, login_required
|
||||||
|
|
||||||
from website.constants import badge_lookup
|
from website.constants import badge_lookup
|
||||||
|
|
||||||
from pages.core.authorize import oauth_lookup_name
|
from website.pages.core.authorize import oauth_lookup_name
|
||||||
from pages import web
|
from website.pages import web
|
||||||
from pages import header, footer
|
from website.pages import header, footer
|
||||||
from data.site_user import get_user_details, get_registered_oauth_providers, update_membership, update_membership_status, get_user_bio, create_membership
|
from website.data.site_user import get_user_details, get_registered_oauth_providers, update_membership, update_membership_status, get_user_bio, create_membership
|
||||||
from data.profile import update_description, create_description, fetch_users
|
from website.data.profile import update_description, create_description, fetch_users
|
||||||
from data import badges
|
from website.data import badges
|
||||||
from data import members
|
from website.data import members
|
||||||
from config.settings import app_domain
|
from website.config.settings import app_domain
|
||||||
|
|
||||||
from libs.payments import payment
|
from website.libs.payments import payment
|
||||||
from config.settings import *
|
from website.config.settings import *
|
||||||
|
|
||||||
profile_pages = Blueprint('profile_pages', __name__, template_folder='templates')
|
profile_pages = Blueprint('profile_pages', __name__, template_folder='templates')
|
||||||
|
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -9,7 +9,7 @@ class control(base_widget_extended):
|
||||||
return self
|
return self
|
||||||
|
|
||||||
def render(self):
|
def render(self):
|
||||||
super(render, self).render()
|
super(control, self).render()
|
||||||
self.script.append(
|
self.script.append(
|
||||||
"""document.getElementById("forum_embed").src = "https://groups.google.com/forum/embed/?place=forum/%s" + "&showsearch=true&showpopout=true&parenturl=" + encodeURIComponent(window.location.href);""" % self.name)
|
"""document.getElementById("forum_embed").src = "https://groups.google.com/forum/embed/?place=forum/%s" + "&showsearch=true&showpopout=true&parenturl=" + encodeURIComponent(window.location.href);""" % self.name)
|
||||||
return '<iframe id="forum_embed" src="javascript:void(0)" style="background-color:#fff;width:100%;" scrolling="no" frameborder="0" width="900" height="700"></iframe>'
|
return '<iframe id="forum_embed" src="javascript:void(0)" style="background-color:#fff;width:100%;" scrolling="no" frameborder="0" width="900" height="700"></iframe>'
|
||||||
|
|
|
@ -0,0 +1,54 @@
|
||||||
|
from scaffold.core.widget import base_widget
|
||||||
|
|
||||||
|
class control(base_widget):
|
||||||
|
oauth_enabled = set()
|
||||||
|
css = '../scaffold/www/default_widgets/css/loginBox.css'
|
||||||
|
|
||||||
|
def create(self):
|
||||||
|
return self
|
||||||
|
|
||||||
|
def enable_oauth(self, name):
|
||||||
|
self.oauth_enabled.add(name)
|
||||||
|
return self
|
||||||
|
|
||||||
|
def render(self):
|
||||||
|
htm = '<div id="login_box" class="row">'
|
||||||
|
|
||||||
|
htm += '<p>Please login with one of the oauth provider below, which is more secure and does not store passwords on our system.</p>'
|
||||||
|
if self.oauth_enabled:
|
||||||
|
htm += '<div class="providers">'
|
||||||
|
if 'google' in self.oauth_enabled:
|
||||||
|
htm += '<a title="Login with Google" class="but row" href="/oauth/google/login">Login with Google</a> '
|
||||||
|
if 'facebook' in self.oauth_enabled:
|
||||||
|
htm += '<a title="Login with facebook" class="but row" href="/oauth/facebook/login">Login with Facebook</a> '
|
||||||
|
if 'github' in self.oauth_enabled:
|
||||||
|
htm += '<a title="Login with twitter" class="but row" href="/oauth/github/login">Login with GitHub</a>'
|
||||||
|
htm += '<br /></div>'
|
||||||
|
|
||||||
|
htm += '<p>Or alternatively login with your previously created account.</p>'
|
||||||
|
htm += '''
|
||||||
|
<form class="col s12" id="user_login" method="post" action="/login" ><frameset>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="input-field col s12">
|
||||||
|
<input id="username" name="username" type="text"/>
|
||||||
|
<label for="username">E-Mail</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="input-field col s12">
|
||||||
|
<input id="password" name="password" type="password"/>
|
||||||
|
<label for="password">Password</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="input-field col s12">
|
||||||
|
<button class="but" form="user_login" type="submit" value="login">Login</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</frameset></form>
|
||||||
|
<a href="/register">Register for an account</a> | <a href="/reset-password">Reset password</a>'''
|
||||||
|
htm += '</div>'
|
||||||
|
return htm
|
||||||
|
|
|
@ -23,13 +23,27 @@ class control(base_widget_extended):
|
||||||
</div>''' % (self.reference, self.name)
|
</div>''' % (self.reference, self.name)
|
||||||
|
|
||||||
return '''
|
return '''
|
||||||
<div id="membercard" class="register">
|
<div id="membercard" class="register row">
|
||||||
<form action="/profile/membership" method="post">
|
<form action="/profile/membership" method="post">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>Join Maidstone Hackspace</legend>
|
<legend>Join Maidstone Hackspace</legend>
|
||||||
<div class="input-field"><select name="provider" class="select-dropdown"><option value="gocardless">GoCardless</option><option value="paypal">PayPal</option></select><label for="provider">Payment provider</label></div>
|
<div class="row">
|
||||||
<div class="input-field"><input name="amount" placeholder="20.00" value="20.00" type="text"><label for="amount">Subscription Amount</label></div>
|
<div class="input-field col s12">
|
||||||
<div class="button"><button type="submit">submit</button></div>
|
<select name="provider">
|
||||||
|
<option value="gocardless">GoCardless</option>
|
||||||
|
<option value="paypal">PayPal</option>
|
||||||
|
</select>
|
||||||
|
<label for="provider">Payment provider</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="input-field col s12">
|
||||||
|
<input name="amount" placeholder="20.00" value="20.00" type="text">
|
||||||
|
<label for="amount">Subscription Amount</label></div>
|
||||||
|
<div class="button">
|
||||||
|
<button type="submit">submit</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
</div>'''
|
</div>'''
|
||||||
|
|
Loading…
Reference in New Issue