reworking project layout

This commit is contained in:
Oliver Marks 2016-10-17 22:40:21 +01:00
parent 300dfe1b92
commit 4d7b6a1fe1
18 changed files with 137 additions and 63 deletions

View File

@ -6,6 +6,8 @@ services:
image: olymk2/mhackspace
restart: unless-stopped
network_mode: bridge
ports:
- "5010:5000"
links:
- mariadb:mariadb
- mhackspace_web:nginx

View File

@ -10,4 +10,4 @@ from website import index
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)

View File

@ -1,5 +1,4 @@
import os
import socket
from scaffold.core.data.database import db
from scaffold.core.data.sql import query_builder
@ -45,26 +44,27 @@ oauth_live = False
oauth_redirect_uri = app_domain + '/oauth'
oauth_conf = {}
payment_providers = {}
google_captcha = {}
google_calendar_id = ''
google_calendar_api_key = ''
print(os.path.abspath('./'))
if os.environ.get('SERVER_ENVIRONMENT') =='DOCKER':
if os.path.exists('config/settings_docker.py'):
print('Using settings for docker enviroment')
from config.settings_docker import *
from website.config.settings_docker import *
else:
if os.path.exists('config/settings_dev.py'):
if os.path.exists('website/config/settings_dev.py'):
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'):
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'):
print('Using settings for live enviroment')
from config.settings_live import *
from website.config.settings_live import *

View File

@ -24,7 +24,7 @@ class sendmail:
message = Message(
From=from_address,
To=to_address,
reply-to=from_address,
RTo=from_address,
charset=self.charset
)

View File

@ -1,11 +1,11 @@
from pprint import pprint
from config import settings
from datetime import datetime, timedelta
import pytz
import gocardless
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_NAME = {1: 'gocardless', 2: 'paypal'}

View File

@ -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-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-animate.js"></script>')
setup.persistent_header('<script type="text/javascript" src="/static/js/materialize.js"></script>')

View File

@ -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 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():
web.template.create('Maidstone Hackspace - Chat room')

View File

@ -14,10 +14,10 @@ from requests_oauthlib import OAuth2Session
from requests_oauthlib.compliance_fixes import facebook_compliance_fix
from scaffold import web
from libs.mail import sendmail
from pages import header, footer
from data import site_user
from config.settings import *
from website.libs.mail import sendmail
from website.pages import header, footer
from website.data import site_user
from website.config.settings import *
from website.constants import *
# web.load_widgets('widgets')

View File

@ -11,11 +11,11 @@ from requests_oauthlib import OAuth2Session
from requests_oauthlib.compliance_fixes import facebook_compliance_fix
from scaffold import web
from libs.mail import sendmail
from pages import header, footer
from pages.core.authorize import User
from data import site_user
from config.settings import *
from website.libs.mail import sendmail
from website.pages import header, footer
from website.pages.core.authorize import User
from website.data import site_user
from website.config.settings import *
from website.constants import *

View File

@ -4,11 +4,11 @@ from flask import redirect, abort
from scaffold import web
from scaffold.core.validate import validate
from pages import header, footer
from data import donate, site_user, badges, members
from website.pages import header, footer
from website.data import donate, site_user, badges, members
from libs.payments import payment
from config.settings import *
from website.libs.payments import payment
from website.config.settings import *
donate_pages = Blueprint('donate_pages', __name__, template_folder='templates')

View File

@ -3,9 +3,9 @@ from flask import Blueprint
from flask import make_response
from flask.ext.login import current_user, login_required
from pages import web
from pages import header, footer
from data import equipment
from website.pages import web
from website.pages import header, footer
from website.data import equipment
equipment_pages = Blueprint('equipment_pages', __name__, template_folder='templates')

View File

@ -1,8 +1,8 @@
from flask import Blueprint
from flask.ext.login import login_required
from pages import web
from pages import header, footer
from website.pages import web
from website.pages import header, footer
google_groups_pages = Blueprint('google_group', __name__, template_folder='templates')

View File

@ -1,9 +1,9 @@
from flask.ext.login import login_required
from pages import web
from pages import header, footer
from data import members
from data import badges
from website.pages import web
from website.pages import header, footer
from website.data import members
from website.data import badges
from website.constants import badge_lookup
b = {'1':'test', '2': 'abc'}

View File

@ -5,17 +5,17 @@ from flask.ext.login import current_user, login_required
from website.constants import badge_lookup
from pages.core.authorize import oauth_lookup_name
from pages import web
from 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 data.profile import update_description, create_description, fetch_users
from data import badges
from data import members
from config.settings import app_domain
from website.pages.core.authorize import oauth_lookup_name
from website.pages import web
from website.pages import header, footer
from website.data.site_user import get_user_details, get_registered_oauth_providers, update_membership, update_membership_status, get_user_bio, create_membership
from website.data.profile import update_description, create_description, fetch_users
from website.data import badges
from website.data import members
from website.config.settings import app_domain
from libs.payments import payment
from config.settings import *
from website.libs.payments import payment
from website.config.settings import *
profile_pages = Blueprint('profile_pages', __name__, template_folder='templates')

File diff suppressed because one or more lines are too long

View File

@ -9,7 +9,7 @@ class control(base_widget_extended):
return self
def render(self):
super(render, self).render()
super(control, self).render()
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)
return '<iframe id="forum_embed" src="javascript:void(0)" style="background-color:#fff;width:100%;" scrolling="no" frameborder="0" width="900" height="700"></iframe>'

View File

@ -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>&nbsp;'
if 'facebook' in self.oauth_enabled:
htm += '<a title="Login with facebook" class="but row" href="/oauth/facebook/login">Login with Facebook</a>&nbsp;'
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>&nbsp;|&nbsp;<a href="/reset-password">Reset password</a>'''
htm += '</div>'
return htm

View File

@ -23,13 +23,27 @@ class control(base_widget_extended):
</div>''' % (self.reference, self.name)
return '''
<div id="membercard" class="register">
<div id="membercard" class="register row">
<form action="/profile/membership" method="post">
<fieldset>
<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="input-field"><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 class="row">
<div class="input-field col s12">
<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>
</form>
</div>'''