diff --git a/app/templates/_sidenav.html.j2 b/app/templates/_sidenav.html.j2 index f968cffec9a850453e732f9722a50d10e9677372..11616ebf5b7329bf367d5f955826731041eaa706 100644 --- a/app/templates/_sidenav.html.j2 +++ b/app/templates/_sidenav.html.j2 @@ -1,6 +1,6 @@ <ul class="sidenav sidenav-fixed" id="sidenav"> <li> - <div class="user-view"> + <div class="user-view" style="padding-top: 8px;"> <div class="background primary-color"></div> <div class="row"> <div class="col s2"> @@ -20,7 +20,7 @@ <li><a href="{{ url_for('main.dashboard') }}"><i class="material-icons">dashboard</i>Dashboard</a></li> <li><a href="{{ url_for('main.dashboard', _anchor='corpora') }}" style="padding-left: 47px;"><i class="nopaque-icons">I</i>My Corpora</a></li> <li><a href="{{ url_for('main.dashboard', _anchor='jobs') }}" style="padding-left: 47px;"><i class="nopaque-icons">J</i>My Jobs</a></li> - <li><a href="{{ url_for('main.dashboard', _anchor='social') }}" style="padding-left: 47px;"><i class="material-icons">groups</i>Social</a></li> + {# <li><a href="{{ url_for('main.dashboard', _anchor='social') }}" style="padding-left: 47px;"><i class="material-icons">groups</i>Social</a></li> #} <li><a href="{{ url_for('contributions.contributions') }}"><i class="material-icons">new_label</i>Contribute</a></li> <li><div class="divider"></div></li> <li><a class="subheader">Processes & Services</a></li> diff --git a/app/templates/main/dashboard.html.j2 b/app/templates/main/dashboard.html.j2 index 9b45d337e8b9f4f21a29f4a6faa355443108699a..b6149fdf8bfb3c2e54a819aa87d5e0f77f2e7267 100644 --- a/app/templates/main/dashboard.html.j2 +++ b/app/templates/main/dashboard.html.j2 @@ -42,7 +42,7 @@ </div> </div> </div> - <div class="col s12" id="social"> + {# <div class="col s12" id="social"> <h3>Social</h3> <div class="card"> <div class="card-content"> @@ -57,16 +57,10 @@ <p>Find public corpora</p> </div> </div> - </div> + </div> #} <div class="fixed-action-btn direction-top active" style="bottom:45px; right:24px;"> <a id="news-feature-discovery" class="waves-effect waves-light btn btn-floating"><i class="material-icons">mail</i></a> </div> - <div class="tap-target" data-target="news-feature-discovery" style="background-color:#1A5C89"> - <div class="tap-target-content"> - <h5>Title</h5> - <p>A bunch of text</p> - </div> - </div> </div> </div> {% endblock page_content %} @@ -122,10 +116,10 @@ </div> {% endblock modals %} -{% block scripts %} +{# {% block scripts %} {{ super() }} <script> let publicUserList = new PublicUserList(document.querySelector('.public-user-list')); publicUserList.add({{ users|tojson }}); </script> -{% endblock scripts %} +{% endblock scripts %} #} diff --git a/app/templates/users/edit_profile.html.j2 b/app/templates/users/edit_profile.html.j2 index 5e299262fcb950663a50273b3b307c640a4cd035..11b4b4d290d3d3e07c40b2e9d4f2e402f1ba43d7 100644 --- a/app/templates/users/edit_profile.html.j2 +++ b/app/templates/users/edit_profile.html.j2 @@ -83,7 +83,7 @@ </div> </div> <div class="col s10"> - {{ wtf.render_field(edit_public_profile_information_form.avatar, accept='image/jpeg, image/png, image/gif', placeholder='Choose an image file', id='avatar-upload', data_action='disable') }} + {{ wtf.render_field(edit_public_profile_information_form.avatar, accept='image/jpeg, image/png, image/gif', placeholder='Choose an image file', id='avatar-upload') }} </div> </div> </div> diff --git a/app/templates/users/profile.html.j2 b/app/templates/users/profile.html.j2 index b8c0ad19d728f7d5b6bc5fe587d627851d38e567..574fd6c9480d5eb62b417851197d5841da308f82 100644 --- a/app/templates/users/profile.html.j2 +++ b/app/templates/users/profile.html.j2 @@ -91,7 +91,7 @@ </div> </div> </div> - <div class="row"> + {# <div class="row"> <div class="col s6"> <div class="card"> <div class="card-content"> @@ -103,11 +103,11 @@ <div class="card"> <div class="card-content"> <h4>Public corpora</h4> - {# <div class="public-corpora-list" data-user-id="{{ user.hashid }}"></div> #} + <div class="public-corpora-list" data-user-id="{{ user.hashid }}"></div> </div> </div> </div> - </div> + </div> #} </div> {% endblock page_content %} diff --git a/app/users/forms.py b/app/users/forms.py index 5059451981e0232cf466ad43285c28e4218fe132..5fd5d81e86906d670be9caa499929cadddc7ecb2 100644 --- a/app/users/forms.py +++ b/app/users/forms.py @@ -8,23 +8,24 @@ from wtforms import ( ValidationError ) from wtforms.validators import ( - InputRequired, + DataRequired, Email, Length, Regexp ) from app.models import User from app.auth import USERNAME_REGEX +from app.wtf_validators import FileSizeLimit class EditProfileSettingsForm(FlaskForm): email = StringField( 'E-Mail', - validators=[InputRequired(), Length(max=254), Email()] + validators=[DataRequired(), Length(max=254), Email()] ) username = StringField( 'Username', validators=[ - InputRequired(), + DataRequired(), Length(max=64), Regexp( USERNAME_REGEX, @@ -53,7 +54,8 @@ class EditProfileSettingsForm(FlaskForm): class EditPublicProfileInformationForm(FlaskForm): avatar = FileField( - 'Image File' + 'Image File', + [FileSizeLimit(max_size_in_mb=2)] ) full_name = StringField( 'Full name', diff --git a/app/wtf_validators.py b/app/wtf_validators.py new file mode 100644 index 0000000000000000000000000000000000000000..326ef7e709c7d13fb28327dd5daaa95febd117a9 --- /dev/null +++ b/app/wtf_validators.py @@ -0,0 +1,9 @@ +from wtforms.validators import ValidationError + +def FileSizeLimit(max_size_in_mb): + max_bytes = max_size_in_mb*1024*1024 + def file_length_check(form, field): + if len(field.data.read()) > max_bytes: + raise ValidationError(f"File size must be less than {max_size_in_mb}MB") + field.data.seek(0) + return file_length_check