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
|
||||
# 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" %}
|
||||
|
||||
@ -38,134 +41,86 @@
|
||||
|
||||
|
||||
{% 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>
|
||||
<h1>
|
||||
{%- trans username=user.username %}{{ username }}'s profile{% endtrans -%}
|
||||
</h1>
|
||||
|
||||
{% if not user.url and not user.bio %}
|
||||
{% if request.user and (request.user.id == user.id) %}
|
||||
<div class="profile_sidebar empty_space">
|
||||
<p>
|
||||
{% trans -%}
|
||||
Almost done! Your account still needs to be activated.
|
||||
{%- endtrans %}
|
||||
{% trans %}Here's a spot to tell others about yourself.{% 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>
|
||||
<a href="{{ request.urlgen('mediagoblin.edit.profile',
|
||||
user=user.username) }}" class="button_action">
|
||||
{%- trans %}Edit profile{% endtrans -%}
|
||||
</a>
|
||||
{% 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>
|
||||
|
||||
<div class="profile_sidebar empty_space">
|
||||
<p>
|
||||
{% trans -%}
|
||||
Someone has registered an account with this username, but it still has to be activated.
|
||||
This user hasn't filled in their profile (yet).
|
||||
{%- 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 }}'s profile{% endtrans -%}
|
||||
</h1>
|
||||
|
||||
{% if not user.url and not user.bio %}
|
||||
{% if request.user and (request.user.id == user.id) %}
|
||||
<div class="profile_sidebar empty_space">
|
||||
<p>
|
||||
{% trans %}Here's a spot to tell others about yourself.{% endtrans %}
|
||||
</p>
|
||||
<a href="{{ request.urlgen('mediagoblin.edit.profile',
|
||||
user=user.username) }}" class="button_action">
|
||||
{%- trans %}Edit profile{% endtrans -%}
|
||||
</a>
|
||||
{% else %}
|
||||
<div class="profile_sidebar empty_space">
|
||||
<p>
|
||||
{% trans -%}
|
||||
This user hasn't filled in their profile (yet).
|
||||
{%- endtrans %}
|
||||
</p>
|
||||
<div class="profile_sidebar">
|
||||
{% include "mediagoblin/utils/profile.html" %}
|
||||
{% if request.user and
|
||||
(request.user.id == user.id or request.user.is_admin) %}
|
||||
<a href="{{ request.urlgen('mediagoblin.edit.profile',
|
||||
user=user.username) }}">
|
||||
{%- trans %}Edit profile{% endtrans -%}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<div class="profile_sidebar">
|
||||
{% include "mediagoblin/utils/profile.html" %}
|
||||
{% if request.user and
|
||||
(request.user.id == user.id or request.user.is_admin) %}
|
||||
<a href="{{ request.urlgen('mediagoblin.edit.profile',
|
||||
user=user.username) }}">
|
||||
{%- trans %}Edit profile{% endtrans -%}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<p>
|
||||
<a href="{{ request.urlgen('mediagoblin.user_pages.collection_list',
|
||||
user=user.username) }}">
|
||||
{%- trans %}Browse collections{% endtrans -%}
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{% if media_entries.count() %}
|
||||
<div class="profile_showcase">
|
||||
{{ object_gallery(request, media_entries, pagination,
|
||||
pagination_base_url=user_gallery_url, col_number=3) }}
|
||||
{% include "mediagoblin/utils/object_gallery.html" %}
|
||||
<div class="clear"></div>
|
||||
<p>
|
||||
<a href="{{ request.urlgen('mediagoblin.user_pages.collection_list',
|
||||
user=user.username) }}">
|
||||
{%- trans %}Browse collections{% endtrans -%}
|
||||
<a href="{{ user_gallery_url }}">
|
||||
{% trans username=user.username -%}
|
||||
View all of {{ username }}'s media{% endtrans -%}
|
||||
</a>
|
||||
</p>
|
||||
{% set feed_url = request.urlgen(
|
||||
'mediagoblin.user_pages.atom_feed',
|
||||
user=user.username) %}
|
||||
{% include "mediagoblin/utils/feed_link.html" %}
|
||||
</div>
|
||||
|
||||
{% if media_entries.count() %}
|
||||
<div class="profile_showcase">
|
||||
{{ object_gallery(request, media_entries, pagination,
|
||||
pagination_base_url=user_gallery_url, col_number=3) }}
|
||||
{% include "mediagoblin/utils/object_gallery.html" %}
|
||||
<div class="clear"></div>
|
||||
{% else %}
|
||||
{% if request.user and (request.user.id == user.id) %}
|
||||
<div class="profile_showcase empty_space">
|
||||
<p>
|
||||
<a href="{{ user_gallery_url }}">
|
||||
{% trans username=user.username -%}
|
||||
View all of {{ username }}'s media{% endtrans -%}
|
||||
</a>
|
||||
{% trans -%}
|
||||
This is where your media will appear, but you don't seem to have added anything yet.
|
||||
{%- endtrans %}
|
||||
</p>
|
||||
{% set feed_url = request.urlgen(
|
||||
'mediagoblin.user_pages.atom_feed',
|
||||
user=user.username) %}
|
||||
{% include "mediagoblin/utils/feed_link.html" %}
|
||||
<a class="button_action"
|
||||
href="{{ request.urlgen('mediagoblin.submit.start') }}">
|
||||
{%- trans %}Add media{% endtrans -%}
|
||||
</a>
|
||||
</div>
|
||||
{% else %}
|
||||
{% if request.user and (request.user.id == user.id) %}
|
||||
<div class="profile_showcase empty_space">
|
||||
<p>
|
||||
{% trans -%}
|
||||
This is where your media will appear, but you don't seem to have added anything yet.
|
||||
{%- endtrans %}
|
||||
</p>
|
||||
<a class="button_action"
|
||||
href="{{ request.urlgen('mediagoblin.submit.start') }}">
|
||||
{%- trans %}Add media{% endtrans -%}
|
||||
</a>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="profile_showcase empty_space">
|
||||
<p>
|
||||
{% trans -%}
|
||||
There doesn't seem to be any media here yet...
|
||||
{%- endtrans %}
|
||||
</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="profile_showcase empty_space">
|
||||
<p>
|
||||
{% trans -%}
|
||||
There doesn't seem to be any media here yet...
|
||||
{%- endtrans %}
|
||||
</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="clear"></div>
|
||||
{% endif %}
|
||||
<div class="clear"></div>
|
||||
{% 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
|
||||
def user_home(request, page):
|
||||
"""'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()
|
||||
if not user:
|
||||
return render_404(request)
|
||||
elif user.status != u'active':
|
||||
return render_to_response(
|
||||
request,
|
||||
'mediagoblin/user_pages/user.html',
|
||||
'mediagoblin/user_pages/user_nonactive.html',
|
||||
{'user': user})
|
||||
|
||||
cursor = MediaEntry.query.\
|
||||
|
Loading…
x
Reference in New Issue
Block a user