aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortilly-Q <nattilypigeonfowl@gmail.com>2014-04-21 15:42:57 -0400
committertilly-Q <nattilypigeonfowl@gmail.com>2014-04-21 15:42:57 -0400
commit8ccd560ca2c480bb55f8caf1ddc035731eee11ca (patch)
tree40272e307461c034db38d6d1888b6b0a2a9fc0b7
parent7ff99dabfbb3e854afe2aba17a79a0aee9062e44 (diff)
downloadmediagoblin-8ccd560ca2c480bb55f8caf1ddc035731eee11ca.tar.lz
mediagoblin-8ccd560ca2c480bb55f8caf1ddc035731eee11ca.tar.xz
mediagoblin-8ccd560ca2c480bb55f8caf1ddc035731eee11ca.zip
Created the basic structure of the metadata display table in rdfa lite
-rw-r--r--mediagoblin/templates/mediagoblin/user_pages/media.html2
-rw-r--r--mediagoblin/templates/mediagoblin/utils/metadata_table.html37
-rw-r--r--mediagoblin/user_pages/lib.py3
-rw-r--r--mediagoblin/user_pages/views.py5
4 files changed, 45 insertions, 2 deletions
diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html
index e01cce5c..22971fec 100644
--- a/mediagoblin/templates/mediagoblin/user_pages/media.html
+++ b/mediagoblin/templates/mediagoblin/user_pages/media.html
@@ -18,6 +18,7 @@
{%- extends "mediagoblin/base.html" %}
{% import "/mediagoblin/utils/wtforms.html" as wtforms_util %}
+{% import "/mediagoblin/utils/metadata_table.html" as metadata_util %}
{% from "mediagoblin/utils/pagination.html" import render_pagination %}
{% block title %}{{ media.title }} &mdash; {{ super() }}{% endblock %}
@@ -231,6 +232,7 @@
{% template_hook("media_sideinfo") %}
{% block mediagoblin_sidebar %}
+ {{ metadata_util.render_table(request, media, rdfa_to_readable) }}
{% endblock %}
</div><!--end media_sidebar-->
diff --git a/mediagoblin/templates/mediagoblin/utils/metadata_table.html b/mediagoblin/templates/mediagoblin/utils/metadata_table.html
new file mode 100644
index 00000000..38b580d5
--- /dev/null
+++ b/mediagoblin/templates/mediagoblin/utils/metadata_table.html
@@ -0,0 +1,37 @@
+{#
+# 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/>.
+#}
+
+{%- macro render_table(request, media_entry, format_predicate) %}
+ {%- set metadata=media_entry.media_metadata %}
+ {%- set metadata_context=metadata['@context'] %}
+ {%- if metadata %}
+ <table prefix="{%- for prefix in metadata_context -%}
+ {{ prefix }} {{ metadata_context[prefix] }}
+ {%- endfor %}">
+ {%- for key, value in metadata.iteritems() if not key=='@context' %}
+ <tr>
+ <td>{{ format_predicate(key) }}</td>
+ {% if value -%}
+ <td property="{{ key }}">{{ value }}</td>
+ {%- else -%}
+ <td></td>
+ {%- endif -%}
+ {%- endfor %}
+ </table>
+ {% endif %}
+{%- endmacro %}
diff --git a/mediagoblin/user_pages/lib.py b/mediagoblin/user_pages/lib.py
index e5c8defc..83a99cee 100644
--- a/mediagoblin/user_pages/lib.py
+++ b/mediagoblin/user_pages/lib.py
@@ -116,3 +116,6 @@ def build_report_object(report_form, media_entry=None, comment=None):
report_object.reporter_id = report_form.reporter_id.data
return report_object
+def rdfa_to_readable(rdfa_predicate):
+ readable = rdfa_predicate.split(u":")[1].capitalize()
+ return readable
diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py
index 78751a28..f42eae1f 100644
--- a/mediagoblin/user_pages/views.py
+++ b/mediagoblin/user_pages/views.py
@@ -28,7 +28,7 @@ from mediagoblin.tools.translate import pass_to_ugettext as _
from mediagoblin.tools.pagination import Pagination
from mediagoblin.user_pages import forms as user_forms
from mediagoblin.user_pages.lib import (send_comment_email,
- add_media_to_collection, build_report_object)
+ add_media_to_collection, build_report_object, rdfa_to_readable)
from mediagoblin.notifications import trigger_notification, \
add_comment_subscription, mark_comment_notification_seen
from mediagoblin.tools.pluginapi import hook_transform
@@ -152,7 +152,8 @@ def media_home(request, media, page, **kwargs):
'comments': comments,
'pagination': pagination,
'comment_form': comment_form,
- 'app_config': mg_globals.app_config}
+ 'app_config': mg_globals.app_config,
+ 'rdfa_to_readable':rdfa_to_readable}
# Since the media template name gets swapped out for each media
# type, normal context hooks don't work if you want to affect all