Simplify non-active user page
Currently, the logic of whether a user account has been activated is in the main user.html template. This is not good as: doing that check for all users from template code is probably not great for performance, but more severly, the template logic is rather difficult and convoluted. Split this in a user.html and a user_nonactive.html where user.html is used for active users and user_nonactive displays all the "you still need to be activated" blurbs. This makes the templates much easier on the eyes.
This commit is contained in:
parent
6375cf735c
commit
51b4318079
@ -14,6 +14,9 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
# This is the main user homepage for active users
|
||||||
#}
|
#}
|
||||||
{% extends "mediagoblin/base.html" %}
|
{% extends "mediagoblin/base.html" %}
|
||||||
|
|
||||||
@ -38,53 +41,6 @@
|
|||||||
|
|
||||||
|
|
||||||
{% block mediagoblin_content -%}
|
{% block mediagoblin_content -%}
|
||||||
{# If no user... #}
|
|
||||||
{% if not user %}
|
|
||||||
<p>{% trans %}Sorry, no such user found.{% endtrans %}</p>
|
|
||||||
|
|
||||||
{# User exists, but needs verification #}
|
|
||||||
{% elif user.status == "needs_email_verification" %}
|
|
||||||
{% if user == request.user %}
|
|
||||||
{# this should only be visible when you are this user #}
|
|
||||||
<div class="form_box">
|
|
||||||
<h1>{% trans %}Email verification needed{% endtrans %}</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
{% trans -%}
|
|
||||||
Almost done! Your account still needs to be activated.
|
|
||||||
{%- endtrans %}
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
{% trans -%}
|
|
||||||
An email should arrive in a few moments with instructions on how to do so.
|
|
||||||
{%- endtrans %}
|
|
||||||
</p>
|
|
||||||
<p>{% trans %}In case it doesn't:{% endtrans %}</p>
|
|
||||||
|
|
||||||
<a href="{{ request.urlgen('mediagoblin.auth.resend_verification') }}"
|
|
||||||
class="button_action_highlight">{% trans %}Resend verification email{% endtrans %}</a>
|
|
||||||
</div>
|
|
||||||
{% else %}
|
|
||||||
{# if the user is not you, but still needs to verify their email #}
|
|
||||||
<div class="form_box">
|
|
||||||
<h1>{% trans %}Email verification needed{% endtrans %}</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
{% trans -%}
|
|
||||||
Someone has registered an account with this username, but it still has to be activated.
|
|
||||||
{%- endtrans %}
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
{% trans login_url=request.urlgen('mediagoblin.auth.login') -%}
|
|
||||||
If you are that person but you've lost your verification email, you can <a href="{{ login_url }}">log in</a> and resend it.
|
|
||||||
{%- endtrans %}
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{# Active(?) (or at least verified at some point) user, horray! #}
|
|
||||||
{% else %}
|
|
||||||
<h1>
|
<h1>
|
||||||
{%- trans username=user.username %}{{ username }}'s profile{% endtrans -%}
|
{%- trans username=user.username %}{{ username }}'s profile{% endtrans -%}
|
||||||
</h1>
|
</h1>
|
||||||
@ -167,5 +123,4 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="clear"></div>
|
<div class="clear"></div>
|
||||||
{% endif %}
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -0,0 +1,83 @@
|
|||||||
|
{#
|
||||||
|
# GNU MediaGoblin -- federated, autonomous media hosting
|
||||||
|
# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS.
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# This is the main user homepage for non-active users that still need
|
||||||
|
# registration etc.
|
||||||
|
#}
|
||||||
|
{% extends "mediagoblin/base.html" %}
|
||||||
|
|
||||||
|
{% block title %}
|
||||||
|
{%- if user -%}
|
||||||
|
{%- trans username=user.username -%}
|
||||||
|
{{ username }}'s profile
|
||||||
|
{%- endtrans %} — {{ super() }}
|
||||||
|
{%- else -%}
|
||||||
|
{{ super() }}
|
||||||
|
{%- endif -%}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
|
||||||
|
{% block mediagoblin_content -%}
|
||||||
|
{# User exists, but needs verification #}
|
||||||
|
{% if user.status == "needs_email_verification" %}
|
||||||
|
{% if user == request.user %}
|
||||||
|
{# this should only be visible when you are this user #}
|
||||||
|
<div class="form_box">
|
||||||
|
<h1>{% trans %}Email verification needed{% endtrans %}</h1>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
{% trans -%}
|
||||||
|
Almost done! Your account still needs to be activated.
|
||||||
|
{%- endtrans %}
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
{% trans -%}
|
||||||
|
An email should arrive in a few moments with instructions on how to do so.
|
||||||
|
{%- endtrans %}
|
||||||
|
</p>
|
||||||
|
<p>{% trans %}In case it doesn't:{% endtrans %}</p>
|
||||||
|
|
||||||
|
<a href="{{ request.urlgen('mediagoblin.auth.resend_verification') }}"
|
||||||
|
class="button_action_highlight">{% trans %}Resend verification email{% endtrans %}</a>
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
{# if the user is not you, but still needs to verify their email #}
|
||||||
|
<div class="form_box">
|
||||||
|
<h1>{% trans %}Email verification needed{% endtrans %}</h1>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
{% trans -%}
|
||||||
|
Someone has registered an account with this username, but it still has to be activated.
|
||||||
|
{%- endtrans %}
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
{% trans login_url=request.urlgen('mediagoblin.auth.login') -%}
|
||||||
|
If you are that person but you've lost your verification email, you can <a href="{{ login_url }}">log in</a> and resend it.
|
||||||
|
{%- endtrans %}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{# Active(?) (or at least verified at some point) user, horray! #}
|
||||||
|
{% else %}
|
||||||
|
<h1>
|
||||||
|
{%- trans username=user.username %}{{ username }}{% endtrans -%}
|
||||||
|
</h1>
|
||||||
|
<p>{{ username }} is not active.</p>
|
||||||
|
<div class="clear"></div>
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
@ -47,16 +47,13 @@ _log.setLevel(logging.DEBUG)
|
|||||||
@uses_pagination
|
@uses_pagination
|
||||||
def user_home(request, page):
|
def user_home(request, page):
|
||||||
"""'Homepage' of a User()"""
|
"""'Homepage' of a User()"""
|
||||||
# TODO: decide if we only want homepages for active users, we can
|
|
||||||
# then use the @get_active_user decorator and also simplify the
|
|
||||||
# template html.
|
|
||||||
user = User.query.filter_by(username=request.matchdict['user']).first()
|
user = User.query.filter_by(username=request.matchdict['user']).first()
|
||||||
if not user:
|
if not user:
|
||||||
return render_404(request)
|
return render_404(request)
|
||||||
elif user.status != u'active':
|
elif user.status != u'active':
|
||||||
return render_to_response(
|
return render_to_response(
|
||||||
request,
|
request,
|
||||||
'mediagoblin/user_pages/user.html',
|
'mediagoblin/user_pages/user_nonactive.html',
|
||||||
{'user': user})
|
{'user': user})
|
||||||
|
|
||||||
cursor = MediaEntry.query.\
|
cursor = MediaEntry.query.\
|
||||||
|
Loading…
x
Reference in New Issue
Block a user