{% block mediagoblin_content -%}
{% if user %}
<h2>User page for '{{ user.username }}'</h2>
- {{ user }}
+
+ {#- Should we outsource such a media 'gallery' view to it's own file?
+ It could be useful for the home page and other views too -#}
+ <ul>
+ {%- for entry in media_entries %}
+ <li>
+ <a href="{{ request.urlgen('mediagoblin.user_pages.media_home',
+ user= entry.uploader.username, m_id= entry._id) }}">
+ <img src="{{ request.app.public_store.file_url(
+ entry['media_files']['thumb']) }}" /></a>
+ </li>
+ {%- endfor %}
+ </ul>
{% else %}
+ {# This *should* not occur as the view makes sure we pass in a user. #}
<p>Sorry, no such user found.<p/>
{% endif %}
{% endblock %}
# 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/>.
-from webob import Response
+from webob import Response, exc
from mongokit import ObjectId
import wtforms
def user_home(request):
"""'Homepage' of a User()"""
- user = request.db.User.find_one(
- {'username': request.matchdict['user']})
+ user = request.db.User.find_one({
+ 'username': request.matchdict['user'],
+ 'status': 'active'})
+ if not user:
+ return exc.HTTPNotFound()
- medias = request.db.MediaEntry.find()
+ medias = request.db.MediaEntry.find({
+ 'uploader': user,
+ 'state': 'processed'})
template = request.template_env.get_template(
'mediagoblin/user_pages/user.html')
template.render(
{'request': request,
'user': user,
- 'medias': medias}))
+ 'media_entries': medias}))
def media_home(request):
"""'Homepage' of a MediaEntry()"""
- media = request.db.MediaEntry.find_one(
- ObjectId(request.matchdict['m_id']))
+ media = request.db.MediaEntry.find_one({
+ '_id': ObjectId(request.matchdict['m_id']),
+ 'state': 'processed'})
- #check that media uploader and user correspond
- if media['uploader'].get('username') != request.matchdict['user']:
+ # Check that media uploader and user correspond.
+ if not media or \
+ media['uploader'].get('username') != request.matchdict['user']:
return exc.HTTPNotFound()
template = request.template_env.get_template(