Small changes everywhere

This commit is contained in:
Patrick Jentsch 2020-02-17 16:14:24 +01:00
parent 75d09b985b
commit c327291cbe
6 changed files with 86 additions and 140 deletions

View File

@ -10,7 +10,7 @@ import logging
db = SQLAlchemy() db = SQLAlchemy()
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
login_manager = LoginManager() login_manager = LoginManager()
login_manager.login_view = 'auth.login' login_manager.login_view = 'main.index'
mail = Mail() mail = Mail()
socketio = SocketIO() socketio = SocketIO()

View File

@ -35,10 +35,8 @@ class RegistrationForm(FlaskForm):
email = StringField('Email', validators=[DataRequired(), Email()]) email = StringField('Email', validators=[DataRequired(), Email()])
username = StringField( username = StringField(
'Username', 'Username',
validators=[DataRequired(), validators=[DataRequired(), Length(1, 64),
Length(1, 64), Regexp('^[A-Za-z][A-Za-z0-9_.]*$', 0,
Regexp('^[A-Za-z][A-Za-z0-9_.]*$',
0,
'Usernames must have only letters, numbers, dots ' 'Usernames must have only letters, numbers, dots '
'or underscores')] 'or underscores')]
) )

View File

@ -22,15 +22,14 @@ def logout():
def register(): def register():
if not current_user.is_anonymous: if not current_user.is_anonymous:
return redirect(url_for('main.dashboard')) return redirect(url_for('main.dashboard'))
registration_form = RegistrationForm() registration_form = RegistrationForm(prefix='registration-form')
if registration_form.validate_on_submit(): if registration_form.validate_on_submit():
user = User(email=registration_form.email.data.lower(), user = User(email=registration_form.email.data.lower(),
password=registration_form.password.data, password=registration_form.password.data,
username=registration_form.username.data) username=registration_form.username.data)
db.session.add(user) db.session.add(user)
db.session.commit() db.session.commit()
dir = os.path.join(current_app.config['NOPAQUE_STORAGE'], dir = os.path.join(current_app.config['NOPAQUE_STORAGE'], str(user.id))
str(user.id))
try: try:
os.makedirs(dir) os.makedirs(dir)
except OSError: except OSError:
@ -41,8 +40,9 @@ def register():
send_email(user.email, 'Confirm Your Account', send_email(user.email, 'Confirm Your Account',
'auth/email/confirm', token=token, user=user) 'auth/email/confirm', token=token, user=user)
flash('A confirmation email has been sent to you by email.') flash('A confirmation email has been sent to you by email.')
return redirect(url_for('auth.login')) return redirect(url_for('main.index'))
return render_template('auth/register.html.j2', form=registration_form, return render_template('auth/register.html.j2',
registration_form=registration_form,
title='Register') title='Register')
@ -108,7 +108,7 @@ def password_reset_request():
user=user) user=user)
flash('An email with instructions to reset your password has been ' flash('An email with instructions to reset your password has been '
'sent to you.') 'sent to you.')
return redirect(url_for('auth.login')) return redirect(url_for('main.index'))
return render_template('auth/reset_password_request.html.j2', return render_template('auth/reset_password_request.html.j2',
form=form, form=form,
title='Password Reset') title='Password Reset')
@ -123,7 +123,7 @@ def password_reset(token):
if User.reset_password(token, form.password.data): if User.reset_password(token, form.password.data):
db.session.commit() db.session.commit()
flash('Your password has been updated.') flash('Your password has been updated.')
return redirect(url_for('auth.login')) return redirect(url_for('main.index'))
else: else:
return redirect(url_for('main.index')) return redirect(url_for('main.index'))
return render_template('auth/reset_password.html.j2', return render_template('auth/reset_password.html.j2',

View File

@ -1,49 +0,0 @@
{% extends "nopaque.html.j2" %}
{% set full_width = False %}
{% set roadmap = False %}
{% block page_content %}
<div class="col s12 m4">
<h3>New to Opaque?</h3>
<p>It's free to join and easy to use. Continue on to our registration page to create your Opaque account.</p>
<p><a href="{{ url_for('auth.register') }}" class="waves-effect waves-light btn">Registration</a>
</div>
<div class="col s12 m8">
<div class="card small">
<form method="POST">
<div class="card-content">
{{ form.hidden_tag() }}
<div class="input-field">
<i class="material-icons prefix">person</i>
{{ form.login(class='validate', placeholder='Email address or username') }}
{{ form.login.label }}
{% for error in form.login.errors %}
<span class="helper-text red-text">{{ error }}</span>
{% endfor %}
</div>
<div class="input-field">
<i class="material-icons prefix">vpn_key</i>
{{ form.password(class='validate') }}
{{ form.password.label }}
{% for error in form.password.errors %}
<span class="helper-text red-text">{{ error }}</span>
{% endfor %}
</div>
<a href="{{ url_for('auth.password_reset_request') }}" class="left">Forgot your password?</a>
<div class="switch right">
<label>
Remember me
{{ form.remember_me() }}
<span class="lever"></span>
</label>
</div>
</div>
<div class="card-action">
{{ form.submit(class='btn right') }}
</div>
</form>
</div>
</div>
{% endblock %}

View File

@ -5,50 +5,50 @@
{% block page_content %} {% block page_content %}
<div class="col s12 m4"> <div class="col s12 m4">
<h3>&nbsp;</h3> <h3>DSGVO</h3>
<img src="{{ url_for('static', filename='images/logo_sfb_1288.png') }}" class="responsive-img"> <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
</div> </div>
<div class="col s12 m8"> <div class="col s12 m8">
<div class="card"> <div class="card">
<form method="POST"> <form method="POST">
<div class="card-content"> <div class="card-content">
{{ form.hidden_tag() }} {{ registration_form.hidden_tag() }}
<div class="input-field"> <div class="input-field">
<i class="material-icons prefix">person</i> <i class="material-icons prefix">person</i>
{{ form.username(class='validate', data_length='64') }} {{ registration_form.username(class='validate', data_length='64') }}
{{ form.username.label }} {{ registration_form.username.label }}
{% for error in form.username.errors %} {% for error in registration_form.username.errors %}
<span class="helper-text red-text">{{ error }}</span> <span class="helper-text red-text">{{ error }}</span>
{% endfor %} {% endfor %}
</div> </div>
<div class="input-field"> <div class="input-field">
<i class="material-icons prefix">vpn_key</i> <i class="material-icons prefix">vpn_key</i>
{{ form.password(class='validate') }} {{ registration_form.password(class='validate') }}
{{ form.password.label }} {{ registration_form.password.label }}
{% for error in form.password.errors %} {% for error in registration_form.password.errors %}
<span class="helper-text red-text">{{ error }}</span> <span class="helper-text red-text">{{ error }}</span>
{% endfor %} {% endfor %}
</div> </div>
<div class="input-field"> <div class="input-field">
<i class="material-icons prefix">vpn_key</i> <i class="material-icons prefix">vpn_key</i>
{{ form.password2(class='validate') }} {{ registration_form.password2(class='validate') }}
{{ form.password2.label }} {{ registration_form.password2.label }}
{% for error in form.password2.errors %} {% for error in registration_form.password2.errors %}
<span class="helper-text red-text">{{ error }}</span> <span class="helper-text red-text">{{ error }}</span>
{% endfor %} {% endfor %}
</div> </div>
<div class="input-field "> <div class="input-field ">
<i class="material-icons prefix">email</i> <i class="material-icons prefix">email</i>
{{ form.email(class='validate', type='email') }} {{ registration_form.email(class='validate', type='email') }}
{{ form.email.label }} {{ registration_form.email.label }}
{% for error in form.email.errors %} {% for error in registration_form.email.errors %}
<span class="helper-text red-text">{{ error }}</span> <span class="helper-text red-text">{{ error }}</span>
{% endfor %} {% endfor %}
</div> </div>
</div> </div>
<div class="card-action right-align"> <div class="card-action right-align">
{{ form.submit(class='btn') }} <button class="btn waves-effect waves-light" id="registration-form-submit" name="registration-form-submit" type="submit">Register<i class="material-icons right">send</i></button>
</div> </div>
</form> </form>
</div> </div>

View File

@ -7,7 +7,8 @@
{% if current_user.is_anonymous %} {% if current_user.is_anonymous %}
<div class="col s12 m4"> <div class="col s12 m4">
<h3>No account?</h3> <h3>No account?</h3>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,</p> <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
<p>&nbsp;</p>
<a class="btn" href="{{ url_for('auth.register') }}"><i class="material-icons left">person_add</i>Register</a> <a class="btn" href="{{ url_for('auth.register') }}"><i class="material-icons left">person_add</i>Register</a>
</div> </div>
@ -57,74 +58,70 @@
{% endif %} {% endif %}
<div class="col s12"> <div class="col s12">
<p>&nbsp;</p> <h3>&nbsp;</h3>
</div> </div>
<div class="col s4 center-align"> <div class="col s12 l10 offset-l1">
<div class="row">
<div class="col s3 center-align">
<i class="large material-icons" style="color: #ee6e73;">flash_on</i> <i class="large material-icons" style="color: #ee6e73;">flash_on</i>
<p>Speeds up your work</p> <p>Speeds up your work</p>
<p class="light">All tools provided by nopaque are carefully selected to provide a complete tool suite without delaying compatibility issues.</p> <p class="light">All tools provided by nopaque are carefully selected to provide a complete tool suite without delaying compatibility issues.</p>
</div> </div>
<div class="col s4 center-align"> <div class="col s3 center-align">
<i class="large material-icons" style="color: #ee6e73;">cloud</i>
<p>Cloud infrastructure</p>
<p class="light">All computational work is processed within nopaques cloud infrastructure. You don't need to install any software, great right?</p>
</div>
<div class="col s3 center-align">
<i class="large material-icons" style="color: #ee6e73;">group</i> <i class="large material-icons" style="color: #ee6e73;">group</i>
<p>User Experience Focused</p> <p>User Experience Focused</p>
<p class="light">By utilizing elements and principles of Material Design, we were able to create a framework that focuses on User Experience.</p> <p class="light">By utilizing elements and principles of Material Design, we were able to create a framework that focuses on User Experience.</p>
</div> </div>
<div class="col s4 center-align"> <div class="col s3 center-align">
<i class="large material-icons" style="color: #ee6e73;">settings</i> <i class="large material-icons" style="color: #ee6e73;">settings</i>
<p>Easy to work with</p> <p>Easy to work with</p>
<p class="light">We have provided detailed documentation as well as specific code examples to help new users get started.</p> <p class="light">We have provided detailed documentation as well as specific code examples to help new users get started.</p>
</div> </div>
</div>
</div>
<div class="col s12 m4">
<h3>Processes and Services</h3>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.</p>
</div>
<div class="col s12 m8">
<br class="hide-on-small-only">
<ul class="collection">
<li class="collection-item avatar">
<i class="circle material-icons">burst_mode</i>
<span class="title">File setup</span>
<p class="light">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
<a href="#!" class="secondary-content"><i class="material-icons">help</i></a>
</li>
<li class="collection-item avatar">
<i class="circle material-icons">find_in_page</i>
<span class="title">Optical Character Recognition</span>
<p class="light">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
<a href="#!" class="secondary-content"><i class="material-icons">help</i></a>
</li>
<li class="collection-item avatar">
<i class="circle material-icons">format_textdirection_l_to_r</i>
<span class="title">Natural Language Processing</span>
<p class="light">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
<a href="#!" class="secondary-content"><i class="material-icons">help</i></a>
</li>
<li class="collection-item avatar">
<i class="circle material-icons">search</i>
<span class="title">Corpus analysis</span>
<p class="light">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
<a href="#!" class="secondary-content"><i class="material-icons">help</i></a>
</li>
</ul>
</div>
<div class="col s12"> <div class="col s12">
<h3>Processes and Services</h3> <h3>Get things done with nopaque</h3>
</div>
<div class="col s12 m6 l3">
<div class="card">
<div class="card-content">
<div class="center-align">
<i class="large material-icons">burst_mode</i>
<span class="card-title">File setup<span class="hide-on-small-only"><br><br></span></span>
</div>
<p class="light">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
</div>
</div>
</div>
<div class="col s12 m6 l3">
<div class="card">
<div class="card-content">
<div class="center-align">
<i class="large material-icons">find_in_page</i>
<span class="card-title">Optical Character Recognition</span>
</div>
<p class="light">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
</div>
</div>
</div>
<div class="col s12 m6 l3">
<div class="card">
<div class="card-content">
<div class="center-align">
<i class="large material-icons">format_textdirection_l_to_r</i>
<span class="card-title">Natural Language Processing</span>
</div>
<p class="light">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
</div>
</div>
</div>
<div class="col s12 m6 l3">
<div class="card">
<div class="card-content">
<div class="center-align">
<i class="large material-icons">search</i>
<span class="card-title">Corpus analysis<span class="hide-on-small-only"><br><br></span></span>
</div>
<p class="light">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
</div>
</div>
</div> </div>
{% endblock %} {% endblock %}